戻る

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 インターフェースが提供されます。