Bagikan melalui


Import-LocalizedData

Mengimpor data khusus bahasa ke dalam skrip dan fungsi berdasarkan budaya UI yang dipilih untuk sistem operasi.

Sintaks

Default (Default)

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

Deskripsi

cmdlet Import-LocalizedData secara dinamis mengambil string dari subdirektori yang namanya cocok dengan bahasa UI yang ditetapkan untuk pengguna sistem operasi saat ini. Ini dirancang untuk mengaktifkan skrip untuk menampilkan pesan pengguna dalam bahasa UI yang dipilih oleh pengguna saat ini.

Import-LocalizedData mengimpor data dari file .psd1 dalam subdirektori khusus bahasa direktori skrip dan menyimpannya dalam variabel lokal yang ditentukan dalam perintah. Cmdlet memilih subdirektori dan file berdasarkan nilai variabel otomatis $PSUICulture. Saat Anda menggunakan variabel lokal dalam skrip untuk menampilkan pesan pengguna, pesan muncul dalam bahasa UI pengguna.

Anda dapat menggunakan parameter Import-LocalizedData untuk menentukan budaya, jalur, dan nama file UI alternatif, untuk menambahkan perintah yang didukung, dan untuk menekan pesan kesalahan yang muncul jika file .psd1 tidak ditemukan.

Cmdlet Import-LocalizedData mendukung inisiatif internasionalisasi skrip yang diperkenalkan di Windows PowerShell 2.0. Inisiatif ini bertujuan untuk melayani pengguna dengan lebih baik di seluruh dunia dengan memudahkan skrip untuk menampilkan pesan pengguna dalam bahasa UI pengguna saat ini. Untuk informasi selengkapnya tentang ini dan tentang format file .psd1, lihat about_Script_Internationalization.

Contoh

Contoh 1: Mengimpor string teks

Contoh ini mengimpor string teks ke dalam variabel $Messages. Ini menggunakan nilai default semua parameter cmdlet lainnya.

Import-LocalizedData -BindingVariable "Messages"

Jika perintah disertakan dalam skrip Archives.ps1 dalam direktori C:\Test, dan nilai variabel otomatis $PSUICulture zh-CN, Import-LocalizedData mengimpor file Archives.psd1 di direktori C:\test\zh-CN ke variabel $Messages.

Contoh 2: Mengimpor string data yang dilokalkan

Contoh ini dijalankan di baris perintah bukan dalam skrip. Ini mendapatkan string data yang dilokalkan dari file Test.psd1 dan menampilkannya di baris perintah. Karena perintah tidak digunakan dalam skrip, parameter FileName diperlukan. Perintah menggunakan parameter UICulture untuk menentukan budaya 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 mengembalikan hashtable yang berisi string data yang dilokalkan.

Contoh 3: Mengimpor string budaya UI

Import-LocalizedData -BindingVariable "MsgTbl" -UICulture "ar-SA" -FileName "Simple" -BaseDirectory "C:\Data\Localized"

Perintah ini mengimpor string teks ke dalam variabel $MsgTbl skrip.

Ini menggunakan parameter UICulture untuk mengarahkan cmdlet untuk mengimpor data dari file Simple.psd1 di subdirektori ar-SAC:\Data\Localized.

Contoh 4: Mengimpor data yang dilokalkan ke dalam skrip

Contoh ini menunjukkan cara menggunakan data yang dilokalkan dalam skrip sederhana.

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.

Bagian pertama dari contoh menunjukkan konten file Test.psd1. Ini berisi perintah ConvertFrom-StringData yang mengonversi serangkaian string teks bernama menjadi hashtable. File Test.psd1 terletak di subdirektori en-US direktori C:\Test yang berisi skrip.

Bagian kedua dari contoh menunjukkan konten skrip Test.ps1. Ini berisi perintah Import-LocalizedData yang mengimpor data dari file .psd1 yang cocok ke dalam variabel $Messages dan perintah Write-Host yang menulis salah satu pesan dalam variabel $Messages ke program host.

Bagian terakhir dari contoh menjalankan skrip. Output menunjukkan bahwa output menampilkan pesan pengguna yang benar dalam bahasa UI yang ditetapkan untuk pengguna sistem operasi saat ini.

Contoh 5: Mengganti string teks default dalam skrip

