4D v16.3

付録 C: XLIFFアーキテクチャー

ホーム

 
4D v16.3
付録 C: XLIFFアーキテクチャー

付録 C: XLIFFアーキテクチャー  


 

 

4Dはテキストやタイトルのローカライズのために、XLIFF標準をサポートします。この技術は4Dアプリケーション内部でも使用され、4D開発者やプラグイン開発者もカスタマイズされたアプリケーションやプラグインで利用できます。

使用する言語に合わせて動的にインターフェース言語が変えられる4Dアプリケーションを設定する原則は以下の通りです。言語により変更されるすべての要素 (テキスト、ラベル、ピクチャー) をファイルとしてアプリケーションの外側、Resourcesフォルダーに格納します。フォームやメニューの中で、ラベルやピクチャーは参照として指定されます。アプリケーションが実行されると、言語コンテキストに応じてこれらの要素は外部から表示すべきリソースを取得します。XLIFF標準はラベルの記述と参照方法を規定します。

注: XLIFF ファイルに保存されている文字列は Get localized string コマンドを使って直接読み込むことができます。

フォームエディター内ではスタティックエリアを編集モードにするか、オブジェクトメニューからフォーマット表示または名前表示を選択すると、実際の内容を見ることができます。:

互換性に関する注記: XLIFFの他に、4Dは現時点で以前のシステムであるSTR#リソース参照もサポートしています。しかしこのシステムは廃止予定です。両方の方法を同時に使用することができます。今のうちにXLIFFを使用した方法に変更してください。

XLIFF (XML Localization Interchange File Format) はローカライズ処理のための標準です。XMLを使用して翻訳元テキストと翻訳済みテキストの対応を記述します。

実際XLIFF標準はリソースベースのローカライズシステムに代わる新しい標準です。このファイルを管理するためのツールがいくつか存在します。

XLIFF標準に関する詳細は公式XLIFF 1.1仕様書を参照してください:
http://www.oasis-open.org/committees/xliff/documents/xliff-specification.htm

警告: XLIFF標準は大文字/小文字を区別します。

XLIFF 文字列を 4D からコールする方法は二つあります:

  • Get localized string コマンドを使う
  • 参照を使った動的な翻訳システムを活用する

Get localized string コマンドを使えばデータベースのどこからでも、特定の文字列について、アプリケーションで選択中の言語への翻訳にアクセスすることができます。現在の言語は Get database localization コマンドで確認することができます。

互換性についての注記: "リソース" テーマの Get indexed stringSTRING LIST TO ARRAY コマンドもXLIFF ドキュメントをサポートしていますが 、これらのコマンドの使用は現在では推奨されておらず、互換性のために維持されるにとどまります。

4Dでは以下の場所で自動のXLIFF参照を使用できます:

  • フォームエディターのプロパティリストの“オブジェクト名”フィールド
  • エクスプローラーからアクセスできるフォームプロパティダイアログボックスの“ウィンドウタイトル”フィールド
  • ボタンやチェックボックスタイトル、スタティックテキストなど
  • メニューエディター (ObjectName シンタックスを除く、後述)
  • ヘルプTipsエディター (ObjectName シンタックスを除く、後述)

注:

  • XLIFF参照が認識されるためには、テキストの先頭に記述されなければなりません。
  • ヘルプTipエディターにXLIFF参照を表示することはできません。XLIFFに基づくヘルプTipを使用するには、プロパティリストのヘルプメッセージに直接XLIFF参照を入力します。

4Dでは以下のシンタックスを使用して、自動のXLIFF参照を活用することができます:

  • :15115,3 シンタックス
    XLIFFファイルでこのシンタックスを使用する場合、最初の値 (この例では15115) はgroup要素のid属性値に対応します。.
    二つ目の値 (この例では3) はtrans-unit要素のid属性値に対応します。
    互換性に関する注記: このシンタックスは前世代のSTR#リソースに基づくものと同じです。このとき“:xxxx,yyy”においてxxxxはSTR#リソース番号でありyyyは要素番号でした。例えば“:15115,3”はSTR#リソース15115の3番目の文字列を使用することを意味しました。このシンタックスがサポートされるため、変換されたデータベースにおいてリソースベースのシステムが動作し、徐々にXLIFFベースのシステムに置き換えられます。4DはまずロードされたXLIFFファイルの中から15115,3に対応するリソースを探します。もし見つからなければ開かれたリソースファイルの中で対応するリソースを探します。このメカニズムを使用すれば既存のSTR#リソースに基づくシステムにXLIFFベースのシステムを統合することが可能です。両方のシステムを同時に利用できます。いずれの場合もロードされたXLIFFファイルがリソースファイルよりも優先されます。
  • :xliff:OKButton シンタックス
    この新しいシンタックスはロードされたXLIFFファイルでのみ利用できます。この場合参照された名前 (この例ではOKButton) はtrans-unit要素のresname属性に対応します。
  • ObjectName シンタックス (プロパティリストの“オブジェクト名”フィールド)
    このシンタックスの目的はフォームの翻訳を容易にすることにあります。他のシンタックスと異なり、これはフォームでのみ使用できます。動作の原理はXLIFFファイルのtrans-unit要素を、resname 属性にそれぞれテーブル名とフォーム名を含む2つのgroup要素で挟むことにあります。
    • 例 (テーブルフォーム)
      [Clients]テーブルの“Form1”フォームにある、オブジェクト名“SaveButton”のボタンタイトルを翻訳するには、XLIFFファイルに以下のように記述します:
      <group resname="[Clients]">
      <group resname="Form1">
      <trans-unit resname="SaveButton">
      ...
      </trans-unit>
      </group>
      </group>
    • 例 (プロジェクトフォーム)
      プロジェクトフォームの場合、テーブル名は[ProjectForm]と記述します:
      <group resname="[ProjectForm]">
      <group resname="Form1">
      <trans-unit resname="SaveButton">
       ...
      </trans-unit>
      </group>
      </group>

    注: ObjectName シンタックスが正常に機能するには、プロパティリストにて "タイトル" プロパティが設定されている (空欄のままでない) 必要があります。

