다음을 통해 공유


Import-LocalizedData

운영 체제에 대해 선택된 UI 문화권에 따라 언어별 데이터를 스크립트 및 함수로 가져옵니다.

구문

Import-LocalizedData
      [[-BindingVariable] <String>]
      [[-UICulture] <String>]
      [-BaseDirectory <String>]
      [-FileName <String>]
      [-SupportedCommand <String[]>]
      [<CommonParameters>]

Description

cmdlet은 Import-LocalizedData 이름이 운영 체제의 현재 사용자에 대해 설정된 UI 언어와 일치하는 하위 디렉터리에서 문자열을 동적으로 검색합니다. 스크립트가 현재 사용자가 선택한 UI 언어로 사용자 메시지를 표시할 수 있도록 설계되었습니다.

Import-LocalizedData 는 스크립트 디렉터리의 언어별 하위 디렉터리에 있는 파일에서 .psd1 데이터를 가져와 명령에 지정된 지역 변수에 저장합니다. cmdlet은 자동 변수의 $PSUICulture 값에 따라 하위 디렉터리 및 파일을 선택합니다. 스크립트에서 로컬 변수를 사용하여 사용자 메시지를 표시하면 메시지가 사용자의 UI 언어로 표시됩니다.

매개 변수 Import-LocalizedData 를 사용하여 대체 UI 문화권, 경로 및 파일 이름을 지정하고, 지원되는 명령을 추가하고, 파일을 찾을 수 없는 경우 .psd1 표시되는 오류 메시지를 표시하지 않을 수 있습니다.

이 cmdlet은 Import-LocalizedData Windows PowerShell 2.0에서 도입된 스크립트 국제화 이니셔티브를 지원합니다. 이 이니셔티브는 스크립트가 사용자 메시지를 현재 사용자의 UI 언어로 쉽게 표시할 수 있도록 하여 전 세계 사용자에게 더 나은 서비스를 제공하는 것을 목표로 합니다. 이에 대한 자세한 내용과 파일 형식 .psd1 에 대한 자세한 내용은 about_Script_Internationalization 참조하세요.

예제

예제 1: 텍스트 문자열 가져오기

다음은 텍스트 문자열을 변수로 가져오는 예제입니다 $Messages . 다른 모든 cmdlet 매개 변수의 기본값을 사용합니다.

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's 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 매개 변수를 사용하여 cmdlet이 하위 디렉터리의 파일 ar-SA 에서 Simple.psd1 데이터를 가져오도록 지시합니다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's 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 파일은 스크립트를 포함하는 디렉터리의 en-US 하위 C:\Test 디렉터리에 있습니다.

예제의 두 번째 부분에서는 스크립트의 내용을 보여 줍니다 Test.ps1 . 일치하는 .psd1 파일의 데이터를 변수로 $Messages 가져오는 명령과 Write-Host 변수의 메시지 $Messages 중 하나를 호스트 프로그램에 쓰는 명령이 포함 Import-LocalizedData 됩니다.

예제의 마지막 부분에서 스크립트를 실행합니다. 출력은 운영 체제의 현재 사용자에 대해 설정된 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 섹션 논리에 의해 저장된 해시 테이블을 덮어씁니다.

세 번째 명령은 변수의 첫 번째 메시지를 $UserMessages 표시합니다.

명령이 Import-LocalizedData 언어에 대한 $PsUICulture 파일을 찾으 .psd1 면 변수 값에 $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 : Can't 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 와 Day2.ps1을 비교합니다 Import-LocalizedData . Day2에서 값SilentlyContinue이 있는 ErrorAction 공통 매개 변수를 사용한다는 점을 제외하면 스크립트는 동일합니다.

샘플 출력은 UI 문화권이 설정 fr-BE 되고 해당 UI 문화권에 대해 일치하는 파일이나 디렉터리 없이 두 스크립트를 실행한 결과를 보여 줍니다. Day1.ps1 은 오류 메시지와 영어 출력을 표시합니다. Day2.ps1 영어 출력만 표시합니다.

매개 변수

-BaseDirectory

파일이 있는 .psd1 기본 디렉터리를 지정합니다. 기본값은 스크립트가 있는 디렉터리입니다. Import-LocalizedData.psd1 기본 디렉터리의 언어별 하위 디렉터리에서 스크립트에 대한 파일을 검색합니다.

형식:String
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-BindingVariable

