التوطين — الجوهر، تكييف المحتوى حسب اللغة والمنطقة

المؤلف: IT Sectr نُشر: 2026-02-26 وقت القراءة: 7 دق

Localization (التوطين، l10n) — تكييف محتوى التطبيق المحمول مع اللغة والمنطقة والخصائص الثقافية للجمهور المستهدف. على عكس التدويل (i18n)، حيث يتم إعداد الكود للترجمة، فإن التوطين هو العملية الفعلية لترجمة النصوص وتنسيق التواريخ والأرقام والعملات واختيار الصور ومراعاة المعايير المحلية. في iOS، تُخزَّن الترجمات في Localizable.strings (مجلدات .lproj لكل لغة)، وفي Android — في values-ru وvalues-de وأدلة الموارد الأخرى. اعرف المزيد في دليل توطين Android.

النقاط الرئيسية

  • التوطين (l10n) — ترجمة وتكييف محتوى التطبيق للغة ومنطقة محددة
  • Localizable.strings — ملف iOS يحتوي على أزواج مفتاح-قيمة لكل لغة
  • values-ru — دليل موارد Android للغة الروسية (strings.xml)
  • التكييف الإقليمي — التواريخ والأرقام والصور والألوان والمتطلبات القانونية تختلف حسب البلد
  • الخصائص الثقافية — الألوان والأيقونات والإيماءات والأمثلة يجب أن تتوافق مع المعايير المحلية

ما هو التوطين (l10n) وكيف يختلف عن i18n؟

التوطين (اختصاراً l10n — 10 أحرف بين «l» و «n») هو عملية تكييف التطبيق مع لغة ومنطقة محددتين. إذا كان i18n هو الأساس المعماري، فإن l10n هو المحتوى. i18n يجعل الترجمة ممكنة، وl10n ينفذها. يشمل التوطين: ترجمة جميع نصوص الواجهة، تكييف تنسيقات التواريخ والأرقام، استبدال الصور الحساسة ثقافياً، تعديل النصوص القانونية (سياسة الخصوصية، EULA)، تكييف أنظمة الدفع حسب المنطقة، والاختبار على الأجهزة المستهدفة.

العائد على الاستثمار — يؤثر التوطين مباشرة على معدل التحويل. وفقاً لـ CSA Research (2023)، يفضل 76% من المستخدمين الشراء في التطبيقات بلغتهم الأم، و40% لا يشترون أبداً بلغة أجنبية. يزيد التوطين إلى اليابانية لتطبيق تجزئة التحويل بمتوسط 150% (Google, 2022). تحصل التطبيقات المترجمة على ضعف إلى ثلاثة أضعاف التنزيلات العضوية في App Store وGoogle Play الإقليميين بفضل ASO الإقليمي (الكلمات المفتاحية باللغة المستهدفة).

i18n مقابل l10n — وجهان لعملة واحدة. i18n: استخراج النصوص إلى موارد، دعم RTL، تنسيق الأرقام. يُنفذ مرة واحدة من قبل المطورين. l10n: ترجمة النصوص، تكييف المحتوى، الاختبار المحلي. يُنفذ مراراً من قبل المترجمين وQA لكل لغة. في IT Sectr، نخصص 20–30% من وقت السباق للتوطين لكل لغة جديدة — ويشمل ذلك الترجمة والمراجعة والاختبار على الأجهزة وإصلاح الأخطاء.

التوطين في iOS: Localizable.strings وBase Internationalization

Localizable.strings — الملف الرئيسي لتخزين الترجمات في iOS. كل لغة لها مجلد .lproj الخاص بها: en.lproj/Localizable.strings، ru.lproj/Localizable.strings، de.lproj/Localizable.strings. التنسيق: «مفتاح» = «قيمة»; (مع فاصلة منقوطة). تستخدم Apple Base Internationalization: يتم إنشاء Storyboard وXIB مرة واحدة (Base.lproj)، ويتم تصدير نصوص الواجهة إلى Localizable.strings لكل لغة. هذا يلغي الحاجة إلى إنشاء نسخ من XIB لكل لغة.

swift
// en.lproj/Localizable.strings
// "settings.title" = "الإعدادات";
// "profile.greeting" = "مرحباً، %@!";
// "items.count" = "%d عنصر(عناصر)";

