Import-LocalizedData
Dile özgü verileri, işletim sistemi için seçilen kullanıcı arabirimi kültürüne göre betiklere ve işlevlere aktarır.
Sözdizimi
Import-LocalizedData
[[-BindingVariable] <String>]
[[-UICulture] <String>]
[-BaseDirectory <String>]
[-FileName <String>]
[-SupportedCommand <String[]>]
[<CommonParameters>]
Description
Import-LocalizedData
cmdlet'i, adı işletim sisteminin geçerli kullanıcısı için ayarlanan kullanıcı arabirimi diliyle eşleşen bir alt dizinden dizeleri dinamik olarak alır. Betiklerin kullanıcı iletilerini geçerli kullanıcı tarafından seçilen kullanıcı arabirimi dilinde görüntülemesini sağlayacak şekilde tasarlanmıştır.
Import-LocalizedData
betik dizininin dile özgü alt dizinlerindeki .psd1
dosyalardan verileri içeri aktarır ve bunları komutta belirtilen yerel bir değişkene kaydeder. cmdlet'i, $PSUICulture
otomatik değişkeninin değerine göre alt dizini ve dosyayı seçer. Bir kullanıcı iletisini görüntülemek için betikteki yerel değişkeni kullandığınızda, ileti kullanıcının kullanıcı arabirimi dilinde görüntülenir.
desteklenen komutlar eklemek ve Import-LocalizedData
dosyaları bulunamazsa görüntülenen hata iletisini engellemek için alternatif ui kültürü, yolu ve dosya adı belirtmek için .psd1
parametrelerini kullanabilirsiniz.
Import-LocalizedData
cmdlet'i, Windows PowerShell 2.0'da tanıtılan betik uluslararasılaştırma girişimini destekler. Bu girişim, betiklerin kullanıcı iletilerini geçerli kullanıcının kullanıcı arabirimi dilinde görüntülemesini kolaylaştırarak dünya çapında kullanıcılara daha iyi hizmet vermeyi amaçlar. Bu ve .psd1
dosyalarının biçimi hakkında daha fazla bilgi için bkz. about_Script_Internationalization.
Örnekler
Örnek 1: Metin dizelerini içeri aktarma
Bu örnek, metin dizelerini $Messages
değişkenine aktarır. Diğer tüm cmdlet parametrelerinin varsayılan değerlerini kullanır.
Import-LocalizedData -BindingVariable "Messages"
Komut C:\Test
dizinindeki Archives.ps1 betiğine dahil edilirse ve $PSUICulture
otomatik değişkeninin değeri zh-CNise Import-LocalizedData
Archives.psd1
dizinindeki C:\test\zh-CN
dosyasını $Messages
değişkenine aktarır.
Örnek 2: Yerelleştirilmiş veri dizelerini içeri aktarma
Bu örnek, betikte değil komut satırında çalıştırılır.
Test.psd1
dosyasından yerelleştirilmiş veri dizelerini alır ve bunları komut satırında görüntüler. Komut bir betikte kullanılmadığından, FileName parametresi gerekir. komutu, en-US kültürünü belirtmek için UICulture parametresini kullanır.
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
, yerelleştirilmiş veri dizelerini içeren bir karma tablo döndürür.
Örnek 3: Ui kültür dizelerini içeri aktarma
Import-LocalizedData -BindingVariable "MsgTbl" -UICulture "ar-SA" -FileName "Simple" -BaseDirectory "C:\Data\Localized"
Bu komut, metin dizelerini bir betiğin $MsgTbl
değişkenine aktarır.
cmdlet'ini Simple.psd1
alt dizinindeki ar-SA
dosyasından verileri içeri aktarmaya yönlendirmek için C:\Data\Localized
parametresini kullanır.
Örnek 4: Yerelleştirilmiş verileri bir betikte içeri aktarma
Bu örnekte, basit bir betikte yerelleştirilmiş verilerin nasıl kullanılacağı gösterilmektedir.
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.
Örneğin ilk bölümünde Test.psd1
dosyasının içeriği gösterilir. Bir dizi adlandırılmış metin dizesini karma tabloya dönüştüren bir ConvertFrom-StringData
komutu içerir.
Test.psd1
dosyası, betiği içeren C:\Test
dizininin en-US alt dizininde bulunur.
Örneğin ikinci bölümünde Test.ps1
betiğinin içeriği gösterilir. Eşleşen Import-LocalizedData
dosyasındaki verileri .psd1
değişkenine aktaran bir $Messages
komutu ve Write-Host
değişkenindeki iletilerden birini konak programına yazan bir $Messages
komutu içerir.
Örneğin son bölümü betiği çalıştırır. Çıktı, işletim sisteminin geçerli kullanıcısı için kullanıcı arabirimi dil kümesinde doğru kullanıcı iletisini görüntülediğini gösterir.
Örnek 5: Betikteki varsayılan metin dizelerini değiştirme
Bu örnekte, betiğin DATA bölümünde tanımlanan varsayılan metin dizelerini değiştirmek için Import-LocalizedData
nasıl kullanılacağı gösterilmektedir.
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...
Bu örnekte, TestScript.ps1
betiğinin DATA bölümü, DATA bölümünün içeriğini bir karma tabloya dönüştüren ve $UserMessages
değişkeninin değerinde depolayan bir ConvertFrom-StringData
komutu içerir.
Betik, $PSUICulture
değişkeninin değeri tarafından belirtilen alt dizindeki TestScript.psd1
dosyasından çevrilmiş metin dizelerinin karma tablosunu içeri aktaran bir Import-LocalizedData
komutu da içerir. Komut .psd1
dosyasını bulursa, dosyadan çevrilen dizeleri aynı $UserMessages
değişkeninin değerine kaydeder ve DATA bölümü mantığı tarafından kaydedilen karma tablo üzerine yazılır.
Üçüncü komut, $UserMessages
değişkenindeki ilk iletiyi görüntüler.
Import-LocalizedData
komutu .psd1
dili için bir $PSUICulture
dosyası bulursa, $UserMessages
değişkeninin değeri çevrilmiş metin dizelerini içerir. Komut herhangi bir nedenle başarısız olursa komut, betiğin VERİ bölümünde tanımlanan varsayılan metin dizelerini görüntüler.
Örnek 6: Kullanıcı arabirimi kültürü bulunamazsa hata iletilerini gizleme
Bu örnek, Import-LocalizedData
kullanıcının kullanıcı arabirimi kültürüyle eşleşen dizinleri bulamadıklarında veya bu dizinlerde betik için .psd1
dosyası bulamadıklarında görüntülenen hata iletilerinin nasıl gizlendiğini gösterir.
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
Hata iletisini engellemek için ErrorAction common parametresini SilentlyContinue değeriyle kullanabilirsiniz. Bu, özellikle kullanıcı iletilerini varsayılan veya geri dönüş dilinde sağladığınızda ve hata iletisi gerekmediğinde kullanışlıdır.
Bu örnek, Day1.ps1
komutu içeren Import-LocalizedData
ve Day2.ps1olmak üzere iki betik karşılaştırır. Betikler aynıdır, ancak Day2 ErrorAction ortak parametresini SilentlyContinue
değeriyle kullanır.
Örnek çıktı, ui kültürü fr-BE
olarak ayarlandığında ve bu kullanıcı arabirimi kültürü için eşleşen dosya veya dizin olmadığında her iki betiği çalıştırmanın sonuçlarını gösterir.
Day1.ps1
bir hata iletisi ve İngilizce çıkış görüntüler.
Day2.ps1
yalnızca İngilizce çıkışı görüntüler.
Parametreler
-BaseDirectory
.psd1
dosyalarının bulunduğu temel dizini belirtir. Varsayılan, betiğin bulunduğu dizindir.
Import-LocalizedData
, temel dizinin dile özgü bir alt dizininde betik için .psd1
dosyasını arar.
Tür: | String |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-BindingVariable
Metin dizelerinin içeri aktarıldığı değişkeni belirtir. Dolar işareti ($
) olmadan bir değişken adı girin.
Windows PowerShell 2.0'da bu parametre gereklidir. Windows PowerShell 3.0'da bu parametre isteğe bağlıdır. Bu parametreyi atlarsanız, Import-LocalizedData
metin dizelerinin karma tablosu döndürür. Karma tablo işlem hattına geçirilir veya komut satırında görüntülenir.
Bir betiğin VERİ bölümünde belirtilen varsayılan metin dizelerini değiştirmek için Import-LocalizedData
kullanırken, DATA bölümünü bir değişkene atayın ve BindingVariable parametresinin değerine DATA bölüm değişkeninin adını girin. Ardından Import-LocalizedData
içeri aktarılan içeriği BindingVariable kaydettiğinde, içeri aktarılan veriler varsayılan metin dizelerinin yerini alır. Varsayılan metin dizelerini belirtmiyorsanız, herhangi bir değişken adı seçebilirsiniz.
Tür: | String |
Diğer adlar: | Variable |
Position: | 0 |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-FileName
İçeri aktarılacak veri dosyasının (.psd1
) adını belirtir. Bir dosya adı girin.
.psd1
dosya adı uzantısını içermeyen bir dosya adı belirtebilir veya .psd1
dosya adı uzantısını içeren dosya adını belirtebilirsiniz. Veri dosyaları Unicode veya UTF-8 olarak kaydedilmelidir.
FileName parametresi, betikte Import-LocalizedData
kullanılmadığında gereklidir.
Aksi takdirde parametresi isteğe bağlıdır ve varsayılan değer betiğin temel adıdır.
Import-LocalizedData
farklı bir .psd1
dosyası aramaya yönlendirmek için bu parametreyi kullanabilirsiniz.
Örneğin, FileName atlanırsa ve betik adı FindFiles.ps1
ise Import-LocalizedData
FindFiles.psd1
veri dosyasını arar.
Tür: | String |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-SupportedCommand
Yalnızca veri oluşturan cmdlet'leri ve işlevleri belirtir.
Yazdığınız veya test ettiğiniz cmdlet'leri ve işlevleri eklemek için bu parametreyi kullanın. Daha fazla bilgi için bkz. about_Script_Internationalization.
Tür: | String[] |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-UICulture
Alternatif kullanıcı arabirimi kültürünü belirtir. Varsayılan değer, $PSUICulture
otomatik değişkeninin değeridir.
<language>-<region>
, en-US
veya de-DE
gibi ar-SA
biçimde bir kullanıcı arabirimi kültürü girin.
UICulture parametresinin değeri, Import-LocalizedData
betik için .psd1
dosyasını aldığı dile özgü alt dizini (temel dizin içinde) belirler.
Cmdlet, UICulture parametresinin veya $PSUICulture
veya de-DE
gibi ar-SA
otomatik değişkeninin değeriyle aynı ada sahip bir alt dizin arar. Dizini bulamıyorsa veya dizin betik için .psd1
bir dosya içermiyorsa, dil kodunun adıyla (örneğin, de veya ar) bir alt dizin arar. Alt dizini veya .psd1
dosyasını bulamazsa, komut başarısız olur ve veriler betikte belirtilen varsayılan dilde görüntülenir.
Tür: | String |
Position: | 1 |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
Girişler
None
Nesneleri bu cmdlet'e yöneltemezsiniz.
Çıkışlar
Bu cmdlet, hashtable'ı BindingVariable parametresinin değeriyle belirtilen değişkene kaydeder.
Notlar
Import-LocalizedData
kullanmadan önce kullanıcı iletilerinizi yerelleştirin. Her yerel ayar (UI kültürü) için iletileri anahtar-değer çiftlerinin bir karma tablosuna biçimlendirin ve karma tabloyu betik ve.psd1
dosya adı uzantısıyla aynı ada sahip bir dosyaya kaydedin. Desteklenen her ui kültürü için betik dizini altında bir dizin oluşturun ve ardından dizindeki her kullanıcı arabirimi kültürü için.psd1
dosyasını ui kültürü adıyla kaydedin.Örneğin, de-DE yerel ayarı için kullanıcı iletilerinizi yerelleştirin ve bir karma tablo içinde biçimlendirin. Hashtable'ı
<ScriptName>.psd1
bir dosyaya kaydedin. Ardından betik dizini altında birde-DE
alt dizini oluşturun ve Almanca<ScriptName>.psd1
dosyasınıde-DE
alt dizinine kaydedin. Desteklediğiniz her yerel ayar için bu yöntemi yineleyin.Import-LocalizedData
, bir betik için yerelleştirilmiş kullanıcı iletileri için yapılandırılmış bir arama gerçekleştirir.Import-LocalizedData
, betik dosyasının bulunduğu dizinde (veya BaseDirectory parametresinin değeri) aramayı başlatır. Ardından, temel dizinde$PSUICulture
değişkeninin değeriyle (veya UICulture parametresinin değeriyle) aynı ada sahip bir alt dizin (örneğin,de-DE
veyaar-SA
) arar. Ardından, bu alt dizinde betikle aynı ada (veya.psd1
parametresinin değerine) sahip bir dosyası arar.Import-LocalizedData
kullanıcı arabirimi kültürünün adına sahip bir alt dizin bulamazsa veya alt dizin betik için bir.psd1
dosyası içermiyorsa, de veya ar gibi dil kodunun adıyla bir alt dizinde betik için bir.psd1
dosyası arar. Alt dizini veya.psd1
dosyasını bulamazsa, komut başarısız olur, veriler betikte varsayılan dilde görüntülenir ve verilerin içeri aktarılamadığını açıklayan bir hata iletisi görüntülenir. İletiyi bastırmak ve düzgün bir şekilde başarısız olmak için ErrorAction ortak parametresini SilentlyContinue değeriyle kullanın.Import-LocalizedData
alt dizini ve.psd1
dosyasını bulursa, kullanıcı iletilerinin karma tablosunu komuttaki BindingVariable parametresinin değerine aktarır. Daha sonra değişkeninde karma tablodaki bir iletiyi görüntülendiğinde, yerelleştirilmiş ileti görüntülenir.Daha fazla bilgi için bkz. about_Script_Internationalization.
İlişkili Bağlantılar
PowerShell