翻訳者向けのガイドライン
Discourse では、すべての Message Format 文字列に “_MF” で終わるキーが付与されます。Crowdin エディタにはプレビュー機能があり、さまざまな値で実験できます。翻訳の確認に非常に役立ちます。
重要: 言語が “one” と “other” 以外の形式を使用する場合、翻訳の複数形を修正する必要があります。{ FOO, plural, ... } ブロック内で形式を追加または削除することで、対象の言語で動作するようにできます。翻訳に問題がある場合、Crowdin エディタのプレビューには “Syntax error” が表示されます。
利用可能な複数形は以下の通りです:
- zero
- one
- two
- few
- many
- other(必須 — 一般的な複数形 — 単数形と複数形の区別がない言語にも使用されます)
英語のソース文字列で空の =0 {} ブロックを目にすることがありますが、これは変数が 0 の値を持つことができないことを意味します。
開発者向けのガイドライン
Message Format 文字列は、現在クライアントサイドの翻訳でのみ利用可能です。文字列に複数の数値や多くの変数が含まれ、それによって多くの組み合わせ(パーミュテーション)が生じる場合に有用です。
-
Message Format 文字列のキーは “_MF” で終わる必要があります
-
数値には以下の形式を使用してください(
#は数値に置き換えられます):{ variable_name, plural, one: {# 単数形テキスト} other: {# 複数形テキスト} } -
選択肢には以下の形式を使用してください:
{ variable_name, select, foo: {これは foo です} bar: {これは bar です} baz: {これは baz です} } -
JavaScript で使用する方法は以下の通りです:
I18n.messageFormat("key_MF", { variable1: "foo", variable2: 42, }); -
推奨事項: 可能であれば、複雑な引数をメッセージの最外層構造として使用し、そのサブメッセージには完全な文を記述してください。select と plural の引数がネストされている場合は、select 引数(固定された選択肢セットを持つもの)を外側に配置し、plural 引数(できれば最大1つ)を内側にネストしてください。詳細は Formatting Messages | ICU Documentation を参照してください -
読みやすくしてください – client.en.yml 内の既存の例を参照してください
悪い例There {currentTopics, plural, one {is <strong>#</strong> topic} other {are <strong>#</strong> topics}}. Visitors need more to read and reply to – we recommend at least { requiredTopics, plural, one {<strong>#</strong> topic} other {<strong>#</strong> topics}}. Only staff can see this message.
良い例There { currentTopics, plural, one {is <strong>#</strong> topic} other {are <strong>#</strong> topics} }. Visitors need more to read and reply to – we recommend at least { requiredTopics, plural, one {<strong>#</strong> topic} other {<strong>#</strong> topics} }. Only staff can see this message.
ツールと追加情報
-
Online ICU Message Editor では、Crowdin エディタに問題がある場合に Message Format 文字列をテストできます。エラーメッセージが表示される可能性があるため、「Parse simple xml/html tags」オプションは無効にしてください。
このドキュメントはバージョン管理されています。変更の提案は GitHub でお願いします。
