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 言語でユーザー メッセージを容易に表示できるようにして、世界中のユーザーのサービス向上を目的としています。 この方法とファイル形式の詳細については、about_Script_Internationalizationを.psd1参照してください。
例
例 1: テキスト文字列をインポートする
次の使用例は、テキスト文字列を変数に $Messages インポートします。 その他のすべてのコマンドレットのパラメーターの既定値を使用します。
Import-LocalizedData -BindingVariable "Messages"
コマンドがディレクトリ内のArchives.ps1 スクリプトにC:\Test含まれていて、自動変数の$PsUICulture値が zh-CN の場合は、Import-LocalizedDataディレクトリ内のファイルをC:\test\zh-CN$Messages変数にインポートArchives.psd1します。
例 2: ローカライズされたデータ文字列をインポートする
この例は、スクリプト内にないコマンド ラインで実行されます。 Test.psd1 ファイルからローカライズされたデータの文字列を取得し、コマンドラインに表示します。 コマンドはスクリプトでは使用されないため、FileName パラメーターが必要になります。 このコマンドでは、 UICulture パラメーターを使用して en-US カルチャを指定します。
Import-LocalizedData -FileName "Test.psd1" -UICulture "en-US"
Name Value
---- -----
Msg3 "Use $_ to represent the object that is being processed."
Msg2 "This command requires the credentials of a member of the Administrators group on the...
Msg1 "The Name parameter is missing from the command."
Import-LocalizedData は、ローカライズされたデータ文字列を含むハッシュ テーブルを返します。
例 3: UI カルチャ文字列をインポートする
Import-LocalizedData -BindingVariable "MsgTbl" -UICulture "ar-SA" -FileName "Simple" -BaseDirectory "C:\Data\Localized"
このコマンドは、テキスト文字列をスクリプトの変数に $MsgTbl インポートします。
UICulture パラメーターを使用して、コマンドレットのサブディレクトリC:\Data\Localized内のファイルからデータをSimple.psd1ar-SAインポートするように指示します。
例 4: ローカライズされたデータをスクリプトにインポートする
この例は、単純なスクリプト内のローカライズされたデータを表示する方法を示します。
PS C:\> # 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 Administrators 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
PS C:\> .\Test.ps1
This command requires the credentials of a member of the Administrators group on the computer.
この例の最初の部分は、ファイルの内容を Test.psd1 示しています。 これには、 ConvertFrom-StringData 一連の名前付きテキスト文字列をハッシュ テーブルに変換するコマンドが含まれています。 このファイルは Test.psd1 、スクリプトを含むディレクトリの C:\Test en-US サブディレクトリにあります。
この例の 2 番目の部分では、スクリプトの内容を Test.ps1 示します。 一致.psd1するImport-LocalizedDataファイルから変数に$Messagesデータをインポートするコマンドと、Write-Host変数内$Messagesのメッセージの 1 つをホスト プログラムに書き込むコマンドが含まれています。
例の最後の部分で、スクリプトを実行します。 出力は、オペレーティング システムの現在のユーザーのために設定された UI の言語で正しいユーザー メッセージが表示されることを示しています。
例 5: スクリプト内の既定のテキスト文字列を置き換える
この例では、スクリプトの Import-LocalizedData DATA セクションで定義されている既定のテキスト文字列を置き換える方法を示します。
PS C:\> # 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...
この例では、TestScript.ps1 スクリプトの DATA セクションに、DATA セクションの内容をハッシュ テーブルに変換し、変数の値に格納するコマンドが$UserMessages含まれていますConvertFrom-StringData。
スクリプトには、変数の値で指定されたサブディレクトリ内の TestScript.psd1 ファイルから翻訳されたテキスト文字列のハッシュ テーブルを$PsUICultureインポートするコマンドも含まれていますImport-LocalizedData。 コマンドによってファイルが .psd1 見つかると、変換された文字列がファイルから同じ $UserMessages 変数の値に保存され、DATA セクション ロジックによって保存されたハッシュ テーブルが上書きされます。
3 番目のコマンドは、変数の最初のメッセージを $UserMessages 表示します。
コマンドでImport-LocalizedData言語のファイルが.psd1$PsUICulture見つかると、変数の$UserMessages値には翻訳されたテキスト文字列が含まれます。 コマンドが何らかの理由で失敗した場合、スクリプトの DATA セクションに定義されている既定のテキスト文字列が表示されます。
例 6: UI カルチャが見つからない場合にエラー メッセージを表示しない
この例では、ユーザーの UI カルチャに一致するディレクトリが見つからない場合、またはそれらのディレクトリ内のスクリプトのファイルが見.psd1つからない場合Import-LocalizedDataに表示されるエラー メッセージを抑制する方法を示します。
PS C:\> # In Day1.ps1
Import-LocalizedData -BindingVariable "Day"
# In Day2.ps1
Import-LocalizedData -BindingVariable "Day" -ErrorAction:SilentlyContinue
PS C:\> .\Day1.ps1
Import-LocalizedData : Cannot find PowerShell data file 'Day1.psd1' in directory '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
PS C:\> .\Day2.ps1
Today is Tuesday
SilentlyContinue の値を持つ ErrorAction 共通パラメーターを使用して、エラー メッセージを非表示にすることができます。 これは、既定またはフォールバック言語でユーザー メッセージを指定し、エラー メッセージが不要な場合に特に便利です。
この例では、 Day1.ps1 コマンドを含む 2 つのスクリプトとDay2.ps1を Import-LocalizedData 比較します。 スクリプトは同じですが、Day2 では ErrorAction 共通パラメーターと値 SilentlyContinueが .
サンプル出力は、UI カルチャが設定されていて、その UI カルチャに一致するファイルやディレクトリがない場合に fr-BE 、両方のスクリプトを実行した結果を示しています。 Day1.ps1 には、エラー メッセージと英語の出力が表示されます。 Day2.ps1 単に英語の出力を表示します。
パラメーター
ファイルが配置されているベース ディレクトリを .psd1 指定します。 既定では、スクリプトが配置されているディレクトリです。 Import-LocalizedData は、ベース ディレクトリの .psd1 言語固有のサブディレクトリ内のスクリプトのファイルを検索します。
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
テキスト文字列のインポート先の変数を指定します。 ドル記号 ($) を付けずに変数名を入力します。
Windows PowerShell 2.0 ではこのパラメーターは必須です。 Windows PowerShell 3.0 ではこのパラメーターは省略可能です。 このパラメーターを省略した場合は、 Import-LocalizedData テキスト文字列のハッシュ テーブルを返します。 ハッシュ テーブルは、パイプラインに渡されるか、コマンドラインに表示されます。
スクリプトの DATA セクションで指定された既定のテキスト文字列を置き換えるために使用 Import-LocalizedData する場合は、DATA セクションを変数に割り当て、 BindingVariable パラメーターの値に DATA セクション変数の名前を入力します。 次に、インポートしたコンテンツを BindingVariable に保存するとImport-LocalizedData、インポートされたデータによって既定のテキスト文字列が置き換えられます。 既定のテキスト文字列を指定しない場合は、任意の変数名を選択することができます。
| Type: | String |
| Aliases: | Variable |
| Position: | 0 |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
インポートするデータ ファイル.psd1) の名前を指定します。 ファイル名を入力します。 ファイル名拡張子を含 .psd1 まないファイル名を指定することも、ファイル名拡張子を含むファイル名を .psd1 指定することもできます。 データ ファイルは Unicode または UTF-8 として保存する必要があります。
FileName パラメーターは、スクリプトで使用されていない場合Import-LocalizedDataに必要です。
それ以外の場合、このパラメーターは省略可能であり、既定値はスクリプトのベース名です。 このパラメーターを使用すると、別.psd1のファイルを検索するように指示Import-LocalizedDataできます。
たとえば、 FileName を省略し、スクリプト名をFindFiles.ps1場合は、 Import-LocalizedData FindFiles.psd1 データ ファイルを検索します。
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
データのみを生成するコマンドレットと関数を指定します。
このパラメーターを使用して、記述またはテストしたコマンドレットと関数を指定します。 詳細については、 about_Script_Internationalizationを参照してください。
| Type: | String[] |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
代替の UI カルチャを指定します。
既定値は自動変数の $PsUICulture 値です。
UI カルチャを 、などのen-USde-DE形式で<language>-<region>入力しますar-SA。
UICulture パラメーターの値は、スクリプトのファイルを取得.psd1するImport-LocalizedData言語固有のサブディレクトリ (ベース ディレクトリ内) を決定します。
コマンドレットは、 UICulture パラメーターまたは $PsUICulture 自動変数の値と同じ名前のサブディレクトリを検索します(例: de-DE または ar-SA. ディレクトリが見つからない場合、またはディレクトリにスクリプトのファイルが含 .psd1 まれていない場合は、de や ar などの言語コードの名前を持つサブディレクトリを検索します。 サブディレクトリまたは .psd1 ファイルが見つからない場合、コマンドは失敗し、スクリプトで指定された既定の言語でデータが表示されます。
| Type: | String |
| Position: | 1 |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
入力
None
パイプを使用してこのコマンドレットに入力を渡すことはできません。
出力
Import-LocalizedDataは、BindingVariable パラメーターの値で指定された変数にハッシュ テーブルを保存します。
メモ
使用する
Import-LocalizedData前に、ユーザー メッセージをローカライズします。 キーと値のペアのハッシュ テーブル内の各ロケール (UI カルチャ) のメッセージを書式設定し、スクリプトおよびファイル名拡張子と同じ名前のファイルにハッシュ テーブルを.psd1保存します。 サポートされている各 UI カルチャのスクリプト ディレクトリの下にディレクトリを作成し、UI カルチャ名を使用してディレクトリ内の各 UI カルチャのファイルを保存.psd1します。たとえば、de-DE ロケールのユーザー メッセージをローカライズし、ハッシュ テーブルで書式を設定します。 ハッシュ テーブルをファイルに
<ScriptName>.psd1保存します。 次に、de-DEスクリプト ディレクトリの下にサブディレクトリを作成し、サブディレクトリにドイツ語<ScriptName\>.psd1ファイルをde-DE保存します。 サポートしているロケールごとにこのメソッドを繰り返します。Import-LocalizedDataは、スクリプトのローカライズされたユーザー メッセージの構造化検索を実行します。Import-LocalizedDataは、スクリプト ファイルが配置されているディレクトリ (または BaseDirectory パラメーターの値) で検索を開始します。 次に、基本ディレクトリ内で、変数の値 (または UICulture パラメーターの値) と同じ名前の$PsUICultureサブディレクトリを検索します(例:de-DE.ar-SA. 次に、そのサブディレクトリ.psd1で、スクリプトと同じ名前のファイル (または FileName パラメーターの値) を検索します。UI カルチャの名前を持つサブディレクトリが見つからない場合、またはサブディレクトリにスクリプトのファイルが含
.psd1まれていない場合Import-LocalizedDataは、de や ar などの言語コードの名前を持つサブディレクトリ内のスクリプトのファイルを検索.psd1します。 サブディレクトリまたは.psd1ファイルが見つからない場合、コマンドは失敗し、スクリプトの既定の言語でデータが表示され、データをインポートできなかったことを示すエラー メッセージが表示されます。 メッセージを抑制し、正常に失敗するには、 ErrorAction 共通パラメーターを値 SilentlyContinue と共に使用します。Import-LocalizedDataサブディレクトリとファイルが見つかると.psd1、ユーザー メッセージのハッシュ テーブルがコマンドの BindingVariable パラメーターの値にインポートされます。 次に、変数のハッシュ テーブルからメッセージを表示すると、ローカライズされたメッセージが表示されます。詳細については、 about_Script_Internationalizationを参照してください。