パッケージfl.lang
クラスpublic class Locale
継承Locale Inheritance EventDispatcher Inheritance Object

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

fl.lang.Locale クラスを使用すると、SWF ファイルで表示する多言語テキストを制御できます。Flash の [ストリング] パネルを使用すると、ダイナミックテキストフィールドでストリングリテラルの代わりにストリング ID を使用できます。これにより、特定言語の XML ファイルからロードしたテキストを表示する SWF ファイルを作成できます。この XML ファイルでは、XLIFF (XML Localization Interchange File Format : XML ローカリゼーション交換ファイル形式) を使用する必要があります。XLIFF ファイルに含まれる特定言語のストリングを表示する方法は 3 とおりあります。

このクラスのプロパティとメソッドは、[実行時に ActionScript を使用して] という方法でストリング ID を置き換える場合に使用できます。

使用可能なプロパティとメソッドはすべて静的です。つまり、fl.lang.Locale クラスのインスタンスではなく、クラス自体を使ってアクセスします。

メモ : Locale クラスは Flash Authoring クラスパスにインストールされており、SWF ファイルに自動的にコンパイルされます。Locale クラスを使用すると、クラスが SWF ファイルにコンパイルされるので、SWF ファイルのサイズがわずかに大きくなります。

関連項目

flash.system.Capabilities.language


パブリック プロパティ
 プロパティ定義元
  autoReplace : Boolean
[static] XML ファイルをロードした後に自動的にストリングを置き換えるかどうかを示します。
Locale
 Inheritedconstructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  languageCodeArray : Array
[static] [read-only] 指定された言語または FLA ファイルにロードされた言語の言語コードが含まれる配列です。
Locale
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
  stringIDArray : Array
[static] [read-only] FLA ファイル内のストリング ID がすべて含まれる配列です。
Locale
パブリック メソッド
 メソッド定義元
  
addDelayedInstance(instance:Object, stringID:String):*
[static] インスタンスとストリング ID のペアを内部配列に追加して、後で使用できるようにします。
Locale
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
EventDispatcher
  
addXMLPath(langCode:String, path:String):void
[static] 言語コードと言語パスのペアを内部配列に追加して、後で使用できるようにします。
Locale
  
[static] XML ファイルがロードされた場合は true、それ以外の場合は false を返します。
Locale
 Inherited
イベントをイベントフローに送出します。
EventDispatcher
  
[static] [ストリング] パネルのダイアログボックスで設定されたか、setDefaultLang() メソッドを呼び出すことで設定されたデフォルトの言語コード。
Locale
 Inherited
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
  
[static] 使用言語を自動的に判別し、その言語の XML ファイルをロードします。
Locale
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
  
loadLanguageXML(xmlLanguageCode:String, customXmlCompleteCallback:Function = null):void
[static] 指定された言語の XML ファイルをロードします。
Locale
  
[static] 指定されたストリング ID に関連付けられたストリング値を現在の言語で返します。
Locale
  
loadStringEx(stringID:String, languageCode:String):String
[static] 指定されたストリング ID と言語コードに関連付けられたストリング値を返します。
Locale
 Inherited
指定されたプロパティが存在し列挙できるかどうかを示します。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
EventDispatcher
  
[static] デフォルトの言語コードを設定します。
Locale
  
setLoadCallback(loadCallback:Function):*
[static] XML ファイルがロードされた後に呼び出されるコールバック関数を設定します。
Locale
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
  
setString(stringID:String, languageCode:String, stringValue:String):void
[static] 指定されたストリング ID と言語コードに関連付ける新しいストリング値を設定します。
Locale
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
 Inherited
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
イベント
 イベント 概要 定義元
 Inherited Flash Player がオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。EventDispatcher
 Inherited Flash Player がオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。EventDispatcher
プロパティの詳細
autoReplaceプロパティ
autoReplace:Boolean  [read-write]

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