// ru.lproj/Localizable.strings
// "settings.title" = "الإعدادات";
// "profile.greeting" = "مرحباً، %@!";
// "items.count" = "%d عنصر(عناصر)";

// تحميل النص بالمفتاح
navigationItem.title = NSLocalizedString(
    "settings.title",
    comment: "عنوان شاشة الإعدادات"
)

// نص مع معامل
let name = "آنا"
greetingLabel.text = String.localizedStringWithFormat(
    NSLocalizedString("profile.greeting", comment: ""), name
)

// استيراد XLIFF (Xcode → Editor → Import Localizations)
// يحدّث تلقائياً ملفات .lproj بعد عمل المترجم

Base Internationalization — نهج Apple حيث يتم إنشاء الواجهة (Storyboard، XIB) مرة واحدة في Base.lproj. عند إضافة لغة، يقوم Xcode بتصدير النصوص من Base إلى ملف XLIFF. يترجم المترجم ملف XLIFF. بعد الاستيراد، ينشئ Xcode .lproj مع النصوص المترجمة. الميزة: لا حاجة لتكرار XIB لكل لغة. القيد: للغات RTL (العربية، العبرية)، قد يكون من الضروري وجود XIB منفصل بتخطيط معكوس.

InfoPlist.strings وتوطين البيانات الوصفية

InfoPlist.strings — ملف لتوطين اسم التطبيق (CFBundleDisplayName)، أذونات الكاميرا/الميكروفون (NSCameraUsageDescription) وقيم أخرى من Info.plist. يُنشأ في .lproj: ru.lproj/InfoPlist.strings. التنسيق: CFBundleDisplayName = «تطبيقي»; NSCameraUsageDescription = «يحتاج التطبيق إلى الوصول إلى الكاميرا لالتقاط الصور»;. بدون توطين InfoPlist.strings، ستكون حوارات النظام باللغة الإنجليزية.

التوطين في Android: values-ru والموارد المترجمة

موارد Android للترجمة منظمة من خلال المؤهلات في أسماء الدلائل. للروسية — res/values-ru/، للألمانية — res/values-de/، للبرتغالية البرازيلية — res/values-pt-rBR/. يدعم Android أكثر من 160 لغة. يختار النظام تلقائياً الموارد بناءً على لغة الجهاز (Locale.getDefault()). إذا لم يتم العثور على لغة محددة، يتم استخدام موارد values/ (اللغة الأساسية، عادة الإنجليزية).

kotlin
// res/values/strings.xml (أساسي — إنجليزي)
<string name="settings_title">Settings</string>
<string name="greeting">Hello, %s!</string>

// res/values-ru/strings.xml (روسي)
<string name="settings_title">الإعدادات</string>
<string name="greeting">مرحباً، %s!</string>

// res/values-de/strings.xml (ألماني)
<string name="settings_title">Einstellungen</string>
<string name="greeting">Hallo, %s!</string>

// Kotlin — كود موحد لجميع اللغات
textView.text = getString(R.string.settings_title)

// نص مع معامل
val greeting = getString(R.string.greeting, userName)

// صور مترجمة
// res/drawable-ru/flag.png — علم للنسخة الروسية
// res/drawable/flag.png — العلم الافتراضي

// توطين التخطيطات (للغات RTL)
// res/layout-ar/activity_main.xml — نسخة عربية

التوطين أبعد من النصوص — يتيح Android توطين الصور (res/drawable-ru/)، الألوان (res/values-ru/colors.xml)، الأبعاد (res/values-ru/dimens.xml)، الرسوم المتحركة، القوائم، وحتى التخطيطات الكاملة. للغات ذات أطوال كلمات مختلفة (الألمانية أطول بنسبة 30–40% من الإنجليزية)، استخدم dimens.xml المترجمة مع عرض أزرار متزايد. للمناطق ذات الرمزية اللونية المختلفة (الأبيض حداد في الصين)، استخدم colors.xml المترجمة.

اختبار التوطين على الجهاز

