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
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.psd1untuk 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 subdirektoride-DEdi bawah direktori skrip, dan simpan file<ScriptName>.psd1Jerman di subdirektoride-DE. Ulangi metode ini untuk setiap lokal yang Anda dukung.Import-LocalizedDatamelakukan pencarian terstruktur untuk pesan pengguna yang dilokalkan untuk skrip.Import-LocalizedDatamemulai 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), sepertide-DEatauar-SA. Kemudian, ia mencari di subdirektori tersebut untuk file.psd1dengan nama yang sama dengan skrip (atau nilai parameter FileName).Jika
Import-LocalizedDatatidak dapat menemukan subdirektori dengan nama budaya UI, atau subdirektori tidak berisi file.psd1untuk skrip, subdirektori mencari file.psd1untuk 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-LocalizedDatamenemukan 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.