Lingo.dev + .strings (Xcode)
تقوم واجهة سطر أوامر Lingo.dev بترجمة ملفات Xcode .strings مع الحفاظ على بنية المفتاح-القيمة والتعليقات واتفاقيات توطين iOS. تعمل واجهة سطر الأوامر مع مشاريع وسير عمل Xcode القديمة، وتحافظ على سياق المطور والتعليمات في التعليقات، وتحافظ على محددات تنسيق iOS مثل %@
و %d
، وتتعامل مع ترميزات UTF-16 وUTF-8 بشكل صحيح، وتتكامل مع خطوط أنابيب توطين iOS القياسية.
الإعداد السريع
التكوين لملفات Xcode strings القديمة:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja"]
},
"buckets": {
"xcode-strings": {
"include": ["Resources/[locale].lproj/Localizable.strings"]
}
}
}
تذكير: [locale]
هو عنصر نائب يجب أن يبقى في التكوين حرفيًا، حيث يتم استبداله باللغة الفعلية أثناء تشغيل واجهة سطر الأوامر.
ترجمة ملفات Strings
npx lingo.dev@latest i18n
يحافظ على تنسيق ملف strings وتعليقات المطورين واتفاقيات iOS المحددة أثناء ترجمة القيم.
بنية ملف Strings
أزواج المفتاح-القيمة الأساسية
/* التنقل الرئيسي */
"nav.home" = "الرئيسية";
"nav.settings" = "الإعدادات";
"nav.profile" = "الملف الشخصي";
/* المصادقة */
"auth.login" = "تسجيل الدخول";
"auth.logout" = "تسجيل الخروج";
"auth.register" = "التسجيل";
محددات التنسيق
/* رسائل المستخدم مع العناصر النائبة */
"welcome.user" = "مرحبًا بعودتك، %@!";
"items.count" = "لديك %d عنصر في سلة التسوق الخاصة بك";
"download.progress" = "جارٍ التنزيل... اكتمل %.1f%%";
النصوص متعددة الأسطر
/* محتوى طويل */
"terms.agreement" = "باستخدام هذا التطبيق، فإنك توافق على شروط الخدمة وسياسة الخصوصية الخاصة بنا. يرجى قراءتها بعناية قبل المتابعة.";
"help.description" = "تساعدك هذه الميزة على إدارة مهامك بكفاءة. يمكنك إنشاء وتحرير وتنظيم عناصر عملك.";
ميزات خاصة بنظام iOS
تعليقات الترجمة
/* تظهر في شريط التبويب في الأسفل */
"tab.home" = "الرئيسية";
/* نص زر إرسال النموذج */
"button.submit" = "إرسال";
/* رسالة خطأ عند عدم توفر الشبكة */
"error.network" = "يرجى التحقق من اتصالك بالإنترنت";
توفر تعليقات المطورين سياقًا للمترجمين.
الأحرف الخاصة
/* النصوص مع علامات الاقتباس والأحرف الخاصة */
"message.quote" = "قالت، \"مرحبًا!\"";
"path.file" = "Documents\\MyFile.txt";
"symbol.copyright" = "© 2024 اسم الشركة";
يتم الحفاظ على الهروب المناسب لعلامات الاقتباس والشرطات المائلة العكسية.
تكامل Storyboard
/* ترجمات Storyboard */
"A8K-3L-9X7.text" = "مرحبًا";
"B9M-4N-0Y8.placeholder" = "أدخل اسمك";
"C0P-5Q-1Z9.title" = "الإعدادات";
يتم التعامل مع مفاتيح Interface Builder المُنشأة بشكل صحيح.
التكوين المتقدم
ملفات Strings متعددة
"xcode-strings": {
"include": [
"Resources/[locale].lproj/Localizable.strings",
"Resources/[locale].lproj/InfoPlist.strings"
]
}
قفل مفاتيح النظام
"xcode-strings": {
"include": ["Resources/[locale].lproj/Localizable.strings"],
"lockedKeys": ["CFBundleName", "CFBundleDisplayName"]
}