コンテンツにスキップ

SelectOrdinal

SelectOrdinal は、コアマクロ selectOrdinal に対応するコンポーネントマクロです。

序数ケースをそのままテンプレートマークアップ内に書きたいときに便利で、関数呼び出しよりコンポーネント形式のほうが保守しやすい場合に向いています。

標準の ICU 複数形カテゴリ(onetwofewmanyother)は、そのままプロパティ名として使います。 完全一致にはアンダースコア付きの数値を使います。 たとえば _1="1st"value が 1 のときだけ完全一致し、カテゴリプロパティより優先されます。 これは、あるロケールではカテゴリに素直に対応しない不規則な序数に便利です。

フレームワークに依存しない Lingui の意味論については、公式の SelectOrdinal リファレンス を参照してください。

ソース
<p>
  <SelectOrdinal value={place} one="#st" two="#nd" few="#rd" other="#th" />
</p>
結果

1st

ロケール
順位
<script lang="ts">
import { SelectOrdinal } from "lingui-for-svelte/macro";
let place = $state(1);
</script>
<SelectOrdinal value={place} one="#st" two="#nd" few="#rd" other="#th" />

数値の前に _ を付けると、その値に完全一致します。 完全一致はカテゴリプロパティより優先されます。

<SelectOrdinal value={place} _1="1st" _2="2nd" _3="3rd" other="#th" />

関数形式では、同じ効果を数値キーそのままで表します。

<p>{$selectOrdinal(place, { 1: "1st", 2: "2nd", 3: "3rd", other: "#th" })}</p>
  • 序数分岐をテンプレートマークアップの中でそのまま書きたい
  • selectOrdinal(...) よりコンポーネント形式のほうが見通しがよい
  • PluralSelect と対称的な書き方にしたい