Ressourcen und Lokalisierung - Eltern / Kind-Zeichenfolgen in RESX-Dateien?
-
12-09-2019 - |
Frage
Ich bin WebResources.resx Datei mit mehreren String Erstellen von Nachrichten Ich möchte kategorisieren:
Signup_Status_Inactive Signup_Status_Reserved etc ...
Da es nur eine XML-Datei im Hintergrund, ist es möglich, Beziehungen Eltern / Kind zu schaffen, damit ich nicht in Beziehung stehenden Saiten Präfix müssen und eine bessere Punktnotation folgen?
Um dies zu umgehen kann ich eine Klasse zu erstellen, mit einigen Eigenschaften durch die richtige Punktnotation zugegriffen wird, dh StatusMessages.Signup.Inactive -. Aber das ist nur zusätzliche Arbeit
Gibt es nur eine Ebene mit der String-Komponente der RESX-Dateien?
Außerdem, wie kann man Ausgang Session-Variablen als Teil des resx Wertes - das heißt: "Ihre Karte # " + HttpContext.Current.Session [ "ReservedCardNum"] + " hat für Sie reserviert."
Danke.
Lösung
Alle Tasten in einer RESX-Datei sind einzelne Ebene , aber es nichts, was man ist Stoppen von Ihrem eigenen XML-Format verwenden, vorausgesetzt, Sie schreiben den Code, es zu lesen und alle Werkzeuge, die benötigt werden, halten es.
Zur Ausgabe von Session-Variablen, würde ich verwenden String.Format ()
Normalerweise würden Sie schreiben
String.Format(“"Your Card #{0} has been reserved for you.",
HttpContext.Current.Session["ReservedCardNum"])
So einfach statt nur verwenden
String.Format(stringLookedFromResouceFile,
HttpContext.Current.Session["ReservedCardNum"])
Und setzt die „{0}“ in dem übersetzten String, auf diese Weise der Übersetzer die Reihenfolge der Worte ändern können, wenn nötig.
Überlegen Sie, wie Sie an die Übersetzer kommunizieren, was die Platzhalter, wenn die Übersetzer einen Ressourcen-Editor verwenden, der das Kommentarfeld zeigt, Sie Kommentare wie hinzufügen könnte „{0} = username“
Sie haben auch irgendwie zu überprüfen, dass die Übersetzer der Platzhalter nicht vermasseln, habe ich Übersetzer gesehen ändern „{0}“ auf „(0)“, wie sie „denken, die andere Art von Klammern besser aussehen“ usw! oder löschen Sie eines des Brackens so das String-Format ist nicht mehr gültig.
finden Sie unter Wie Format-String zu validieren