Wir entwickeln eine große Anwendung, die aus vielen kleinen Paketen besteht. Jedes Paket verfügt über einen eigenen Satz von Ressourcendateien für die Lokalisierung.
Was ist der beste Ansatz zum Organisieren und Benennen der Lokalisierungszeichenfolgen?
Hier sind meine bisherigen Gedanken:
Umgang mit Duplikaten
Derselbe Text (z. B. "Postleitzahl") kann in einem bestimmten Paket mehrmals vorkommen. Der Programmierinstinkt (DRY) fordert mich auf, eine einzelne Zeichenfolgenressource zu erstellen, die von allen Vorkommen gemeinsam genutzt wird .
Andererseits möchte ein Übersetzer möglicherweise an einigen Stellen eine lange ("Postleitzahl") und an Stellen mit weniger Platz eine kürzere ("PLZ") Übersetzung auswählen. Oder wir möchten einen Doppelpunkt an einige Vorkommen ("Postleitzahl:") anhängen, an andere jedoch nicht. Oder wir benötigen an einigen Stellen eine andere Groß- / Kleinschreibung ("Postleitzahl"). Alle diese Argumente deuten darauf hin, dass pro Nutzung eine Ressource erstellt wird, auch wenn deren Inhalt identisch ist .
Benennung
Wenn Duplikate eliminiert werden sollen, ist es sinnvoll, die Ressourcen nach Inhalten zu benennen , möglicherweise mit einem Hinweis auf die Art der Verwendung per Präfix. Also wir haben labelOK
= „OK“ , messageFileTooLarge
= „Die Datei überschreitet die maximale Dateigröße.“ , und labelZipCode
= "Postleitzahl" .
Die Benennung nach Inhalten hat den Vorteil, dass Formatargumente auf natürliche Weise behandelt werden: Die Ressource akzeptiert messageFileHas_0_MBWhileMaximumIs_1_MB
eindeutig zwei Formatierungsargumente, die tatsächliche Dateigröße und die maximale Dateigröße.
Wenn wir jedoch Duplikate zulassen, ist die Nennung nach Inhalten allein nicht sinnvoll. Um eindeutige Ressourcennamen zu erhalten, müssen wir den Verwendungsort in den Ressourcennamen aufnehmen. Das funktioniert für grafische Steuerelemente, obwohl die Bezeichner in der Regel etwas lang werden: fileSelectionConfirmationButtonText
= "OK" , customerDetailsTableColumnZipCode
= "Postleitzahl" . Bei nicht visuellen Codedateien wird es jedoch schwieriger. Wie benennen Sie eine bestimmte Verwendung einer Zeichenfolge, wenn Sie nicht wissen, wo sie schließlich angezeigt wird? Nach Codedatei und Funktionsname? Scheint mir eher ungeschickt und spröde.
Alles in allem neige ich dazu, Duplikate zuzulassen, aber ich bemühe mich, ein konsistentes Benennungsschema zu finden, das dies unterstützt.
Edit: Diese Frage hat zwei Aspekte: Wie organisieren Ressourcen (DRY vs. Duplikate) und wie man nennt sie. Bisher haben sich die Antworten auf den ersten Aspekt konzentriert. Ich würde mich über Feedback zu Namenskonventionen freuen!