
ترجم كتالوجات سلاسل Xcode خلال ثوانٍ
صيغ الجمع صحيحة وفق CLDR. تُحفَظ تباينات الأجهزة. تُتتبَّع حالات الترجمة. تُترجم ملفات .xcstrings من دون مغادرة IDE.
ترجمة String Catalog أعقد مما تبدو
استبدلت String Catalogs في Xcode 15 ملفات .strings و.stringsdict بملف JSON واحد — لكن التعقيد لم يختفِ. تحتاج صيغ الجمع إلى فئات CLDR الصحيحة لكل لغة، ويجب أن تبقى تباينات الأجهزة (iPhone مقابل iPad مقابل Mac) مرتبطة بمفاتيحها، كما أن تتبّع الحالة في Xcode يعني أن حقلًا واحدًا خاطئًا يُبطِل الإدخال بأكمله.
تحتاج كل لغة إلى فئات جمع CLDR مختلفة — العربية تحتاج الفئات الست جميعها، واليابانية تحتاج فقط "other"، والروسية تحتاج أربع صيغ مميزة
يجب أن تبقى تباينات السلاسل الخاصة بالأجهزة (iPhone, iPad, Mac, Apple Watch) مرتبطة على نحو صحيح بمفاتيحها الأم
يتتبع Xcode حالات الترجمة (new, needs_review, translated, stale) — وقيم الحالة الخاطئة تجعل Xcode يتجاهل الترجمات أو يعلّمها على نحو غير صحيح
يؤدي الترحيل من .strings/.stringsdict القديمة إلى .xcstrings إلى فروق في التنسيق لا تتعامل معها الأدوات العامة
{
"sourceLanguage": "en",
"version": "1.0",
"strings": {
"welcome_title": {
"extractionState": "manual",
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Welcome to the App"
}
}
}
},
"item_count": {
"localizations": {
"en": {
"variations": {
"plural": {
"zero": {
"stringUnit": {
"state": "translated",
"value": "No items"
}
},
"one": {
"stringUnit": {
"state": "translated",
"value": "%lld item"
}
},
"other": {
"stringUnit": {
"state": "translated",
"value": "%lld items"
}
}
}
}
}
}
},
"device_greeting": {
"localizations": {
"en": {
"variations": {
"device": {
"iphone": {
"stringUnit": {
"state": "translated",
"value": "Tap to continue"
}
},
"ipad": {
"stringUnit": {
"state": "translated",
"value": "Tap or click to continue"
}
},
"mac": {
"stringUnit": {
"state": "translated",
"value": "Click to continue"
}
}
}
}
}
}
}
}
}{
"sourceLanguage": "en",
"version": "1.0",
"strings": {
"welcome_title": {
"extractionState": "manual",
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "Willkommen in der App"
}
}
}
},
"item_count": {
"localizations": {
"de": {
"variations": {
"plural": {
"zero": {
"stringUnit": {
"state": "translated",
"value": "Keine Elemente"
}
},
"one": {
"stringUnit": {
"state": "translated",
"value": "%lld Element"
}
},
"other": {
"stringUnit": {
"state": "translated",
"value": "%lld Elemente"
}
}
}
}
}
}
},
"device_greeting": {
"localizations": {
"de": {
"variations": {
"device": {
"iphone": {
"stringUnit": {
"state": "translated",
"value": "Tippen zum Fortfahren"
}
},
"ipad": {
"stringUnit": {
"state": "translated",
"value": "Tippen oder klicken zum Fortfahren"
}
},
"mac": {
"stringUnit": {
"state": "translated",
"value": "Klicken zum Fortfahren"
}
}
}
}
}
}
}
}
}ما الذي يحافظ عليه i18n Agent
صيغ الجمع
تُولَّد فئات جمع CLDR الصحيحة لكل لغة مستهدفة — من اليابانية ذات الفئة الواحدة إلى العربية ذات الفئات الست
تباينات الأجهزة
تبقى تباينات السلاسل لـ iPhone وiPad وMac وApple Watch مرتبطة على نحو صحيح بمفاتيحها الأم
الوعي بالحالات
تُضبط حالات الترجمة (new, needs_review, translated) على نحو صحيح لكي تعمل سير عمل التوطين في Xcode كما ينبغي
توافق التنسيق
المخرجات متوافقة بالكامل مع محرّر String Catalog في Xcode وتندمج بسلاسة مع المشاريع الجديدة والمُرحَّلة
يعمل عبر تطوير Apple
كيف يعمل

لا نسخ ولصق يدوياً. لا استخراج للسلاسل. فقط ملفات مترجمة.
جرّب i18n Agent الآن
أفلت ملف الترجمة هنا
JSON, YAML, PO, XML, CSV, Markdown, Properties
أو انقر للاستعراض
اللغات المستهدفة
الأسئلة الشائعة
هل لديك فريق مؤسسي؟
هل ما زلت عالقاً في عقد TMS؟ لنتحدث عن الترحيل.