Bagikan melalui


Import-LocalizedData

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

Sintaks

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

Deskripsi

Import-LocalizedData Cmdlet 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 .psd1 file dalam subdirektori khusus bahasa direktori skrip dan menyimpannya dalam variabel lokal yang ditentukan dalam perintah. Cmdlet memilih subdirektori dan file berdasarkan nilai $PSUICulture variabel otomatis. 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 .psd1 file tidak ditemukan.

Import-LocalizedData Cmdlet 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 .psd1 file, lihat about_Script_Internationalization.

Contoh

Contoh 1: Mengimpor string teks

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

Import-LocalizedData -BindingVariable "Messages"

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

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 ini 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 $MsgTbl dalam variabel skrip.

Ini menggunakan parameter UICulture untuk mengarahkan cmdlet untuk mengimpor data dari Simple.psd1 file dalam ar-SA subdirektori .C:\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 Test.psd1 file. Ini berisi ConvertFrom-StringData perintah 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 Test.ps1 skrip. Ini berisi Import-LocalizedData perintah yang mengimpor data dari file yang .psd1 cocok ke dalam $Messages variabel dan Write-Host perintah yang menulis salah satu pesan dalam $Messages variabel 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 ConvertFrom-StringData perintah yang mengonversi konten bagian DATA menjadi hashtable dan menyimpan dalam nilai $UserMessages variabel.

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

Perintah ketiga menampilkan pesan pertama dalam $UserMessages variabel.

Import-LocalizedData Jika perintah menemukan .psd1 file untuk bahasa, $PsUICulture nilai $UserMessages variabel 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 menekan pesan kesalahan yang muncul ketika Import-LocalizedData tidak dapat menemukan direktori yang cocok dengan budaya UI pengguna atau tidak dapat menemukan .psd1 file 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 umum ErrorAction 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 Import-LocalizedData perintah. Skrip identik, kecuali Hari2 menggunakan parameter umum ErrorAction 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 .psd1 file berada. Defaultnya adalah direktori tempat skrip berada. Import-LocalizedData mencari .psd1 file untuk skrip dalam subdirektori khusus bahasa direktori dasar.

Jenis:String
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard: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 dari 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, saat 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.

Jenis:String
Alias:Variable
Position:0
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-FileName

Menentukan nama file data (.psd1) yang akan diimpor. Masukkan nama file. Anda dapat menentukan nama file yang tidak menyertakan ekstensi nama filenya .psd1 , atau Anda dapat menentukan nama file termasuk .psd1 ekstensi nama file. 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 yang berbeda .psd1 .

Misalnya, jika FileName dihilangkan dan nama skripnya adalah FindFiles.ps1, Import-LocalizedData cari FindFiles.psd1 file data.

Jenis:String
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard: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.

Jenis:String[]
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-UICulture

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

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

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

Jenis:String
Position:1
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

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 .psd1 ekstensi nama file. Buat direktori di bawah direktori skrip untuk setiap budaya UI yang didukung, lalu simpan .psd1 file 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 <ScriptName>.psd1 file. Kemudian buat de-DE subdirektori di bawah direktori skrip, dan simpan file Jerman <ScriptName>.psd1 di de-DE subdirektori. 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 $PsUICulture variabel (atau nilai parameter UICulture ), seperti de-DE atau ar-SA. Kemudian, ia mencari di subdirektori tersebut untuk .psd1 file 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 .psd1 file untuk skrip, subdirektori mencari .psd1 file untuk skrip dalam subdirektori dengan nama kode bahasa, seperti de atau ar. Jika tidak dapat menemukan subdirektori atau .psd1 file, 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 umum ErrorAction dengan nilai SilentlyContinue.

    Jika Import-LocalizedData menemukan subdirektori dan .psd1 file, subdirektori 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.