データベース中で異なるシンタックスを使用する場合、XLIFFファイル中で対応するリソースを検索する優先度は以下の通りです:
1. “:15115,3” シンタックス
2. “:xliff:OKButton” シンタックス
3. “MyTitle” シンタックス

XLIFF参照またはカレントの言語に従い翻訳されたタイトルをフォームエディターで表示するには、オブジェクトメニューから名前表示またはリソース表示を選択します。詳細はスタティックテキスト中で参照を使用するを参照してください。

アプリケーションのローカライズのためにXLIFFアーキテクチャーを使用する場合、有効なXLIFFファイルを必要なだけ作成し、データベースのResourcesフォルダーにコピーします。

データベースのResourcesフォルダーに関する詳細はリソースフォルダの管理を参照してください。

使用するパスは以下の通りです:

  • Windows:
    MyDatabase\Resources\{Lang}.lproj\{MyJALoc}.xlf
  • Mac OS:
    MyPackage:Resources:{Lang}.lproj:{MyJALoc}.xlf

上記において:

  • MyDatabase はデータベースファイルを格納したフォルダーで、MyPackage はMac OSのデータベースパッケージです。
  • {Lang}.lproj には Lang 言語用のXLIFFファイルを配置します。Lang 部分は後述の国際標準に従った名称を使用しなければなりません。例えば日本語の場合、フォルダー名は ja.lprojです。

4Dはデータベースのカレント言語に対応したXLIFFファイルを自動でロードします。データベースのカレント言語を決定する際、4Dは以下の順番でデータベースのResourcesフォルダー内を検索します:

  1. システム言語 (Mac OSでは環境設定で言語の検索順を設定できます。4Dはこの設定を使用します。)
  2. 4Dアプリケーションの言語
  3. 英語
  4. ここまでで検索できなかった場合、Resourcesフォルダーで最初に見つかった言語がロードされます。

Get database localizationコマンドを使用するとデータベースに指定されたカレント言語を知ることができます。

言語のバリエーションが使用されていて、XLIFFファイルでそれが利用できない場合、それにもっとも近い言語が使用されます。

XLIFFファイルの名前 (例では"MyJALoc"部分) は自由に決定できます。ただし拡張子を“.xlf.”にします。同じ言語フォルダー内に複数のXLIFFファイルを配置できます。それらはファイル名の順番にロードされます。

“.lproj”フォルダーの名前は後述する標準に従わなければなりません。4Dは標準に従ったフォルダーを以下の順番で検索対象とします。:

  1. 言語-地域コード
    この組み合わせでは言語コード (ISO639-1) + ハイフン + 国コード (ISO3166) または 4文字のスクリプトコー (ISO15924) となります。
    たとえばカナダフランス言語圏では“fr-ca” (fr-ca.lproj) となります。
  2. ISO639-1
    この標準では各言語を2文字で表します。例えば日本語は“ja” (ja.lproj) です。
    参照: http://www.loc.gov/standards/iso639-2/php/English_list.php
  3. レガシ名
    この用法では言語名を英語で表記します。例えば日本語の場合“japanese” (japanese.lproj) です。
    注: 最初の二つの記法はMac OS 10.4以降でサポートされています。それより前のMac OSではレガシ名のみがサポートされています。

4Dがサポートする言語コードの要約はで提供されます。

: 同じ原則がXLIFFファイル中の“target-language”タグにも適用されます。このタグの値を注意深く設定しなければなりません。ファイルが“fr-ca.lproj”フォルダー内に存在するとしても、“target-language=fr”と記述されていた場合、そのファイルは“fr”として扱われます。

