Titanium alloy で国際化のススメ
-
Upload
tadatoshi-hanazaki -
Category
Technology
-
view
282 -
download
0
Transcript of Titanium alloy で国際化のススメ
About author
Tadatoshi Hanazaki @hntn
Titanium Certified Developer
株式会社 洛洛.comhttp://e-rakuraku.com/
専用の30倍レンズを装着すれば、iPhoneやAndroidがスキンチェッカーに大変身!日米版のほか、韓国、台湾、中国ローカライズしてます。だいたいTiです。
こんなん作ってます
http://support.beautecam.com/
Quick Start #1• i18n/言語codeフォルダを作り、それぞれに
strings.xmlファイルを作る
ProjectFolder
├ i18n
│ ├ en
│ │ └ strings.xml
│ ├ ja
│ │ └ strings.xml
Quick Start #2• strings.xmlファイルを編集する
i18n/en/strings.xml
<resources>
<string name=“TITLE_SIGNUP">Sign up</string>
<string name=“LABEL_SEND">Send</string>
</resources>
i18n/ja/strings.xml
<resources>
<string name="TITLE_SIGNUP">新規入会</string>
<string name=“LABEL_SEND">送信</string>
</resources>
Quick Start #3• Viewファイルを編集する
※SDK 3.4.0 以降、AlloyのViewにも書ける様になりました
app/view/index.xml<Alloy>
<Window titleid=“TITLE_SIGNUP”>
<ScrollView>
…
<Button onClick="doSignUp" titleid="LABEL_SEND"/>
ホームのアプリ名 #1
※デフォルトはtiapp.xmlの <name> 、日本語を入れてもビルドは出来ない
アプリ名を日本語にしたい場合にも、国際化が必要です。但し、先述のstrings.xmlとは違うファイルになります。
ホームのアプリ名 #2• プロジェクトにi18n/言語codeフォルダそれぞれにapp.xmlファイルを作る
ProjectFolder
├ i18n
│ ├ en
│ │ └ app.xml
│ ├ ja
│ │ └ app.xml
ホームのアプリ名 #3• app.xmlファイルを編集する
i18n/en/app.xml
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<string name="appname">マイアプリ</string>
</resources>
i18n/ja/app.xml
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<string name="appname">MyAppName</string>
</resources>
SDK 3.1.x 以前は、AndroidはAndroidManifest.xmlをアレしたり、platform/android/res/values-xx.xmlをナニしたりと面倒でしたが、今は必要ありません。
SDK 3.2.0以降は(古い手順も未だ有効ですが)、iOSと同様先述の手順でOKです。
ホームのアプリ名 (Android)
Android言語切替えアプリなら「Change Language」がオススメ
https://play.google.com/store/apps/details?id=com.examobile.changelanguage
他にもGoogle Playに沢山並んでますが、KitkatやLolipopでもちゃんと動くものは少ないです。
1) Ti.Locale.currentLocale2) Ti.Locale.currentLanguage3) Ti.Locale.currentCountry4) Ti.Platform.locale
ProjectFolder
├ i18n
│ ├ en
│ │ └ strings.xml
│ ├ ja
│ │ └ strings.xml
i18n/直下と同じなのはどれ?(~SDK 4.0.0)
1) Ti.Locale.currentLocale2) Ti.Locale.currentLanguage3) Ti.Locale.currentCountry4) Ti.Platform.locale
ProjectFolder
├ i18n
│ ├ en
│ │ └ strings.xml
│ ├ ja
│ │ └ strings.xml
ja-JP, en-JP, etc
ja, en, etc
JP, US, etciOS:jp, en,etcAndroid:ja-JP, en-US, etc
ex.i18n/直下と同じなのはどれ?(~SDK 4.0.0)
1) Ti.Locale.currentLocale2) Ti.Locale.currentLanguage3) Ti.Locale.currentCountry4) Ti.Platform.locale
答え (~SDK 4.0.0)
ProjectFolder
├ i18n
│ ├ en
│ │ └ strings.xml
│ ├ ja
│ │ └ strings.xml
※ドキュメントでは言語コード(ISO-639-1)って事になってはいます (~SDK 4.0.0)
ja-JP, en-JP, etc
ja, en, etc
JP, US, etciOS:jp, en,etcAndroid:ja-JP, en-US, etc
ex.
中国語 (繁体・簡体) ~SDK 4.0.0言語コードiOS
言語コードAndroid
Ti.Locale. currentLanguage
(IOS)
Ti.Locale. currentLanguage
(Android)
中国(簡体) zh-Hans zh-rCN zh-Hans zh
台湾(繁体) zh-Hant zh-rTW zh-Hant zh
香港(繁体) zh-HK zh-rHK zh-HK zh
英語 en en en en
日本 ja ja ja ja
• i18n下のDirectory名(言語コード)はISO 639-1通りとは限らない
• iOSとAndroidで共通じゃない
• というか i18n/zh-Hant 等(iOS固有)があると、Androidでbuildが失敗する
マイナー言語の辛み (~SDK 4.0.0)
SDK 4.1.0以降は、
言語コード-RegionSuffix (国コード※)
の形式で、iOS/Androidと共通の方法で細かく指定出来るように。
国コードの指定
※ISO-3166-1 Alpha2 code
中国語 (繁体・簡体) SDK 4.1.0~言語コードiOS
言語コードAndroid
Ti.Locale. currentLanguage
(IOS)
Ti.Locale. currentLanguage
(Android)
中国(簡体) zh-CN zh-CN zh-Hans zh
台湾(繁体) zh-TW zh-TW zh-Hant zh
香港(繁体) zh-HK zh-HK zh-HK zh
英語 en en en en
日本 ja ja ja ja
Google Spreadsheet便利
http://www.hanpendada.com/2015/01/google-spreadsheet.html