الاختبار — قم بتبديل لغة الجهاز إلى اللغة المستهدفة عبر الإعدادات → النظام → اللغة. تحقق من: ترجمة جميع النصوص، تنسيق التواريخ بشكل صحيح، عرض الأرقام مع الفاصل المناسب، مطابقة الصور للمنطقة، عدم انهيار التخطيط مع النصوص الطويلة. للأتمتة، استخدم Espresso مع LocaleTestRule (Android Testing Library) — يتيح تشغيل الاختبارات بلغات مختلفة دون تغيير اللغة يدوياً.

التكييف الثقافي: ما يجب ترجمته بجانب النص

الخصائص الثقافية — لا يقتصر التوطين على ترجمة النصوص. تختلف الرمزية اللونية: الأحمر حظ في الصين، خطر في الولايات المتحدة، حداد في جنوب إفريقيا. الأبيض نقاء في أوروبا، حداد في الصين. أيقونات الإيماءات: الإبهام لأعلى إيجابي في الولايات المتحدة، إهانة في الشرق الأوسط. صور الأشخاص: في الدول العربية، صور النساء بملابس السباحة غير مقبولة. الرموز الدينية: الصليب والهلال ونجمة داود يجب استخدامها فقط في السياق المناسب.

المتطلبات القانونية — لكل دولة قوانينها الخاصة بالمنتجات الرقمية. GDPR (الاتحاد الأوروبي) — موافقة إلزامية على ملفات تعريف الارتباط ومعالجة البيانات. CCPA (كاليفورنيا) — الحق في حذف البيانات. قانون البيانات الشخصية (روسيا، 152-FZ) — تخزين البيانات على خوادم روسية. LGPD (البرازيل) — مكافئ GDPR. المدفوعات: في الصين، يلزم Alipay/WeChat Pay، في الهند — UPI، في البرازيل — Boleto وPIX. قم بتكوين بوابة الدفع حسب المنطقة قبل إطلاق التوطين.

الجانبالولايات المتحدةالصينالإماراتألمانيا
نظام الدفعApple Pay، بطاقاتAlipay، WeChat Payبطاقات، Apple PayPayPal، Giropay
ألوان العلامة التجاريةأيأحمر — حظأخضر — الإسلامأسود/أصفر
الشبكات الاجتماعيةInstagram، XWeChat، DouyinWhatsApp، XWhatsApp، X
التاريخMM/dd/yyyyyyyy/MM/dddd/MM/yyyydd.MM.yyyy
قانون البياناتCCPAPIPLPDPLGDPR

الأمثلة والمحتوى — كيّف الأمثلة حسب المنطقة. للترجمة الألمانية، استخدم النظام المتري (كغم، كم)، للأمريكية — الإمبراطوري (رطل، ميل). أرقام الهواتف والرموز البريدية والعناوين — كلها تُنسق بشكل مختلف. أمثلة العملات: ¥1000 في اليابان، $9.99 في الولايات المتحدة، 999 ₽ في روسيا. يجب أن تتوافق صور الطعام والملابس والديكورات الداخلية مع المعايير الإقليمية. في IT Sectr، نوصي بتعيين مستشارين محليين للتحقق من التكييف الثقافي.

عملية التوطين: الأدوات والمترجمون وCI/CD

أدوات التوطين — منصات احترافية تؤتمت العملية: Lokalise، Crowdin، POEditor، Smartling، Phrase. تتكامل مع المستودع، وتستورد تلقائياً النصوص الجديدة، وتتتبع التغييرات (التحديثات التفاضلية — تُترجم فقط النصوص المتغيرة)، وتوفر ذاكرة الترجمة (TM — تخزين العبارات المترجمة سابقاً) والمسرد. متوسط تكلفة الترجمة الاحترافية: 0.08–0.15 دولار لكل كلمة (حسب اللغة).

العملية — (1) يضيف المطور مفاتيح i18n إلى الكود، ويدفع إلى المستودع. (2) CI/CD (GitHub Actions / GitLab CI) يرسل تلقائياً المفاتيح الجديدة إلى منصة التوطين. (3) يتلقى المترجمون إشعاراً، يترجمون ويحفظون. (4) تنشئ الملفات المترجمة تلقائياً PR في المستودع. (5) يتحقق QA من التوطين على الأجهزة. (6) الإصدار. دورة للغة واحدة: 2–5 أيام عمل (حسب الحجم). لـ 10 لغات: 5–15 يوماً مع العمل المتوازي للمترجمين.

