Titanium Mobileでi18n

categories: develop

メッセージを日本語化

プロジェクト直下に i18n ディレクトリを作りさらに国別ディレクトリを作って strings.xml に翻訳メッセージを記述
例えばロケールによって「Hello」と「こんにちは」を切り替えたい場合はこんな感じ

<?xml version="1.0" encoding="UTF-8"?>
<resources>
	<string name="hello">Hello</string>
</resources>
<?xml version="1.0" encoding="UTF-8"?>
<resources>
	<string name="hello">こんにちは</string>
</resources>


Ti.Locale.getString または Lマクロを使って取得する

var label = Ti.UI.createLabel({
	text: L('hello')
});

アプリ名を日本語化(iPhone)

/Resources に国名.lproj を作り InfoPlist.strings に記述
ロケールによってアプリ名を「Hello」と「こんにちは」に切り替えたい場合はこんな感じ

CFBundleName = "Hello";
CFBundleDisplayName = "Hello";
CFBundleName = "Hello";
CFBundleDisplayName = "こんにちは";

※ InfoPlist.strings の文字コードは UTF-16
※ CFBundleName は tiapp.xml の nameタグの値(プロジェクト名)
※ iPhone実機に転送しないと切り替わらない(iPhoneエミュレータ上だと変わらない。)

ロケールを取得

Ti.Locale.currentLanguage または Ti.Platform.locale で現在のロケールを取得出来る(2文字国コード)
例えばロケールによってボタン画像を変更したい場合はこんな感じ

var button = Ti.UI.createButton({
	image: (Ti.Platform.locale === 'ja') ? 'japanese.png' : 'english.png'
});

tags:

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です。コメントは承認制です。

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

Trackback URL