ローカライズのためのメッセージ形式のサポート

翻訳者向けのガイドライン

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,
    });
    
  • :loudspeaker: 推奨事項: 可能であれば、複雑な引数をメッセージの最外層構造として使用し、そのサブメッセージには完全な文を記述してください。select と plural の引数がネストされている場合は、select 引数(固定された選択肢セットを持つもの)を外側に配置し、plural 引数(できれば最大1つ)を内側にネストしてください。詳細は Formatting Messages | ICU Documentation を参照してください

  • 読みやすくしてください – client.en.yml 内の既存の例を参照してください

    :cross_mark: 悪い例

    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.
    

    :green_heart: 良い例

    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」オプションは無効にしてください。

  • ICU Message Format for Translators


このドキュメントはバージョン管理されています。変更の提案は GitHub でお願いします。

「いいね!」 10