複数言語対応(1)設定方法の確認

OutSystemsの複数言語対応機能を確認してみます。

少なくともPersonalEnvironmentのデフォルトのロケールは、en-USだと思います。

ドキュメントは見つかりませんでしたが、GetCurrentLocaleで確認しました。

Locale変更方法については以前書きました:Personal Environmentのロケールを変える

複数言語対応機能の公式ドキュメント:Multilingual UI

ここでの対象はWebアプリケーションです。モバイルアプリケーションについては別途対応が必要と上のリンクに書いてありますね。Forgeのコンポーネントを使うようです。そちらは別の記事で確認します。

作ろうとするもの

日本語で画面を作成し、その後、他の国に展開したという状況を想定します。

OutSystemsで直接定義するテキスト類はすべて日本語とします。なお、デフォルトロケールは、「Personal Environmentのロケールを変える」に書いた方法でja-JPにしておきます。

国を選択するUIを提供し、英語/仏語を選択すると、日本語のテキストが自動で対応する言語で表示されるアプリケーションを作成。

画面定義

①Expressionで「テスト1」

②Linkで「テスト2」

③Buttonで「Feedback表示」。クリックするとScreen ActionでFeedbackメッセージを表示します

④Escape Content=Noに設定したExpression。alertを表示するJavaScriptを配置してあります

⑤現在のロケールを示すExpression(Value:”CurrentLocale: ” + GetCurrentLocale())

多言語定義

Locale定義

モジュールで対応する言語を増やすには、Data>Multilingual Localesを右クリックし、Add Locale…を選択します。

表示されたダイアログで適切なロケールを追加してください。

デフォルトの日本語のほかに、英語・仏語を追加するので、「en-US(英語-アメリカ)」・「fr-FR(仏語-フランス)」を選択しました。

ダイアログで翻訳設定

再びMultilingual Localesを右クリックし、Edit Translations…を選択すると、Translationsダイアログが表示されます。

以下の色をつけた部分を変更してDONEをクリック。

Translation in に翻訳先のロケールを選択(この場合、en-USかfr-FRです)。

翻訳対象のテキストをText列で探し、そのBehavior列をTranslateに、Translation in列に訳語を設定してください。

動作確認

SetCurrentLocale Actionでロケールをen-USに変更して画面を再表示したところ。

JavaScriptのスクリプト内のテキストや、Action内で渡した文言もきちんと翻訳されています。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする