7

Ich entwerfe ein Schema für eine Nachricht auf einer Microblogging-Plattform, die eine definierte Sprache haben muss. Diese Nachrichten werden über Netzwerke zwischen vielen Knoten verteilt, so dass ich das Schema kompakt, aber immer noch mehrsprachig machen muss.Welchen Datentyp sollte ich für IETF-Sprachcodes verwenden?

Ich werde die IETF language codes (en, en-AU etc.) verwenden, aber ich muss wissen, ob es eine bestimmte Möglichkeit gibt, sie für die Zwecke der Effizienz zu vertreten. Es gibt mehrere Standards für Sprach-Tags, aber die aktuelle Spezifikation RFC 5646 ist durch Aufrechterhaltung der Abwärtskompatibilität mit den vorherigen Standards verwickelt. Ich verstehe die Platzanforderungen nicht genau, da es mehrere Untertags gibt.

Welcher Platz ist am effizientesten, um einen IETF-Sprachcode darzustellen?

Antwort

9

Ich denke, IETF-Spezifikationen für den Umgang mit den Locale-Codes ist in der Tat die Industrie "Best Common Practice", aber auf jeden Fall nicht ohne Kompromisse zur Aufrechterhaltung der Abwärtskompatibilität und so. Ich empfehle immer noch, es an Ihre Bedürfnisse anzupassen, da die wichtigsten Internationalisierungsbibliotheken und -standards (Unicode, ICU) es verwenden.

BCP47/RFC5646 section 4.4.1 eine Länge 35 Zeichen Tag empfiehlt:

language  = 8 ; longest allowed registered value 
         ; longer than primary+extlang 
         ; which requires 7 characters 
    script  = 5 ; if not suppressed: see Section 4.1 
    region  = 4 ; UN M.49 numeric region code 
         ; ISO 3166-1 codes require 3 
    variant1  = 9 ; needs 'language' as a prefix 
    variant2  = 9 ; very rare, as it needs 
         ; 'language-variant1' as a prefix 

    total   = 35 characters 

       Figure 7: Derivation of the Limit on Tag Length 

Aber für den Fall interessieren Sie sich nur über Sprache und Schrift (anstelle von Regionsinformationen, die einige locale-sensible Daten wie Datums- und Zeitformate bezeichnet), dann können Sie mit maximal 13 Zeichen auskommen.

In Wirklichkeit werden die meisten Tags am Ende nur zwei Zeichen für die Sprache sein. Die einzigen allgemeinen Beispiele, mit denen ich regelmäßig zu tun habe und die Skriptuntersätze erfordern, sind sr-Latn und sr-Cyrl (jeweils serbisch in lateinischer oder kyrillischer Schrift), zh-Hant (traditionelles Chinesisch) und zh-Hans (vereinfachtes Chinesisch). Außerdem werden Sie wahrscheinlich die Varianten nicht benötigen, was bedeutet, dass die meisten realen Beispiele dieser Ländercodes unter 17 Zeichen fallen sollten.