Ich arbeite an einem PowerShell-Skript, das in zwei Sprachen verfügbar sein muss. Um mir das Leben zu erleichtern, scheint es mir eine gute Idee zu sein, für jede eine Sprachdatei zu erstellen und die Zeichenfolgen darin einzubeziehen, anstatt den Text direkt im Code zu haben und 2 Kopien des Codes zu verwalten. Gibt es eine Best Practice zur Umsetzung?Wie kann die Übersetzung für ein PowerShell-Skript am besten implementiert werden?
Der Roadblock, in dem ich gerade bin, ist, dass einige der Strings Variablen enthalten müssen, also habe ich dort schon einige Probleme bekommen. Ich habe bemerkt, dass es den Wert der Variablen zum Zeitpunkt verwendet, an dem die Zeichenfolge gesetzt wird, was für mich Sinn macht.
So zum Beispiel, wenn ich eine Zeichenfolge habe, die einen Fehler Pegel ausgibt:
$Strings.ErrorMessage = "Error detected with $Level severity"
Und dann später $Level
auf, was auch immer Wert, wird es nicht diesen Wert hat, wenn das Skript aufgerufen wird. Unter der Annahme, dass $Level
nicht gesetzt ist, bevor $Strings.ErrorMessage
Einstellung die Ausgabe aussehen würde:
Error detected at severity
Gibt es eine Möglichkeit Powershell zu sagen, um den aktuellen Wert der $ Ebene variabel zu greifen, bevor er ausgegeben wird?
'$ Strings.ErrorMessage =‚Fehler mit $ Stufe severity'' erkannt und '$ ExecutionContext.InvokeCommand.ExpandString ($ Strings.ErrorMessage)' oder '$ Strings.ErrorMessage = 'Fehler erkannt mit {0} Schwere' 'und' $ Strings.ErrorMessage -f $ Level'. – PetSerAl
Haben Sie das gelesen? https://msdn.microsoft.com/en-us/powershell/reference/4.0/microsoft.powershell.core/about/about_script_internationalization –