2017-04-12 6 views
-2

別のライブラリでは異なる値を持つ同じkeyTextが存在する可能性があるため、getTextにはいくつか問題があります。ロケールファイルにnamespaceを動的に追加する

私は自分のテキストを読み込むために名前空間を使うことができることに気付きましたが、各stringValueのキーを変更するのとは異なる方法を見つけることができません。

いくつかのアイデア?

例:

実際のロケール:TO

libOne /ロケール/ EN/index.json

{ 
    "libName": "LibOne" 
} 

libTwo /ロケール/ EN/index.json

{ 
    "libName": "LibTwo" 
} 

テキストを入手してください:

session.localizer.gettext(session.preferredLocale(), "libName"); 

2つのライブラリで、私は名前空間を使用できることに気づいたのと同じキーでテキストを持つことができるように:

libOne /ロケール/ EN/index.json

{ 
    "libOne:libName": "libOne" 
} 

libTwo /ロケール/ EN/index.json

{ 
    "libTwo:libName": "libTwo" 
} 

テキストを取得するには、次の

session.localizer.gettext(session.preferredLocale(), "libName", "libOne"); 
session.localizer.gettext(session.preferredLocale(), "libName", "libTwo"); 

{ 
    "libOne": { 
    "libName": "libOne" 
    } 
} 

の代わりに::一時的な解決策私は、各LIBのために、各キーに名前空間を追加しましたが、私はそれは例えば、手動ですべてのキーを変更することなく、それを行うにはいくつかの方法であるべきだと思うよう

{ 
    "libOne:libName": "libOne" 
} 
+0

これは少し曖昧です。あなたは例やより良い説明で指定できますか? –

答えて

0

":"の前に名前空間を追加するのではなく、ファイル名を変更して名前空間を追加することができます。上記の例の場合

libOne /ロケール/ EN/libOne.json

{ 
    "libName": "libOne" 
} 

libTwo /ロケール/ EN/libTwo.json

{ 
    "libName": "libTwo" 
} 

テキストを取得するには:

session.localizer.gettext(session.preferredLocale(), "libName", "libOne"); 
session.localizer.gettext(session.preferredLocale(), "libName", "libTwo"); 
関連する問題