Android string.xml-覚えておくべきこと

良い一日! GDE(Google開発者エキスパート) Dmytro Danylykの記事の無料翻訳を紹介します。 実際には、ここにオリジナルがあります。 この記事では、strings.xmlを操作するための正しいアプローチについて説明しており、多言語アプリケーションを開発する開発者にとって特に役立ちます。 猫をお願いします。









この記事は、string.xmlのようなささいなAndroidについてのものです。







再利用しないでください



異なる画面で行を再利用しないでください

[ サインイン ]または[ サインアップ]画面に読み込みダイアログがあることを想像してみましょう。 両方の画面に読み込みダイアログがあるため、同じ行R.string.loadingを使用することにします。







画像

res / values / strings.xml。







後で別の行を使用することにした場合は、2つの異なる行を作成し、.javaクラスで直接変更する必要があります。 最初から別の行を使用する場合は、 strings.xmlファイルを変更するだけで済みます。







画像

res / values / strings.xml







追加する必要がある言語のサポートと翻訳を事前に知ることはできません。 それはすべてコンテキストに関するものです。ある言語では同じ単語をあるコンテキストで使用できますが、別の言語ではこの単語は意味に適合しません。







画像

res / values / strings.xml







画像

res / values-UA / strings.xml







この場合、英語版のstrings.xmlでは、 R.string.download_file_yes文字列R.string.terms_of_use_yes文字列の両方に同じ単語「Yes」を使用していることに注意してください。

ただし、strings.xmlのウクライナ語バージョンでは、 R.string.download_file_yesには 「Garazd」、 R.string.terms_of_use_yesには「So」という2つの異なる単語を使用します







共有する



プレフィックスとコメントを使用して、1つの画面に属する個別の行


画像

res / values / strings.xml







  1. このリソースがどのスクリーンに属しているかを簡単に理解できるように、各行にスクリーン名の形式でプレフィックスを追加します。
  2. クリーンなstring.xmlファイルは、画面ごとにさまざまな言語を簡単にサポートおよび翻訳するのに役立ちます。


画面ごとに異なるstrings.xmlを作成します

必要に応じて、各画面にstring.xmlファイルを作成できます-settings -strings.xml、profile-strings.xml 。 ただし、通常、アプリケーションにはそれぞれ約10〜20の画面があり、各言語フォルダーに10〜20のstring.xmlファイルが必要です。 これは混乱になると思います。







書式設定



リソース#getString(int id、Object ... formatArgs)を使用して文字列をフォーマットする

他の言語では語順が異なる場合があるため、 +演算子で連結しないでください。







画像

res / values / strings.xml







画像

Javaコード







正しい方法は、 リソース#getString(int id、Object ... formatArgs)を使用することです。







画像

res / values / strings.xml







画像

res / values-UA / strings.xml







画像

Javaコード







複数



量的文字列にはリソース#getQuantityString(int id、int quantity)を使用します

異なる言語には複数合意のルールが異なるため、Javaコードの複数の問題を解決しないでください







画像

res / values / strings.xml







画像

Javaコード







正しい方法は、 リソースを使用することです#getQuantityString(int id、int quantity)







画像

res / values / strings.xml







画像

Javaコード







単語の強調表示



HTMLテキストを使用して静的な単語を強調表示する

TextViewで一部の単語の色を変更する場合-ForegroundColorSpanは必ずしも最良のオプションではありません。ハイライトはインデックスを介して行われ、多言語アプリケーションでは安全ではないためです。 strings.xmlファイル内でhtmlフォントカラータグを使用することをお勧めします。

「Discover and play games」というテキストがあるとします。そして、「Discover」という単語と「play」という単語を青で強調表示したいとします。







画像

res / values / strings.xml







画像

Javaコード








All Articles