मॉड टेक्स्ट का अनुवाद करें
More actions
मॉड फ़ोल्डर में मौजूद समान locale फ़ाइलों से दिखाई देने वाले Modloader टेक्स्ट और Lua टेक्स्ट का अनुवाद करें। PR #42 में जोड़ी गई shroudforge.locale() से Modloader की भाषा पढ़ें।
Locale फ़ाइलें
हर भाषा के लिए locales/<code>.json में एक फ़ाइल जोड़ें। Modloader भाषा चयनकर्ता में मौजूदा कोड de, de-AT, de-CH, en-GB, en-US, es, fr, hi, it, ja, nl, pl, sv और zh हैं। फ़ाइल का नाम उसके कोड से बिल्कुल मेल खाता है। ये फ़ाइलें mod.json और extended.mod.json के साथ रहती हैं।
स्कीमा mod-locale.schema.json के रूप में प्रकाशित है। Locale कैटलॉग mod.name और mod.description, सेटिंग और विकल्प लेबल, समूह, कार्रवाइयाँ, changelog पंक्तियाँ और Lua strings का अनुवाद कर सकता है। कैटलॉग आंशिक हो सकते हैं। जिन प्रविष्टियों का अनुवाद नहीं है, वे स्रोत टेक्स्ट ही दिखाती हैं।
{
"$schema": "https://bonsaibauer.github.io/shroudforge/schemas/mod-locale.schema.json",
"settings": {
"severity": {
"label": "Log level",
"options": { "info": "Information", "warn": "Warning" }
}
},
"groups": [
{ "label": "Logging", "actions": { "write": { "label": "Write message" } } }
],
"strings": { "overlay.ready": "Ready" }
}
सेटिंग और विकल्प की कुंजियाँ extended.mod.json जैसी ही रहती हैं। समूहों के अनुवाद उसी फ़ाइल में दिए समूह क्रम का पालन करते हैं। कार्रवाई के अनुवाद में मौजूदा action ID उपयोग होती है। सहेजे गए मान नहीं बदलते।
Lua में वही टेक्स्ट उपयोग करें
local locale = shroudforge.locale()
local ready = shroudforge.i18n.get("overlay.ready", locale, "Ready")
shroudforge.i18n.get(key, locale, fallback) Modloader द्वारा लोड किए गए उसी कैटलॉग का उपयोग करता है। यह पहले de-AT जैसे क्षेत्रीय कोड को और फिर उसकी भाषा de को जाँचता है। स्ट्रिंग न मिलने पर fallback टेक्स्ट लौटता है, या fallback न दिया हो तो कुंजी लौटती है। लुकअप फ़ाइलों को दोबारा नहीं पढ़ता। PR #42 भाषा API देता है और यह सुविधा उसे हर मॉड के कैटलॉग से जोड़ती है।
यदि कॉन्फ़िगरेशन पढ़ा न जा सके और shroudforge.locale() en लौटाए, तो कैटलॉग लुकअप पहले en-GB.json और फिर en.json जाँचता है। en-GB Modloader की डिफ़ॉल्ट अंग्रेज़ी है। en-US को स्पष्ट रूप से चुने गए विकल्प के रूप में रखा गया है।
Locale फ़ाइलों के लिए runtime क्षमता आवश्यक नहीं है। ShroudForge इंटरफ़ेस टेक्स्ट साझा Modloader अनुवादों में रहता है।