جے ایس آن مترجم جو ڈھانچہ برقرار رکھتا ہے | مفت i18n ٹول
مفت جے ایس آن مترجم جو آپ کے ڈھانچے کو یکساں رکھتا ہے۔ i18n فائلوں، اے پی آئی جوابات، اور نیسٹڈ جے ایس آن کا ترجمہ کریں جبکہ کلیدیں، ڈیٹا ٹائپس، اور فارمیٹنگ کو برقرار رکھا جائے۔ i18next اور کثیر الزبانی ایپس کے لیے بہترین۔
JSON ساختار کو برقرار رکھنے والا مترجم
یہ ٹول JSON آبجیکٹس کے مواد کا ترجمہ کرتا ہے اور اس کی ساخت کو برقرار رکھتا ہے۔ اپنا JSON بائیں پینل میں پیسٹ کریں، ایک ہدف زبان منتخب کریں، اور دائیں طرف ترجمہ شدہ آؤٹ پٹ دیکھیں۔
ترجمہ شدہ آؤٹ پٹ یہاں ظاہر ہوگا...
استعمال کا طریقہ
- ماخذ JSON فیلڈ میں اپنا JSON آبجیکٹ پیسٹ کریں۔
- ڈراپ ڈاؤن مینو سے اپنی ہدف زبان منتخب کریں۔
- ترجمہ شدہ JSON خود بخود دائیں پینل میں ظاہر ہو جائے گا۔
- ترجمہ شدہ JSON کو اپنے کلپ بورڈ پر کاپی کرنے کے لیے کاپی بٹن پر کلک کریں۔
دستاویزات
JSON ڈھانچہ کو محفوظ رکھنے والا مترجم کیا ہے؟
کیا آپ نے کبھی Google Translate میں JSON کاپی کرنے کی کوشش کی ہے اور کلیدیں ٹوٹ گئیں، براکٹس غائب ہو گئے، یا سنٹیکس خراب ہو گیا؟ یہی وہ مسئلہ ہے جسے یہ ٹول حل کرتا ہے۔
JSON ڈھانچہ کو محفوظ رکھنے والا مترجم آپ کے JSON آبجیکٹس کے اندر موجود سٹرنگ ویلیوز کو دوسری زبان میں تبدیل کرتا ہے جبکہ باقی سب کچھ اسی طرح رکھتا ہے - کلیدیں وہی رہتی ہیں، نمبر نمبر رہتے ہیں، بولین بولین رہتے ہیں، اور آپ کی نیسٹڈ ڈھانچہ ٹوٹتا نہیں۔
یہاں وہ چیز ہے جو اسے عام ترجمہ ٹولز سے مختلف بناتی ہے: جب آپ 50+ نیسٹڈ کلیدوں والی ٹائپیکل i18n فائل کا ترجمہ کرتے ہیں، تو آپ کو ڈھانچہ بالکل وہی رکھنا ہوتا ہے تاکہ آپ کا کوڈ اب بھی user.profile.displayName کو ہسپانوی، فرانسیسی یا جاپانی میں حوالہ دے سکے۔ اس ڈھانچے کو توڑ دیں، اور آپ گھنٹوں ڈیبگ کرتے رہیں گے۔
یہ ٹول خود بخود ریکرسو ٹریورسل کو ہینڈل کرتا ہے، یہ شناخت کرتے ہوئے کہ کن سٹرنگز کا ترجمہ کرنا ہے اور کون سے عناصر (جیسے API کلیدیں، کنفیگریشن ویلیوز، یا عددی آئی ڈیز) بالکل ویسے ہی رہنے چاہئیں۔
JSON ڈھانچے کی تحفظ کیسے کام کرتا ہے
ڈھانچے کی تحفظ کیوں اہم ہے
جب آپ JSON ترجمے کے ساتھ کام کر رہے ہیں، تو آپ عام طور پر ان میں سے ایک سناریو کا سامنا کر رہے ہیں:
- i18n فائلیں جہاں آپ کا ایپلی کیشن توقع کرتا ہے کہ
en.jsonاورfr.jsonمیں مماثل کلیدیں ہوں - API جوابات جنہیں کلائنٹ پارسنگ کے لیے مسلسل ڈھانچے کی ضرورت ہوتی ہے
- کنفیگریشن فائلیں جہاں کلید کا نام تبدیل کرنے سے آپ کا پورا ایپلی کیشن ٹوٹ جاتا ہے
- ڈیٹا بیس برآمدگیاں جہاں تعلقات مخصوص فیلڈ کے ناموں پر انحصار کرتے ہیں
چیلنج: JSON صرف متن نہیں ہے۔ یہ ڈھانچہ دار ڈیٹا ہے جس پر آپ کا کوڈ انحصار کرتا ہے۔ ترجمے کے دوران "userName" کو "nombreUsuario" میں تبدیل کرنے سے آپ کا ایپ undefined خطا پھینکتا ہے۔
ترجمے کا عمل کیسے کام کرتا ہے
یہاں وہ ہے جو JSON ترجمے کے دوران پردے کے پیچھے ہوتا ہے:
1. پارس اور توثیق ٹول سب سے پہلے آپ کی JSON ترتیب کی توثیق کرتا ہے۔ اگر آپ کسی کوما کو چھوڑ رہے ہیں یا ایک اضافی براکٹ رکھ رہے ہیں، تو آپ کو ترجمہ شروع ہونے سے پہلے ایک واضح خطا کا پیغام ملے گا - جو آپ کو خراب آؤٹ پٹ سے بچاتا ہے۔
2. ریکرسو گشت جڑ سے شروع کرتے ہوئے، الگورتھم آپ کے JSON شجر میں ہر نوڈ سے گزرتا ہے۔ ہر عنصر کے لیے، یہ ڈیٹا کی قسم کی جانچ کرتا ہے:
- سٹرنگ؟ ترجمے کے لیے قطار میں رکھیں
- نمبر، بولین، نل؟ اسے مکمل طور پر چھوڑ دیں
- آبجیکٹ یا سریہ؟ اس میں ریکرس کریں
3. قسم کے لحاظ سے محفوظ ترجمہ
صرف سٹرنگ قدریں ترجمہ API کو بھیجی جاتی ہیں۔ آپ کا "quantity": 42 42 کے طور پر رہتا ہے، نہ کہ "cuarenta y dos"۔ آپ کا "isActive": true true کے طور پر رہتا ہے، نہ کہ "verdadero"۔
4. کلید کا تحفظ
تمام آبجیکٹ کی کلیدیں اپنی اصل زبان میں رہتی ہیں۔ یہ انتہائی اہم ہے کیونکہ translations.header.welcomeMessage کو ہر زبان کی فائل میں ایک ہی راستہ ہونا چاہیے۔
5. ڈھانچے کی بحالی ترجمہ شدہ سٹرنگز کو بالکل اسی جگہ واپس ڈالا جاتا ہے، تمام نیسٹنگ کی سطحوں، سریہ انڈیکس، اور آبجیکٹ کی ہائیرارکیوں کو برقرار رکھتے ہوئے۔
ایک عام غلطی: کچھ ڈویلپرز JSON.stringify() کرنے کی کوشش کرتے ہیں، پورے سٹرنگ کا ترجمہ کرتے ہیں، پھر اسے واپس پارس کرتے ہیں۔ یہ ٹوٹ جاتا ہے کیونکہ مترجم کلیدوں، براکٹس، اور نحو کو تبدیل کرتا ہے۔ ریکرسو نقطہ نظر اس کو مکمل طور پر ٹال دیتا ہے۔
JSON ڈھانچہ برقرار رکھنے والے مترجم کا استعمال
مرحلہ بہ مرحلہ گائیڈ
1. اپنا JSON پیسٹ کریں اپنے JSON آبجیکٹ کو کاپی کریں اور بائیں پینل میں پیسٹ کریں۔ ٹول کسی بھی درست JSON کو ہینڈل کر سکتا ہے - چاہے وہ 5 کلیدوں والا سادہ آبجیکٹ ہو یا ایرے اور متعدد سطحوں کے ساتھ گہرا نیسٹڈ ڈھانچہ۔
2. ہدف زبان کا انتخاب کریں زبان ڈراپ ڈاؤن سے انتخاب کریں: ہسپانوی، فرانسیسی، جرمن، اطالوی، پرتگالی، چینی، جاپانی، کوریائی، روسی، اور بہت کچھ۔ اگر آپ i18next پروجیکٹ کے لیے ترجمہ کر رہے ہیں، تو اپنے فریم ورک کی متوقع زبان کوڈ سے میل کھائیں۔
3. فوری ترجمہ حاصل کریں ترجمہ شدہ آؤٹ پٹ دائیں پینل میں خود بخود ظاہر ہوتا ہے۔ کوئی "ترجمہ" بٹن نہیں - جیسے ہی آپ کے پاس درست JSON اور منتخب زبان ہو، یہ پروسیس ہو جاتا ہے۔
4. کاپی کریں اور استعمال کریں ترجمہ شدہ JSON کو کاپی کرنے کے لیے "کاپی" بٹن پر کلک کریں۔ یہ سیدھے اپنے پروجیکٹ میں پیسٹ کرنے کے لیے تیار ہے - کوئی صفائی نہیں۔
5. اگلے ترجمے کے لیے صاف کریں جب آپ دوسری فائل کا ترجمہ کرنے کے لیے تیار ہوں تو "سب کو صاف کریں" پر کلک کریں۔ ٹول دونوں پینل کو فوری طور پر ری سیٹ کر دیتا ہے۔
عام مسائل اور حل
"غیر درست JSON فارمیٹ" خطا جب کسی سنٹیکس کی مسئلہ ہو تو یہ دکھائی دے گا۔ عام مجرم:
- کلید-ویلیو جوڑوں کے درمیان کوما نہ ہونا
- آخری آئٹم کے بعد ٹریلنگ کوما (جاوا سکرپٹ میں درست، JSON میں نہیں)
- ڈبل کوٹس کی بجائے سنگل کوٹس
- سٹرنگز میں غیر محفوظ خاص حروف
فوری حل: اپنے JSON کو JSONLint جیسے ویلیڈیٹر سے گزاریں۔
ترجمہ خاموشی سے ناکام ہو جاتا ہے اگر آؤٹ پٹ پینل خالی رہتا ہے:
- اپنے انٹرنیٹ کنکشن کی جانچ کریں - ترجمے کے لیے API تک رسائی درکار ہے
- تصدیق کریں کہ آپ نے ہدف زبان کا انتخاب کیا ہے
- مسئلے کو علیحدہ کرنے کے لیے چھوٹے JSON حصے کے ساتھ آزمائیں
ترجمہ میں غیر متوقع نتائج مشین ترجمہ معیاری فقروں کے لیے اچھی طرح کام کرتی ہے لیکن اس میں مشکل ہوتی ہے:
- تکنیکی اصطلاحات یا ڈومین مخصوص اصطلاحات
- برانڈ کے نام (جنہیں اکثر غیر ترجمہ شدہ رہنا چاہیے)
- پلیس ہولڈر سنٹیکس جیسے
{{username}}یا%s
پروڈکشن ایپلی کیشنز کے لیے، اس ٹول کو پہلے پاس کے طور پر استعمال کریں، پھر ڈومین مخصوص یا کسٹمر سامنے والی مواد کا بومی زبان میں جائزہ لیں۔
بہتر نتائج کے لیے پیشہ ورانہ ٹپس
تکنیکی سٹرنگز کو الگ رکھیں اگر آپ کا JSON صارف سامنے کی متن کو تکنیکی شناخت کاروں کے ساتھ مکس کرتا ہے، تو ان کو الگ کرنے پر غور کریں۔ مثال کے طور پر:
1{
2 "display": {"welcome": "Welcome back"},
3 "config": {"apiKey": "abc123", "endpoint": "https://api.example.com"}
4}
5config قیمتوں کو پروسیس کرنے سے بچنے کے لیے display آبجیکٹ کا الگ سے ترجمہ کریں۔
اپنی سٹرنگز میں سیاق و سباق استعمال کریں "جمع کریں" مختلف سیاق و سباق میں مختلف طرح سے ترجمہ ہو سکتا ہے۔ "فارم جمع کریں" یا "ادائیگی جمع کریں" مترجموں (انسانی یا مشین) کو درست نتیجہ کے لیے بہتر سیاق فراہم کرتا ہے۔
حقیقی ڈیٹا کے ساتھ آزمائیں اپنی پوری i18n فائل کا ترجمہ کرنے سے پہلے جس میں 500+ کلیدیں ہیں، ایک چھوٹے نمونے کے ساتھ آزمائیں جس میں تمام ڈیٹا ٹائپس شامل ہوں - سٹرنگز، نمبر، نیسٹڈ آبجیکٹس، ایرے۔
کوڈ کی مثالیں
جاوا اسکرپٹ کے ساتھ JSON کا ترجمہ
1// جاوا اسکرپٹ میں اسی طرح کی فعالیت کی مثال
2function translateJsonStructure(jsonObj, targetLanguage) {
3 // کسی سٹرنگ کا ترجمہ کرنے والی مددگار فنکشن
4 function translateString(str, lang) {
5 // حقیقی نفاذ میں، یہ ترجمہ API کو کال کرے گا
6 return `[${lang}] ${str}`;
7 }
8
9 // JSON کو گھومنے اور ترجمہ کرنے والی ریکرسو فنکشن
10 function processNode(node) {
11 if (node === null) return null;
12
13 if (typeof node === 'string') {
14 return translateString(node, targetLanguage);
15 }
16
17 if (Array.isArray(node)) {
18 return node.map(item => processNode(item));
19 }
20
21 if (typeof node === 'object') {
22 const result = {};
23 for (const key in node) {
24 result[key] = processNode(node[key]);
25 }
26 return result;
27 }
28
29 // نمبر، بولین وغیرہ کو یوں ہی واپس کریں
30 return node;
31 }
32
33 return processNode(jsonObj);
34}
35
36// استعمال کی مثال
37const sourceJson = {
38 "product": {
39 "name": "بے تار ہیڈ فون",
40 "description": "اعلیٰ معیار کے بے تار ہیڈ فون شور کی روک تھام کے ساتھ",
41 "features": ["بلوٹوتھ 5.0", "40 گھنٹے کی بیٹری لائف", "موڑنے والا ڈیزائن"],
42 "price": 99.99,
43 "inStock": true
44 }
45};
46
47const translatedJson = translateJsonStructure(sourceJson, "es");
48console.log(JSON.stringify(translatedJson, null, 2));
49پائتھن کے ساتھ JSON کا ترجمہ
1import json
2
3def translate_json_structure(json_obj, target_language):
4 """
5 JSON آبجیکٹ میں سٹرنگ قیمتوں کا ترجمہ کرتا ہے جبکہ ڈھانچہ محفوظ رکھتا ہے۔
6
7 آرگومنٹس:
8 json_obj: پارس کردہ JSON آبجیکٹ
9 target_language: ہدف زبان کا کوڈ (مثلاً 'es', 'fr')
10
11 ریٹرن:
12 محفوظ ڈھانچے کے ساتھ ترجمہ کردہ JSON آبجیکٹ
13 """
14 def translate_string(text, lang):
15 # حقیقی نفاذ میں، یہ ترجمہ API کو کال کرے گا
16 return f"[{lang}] {text}"
17
18 def process_node(node):
19 if node is None:
20 return None
21
22 if isinstance(node, str):
23 return translate_string(node, target_language)
24
25 if isinstance(node, list):
26 return [process_node(item) for item in node]
27
28 if isinstance(node, dict):
29 result = {}
30 for key, value in node.items():
31 result[key] = process_node(value)
32 return result
33
34 # نمبر، بولین وغیرہ کو یوں ہی واپس کریں
35 return node
36
37 return process_node(json_obj)
38
39# استعمال کی مثال
40source_json = {
41 "user": {
42 "name": "جین سمتھ",
43 "bio": "سافٹ ویئر ڈویلپر اور اوپن سورس شراکت دار",
44 "skills": ["جاوا اسکرپٹ", "پائتھن", "ری ایکٹ"],
45 "active": True,
46 "followers": 245
47 }
48}
49
50translated_json = translate_json_structure(source_json, "fr")
51print(json.dumps(translated_json, indent=2))
52PHP کے ساتھ JSON کا ترجمہ
1<?php
2/**
3 * اصل ڈھانچے کو برقرار رکھتے ہوئے JSON ڈھانچے کا ترجمہ کرتا ہے
4 *
5 * @param mixed $jsonObj پارس کردہ JSON آبجیکٹ
6 * @param string $targetLanguage ہدف زبان کا کوڈ
7 * @return mixed ترجمہ کردہ JSON آبجیکٹ
8 */
9function translateJsonStructure($jsonObj, $targetLanguage) {
10 // کسی سٹرنگ کا ترجمہ کرنے والی مددگار فنکشن
11 function translateString($text, $lang) {
12 // حقیقی نفاذ میں، یہ ترجمہ API کو کال کرے گا
13 return "[$lang] $text";
14 }
15
16 // ہر نوڈ کو پروسیس کرنے والی ریکرسو فنکشن
17 function processNode($node, $lang) {
18 if ($node === null) {
19 return null;
20 }
21
22 if (is_string($node)) {
23 return translateString($node, $lang);
24 }
25
26 if (is_array($node)) {
27 // چیک کریں کہ یہ ایک ایسوسی ایٹو ایرے (آبجیکٹ) ہے یا انڈیکسڈ ایرے
28 if (array_keys($node) !== range(0, count($node) - 1)) {
29 // ایسوسی ایٹو ایرے (آبجیکٹ)
30 $result = [];
31 foreach ($node as $key => $value) {
32 $result[$key] = processNode($value, $lang);
33 }
34 return $result;
35 } else {
36 // انڈیکسڈ ایرے
37 return array_map(function($item) use ($lang) {
38 return processNode($item, $lang);
39 }, $node);
40 }
41 }
42
43 // نمبر، بولین وغیرہ کو یوں ہی واپس کریں
44 return $node;
45 }
46
47 return processNode($jsonObj, $targetLanguage);
48}
49
50// استعمال کی مثال
51$sourceJson = [
52 "company" => [
53 "name" => "گلوبل ٹیک سولوشنز",
54 "description" => "جدید سافٹ ویئر ڈویلپمنٹ کمپنی",
55 "founded" => 2010,
56 "services" => ["ویب ڈویلپمنٹ", "موبائل ایپس", "کلاؤڈ سولوشنز"],
57 "active" => true
58 ]
59];
60
61$translatedJson = translateJsonStructure($sourceJson, "de");
62echo json_encode($translatedJson, JSON_PRETTY_PRINT);
63?>
64حقیقی دنیا کے استعمال کے کیسز
ویب ایپلی کیشن i18n فائلیں
زیادہ تر جدید فریم ورکس جیسے Next.js، React، یا Vue ترجمے JSON فارمیٹ میں محفوظ کرتے ہیں۔ جب آپ کو اپنی ایپ میں ایک نئی زبان شامل کرنے کی ضرورت ہوتی ہے، تو آپ کے سامنے ایک انتخاب ہوتا ہے: ہر کلید کو دستی طور پر کاپی-پیسٹ اور ترجمہ کرنا (غلطی کا امکان)، یا اس ٹول کا استعمال کرکے چند منٹوں میں پہلا مسودہ تیار کرنا۔
ایک حقیقی سینیریو: آپ کی ایپ میں en.json ہے جس میں 200+ ترجمے کی کلیدیں ہیں جو متعدد زمروں میں پھیلی ہوئی ہیں - نیویگیشن، فارم، غلطی کے پیغامات، ٹول ٹپس۔ آپ کو اگلے اسپرنٹ تک فرانسیسی اور جرمن ورژن چاہیے۔
ان پٹ (en.json):
1{
2 "common": {
3 "welcome": "Welcome to our application",
4 "login": "Log in",
5 "signup": "Sign up",
6 "errorMessages": {
7 "required": "This field is required",
8 "invalidEmail": "Please enter a valid email address"
9 }
10 }
11}
12فرانسیسی میں ترجمہ کریں، fr.json حاصل کریں جس کی ساخت بالکل ایک جیسی ہو۔ آپ کا کوڈ اب بھی t('common.errorMessages.required') کا حوالہ دیتا ہے بغیر کسی تبدیلی کے۔
میں نے پایا ہے کہ یہ اچھی طرح کام کرتا ہے: اس ٹول کے ساتھ ترجمے تیار کریں، پھر ایک دو زبانی ٹیم کے رکن کو تکنیکی اصطلاحات اور بٹن کے لیبل چیک کرنے دیں۔ یہ ان حالات کو پکڑتا ہے جہاں "Submit" کو "Submit form" بمقابلہ "Submit payment" کے لیے مختلف ترجمے کی ضرورت ہو سکتی ہے۔
API جواب کی مقامی سازی
کئی ممالک کے لیے API بنا رہے ہیں؟ آپ کو تمام زبانوں میں مستقل جواب کی ساخت کی ضرورت ہے۔ ایک اطلاع API واپس کر سکتا ہے:
1{
2 "status": "success",
3 "notification": {
4 "title": "Order Shipped",
5 "message": "Your order #12345 has been shipped",
6 "priority": 1,
7 "timestamp": 1678901234
8 }
9}
10آپ کی موبائل ایپ notification.title اور notification.message کو پارس کرتی ہے۔ اگر فرانسیسی ترجمے نے کلید کی ساخت کو تبدیل کر دیا، تو ایپ فرانسیسی صارفین کے لیے ٹوٹ جائے گی۔
یہ ٹول یہ سنتشت کرتا ہے کہ notification.title ہر زبان میں notification.title ہی رہے، صرف سٹرنگ ویلیوز کا ترجمہ کیا جائے۔ آپ کا کلائنٹ کوڈ تمام لوکیلز میں بالکل ایک جیسا کام کرے گا۔
ایک محدودیت جو نوٹ کرنی چاہیے: خودکار ترجمہ آپ کے ڈومین کو نہیں سمجھتا۔ای-کامرس کے سیاق میں "Shipped" کا ترجمہ لاجسٹکس یا سمندری سیاق سے مختلف ہو سکتا ہے۔ کسٹمر-سامنے والی APIs کے لیے، ڈپلائی کرنے سے پہلے آؤٹ پٹ کا جائزہ لیں۔
ہیڈلیس CMS مواد کا ترجمہ
ہیڈلیس CMS پلیٹ فارمز جیسے Contentful یا Strapi اکثر مواد کو JSON کے طور پر برآمد کرتے ہیں۔ جب آپ کے پاس 50 بلاگ پوسٹیں ہوں جن میں ساخت شدہ میٹا ڈیٹا (مصنف، ٹیگز، نمایاں تصویر کے یو آر ایل، شائع کرنے کی تاریخیں) ہوں، تو آپ میٹا ڈیٹا کو چھوڑتے ہوئے بڈی اور عنوان کا ترجمہ کرنا چاہتے ہیں۔
ایک عام برآمدگی میں مواد کی سٹرنگز اور کنفیگریشن شامل ہوتی ہیں:
- مواد: مضمون کا بدن، سرخی، اقتباس
- ساخت: مصنف کی شناخت، تصویر کے راستے، زمرہ کے سلگز، ٹائم سٹیمپس
دستی ترجمہ خطرے میں ڈال سکتا ہے جیسے سلگ کو technology سے tecnología میں تبدیل کرنا، جس سے روٹنگ ٹوٹ جائے گی۔ ساخت کو برقرار رکھنے والا ترجمہ صرف مواد کی فیلڈز کو ہینڈل کرتا ہے۔
ملٹی-ریجن ڈپلائمنٹ کے لیے کنفیگریشن فائلیں
کئی علاقوں میں ڈپلائی کر رہے ہیں؟ آپ کی کنفیگریشن فائلوں کو مقامی سٹرنگز کی ضرورت ہو سکتی ہے جبکہ اینڈ پوائنٹس، کریڈنشلز، اور فیچر فلیگز یکساں رہیں:
1{
2 "region": "eu-west",
3 "welcomeMessage": "Welcome to our service",
4 "endpoint": "https://api.eu.example.com",
5 "retryAttempts": 3,
6 "features": {"darkMode": true}
7}
8welcomeMessage کو جرمن میں ترجمہ کریں جبکہ endpoint، retryAttempts، اور features کو یکساں چھوڑ دیں۔
ترجمہ کے طریقوں کا موازنہ
| طریقہ | کس کے لیے بہتر | رفتار | درستگی | ڈھانچے کی حفاظت | لاگت |
|---|---|---|---|---|---|
| یہ ٹول | تیز i18n فائل تخلیق، پروٹوٹائپ، داخلی ٹولز | فوری | معیاری مواد کے لیے اچھا | 100% محفوظ | مفت |
| گوگل ترجمہ (کاپی/پیسٹ) | انفرادی جملے، غیر تکنیکی متن | فوری | مختلف | JSON توڑ دیتا ہے | مفت |
| پیشہ ورانہ ترجمہ | کسٹمر سامنے والا مواد، قانونی دستاویزات، مارکیٹنگ | دن | بہت اچھا | دستی کام درکار | $0.08-0.15/لفظ |
| ترجمہ مینجمنٹ سسٹم (Lokalise, Phrase) | انٹرپرائز ایپس، تعاون کے کام کے طریقے | گھنٹے-دن | جائزے کے ساتھ بہت اچھا | بلٹ-ان JSON سپورٹ | $$$+ |
اس ٹول کا استعمال کب کریں: ابتدائی مرحلے کی پروجیکٹس، جائزے کے لیے مسودے تیار کرنا، داخلی ایپلیکیشنز جہاں بالکل درست ترجمہ اہم نہیں ہے۔
پیشہ ورانہ ترجمہ میں سرمایہ کب لگائیں: کسٹمر سامنے والا مواد، قانونی/تعمیل کے متن، برانڈ پیغام، یا جب ثقافتی نکتہ نظر رفتار سے زیادہ اہم ہو۔
تکنیکی ملاحظات اور کنارے کے کیسز
کیا ترجمہ ہوتا ہے (اور کیا نہیں)
ٹول ٹائپ چیکنگ کا استعمال کرتا ہے تاکہ یہ تعین کیا جا سکے کہ کیا ترجمہ کیا جائے:
✅ ترجمہ کیا گیا:
- سٹرنگ قدریں:
"Welcome"→"Bienvenue" - اریز میں سٹرنگز:
["Hello", "World"]→["Bonjour", "Monde"] - کسی بھی نیسٹنگ سطح پر سٹرنگز
❌ ترجمہ نہیں کیا گیا:
- نمبر:
42،3.14،-10یکساں رہتے ہیں - بولین:
trueاورfalseایسے ہی رہتے ہیں - نل:
nullnullہی رہتا ہے - آبجیکٹ کی چابیاں:
"userName"کی چابی"userName"ہی رہتی ہے - خالی سٹرنگز:
""""ہی رہتا ہے
خاص حروف کو ہینڈل کرنا
یونی کوڈ اور ایموجی ٹول UTF-8 کو صحیح طریقے سے ہینڈل کرتا ہے، اس لیے ایموجی اور غیر لاطینی حروف ٹھیک کام کرتے ہیں:
1{"greeting": "👋 Hello"}
2ہسپانوی میں ترجمہ ہوتا ہے:
1{"greeting": "👋 Hola"}
2ایسکیپ سیکوئنسز
JSON ایسکیپ سیکوئنسز (\n، \t، \") محفوظ رہتے ہیں:
1{"message": "Line 1\nLine 2"}
2\n ترجمے میں یکساں رہتا ہے۔
پلیس ہولڈرز
یہاں ایک ممکنہ مسئلہ ہے: اگر آپ کی سٹرنگز میں پلیس ہولڈرز جیسے {username} یا %s موجود ہیں، تو وہ ترجمہ ہو سکتے ہیں یا دوبارہ ترتیب دیے جا سکتے ہیں۔ عربی یا عبرانی جیسی RTL زبانوں میں، پلیس ہولڈر کی پوزیشن تبدیل ہو سکتی ہے۔ ان کا احتیاط سے جائزہ لیں۔
بڑے JSON کی کارکردگی
ویب پر مبنی ٹول عام i18n فائلوں (500KB سے کم) کو بغیر کسی مسئلے کے ہینڈل کرتا ہے۔ بڑے ڈیٹاسیٹس کے لیے:
- 500KB - 2MB: کام کرتا ہے لیکن براؤزر میں سست ہو سکتا ہے
- 2MB سے زیادہ: منطقی حصوں میں تقسیم کرنے پر غور کریں (مثلاً فیچر یا سیکشن کے لیے الگ الگ فائلیں)
براؤزر کی میموری الگورتھم سے زیادہ محدود کرنے والا عنصر ہے۔
اکثر پوچھے جانے والے سوالات
یہ Google Translate میں JSON پیسٹ کرنے سے کیسے مختلف ہے؟
Google Translate JSON کو سادہ متن کے طور پر دیکھتا ہے، جس کا مطلب ہے کہ یہ ہر چیز کا ترجمہ کرنے کی کوشش کرتا ہے - بشمول کلیدیں، نحوی حروف، اور عددی اقدار۔ آپ کو آؤٹ پٹ ملے گا جیسے:
1{ "nom d'utilisateur": "Jean Dupont", "âge": "vingt-cinq" }
2دیکھیں کہ "username" کیسے "nom d'utilisateur" بن گیا اور عدد 25 کیسے سٹرنگ "vingt-cinq" بن گیا؟ آپ کا کوڈ فوری طور پر ٹوٹ جاتا ہے۔
یہ ٹول JSON کی ساخت کو سمجھتا ہے اور صرف سٹرنگ اقدار کا ترجمہ کرتا ہے، کلیدیں اور دیگر ڈیٹا ٹائپس کو یکساں رکھتے ہوئے۔
کیا یہ گہرے نیسٹڈ JSON کو ایرے کے ساتھ سنبھال سکے گا؟
جی ہاں۔ ریکرسو الگورتھم نیسٹنگ کے ہر سطح کو پروسیس کرتا ہے:
1{
2 "users": [
3 {"name": "John", "roles": ["admin", "editor"]},
4 {"name": "Jane", "roles": ["viewer"]}
5 ]
6}
7یہ تمام سٹرنگ اقدار ("John", "Jane", "admin", "editor", "viewer") کا ترجمہ کرتا ہے جبکہ بالکل درست ساخت کو برقرار رکھتا ہے۔
اگر میرے JSON میں انگریزی اور پہلے سے ترجمہ شدہ مواد دونوں موجود ہیں تو کیا ہوگا؟
ٹول ہر سٹرنگ کا ترجمہ کرتا ہے، یہاں تک کہ اگر کچھ پہلے سے ہی ہدف زبان میں ہیں۔ اگر آپ کسی موجودہ ترجمہ فائل میں نئی کلیدیں شامل کر رہے ہیں، تو صرف نئے حصے کا ترجمہ الگ سے کریں، پھر نتائج کو ملا دیں۔
کیا میں اسے i18next یا react-intl فائلوں کے لیے استعمال کر سکتا ہوں؟
بالکل۔ آؤٹ پٹ کی ساخت ان فریم ورکس کی توقعات سے میل کھاتی ہے۔ ایک i18next JSON فائل جیسے:
1{"translation": {"welcome": "Hello", "goodbye": "Goodbye"}}
2اس طرح بن جائے گی:
1{"translation": {"welcome": "Hola", "goodbye": "Adiós"}}
2آپ کے t('translation.welcome') کال بغیر کسی تبدیلی کے کام کریں گے۔
تکنیکی مواد کے لیے خودکار ترجمہ کتنا درست ہے؟
یہ سیاق پر منحصر ہے:
- عمومی UI متن: "Save", "Cancel", "Submit" → عام طور پر درست
- تکنیکی اصطلاحات: "webhook", "OAuth2", "idempotent" → غلط ترجمہ ہو سکتا ہے یا جیسا کا تیسا رہ سکتا ہے
- ڈومین مخصوص اصطلاحات: "patient record" (طبی) بمقابلہ "patient" (صبر) → سیاق اکثر چوٹ جاتا ہے
پروڈکشن ایپس کے لیے، اسے پہلی بار کے طور پر استعمال کریں، پھر کسی کو تکنیکی اور ڈومین مخصوص اصطلاحات کا جائزہ لینے دیں۔
کیا مختلف حروف سیٹ والی زبانوں کے بارے میں کیا خیال ہے (چینی، عربی، روسی)؟
ٹول یونی کوڈ کو صحیح طریقے سے سنبھالتا ہے، لہذا تمام حروف سیٹ کام کرتی ہیں۔ ایک چیز جس پر نظر رکھنی چاہیے: عربی اور عبرانی دائیں سے بائیں (RTL) ہیں، جو ترجمہ شدہ سٹرنگز میں پلیس ہولڈرز کو متاثر کر سکتا ہے۔ JSON کی ساخت درست رہتی ہے، لیکن قابل پڑھائی کے لیے ترجمہ شدہ متن کا جائزہ لیں۔
کیا یہ میری فارمیٹنگ (انڈینٹیشن، لائن بریک) کو برقرار رکھے گا؟
آؤٹ پٹ درست JSON ہے، لیکن فارمیٹنگ (وائٹ سپیس، انڈینٹیشن) آپ کے ان پٹ سے مختلف ہو سکتی ہے۔ اگر آپ کو مخصوص فارمیٹنگ چاہیے، تو آؤٹ پٹ کو اپنی پسندیدہ ترتیبوں کے ساتھ JSON فارمیٹر سے گزاریں۔
کیا میں کنفیگریشن اقدار جیسے URLs یا API کلیدیں ترجمہ کر سکتا ہوں؟
ٹول تمام سٹرنگز کا ترجمہ کرتا ہے، بشمول URLs اور کنفیگ اقدار۔ اسے روکنے کے لیے:
- اپنے JSON کو صارف کے لیے مواد اور کنفیگریشن میں تقسیم کریں
- صرف مواد کے حصے کا ترجمہ کریں
- کنفیگ کو غیر ترجمہ شدہ رکھیں
اور بھی بہتر، اپنی فائلوں کو شروع سے ہی ترجمہ کرنے والے مواد کو تکنیکی اقدار سے الگ کرنے کے لیے ڈھانچہ دیں۔
کیا یہ مفت ہے؟ کیا ریٹ کی کوئی حد ہے؟
ویب پر مبنی ٹول عام استعمال کے لیے مفت ہے۔ بہت زیادہ حجم میں ترجمہ (فی منٹ سیکڑوں فائلیں) اساسی ترجمہ سروس پر ریٹ کی حدوں کو چھو سکتا ہے۔ زیادہ تر ڈویلپمنٹ ورک فلوز میں، آپ حدوں سے دوچار نہیں ہوں گے۔
حوالے اور مزید مطالعہ
JSON کی ساخت، بین الاقوامی معیارات اور بہترین طریقہ کار کی گہری سمجھ کے لیے:
-
ECMA-404: JSON ڈیٹا انٹرچینج سنٹیکس - Ecma International کی طرف سے جاری آفیشل JSON تعریف جو معیاری فارمیٹ کو بیان کرتی ہے: ecma-international.org/publications-and-standards/standards/ecma-404/
-
MDN ویب دستاویزات: JSON کے ساتھ کام کرنا - Mozilla کا JSON پارسنگ، سٹرنگیفیکیشن اور ساخت کا جامع گائیڈ: developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON
-
W3C بین الاقوامی سازی (i18n) سرگرمی - ویب بین الاقوامی سازی کے لیے معیارات اور بہترین طریقہ کار: w3.org/International/
-
RFC 8259: JSON ڈیٹا انٹرچینج فارمیٹ - JSON سنٹیکس اور سیمانٹکس کے لیے IETF کی تفصیل: datatracker.ietf.org/doc/html/rfc8259
اپنی JSON فائلوں کا ترجمہ شروع کریں
کیا آپ اپنی کثیر الزبانی ایپلیکیشن کے لیے ترجمہ فائلیں فوری طور پر تیار کرنا چاہتے ہیں؟ اپنی JSON پیسٹ کریں، ایک ہدف زبان منتخب کریں، اور فوری طور پر ڈھانچے کو برقرار رکھنے والے ترجمے حاصل کریں۔ i18next، react-intl، vue-i18n اور کسی بھی فریم ورک کے ساتھ کام کرتا ہے جو مختلف زبانوں میں مستقل JSON ڈھانچے کی توقع کرتا ہے۔
ترجمہ ابھی شروع کریں: