戻る

generaltranslation@7.8.0

Ernest McCarter avatarErnest McCarter
generaltranslation7.8.0リスト整形翻訳

概要

generaltranslation@7.8.0 では、今後追加されるコンポーネントやメソッドの基盤となるリスト整形機能を導入しました。このリリースでは、GT クラスとスタンドアロン関数の両方に formatListToParts() を追加しています。


モチベーション

項目のリストには、ロケールを考慮した適切なフォーマットが必要です。特に、複数の項目(文字列に限らず)をフォーマットされたリストとして結合できるようにしたいと考えました。これにより、JSX 要素などの任意のデータからリストを作成しやすくなります。


使い方

新しい formatListToParts() 関数は、ロケールに応じた適切な区切り文字を挿入しつつ、リスト項目の元の型を保持します。

import { GT, formatListToParts } from 'generaltranslation'

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

// 混合データ型
gt.formatListToParts(['apple', 42, { type: 'fruit' }])
// 返り値: ['apple', ', ', 42, ', and ', { type: 'fruit' }]

// スタンドアロン関数
formatListToParts(['red', 'green', 'blue'], {
  locales: ['es'],
  type: 'disjunction',
})
// 返り値: ['red', ', ', 'green', ' o ', 'blue']

さまざまな種類のリストとスタイルがサポートされています。

// 選言(または)
gt.formatListToParts(['A', 'B', 'C'], { type: 'disjunction' })
// 戻り値: ['A', ', ', 'B', ', or ', 'C']

// 短縮形式
gt.formatListToParts(['first', 'second'], { style: 'short' })
// 戻り値: ['first', ' & ', 'second']

// 単位のフォーマット
gt.formatListToParts(['1km', '2mi'], { type: 'unit' })
// 戻り値: ['1km', ', ', '2mi']

コンポーネントの基盤

この機能は、今後提供される <List/> コンポーネントおよび msg.list() / gt.list() メソッドの基盤となるもので、リスト整形のための React インターフェースを提供します。