Im Allgemeinen verwenden Übersetzungsmethoden ein Schlüssel> Wert-Mapping und verwenden den Schlüssel, um das in einen Wert umzuwandeln. Jetzt erkenne ich zwei verschiedene Methoden, um Ihre Übersetzungsschlüssel zu benennen und innerhalb meines Teams kommen wir nicht zu dem Konsens, was die beste Methode zu sein scheint.Best Practice für Schlüsselwerte in Übersetzungsdateien
Methode 1: Verwenden englische Wörter oder Sätze:
Name => Name
Please enter your email address => Please enter your email address
Methode 2: Verwenden Sie Stichworte, um die Situation zu beschreiben:
NAME => Name
ENTER_EMAIL => Please enter your email address
Ich persönlich bevorzuge Methode # 1, da Es zeigt direkt die Bedeutung der Nachricht an. Wenn die Übersetzung nicht vorhanden ist, können Sie auf den Schlüssel zurückgreifen, und das verursacht keine Probleme. Die Methode ist jedoch umständlich, wenn sich eine Übersetzung häufig ändert, da alle Dateien aktualisiert werden müssen. Auch für längere Texte werden diese Tasten sehr groß. Dies wird durch die Verwendung von Schlüsseln wie ENTER_EMAIL
gelöst, aber die Formulierung ist völlig außerhalb des Kontexts. Die Liste der abstrakten Übersetzung Schlüssel wäre riesig, Sie benötigen Metadaten für alle Schlüssel, die ihre Verwendung erklären und Kollisionen können viel einfacher auftreten.
Gibt es das Beste aus beiden Welten oder eine dritte Methode? Wie verwenden Sie Übersetzungsschlüssel in Ihrer Anwendung? In unserem Fall ist es eine php-basierte Webapplikation, aber ich denke, das obige Problem ist generisch genug, um über i18n im Allgemeinen zu sprechen.
Interessante Frage. Ich bevorzuge auch # 1, gehe aber hybrid, wenn die Situation es rechtfertigt. –
Ich bevorzuge # 2 mit der Voraussetzung natürlich, dass es immer einen englischen (oder Originalsprache) Eintrag gibt. Jeder Datensatz sollte außerdem ein Datum/eine Uhrzeit für die letzte Aktualisierung enthalten, um auf geänderte Nachrichten und die Notwendigkeit aktualisierter Übersetzungen hinzuweisen. Separat sollte ein Datensatz gespeichert werden, der angibt, was die Originalsprache ist. –