Zum Inhalt springen Zur Hauptnavigation springen Zur Fußzeile springen

Übersetzbarkeit von Texten

Die vom ausführenden Salesware-Benutzer ausgewählte Oberflächensprache ist immer in den Parametern der Aktion enthalten („CultureId“). Mögliche Werte sind momentan:

  • Deutsch „de-DE“
  • Englisch „en-GB“
  • Französisch „fr-FR“
  • Niederländisch „nl-NL“
  • Schwedisch „sv-SE“
  • Spanisch „es-ES“

Die Assembly der Aktion benötigt eine Ressourcen-Datei (resx-Format) für die zu übersetzenden Texte. Hier wird eine Datei (z. B. „Resources.resx“) angelegt, die sprach-unabhängige Texte enthält. Diese wird als Fallback für nicht gefundene sprach-spezifische Dateien verwendet. Für jede gewünschte Sprache kann dann eine eigene Datei angelegt werden, z. B. „Resources.fr-fr.resx“. Darin sind dann die Texte in der jeweiligen Sprache übersetzt. Weitere Informationen zu Ressourcen-Dateien findet man im Internet.

Im Quellcode kann dann über eine statische Klasse (z. B. „Resources“, je nach Dateiname) auf die einzelnen Texte zugegriffen werden. Damit die Texte in der korrekten Sprache ermittelt werden, muss zunächst die Sprache für die Texte festgelegt werden.

var cultureId = parameter.TryGetValue("CultureId", out var cultureIdObj) && cultureIdObj != null ? cultureIdObj?.ToString() : "de-DE";           
Resources.Culture = new CultureInfo(cultureId);
var result = new Dictionary<string, object>();
result.Add("Message", Resources.MyTextKey);
return result;

Bei der Installation der Assembly ist zu beachten, dass zusätzlich sprach-abhängige Assemblies erstellt werden. Diese finden sich im Build-Ausgabeverzeichnis in Ordnern mit dem jeweiligen Sprachkürzel:

Screenshot Explorer

Diese Ordner müssen bei der Installation mit in das Shared-Verzeichnis der Safe 100 (Office-Line) kopiert werden, ansonsten fehlen die Übersetzungen und man erhält lediglich die Fallback-Texte.

War dieser Beitrag hilfreich?

0
0 Kommentare

Es gibt noch keine Kommentare

Hinterlassen Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert