Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Rövid leírás
Ismerteti a szkriptek nemzetközisítési funkcióit, amelyek megkönnyítik a szkriptek számára az üzenetek és utasítások megjelenítését a felhasználói felület (UI) nyelvén.
Hosszú leírás
A PowerShell-szkriptek nemzetközisítési funkciói lehetővé teszik a felhasználók jobb kiszolgálását világszerte azáltal, hogy súgót és felhasználói üzeneteket jelenít meg a felhasználó nyelvén.
A szkriptek nemzetközisítési funkciói lekérdezik az operációs rendszer felhasználói felületi kultúráját a végrehajtás során, importálják a megfelelő lefordított szöveges sztringeket, és megjelenítik őket a felhasználónak. Az Adatok szakasz lehetővé teszi a kódtól eltérő szöveges sztringek tárolását, hogy azok könnyen azonosíthatók és kinyerhetők legyenek. Az új ConvertFrom-StringDataparancsmag a szövegsztringeket szótárszerű kivonattáblákká alakítja a fordítás megkönnyítése érdekében.
A nemzetközi súgószöveg támogatásához a PowerShell a következő funkciókat tartalmazza:
Adatszakasz, amely elválasztja a szöveges sztringeket a kódutasításoktól. További információ az Adatok szakaszról: about_Data_Sections.
Új automatikus változók,
$PSCultureés$PSUICulture.$PSCulturetárolja a rendszerben használt felhasználói felület nyelvének nevét olyan elemek esetében, mint a dátum, az idő és a pénznem. A$PSUICultureváltozó a felhasználói felület elemeihez, például menükhöz és szöveges sztringekhez a rendszeren használt felhasználói felület nyelvének nevét tárolja.Olyan parancsmag,
ConvertFrom-StringData, amely a szövegsztringeket szótárszerű kivonattáblákká alakítja a fordítás megkönnyítése érdekében. További információ: ConvertFrom-StringData.Egy új fájltípus,
.psd1, amely lefordított szöveges sztringeket tárol. A.psd1fájlok a szkriptkönyvtár nyelvspecifikus alkönyvtáraiban vannak tárolva.Egy parancsmag,
Import-LocalizedData, amely egy adott nyelv lefordított szöveges sztringeit importálja egy szkriptbe futásidőben. Ez a parancsmag felismeri és importálja a sztringeket bármely Windows által támogatott nyelven. További információért lásd: Import-LocalizedData.
Az adatszakasz: Alapértelmezett karakterláncok tárolása
A szkript Adat szakaszával a szövegsztringeket az alapértelmezett nyelven tárolhatja. Rendezze el a sztringeket kulcs-érték párokba egy here-stringben. Minden kulcs-érték párnak külön sorban kell lennie. Ha megjegyzéseket is tartalmaz, a megjegyzéseknek külön sorokban kell lenniük.
A ConvertFrom-StringData parancsmag az itt szereplő sztring kulcs-érték párjait szótárszerű kivonattáblává alakítja, amelyet az Adatszakasz változó értéke tárol.
Az alábbi példában a World.ps1 szkript Adat szakasza tartalmazza a szkripthez tartozó English-United állapotok (en-US) üzenetfigyelmeztetések készletét. A ConvertFrom-StringData parancsmag kivonattáblává alakítja a sztringeket, és a $msgtable változóban tárolja őket.
$msgTable = data {
#culture="en-US"
ConvertFrom-StringData @'
helloWorld = Hello, World.
errorMsg1 = You cannot leave the user name field blank.
promptMsg = Please enter your user name.
'@
}
További információért a "here-strings" sztringekről lásd: about_Quoting_Rules.
PSD1-fájlok: Lefordított sztringek tárolása
Mentse az egyes felhasználói felületi nyelvek szkriptüzenetét a szkripttel és a .psd1 fájlnévkiterjesztéssel azonos nevű szövegfájlokban. Tárolja a fájlokat a szkriptkönyvtár alkönyvtáraiban a kultúrák neveivel a következő formátumban:
<language>-<region>
Példák: de-DE, ar-SAés zh-Hans
Ha például a World.ps1 szkript a C:\Scripts könyvtárban van tárolva, a következőhöz hasonló fájlkönyvtár-struktúrát hozhat létre:
C:\Scripts
C:\Scripts\World.ps1
C:\Scripts\de-DE\World.psd1
C:\Scripts\ar-SA\World.psd1
C:\Scripts\zh-CN\World.psd1
...
A szkriptkönyvtár de-DE alkönyvtárában található World.psd1 fájl a következő utasítást tartalmazhatja:
ConvertFrom-StringData -StringData @'
helloWorld = Hallo, Welt.
errorMsg1 = Das Feld Benutzername darf nicht leer sein.
promptMsg = Geben Sie Ihren Benutzernamen ein.
'@
Hasonlóképpen, a szkriptkönyvtár ar-SA alkönyvtárában található World.psd1 fájl a következő utasítást is tartalmazhatja:
ConvertFrom-StringData -StringData @'
helloWorld = مرحبًا أيها العالَم
errorMsg1 = لا يمكنك ترك حقل اسم المستخدم فارغًا
promptMsg = يرجى إدخال اسم المستخدم الخاص بك
'@
Import-LocalizedData: Lefordított sztringek dinamikus lekérése
Az aktuális felhasználó felhasználói felületi nyelvének sztringjeinek lekéréséhez használja a Import-LocalizedData parancsmagot.
Import-LocalizedData megkeresi az $PSUICulture automatikus változó értékét, és importálja a <script-name>.psd1 fájlok tartalmát az $PSUICulture értéknek megfelelő alkönyvtárba. Ezután menti az importált tartalmat a BindingVariable paraméter értéke által megadott változóba.
Import-LocalizedData -BindingVariable msgTable
Ha például a Import-LocalizedData parancs megjelenik a C:\Scripts\World.ps1 szkriptben, és a $PSUICulture értéke "ar-SA", Import-LocalizedData a következő fájlt találja:
C:\Scripts\ar-SA\World.psd1
Ezután importálja az arab szöveges sztringeket a fájlból a $msgTable változóba, lecserélve a World.ps1 szkript Adat szakaszában definiált alapértelmezett sztringeket.
Ennek eredményeképpen, amikor a szkript a $msgTable változót használja a felhasználói üzenetek megjelenítéséhez, az üzenetek arab nyelven jelennek meg.
A következő szkript például arab nyelven jeleníti meg a "Adja meg a felhasználónevet" üzenetet:
if (!($username)) { $msgTable.promptMsg }
Ha Import-LocalizedData nem talál olyan .psd1 fájlt, amely megfelel a $PSUICultureértékének, a $msgTable értéke nem lesz lecserélve, és a $msgTable.promptMsg hívása megjeleníti a tartalék en-US sztringeket.
Példák
Ez a példa bemutatja, hogy a szkriptek nemzetközisítési funkciói hogyan jelennek meg a hét egy napján a felhasználók számára a számítógépen beállított nyelven.
Az alábbiakban a Sample1.ps1 szkriptfájl teljes listája található.
A szkript egy Day ($Day) nevű adatszakaszsal kezdődik, amely egy ConvertFrom-StringData parancsot tartalmaz. A ConvertFrom-StringData számára küldött kifejezés egy sztring, amely az alapértelmezett felhasználói felületi kultúra napneveit, en-USkulcs-érték párokban tartalmazza. A ConvertFrom-StringData parancsmag az itt-sztring kulcs-érték párjait kivonattáblává alakítja, majd menti a $Day változó értékébe.
A Import-LocalizedData parancs importálja a .psd1 fájl tartalmát abban a könyvtárban, amely megfelel az $PSUICulture automatikus változó értékének, majd menti a $Day változóba, lecserélve az Adatok szakaszban meghatározott $Day értékeit.
A többi parancs betölti a sztringeket egy tömbbe, és megjeleníti őket.
$Day = data {
#culture="en-US"
ConvertFrom-StringData -StringData @'
messageDate = Today is
d0 = Sunday
d1 = Monday
d2 = Tuesday
d3 = Wednesday
d4 = Thursday
d5 = Friday
d6 = Saturday
'@
}
Import-LocalizedData -BindingVariable Day
#Build an array of weekdays.
$a = $Day.d0, $Day.d1, $Day.d2, $Day.d3, $Day.d4, $Day.d5, $Day.d6
# Get the day of the week as a number (Monday = 1).
# Index into $a to get the name of the day.
# Use string formatting to build a sentence.
"{0} {1}" -f $Day.messageDate, $a[(Get-Date -UFormat %u)] | Out-Host
A szkriptet támogató .psd1 fájlokat a szkriptkönyvtár alkönyvtárába menti a rendszer az $PSUICulture értékeknek megfelelő névvel.
Az alábbiakban a .\de-DE\sample1.psd1teljes listája található:
# culture="de-DE"
ConvertFrom-StringData @'
messageDate = Heute ist
d0 = Sonntag
d1 = Montag
d2 = Dienstag
d3 = Mittwoch
d4 = Donnerstag
d5 = Freitag
d6 = Samstag
'@
Ennek eredményeképpen, ha Sample.ps1 futtat egy olyan rendszeren, amelyen a $PSUICulture értéke de-DE, a szkript kimenete a következő:
Heute ist Freitag