Zum Hauptinhalt springen

5 Posts getaggt mit "Intl"

Alle Tags anzeigen

`Intl.DisplayNames`

· 4 Minuten Lesezeit
Shu-yu Guo ([@_shu](https://twitter.com/_shu)) und Frank Yung-Fong Tang

Webanwendungen, die ein globales Publikum erreichen, müssen die Anzeigennamen von Sprachen, Regionen, Schriften und Währungen in vielen verschiedenen Sprachen anzeigen. Die Übersetzungen dieser Namen erfordern Daten, die im Unicode CLDR verfügbar sind. Die Aufnahme dieser Daten in die Anwendung verursacht Kosten für die Entwickler. Nutzer bevorzugen wahrscheinlich konsistente Übersetzungen von Sprach- und Regionsnamen, und um diese Daten mit den geopolitischen Entwicklungen der Welt aktuell zu halten, ist eine kontinuierliche Wartung erforderlich.

`Intl.NumberFormat`

· 4 Minuten Lesezeit
Mathias Bynens ([@mathias](https://twitter.com/mathias)) und Shane F. Carr

Sie kennen möglicherweise bereits die Intl.NumberFormat-API, da sie seit einiger Zeit in modernen Umgebungen unterstützt wird.

In ihrer grundlegendsten Form ermöglicht Intl.NumberFormat das Erstellen einer wiederverwendbaren Formatierer-Instanz, die lokalisationsspezifische Zahlenformatierung unterstützt. Genau wie andere Intl.*Format-APIs unterstützt eine Formatierer-Instanz sowohl eine format- als auch eine formatToParts-Methode:

`Intl.ListFormat`

· 3 Minuten Lesezeit
Mathias Bynens ([@mathias](https://twitter.com/mathias)) und Frank Yung-Fong Tang

Moderne Webanwendungen verwenden oft Listen mit dynamischen Daten. Zum Beispiel könnte eine Fotoanzeige-App etwas wie das Folgende darstellen:

Dieses Foto beinhaltet Ada, Edith, und Grace.

Ein textbasiertes Spiel könnte eine andere Art von Liste haben:

Wähle deine Superkraft: Unsichtbarkeit, Psychokinese, oder Empathie.

Da jede Sprache unterschiedliche Listformatierungsgewohnheiten und Wörter hat, ist die Implementierung eines lokalisierten Listenformatierers nicht trivial. Dies erfordert nicht nur eine Liste aller Wörter (wie „und“ oder „oder“ in den obigen Beispielen) für jede unterstützte Sprache – zusätzlich müssen auch die genauen Formatierungsgewohnheiten für all diese Sprachen kodiert werden! Das Unicode CLDR stellt diese Daten bereit, aber um sie in JavaScript zu verwenden, müssen sie eingebettet und zusammen mit anderem Bibliothekscode ausgeliefert werden. Leider erhöht dies die Paketgröße solcher Bibliotheken, was sich negativ auf Ladezeiten, Parser-/Kompilierungskosten und Speicherverbrauch auswirkt.

`Intl.RelativeTimeFormat`

· 5 Minuten Lesezeit
Mathias Bynens ([@mathias](https://twitter.com/mathias))

Moderne Webanwendungen verwenden häufig Phrasen wie „gestern“, „vor 42 Sekunden“ oder „in 3 Monaten“ anstelle vollständiger Datumsangaben und Zeitstempel. Solche relativen Zeitformatierungswerte sind so gebräuchlich geworden, dass mehrere beliebte Bibliotheken Utility-Funktionen bereitstellen, die sie auf lokalisierte Weise formatieren. (Beispiele sind Moment.js, Globalize und date-fns.)

`Intl.PluralRules`

· 4 Minuten Lesezeit
Mathias Bynens ([@mathias](https://twitter.com/mathias))

Iñtërnâtiônàlizætiøn ist schwierig. Das korrekte Behandeln von Pluralen ist eines von vielen Problemen, die einfach erscheinen, bis man erkennt, dass jede Sprache ihre eigenen Pluralisierungsregeln hat.

Für die englische Pluralisierung gibt es nur zwei mögliche Ergebnisse. Nehmen wir das Wort „cat“ als Beispiel:

  • 1 cat, d.h. die 'one'-Form, bekannt als Singular im Englischen
  • 2 cats, aber auch 42 cats, 0.5 cats, usw., d.h. die 'other'-Form (die einzige weitere), bekannt als Plural im Englischen.

Die brandneue Intl.PluralRules API sagt Ihnen, welche Form in einer Sprache Ihrer Wahl basierend auf einer gegebenen Zahl zutrifft.

const pr = new Intl.PluralRules('en-US');
pr.select(0); // 'other' (z. B. '0 cats')
pr.select(0.5); // 'other' (z. B. '0.5 cats')
pr.select(1); // 'one' (z. B. '1 cat')
pr.select(1.5); // 'other' (z. B. '0.5 cats')
pr.select(2); // 'other' (z. B. '0.5 cats')