2009-03-07 3 views
16

Hat jemand Empfehlungen zur Benennung von Schlüsseln in Ressourcendateien? Basieren Sie beispielsweise den Namen Ihres Schlüssels auf dem Text, der lokalisiert werden muss, oder auf dem Steuerelement, das den Text verwendet?Benennung von Schlüsseln in den Best Practices der Ressourcendateien

Angenommen, Sie haben eine Bearbeitungsschaltfläche in mehreren Fenstern (eines zum Bearbeiten eines Benutzers, eines zum Bearbeiten einer Gruppe). Sie könnten die folgenden Tasten verwenden:

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

oder

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

oder

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

Welche Regelung bevorzugen Sie und warum?

Antwort

12

Ich Präfix meine Literale von Usecase oder Aktion Klassenname. 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 vermeiden Sie Kollisionen:

EditStudent=Edit 
EditClass=Edit 
EditCourse=Edit Course

... und können auch finden, was Sie leichter benötigen.

Eine andere Möglichkeit, ich Gruppe von Unternehmen:

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

Diese als Header auf Tabellen mit den Einheiten angezeigt werden können. Es speichert Sie in Fällen wie folgt:

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

Schließlich durch Bereitstellung von Kontext in den Eigenschaftenschlüsseln können Sie sich vor falschen Übersetzungen retten. Zum Beispiel, wenn ich hatte:

no=no

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

no=non

... er dachte, es wäre das Wort "nein" (negativ von ja). :)

Last (but not least) Präfix mit Klassennamen wird Ihnen helfen, wenn Sie Klassen umgestalten/umbenennen und diese Eigenschaftsschlüssel schnell aktualisieren möchten, ohne sich die Vorlagen anzusehen.

+0

Ich habe nie gedacht, dass Schlüssel auf den Anwendungsfall basieren. Scheint wie ein vernünftiger Ansatz. +1 –

+0

Es hilft, wenn Sie eine Anwendung mit mehr als 100 Usecases, Ansichten und Aktionen haben. Ich habe auch meine Antwort mit mehr Informationen aktualisiert. – cherouvim

-1

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

So etwas wie:

< xml version = "1.0" encoding = "utf-8" standalone = "yes"? >
< xml >
        < Taste >
                < bearbeiten >
                        < Benutzer > *** Benutzer bearbeiten *
</user >
                        < Gruppe > Gruppe bearbeiten </Gruppe >
                < bearbeiten/>
        </Taste >
</xml > **

Und dann eine Klasse zu erhalten (und setzen/speichern) verwenden "übersetzen" der Text.

Etwas wie:

myTranslateClass.load ('translate.xml');
myTranslateClass.get ('button', 'edit', 'user');

Das ist ein einfaches Beispiel.

+0

Eigenschaften-Dateien sind in meinem Fall viel bequemer, da wir Java und Flex verwenden. –

+0

Die Verwendung von nicht strikt strukturierten Dateien für solche Speicher ist keine gute Idee (meiner Meinung nach), weil es ein bisschen zu leicht ist, sich in den gespeicherten Daten zu verlieren und außerdem viele konfliktträchtige Probleme haben. Plus, XML oder JSON werden von allen Sprachen gehandhabt, was Ihnen mehr Flexibilität gibt:] –

0

Wir basieren auf der englischen Version des Begriffs. Bsp .: EditUser Das war es ist leicht zu lesen von unseren Entwicklern und kann an mehreren Orten wiederverwendet werden, dass der Begriff in der ganzen App benötigt wird.

0

Basieren Sie auf den englischen Text, aber setzen Sie das Präfix mit dem Fenster/dialog/was haben Sie, in dem das Wort oder die Phrase erscheint. Zumindest wenn der Layout-Bereich begrenzt ist, möchten Sie vielleicht vermeiden, in die Falle zu fallen, überall genau die gleiche Zeichenfolge zu haben: Das verhindert, dass Sie Abkürzungen bekommen, um anständige Layouts zu bekommen, besonders in mehrsilbigen Sprachen wie Finnisch.

Natürlich sollten Sie immer noch bestrebt sein, konsistent bei der Namensgebung zu sein. Wenn Sie die Anzahl der Zeichenfolgen erhöhen, erhöhen sich auch die Übersetzungskosten, wenn Sie dies kommerziell tun.

Und ignorieren Sie nicht die Gefahr von Homonymen. Das Bereitstellen von Kontext verhindert dies. Haben Sie keine Angst, machen Sie den Namen der Ressource länger als der eigentliche englische Begriff, das kann Übersetzern wesentlich helfen.

0

+1 für @ Cherouvim die Antwort, aber es kommt immer auf die Dokumentation.

Dokumentieren Sie jeden Wert (unter Verwendung des beliebigen Kommentarmechanismus, der vom Ressourcenquelldateiformat unterstützt wird), einschließlich des Datentyps jedes Parameters, wenn die Zeichenfolge formatierbar ist. Beispielsweise stellt der VS-Editor für das .resx-Format ein Kommentarfeld zur Verfügung, das es sehr einfach macht.

So eine Meldung wie:

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

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

würde als so etwas wie zu dokumentieren.