Zurück

generaltranslation@7.8.0

Ernest McCarter avatarErnest McCarter
generaltranslation7.8.0List formattingtranslation

Übersicht

In generaltranslation@7.8.0 führen wir Listenformatierungsfunktionen ein, die die Grundlage für kommende Komponenten und Methoden bilden. Diese Version fügt formatListToParts() sowohl der GT-Klasse als auch als eigenständige Funktion hinzu.


Motivation

Listen von Elementen erfordern eine korrekte, lokalisierungsabhängige Formatierung. Konkret wollten wir die Möglichkeit hinzufügen, mehrere Elemente (nicht nur Strings) zu einer formatierten Liste zu verbinden. Dadurch können wir problemlos Listen mit beliebigen Daten erstellen, beispielsweise JSX-Elementen.


Verwendung

Die neue Funktion formatListToParts() erhält die ursprünglichen Typen der Listeneinträge bei und fügt dabei passende, lokalisierungsspezifische Trennzeichen ein:

import { GT, formatListToParts } from 'generaltranslation'

const gt = new GT({ locales: ['en'] })

// Gemischte Datentypen
gt.formatListToParts(['apple', 42, { type: 'fruit' }])
// Rückgabe: ['apple', ', ', 42, ', and ', { type: 'fruit' }]

// Eigenständige Funktion
formatListToParts(['red', 'green', 'blue'], {
  locales: ['es'],
  type: 'disjunction',
})
// Rückgabe: ['red', ', ', 'green', ' o ', 'blue']

Es werden verschiedene Listentypen und -stile unterstützt:

// Disjunktion (oder)
gt.formatListToParts(['A', 'B', 'C'], { type: 'disjunction' })
// Gibt zurück: ['A', ', ', 'B', ' oder ', 'C']

// Kurzer Stil
gt.formatListToParts(['first', 'second'], { style: 'short' })
// Gibt zurück: ['first', ' & ', 'second']

// Einheitenformatierung
gt.formatListToParts(['1km', '2mi'], { type: 'unit' })
// Gibt zurück: ['1km', ', ', '2mi']

Grundlage für Komponenten

Diese Funktionalität legt das Fundament für die kommende <List/>-Komponente und die Methoden msg.list() / gt.list(), die React-Schnittstellen für die Listenformatierung bereitstellen werden.