XML ファイルをロードした後に自動的にストリングを置き換えるかどうかを示します。true に設定されている場合、テキスト置き換え方法は [ストリング] パネルの設定 "automatically at runtime" と同じになります。つまり、Flash Player によってホスト環境のデフォルト言語が決定され、自動的にその言語でテキストが表示されます。false に設定されている場合、テキスト置き換え方法は [ストリング] パネルの設定 "via ActionScript at runtime" と同じになります。つまり、開発者が、該当する XML ファイルをロードしてテキストを表示する必要があります。

このプロパティのデフォルト値には、[ストリング] パネルのダイアログボックスの [ストリングの置き換え] について選択した設定が反映されます。true"automatically at runtime" (デフォルト設定) を選択した場合の設定、false が [実行時に ActionScript を使用して] を選択した場合の設定です。


実装
    public static function get autoReplace():Boolean
    public function set autoReplace(value:Boolean):void


次の例では、 Locale.autoReplace プロパティを使用して、ステージ上の動的に作成された greeting_txt テキストフィールドに、英語の XML ファイル内の IDS_GREETING ストリングの内容を入力します。[ストリング] パネルで、[設定] ボタンをクリックして、[設定] ダイアログボックスを表示します。[設定] ダイアログボックスを使用して 2 つのアクティブな言語、つまり英語 (en) およびフランス語 (fr) を追加し、[ストリングの置き換え] ラジオコントロールを "via ActionScript at runtime" に設定し、[OK] をクリックします。最後に、[ストリング] パネルで、IDS_GREETING のストリング ID を入力し、アクティブな言語ごとにテキストを追加します。
     var greeting_txt:TextField = new TextField();
     greeting_txt.x = 40;
     greeting_txt.y = 40;
     greeting_txt.width = 200;
     greeting_txt.height = 20;
     greeting_txt.autoSize = TextFieldAutoSize.LEFT;
     Locale.autoReplace = true;
     Locale.addDelayedInstance(greeting_txt, "IDS_GREETING");
     Locale.loadLanguageXML("en");
     
languageCodeArrayプロパティ 
languageCodeArray:Array  [read-only]

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

指定された言語または FLA ファイルにロードされた言語の言語コードが含まれる配列です。言語コードは、アルファベット順にソートされません。


実装
    public static function get languageCodeArray():Array


次の例では、ComboBox コンポーネントの現在値に基づいて、特定言語の XML ファイルをロードします。ComboBox コンポーネントをステージまでドラッグし、インスタンス名を lang_cb にします。テキストツールを使用して、ダイナミックテキストフィールドを作成し、インスタンス名を greeting_txt にします。[ストリング] パネルでは、少なくとも 2 つのアクティブな言語を追加し、[ストリングの置き換え] ラジオコントロールを "via ActionScript at runtime" に設定して、[OK] をクリックします。次に、ストリング ID IDS_GREETING を追加し、アクティブな言語ごとにテキストを追加します。最後に、次の ActionScript コードをメインタイムラインのフレーム 1 に追加します。
     Locale.setLoadCallback(localeListener);
     lang_cb.dataProvider = Locale.languageCodeArray.sort();
     lang_cb.addEventListener("change", langListener);
     
     function langListener(eventObj:Object):void {
      Locale.loadLanguageXML(eventObj.target.value);
     }
     function localeListener(success:Boolean):void {
      if (success) {
          greeting_txt.text = Locale.loadString("IDS_GREETING");
      } else {
          greeting_txt.text = "unable to load language XML file.";
      }
     }
     
stringIDArrayプロパティ 
stringIDArray:Array  [read-only]

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

FLA ファイル内のストリング ID がすべて含まれる配列です。ストリング ID は、アルファベット順にソートされません。


実装
    public static function get stringIDArray():Array