Contoh ini menunjukkan cara menggunakan Import-LocalizedData untuk mengganti string teks default yang ditentukan di bagian DATA dari skrip.

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...

Dalam contoh ini, bagian DATA dari skrip TestScript.ps1 berisi perintah ConvertFrom-StringData yang mengonversi konten bagian DATA menjadi hashtable dan menyimpan nilai variabel $UserMessages.

Skrip juga menyertakan perintah Import-LocalizedData, yang mengimpor hashtable string teks yang diterjemahkan dari file TestScript.psd1 dalam subdirektori yang ditentukan oleh nilai variabel $PSUICulture. Jika perintah menemukan file .psd1, perintah menyimpan string yang diterjemahkan dari file dalam nilai variabel $UserMessages yang sama, menimpa hashtable yang disimpan oleh logika bagian DATA.

Perintah ketiga menampilkan pesan pertama dalam variabel $UserMessages.

Jika perintah Import-LocalizedData menemukan file .psd1 untuk bahasa $PSUICulture, nilai variabel $UserMessages berisi string teks yang diterjemahkan. Jika perintah gagal karena alasan apa pun, perintah menampilkan string teks default yang ditentukan di bagian DATA skrip.

Contoh 6: Menyembunyikan pesan kesalahan jika budaya UI tidak ditemukan

Contoh ini menunjukkan cara menyembunyikan pesan kesalahan yang muncul saat Import-LocalizedData tidak dapat menemukan direktori yang cocok dengan budaya UI pengguna atau tidak dapat menemukan file .psd1 untuk skrip di direktori tersebut.

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

Anda dapat menggunakan parameter ErrorAction umum dengan nilai SilentlyContinue untuk menekan pesan kesalahan. Ini sangat berguna ketika Anda telah memberikan pesan pengguna dalam bahasa default atau fallback, dan tidak ada pesan kesalahan yang diperlukan.

Contoh ini membandingkan dua skrip, Day1.ps1 dan Day2.ps1, yang menyertakan perintah Import-LocalizedData. Skrip identik, kecuali Day2 menggunakan parameter ErrorAction umum dengan nilai SilentlyContinue.

Output sampel menunjukkan hasil menjalankan kedua skrip ketika budaya UI diatur ke fr-BE dan tidak ada file atau direktori yang cocok untuk budaya UI tersebut. Day1.ps1 menampilkan pesan kesalahan dan output bahasa Inggris. Day2.ps1 hanya menampilkan output bahasa Inggris.

Parameter

-BaseDirectory

Menentukan direktori dasar tempat file .psd1 berada. Defaultnya adalah direktori tempat skrip berada. Import-LocalizedData mencari file .psd1 untuk skrip dalam subdirektori khusus bahasa direktori dasar.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False

Set parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-BindingVariable

Menentukan variabel tempat string teks diimpor. Masukkan nama variabel tanpa tanda dolar ($).

Di Windows PowerShell 2.0, parameter ini diperlukan. Di Windows PowerShell 3.0, parameter ini bersifat opsional. Jika Anda menghilangkan parameter ini, Import-LocalizedData mengembalikan hashtable string teks. Hashtable diteruskan ke alur atau ditampilkan di baris perintah.

Saat menggunakan Import-LocalizedData untuk mengganti string teks default yang ditentukan di bagian DATA dari skrip, tetapkan bagian DATA ke variabel dan masukkan nama variabel bagian DATA dalam nilai parameter BindingVariable. Kemudian, ketika Import-LocalizedData menyimpan konten yang diimpor di BindingVariable, data yang diimpor akan menggantikan string teks default. Jika Anda tidak menentukan string teks default, Anda dapat memilih nama variabel apa pun.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False
Alias:Variabel

Set parameter

(All)
Position:0
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-FileName

Menentukan nama file data (.psd1) yang akan diimpor. Masukkan nama file. Anda dapat menentukan nama file yang tidak menyertakan ekstensi nama file .psd1, atau Anda dapat menentukan nama file termasuk ekstensi nama file .psd1. File data harus disimpan sebagai Unicode atau UTF-8.

Parameter FileName diperlukan saat Import-LocalizedData tidak digunakan dalam skrip. Jika tidak, parameter bersifat opsional dan nilai defaultnya adalah nama dasar skrip. Anda dapat menggunakan parameter ini untuk mengarahkan Import-LocalizedData untuk mencari file .psd1 yang berbeda.

