国際化

今分かってるできること・できかもしれないこと

できること

  • getTextライクな言語の置き換え ファイルはxmlのため外部編集・自動作成が可能
  • 端末言語コードの取得

できないかもしれないこと

  • 言語選択ダイアログをつくって表示言語の変更(read-onlyのため設定できない)
  • 今のところTitanium Studioで翻訳テキストを編集する専用のエディタはありません。
    • そのうち作りたいと思います。

中国語(cn)の簡体、繁体の取り扱いの調査

参考:docs.appcelerator.com/titanium/2.1/#!/guide/Internationalization

アプリ内文字列の国際化

i18n/{言語en,ja}/strings.xmlを作ります。 <string name=“{翻訳コード}”>{翻訳文字列}</string> の形式で記入していきます。

i18n/en/strings.xml

<?xml version="1.0" encoding="UTF-8"?>
<resources>
	<string name="settings">Settings</string>
	<string name="today">Today</string>
</resources>

i18n/ja/strings.xml

<?xml version="1.0" encoding="UTF-8"?>
<resources>
	<string name="settings">設定</string>
	<string name="today">今日</string>
</resources>

コード内での使い方

L('{翻訳コード}') を使うと置き換えられます。オブジェクトによっては直接翻訳コードを指定できるものもあります。

    window = Ti.UI.createWindow({
        className: 'window',
        title: L('settings')
     });

注意:nameにつけられる名前には長さの制限があるようです。あまり長い名前をつけると解釈されませんでした。

アプリ名国際化(iOS)

フォルダi18n/{言語en,ja}/app.xmlを作り、国際化したアプリ名を入力します。tiapp.xmlのnameの欄に日本語などのマルチバイトを使ってアプリ名を設定すると、エラーになります。(一部のファイル名にnameの値が使われるため)

i18n/en/app.xml

<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <string name="appname">English Name</string>
</resources>

i18n/ja/app.xml

<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <string name="appname">日本語名</string>
</resources>

アプリ名国際化(Android)

ver 2.1.0

iOSよりも若干手間がかかります。上記ヘルプの通りにしてもvalues-ja/strings.xmlをコピーせずに、 i18n/ja/string.xmlをbuild/android/res/values-jaにコピーしてくるので回避方法を考えてみました。

手順①stringsをコピー

iOSのアプリ名国際化用に作成したi18n/{言語コード}/app.xmlからappnameのタグを同じフォルだのstrings.xmlに コピーする。

手順②AndroidManifest.xmlの変更

android:label=を変更して“@string/appname”にする。

アプリ一覧でアイコンの下に表示される名前は以下の箇所を変更します。

<activity android:configChanges="keyboardHidden|orientation" android:label="OriginalAppName" android:name=".EnisecurityActivity" android:theme="@style/Theme.Titanium">
 
<activity android:configChanges="keyboardHidden|orientation" android:label="@string/appname" android:name=".EnisecurityActivity" android:theme="@style/Theme.Titanium">

設定-アプリケーションで表示されるアプリケーション名の場合は以下を変更します。

<application android:debuggable="false" android:icon="@drawable/appicon" android:label="@string/appname" android:name="EnisecurityApplication">
titanium/i18n.txt · 最終更新: 2012/07/20 01:46 by enibloadmin
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0