الترجمة الآلية + المراجعة البشرية — المعيار الحديث. توفر الترجمة بالشبكات العصبية (DeepL، Google Translate، GPT-4) جودة 80–90% لأزواج اللغات الشائعة. يتحقق المترجم البشري من: المصطلحات، السياق (الكلمات قد يكون لها معانٍ مختلفة في شاشات مختلفة)، التكييف الثقافي. في IT Sectr، نستخدم نهجاً هجيناً: ترجمة آلية + مراجعة بواسطة متحدث أصلي. للنصوص الحرجة (القانونية، المدفوعات) — ترجمة احترافية فقط. التوفير: حتى 60% من التكلفة مع الحفاظ على الجودة.

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

كيف يختلف التوطين عن التدويل؟

التدويل — إعداد الكود للترجمة (استخراج النصوص، RTL، التنسيق). التوطين — الترجمة الفعلية والتكييف الثقافي. i18n يقوم به المطور مرة واحدة، l10n — المترجمون لكل لغة. i18n بدون l10n — التطبيق جاهز للترجمة ولكن غير مترجم. l10n بدون i18n — يجب إعادة كتابة الكود لكل لغة.

أين تُخزَّن الترجمات في iOS؟

في ملفات Localizable.strings داخل مجلدات .lproj. لكل لغة: en.lproj (الإنجليزية)، ru.lproj (الروسية)، de.lproj (الألمانية). التنسيق: «مفتاح» = «قيمة»;. للجموع — Localizable.stringsdict. إعدادات التطبيق (CFBundleDisplayName) — في InfoPlist.strings. يدير Xcode مجلدات .lproj عبر Base Internationalization.

ما هو values-ru في Android؟

values-ru — دليل موارد Android للغة الروسية. يحتوي على strings.xml مع الترجمات. وبالمثل للغات الأخرى: values-de (الألمانية)، values-fr (الفرنسية). يختار Android الموارد بناءً على لغة النظام. إذا لم يتم العثور على values-ru، يستخدم values/ (اللغة الأساسية، عادة الإنجليزية).

كيف يتم تنسيق التواريخ للمناطق المختلفة؟

استخدم دائماً Locale API. iOS: DateFormatter.locale = Locale(identifier: locale). Android: DateFormat.getDateInstance(DateFormat.SHORT, locale). روسيا: 31.12.2024. الولايات المتحدة: 12/31/2024. اليابان: 2024/12/31. لا تحدّد تنسيقاً ثابتاً أبداً — لكل دولة معاييرها الخاصة. لإدخال التواريخ، استخدم UIDatePicker / DatePicker.

كم عدد اللغات المطلوبة لتطبيق عالمي؟

للوصول العالمي، 10–15 لغة كافية: الإنجليزية، الإسبانية، الفرنسية، الألمانية، اليابانية، الصينية، الكورية، البرتغالية، الروسية، الإيطالية، العربية. للإقليمي — 1–2 لغات. كل لغة إضافية تزيد التنزيلات العضوية بنسبة 5–15% في المنطقة المقابلة. يتطلب App Store توطيناً إنجليزياً على الأقل.

الخلاصة

  • التوطين (l10n) — ترجمة وتكييف ثقافي للمحتوى للغة ومنطقة محددة
  • iOS — Localizable.strings في مجلدات .lproj، Base Internationalization، InfoPlist.strings
  • Android — values-ru/strings.xml، drawable وتخطيط مترجمة عبر المؤهلات
  • التكييف الثقافي — الألوان والأيقونات والإيماءات وأنظمة الدفع والمتطلبات القانونية
  • العملية — CI/CD → منصة توطين → مترجم → QA → إصدار (2–5 أيام لكل لغة)
  • النهج الهجين — ترجمة آلية (DeepL، GPT) + مراجعة متحدث أصلي لتوفير 60%
  • العائد على الاستثمار — 76% من المستخدمين يشترون فقط بلغتهم الأم (CSA Research, 2023)

سنقوم بتطوير تطبيق جوال جاهز

تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.

مناقشة المشروع

اقرأ أيضًا