हर अंतरराष्ट्रीय एक्सटेंशन में, 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", और
"अलविदा":
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": {
...
}
नामों के इस्तेमाल के और उदाहरणों के लिए, अंतरराष्ट्रीय स्तर का दस्तावेज़ देखें.
मैसेज
अनुवाद किया गया मैसेज, जो स्ट्रिंग के तौर पर होता है. इसमें प्लेसहोल्डर हो सकते हैं. किसी खास प्लेसहोल्डर का रेफ़रंस देने के लिए,
$_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 के सब्सिट्यूशन पैरामीटर का इस्तेमाल करके तय की गई स्ट्रिंग) का रेफ़रंस देने का सबसे पसंदीदा तरीका है. हालांकि, मैसेज में भी सब्सिट्यूशन स्ट्रिंग का रेफ़रंस दिया जा सकता है. उदाहरण के लिए, नीचे दिया गया मैसेजgetMessage()
को पास की गई पहली तीन प्रतिस्थापन स्ट्रिंग:messages.json:
"message": "Params: $1, $2, $3"
इसके बावजूद, हमारा सुझाव है कि आप
$_n_
स्ट्रिंग के बजाय प्लेसहोल्डर का इस्तेमाल करें में से एक को चुनें. प्लेसहोल्डर को वेरिएबल के अच्छे नामों के तौर पर देखें. अपने लिखने के एक सप्ताह बाद कोड, आप शायद भूल जाएंगे कि$1
क्या दिखाता है, लेकिन आपको यह पता चल जाएगा कि आपके प्लेसहोल्डर क्या बताते हैं. प्लेसहोल्डर और बदली गई स्ट्रिंग के बारे में ज़्यादा जानने के लिए, प्लेसहोल्डर सेक्शन देखें.ब्यौरा
ज़रूरी नहीं. मैसेज का ब्यौरा, जिसका मकसद अनुवादक की मदद करने के लिए कॉन्टेक्स्ट या जानकारी देना हो सबसे अच्छा अनुवाद करें.
यहां ब्यौरे के तीन उदाहरण दिए गए हैं, जिन्हें उदाहरण सेक्शन से लिया गया है:
messages.json:
"description": "Ask for the user's name" ... "description": "Greet the user" ... "description": "Say goodbye to the user"
प्लेसहोल्डर
ज़रूरी नहीं. मैसेज में इस्तेमाल करने के लिए, एक या उससे ज़्यादा सबस्ट्रिंग तय करता है. प्लेसहोल्डर का इस्तेमाल करने की दो वजहें यहां दी गई हैं:
- अपने मैसेज के उस हिस्से के लिए टेक्स्ट तय करना जिसका अनुवाद नहीं करना है. उदाहरण: एचटीएमएल कोड, ट्रेडमार्क किए गए नाम और फ़ॉर्मैटिंग की खास बातें.
getMessage()
में पास की गई बदलाव करने वाली स्ट्रिंग को रेफ़र करने के लिए. उदाहरण:$1
.
हर प्लेसहोल्डर का एक नाम होता है, यानी कि "कॉन्टेंट" आइटम और एक वैकल्पिक "उदाहरण" आइटम. प्लेसहोल्डर के नाम में केस-इन्सेंसिव का इस्तेमाल किया जाता है. साथ ही, इसमें मैसेज के नाम जैसे वर्ण शामिल किए जा सकते हैं.
"कॉन्टेंट" आइटम का मान एक ऐसी स्ट्रिंग है जो प्रतिस्थापन स्ट्रिंग को रेफ़र कर सकती है, जिन्हें
i18n.getMessage तरीके के विकल्पों पैरामीटर का इस्तेमाल करके. आम तौर पर, "कॉन्टेंट" आइटम की वैल्यू "Example.com" या "1 डॉलर" जैसी होती है. अगर ऐसी प्रतिस्थापन स्ट्रिंग का इस्तेमाल किया जाता है जो
मौजूद है, तो आपको एक खाली स्ट्रिंग मिलेगी. इस टेबल में दिखाया गया है कि $_n_
स्ट्रिंग, substitutions पैरामीटर से तय की गई स्ट्रिंग से कैसे मेल खाती हैं.
विकल्पों का पैरामीटर | 1 डॉलर की वैल्यू | 2 डॉलर की वैल्यू | तीन डॉलर की वैल्यू |
---|---|---|---|
userName | userName की वैल्यू | "" | "" |
["Cira", "Kathy"] | "Cira" | "Kathy" | "" |
"उदाहरण" आइटम (वैकल्पिक, लेकिन इसका सुझाव दिया जाता है) की मदद से अनुवादकों को यह पता चलता है कि
असली उपयोगकर्ता को दिखती है. उदाहरण के लिए, डॉलर में कीमत के प्लेसहोल्डर के लिए, "$23.45"
जैसा उदाहरण होना चाहिए.
उदाहरण सेक्शन से लिया गया यह स्निपेट, "प्लेसहोल्डर" दिखाता है वह आइटम जो इसमें "our_site" नाम के दो प्लेसहोल्डर मौजूद हैं और "उपयोगकर्ता" शामिल हैं. "हमारी साइट" प्लेसहोल्डर में कोई "उदाहरण" मौजूद नहीं है आइटम में शामिल है, क्योंकि इसकी वैल्यू "content" से साफ़ तौर पर पता होती है फ़ील्ड में डालें.
messages.json:
"placeholders": {
"our_site": {
"content": "Example.com",
},
"user": {
"content": "$1",
"example": "Cira"
}
}