PowerShell Cmdlet - Import-LocalizedData
 記事記号:[mg1907] 初版:2011/Sep/30

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

名前
    Import-LocalizedData
    
概要
    オペレーティング システムに選択された UI カルチャに基づいて、言語固有のデー
    タをスクリプトおよび関数にインポートします。
    
構文
    Import-LocalizedData [-BindingVariable] <string> [[-UICulture] <string>] [-
    BaseDirectory <string>] [-FileName <string>] [-SupportedCommand <string[]>] 
    [<CommonParameters>]
    
説明
    Import-LocalizedData コマンドレットは、オペレーティング システムの現在のユー
    ザーに対して設定されている UI 言語と名前が一致するサブディレクトリから文字列
    を動的に取得します。現在のユーザーによって選択された UI 言語でスクリプトのユ
    ーザー メッセージを表示できます。
    
    Import-LocalizedData は、スクリプト ディレクトリの言語固有のサブディレクトリ
    内にある .psd1 ファイルのデータをインポートし、コマンドで指定されたローカル
    変数に保存します。このコマンドレットは、$PSUICulture 自動変数の値に基づいて
    サブディレクトリとファイルを選択します。スクリプト内のローカル変数を使用して
    ユーザー メッセージを表示すると、メッセージはユーザーの UI 言語で表示されま
    す。
    
    Import-LocalizedData のパラメーターを使用して、代替 UI カルチャ、パス、およ
    びファイル名を指定したり、サポートされるコマンドを追加したり、.psd1 ファイル
    が見つからなかった場合に表示されるエラー メッセージが表示されないようにした
    りすることができます。
    
    Import-LocalizedData コマンドレットは、Windows PowerShell 2.0 のスクリプトの
    国際化対応をサポートしています。このイニシアチブは、現在のユーザーの UI 言語
    でスクリプトのユーザー メッセージを表示できるようにすることで、世界各地のユ
    ーザーに対応することを目的としています。この点に関しての詳細および .psd1 フ
    ァイルの形式については、「about_Script_Internationalization」を参照してくだ
    さい。

パラメーター
    -BaseDirectory <string>
        .psd1 ファイルがある基本ディレクトリを指定します。既定値は、スクリプトが
        あるディレクトリです。Import-LocalizedData は、基本ディレクトリの言語固
        有のサブディレクトリ内にあるスクリプトの .psd1 ファイルを検索します。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -BindingVariable <string>
        テキスト文字列がインポートされる変数を指定します。ドル記号 ($) を付けず
        に変数名を入力します。
        
        Import-LocalizedData を使用してスクリプトの DATA セクションで指定された
        既定のテキスト文字列を置換する場合は、DATA セクションを変数に代入し、Bin
        dingVariable パラメーターの値に DATA セクション変数の名前を入力します。
        次に、Import-LocalizedData がインポートされた内容を BindingVariable に保
        存すると、インポートされたデータで既定のテキスト文字列が置換されます。既
        定のテキスト文字列を指定しない場合は、任意の変数名を選択できます。
        
        必須                         true
        位置                         1
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -FileName <string>
        インポートする .psd1 ファイルの名前を指定します。.psd1 ファイル名拡張子
        を除くファイル名を入力します。
        
        既定値はスクリプトの名前です。たとえば、スクリプトが FindFiles.ps1 の場
        合、Import-LocalizedData は FindFiles.psd1 を検索します。このパラメータ
        ーを使用して、Import-LocalizedData に別の .psd1 ファイルを検索するように
        指示できます。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -SupportedCommand <string[]>
        データのみを生成するコマンドレットおよび関数を指定します。
        
        記述またはテストしたコマンドレットおよび関数を含めるには、このパラメータ
        ーを使用します。詳細については、「about_Script_Internationalization」を
        参照してください。
        
        必須                         false
        位置                         named
        既定値                       なし
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -UICulture <string>
        代替 UI カルチャを指定します。既定値は $PsUICulture 自動変数の値です。UI 
        カルチャは、en-US、de-DE、ar-SA のように "<言語>-<地域>" 形式で入力しま
        す。
        
        UICulture パラメーターの値は、Import-LocalizedData がスクリプトの .psd1 
        ファイルを取得する言語固有のサブディレクトリ (基本ディレクトリ内) を指定
        します。
        
        このコマンドレットは、"de-DE" や "ar-SA" など、UICulture パラメーターま
        たは $PsUICulture 自動変数の値と同じ名前を持つサブディレクトリを検索しま
        す。ディレクトリが検出されない場合、またはディレクトリにスクリプトの .ps
        d1 ファイルが含まれていない場合、"de" や "ar" などの言語コードの名前を持
        つサブディレクトリを検索します。サブディレクトリまたは .psd1 ファイルが
        検出されない場合、コマンドは失敗し、スクリプトで指定されている既定の言語
        でデータが表示されます。
        
        必須                         false
        位置                         2
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    <CommonParameters>
        このコマンドレットは、次の共通パラメーターをサポートします: Verbose、
        Debug、ErrorAction、ErrorVariable、WarningAction、WarningVariable、
        OutBuffer、および OutVariable。詳細については、
        「get-help about_commonparameters」と入力してヘルプを参照してください。
    
