1

多言語サポートを目的とした Android アプリケーションを構築しています。通常のスペイン語、フランス語、ドイツ語などだけでなく、Android ロケールがないいくつかの少数言語も含まれます。

リソースフォルダー内にさまざまな値フォルダーを提供するという典型的な解決策を認識しています。たとえば、values_fr、values_sp などです。ただし、ロケールを持たない少数言語の場合は役に立ちません。

したがって、私が目指しているのは、複数の文字列 xml ファイルを値フォルダーに入れることです。例:strings-welsh.xml、strings-cornish.xml、strings-gaelic.xml、strings-french.xml など。

ただし、「リソース エントリ ## は既に定義されています」というエラーが多数発生するため、これを行うのに問題があります (## は文字列リソースの名前です)。

それでは、どうすればコンパイラーが不平を言うのをやめ、自由に呼び出すことができますか: getString(R.strings_welsh.app_name)またはgetStrings(R.strings_french.app_name)

Android 4.0 (ICS) 以降をサポートします。

4

1 に答える 1

1

標準的な方法に固執する必要があります。静的インスタンスが提供されていないロケールを作成できます。実際、必要なものは何でも提供できます。ロケールドキュメントから:

存在しない言語や国のロケールを作成できます

コンストラクタを使用します。

今は試していませんが、これは、適切な文字列を適切なフォルダーの適切なファイルに配置し、デバイスがそれらの言語をサポートしている場合、またはロケールを明示的に指定している場合、適切なローカライズされた文字列が返されることを意味すると思います。どの言語が必要かはわかりませんが、少なくともあなたが言及した言語については、2 文字の言語コードを次に示します。

  • ウェールズ語:cy
  • コーニッシュ:kw
  • ゲール語:gd
于 2013-02-12T00:56:51.707 に答える