Import-LocalizedData
オペレーティング システム用に選択された UI カルチャに基づいて、言語固有のデータをスクリプトと関数にインポートします。
構文
Default (既定)
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を参照してください。
例
例 1: テキスト文字列をインポートする
次の使用例は、テキスト文字列を $Messages 変数にインポートします。 他のすべてのコマンドレット パラメーターの既定値が使用されます。
Import-LocalizedData -BindingVariable "Messages"
コマンドが C:\Test ディレクトリの Archives.ps1 スクリプトに含まれていて、$PsUICulture 自動変数の値が zh-CNされている場合は、Import-LocalizedData ディレクトリ内の Archives.psd1 ファイルを C:\test\zh-CN 変数にインポート $Messages。
例 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 パラメーターを使用して、Simple.psd1の ar-SA サブディレクトリにある C:\Data\Localized ファイルからデータをインポートするようにコマンドレットに指示します。
例 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 スクリプトの内容を示しています。 これには、一致する Import-LocalizedData ファイルから .psd1 変数にデータをインポートする $Messages コマンドと、Write-Host 変数内のメッセージの 1 つをホスト プログラムに書き込む $Messages コマンドが含まれています。
この例の最後の部分では、スクリプトを実行します。 出力は、オペレーティング システムの現在のユーザーの 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 コマンドが含まれています。
このスクリプトには、$PsUICulture変数の値で指定されたサブディレクトリ内の TestScript.psd1 ファイルから翻訳されたテキスト文字列のハッシュ テーブルをインポートする 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
エラー メッセージを抑制するには、ErrorAction 共通パラメーターを値 SilentlyContinue と共に使用できます。 これは、既定の言語またはフォールバック言語でユーザー メッセージを指定していて、エラー メッセージが不要な場合に特に便利です。
この例では、Day1.ps1 コマンドを含む 2 つのスクリプト (Import-LocalizedData と Day2.ps1) を比較します。 スクリプトは同じですが、Day2 では値が の共通パラメーター SilentlyContinue ErrorAction が使用されます。
サンプル出力は、UI カルチャが fr-BE に設定されていて、その UI カルチャに一致するファイルまたはディレクトリがない場合に、両方のスクリプトを実行した結果を示しています。
Day1.ps1 エラー メッセージと英語の出力が表示されます。
Day2.ps1 英語の出力が表示されます。
パラメーター
-BaseDirectory
.psd1 ファイルが配置されているベース ディレクトリを指定します。 既定値は、スクリプトが配置されているディレクトリです。
Import-LocalizedData は、ベース ディレクトリの言語固有のサブディレクトリにあるスクリプトの .psd1 ファイルを検索します。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-BindingVariable
テキスト文字列をインポートする変数を指定します。 ドル記号 ($) なしで変数名を入力します。
Windows PowerShell 2.0 では、このパラメーターが必要です。 Windows PowerShell 3.0 では、このパラメーターは省略可能です。 このパラメータを省略すると、 Import-LocalizedData はテキスト文字列のハッシュテーブルを返します。 ハッシュテーブルは、パイプラインに渡されるか、コマンドラインに表示されます。
Import-LocalizedData を使用してスクリプトの DATA セクションで指定された既定のテキスト文字列を置き換える場合は、DATA セクションを変数に割り当て、BindingVariable パラメーターの値に DATA セクション変数の名前を入力します。 次に、Import-LocalizedData インポートしたコンテンツを BindingVariableに保存すると、インポートされたデータによって既定のテキスト文字列が置き換えられます。 デフォルトのテキスト文字列を指定しない場合は、任意の変数名を選択できます。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | 変数 |
パラメーター セット
(All)
| 配置: | 0 |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-FileName
インポートするデータ ファイル (.psd1) の名前を指定します。 ファイル名を入力します。 ファイル名の拡張子を .psd1 含まないファイル名を指定することも、ファイル名の拡張子を .psd1 含むファイル名を指定することもできます。 データ ファイルは Unicode または UTF-8 として保存する必要があります。
FileName パラメーターは、スクリプトで使用されていないImport-LocalizedDataに必要です。
それ以外の場合、パラメーターは省略可能であり、既定値はスクリプトのベース名です。 このパラメーターを使用して、別の Import-LocalizedData ファイルを検索するように .psd1 を指示できます。
たとえば、 FileName を省略し、スクリプト名が FindFiles.ps1の場合、 Import-LocalizedData は FindFiles.psd1 データ ファイルを検索します。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-SupportedCommand
データのみを生成するコマンドレットと関数を指定します。
このパラメーターを使用して、作成またはテストしたコマンドレットと関数を含めます。 詳細については、about_Script_Internationalizationを参照してください。
パラメーターのプロパティ
| 型: | String[] |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-UICulture
代替 UI カルチャを指定します。
既定値は、$PsUICulture 自動変数の値です。
<language>-<region>、en-US、de-DEなどの ar-SA 形式で UI カルチャを入力します。
UICulture パラメーターの値によって、スクリプトの Import-LocalizedData ファイルを取得する .psd1 (ベース ディレクトリ内の) 言語固有のサブディレクトリが決まります。
コマンドレットは、UICulture パラメーターの値または $PsUICulture や de-DEなどの ar-SA 自動変数と同じ名前のサブディレクトリを検索します。 ディレクトリが見つからない場合、またはディレクトリにスクリプトの .psd1 ファイルが含まれていない場合は、de や ar などの言語コードの名前を持つサブディレクトリを検索します。 サブディレクトリまたは .psd1 ファイルが見つからない場合、コマンドは失敗し、データはスクリプトで指定されたデフォルト言語で表示されます。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | 1 |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
CommonParameters
このコマンドレットでは、一般的なパラメーター -Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction、-WarningVariable の各パラメーターがサポートされています。 詳細については、about_CommonParametersを参照してください。
入力
None
パイプを使用してこのコマンドレットに入力を渡すことはできません。
出力
Hashtable
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 パラメーターの値) で検索を開始します。 次に、$PsUICultureや など、de-DE変数の値 (またはar-SAパラメーターの値) と同じ名前のサブディレクトリをベース ディレクトリ内で検索します。 次に、そのサブディレクトリで、スクリプトと同じ名前の.psd1ファイル (または FileName パラメーターの値) を検索します。UI カルチャの名前を持つサブディレクトリ
Import-LocalizedData見つからない場合、またはサブディレクトリにスクリプトの.psd1ファイルが含まれていない場合は、de や ar などの言語コードの名前を持つサブディレクトリ内のスクリプトの.psd1ファイルを検索します。 サブディレクトリまたは.psd1ファイルが見つからない場合、コマンドは失敗し、データはスクリプトのデフォルト言語で表示され、データをインポートできなかったことを説明するエラーメッセージが表示されます。 メッセージを抑制し、正常に失敗するには、ErrorAction 共通パラメーターを使用し、値を SilentlyContinue に設定します。サブディレクトリと
.psd1ファイルが見つかったImport-LocalizedData、ユーザー メッセージのハッシュ テーブルをコマンドの BindingVariable パラメーターの値にインポートします。 その後、ハッシュ・テーブルから変数にメッセージを表示すると、ローカライズされたメッセージが表示されます。詳細については、about_Script_Internationalizationを参照してください。