Zum Thema dieses Artikels wurde ich von einer Geschichte aus einer sehr jüngeren Vergangenheit angeregt. Ich ging zur Produktseite namens Supersite, der Firma We Will Not Poke Fingers LLC (aber Leute aus der Domainer-Branche werden es erkennen). Ich verließ mein gemütliches Büro in Lettland und war überrascht, das folgende Bild zu finden:

Und um es milde auszudrücken, ich war verwirrt über die Währung, in der die Kosten für Dienstleistungen angegeben wurden. In der Tat, in der Werft die zweite Hälfte des Jahres 2018 und der lettische Lat offiziell im Januar 2014 aufgehört zu existieren und wurde durch den Euro ersetzt. Und für 4 Jahre hat sich das oben nicht erwähnte Unternehmen nicht die Mühe gemacht, die verwendeten Gebietsschemas zu prüfen.
Im Rahmen des Schnitts werde ich Ihnen sagen, worauf Sie bei der Internationalisierung und Lokalisierung Ihres Produkts achten sollten und wo Sie Daten für regelmäßige Überarbeitungen erhalten.
Definitionen
Es wird logisch sein, am Anfang zu verstehen, was was ist, und sich darauf zu einigen, was wir in Zukunft nennen werden. Also ...
- Internationalisierung (Internationalisierung, i18n) - Vorbereitung eines Softwareprodukts für die Arbeit mit verschiedenen Sprachen und lokalen Unterschieden, ohne dass eine Datei während ihrer Implementierung finalisiert werden muss. Viele Briefe, deshalb werde ich mit Beispielen erklären. Zeichnen Sie Ihre Website so, dass sie ohne zusätzlichen Eingriff in die Layoutdatei von links nach rechts und von rechts nach links geschrieben werden kann - Internationalisierung. Ersetzen Sie den gesamten Hardcode des Textes durch Sprachvariablen - es ist das gleiche. Einem Produkt das Formatieren von Daten beizubringen, ist wieder dasselbe. Übrigens bedeutet die Zahl 18 in i18n nur die Anzahl der Buchstaben zwischen dem ersten und dem letzten im Wort Internationalisierung.
Ich bin faul. Der Einfachheit halber werde ich i18n weiterhin verwenden. - Lokalisierung (Lokalisierung, L10n) - Anpassung internationalisierter Software an die Standards einer bestimmten Region (Gebietsschema). Das heißt, Wenn Sie eine Liste von Sprachvariablen für die Übersetzung ins
Buschmann- Englisch angeben und das Zahlenformat für Inder angeben, ist dies L10n. - Das Gebietsschema ist eine Reihe von Parametern, die die Sprache und die spezifischen Einstellungen der Benutzeroberfläche definieren, die den Gewohnheiten von Benutzern aus einer bestimmten Region entsprechen.
Warum brauchst du das?
Gute Frage. Viele moderne Programmiersprachen enthalten integrierte Algorithmen für die grundlegende Lokalisierung (Formatierung von Daten, Zahlen, Währungen). Und wenn
Sie sich nicht darum kümmern, sind Sie völlig bereit, der von Ihnen gewählten Technologie zu vertrauen, und
Sie kümmern sich nicht um Benutzer. Ihre Vision von i18n für Ihr Produkt geht nicht darüber hinaus. Der einzig mögliche Grund ist müßige Neugier und allgemeine Entwicklung.
Der Teufel steckt jedoch im Detail. Und diese kleinen Dinge achten manchmal nicht darauf, was für Benutzer sehr ärgerlich sein kann. Wenn Sie bereits solide Erfahrung mit i18n haben, werden Sie in diesem Artikel höchstwahrscheinlich wenig finden (vielleicht einige Beispiele aus dem Leben). In diesem Fall bin ich Ihnen dankbar, wenn Sie Kommentare aus Ihrer Erfahrung hinzufügen (und mich korrigieren, wenn ich in etwas einen Fehler gemacht habe). Ich hoffe, der Rest wird Denkanstöße finden.
Welche Aspekte umfasst das Gebietsschema?
Oft wird das Gebietsschema als Kombination aus Sprache und Land angegeben. Diese Parameter reichen aus, um die Kombination von Sprachnuancen und anderen in der Region verwendeten Parametern festzulegen. Für einige spezifische Aufgaben kann eine kompliziertere Aufteilung erforderlich sein (z. B. Steuergebiete einiger Länder). In diesem Fall ist noch ein dritter Parameter festgelegt - eine Variation (z. B. für eine bestimmte Region, ein bestimmtes Betriebssystem usw.). Viel hängt auch davon ab, wie nah Sie Ihrem Benutzer sein möchten (auf den Philippinen gibt es beispielsweise 12 indigene Sprachen mit mehr als einer Million Sprechern, über die sie sich freuen würden).
Was beinhaltet das Gebietsschema?
Beliebt und offensichtlich
Das Formatieren der meisten Parameter aus dieser Gruppe bietet möglicherweise die modernsten Programmiersprachen. Obwohl es besser ist, sich für alle Fälle ein wenig um sie zu kümmern. Oder zumindest rechtzeitig, um Versionen der entsprechenden Bibliotheken zu aktualisieren.
- Übersetzung - hier ist alles klar, keine Programmiersprache wird dies für Sie tun. Beachten Sie bei der Vorbereitung eines Produkts für die Übersetzung eine einfache Regel: Die gewünschte Mindesteinheit für eine Sprachvariable ist ein Satz (soweit möglich). Ein besserer Satz als Ganzes. Dies ist möglicherweise nicht offensichtlich, wenn der Systemarchitekt nur eine oder zwei grammatikalisch nahe beieinander liegende Sprachen kennt (ich musste mich mit solchen persönlichen Erfahrungen auseinandersetzen, und infolgedessen mussten die Entwickler eine große Anzahl von Textnachrichten in ihrem Code wiederholen und neu schreiben). Die Sprache im weiteren Sinne spiegelt jedoch den Lebensstil und die kulturellen Merkmale eines bestimmten Menschen wider.
Zum Beispiel wissen alle (oder viele) von Ihnen, dass es auf Englisch eine strikte Reihenfolge der Wortarten gibt. Soweit ich weiß, übrigens auch auf Chinesisch. Aber auf Russisch hat die Wortreihenfolge entweder überhaupt keine Bedeutung oder ändert die Bedeutung („Sie sind sehr schlau“ klingt nach Lob und „Sie sind sehr schlau“ ist wie eine Bedrohung). Auf Arabisch gibt es Unterschiede in der Kommunikation mit Männern und Frauen, auf Japanisch - zwischen den sozialen Schichten. Je nachdem, wie wichtig dieses oder jenes Publikum für Sie ist, sollten Sie diese Feinheiten entweder zusammen mit einem Muttersprachler im Detail studieren oder ignorieren. - Datum und Uhrzeit unterscheiden sich größtenteils genau in der Formatierung des Datums. Der Unterschied im Zeitformat ist hauptsächlich ein 12- oder 24-Stunden-Format. Aber mit dem Datum der Optionen viel mehr. Datumsformate werden häufig als mehrere angenommen. Tag und Monat; Tag, Monat, Jahr im numerischen Format; Tag, Monat, Jahr im erweiterten Format. Und dann wächst die Anzahl der Optionen rasant. Irgendwo ist das Trennzeichen ein Punkt, irgendwo - ein Schrägstrich, irgendwo in abgekürzten Formaten, der erste ist der Tag, irgendwo der Monat. Mehr Spaß mit dem erweiterten Format. Nehmen Sie zum Beispiel das Datum meiner Geburt (ich bin bescheiden, ja). So wurde am 5. September 1986 ein Mann geboren, der mit diesem Opus schmutzige Bytes hatte. Gehen wir zu den Orten. Zunächst zwei englischsprachige Länder.
- USA - 5. September 1986.
- Vereinigtes Königreich - 5. September 1986.
Und das ist erst der Anfang. Es gibt keine Fälle auf Englisch, aber selbst zu Beginn unserer Reise unterscheiden sich en_US und en_UK. Schauen Sie sich die Sprachen der Länder genauer an?
- Russland - 5. September 1986. So sind die Fälle erschienen. Und hier können Überraschungen beginnen, weil Standardwerkzeuge zur Datumsformatierung in Ihrer Programmiersprache kennen möglicherweise die Nominativ- und Genitivfälle nicht.
- Lettland - möchten Sie nur das Datum nennen oder sagen, dass an diesem Datum etwas passiert ist? Auf Russisch (heute) 5. September und (geboren) 5. September ist alles Genitiv. Aber auf Lettisch ist der einfache Name für das Datum 1986 gada 5.septembris. Und wenn "Ich wurde geboren" - 1986 gada 5.septembrī. Das Jahr ist das erste, die Zahl ist im lokalen Fall (grobe Übersetzung ist "im 5. September"). Und nach allen Ordnungszahlen auf Lettisch wird ein Punkt gesetzt.
Die ganze Welt ins Visier nehmen? Überlegen Sie, welche Datumsformate verwendet werden sollen. Vielleicht ist es besser, sich nicht mit fortgeschrittenen zu beschäftigen. Es ist unwahrscheinlich, dass die integrierten Formatierungsfunktionen alle oben genannten Feinheiten berücksichtigen. Und ich habe nur 4 der 195 Länder durchlaufen - Mitglieder und Beobachter der UNO. - Das Zahlenformat enthält auch viel Verwirrung. Ich kenne nur das Trennzeichen der Ganzzahl- und Bruchteile (normalerweise ein Punkt oder ein Komma) und die Trennzeichen innerhalb des Ganzzahlteils (ich habe die Optionen "kein Trennzeichen", Komma, Leerzeichen erfüllt, ich erlaube auch die Verwendung von Punkt und Apostroph). Die Rolle spielen auch die Positionen, an denen die Begrenzer platziert sind. Nehmen wir an, wir (und nicht nur) sind es gewohnt, alle drei Positionen (Tausende, Millionen usw.) Teiler zu setzen. Aber hier leben die oben genannten Einwohner Indiens und der Nachbarländer ihr eigenes Leben. Das erste Trennzeichen im ganzzahligen Teil (von der Dezimalstelle aus gezählt) kommt nach 3 Stellen (Tausend) und dann alle zwei: Lakh (100.000), Crore (10 Millionen) und so weiter. Somit werden unsere 42.000.000 im indischen Aufzeichnungssystem wie 4,20,00,000 aussehen. Und sie messen dort oft das Jahresgehalt in Lakhs Rupien. Bei der Formatierung von Zahlen mit einem hohen Maß an Zuverlässigkeit können Sie sich jedoch auf die Programmiersprache verlassen.
- Ein Währungsformat ist im Wesentlichen eine formatierte Zahl, die mit einem Präfix oder Suffix für ein Währungssymbol oder einen Währungscode versehen ist. Die Hauptsache hier ist, sicherzustellen, dass es keine Abenteuer gibt, wie ganz am Anfang des Artikels. Im Moment gilt insbesondere für EU-Länder, wie Einige können der Euro-Umsatzzone beitreten.
- Die Schreibrichtung umfasst tatsächlich etwas mehr als nur das Schreiben des gesamten Textes in einigen Sprachen in die andere Richtung. Dies ist eine Arbeit für einen Layout- oder UI-Designer. Wenn Sie eine Schnittstelle lokalisieren, die für Sprachen „von links nach rechts“ erstellt wurde, wird sie häufig für Sprachen „von rechts nach links“ vollständig gespiegelt (z. B. befinden sich das Logo und die Seitenleiste mit dem Site-Menü rechts).
Weniger offensichtlich
Einige Daten zu i18n werden häufig verwendet, manchmal jedoch mit geringfügigen Auslassungen. Hier hilft Ihnen die Programmiersprache nicht, Sie müssen mit Stiften arbeiten.
- Postleitzahl Ratet mal, wie viele Länder verwenden die Postleitzahl überhaupt nicht? Nach einem Artikel über das Große und Allwissende , 66! Fairerweise stelle ich fest, dass 3 von ihnen ein System verwenden, das der Postleitzahl ähnelt und es Ihnen ermöglicht, bis zur Straße / Gruppe von Häusern / Häusern zu codieren. Es bleiben jedoch 63 weitere übrig, bei denen entweder die Postleitzahl überhaupt nicht verwendet wird oder deren Umsetzung geplant wurde oder geplant ist. Und das ist fast ein Drittel der Länder der Welt. Denken Sie jetzt daran, wie viele Websites Sie getroffen haben. Wo ist die Postleitzahl ein Pflichtfeld? Und nichts kann dagegen unternommen werden. Obwohl der richtige Ansatz darin besteht, ihn nur für die Länder verbindlich zu machen, in denen er überhaupt existiert. Falls gewünscht, können Sie außerdem die Eingabe in die Standards des von den Benutzern ausgewählten Landes überprüfen. Glücklicherweise sind diese Informationen verfügbar (einschließlich des obigen Links).
- Region Als Optionen - Bundesstaat, Region ... Ein weiteres Feld, das sie gerne verbindlich machen möchten, ohne die tatsächliche Situation bei der Postanschrift im Land zu berücksichtigen. Ja, selbst in den kleinsten Ländern gibt es eine Art administrative Aufteilung ( Details im selben Wiki ), aber es lohnt sich nicht immer, das Feld obligatorisch zu machen.
- Telefonnummer. Es besteht aus einem Ländercode und einer nationalen Kennung. Und wenn es kein Problem ist, eine Liste der Ländercodes zu erhalten, können bei der Validierung einer nationalen Kennung Nuancen auftreten. Was ist beispielsweise die Mindestanzahl an Länge, die in Ihre Überprüfung eingenäht wurde? Die tatsächliche Mindestanzahl beträgt jedoch 4 Stellen. Ja, dies gilt nur für zwei Miniaturgebiete, von denen eines am Ende bevölkerungsmäßig das fünfte ist und das andere ebenfalls irgendwo in der Nähe liegt. Aber hier möchte ich mich mehr auf die Gültigkeit als auf die Chance konzentrieren, einen von ungefähr 1600-1700 Niue- Bewohnern als Benutzer zu gewinnen. Durch Bezugnahme können Sie sich ein Bild von der Länge der nationalen Kennungen nach Ländern machen.
- Name und Berufung (Titel). Hier reicht viel übliche Mittelung aus. Felder für Vor- und Nachnamen sowie respektvolle Behandlung. Wie bei den anderen Punkten in diesem Abschnitt hängt alles davon ab, wie „Ihr“ Sie sein möchten. Wenn im Allgemeinen, sind der Vor- und Nachname obligatorisch (obwohl in seltenen Fällen das Gesetz nur einen davon festlegen kann). Der Einfachheit halber können Sie Felder für den Umlauf, andere Namen und ein Suffix erstellen (all dies sind "Junior", "Third"). Wenn Sie auf etwas Besonderes eingehen, können die Schreibregeln von Kultur zu Kultur, von Sprache zu Sprache, sehr unterschiedlich sein.
- Russland - wir alle wissen, dass ein vollständiger Name aus einem Nachnamen, einem Namen und einem Patronym besteht. In der Sprache wie im Land selbst ist die Reihenfolge sehr bedingt, daher kann in der Adresse der Nachname an erster oder letzter Stelle stehen und der zweite Vorname kann weggelassen werden. Optional kann zu Beginn der Beschwerde Herr / Frau (Herr / Frau) hinzugefügt werden.
- USA - Der vollständige Name besteht häufig aus dem Namen selbst (Vorname, "Vorname"), einem oder mehreren Zwischennamen (zweiter Vorname) oder dem Vor- und Nachnamen. Es ist standardmäßig in dieser Reihenfolge geschrieben, Zwischennamen können weggelassen werden. Optional kann eine Beschwerde hinzugefügt werden (die beliebteste: Herr, Frau, Frau, Dr.).
- Lettland - Der vollständige Name besteht aus dem Vor- und Nachnamen, immer in dieser Reihenfolge. Patronym als solches existiert nur in der Geburtsurkunde, wird in anderen Dokumenten nicht verwendet. Es gibt eine Form der höflichen Behandlung kungs / kundze (ein Analogon des russischen Herrn / der russischen Geliebten), die nach dem Nachnamen steht (d. H. Am Ende und nicht am Anfang, wie in den vorherigen Versionen). Der Nachname wird dann in der Genitivzahlung erfasst.
- China - in der chinesischen Originalaufzeichnung steht immer zuerst der Nachname und dann der Name. Es gibt eine höfliche Form der Berufung, die den Nachnamen verbindet (mit ihm verschmilzt und nicht mit einem einzigen Wort). Mein Nachname Vasiliskov in der chinesischen Aufzeichnung wird wie 瓦西里斯科夫 aussehen. Und das chinesische Gegenstück "Mr. Basilisk" ist 瓦西里斯科夫 先生.
Verwöhnen mit ChinesenNicht relevant für das Thema des Artikels, kann aber viel Lulz bringen. Wenn Sie das Wort nehmen, den Google Übersetzer ins Chinesische übersetzen und das Ergebnis in 1-2 Hieroglyphen aufteilen und zurück übersetzen, können Sie eine sehr aufregende Zeit verbringen. Sagen Sie, 里 里 übersetzt er als "Basilikum", 斯科夫 als "Bucht", 科夫 als "Krakau". Aber die geheime Bedeutung des alten Wissens kann in gewöhnlichen Worten offenbart werden. Angenommen, das Telefon übersetzt in 电话. In diesem Fall 电 - "Elektrizität", 话 - "Wörter". Andere Wörter mit Elektrizität: 电池 - Batterie (池 - Pool), 电脑 - Computer (脑 - Gehirn), 电影 - Film (影 - Schatten). Ich habe in diesem Teil nicht mit echten Chinesen gesprochen, aber die Zeit kann auf diese Weise sehr gut verbracht werden. Im Allgemeinen eine interessante Sprache. Nach dem lettischen und polnischen müsste man tun ...
- Philippinen - hier haben sich die amerikanischen und spanischen Namensschreibsysteme historisch gemischt. Aus den Tagen der spanischen Kolonialisierung stammt die Tradition, die Namen von Mutter und Vater zu buchstabieren, mit der amerikanischen, um Zwischennamen zu vergeben. In der aktuellen Version wird der bei der Geburt angegebene Name in der Spalte "Name" aufgezeichnet, der Name des Kindes wird zum Nachnamen des Vaters und der zweite Vorname ist der Mädchenname der Mutter.
Wie Sie sehen können, kann die Anpassung des Systems an alle möglichen Aufnahmeoptionen zu kompliziert werden. Wenn sich jedoch einer der wichtigsten Märkte für Ihr Produkt in einem bestimmten Land befindet, müssen Sie es versuchen.
Seltenere Optionen
Es ist unwahrscheinlich, dass die meisten von Ihnen jemals die i18n-Aspekte dieser Kategorie benötigen. Aber es kann immer noch nützlich sein, sie im Auge zu behalten.
- Einheitensystem. Sind Ihre Benutzer an Meter, Kilogramm, Liter und Grad Celsius gewöhnt? Oder Füße, Pfund, Gallonen und Grad Kelvin? Ich selbst war noch nicht in den Vereinigten Staaten, aber diejenigen, die dort waren, haben mir gesagt, dass Sie sich bei Ihrer Ankunft in
Narnia befinden, der wunderbaren Welt der „unsystematischen“ Einheiten. Und nach einer gewissen Zeit, die Sie dort verbracht haben, beginnen Sie, die System-Zeit zu vergessen. - Papiergröße. Es ist teilweise mit dem vorherigen verwandt und sehr nützlich, wenn Sie Rechnungen, Papierformulare und etwas anderes erstellen, das möglicherweise ausgedruckt und in einen Ordner für Aufzeichnungen gelegt oder jemandem übergeben werden könnte. Die meisten Länder sind an das A4-Format gewöhnt. In den USA werden jedoch häufig die Formate Letter (8 1⁄2 x 11 Zoll, 216 x 279 mm) und Legal (8 1⁄2 x 14 Zoll, 216 x 356 mm) verwendet.
- Kombinierte Zeichenfolgenregeln. Einer der Aspekte, der tatsächlich oft nützlich sein kann und der schwer zu implementieren ist. Mit den Regeln kombinierter Zeichenfolgen meine ich die Fälle, in denen Sie ein Textstück bilden und nicht nur eine Sprachvariable erzeugen müssen. Beispiele umfassen, sind aber nicht beschränkt auf:
- Deklination von Wörtern in Bezug auf die Anzahl (in Ihrem Warenkorb 3 Produkte / 5 Produkte);
- Bildung des vollständigen Namens aus dem obigen Beispiel;
- die korrekte Verwendung des grammatikalischen Geschlechts in den Sprachen, in denen es existiert (Sehr geehrter Herr Ivanov / Sehr geehrte Frau Ivanova) usw.
Was tun mit ihnen? Wenn Sie auf eine begrenzte Anzahl von Gebietsschemas abzielen oder schrittweise expandieren, können Sie sich Architektur für solche rutschigen Stellen vorstellen. Aber es wäre ideal, sie sorgfältig und neutral zu umgehen.
Wo bekomme ich Informationen?
Im Text des Artikels habe ich Links zu Wikipedia gegeben, aber wir alle wissen, dass es besser ist, es nicht als ernsthafte Wissensquelle zu verwenden. Glücklicherweise gibt es ein
Common Locale Data Repository- Projekt, das vom
Unicode-Konsortium unterstützt wird . Es enthält nicht nur
eine unglaubliche Anzahl von Aspekten und Parametern von Gebietsschemas und wird regelmäßig von der Community aktualisiert. Die Daten können auch kostenlos im XML-Format heruntergeladen werden, sodass reguläre Standards problemlos mit der richtigen Architektur aktualisiert werden können.
Ich habe meiner Meinung nach nur die grundlegenden Aspekte angesprochen. Wenn Sie denken, dass ich etwas verpasst habe, schreiben Sie in die Kommentare, ich werde hinzufügen. Teilen Sie gleichzeitig Ihre Erfahrungen mit lokalisierten Produkten.
Vielen Dank für Ihren Aufenthalt bei uns. Gefällt dir unser Artikel? Möchten Sie weitere interessante Materialien sehen? Unterstützen Sie uns, indem Sie eine Bestellung
aufgeben oder Ihren Freunden empfehlen, einen
Rabatt von 30% für Habr-Benutzer auf ein einzigartiges Analogon von Einstiegsservern, das wir für Sie erfunden haben: Die ganze Wahrheit über VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbit / s von $ 20 oder wie teilt man den Server? (Optionen sind mit RAID1 und RAID10, bis zu 24 Kernen und bis zu 40 GB DDR4 verfügbar).
VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbit / s bis Dezember kostenlos, wenn Sie für einen Zeitraum von sechs Monaten bezahlen, können Sie
hier bestellen.
Dell R730xd 2 mal günstiger? Nur wir haben
2 x Intel Dodeca-Core Xeon E5-2650v4 128 GB DDR4 6 x 480 GB SSD 1 Gbit / s 100 TV von 249 US-Dollar in den Niederlanden und den USA! Lesen Sie mehr über
den Aufbau eines Infrastrukturgebäudes. Klasse mit Dell R730xd E5-2650 v4 Servern für 9.000 Euro für einen Cent?