ForHosting KIT · الترجمة

ترجمة ملفات JSON لتعدد اللغات

أرسل ملف en.json واستلم ملف fr.json بالمفاتيح نفسها والتداخل نفسه، ولم يُترجم فيه إلا النص؛ أما قيمة مثل 3 أو true فتعود كما هي. وتبقى المتغيرات مثل {{username}} في مكانها، فيوضع الملف الجديد في تطبيقك مباشرة.

● مستقرةلكل طلب · لكل مفتاح$0.003
استخدمها من الويبAPIالبريدTelegramالتطبيق قريبًا

شغّل هذه المهمة على خوادمنا باستخدام حسابك. الأدوات المجانية تعمل داخل متصفحك، أما هذه فتُخصم من رصيدك في KIT حسب السعر الموضّح أعلاه.

القيم فقط، والمفاتيح كما هي

لماذا يجب ألا تتغير المفاتيح؟

ملف اللغة عقد: المفاتيح هي مفردات الشيفرة، والقيم هي ما يقرؤه الإنسان على الشاشة. حين يُصدّر المطور ملف en.json ويرسله إلى مترجم، ثم يعود بعد ثلاثة أيام وقد أُعيدت تسمية مفتاح متداخل أو تغيّر ترتيب قائمة لأنها «تُقرأ بشكل أفضل»، يتعطل التطبيق عند البحث عن المفتاح المفقود، ولا يلاحظ أحد ذلك حتى تظهر شاشة فارغة أمام المستخدمين. هنا تُعامَل المفاتيح كمعرّفات ثابتة، ولا يُترجم إلا النص، فتعود البنية التي أرسلتها كما هي تمامًا.

ما الذي يُترجم وما الذي يبقى كما هو؟

تُترجم القيم النصية، وتُتتبع الكائنات المتداخلة حتى آخر مستوى، فيُترجم ملف فيه أقسام للأزرار والأخطاء ورسائل الترحيب بكل فروعه دون تسطيح البنية. أما الأرقام وقيم true وfalse والقيم الفارغة والقوائم التي لا تحوي نصًا فتمر دون تغيير. وتبقى المتغيرات مثل {{username}} أو %s في مكانها، ولا يتغير إلا ما حولها من كلام. وهذا بالضبط هو الخطأ الشائع في الترجمة اليدوية، إذ يُكسر متغير فلا يظهر العطل إلا عند عرض الشاشة.

القيم المتداخلة والمصفوفات

ملفات الترجمة الحقيقية نادرًا ما تكون مستوى واحدًا مسطحًا؛ غالبًا كائنات متداخلة داخل كائنات، أو مصفوفات من الجمل ضمن مفتاح واحد كرسائل الأخطاء المتعددة. تتتبع الأداة كل مستوى من التداخل وتترجم كل قيمة نصية تجدها أينما كانت، محافظة على نفس مستوى التداخل والترتيب في الملف الناتج، دون تسطيح البنية أو فقدان أي مفتاح فرعي أثناء المعالجة.

العناصر النائبة داخل الجملة

بعض القيم تحوي عنصرًا نائبًا سيُستبدل ببيانات فعلية عند التشغيل، مثل {{name}} أو %s داخل جملة ترحيب. تتعرف الأداة على هذه العناصر وتُبقيها كما هي دون ترجمة أو تحريك موضعها داخل الجملة، فتظل الجملة صالحة للعمل بعد الترجمة تمامًا كما كانت قبلها، مع تكيف بقية النص المحيط بها مع ترتيب اللغة الهدف.

لوحة تحكم داخلية بلغتين

يحتاج فريق تقنية المعلومات في شركة الخليج الرقمية لوحة تحكم داخلية بالعربية والإنجليزية معًا، فيترجم ملف الواجهة مرة واحدة ويحتفظ بنسختين متزامنتين في البنية.

رسائل الأخطاء في نظام حجز

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

هل تُترجَم أسماء المفاتيح أيضًا؟

لا، أبدًا؛ اسم المفتاح جزء من بنية الكود ويبقى كما هو بحروفه اللاتينية الأصلية، والقيمة النصية المقابلة له فقط هي ما يُترجَم.

هل تدعم الأداة الملفات المتداخلة بعدة مستويات؟

نعم، تتبع الأداة أي عدد من مستويات التداخل داخل الكائنات والمصفوفات، وتترجم كل قيمة نصية أينما وجدت دون تسطيح البنية.

ماذا يحدث للعناصر النائبة مثل {{name}}؟

تبقى كما هي دون ترجمة أو تحريك، وتتكيف صياغة الجملة المحيطة بها مع ترتيب اللغة الهدف.

ماذا لو كان الملف يحوي قيمًا غير نصية مثل أرقام أو true وfalse؟

تبقى القيم غير النصية كما هي دون أي تعديل؛ الترجمة تقتصر على السلاسل النصية فقط.

هل يمكن ترجمة بعض المفاتيح فقط؟

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

كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.

POSThttps://api.kit.forhosting.com/translate/json

صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.

curl -X POST https://api.kit.forhosting.com/translate/json \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"json":{"greeting":"Hola"},"target_lang":"en"}'
{
  "json": {
    "greeting": "Hola"
  },
  "target_lang": "en"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "translate.json",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.

لكل طلب$0.003
لكل مفتاح$0.0135

السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.

max_tokens20000
HTTPالرمزالمعنى
401unauthorizedمفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك.
402insufficient_balanceرصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة.
404unknown_typeنوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب.
429rate_limitedتجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة.
422task_failedلم تنجح معالجة المهمة، ولن تُحتسب عليك؛ أعد المحاولة أو راسلنا مباشرة.

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

لماذا لا يكفي مترجم نص عادي هنا

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

السعر بحساب المفاتيح

يُحتسب السعر بعدد مفاتيح الملف لا بعدد الكلمات: $0.003 للطلب و$0.0135 عن كل مفتاح مُترجَم، بصرف النظر عن طول النص داخل كل مفتاح. ملف واجهة صغير من خمسين مفتاحًا يكلف أقل من $1 إضافي فوق السعر الثابت.

تطبيق جوال بأكثر من لغة

يضيف عبدالله المنصوري لغة إنجليزية جديدة لتطبيق جوال كتبه أصلًا بالعربية، ويترجم ملف الترجمة JSON دفعة واحدة عبر الـAPI دون لمس أسماء المفاتيح التي يعتمد عليها الكود.

كيف يُحتسب السعر لملف كبير؟

بعدد المفاتيح لا الكلمات: $0.003 للطلب و$0.0135 عن كل مفتاح، بصرف النظر عن طول النص داخل كل قيمة.

هل يمكن ترجمة عدة ملفات لغات دفعة واحدة عبر الـAPI؟

نعم، يمكن إرسال كل ملف كطلب مستقل، وجدولة عدد كبير منها ضمن مسار نشر واحد.

اطّلع على توثيق KIT الكامل ←