1

Android Java で、さまざまな言語でさまざまな語彙を使用したいという問題があります。

このアプリは、ドイツとスウェーデンの軍と警察によって使用されています。もちろん、ドイツ人はドイツ語のアプリを望んでおり、スウェーデン人はスウェーデン語のアプリを望んでいます。もちろん、文字列リソースを res/values-de/strings.xml と res/values-sv/strings.xml の下に配置することで対応しています。 Android デバイスのさまざまな設定によって選択されます (「リソースの処理」を参照)。

しかし、私の問題は、警察が軍隊とは異なる語彙を使用していることです。これを何らかの方法でリソースに反映させたいと考えています。

res/values-de-mil/strings.xml を使用するか、その他の簡単な方法でアプリ f.ex に設定できる別の語彙リソースを使用する方法はありますか。

4

3 に答える 3

1

ありえないと思います。

オプションは、共有設定でユーザーの設定を設定し (ユーザーが初めてアプリを開いたときにそれを尋ねることができます)、それが警官か軍隊かを保存することです。

次に、リフレクションを使用して文字列リソースをロードできます。

<string name="string_policeMan">Word for a policeman</string>
<string name="string_military">Word for a military</string>   


SharedPreferences shared = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
boolean isPoliceMan = shared.getBoolean(policeMan, false);

int resId;
if(isPoliceMan)
   resId = R.string.class.getField("string_policeMan").getInt(null);
else 
   resId = R.string.class.getField("string_military").getInt(null);

 String field = context.getResources().getString(resId);
于 2013-06-20T09:25:56.713 に答える
0

私の知る限り、Androidシステムはユーザーが誰であるかを知らないため、res/values-de-milを持つことはできません。このアプローチでは、2 セットの文字列を使用できます。egyou には

<string name="Name">...</string>

のようにする

<string name="mil_Name">...</string>

<string name="cop_Name">...</string>

ユーザーが軍人であることがわかっている場合getResources().getString(R.string.mil_Name);

于 2013-06-20T09:26:19.790 に答える