Re: マルチリンガル
null
投稿数: 191
V8 辺りからある機能ですが言語変換ファイルを用意して切り替える方法があります。
情報が少ないので実際に初めて作業した時はサッパリでしたが、ここに軽くまとめておきます。
色々書こうとすると非常に長くなるので(これでも長いですが・・・)
詳細はヘルプで「言語」とか関数名で検索して補完してください。
1. MagicStudio の「ツール」→「文字列抽出」で文字列を抽出する
2. 作成された、Strings.xml の Phrase タグの文字列を全て抽出する
例)<Phrase>金額</Phrase> の場合、「金額」
3. 抽出した文字列を一覧にまとめる(Excel で管理するのが楽かも)
この時にソートして重複している文字列があれば削除しておく
例)
金額
金額 ← 重複しているので削除
消費税
コード
…
4. 各言語毎に翻訳して以下のようなテキストファイルを作成する(message_en.txt)
保存するファイルは UTF-8 で改行コードを CR+LF にしてください
オリジナルと翻訳が交互になるようなテキストにします
金額
Price
消費税
Tax
コード
Code
5. 言語変換ファイルを作成する。コマンドプロンプトで以下を入力すれば良い。
mls_bld コマンドは Magic Studio のインストールフォルダにあるので
必要であればパスを通しておく。
mls_bld message_en.txt en.txt 65001
6. Magic.ini を編集する
5. で作成した言語変換ファイルを MAGIC_LANGUAGE に追加
「en=en.txt」の左辺の文字列は判りやすければ何でも良い。
言語が複数ある場合はここを増やす。
[MAGIC_LANGUAGE]
;英語
en=en.txt
;中国語
zn=zn.txt
同じく、Magic.ini の StartingLanguage を設定する
StartingLanguage = en
7. これで起動すれば翻訳した部分は英語表示になるはず。
補足。
複数の言語に対応する場合は 4. 〜 6. の作業を言語毎に行えば良いです。
実行中に使用言語を調べるのは GetLang()
実行中に表示を切り替えるのであれば SetLang('en') のように
「en=en.txt」の左辺の文字列を SetLang の引数に指定すれば切り替わります。
但し仕様上、表示している画面を一旦閉じるなどしてやらないと即時に切り替わりませんが・・・
メッセージなどの動的な文字列も MlsTrans('金額') のようにすれば翻訳文字列が取れます。
情報が少ないので実際に初めて作業した時はサッパリでしたが、ここに軽くまとめておきます。
色々書こうとすると非常に長くなるので(これでも長いですが・・・)
詳細はヘルプで「言語」とか関数名で検索して補完してください。
1. MagicStudio の「ツール」→「文字列抽出」で文字列を抽出する
2. 作成された、Strings.xml の Phrase タグの文字列を全て抽出する
例)<Phrase>金額</Phrase> の場合、「金額」
3. 抽出した文字列を一覧にまとめる(Excel で管理するのが楽かも)
この時にソートして重複している文字列があれば削除しておく
例)
金額
金額 ← 重複しているので削除
消費税
コード
…
4. 各言語毎に翻訳して以下のようなテキストファイルを作成する(message_en.txt)
保存するファイルは UTF-8 で改行コードを CR+LF にしてください
オリジナルと翻訳が交互になるようなテキストにします
金額
Price
消費税
Tax
コード
Code
5. 言語変換ファイルを作成する。コマンドプロンプトで以下を入力すれば良い。
mls_bld コマンドは Magic Studio のインストールフォルダにあるので
必要であればパスを通しておく。
mls_bld message_en.txt en.txt 65001
6. Magic.ini を編集する
5. で作成した言語変換ファイルを MAGIC_LANGUAGE に追加
「en=en.txt」の左辺の文字列は判りやすければ何でも良い。
言語が複数ある場合はここを増やす。
[MAGIC_LANGUAGE]
;英語
en=en.txt
;中国語
zn=zn.txt
同じく、Magic.ini の StartingLanguage を設定する
StartingLanguage = en
7. これで起動すれば翻訳した部分は英語表示になるはず。
補足。
複数の言語に対応する場合は 4. 〜 6. の作業を言語毎に行えば良いです。
実行中に使用言語を調べるのは GetLang()
実行中に表示を切り替えるのであれば SetLang('en') のように
「en=en.txt」の左辺の文字列を SetLang の引数に指定すれば切り替わります。
但し仕様上、表示している画面を一旦閉じるなどしてやらないと即時に切り替わりませんが・・・
メッセージなどの動的な文字列も MlsTrans('金額') のようにすれば翻訳文字列が取れます。
投票数:1
平均点:10.00
投稿ツリー
-
マルチリンガル
(yamazawakt, 2010-2-19 16:03)
-
Re: マルチリンガル
(null, 2010-2-22 10:37)
- Re: マルチリンガル (yamazawakt, 2010-2-22 13:34)
-
Re: マルチリンガル
(yamazawakt, 2010-2-22 14:46)
- Re: マルチリンガル (Jiro123, 2010-2-23 13:24)
-
Re: マルチリンガル
(null, 2010-2-22 10:37)