次の例では、現在ロードされている特定言語の XML ファイルの Locale.stringIDArray プロパティを出力します。[ストリング] パネルで、[設定] ボタンをクリックして、[設定] ダイアログボックスを表示します。次に、2 つのアクティブな言語、つまり英語 (en) およびフランス語 (fr) を追加し、[ストリングの置き換え] ラジオコントロールを "via ActionScript at runtime" に設定し、[OK] をクリックします。[ストリング] パネルで、ストリング ID IDS_GREETING を追加し、アクティブな言語ごとにテキストを追加します。
     Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML("fr");
     function localeCallback(success:Boolean) {
      trace(success);
      trace(Locale.stringIDArray); // IDS_GREETING
      trace(Locale.loadStringEx("IDS_GREETING", "fr")); // bonjour
     }
     
メソッドの詳細
addDelayedInstance()メソッド
public static function addDelayedInstance(instance:Object, stringID:String):*

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

インスタンスとストリング ID のペアを内部配列に追加して、後で使用できるようにします。このメソッドは主に、ストリングの置き換え方法が "automatically at runtime" である場合に Flash によって使用されます。

パラメータ

instance:Object — 設定するテキストフィールドのインスタンス名。
 
stringID:String — 言語のストリング ID。

戻り値
*


次の例では、autoReplace プロパティと addDelayedInstance() メソッドを使用して、ステージ上のテキストフィールドに、英語の XML ファイル内の IDS_GREETING ストリングを入力します。
     greeting_txt.autoSize = TextFieldAutoSize.LEFT;
     Locale.autoReplace = true;
     Locale.addDelayedInstance(greeting_txt, "IDS_GREETING");
     Locale.loadLanguageXML("en");
     
addXMLPath()メソッド 
public static function addXMLPath(langCode:String, path:String):void

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

言語コードと言語パスのペアを内部配列に追加して、後で使用できるようにします。このメソッドは主に、ストリングの置き換え方法が "automatically at runtime" または "via ActionScript at runtime" である場合に Flash によって使用されます。

パラメータ

langCode:String — 言語コード。
 
path:String — 追加する XML パス。



次の例では、setInterval() を使用して、特定言語の XML ファイルが正常にロードされたかどうかをチェックします。
     Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML("en");
     // create interval to check if language XML file is loaded
     var locale_int:Number = setInterval(checkLocaleStatus, 10);
     function checkLocaleStatus():void {
      if (Locale.checkXMLStatus()) {
          clearInterval(locale_int);
          trace("clearing interval @ " + getTimer() + " ms");
      }
     }
     // callback function for Locale.setLoadCallback()
     function localeCallback(success:Boolean):void {
      greeting_txt.text = Locale.loadString("IDS_GREETING");
     }
     
checkXMLStatus()メソッド 
public static function checkXMLStatus():Boolean

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

XML ファイルがロードされた場合は true を、それ以外の場合は false を返します。

戻り値
Boolean — XML ファイルがロードされた場合は true を、それ以外の場合は false を返します。


次の例では、間隔を使用して、特定言語の XML ファイルが正常にロードされたかどうかを 10 ミリ秒ごとにチェックします。XML ファイルがロードされると、ステージ上の greeting_txt テキストフィールドに、その XML ファイル内の IDS_GREETING ストリングが入力されます。
     Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML("en");
     // create interval to check if language XML file is loaded
     var locale_int:Number = setInterval(checkLocaleStatus, 10);
     function checkLocaleStatus():void {
      if (Locale.checkXMLStatus()) {
          clearInterval(locale_int);
          trace("clearing interval @ " + getTimer() + " ms");
      }
     }
     // callback function for Locale.setLoadCallback()
     function localeCallback(success:Boolean):void {
      greeting_txt.text = Locale.loadString("IDS_GREETING");
     }
     
getDefaultLang()メソッド 
public static function getDefaultLang():String

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

[ストリング] パネルのダイアログボックスで設定されたか、setDefaultLang() メソッドを呼び出すことで設定されたデフォルトの言語コード。

戻り値
String — デフォルトの言語コードを返します。

関連項目



