generaltranslation@8.1.0
Übersicht
generaltranslation@8.1.0 führt formatCutoff() ein, eine locale‑abhängige Funktion zur Textkürzung, die Zeichenbegrenzungen mit geeigneten Abschlusszeichen für verschiedene Sprachen verarbeitet.
Motivation
Das Kürzen von UI-Text basiert typischerweise auf CSS text-overflow: ellipsis oder dem einfachen Abschneiden von Strings, aber diese Ansätze berücksichtigen keine locale-spezifischen Konventionen. Verschiedene Sprachen verwenden unterschiedliche Auslassungszeichen, Leerzeichen und Interpunktionsregeln, wenn Text abgeschnitten wird.
Außerdem besteht, wenn KI-Übersetzungen auf Zeichenbegrenzungen beschränkt sind, häufig die Notwendigkeit eines clientseitigen Mechanismus, um diese Begrenzungen als Standardwert strikt durchzusetzen.
Verwendung
formatCutoff() ist sowohl als Instanzmethode von GT als auch als eigenständige Funktion verfügbar:
import { GT, formatCutoff } from 'generaltranslation'
const gt = new GT({ targetLocale: 'en-US' })
// Einfaches Kürzen
gt.formatCutoff('Hello, world!', { maxChars: 8 })
// Gibt zurück: 'Hello, w…'
// Standalone-Funktion
formatCutoff('Hello, world!', {
locales: 'fr-FR',
maxChars: 8
})
// Gibt zurück: 'Hello, w\u202F…' // Beachte das schmale Leerzeichen vor den AuslassungspunktenNegative maxChars
Negative Werte schneiden vom Ende her ab und stellen den Terminator voran:
gt.formatCutoff('Hello, world!', { maxChars: -3 })
// Gibt zurück: „…ld!"Locale-spezifische Abschlusszeichen
Verschiedene locales verwenden unterschiedliche Schreibweisen für Auslassungspunkte:
// Chinesisch und Japanisch verwenden doppelte Auslassungszeichen
formatCutoff('你好世界', { locales: 'zh-CN', maxChars: 4 })
// Gibt zurück: '你好……'
// Französisch verwendet ein schmales geschütztes Leerzeichen vor dem Auslassungszeichen
formatCutoff('Bonjour', { locales: 'fr-FR', maxChars: 5 })
// Gibt zurück: 'Bonj\u202F…'Benutzerdefinierte Terminatoren
Überschreiben Sie das Standardverhalten mit benutzerdefinierten Terminatoren und Trennzeichen:
gt.formatCutoff('Long text here', {
maxChars: 10,
terminator: '...',
separator: ' '
})
// Gibt zurück: 'Long text ...'Kein Abschlusszeichen
Verwende den Stil 'none', um ohne Abschlusszeichen zu kürzen:
gt.formatCutoff('Hello, world!', {
maxChars: 5,
style: 'none'
})
// Gibt zurück: 'Hello'Grundlage für UI-Bibliotheken
Diese Funktionalität dient als Basisschicht für UI-spezifische Implementierungen in gt-react und gt-next, die jeweils die für ihre Frameworks geeigneten Teilmengen dieser Funktionalität bereitstellen.