텍스트 문자열을 가져올 변수를 지정합니다. 달러 기호($)가 없는 변수 이름을 입력합니다.

Windows PowerShell 2.0에서는 이 매개 변수가 필수이지만 Windows PowerShell 3.0에서 이 매개 변수는 선택 사항입니다. 이 매개 변수 Import-LocalizedData 를 생략하면 텍스트 문자열의 해시 테이블을 반환합니다. 해시 테이블이 파이프라인 아래로 전달되거나 명령줄에 표시됩니다.

스크립트의 DATA 섹션에 지정된 기본 텍스트 문자열을 바꾸는 데 사용할 Import-LocalizedData 경우 DATA 섹션을 변수에 할당하고 BindingVariable 매개 변수 값에 DATA 섹션 변수의 이름을 입력합니다. 그런 다음 가져온 Import-LocalizedData 콘텐츠를 BindingVariable저장하면 가져온 데이터가 기본 텍스트 문자열을 바꿉니다. 기본 텍스트 문자열을 지정하지 않는 경우 변수 이름을 선택할 수 있습니다.

형식:String
별칭:Variable
Position:0
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-FileName

가져올 데이터 파일.psd1) 의 이름을 지정합니다. 파일 이름을 입력합니다. 파일 이름 확장명을 포함하지 .psd1 않는 파일 이름을 지정하거나 파일 이름 확장명을 포함하여 .psd1 파일 이름을 지정할 수 있습니다. 데이터 파일은 유니코드 또는 UTF-8로 저장해야 합니다.

스크립트에서 사용되지 않는 경우 Import-LocalizedData FileName 매개 변수가 필요합니다. 그렇지 않으면 매개 변수는 선택 사항이며 기본값은 스크립트의 기본 이름입니다. 이 매개 변수를 사용하여 다른 .psd1 파일을 검색하도록 지시 Import-LocalizedData 할 수 있습니다.

예를 들어 FileName을 생략하고 스크립트 이름이 있으면 Import-LocalizedData FindFiles.ps1데이터 파일을 검색합니다.FindFiles.psd1

형식:String
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-SupportedCommand

데이터만 생성하는 cmdlet 및 함수를 지정합니다.

이 매개 변수를 사용하여 작성하거나 테스트한 cmdlet 및 함수를 포함합니다. 자세한 내용은 about_Script_Internationalization 참조하세요.

형식:String[]
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-UICulture

대체 UI 문화권을 지정합니다. 기본값은 자동 변수의 $PsUICulture 값입니다. 형식(예: , 또는 ar-SA.)으로 <language>-<region> en-USUI 문화권을 de-DE입력합니다.

UICulture 매개 변수의 값은 스크립트의 파일을 가져오는 .psd1 언어별 하위 디렉터리(기본 디렉터리 내)Import-LocalizedData를 결정합니다.

cmdlet은 UICulture 매개 변수 $PsUICulture 또는 자동 변수(예de-DE: 또는 ar-SA.)의 값과 이름이 같은 하위 디렉터리를 검색합니다. 디렉터리를 찾을 수 없거나 디렉터리에 스크립트에 대한 파일이 없는 .psd1 경우 de 또는 ar과 같은 언어 코드의 이름을 가진 하위 디렉터리를 검색합니다. 하위 디렉터리 또는 .psd1 파일을 찾을 수 없는 경우 명령이 실패하고 데이터가 스크립트에 지정된 기본 언어로 표시됩니다.

형식:String
Position:1
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

입력

None

개체를 이 cmdlet으로 파이프할 수 없습니다.

출력

Hashtable

이 cmdlet은 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 파일을 찾을 수 없는 경우 명령이 실패하고, 데이터가 스크립트의 기본 언어로 표시되고, 데이터를 가져올 수 없음을 설명하는 오류 메시지가 표시됩니다. 메시지를 표시하지 않고 정상적으로 실패하려면 SilentlyContinue 값과 함께 ErrorAction 공통 매개 변수를 사용합니다.

    하위 디렉터리와 .psd1 파일을 찾으면 Import-LocalizedData 사용자 메시지의 해시 테이블을 명령의 BindingVariable 매개 변수 값으로 가져옵니다. 그런 다음 변수에 해시 테이블의 메시지를 표시하면 지역화된 메시지가 표시됩니다.

    자세한 내용은 about_Script_Internationalization 참조하세요.