次の例では、Flash ドキュメントのデフォルトの初期言語を保持しておくために使用される defLang という変数を作成します。[ストリング] パネルで、[設定] ボタンをクリックして、[設定] ダイアログボックスを表示します。次に、2 つのアクティブな言語、つまり英語 (en) およびフランス語 (fr) を追加し、[ストリングの置き換え] ラジオコントロールを "via ActionScript at runtime" に設定し、[OK] をクリックします。[ストリング] パネルで、ストリング ID IDS_GREETING を追加し、アクティブな言語ごとにテキストを追加します。
     var defLang:String = "fr";
     Locale.setDefaultLang(defLang);
     Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML(Locale.getDefaultLang());
     function localeCallback(success:Boolean) {
      if (success) {
          trace(Locale.stringIDArray); // IDS_GREETING
          trace(Locale.loadString("IDS_GREETING"));
      } else {
          trace("unable to load XML");
      }
     }
     
initialize()メソッド 
public static function initialize():void

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

使用言語を自動的に判別し、その言語の XML ファイルをロードします。このメソッドは主に、ストリングの置き換え方法が "automatically at runtime" である場合に Flash によって使用されます。



次の例では、initialize() メソッドを使用して、ステージ上の greeting_txtテキストフィールドに、ユーザーの現在の OS 言語を入力します。initialize() メソッドを直接使用する代わりに、ストリング置き換え方法である "automatically at runtime" を使用します。
     trace(System.capabilities.language);
     Locale.autoReplace = true;
     Locale.addDelayedInstance(greeting_txt, "IDS_GREETING");
     Locale.initialize();
     
loadLanguageXML()メソッド 
public static function loadLanguageXML(xmlLanguageCode:String, customXmlCompleteCallback:Function = null):void

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

指定された言語の XML ファイルをロードします。

パラメータ

xmlLanguageCode:String — ロードする特定言語の XML ファイルの言語コード。
 
customXmlCompleteCallback:Function (default = null) — 特定言語の XML ファイルのロード時に呼び出されるコールバック関数。



次の例では、loadLanguageXML() を使用して、英語の XML ファイルをロードします。英語の XML ファイルがロードされると、localeCallback() メソッドが呼び出され、ステージ上の greeting_txt テキストフィールドに、その XML ファイル内の IDS_GREETING ストリングの内容が入力されます。
     Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML("en");
     // create interval to check if language XML file is loaded
     var locale_int:Number = setInterval(checkLocaleStatus, 10);
     function checkLocaleStatus():void {
      if (Locale.checkXMLStatus()) {
          clearInterval(locale_int);
          trace("clearing interval @ " + getTimer() + " ms");
      }
     }
     // callback function for Locale.setLoadCallback()
     function localeCallback(success:Boolean):void {
      greeting_txt.text = Locale.loadString("IDS_GREETING");
     }
     
loadString()メソッド 
public static function loadString(id:String):String

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

指定されたストリング ID に関連付けられたストリング値を現在の言語で返します。

パラメータ

id:String — ロードするストリングの識別 (ID) 番号。

戻り値
String — 指定されたストリング ID に関連付けられたストリング値を現在の言語で返します。

関連項目



次の例では、間隔を使用して、特定言語の XML ファイルが正常にロードされたかどうかを 10 ミリ秒ごとにチェックします。XML ファイルがロードされると、ステージ上の greeting_txt テキストフィールドに、その XML 言語ファイル内の IDS_GREETING ストリングが入力されます。
     Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML("en");
     // create interval to check if language XML file is loaded
     var locale_int:Number = setInterval(checkLocaleStatus, 10);
     function checkLocaleStatus():void {
      if (Locale.checkXMLStatus()) {
          clearInterval(locale_int);
          trace("clearing interval @ " + getTimer() + " ms");
      }
     }
     // callback function for Locale.setLoadCallback()
     function localeCallback(success:Boolean):void {
      greeting_txt.text = Locale.loadString("IDS_GREETING");
     }
     
loadStringEx()メソッド 
public static function loadStringEx(stringID:String, languageCode:String):String

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

