Import-LocalizedData
운영 체제에 대해 선택한 UI culture를 기준으로 하여 언어별 데이터를 스크립트 및 함수로 가져옵니다.
구문
Import-LocalizedData [-BindingVariable] <string> [[-UICulture] <string>] [-BaseDirectory <string>] [-FileName <string>] [-SupportedCommand <string[]>] [<CommonParameters>]
설명
Import-LocalizedData cmdlet은 운영 체제의 현재 사용자에 대해 설정된 UI 언어와 일치하는 이름의 문자열을 하위 디렉터리에서 동적으로 검색합니다. 이 cmdlet은 스크립트에 현재 사용자가 선택한 UI 언어로 사용자 메시지를 표시할 수 있도록 설계되었습니다.
Import-LocalizedData는 스크립트 디렉터리의 언어별 하위 디렉터리에 있는 .psd1 파일의 데이터를 가져와 명령에 지정된 로컬 변수에 저장합니다. 이 cmdlet은 $PSUICulture 자동 변수의 값을 기준으로 하위 디렉터리 및 파일을 선택합니다. 스크립트의 로컬 변수를 통해 사용자 메시지를 표시하는 경우 메시지는 사용자의 UI 언어로 표시됩니다.
Import-LocalizedData의 매개 변수를 사용하여 대체 UI culture, 경로 및 파일 이름을 지정하고, 지원되는 명령을 추가하고, .psd1 파일이 없으면 표시되는 오류 메시지를 무시할 수 있습니다.
Import-LocalizedData cmdlet은 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 섹션을 할당하고 BindingVariable 매개 변수 값에 DATA 섹션 변수의 이름을 입력하십시오. 그런 후에 Import-LocalizedData가 가져온 내용을 BindingVariable에 저장하면 기본 텍스트 문자열이 가져온 데이터로 바뀝니다. 기본 텍스트 문자열을 지정하지 않는 경우 어떤 변수 이름도 선택할 수 있습니다.
필수 여부 |
true |
위치 |
1 |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-FileName <string>
가져올 .psd1 파일의 이름을 지정합니다. .psd1 파일 이름의 확장명 없이 파일 이름을 입력합니다.
기본값은 스크립트의 이름입니다. 예를 들어 스크립트가 FindFiles.ps1인 경우 Import-LocalizedData는 FindFiles.psd1을 검색합니다. 이 매개 변수를 사용하여 다른 .psd1 파일을 검색하도록 Import-LocalizedData에 지시할 수 있습니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-SupportedCommand <string[]>
데이터만 생성하는 cmdlet 및 함수를 지정합니다.
이 매개 변수를 사용하면 사용자가 작성하거나 테스트한 cmdlet 및 함수를 포함할 수 있습니다. 자세한 내용은 about_Script_Internationalization을 참조하십시오.
필수 여부 |
false |
위치 |
named |
기본값 |
없음 |
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-UICulture <string>
대체 UI culture를 지정합니다. 기본값은 $PsUICulture 자동 변수의 값입니다. en-US, de-DE, ar-SA와 같이 "<language>-<region>" 형식으로 UI culture를 입력합니다.
UICulture 매개 변수의 값에 따라 Import-LocalizedData가 스크립트에 대한 .psd1 파일을 가져오는 기본 디렉터리 내의 언어별 하위 디렉터리가 결정됩니다.
이 cmdlet은 UICulture 매개 변수 또는 $PsUICulture 자동 변수의 값(예: "de-DE" 또는 "ar-SA")과 이름이 같은 하위 디렉터리를 검색합니다. 디렉터리가 없거나 디렉터리에 스크립트에 대한 .psd1 파일이 없는 경우에는 언어 코드 이름(예: "de" 또는 "ar")으로 된 하위 디렉터리를 검색합니다. 그래도 하위 디렉터리나 .psd1 파일이 없으면 명령이 실패하고 데이터가 스크립트에 지정된 기본 언어로 표시됩니다.
필수 여부 |
false |
위치 |
2 |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
<CommonParameters>
이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.
입력 및 출력
입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.
입력 |
없음 입력을 이 cmdlet으로 파이프할 수 없습니다. |
출력 |
System.Collections.Hashtable Import-LocalizedData는 BindingVariable 매개 변수의 값으로 지정된 변수에 해시 테이블을 저장합니다. |
참고
Import-LocalizedData를 사용하기 전에 사용자 메시지를 지역화하십시오. 그리고 키/값 쌍의 해시 테이블에서 각 로캘(UI culture)에 대해 메시지 형식을 지정한 다음 해시 테이블을 스크립트와 이름이 같고 .psd1 파일 이름 확장명을 사용하는 파일에 저장합니다. 그런 다음 지원되는 각 UI culture에 대한 스크립트 디렉터리 아래에 디렉터리를 만든 다음 각 UI culture의 .psd1 파일을 UI culture 이름이 지정된 해당 디렉터리에 저장합니다.
예를 들어 사용자 메시지를 de-DE 로캘로 지역화하여 해시 테이블에 저장하고, 해시 테이블을 <ScriptName>.psd1 파일에 저장합니다. 그런 다음 스크립트 디렉터리 아래에 de-DE 하위 디렉터리를 만들어 de-DE <ScriptName>.psd1 파일을 de-DE 하위 디렉터리에 저장합니다. 지원하는 각 로캘에 대해 이 방법을 반복합니다.
Import-LocalizedData는 스크립트에 대해 지역화된 사용자 메시지를 구조적으로 검색합니다.
Import-LocalizedData는 스크립트 파일 또는 BaseDirectory 매개 변수의 값이 있는 디렉터리에서 검색을 시작합니다. 그런 다음 기본 디렉터리 내에서 $PsUICulture 변수 값 또는 UICulture 매개 변수의 값(예: "de-DE" 또는 "ar-SA")과 이름이 같은 하위 디렉터리를 검색합니다. 다음으로 Import-LocalizedData는 해당 하위 디렉터리에서 FileName 매개 변수의 값이나 스크립트와 이름이 같은 .psd1 파일을 검색합니다.
Import-LocalizedData를 통해 UI culture 이름을 갖는 하위 디렉터리를 찾을 수 없거나 하위 디렉터리에 스크립트에 대한 .psd1 파일이 없는 경우 언어 코드 이름(예: "de" 또는 "ar")으로 된 하위 디렉터리에서 스크립트에 대한 .psd1 파일을 검색합니다. 하위 디렉터리나 .psd1 파일도 없으면 명령이 실패하고 데이터가 스크립트의 기본 언어로 표시되며 데이터를 가져올 수 없음을 설명하는 오류 메시지가 표시됩니다. 이 메시지를 무시하고 명령이 실패하도록 하려면 값이 SilentlyContinue인 ErrorAction 일반 매개 변수를 사용합니다.
하위 디렉터리와 .psd1 파일이 있는 경우 Import-LocalizedData는 사용자 메시지의 해시 테이블을 명령의 BindingVariable 매개 변수 값으로 가져옵니다. 그러면 해시 테이블의 메시지를 변수에 표시할 때 지역화된 메시지가 표시됩니다.
자세한 내용은 about_Script_Internationalization을 참조하십시오.
예 1
C:\PS>import-localizeddata -bindingVariable messages
설명
-----------
이 명령은 텍스트 문자열을 $messages 변수로 가져옵니다. cmdlet 매개 변수의 기본값이 모두 사용됩니다.
이 명령이 C:\test 디렉터리의 Archives.ps1 스크립트에 포함되어 있으며 $PsUICulture 자동 변수의 값이 zh-CN인 경우 Import-LocalizedData는 C:\test\zh-CN 디렉터리의 Archives.psd1 파일을 가져옵니다.
예 2
C:\PS>import-localizeddata -bindingVariable msgTbl -uiculture ar-SA -filename Simple -baseDirectory C:\Data\Localized
설명
-----------
이 명령은 텍스트 문자열을 스크립트의 $msgTbl 변수로 가져옵니다.
이 명령은 UICulture 매개 변수를 사용하여 C:\Data\Localized의 ar-SA 하위 디렉터리에 있는 Simple.psd1 파일의 데이터를 가져오도록 cmdlet에 지시합니다.
예 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 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
C:\PS> .\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 하위 디렉터리에 있습니다.
예의 두 번째 부분에서는 Test.ps1 스크립트의 내용을 보여 줍니다. 여기에는 일치하는 .psd1 파일의 데이터를 $Messages 변수로 가져오는 Import-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 섹션에 DATA 섹션의 내용을 해시 테이블로 변환하고 $UserMessages 변수의 값에 저장하는 ConvertFrom-StringData 명령이 포함되어 있습니다.
스크립트에는 $PsUICulture 변수의 값에 의해 지정된 하위 디렉터리의 TestScript.psd1 파일에서 변환된 텍스트 문자열의 해시 테이블을 가져오는 Import-LocalizedData 명령이 포함되어 있습니다. 명령에서 .psd1 파일을 찾으면 파일의 변환된 문자열을 동일한 $UserMessages 변수의 값으로 저장하여 DATA 섹션 로그에서 저장한 해시 테이블을 덮어씁니다.
세 번째 명령은 $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 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
C:\PS> .\Day2.ps1
Today is Tuesday
설명
-----------
이 예에서는 Import-LocalizedData가 사용자 UI culture와 일치하는 디렉터리를 찾을 수 없거나 해당 디렉터리에서 스크립트에 대한 .psd1 파일을 찾을 수 없을 때 표시되는 오류 메시지를 무시하는 방법을 보여 줍니다.
값이 "SilentlyContinue"인 ErrorAction 일반 매개 변수를 사용하여 오류 메시지를 무시할 수 있습니다. 이 매개 변수는 사용자 메시지를 기본 언어 또는 "대체" 언어로 제공 받았을 때 오류 메시지가 필요하지 않은 경우 특히 유용합니다.
이 예에서는 Import-LocalizedData 명령을 포함하는 두 스크립트인 Day1.ps1과 Day2.ps1을 비교합니다. Day2가 값이 SilentlyContinue인 ErrorAction 일반 매개 변수를 사용한다는 점을 제외하면 이 두 스크립트는 동일합니다.
샘플 출력에서는 UI culture가 fr-BE로 설정되어 있으며 해당 UI culture에 일치하는 파일이나 디렉터리가 없을 때 두 스크립트를 실행한 결과를 보여 줍니다. Day1.ps1의 경우에는 오류 메시지와 영문 출력이 표시되지만 Day2.ps1의 경우에는 영문 출력만 표시됩니다.