تخطي إلى المحتوى

مترجم JSON الذي يحافظ على الهيكل | أداة i18n مجانية

مترجم JSON مجاني يحافظ على هيكلك كما هو. ترجمة ملفات i18n واستجابات API والـ JSON المتداخل مع الحفاظ على المفاتيح وأنواع البيانات والتنسيق. مثالي لتطبيقات i18next والتعدد اللغوي.

أداة ترجمة الهياكل الجاهزة

هذه الأداة تترجم محتوى كائنات JSON مع الحفاظ على هيكلها. قم بلصق JSON الخاص بك في اللوحة اليسرى، واختر اللغة المستهدفة، وشاهد المخرجات المترجمة على اليمين.

ستظهر المخرجات المترجمة هنا...

كيفية الاستخدام

  1. الصق كائن JSON الخاص بك في حقل مصدر JSON.
  2. اختر اللغة المستهدفة من القائمة المنسدلة.
  3. سيظهر JSON المترجم تلقائيًا في اللوحة اليمنى.
  4. انقر على زر النسخ لنسخ JSON المترجم إلى الحافظة.
حاسبة التحميل...
📚

التوثيق

ما هو المترجم الذي يحافظ على بنية JSON؟

المترجم الذي يحافظ على بنية JSON هو أداة تمرّ عبر مستند JSON وتغيّر قيم النصوص داخله فقط. وتبقى مفاتيح الكائنات والأرقام وقيمتا true وfalse والقيمة null كما هي تمامًا. ولا تُلمَس إلا السلاسل النصية.

لا يرسل هذا الإصدار من الأداة أي نص إلى خدمة ترجمة. فهو يعمل بالكامل داخل المتصفح. ولكل سلسلة نصية يعثر عليها، يضيف رمز اللغة الهدف بين قوسين مربعين قبل النص الأصلي، مثل [es] Hello. يتيح ذلك للمطوّر معاينة الأجزاء التي ستُترجم من ملف JSON بدقة، والتأكد من بقاء البنية سليمة أثناء العملية، قبل ربط الأداة بخدمة ترجمة فعلية.

كيف تعمل الأداة

تطبّق الأداة قاعدة واحدة، وتكررها في كل مستوى من شجرة JSON:

  • إذا كانت القيمة سلسلة نصية، فأضف رمز اللغة الهدف بين قوسين مربعين قبلها: تصبح text ‏[code] text. وتُترك السلسلة الفارغة على شكل "".
  • إذا كانت القيمة رقمًا أو true أو false أو null، فتُترك دون تغيير.
  • إذا كانت القيمة مصفوفة، فطبّق هذه القاعدة على كل عنصر بالترتيب نفسه.
  • إذا كانت القيمة كائنًا، فطبّق هذه القاعدة على كل قيمة، مع إبقاء كل مفتاح دون تغيير.

لا يلزم أن يكون المستند بأكمله كائنًا. يمكن أن يكون نص JSON أي قيمة مفردة، ولذلك تُقبل أيضًا مصفوفة أو سلسلة نصية أو رقم أو true أو false أو null بمفردها، وتُعالَج بالقاعدة نفسها.

تتحقق الأداة أولًا من صحة بناء جملة JSON المُدخل. وإذا تعذّر تحليل JSON، تتوقف الأداة وتعرض خطأً بدلًا من التخمين.

كيفية استخدام الأداة

  1. الصق JSON في حقل «JSON المصدر» على اليسار. ويعمل الإدخال سواء كان كائنًا أو مصفوفة أو قيمة مفردة.
  2. اختر لغة الهدف من القائمة المنسدلة. تتوفر تسع لغات: الإسبانية والفرنسية والألمانية والإيطالية والبرتغالية والصينية واليابانية والكورية والروسية.
  3. تُحدّث اللوحة اليمنى تلقائيًا. ولا حاجة إلى النقر على أي زر.
  4. انقر على «نسخ» لنسخ النتيجة إلى الحافظة.
  5. انقر على «مسح الكل» لإعادة ضبط اللوحتين والبدء من جديد.

مثال تطبيقي

JSON المُدخل:

1{
2  "app": {
3    "title": "My Store",
4    "version": 2,
5    "isBeta": false,
6    "tags": ["sale", "new"]
7  }
8}
9

عند اختيار الإسبانية (es) لغةً مستهدفة، تنتج الأداة ما يلي:

1{
2  "app": {
3    "title": "[es] My Store",
4    "version": 2,
5    "isBeta": false,
6    "tags": [
7      "[es] sale",
8      "[es] new"
9    ]
10  }
11}
12

لاحظ أن "title" و"tags" يبقيان مفتاحين، وأن 2 وfalse يبقيان دون تغيير، بينما تكتسب قيم السلاسل النصية فقط الوسم [es]. ويطابق التداخل وترتيب المصفوفة ترتيب الإدخال تمامًا.

ما الذي يتغير وما الذي يبقى كما هو

