0

アプリケーションのフォント/テキスト情報を保持するために.jsonファイルを使用しています。さまざまな言語を追加しているので、特定のフォントにさまざまなサイズを指定できるようにする必要があります。たとえば、ドイツ語の単語は英語よりも長い傾向があるため、その言語の単語のサイズはさまざまであるため、フォントを小さくしたい場合があります。

私の問題は、ほとんどのフォントが各言語で同じままであるため、.jsonファイルに大量の重複データが存在することです。どういうわけか削減したい重複データの例を次に示します。これを行うために.jsonファイルをフォーマットする方法がわかりません(多くの詳細を削除したため、読みやすくなっています)。

"styles":
{
    "en":
    {
        "main_title" :
        {
            "font" : "font://verdana-bold.ttf",
    "size" : 25,
        },
        "heading" :
        {
            "font" : "font://verdana-bold.ttf",
    "size" : 18,
        },
    },
    "de":
    {
        "main_title" :
        {
            "font" : "font://verdana-bold.ttf",
    "size" : 25,
        },
        "heading" :
        {
            "font" : "font://verdana-bold.ttf",
    "size" : 16,
        },
    },
    "fr":
    {
        "main_title" :
        {
            "font" : "font://verdana-bold.ttf",
    "size" : 25,
        },
        "heading" :
        {
            "font" : "font://verdana-bold.ttf",
    "size" : 18,
        },
    }
}

上記の例では、3つの言語があり、小さい「見出し」フォントを使用するdeutscheを除いて、すべて同じフォント情報を使用していることに注意してください。私がやりたいのは次のようなものです。

"styles":
{
    "en", "de", "fr":
    {
        "main_title" :
        {
            "font" : "font://verdana-bold.ttf",
    "size" : 25,
        },
        "heading" :
        {
            "font" : "font://verdana-bold.ttf",
    "size" : 18,
        },
    },
    "de":
    {

        "heading" :
        {
            "font" : "font://verdana-bold.ttf",
    "size" : 16,
        },
    },
}

この例では、3つの言語すべてで同じ情報を使用していますが、deutsche言語フォントで1つの変更を定義できます。明らかに、私の2番目の例は構文が正しくないため正しく読み取れませんが、うまくいけば、これは私が達成しようとしていることを理解することができます。このようなことを可能にするJSONの構文はありますか?

4

1 に答える 1

1

JSONがこれを行うとは思いませんが、このデータの利用者が他の言語オブジェクトにない値を探すことができる「デフォルト」オブジェクトを持つことができます。

"styles": {
    "default": {
        "main_title" : {
            "font" : "font://verdana-bold.ttf",
            "size" : 25,
        },
        "heading" : {
            "font" : "font://verdana-bold.ttf",
            "size" : 18,
        },
    },
    "de": {
        "heading" : {
            "size" : 16,
        }
    }
}

許可される言語を指定する必要がある場合は、それをオブジェクトの別の属性として追加するだけです。

"styles": {
    "languages": ["en", "de", "fr"],
    ...
}
于 2012-05-18T23:33:33.570 に答える