アプリケーションをローカライズする際、起動時にロードされたXLIFFファイルは動的に再ロードされます。つまりXLIFFファイルを編集すると、その変更は即座に4D内に反映されます。このリロードは4Dがアプリケーションの最前面になったときに、XLIFFファイルの更新日時が前回のロード時と異なる場合に発生します。カレントフォームも同時に再ロードされます。

4DがサポートするXLIFFファイルの言語コードは以下の通りです。

言語ISO639-1“レガシ”ISO3166 / ISO15924
AFRIKAANSafafrikaans
ALBANIANsqalbanian
ARABIC_SAUDI_ARABIAararabicsa
ARABIC_IRAQararabiciq
ARABIC_EGYPTararabiceg
ARABIC_LIBYAararabicly
ARABIC_ALGERIAararabicdz
ARABIC_MOROCCOararabicma
ARABIC_TUNISIAararabictn
ARABIC_OMANararabicom
ARABIC_YEMENararabicye
ARABIC_SYRIAararabicsy
ARABIC_JORDANararabicjo
ARABIC_LEBANONararabiclb
ARABIC_KUWAITararabickw
ARABIC_UAEararabicae
ARABIC_BAHRAINararabicbh
ARABIC_QATARararabicqa
BASQUEeubasque   
BELARUSIANbebelarusian   
BULGARIANbgbulgarian   
CATALANcacatalan   
CHINESE_TRADITIONALzhchinesehant
CHINESE_SIMPLIFIEDzhchinesehans
CHINESE_HONGKONGzhchinesehk
CHINESE_SINGAPOREzhchinesesg
CROATIANhrcroatian   
CZECHcsczech   
DANISHdadanish   
DUTCHnldutch   
DUTCH_BELGIANnldutchbe
ENGLISH_USenenglish
ENGLISH_UKenenglishgb
ENGLISH_AUSTRALIAenenglishau
ENGLISH_CANADAenenglishca
ENGLISH_NEWZEALANDenenglishnz
ENGLISH_EIREenenglishie
ENGLISH_SOUTH_AFRICAenenglishza
ENGLISH_JAMAICAenenglishjm
ENGLISH_BELIZEenenglishbz
ENGLISH_TRINIDADenenglishtt
ESTONIANetestonian   
FAEROESEfofaorese   
FARSIfapersian   
FINNISHfifinnish   
FRENCHfrfrench   
FRENCH_BELGIANfrfrenchbe
FRENCH_CANADIANfrfrenchca
FRENCH_SWISSfrfrenchch
FRENCH_LUXEMBOURGfrfrenchlu
GERMANdegerman   
GERMAN_SWISSdegermanch
GERMAN_AUSTRIANdegermanat
GERMAN_LUXEMBOURGdegermanlu
GERMAN_LIECHTENSTEINdegermanli
GREEKelgreek   
HEBREWhehebrew   
HUNGARIANhuhungarian   
ICELANDICisiceland   
INDONESIANidindonesian   
ITALIANititalian   
ITALIAN_SWISSititalianch
JAPANESEjajapanese   
KOREAN_WANSUNGkokorean   
KOREAN_JOHABkokorean   
LATVIANlvlatvian   
LITHUANIANltlithuanian   
NORWEGIANnonorwegian   
NORWEGIAN_NYNORSKnnnynorskno
POLISHplpolish   
PORTUGUESEptportuguese   
PORTUGUESE_BRAZILIANptportuguesebr
ROMANIANroromanian   
RUSSIANrurussian   
SERBIAN_LATINsrserbianlatn
SERBIAN_CYRILLICsrserbiancyrl
SLOVAKskslovak   
SLOVENIANslslovenian   
SPANISH_CASTILLANesspanish   
SPANISH_MEXICANesspanishmx
SPANISH_MODERNesspanish   
SPANISH_GUATEMALAesspanishgt
SPANISH_COSTA_RICAesspanishcr
SPANISH_PANAMAesspanishpa
SPANISH_DOMINICAN_REPUBLICesspanishdo
SPANISH_VENEZUELAesspanishve
SPANISH_COLOMBIAesspanishco
SPANISH_PERUesspanishpe
SPANISH_ARGENTINAesspanishar
SPANISH_ECUADOResspanishec
SPANISH_CHILEesspanishcl
SPANISH_URUGUAYesspanishuy
SPANISH_PARAGUAYesspanishpy
SPANISH_BOLIVIAesspanishbo
SPANISH_EL_SALVADOResspanishsv
SPANISH_HONDURASesspanishhn
SPANISH_NICARAGUAesspanishni
SPANISH_PUERTO_RICOesspanishpr
SWEDISHsvswedish   
SWEDISH_FINLANDsvswedishfi
THAIththai   
TURKISHtrturkish   
UKRAINIANukukrainian   
VIETNAMESEvivietnamese

 
プロパティ 

プロダクト: 4D
テーマ: 付録

 
履歴 

 
ARTICLE USAGE

デザインリファレンス ( 4D v16)
デザインリファレンス ( 4D v16.1)
デザインリファレンス ( 4D v16.3)