عنصر JSONالنتيجة
قيمة سلسلة نصيةتحصل على بادئة [language code]
الرقمدون تغيير
true / falseدون تغيير
nullدون تغيير
مفتاح كائنيبقى دون تغيير دائمًا، بما في ذلك المفتاح المسمى حرفيًا __proto__
ترتيب المصفوفةيبقى دون تغيير دائمًا
السلسلة النصية الفارغة ""دون تغيير

يكتسب هذا أهمية خاصة في الملفات التي تحمل بنيتها معنى، مثل ملف i18n (التدويل) الذي يستخدمه تطبيق ويب، أو استجابة API يقرأها رمز العميل بحسب اسم المفتاح. فإذا تغيّر مفتاح مثل "welcomeMessage" أثناء الترجمة، فسيتعطّل الرمز الذي يبحث عن welcomeMessage. ولا تلمس هذه الأداة المفاتيح مطلقًا، ولذلك لا ينطبق هذا الخطر هنا.

الأخطاء الشائعة

"تنسيق JSON غير صالح. يُرجى التحقق من الإدخال." تظهر هذه الرسالة عندما لا يكون النص الملصق JSON صالحًا. ومن الأسباب المعتادة فقدان فاصلة بين العناصر، أو وجود فاصلة زائدة بعد العنصر الأخير، أو استخدام علامات اقتباس مفردة بدلًا من المزدوجة، أو وجود محرف خاص غير مُهَرَّب داخل سلسلة نصية. وقد يساعد تمرير الإدخال أولًا عبر أداة للتحقق من JSON في العثور على الموضع الدقيق.

"فشلت الترجمة. يُرجى المحاولة مرة أخرى." هذه رسالة احتياطية لفشل ليس خطأً في بناء الجملة. وهي حالة نادرة. والسبب الأكثر احتمالًا هو أن يكون الإدخال كبيرًا إلى حد يتجاوز معه الناتج المنسّق الحد الذي يفرضه المتصفح على طول جزء نصي واحد. ويؤدي تقسيم ملف كبير جدًا إلى أجزاء أصغر إلى تجنّب ذلك.

يؤدي ترك حقل الإدخال فارغًا إلى عرض رسالة موضعية، ولا يُعامل ذلك كخطأ. كما أن لصق القيمة المفردة null ليس خطأً: فـ null قيمة JSON صالحة، وتُرجع الأداة null.

لماذا يُعد الحفاظ على البنية مهمًا

تحتاج ملفات JSON التي تخزّن ترجمات التطبيقات، مثل en.json وfr.json، عادةً إلى مفاتيح متطابقة حتى يتمكن الرمز المحيط بها من البحث عن المسار نفسه بأي لغة، مثل user.profile.displayName. وينطبق الأمر نفسه على استجابات API التي تُقرأ بحسب أسماء الحقول، وعلى ملفات الإعدادات التي قد يؤدي تغيير اسم مفتاح فيها إلى تعطيل النشر. ويُعد الحفاظ على البنية مع تمييز السلاسل القابلة للترجمة خطوة أولى مفيدة قبل إرسال تلك السلاسل إلى خدمة ترجمة فعلية أو مراجعتها من مترجم.

الأسئلة الشائعة

هل تستدعي هذه الأداة خدمة ترجمة فعلية؟ لا. فهي تعمل داخل المتصفح فقط ولا ترسل البيانات إلى أي مكان. وتضع علامة على كل سلسلة نصية برمز اللغة الهدف بدلًا من إنتاج كلمات مترجمة.

لماذا يظهر في الناتج [es] Hello بدلًا من Hola؟ هذا الوسم بين القوسين المربعين هو سلوك العنصر النائب في الإصدار الحالي. فهو يوضح السلاسل التي ستُترجم واللغة التي ستُترجم إليها، من دون إجراء ترجمة فعلية.

هل ستغيّر مفاتيح الكائنات أو الأرقام؟ لا. تمرّ المفاتيح والأرقام وtrue/false وnull دون تغيير في كل مستوى من مستويات التداخل، بما في ذلك داخل المصفوفات. وينطبق ذلك أيضًا على أسماء المفاتيح غير المعتادة، مثل __proto__، التي قد يحذفها بعض رموز JavaScript عن طريق الخطأ.

هل تحتاج إلى اتصال بالإنترنت؟ لا. يحدث التحليل ووضع العلامات محليًا في علامة تبويب المتصفح.

هل يمكنني استخدامها مع ملفات ترجمة i18next أو ما شابهها؟ يحافظ الناتج على بنية المفاتيح نفسها الموجودة في الإدخال، ولذلك يلائم أي إطار عمل يتوقع مفاتيح متطابقة بين ملفات اللغات. لكن لا يزال يلزم استبدال قيم السلاسل النصية نفسها بترجمات فعلية قبل الاستخدام.

ماذا يحدث مع JSON شديد التداخل أو المصفوفات الموجودة داخل مصفوفات؟ تعالج الأداة كل مستوى مهما بلغ عمقه، وكل عنصر في كل مصفوفة، مع تطبيق القاعدة نفسها في كل مرة.

المراجع