JSON i18n फ़ाइल का अनुवाद करें: हर की, प्लेसहोल्डर और प्लुरल सही सलामत
en.json (या कई namespace फ़ाइलें) अपलोड करें और वही nested keys, वही क्रम और वही इंडेंटेशन के साथ es.json वापस पाएँ। सिर्फ़ वैल्यू का अनुवाद होता है, और हर स्ट्रिंग में हर {name}, {{count}} और ICU plural जाँचा जाता है। शुरुआती स्ट्रिंग बिना अकाउंट के फ़्री हैं; पूरा जॉब, 5,000 स्ट्रिंग तक, $5 में है, सिर्फ़ एक बार पेमेंट।
- Keys और nesting का कभी अनुवाद नहीं होता; arrays, numbers और booleans जैसे हैं वैसे ही रहते हैं
- जाँचे जाने वाले placeholders: {name}, {{count}}, %s, :attribute, $t(key), @:key
- ICU plurals का स्ट्रक्चर वैसा ही रहता है और उन्हें टार्गेट भाषा की ज़रूरत वाली कैटेगरी मिलती हैं
- Flutter ARB: @metadata बनी रहती है और संदर्भ के तौर पर इस्तेमाल होती है, @@locale अपडेट हो जाता है
- फ़ाइल का नाम भाषा के हिसाब से: en.json बनती है es.json, app_en.arb बनती है app_es.arb
{
"home.greeting": "Good morning, {name}Buenos días, {name}",
"home.nearby": "{count, plural, =0 {No trails near you yet} one {# trail near you} other {# trails near you}}{count, plural, =0 {Aún no hay rutas cerca de ti} one {# ruta cerca de ti} other {# rutas cerca de ti}}",
"trail.offline_done": "<b>{name}</b> is saved on this phone. You can use the map without a signal.<b>{name}</b> está guardado en este teléfono. Puedes usar el mapa sin señal.",
"trail.share_text": "I just finished {trail} with Trailbook! {km} km and {meters} m up. 🥾¡Acabo de terminar {trail} con Trailbook! {km} km y {meters} m de subida. 🥾",
"saved.empty": "You have not saved any trails yet.\nTap the heart on a trail to keep it here.Aún no has guardado ninguna ruta.\nToca el corazón en una ruta para guardarla aquí."
}
पीला: प्लेसहोल्डर और ICU प्लूरल सिंटैक्स, हर स्ट्रिंग में जाँचे गए। टील: टैग, एस्केप और इमोजी, जैसे लिखे थे वैसे ही रखे गए।
वही कीज़। वही प्लेसहोल्डर। नई भाषा।
सिर्फ़ वैल्यू बदलती हैं। फ़ाइल उसी नेस्टिंग और क्रम में es.json नाम से वापस आती है, और जिस स्ट्रिंग से कोई प्लेसहोल्डर गायब हो जाए, उसे आपके बिल्ड तक पहुँचने से पहले दोबारा अनुवाद के लिए भेजा जाता है।
इस पेज के लिए बनाया गया डेमो ऐप; स्पेनिश स्ट्रिंग टूल का असली आउटपुट हैं, 85 स्ट्रिंग वाली फ़ाइल से।
क्या अनुवाद होता है और क्या नहीं
हर स्ट्रिंग वैल्यू अनुवाद के लिए अपनी पूरी key के साथ संदर्भ के रूप में भेजी जाती है, इसलिए "settings.save" और "cart.save" के अलग-अलग शब्द आ सकते हैं। Keys कभी नहीं भेजी जातीं। जो वैल्यू टेक्स्ट नहीं हैं, जैसे URL, ईमेल पता, या सिर्फ़ "{count}" जैसे placeholders से बनी वैल्यू, वे जैसी हैं वैसी ही रहती हैं।
react-intl और ऐसी ही लाइब्रेरी में इस्तेमाल होने वाले rich-text टैग, जैसे <b>{name}</b> या <link>Undo</link>, अनुवाद से पहले मार्कर से बदल दिए जाते हैं और बाद में वापस लगा दिए जाते हैं। शब्दशः \n सीक्वेंस और emoji भी सुरक्षित रहने चाहिए; जिस स्ट्रिंग में इनमें से कुछ भी खो जाए, उसका दोबारा अनुवाद होता है, और दो बार नाकाम होने पर अंग्रेज़ी वाली स्ट्रिंग वहीं रहती है और वह key आपके लिए लिस्ट कर दी जाती है।
Plurals
{count, plural, one {# trail} other {# trails}} जैसा ICU मैसेज एक ही स्ट्रिंग के रूप में अनुवादित होता है। अनुवादक को बताया जाता है कि टार्गेट भाषा में कौन-सी plural कैटेगरी चलती हैं, जैसे रूसी या पोलिश के लिए one, few, many और other, और नतीजे में variable का नाम और plural कीवर्ड बने रहने की जाँच होती है। जिन i18next फ़ाइलों में trail_one और trail_other जैसी अलग keys होती हैं, उनका अनुवाद key-by-key होता है; टार्गेट भाषा के लिए जो keys मौजूद नहीं हैं (trail_few, trail_many), वे जोड़ी नहीं जातीं।
टूल कैसे काम करता है, कितना खर्च आता है और आपकी फ़ाइलें कैसे संभाली जाती हैं, यह लोकलाइज़ेशन फ़ाइल अनुवाद पेज पर है; हर टूल की कीमत कीमत पेज पर है।
आख़िरी अपडेट:
सवाल और जवाब
क्या आउटपुट मेरी फ़ॉर्मैटिंग बनाए रखेगा?
जी हाँ। इंडेंटेशन (दो स्पेस, चार स्पेस या टैब), keys का क्रम, कोलन के बाद का स्पेस और आख़िरी न्यूलाइन आपकी फ़ाइल से ही कॉपी होती हैं। minified फ़ाइल एक ही लाइन में रहती है।
क्या मैं एक साथ कई namespace फ़ाइलें अपलोड कर सकता/सकती हूँ?
जी हाँ, एक जॉब में 20 फ़ाइलों तक, जैसे common.json, cart.json और errors.json। वे एक ही ZIP में साथ डाउनलोड होती हैं।
जिन स्ट्रिंग का अनुवाद नहीं होना चाहिए, उनका क्या?
प्रोडक्ट और ब्रांड के नाम "कभी अनुवाद न करें" में लिख दें; जिस भी स्ट्रिंग में इनमें से कोई नाम हो, उसमें उसके बने रहने की जाँच होती है। जो वैल्यू सिर्फ़ URL, ईमेल पता या placeholders हैं, वे अपने आप छोड़ दी जाती हैं।
इसकी कीमत कितनी है?
शुरुआती स्ट्रिंग फ़्री हैं। पूरा जॉब, यानी 5,000 स्ट्रिंग तक, $5 में होता है, सिर्फ़ एक बार पेमेंट। Unlimited में हर जॉब के लिए 15,000 स्ट्रिंग तक शामिल हैं। छोटे जॉब इसका अपवाद हैं: 300 स्ट्रिंग तक का जॉब डाउनलोड समेत पूरा फ़्री है।