2017-07-04 4 views
0

Aufgrund von i18n Tutorial in https://angular.io/guide/i18n, sollte jede übersetzte Nachricht eine eindeutige ID haben.Angulare i18n Tags - IDs Konvention

Die Frage ist, wenn jemand eine Konvention von ID-Strings in einer großen Anwendung konfrontiert? Was sollte ein solches ID-Muster enthalten, ein geringes Risiko für ID-Wiederholungen haben und eine einfache Pflege der Nachrichtenübersetzungen ermöglichen, wenn viele Komponenten, Unterkomponenten usw. vorhanden sind?

Antwort

0

Ich verwende Bedeutungswerte als Kontext. Anstatt also mit

<p i18n>This is a sample</p> 

oder

<p i18n="@@sample">This is a sample</p> 

Ich benutze die Bedeutung Wert. So

<p i18n="sample|">This is a sample</p> 

Denken Sie daran, das Pipe-Zeichen hinzuzufügen! Sonst nimmt das Extrahierwerkzeug den Wert als Beschreibung. Das Extrahiertool erzeugt die ID, aber mein Lokalisierungstool ignoriert es. Stattdessen verwendet es eine Kombination aus Bedeutungs- und Standortattributen in der Ressourcendatei, um eine eindeutige ID zu erhalten. Dies macht das Schreiben von Code viel einfacher, da wir keine eindeutige ID unter allen Vorlagen (z. B. Hunderte von Dateien) haben müssen, sondern nur zwischen einer einzigen Datei.

Wenn aus irgendeinem Grund die Bedeutung in einer Vorlage fehlt, schreibt das Lokalisierungstool eine Warnung und verwendet die generierte ID als Kontext anstelle von Bedeutung + Ort. Entwickler werden schnell erkennen, wo die Bedeutung fehlt und können sie hinzufügen.

Es ist einfach sicherzustellen, dass die Bedeutung in einer einzelnen Datei (Vorlage) eindeutig ist, aber es ist unmöglich, die eindeutige global zu haben, wenn Sie mehrere Entwickler und Hunderte von Vorlagen haben.

+0

Der Punkt ist, dass Sie global eine eindeutige ID haben sollten, um Übersetzungsprobleme zu vermeiden. In diesem Moment verwende ich die Konvention 'componentName' _ 'interne ID' oder 'global_'id', aber ich bin mir nicht sicher, ob das eine perfekte Lösung ist. – Krystian

+0

Ich erhalte eine eindeutige ID global, da die ID eine Kombination aus Dateiname und dem Bedeutungswert ist. Der Punkt ist, dass der Bedeutungswert nur innerhalb der Datei eindeutig sein muss. – Jaska