の通りでした…、というのもアレなので少し付け足すと、
基本、
- プログラム中では /i18n/ISO 639-1で定義された言語名/strings.xml ファイルでの定義と
L()
マクロの組み合わせ - アプリの名称については /i18n/~/app.xml 中に appname で定義する
日本語の解説では
がまとまっています。
ただ、ホーム画面に表示されるアプリの名称を多言語対応する場合については、上記の記事と最新版(Titanium SDK 3.2 以降)では違っていて、
にあるような /i18n/~/app.xml を使う方式に統一されたようです。
また、L() マクロを使える場所についてですが、 Alloy での開発で view用の xml ファイルでは一部制限があるようです(styles の tss, controllers の js ファイルは特に問題なし)。
にあるように確かに view でも使える場所はあります。
次のように
ただ、 Label や Button などの平文のところ
こういう箇所については tss 側で記述する必要があります(view 側は空文にした上で)。
他にも
のページも参考になると思います。
2014/10/07 追記
上記の tss ファイルでの L() マクロ利用の制限ですが、SDK 3.4(Alloy 1.5.0) から無くなったようです(Label のみの一部?)。
情報ソースはこちらから。
ただ、まったくのピンポイントでの Tips なので、まとまっての記述を期待している人にはすいません。
にあるような /i18n/~/app.xml を使う方式に統一されたようです。
また、L() マクロを使える場所についてですが、 Alloy での開発で view用の xml ファイルでは一部制限があるようです(styles の tss, controllers の js ファイルは特に問題なし)。
にあるように確かに view でも使える場所はあります。
次のように
といったプロパティ値などでは働きます。<Window title="L('test')">
ただ、 Label や Button などの平文のところ
<Label id="labelTest">L('test')</Label>
<Button id="buttonTest">L('test')</Button>といった場合には働いてくれません(でした。少なくとも Titaniaum Studio 3.3 環境では)。
こういう箇所については tss 側で記述する必要があります(view 側は空文にした上で)。
"#labelTest":{
text:L('test')
}
"#buttonTest":{記述の綺麗さという観点からなら、 view ではなく tss 側にまとめた方が良いのかもしれません。
title:L('test')
}
他にも
のページも参考になると思います。
2014/10/07 追記
上記の tss ファイルでの L() マクロ利用の制限ですが、SDK 3.4(Alloy 1.5.0) から無くなったようです(Label のみの一部?)。
情報ソースはこちらから。
- Titanium SDK 3.4.0リリースノート超ざっくり訳 - Titanium News
- Titanium SDK 3.4.0 リリースノートの Alloy 1.5.0 の章
Support the localization functionL()
with the Label's text attribute or as node text in XML markup.
Android アプリを Titanium Studio/Alloy を使って作ったので、その際にひっかかったことを、Tips で書いていってます。
実際に同じところで躓いた人がいて、それの解決のお役に立てば、と思っています。
ちなみに環境は Windows + Titanium Studio 3.3 + Android用開発となっています。
ちなみに環境は Windows + Titanium Studio 3.3 + Android用開発となっています。
0 件のコメント:
コメントを投稿