翻訳者向けガイドライン
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, }); -
推奨: 可能な場合は、複雑な引数をメッセージの最も外側の構造として使用し、サブメッセージに完全な文章を記述します。ネストされた select および plural 引数がある場合は、select 引数(固定の選択肢セットを持つもの)を外側に配置し、plural 引数(できれば1つ)をその内側にネストします。Formatting Messages | ICU Documentation を参照してください。 -
読みやすくしてください – client.en.yml の既存の例を参照してください。
悪い例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.
良い例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」オプションを無効にしないと、エラーメッセージが表示される場合があります。
このドキュメントはバージョン管理されています - 変更の提案はgithubで行ってください。
