お世話になっております。
テキストローカライズの序数詞フォーマットについて質問があります。
ドキュメント に習って以下のようなテキストを用意したところ
{Place}|ordinal(one=st,two=nd,few=rd,other=th)
言語を英語にした場合は意図した通りに序数詞が選択されますが、
日本語の場合はどの数字を設定しても「th」が選ばれてしまいます。
恐らく日本語では「第○位」といった表記になることを想定した挙動になるのではないかと推測しているのですが、
日本語でも 1st、2nd の表記を使いたい場合に何か良い方法はありませんでしょうか。
序数詞の制御部はFTextFormatArgumentModifier_PluralForm::Evaluateにありますが、GetCurrentLanguageを直接参照して序数の振り分けを行っています。
そのため日本語設定ではICUライブラリの挙動により全てがotherに振られてしまいこの挙動になってしまいます。
言語の切り替えは大きなオーバーヘッドを伴うため気軽に切り替えることはできません。同関数内に自作した序数用の言語オーバーライドを受け入れるような改造を適用する方法も考えられますが、与えられた数字に対して英語での序数詞付与を行った文字列を返す関数を自作してしまった方がシンプルに問題を解決できると思います。
大変お手数をおかけしますがご検討をお願いします。
ご提案の通り、英語での序数詞付与を行った文字列を返す関数を自作することにします。
ご返答ありがとうございました。