戌印-INUJIRUSHI- (Androidあれこれ)

Androidのプログラミングをメインにしてます。記事に貼られたソースコードはダブルクリックすることで行番号をはずしてコピーすることができます。

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
08

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

多言語対応 : res/values-○○

Android では、言語や地域(国)に応じて表示する文字列を変えることができます。

ソフトウェア技術ドキュメントを勝手に翻訳:
7.1 リソースの提供
7.4 ローカライズ

参考サイト:
TechBooster リソースの多言語対応
ISO 639-1 コードリスト


通常、文字列は res/values フォルダにある strings.xml に定義しています。
特定の言語や地域の場合のみ表示する文字列を変える(翻訳する)場合には、values の後ろに修飾子を付けたフォルダを作成します。

android_res_locale.png

作成するファイル名、および、リソース名は同じ名称になります。

デバイスの言語設定と一致するフォルダが存在すれば、そのフォルダ内のリソースを参照します。
フォルダが存在しない、または、該当するリソース名が無い場合には res/values フォルダを参照します。

res/values/string.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">AndroidSample</string>
<string name="menu_settings">Settings</string>
</resources>

res/values-ja/string.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">アンドロイドサンプル</string>
</resources>

上記の場合、言語設定が「日本語」であれば app_name は「アンドロイドサンプル」、menu_settings は「Settings」と表示されます。

なお、一部だけ翻訳している状態で Android Lint が実行されている場合、以下のエラーが発生することがあります。
Issue: Checks for incomplete translations where not all strings are translated

Android Lint を無視しても動作しますが、無視した場合、漏れが発生する可能性があります。
多言語対応を行う場合には一部の文字列だけでなく、全ての文字列を翻訳するようにしましょう。

■ 形式
フォルダ名: res/values[-言語コード[-地域コード]]
言語コード: ISO 639-1
地域コード: ISO 3166-1-alpha-2

例:
res/values    標準
res/values-ja   日本語
res/values-en   英語
res/values-en-rGB 英語(イギリス)
res/values-en-rUS 英語(アメリカ合衆国)

備考:
言語コードは『ISO 639-1 コードリスト』様のお世話になっています。
そちらに書かれているように、ヘブライ語、インドネシア語、イディッシュ語のコードは置き換えられています。

原文:Android Developers - java.util.Locale
Note that Java uses several deprecated two-letter codes. The Hebrew ("he") language code is rewritten as "iw", Indonesian ("id") as "in", and Yiddish ("yi") as "ji". This rewriting happens even if you construct your own Locale object, not just for instances returned by the various lookup methods.

地域コードを指定する場合には、言語コードも合わせて指定する必要があります。地域コード単独での指定はできません
また、地域コードは言語と区別するため接頭辞に「r」をつける必要があります。


アプリ内(ソースコード上)での変更は次回…
スポンサーサイト

Comments

Leave a Comment


Body
プロフィール

とむ・やむくん

Author:とむ・やむくん
管理人について

Windows 7 / 64bit
Eclipse 4.2 Juno (日本語パッチ済)

スポンサーサイト
最新トラックバック
検索フォーム
ブロとも申請フォーム
QRコード
QR
Twitter
2013/01/04 19:00 カウント開始

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。