入力
    なし
        パイプを使用してこのコマンドレットに入力を渡すことはできません。
    
出力
    System.Collections.Hashtable
        Import-LocalizedData は、BindingVariable パラメーターの値で指定される変
        数にハッシュ テーブルを保存します。
    
メモ
        Import-LocalizedData を使用する前に、ユーザー メッセージをローカライズし
        ます。キーと値のペアのハッシュ テーブルでロケール (UI カルチャ) ごとにメ
        ッセージを書式設定し、スクリプトと同じ名前で .psd1 ファイル名拡張子を持
        つファイルにハッシュ テーブルを保存します。サポートされている UI カルチ
        ャごとにスクリプト ディレクトリの下にディレクトリを作成し、UI カルチャ名
        を持つディレクトリに各 UI カルチャの .psd1 ファイルを保存します。
        
        たとえば、de-DE ロケールのユーザー メッセージをローカライズし、ハッシュ 
        テーブルで書式設定します。ハッシュ テーブルを <ScriptName>.psd1 ファイル
        に保存します。次に、スクリプト ディレクトリの下に de-DE サブディレクトリ
        を作成し、de-DE <ScriptName>.psd1 ファイルをこの de-DE サブディレクトリ
        に保存します。サポートするロケールごとにこの方法を繰り返します。
        
        Import-LocalizedData は、スクリプトのローカライズされたユーザー メッセー
        ジの構造化検索を実行します。
        
        Import-LocalizedData は、スクリプト ファイル (または BaseDirectory パラ
        メーターの値) があるディレクトリで検索を開始します。次に、基本ディレクト
        リ内で "de-DE" や "ar-SA" などの $PsUICulture 変数の値 (または UICulture 
        パラメーターの値) と同じ名前のサブディレクトリを検索します。次に、サブデ
        ィレクトリ内でスクリプト (または FileName パラメーターの値) と同じ名前の 
        .psd1 ファイルを検索します。
        
        Import-LocalizedData が UI カルチャの名前を持つサブディレクトリを検出で
        きない場合、またはサブディレクトリにスクリプトの .psd1 ファイルが含まれ
        ていない場合は、"de" や "ar" などの言語コードの名前を持つサブディレクト
        リでスクリプトの .psd1 ファイルを検索します。サブディレクトリまたは .psd
        1 ファイルが検出されない場合、コマンドは失敗し、データは既定の言語でスク
        リプトに表示され、データがインポートされなかったことを示すエラー メッセ
        ージが表示されます。失敗してもメッセージを表示しないでそのまま続行するに
        は、値が SilentlyContinue の ErrorAction 共通パラメーターを使用します。
        
        Import-LocalizedData がサブディレクトリおよび .psd1 ファイルを検出した場
        合は、ユーザー メッセージのハッシュ テーブルがコマンドの BindingVariable 
        パラメーターの値にインポートされます。この結果、変数に格納されたハッシュ 
        テーブルからメッセージが表示されると、ローカライズされたメッセージが表示
        されます。
        
        詳細については、「about_Script_Internationalization」を参照してください。
    
    -------------------------- 例 1 --------------------------
    
    C:\PS>import-localizeddata -bindingVariable messages
    
    説明
    -----------
    このコマンドは、テキスト文字列を $messages 変数にインポートします。また、コ
    マンドレット パラメーターのすべての既定値を使用します。
    
    このコマンドが C:\test ディレクトリ内の Archives.ps1 スクリプトに含まれてお
    り、$PsUICulture 自動変数の値が zh-CN の場合、Import-LocalizedData は Archiv
    es.psd1 ファイルを C:\test\zh-CN ディレクトリにインポートします。
    
    -------------------------- 例 2 --------------------------
    
    C:\PS>import-localizeddata -bindingVariable msgTbl -uiculture ar-SA -filenam
    e Simple -baseDirectory C:\Data\Localized
    
    説明
    -----------
    このコマンドは、テキスト文字列をスクリプトの $msgTbl 変数にインポートします。
    
    また、UICulture パラメーターを使用して、C:\Data\Localized の ar-SA サブディレ
    クトリ内の Simple.psd1 ファイルからデータをインポートするようにコマンドレット
    に指示します。
    
    -------------------------- 例 3 --------------------------
    
    C:\PS># In C:\Test\en-US\test.psd1:
    
    ConvertFrom-StringData @'
     # English strings
    Msg1 = "The Name parameter is missing from the command."
    Msg2 = "This command requires the credentials of a member of the Administrat
    ors group on the computer."
    Msg3 = "Use $_ to represent the object that is being processed."
    '@
    
    # In C:\Test\Test.ps1
    
    import-localizeddata -bindingvariable messages
    write-host $messages.msg2
    
    # In Windows PowerShell
    
    C:\PS> .\test.ps1
    This command requires the credentials of a member of the Administrators grou
    p on the computer.
    
    説明
    -----------
    この例は、単純なスクリプトでローカライズされたデータを使用する方法を示してい
    ます。
    
    この例の最初の部分は、Test.psd1 ファイルの内容を示しています。この部分には、
    一連の名前付きテキスト文字列をハッシュ テーブルに変換する ConvertFrom-String
    Data コマンドが含まれています。test.psd1 ファイルは、スクリプトが含まれてい
    る C:\Test ディレクトリの en-US サブディレクトリにあります。
    
    この例の 2 番目の部分は、Test.ps1 スクリプトの内容を示しています。この部分に
    は、一致する .psd1 ファイルからのデータを $Messages 変数にインポートする Impo
    rt-LocalizedData コマンドのほか、$Messages 変数内のいずれかのメッセージをホス
    ト プログラムに書き込む Write-Host コマンドが含まれています。
    
    この例の最後は、スクリプトを実行する部分です。出力結果からは、オペレーティン
    グ システムの現在のユーザーに対して設定されている UI 言語で、正しいユーザー 
    メッセージが表示されていることがわかります。
    
    -------------------------- 例 4 --------------------------
    
    C:\PS># In TestScript.ps1
    
    $UserMessages = DATA {
        ConvertFrom-StringData @'
        # English strings
            Msg1 = "Enter a name."
            Msg2 = "Enter your employee ID."
            Msg3 = "Enter your building number."
    '@ }
    
    Import-LocalizedData -bindingVariable UserMessages
    
    $UserMessages.Msg1
    ...
    
    説明
    -----------
    この例は、Import-LocalizedData を使用して、スクリプトの DATA セクションで定
    義された既定のテキスト文字列を置換する方法を示しています。
    
    この例では、TestScript.ps1 スクリプトの DATA セクションに、ConvertFrom-Strin
    gData コマンドが存在します。このコマンドによって、DATA セクションの内容がハッ
    シュ テーブルに変換され、$UserMessages 変数の値に保存されます。
    
    このスクリプトには、Import-LocalizedData コマンドも使用されています。このコマ
    ンドは、TestScript.psd1 ファイルの翻訳済みテキスト文字列のハッシュ テーブルを 
    $PsUICulture 変数の値で指定されたサブディレクトリにインポートします。この .ps
    d1 ファイルが見つかった場合、そのファイルの翻訳済みの文字列を同じ $UserMessag
    es 変数の値に保存し、DATA セクションのロジックで保存されたハッシュ テーブルを
    上書きします。
    
    3 番目のコマンドは、$UserMessages 変数の最初のメッセージを表示します。
    
    Import-LocalizedData コマンドが $PsUICulture 言語の .psd1 ファイルを検出した
    場合、$UserMessages 変数の値には翻訳済みのテキスト文字列が含まれています。何
    かの理由でコマンドが失敗した場合は、スクリプトの DATA セクションで定義された
    既定のテキスト文字列が表示されます。
    
    -------------------------- 例 5 --------------------------
    
    C:\PS># In Day1.ps1
    Import-LocalizedData -bindingVariable Day
    Day.MessageDate
    
    # In Day2.ps1
    Import-LocalizedData -bindingVariable Day -errorAction:silentlycontinue
    Day.MessageDate
    
    C:\PS> .\Day1.ps1
    
    Import-LocalizedData : Cannot find PowerShell data file 'Day1.psd1' in direc
    tory 'C:\ps-test\fr-BE\' or any parent culture directories.
    At C:\ps-test\Day1.ps1:17 char:21
    + Import-LocalizedData <<<<  Day
    Today is Tuesday
    
    C:\PS> .\Day2.ps1
    
    Today is Tuesday
    
    説明
    -----------
    この例は、Import-LocalizedData によって、ユーザーの UI カルチャに一致するデ
    ィレクトリが検出されない場合、またはこのようなディレクトリでスクリプトの .ps
    d1 ファイルが検出されない場合に、エラー メッセージが表示されないようにする方
    法を示しています。
    
    値が "SilentlyContinue" の ErrorAction 共通パラメーターを使用すると、エラー 
    メッセージを表示しないようにすることができます。これは、既定の言語またはフォ
    ールバック言語でユーザー メッセージが指定されている場合、およびエラー メッセ
    ージが不要な場合に特に便利です。
    
    この例では、Import-LocalizedData コマンドを含んでいる Day1.ps1 と Day2.ps1 
    の 2 つのスクリプトを比較します。これらのスクリプトは、Day2 では値が Silentl
    yContinue の ErrorAction 共通パラメーターを使用していることを除いて同じです。
    
    サンプル出力は、UI カルチャが fr-BE に設定され、その UI カルチャには一致する
    ファイルまたはディレクトリが存在しない場合に両方のスクリプトを実行した結果を
    示しています。Day1.ps1 の場合、エラー メッセージと英語の出力が表示されます。
    Day2.ps1 の場合、英語の出力のみが表示されます。
    
関連するリンク
    Online version: http://go.microsoft.com/fwlink/?LinkID=113342
    about_Script_Internationalization 
    	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、Cmdlet、Import-LocalizedData
ご利用数: 1976882
感想・要望・問い合わせは こちら