स्थानीय भाषा के अनुसार मैसेज के फ़ॉर्मैट

हर अंतरराष्ट्रीय एक्सटेंशन में messages.json नाम की कम से कम एक फ़ाइल होती है जो स्थान-भाषा के हिसाब से स्ट्रिंग उपलब्ध कराती है. यह पेज messages.json फ़ाइलों के फ़ॉर्मैट की जानकारी देता है. अंतरराष्ट्रीय और स्थानीय भाषा के मुताबिक बनाने के तरीके के बारे में जानने के लिए, अंतरराष्ट्रीय स्तर का बनाने वाला पेज देखें.

फ़ील्ड सारांश

नीचे दिया गया कोड, messages.json के लिए इस्तेमाल किए जा सकने वाले फ़ील्ड दिखाता है. सिर्फ़ "name" और "message" फ़ील्ड ज़रूरी हैं.

messages.json:

{
  "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", और "bye" नाम के तीन मैसेज के बारे में जानकारी दी गई है:

messages.json:

{
  "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 फ़ाइल में दिखने वाले हर फ़ील्ड के बारे में बताया गया है. मैसेज फ़ाइल का इस्तेमाल कैसे किया जाता है, यह जानने के लिए अंतरराष्ट्रीय स्तर का बनाने के बारे में ज़्यादा जानने के लिए अंतरराष्ट्रीय स्तर का बनाने के बारे में ज़्यादा जानें. उदाहरण के लिए, जब किसी स्थान-भाषा के सभी मैसेज के बारे में नहीं बताया जाता, तो क्या होता है.

नाम

दरअसल, "नाम" नाम का कोई फ़ील्ड नहीं है. इस फ़ील्ड का नाम, मैसेज का नाम होता है—वही नाम जो आपको __MSG__name___ या getMessage("_name_") में दिखता है.

नाम एक केस-इनसेंसिटिव कुंजी होती है, जिससे आपको स्थानीय भाषा में लिखे गए मैसेज को वापस पाने में मदद मिलती है. नाम में ये वर्ण शामिल हो सकते हैं:

  • A से Z के क्रम में
  • a-z
  • 0-9
  • _ (अंडरस्कोर)
  • @

यहां उदाहरण सेक्शन से लिए गए नामों के तीन उदाहरण दिए गए हैं:

messages.json:

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

नाम का इस्तेमाल करने के ज़्यादा उदाहरणों के लिए, अंतरराष्ट्रीय स्तर का पेज देखें.

ग्राहक का मैसेज

अनुवाद किया गया मैसेज, स्ट्रिंग के रूप में, जिसमें placeholders हो सकते हैं. किसी खास प्लेसहोल्डर को रेफ़र करने के लिए, $_placeholder_name_$ (केस-इनसेंसिटिव) का इस्तेमाल करें. उदाहरण के लिए, "our_site" नाम के प्लेसहोल्डर को $our_site$, $OUR_SITE$ या $oUR_sITe$ के तौर पर दिखाया जा सकता है.

यहां उदाहरण सेक्शन से लिए गए मैसेज के तीन उदाहरण दिए गए हैं:

messages.json:

"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 $):

messages.json:

"message": "Amount (in $$)"
 का इस्तेमाल करें

हालांकि, $USER$ जैसे प्लेसहोल्डर, प्रतिस्थापन स्ट्रिंग (i18n.getMessage के substitutions पैरामीटर का इस्तेमाल करके तय की गई स्ट्रिंग) को रेफ़र करने का ज़्यादा पसंदीदा तरीका हैं, लेकिन आप सीधे मैसेज में सब्सिटिट्यूशन स्ट्रिंग के बारे में भी बता सकते हैं. उदाहरण के लिए, यह मैसेज getMessage() में पास की जाने वाली पहली तीन सब्सिटिट्यूशन स्ट्रिंग के बारे में बताता है:

messages.json:

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

इस उदाहरण के बावजूद, हमारा सुझाव है कि आप अपने मैसेज में $_n_ स्ट्रिंग के बजाय, प्लेसहोल्डर का इस्तेमाल करें. प्लेसहोल्डर को वैरिएबल के अच्छे नामों के तौर पर देखें. कोड लिखने के एक हफ़्ते बाद, शायद आप यह भूल जाएं कि $1 का क्या मतलब है. हालांकि, आपको यह पता चल जाएगा कि आपके प्लेसहोल्डर क्या बताते हैं. प्लेसहोल्डर और प्रतिस्थापन स्ट्रिंग के बारे में ज़्यादा जानकारी के लिए, placeholders सेक्शन देखें.

ब्यौरा

ज़रूरी नहीं है. मैसेज का ब्यौरा, जिसका मकसद संदर्भ या जानकारी देना होता है, ताकि अनुवादक को सही अनुवाद करने में मदद मिल सके.

यहां उदाहरण सेक्शन से जानकारी के तीन उदाहरण दिए गए हैं:

messages.json:

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

placeholders

ज़रूरी नहीं है. मैसेज में इस्तेमाल की जाने वाली एक या उससे ज़्यादा सबस्ट्रिंग के बारे में बताता है. इन दो वजहों से प्लेसहोल्डर का इस्तेमाल करना सही रहेगा:

  • अपने मैसेज के उस हिस्से का टेक्स्ट तय करने के लिए जिसका अनुवाद नहीं किया जाना चाहिए. उदाहरण: एचटीएमएल कोड, ट्रेडमार्क किए गए नाम, फ़ॉर्मैटिंग की जानकारी.
  • getMessage() में पास की गई प्रतिस्थापन स्ट्रिंग को रेफ़र करने के लिए. उदाहरण: $1.

हर प्लेसहोल्डर में एक नाम, "कॉन्टेंट" आइटम, और एक वैकल्पिक "उदाहरण" आइटम होता है. प्लेसहोल्डर का नाम केस-इनसेंसिटिव होता है. इसमें वही वर्ण हो सकते हैं जो मैसेज के नाम में हैं.

"content" आइटम की वैल्यू एक ऐसी स्ट्रिंग है जो सब्सिटिट्यूशन स्ट्रिंग के बारे में बता सकती है. इन स्ट्रिंग के बारे में जानकारी, i18n.getMessage तरीके के सबसिटिट्यूशन पैरामीटर का इस्तेमाल करके की जाती है. "content" आइटम का मान आम तौर पर "Example.com" या "$1" जैसा कुछ होता है. अगर किसी ऐसे रिप्लेसमेंट स्ट्रिंग को रेफ़र किया जाता है जो मौजूद नहीं है, तो आपको एक खाली स्ट्रिंग मिलेगी. इस टेबल में दिखाया गया है कि $_n_ स्ट्रिंग, सबसिटिट्यूशन पैरामीटर से तय की गई स्ट्रिंग से कैसे मेल खाती हैं.

substitutions पैरामीटर1 डॉलर की वैल्यूदो डॉलर की वैल्यू3 डॉलर की कीमत
userNameuserName की वैल्यू""""
["Cira", "Kathy"]"Cira""Kathy"""

"उदाहरण" आइटम (वैकल्पिक, लेकिन सुझाए गए) अनुवादकों की यह दिखाकर मदद करता है कि कॉन्टेंट असली उपयोगकर्ता को कैसा दिखता है. उदाहरण के लिए, डॉलर की रकम के लिए प्लेसहोल्डर में "$23.45" जैसा कोई उदाहरण होना चाहिए.

उदाहरण सेक्शन से लिया गया यह स्निपेट, एक "प्लेसहोल्डर" आइटम दिखाता है. इसमें "our_site" और "user" नाम के दो प्लेसहोल्डर होते हैं. "our_site" प्लेसहोल्डर में कोई "उदाहरण" आइटम नहीं है, क्योंकि इसकी वैल्यू "content" फ़ील्ड से साफ़ तौर पर पता चलती है.

messages.json:

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