指定されたストリング ID と言語コードに関連付けられたストリング値を返します。予期しない XML ファイルのローディングを防止するため、loadStringEx() は、特定言語の XML ファイルがロードされていない場合にその XML ファイルをロードしません。特定言語の XML ファイルをロードする場合は、loadLanguageXML() を呼び出す適切なタイミングを決定してください。

パラメータ

stringID:String — ロードするストリングの識別 (ID) 番号。
 
languageCode:String — 言語コード。

戻り値
StringlanguageCode パラメータで指定された言語による指定されたストリング ID に関連付けられたストリング値。

関連項目



次の例では、loadStringEx() メソッドを使用して、現在ロードされているフランス語の XML ファイルに対応する IDS_GREETING ストリングの値を出力します。
     Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML("fr");
     function localeCallback(success:Boolean) {
      trace(success);
      trace(Locale.stringIDArray); // IDS_GREETING
      trace(Locale.loadStringEx("IDS_GREETING", "fr")); // bonjour
     }
     
setDefaultLang()メソッド 
public static function setDefaultLang(langCode:String):void

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

デフォルトの言語コードを設定します。

パラメータ

langCode:String — 言語コードを表すストリング。

関連項目



次の例では、Flash ドキュメントのデフォルトの初期言語を保持しておくために使用される defLang という変数を作成します。[ストリング] パネルで、[設定] ボタンをクリックして、[設定] ダイアログボックスを表示します。次に、2 つのアクティブな言語、つまり英語 (en) およびフランス語 (fr) を追加し、[ストリングの置き換え] ラジオコントロールを "via ActionScript at runtime" に設定し、[OK] をクリックします。[ストリング] パネルで、ストリング ID IDS_GREETING を追加し、アクティブな言語ごとにテキストを追加します。
     var defLang:String = "fr";
     Locale.setDefaultLang(defLang);
     Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML(Locale.getDefaultLang());
     function localeCallback(success:Boolean) {
      if (success) {
          trace(Locale.stringIDArray); // IDS_GREETING
          trace(Locale.loadString("IDS_GREETING"));
      } else {
          trace("unable to load XML");
      }
     }
     
setLoadCallback()メソッド 
public static function setLoadCallback(loadCallback:Function):*

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

XML ファイルがロードされた後に呼び出されるコールバック関数を設定します。

パラメータ

loadCallback:Function — 特定言語の XML ファイルのロード時に呼び出される関数。

戻り値
*


次の例では、間隔を使用して、特定言語の XML ファイルが正常にロードされたかどうかを 10 ミリ秒ごとにチェックします。XML ファイルがロードされると、ステージ上の greeting_txt テキストフィールドに、その XML 言語ファイル内の IDS_GREETING ストリングが入力されます。
     Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML("en");
     // create interval to check if language XML file is loaded
     var locale_int:Number = setInterval(checkLocaleStatus, 10);
     function checkLocaleStatus():void {
      if (Locale.checkXMLStatus()) {
          clearInterval(locale_int);
          trace("clearing interval @ " + getTimer() + " ms");
      }
     }
     // callback function for Locale.setLoadCallback()
     function localeCallback(success:Boolean):void {
      greeting_txt.text = Locale.loadString("IDS_GREETING");
     }
     
setString()メソッド 
public static function setString(stringID:String, languageCode:String, stringValue:String):void

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

指定されたストリング ID と言語コードに関連付ける新しいストリング値を設定します。

パラメータ

stringID:String — 設定するストリングの識別 (ID) 番号。
 
languageCode:String — 言語コード。
 
stringValue:String — ストリング値。



次の例では、setString() メソッドを使用して、英語 (en) とフランス語 (fr) の両方の値を IDS_WELCOME ストリングに設定します。
     Locale.setString("IDS_WELCOME", "en", "hello");
     Locale.setString("IDS_WELCOME", "fr", "bonjour");
     trace(Locale.loadStringEx("IDS_WELCOME", "en")); // hello
     




 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/fl/lang/Locale.html