ローカライゼーションのためのMessage Formatサポート

翻訳者向けガイドライン

Discourseでは、すべてのメッセージフォーマット文字列のキーは末尾が「_MF」になります。Crowdinエディタには、さまざまな値を試して翻訳を確認できるプレビュー機能があり、非常に便利です。

重要: お使いの言語が「one」と「other」以外の複数形を使用する場合は、翻訳の複数形を変更する必要があります。言語に合わせて機能させるために、{ FOO, plural, ... } ブロック内でフォームを追加または削除できます。Crowdinエディタのプレビューで、翻訳に問題がある場合、「構文エラー」が表示されます。

利用可能な複数形は次のとおりです。

  • zero
  • one
  • two
  • few
  • many
  • other(必須 - 一般的な複数形 - 単数形と複数形の区別がない言語でも使用されます)

英語のソース文字列に空の =0 {} ブロックが表示されることがありますが、これは変数の値が0にならないことを意味します。

開発者向けガイドライン

メッセージフォーマット文字列は、現在クライアントサイドの翻訳でのみ利用可能です。文字列に複数の数値が含まれる場合や、多くの変数があり順列が多くなる場合に役立ちます。

  • メッセージフォーマット文字列のキーは末尾が「_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 \u003cstrong\u003e#\u003c/strong\u003e topic} other {are \u003cstrong\u003e#\u003c/strong\u003e topics}}. Visitors need more to read and reply to – we recommend at least { requiredTopics, plural, one {\u003cstrong\u003e#\u003c/strong\u003e topic} other {\u003cstrong\u003e#\u003c/strong\u003e topics}}. Only staff can see this message.
    

    :green_heart: 良い例

    There { currentTopics, plural,
        one {is \u003cstrong\u003e#\u003c/strong\u003e topic}
      other {are \u003cstrong\u003e#\u003c/strong\u003e topics}
    }. Visitors need more to read and reply to – we recommend at least { requiredTopics, plural,
        one {\u003cstrong\u003e#\u003c/strong\u003e topic}
      other {\u003cstrong\u003e#\u003c/strong\u003e 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