Misalnya, jika FileName dihilangkan dan nama skrip FindFiles.ps1, Import-LocalizedData mencari file data FindFiles.psd1.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False

Set parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-SupportedCommand

Menentukan cmdlet dan fungsi yang hanya menghasilkan data.

Gunakan parameter ini untuk menyertakan cmdlet dan fungsi yang telah Anda tulis atau uji. Untuk informasi selengkapnya, lihat about_Script_Internationalization.

Properti parameter

Jenis:

String[]

Nilai default:None
Mendukung wildcard:False
DontShow:False

Set parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-UICulture

Menentukan budaya UI alternatif. Defaultnya adalah nilai variabel otomatis $PSUICulture. Masukkan budaya UI dalam format <language>-<region>, seperti en-US, de-DE, atau ar-SA.

Nilai parameter UICulture menentukan subdirektori khusus bahasa (dalam direktori dasar) tempat Import-LocalizedData mendapatkan file .psd1 untuk skrip.

Cmdlet mencari subdirektori dengan nama yang sama dengan nilai parameter UICulture atau variabel otomatis $PSUICulture, seperti de-DE atau ar-SA. Jika tidak dapat menemukan direktori, atau direktori tidak berisi file .psd1 untuk skrip, direktori tersebut mencari subdirektori dengan nama kode bahasa, seperti de atau ar. Jika tidak dapat menemukan subdirektori atau file .psd1, perintah gagal dan data ditampilkan dalam bahasa default yang ditentukan dalam skrip.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False

Set parameter

(All)
Position:1
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

CommonParameters

Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.

Input

None

Anda tidak dapat menyalurkan objek ke cmdlet ini.

Output

Hashtable

Cmdlet ini menyimpan hashtable dalam variabel yang ditentukan oleh nilai parameter BindingVariable.

Catatan

  • Sebelum menggunakan Import-LocalizedData, lokalkan pesan pengguna Anda. Format pesan untuk setiap lokal (budaya UI) dalam hashtable pasangan kunci-nilai, dan simpan hashtable dalam file dengan nama yang sama dengan skrip dan ekstensi nama file .psd1. Buat direktori di bawah direktori skrip untuk setiap budaya UI yang didukung, lalu simpan file .psd1 untuk setiap budaya UI di direktori dengan nama budaya UI.

    Misalnya, melokalisasi pesan pengguna Anda untuk lokal de-DE dan memformatnya dalam hashtable. Simpan hashtable dalam file <ScriptName>.psd1. Kemudian buat subdirektori de-DE di bawah direktori skrip, dan simpan file <ScriptName>.psd1 Jerman di subdirektori de-DE. Ulangi metode ini untuk setiap lokal yang Anda dukung.

  • Import-LocalizedData melakukan pencarian terstruktur untuk pesan pengguna yang dilokalkan untuk skrip.

    Import-LocalizedData memulai pencarian di direktori tempat file skrip berada (atau nilai parameter BaseDirectory). Kemudian mencari dalam direktori dasar untuk subdirektori dengan nama yang sama dengan nilai variabel $PSUICulture (atau nilai parameter UICulture), seperti de-DE atau ar-SA. Kemudian, ia mencari di subdirektori tersebut untuk file .psd1 dengan nama yang sama dengan skrip (atau nilai parameter FileName).

    Jika Import-LocalizedData tidak dapat menemukan subdirektori dengan nama budaya UI, atau subdirektori tidak berisi file .psd1 untuk skrip, subdirektori mencari file .psd1 untuk skrip dalam subdirektori dengan nama kode bahasa, seperti de atau ar. Jika tidak dapat menemukan subdirektori atau file .psd1, perintah gagal, data ditampilkan dalam bahasa default dalam skrip, dan pesan kesalahan ditampilkan menjelaskan bahwa data tidak dapat diimpor. Untuk menekan pesan dan gagal dengan baik, gunakan parameter ErrorAction umum dengan nilai SilentlyContinue.

    Jika Import-LocalizedData menemukan subdirektori dan file .psd1, file tersebut mengimpor hashtable pesan pengguna ke dalam nilai parameter BindingVariable dalam perintah. Kemudian, saat Anda menampilkan pesan dari hashtable dalam variabel, pesan yang dilokalkan akan ditampilkan.

    Untuk informasi selengkapnya, lihat about_Script_Internationalization.