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コード



Source: https://habr.com/ru/post/J307798/


All Articles