Frage

Hat jemand irgendwelche Empfehlungen für Schlüssel in Ressourcendateien zu benennen? Zum Beispiel haben stützen Sie den Namen Ihres Schlüssels auf den Text, die lokalisiert oder auf der Steuerung werden muss, der den Text verwendet?

Angenommen, Sie haben eine Bearbeitungsschaltfläche in mehreren Displays (ein um einen Benutzer zu bearbeiten, eine um eine Gruppe zu bearbeiten). Sie könnten die folgenden Tasten verwenden:

  • editUserButton.label = Benutzer bearbeiten ...
  • editGroupButton.label = Gruppe bearbeiten ...

oder

  • editUser = Benutzer bearbeiten ...
  • editGroup = Gruppe bearbeiten ...

oder

  • user.edit = Benutzer bearbeiten ...
  • group.edit = Gruppe bearbeiten ...

Welches Schema bevorzugen Sie und warum?

War es hilfreich?

Lösung

Ich Präfix meine Literale durch usecase oder Aktion Klassennamen. zB:

PlaceOrder.invalidId=Invalid id for order {0}
PlaceOrder.success=Your order {0} was successful
PlaceOrder.fail.visa=Your visa was ...
PlaceOrder.fail.communications=We could not...
PlaceOrder.submit=Buy now

Login=Login
Login.fail=Your credentials did not...
Login.alread=You are already logged in

Auf diese Weise können Kollisionen zu vermeiden:

EditStudent=Edit
EditClass=Edit
EditCourse=Edit Course

... und können auch finden, was Sie brauchen einfacher.

Eine weitere Möglichkeit, I-Gruppe ist von Einheit:

Person.id=#
Person.name=First name
Person.surname=Surname

Diese können als Header auf Tabellen mit den Entitäten erscheinen. Es erspart Ihnen in Fällen wie folgt aus:

Person.id=#
Class.id=#
Course.id=Course Id

Schließlich durch den Kontext in dem Eigenschaftsschlüssel Bereitstellung können Sie sich von falschen Übersetzungen speichern. Zum Beispiel hatte ich einmal:

no=no

, die auf der oberen linken Zelle als ID (#) Tabellenkopf verwendet wurde, aber unsere französisch Übersetzer tat dies für Französisch:

no=non

... er dachte, dass es das Wort „nein“ (Negativ Ja) ist. :)

Last (but not least) mit Klassennamen vorangestellt werden Ihnen helfen, wenn Sie mögen Klassen Refactoring / Umbenennen und schnell diese Eigenschaftsschlüssel aktualisieren, ohne auf den Vorlagen suchen zu müssen.

Andere Tipps

Wir stützen sie auf die englische Version des Wortes. Ex: editUser Das war es von unseren Entwicklern leicht lesbar ist und kann an mehreren Orten wiederverwendet werden, die Laufzeit in der gesamten App erforderlich ist.

Basis auf dem englischen Text, aber Präfix mit dem Fenster / Dialog /, was Sie hat, in dem das Wort oder den Ausdruck erscheint. Zumindest, wenn das Layout der Platz begrenzt ist, können Sie überall in der Falle exakt mit der gleichen Zeichenfolge um nicht zu fallen: das Sie von Abkürzen verhindert anständige Layouts zu bekommen, vor allem in polysyllabic Sprachen wie Finnisch.

Natürlich sollten Sie immer noch Sachen in der Namensgebung konsequent sein streben. Eine Erhöhung der Anzahl der Saiten auch Übersetzungskosten erhöhen, wenn Sie diese im Handel tun.

Und nicht ignorieren die Gefahr von Homonyme. Kontext hilft das zu verhindern. Haben Sie keine Angst, dass der Ressourcenname länger als die tatsächliche englischen Begriff zu machen, können diese Übersetzer wesentlich helfen.

1 für @ cherouvim Antwort, aber es kommt immer auf Dokumentation.

Dokument jeden Wert (mit was auch immer Kommentar Mechanismus von der Ressource Quellendateiformat unterstützt wird), einschließlich dem Datentypen jeden Parameters, wenn die Zeichenfolge formatierbare sind. Zum Beispiel legt das VS-Editor für das .resx Format ein Kommentarfeld, die es sehr einfach macht.

So eine Meldung wie:

  

kann nicht vor dem {0} Job planen {1}.

würde als etwas zu dokumentieren, wie:

  

protokolliert Fehlermeldung, {0}. Jobname, {1} Datum / Zeit im ISO 8601-Format

Ich denke, dass in erster Linie Sie irgendeine Art von XML-Dateien verwenden, sollten diese Art von Daten zu speichern.

So etwas wie:




**

Und dann verwenden, um eine Klasse zu „übersetzen“ zu bekommen (und setzt / Speicher), um den Text.

So etwas wie:

myTranslateClass.load ( 'translate.xml');
myTranslateClass.get ( 'Taste', 'Bearbeiten', 'user');

Das ist ein einfaches Beispiel.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top