多言語Webアプリケーション
モジュールが設計された言語(デフォルト言語)に加え、モジュールを翻訳し実行する他の言語を追加することができます。言語は地域によって異なるため、各言語は第1言語または第1言語および地域で定義されるロケールで指定します。
モジュールの以下の要素を翻訳することができます。
- 画面内のテキスト
- 画面タイトル
- ボタン、プロセス、プロセスアクティビティのラベル
- Human Activityの指示
- リンク内のテキスト
- Combo Boxウィジェットの特殊リストオプション
- アプリケーションに埋め込まれている、エンドユーザーに向けて表示されるメッセージ(検証メッセージ、ウィジェットの確認、および空のメッセージ)
- すべての種類の式に含まれる文字リテラル(エスケープされていない式やJavaScriptを含む)
- 画像
- 静的エンティティ(
Use Translations
拡張プロパティが有効になっていることを確認してください)
翻訳処理の観点から、翻訳できる要素は翻訳可能なリソースとみなされます。
他の言語を追加する
すべてのロケールは、RFC 1766標準形式に従って表現されます。以下に例をいくつか示します。
英語 | フランス語 | ポルトガル語 | スペイン語 |
---|---|---|---|
en: 英語 | fr: フランス語 | pt: ポルトガル語 | es: スペイン語 |
en-GB: 英語(イギリス) | fr-CA: フランス語(カナダ) | pt-BR: ポルトガル語(ブラジル) | es-AR: スペイン語(アルゼンチン) |
en-US: 英語(アメリカ合衆国) | fr-FR: フランス語(フランス) | pt-PT: ポルトガル語(ポルトガル) | es-ES: スペイン語(スペイン) |
言語ロケールを追加するには、以下の手順を実行します。
-
[Interface]タブの要素ツリーにあるMultilingual Localesフォルダを右クリックし、[Add Locale...]オプションを選択します。
-
[Select Locale]ウィンドウから追加する言語ロケールを選択します。
アプリケーションの実行中、言語地域用に定義された翻訳が要素にない場合は、第1言語に定義された翻訳が使用されます。
リソースの翻訳プロセス
モジュールの翻訳は、翻訳可能なリソースを含むファイルを使用して行います。OutSystemsは、翻訳可能なリソースをこれらのファイルにエクスポートします。ファイルは翻訳者に送信され、翻訳後、モジュールにインポートされます。
翻訳のためのリソースのエクスポート
翻訳可能なリソースをエクスポートするには、以下の手順を実行します。
-
[Module]メニューを開き、[Export]をポイントして[Language Resources To <形式>]オプションのいずれかを選択します。<形式>は以下のいずれかのファイル形式です。
-
Excel
OutSystemsプラットフォームは、翻訳可能なすべてのリソースを、以下のように行と列にリストされた1つのExcelファイルにエクスポートします。
Key: 翻訳可能なリソースのキー。これはeSpace内で一意のものであり、変更されません。新しい翻訳可能なリソースには、異なるキーが付与されます。
Location: 翻訳可能なリソースの、eSpaceでの場所。
Text to be translated: 翻訳対象のテキスト。
Locale(s): eSpace内の各言語ロケールの列。ここに翻訳したテキストを設定します。元のテキストをそのまま使用する場合は、翻訳テキストを空白のままにしておきます。
-
.resX(.NETリソース形式)
OutSystemsは、翻訳可能なすべてのリソースを.resXファイルにエクスポートします。内訳は、モジュールの各言語ロケールにつき1ファイルずつ、さらにモジュールのデフォルト言語が1ファイルです。翻訳可能なリソース情報は、基本的に
<name, value>
の一組で構成されるXML形式で構成されますが、コメントも追加されます。Name: 翻訳可能なリソースの名前(キー)。これはeSpace内で一意のものであり、変更されません。新しい翻訳可能なリソースには、異なる名前が付与されます。
Value: 既存のテキストを置き換える翻訳済みテキストを入れるフィールドです。
Comment: 翻訳可能なリソースの、モジュールでの場所。
注記: ご利用の.NET Frameworkによっては、翻訳可能なリソースファイルにさらに多くのアトリビュートを含めることができますが、これらの追加のアトリビュートはService Studioでは無視されます。
この手順を完了するための別の方法として、[Interface]タブを開き、Multilingual Localesフォルダを右クリックし、[Export Language Resources]をポイントして、[To <形式>]オプションのいずれかを選択することもできます。
-
-
ファイルを保存するフォルダを選択します。
Service Studioでは、言語の翻訳可能なリソースファイルに対して以下の固定名を使用するため、ファイル名は求められません。
- Excelファイル
- Excelファイルの名前は、次の規則に従います。
<eSpace name> + 'Language' + '.'+ <Excel extension>
.たとえば、モジュール名が「Recruitment」の場合、言語の翻訳可能なリソースファイル名は「RecruitmentLanguage.xls」となります。 - .resXファイル
- resXファイルの名前は、次の規則に従います。
<eSpace name> + 'Language' + '.'+ <Language locale> + '.resX'
.たとえば、モジュール名が「Recruitment」で、言語ロケールがフランス語(フランス)(fr-FR)およびフランス語(カナダ)(fr-CA)だとします。この場合、「RecruitmentLanguage.fr-FR.resX」、「RecruitmentLanguage.fr-CA.resX」、および「RecruitmentLanguage.resX'」(デフォルト言語用)という3つのファイルが生成されます。
翻訳用に画像をエクスポートする
画像は、ファイルに保存する方法で手動でエクスポートをする必要があります。翻訳する元の画像を右クリックし、[Save Image As...]オプションを選択して画像を保存します。画像を翻訳する必要がある言語ごとに、この手順を繰り返します。
以下の形式に従って、翻訳した画像に名前を付けます。<image name> + '.'+ <language locale> + '.'+ <image extension>
.これにより、翻訳した画像を追加するとき、Service Studioがロケールを自動的に決定できます。
リソースの翻訳をインポートする
翻訳可能なリソースの翻訳を元のモジュールにインポートするには、以下の手順を実行します。
-
[Module]メニューを開き、[Import]をポイントして[Language Resources]を選択します。
この手順を完了するための別の方法として、[Interface]タブを開き、Multilingual Localesフォルダを右クリックし、[Import Language Resources]を選択することもできます。
-
インポートするファイルを選択します。
以下のいずれかの形式のファイルをインポートできます。
- Excelファイル
- インポートの対象となる翻訳可能なリソースの翻訳を含むExcelファイルを選択すると、すべての言語の翻訳が更新されます。.resXファイル
- 翻訳可能なリソースの翻訳をインポートする言語の.resXファイルを選択すると、インポートされた言語の翻訳のみが更新されます。
翻訳した画像をインポートする
翻訳した画像は、以下の2つの方法のいずれかを使用し、手動でインポートする必要があります。
-
翻訳した画像がすでにある場合: 翻訳した画像を右クリックし、[Change Localized Image...]オプションを選択して、新しい翻訳済み画像を選択します。
-
翻訳した画像がない場合: 翻訳した画像を追加します。
特定の言語の画像を追加するには、以下の手順を実行します。
- [Interface]タブの要素ツリーにあるImagesフォルダに移動します。
- 元の画像を右クリックし、[Add Localized Image]オプションを選択します。
- 画像を選択して追加します。
- 新しく追加されたローカライズ済みの画像を選択し、Localeプロパティに適切な言語ロケールを設定します。
アプリケーション言語を変更する
SetCurrentLocaleシステムアクションを使用して、アプリケーションの実行言語を変更することができます。
例として、このシステムアクションを使用してエンドユーザーがアプリケーションの動作言語を変更できるようにします。
各国旗には、押すと言語ロケールを変更する画面アクションを呼び出すリンクがあります。スペイン国旗の例は以下のとおりです。
スペイン国旗のリンク
ChangeLanguageアクションフロー
SetCurrentLocaleプロパティ
現在の言語をエンドユーザーへ表示する
アプリケーションの現在の言語ロケールは、GetCurrentLocaleビルトイン関数を使用して取得できます。
たとえば、アプリケーションが動作している言語の国旗とロケールコード(RFC 1766形式)をエンドユーザーに表示することができます。