تنسيقات رسائل الأقلمة

يحتوي كل تطبيق أو إضافة دولية على ملف واحد على الأقل يُسمى messages.json ويوفر سلاسل خاصة باللغة المحلية. توضّح هذه الصفحة تنسيق ملفات messages.json. للحصول على معلومات عن حول كيفية التدويل والأقلمة، راجِع صفحة التدويل.

ملخّص الحقل

يعرض الرمز التالي الحقول المتوافقة مع messages.json. "name" فقط و"الرسالة" .

{
  "name": {
    "message": "Message text, with optional placeholders.",
    "description": "Translator-aimed description of the message.",
    "placeholders": {
      "placeholder_name": {
        "content": "A string to be placed within the message.",
        "example": "Translator-aimed example of the placeholder string."
      },
      ...
    }
  },
  ...
}

مثال

هذا ملف messages.json يحدّد ثلاث رسائل باسم "prompt_for_name" و"hello" "وداعًا":

{
  "prompt_for_name": {
    "message": "What's your name?",
    "description": "Ask for the user's name"
  },
  "hello": {
    "message": "Hello, $USER$",
    "description": "Greet the user",
    "placeholders": {
      "user": {
        "content": "$1",
        "example": "Cira"
      }
    }
  },
  "bye": {
    "message": "Goodbye, $USER$. Come back to $OUR_SITE$ soon!",
    "description": "Say goodbye to the user",
    "placeholders": {
      "our_site": {
        "content": "Example.com",
      },
      "user": {
        "content": "$1",
        "example": "Cira"
      }
    }
  }
}

تفاصيل الحقل

يصف هذا القسم كل حقل يمكن أن يظهر في ملف messages.json. للحصول على تفاصيل حول كيفية يتم استخدام ملف الرسائل - على سبيل المثال، ما يحدث عندما لا تحدد لغة جميع الرسائل - راجع الانتشار على نطاق عالمي:

الاسم

في الواقع، لا يوجد حقل باسم "الاسم". اسم هذا الحقل هو اسم الرسالة — وهو نفسه name الذي تراه في __MSG__name___ أو getMessage("_name_").

والاسم هو مفتاح غير حساس لحالة الأحرف يسمح لك باسترداد نص الرسالة المترجَم. يمكن للاسم تتضمن الأحرف التالية:

  • A-Z
  • a-z
  • 0-9
  • _ (شرطة سفلية)
  • @
ملاحظة: لا تحدِّد الأسماء التي تبدأ بـ "@@". يتم حجز هذه الأسماء للرسائل المحدَّدة مسبقًا.

إليك ثلاثة أمثلة للأسماء، مأخوذة من القسم مثال:

"prompt_for_name": {
  ...
},
"hello": {
  ...
},
"bye": {
  ...
}

للاطلاع على مزيد من الأمثلة على استخدام الأسماء، راجع صفحة الانتشار على نطاق عالمي.

رسالة

الرسالة المترجَمة، في شكل سلسلة يمكن أن تحتوي على عناصر نائبة استخدام $_placeholder_name_$ (غير حساس لحالة الأحرف) للإشارة إلى عنصر نائب معيّن. على سبيل المثال، يمكنك الإشارة إلى عنصر نائب باسم "our_site" بتنسيق $our_site$ أو $OUR_SITE$ أو $oUR_sITe$.

في ما يلي ثلاثة أمثلة للرسائل، مأخوذة من القسم مثال:

"message": "What's your name?"
...
"message": "Hello, $USER$"
...
"message": "Goodbye, $USER$. Come back to $OUR_SITE$ soon!"

لإضافة علامة الدولار ($) إلى السلسلة، استخدِم $$. For example, use the following code to specify the message Amount (in $):

"message": "Amount (in $$)"
.

على الرغم من أن العناصر النائبة مثل $USER$ هي الطريقة المفضّلة للإشارة إلى سلاسل الاستبدال. (السلاسل المحددة باستخدام معلمة substitutions لـ i18n.getMessage) يمكنك أيضًا الرجوع إليها. إلى سلاسل الاستبدال مباشرةً داخل الرسالة. على سبيل المثال، تشير الرسالة التالية إلى تم تمرير سلاسل الاستبدال الثلاث الأولى إلى getMessage():

"message": "Params: $1, $2, $3"

على الرغم من هذا المثال، ننصحك بالالتزام باستخدام العناصر النائبة بدلاً من سلاسل $_n_. داخل رسائلك. فكر في العناصر النائبة على أنها أسماء متغيرات جيدة. بعد أسبوع من كتابة بهذا الرمز، قد تنسى ما يشير إليه $1، ولكنّك ستعرف ما تشير إليه العناصر النائبة. لمزيد من المعلومات عن العناصر النائبة وسلاسل الاستبدال، اطّلِع على قسم العناصر النائبة.

الوصف

اختياري. وصف للرسالة، يهدف إلى تقديم سياق أو تفاصيل لمساعدة المترجم وتقديم أفضل ترجمة ممكنة.

إليك ثلاثة أمثلة للأوصاف مأخوذة من القسم مثال:

"description": "Ask for the user's name"
...
"description": "Greet the user"
...
"description": "Say goodbye to the user"

العناصر النائبة

اختياري. تحدد سلسلة فرعية واحدة أو أكثر لاستخدامها في الرسالة. إليك سببين قد ترغب في استخدام عنصر نائب:

  • لتحديد نص جزء من رسالتك لا يجب ترجمته. أمثلة: رمز HTML وأسماء العلامات التجارية، ومحددات التنسيق.
  • للإشارة إلى سلسلة استبدال تم تمريرها إلى getMessage(). مثال: $1

لكل عنصر نائب اسم و"محتوى" وعنصر "مثال" اختياري عنصر واحد. اسم العنصر النائب هو غير حسّاس لحالة الأحرف ويمكن أن يحتوي على الأحرف نفسها المتوفّرة في اسم الرسالة.

"المحتوى" قيمة العنصر هي سلسلة يمكن أن تشير إلى سلاسل الاستبدال التي يتم تحديدها باستخدام معلمة الاستبدالات لطريقة i18n.getMessage. قيمة "المحتوى" العنصر هو عادة شيء مثل "Example.com" أو "$1". إذا كنت تشير إلى سلسلة استبدال لا الموجودة، فستحصل على سلسلة فارغة. يوضّح الجدول التالي كيفية تطابُق سلاسل $_n_ مع السلاسل. التي تحددها المعلمة البدائل.

مَعلمة subtionsالقيمة بقيمة 1 دولار أمريكيالقيمة بقيمة 2 دولار أمريكيالقيمة بقيمة 3 دولار أمريكي
userNameقيمة userName""""
["Cira", "Kathy"]"Cira""Kathy"""

"المثال" (اختياري، ولكن يُنصح به بشدة) يساعد المترجمين من خلال توضيح طريقة ظهور المحتوى تظهر للمستخدم النهائي. على سبيل المثال، العنصر النائب لمبلغ بالدولار يجب أن يكون له مثال مثل "$23.45"

يعرض المقتطف التالي، المأخوذ من القسم المثال، "العناصر النائبة" عنصر يحتوي على عنصرين نائبين باسم "our_site" و "المستخدم". يحتوي "our_site" لا يحتوي العنصر النائب على "example" العنصر لأن قيمته واضحة من "المحتوى" .

"placeholders": {
  "our_site": {
    "content": "Example.com",
  },
  "user": {
    "content": "$1",
    "example": "Cira"
  }
}