다음을 통해 공유


Import-LocalizedData

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

구문

Default (기본값)

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

Description

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

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

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

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

예제

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

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

Import-LocalizedData -BindingVariable "Messages"

명령이 C:\Test 디렉터리의 Archives.ps1 스크립트에 포함되어 있고 $PSUICulture 자동 변수의 값이 zh-CN경우 Import-LocalizedDataArchives.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'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이 Simple.psd1ar-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'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 파일은 스크립트를 포함하는 C:\Test 디렉터리의 en-US 하위 디렉터리에 있습니다.

예제의 두 번째 부분에서는 Test.ps1 스크립트의 내용을 보여 줍니다. 일치하는 Import-LocalizedData 파일의 데이터를 .psd1 변수로 가져오는 $Messages 명령과 Write-Host 변수의 메시지 중 하나를 호스트 프로그램에 쓰는 $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 섹션의 내용을 해시 테이블로 변환하고 ConvertFrom-StringData 변수의 값에 저장하는 $UserMessages 명령이 포함되어 있습니다.

스크립트에는 Import-LocalizedData 변수 값으로 지정된 하위 디렉터리의 TestScript.psd1 파일에서 변환된 텍스트 문자열의 해시 테이블을 가져오는 $PSUICulture 명령도 포함되어 있습니다. 명령이 .psd1 파일을 찾으면 파일의 번역된 문자열을 동일한 $UserMessages 변수 값으로 저장하고 DATA 섹션 논리에 의해 저장된 해시 테이블을 덮어씁니다.

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

Import-LocalizedData 명령이 .psd1 언어에 대한 $PSUICulture 파일을 찾으면 $UserMessages 변수의 값에 번역된 텍스트 문자열이 포함됩니다. 어떤 이유로든 명령이 실패하면 이 명령은 스크립트의 DATA 섹션에 정의된 기본 텍스트 문자열을 표시합니다.

예제 6: UI 문화권을 찾을 수 없는 경우 오류 메시지 표시 안 함

이 예제에서는 Import-LocalizedData 사용자의 UI 문화권과 일치하는 디렉터리를 찾을 수 없거나 해당 디렉터리에서 스크립트에 대한 .psd1 파일을 찾을 수 없을 때 나타나는 오류 메시지를 표시하지 않는 방법을 보여 드립니다.

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 명령을 포함하는 두 스크립트(Import-LocalizedData 및 Day2.ps1)를 비교합니다. Day2에서 ErrorAction 공통 매개 변수를 SilentlyContinue값을 사용한다는 점을 제외하면 스크립트는 동일합니다.

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

매개 변수

-BaseDirectory

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

매개 변수 속성

형식:String
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position: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
Default value:None
와일드카드 지원:False
DontShow:False
별칭:변수

매개 변수 집합

(All)
Position:0
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-FileName

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

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

예를 들어 FileName 생략되고 스크립트 이름이 FindFiles.ps1경우 Import-LocalizedDataFindFiles.psd1 데이터 파일을 검색합니다.

매개 변수 속성

형식:String
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-SupportedCommand

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

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

매개 변수 속성

형식:

String[]

Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-UICulture

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

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

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

매개 변수 속성

형식:String
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:1
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

CommonParameters

이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.

입력

None

개체를 이 cmdlet에 파이프로 연결할 수 없습니다.

출력

Hashtable

이 cmdlet은 BindingVariable 매개 변수의 값으로 지정된 변수에 해시 테이블을 저장합니다.

참고

  • Import-LocalizedData사용하기 전에 사용자 메시지를 지역화합니다. 키-값 쌍의 해시 테이블로 각 로캘(UI 문화권)에 대한 메시지의 서식을 지정하고, 스크립트와 이름이 같은 파일 및 .psd1 파일 이름 확장명을 가진 파일에 해시 테이블을 저장합니다. 지원되는 각 UI 문화권에 대한 스크립트 디렉터리 아래에 디렉터리를 만든 다음, 디렉터리의 각 UI 문화권에 대한 .psd1 파일을 UI 문화권 이름으로 저장합니다.

    예를 들어 de-DE 로캘에 대한 사용자 메시지를 지역화하고 해시 테이블로 서식을 지정합니다. 해시 테이블을 <ScriptName>.psd1 파일에 저장합니다. 그런 다음 스크립트 디렉터리 아래에 de-DE 하위 디렉터리를 만들고 독일 <ScriptName>.psd1 파일을 de-DE 하위 디렉터리에 저장합니다. 지원하는 각 로캘에 대해 이 메서드를 반복합니다.

  • Import-LocalizedData 스크립트에 대해 지역화된 사용자 메시지에 대해 구조화된 검색을 수행합니다.

    Import-LocalizedData 스크립트 파일이 있는 디렉터리(또는 BaseDirectory 매개 변수의 값)에서 검색을 시작합니다. 그런 다음 기본 디렉터리 내에서 $PSUICulture 변수의 값(또는 또는 de-DE같은 ar-SA 매개 변수의 값)과 같은 이름의 하위 디렉터리를 검색합니다. 그런 다음 해당 하위 디렉터리에서 스크립트와 이름이 같은 .psd1 파일(또는 FileName 매개 변수의 값)을 검색합니다.

    Import-LocalizedData UI 문화권의 이름을 가진 하위 디렉터리를 찾을 수 없거나 하위 디렉터리에 스크립트에 대한 .psd1 파일이 없는 경우 de 또는 ar과 같은 언어 코드 이름이 있는 하위 디렉터리에서 스크립트에 대한 .psd1 파일을 검색합니다. 하위 디렉터리 또는 .psd1 파일을 찾을 수 없는 경우 명령이 실패하고, 데이터가 스크립트의 기본 언어로 표시되고, 데이터를 가져올 수 없다는 오류 메시지가 표시됩니다. 메시지를 표시하지 않고 정상적으로 실패하려면 ErrorAction 일반 매개 변수를 SilentlyContinue 값과 함께 사용합니다.

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

    PowerShell 7.5.5부터 cmdlet은 UICulture 매개 변수를 en-US 사용하지 않을 때 해당 cmdlet으로 대체됩니다 en<language>-<Region>. 따라서 명령이 현재 문화권()$PSUICulture에 대한 지역화된 데이터를 찾을 수 없는 경우 검색은 뒤로 en-US 물러나고 그 다음에 해당합니다 en.

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