about_Script_Internationalization
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. Egy új parancsmag ConvertFrom-StringData
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 és
$PSCulture
$PSUICulture
.$PSCulture
a rendszerben használt felhasználói felület nyelvének nevét tárolja olyan elemek esetében, mint a dátum, az idő és a pénznem. A$PSUICulture
változó a felhasználói felület elemei, például menük és szöveges sztringek esetében tárolja a rendszerben használt felhasználói felület nyelvének nevét.Egy 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.psd1
fájlok a szkriptkönyvtár nyelvspecifikus alkönyvtáraiban vannak tárolva.Egy parancsmag,
Import-LocalizedData
amely lefordított szöveges sztringeket importál egy adott nyelvhez 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ó: Import-LocalizedData.
Az adatszakasz: Alapértelmezett sztringek 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árokban egy itt található sztringben. 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ű kivonatoló táblává alakítja, amelyet az Adatszakasz változó értéke tárol.
Az alábbi példában a szkript Adat szakasza World.ps1
tartalmazza az angol-Egyesült Államok (en-US) parancssori üzenetek készletét egy szkripthez. 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.
'@
}
Az itt szereplő sztringekről további információt a about_Quoting_Rules talál.
PSD1-fájlok: Lefordított sztringek tárolása
Mentse a szkriptüzeneteket az egyes felhasználói felületi nyelvekhez külön szövegfájlokban, ugyanazzal a névvel, mint a szkript és a .psd1
fájlnévkiterjesztés. 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 hozna 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 World.psd1
szkriptkönyvtár de-DE alkönyvtárában található 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 World.psd1
szkriptkönyvtár ar-SA alkönyvtárában található 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 alkönyvtárban, amely megfelel az értéknek $PSUICulture
. Ezután menti az importált tartalmat a BindingVariable paraméter értéke által megadott változóban.
Import-LocalizedData -BindingVariable msgTable
Ha például a Import-LocalizedData
parancs megjelenik a C:\Scripts\World.ps1
szkriptben, és az értéke $PSUICulture
"ar-SA", Import-LocalizedData
a következő fájlt keresi:
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 szkript Adat szakaszában World.ps1
esetleg definiált alapértelmezett sztringeket.
Ennek eredményeképpen, amikor a szkript a változót használja a $msgTable
felhasználói üzenetek megjelenítésére, 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álható olyan .psd1
fájl, amely megfelel az értéknek$PSUIculture
$msgTable
, az érték nem lesz lecserélve, és a tartalék en-US sztringek megjelenítésére irányuló $msgTable.promptMsg
hívás.
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 parancsot ConvertFrom-StringData
tartalmaz. A megadott ConvertFrom-StringData
kifejezés egy olyan here-sztring, amely az alapértelmezett felhasználói felületi kultúrában (en-US) lévő napneveket tartalmazza kulcs-érték párokban. A ConvertFrom-StringData
parancsmag az itt-sztring kulcs-érték párjait kivonattáblává alakítja, majd menti a változó értékébe $Day
.
A Import-LocalizedData
parancs importálja a fájl tartalmát a .psd1
könyvtárban, amely megfelel az $PSUICulture
automatikus változó értékének, majd menti azt a $Day
változóba, lecserélve $Day
az Adatok szakaszban definiált értékeket.
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 .psd1
szkriptet támogató fájlokat a szkriptkönyvtár alkönyvtárában menti a rendszer az $PSUICulture
értékeknek megfelelő névvel.
A következők teljes listája .\de-DE\sample1.psd1
:
# 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 a Sample.ps1 fájlt olyan rendszeren futtatja, amelyen az érték $PSUICulture
de-DE, a szkript kimenete a következő:
Heute ist Freitag
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: