المدونةتوطين البرامج الكبيرة والمرنة: دراسة حالة كاسبرسكي

توطين البرامج الكبيرة والمرنة: دراسة حالة كاسبرسكي

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

Vova Zakharov is a developer, AI experimenter, writer, and former Smartcat editor-in-chief with 22 years of background as a translator, editor, and copywriter. He writes about language technology, AI tooling, localization, and content workflows.

تعرّف على سياساتنا التحريرية

11 دقائق قراءة

جرّب Smartcat

اكتشف كيف يمكن لفريقك ترجمة كل شيء إلى كل لغة يتحدث بها عملاؤك.

احجز عرضًا توضيحيًا

ابدأ تجربة مجانية

من دون بطاقة ائتمان - تجربة لمدة 15 يومًا

قيادة جهود التوطين في شركة برمجيات كبيرة أمر صعب بحد ذاته. ماذا يحدث عندما تتحول هذه الشركة إلى ممارسات Agile؟ حسناً، تصبح التحديات أكثر صعوبة، ويجب عليك تنفيذ تغييرات جذرية بسرعة. في هذه الدراسة الحالة، Ekaterina Galitskaya و Darya Egorushkina من Kaspersky فريق التوثيق والتوطين يغوصون في رحلتهم لزيادة قدرات وكفاءة عملياتهم باستخدام Smartcat.

نص إضافي بقلم إيكاترينا وداريا

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

الخبز

مثل العديد من الشركات الأخرى، تحولت Kaspersky في مرحلة ما إلى ممارسات التطوير Agile. أدى ذلك بطبيعة الحال إلى دورات إصدار أقصر بكثير. إذا كنا في السابق نطرح إصدارات جديدة من التطبيق كل بضعة أشهر، أصبح ذلك الآن مرة كل أسبوعين. صحيح أن عدد السلاسل في كل إصدار جديد أصبح أقل، لكن ذلك لم يساعد كثيرًا: كان لا يزال علينا إخضاع هذه السلاسل القليلة لعملية الترجمة والتدقيق اللغوي الكاملة، مع مواجهة مواعيد نهائية أكثر ضيقًا.

هناك أيضًا اعتقاد خاطئ شائع بأن تطبيقات الهاتف المحمول لا تتضمن سوى كمية قليلة من النصوص. نتمنى ذلك! في حالتنا، على سبيل المثال، كان لدينا في المتوسط حوالي 25000 كلمة لكل تطبيق في نصوص واجهة المستخدم وحدها، مضروبة في حوالي 10 تطبيقات، وحوالي 20 لغة مستهدفة لكل تطبيق. كل ذلك مع وصول نصوص جديدة لواجهة المستخدم والوثائق كل أسبوع.

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

في Kaspersky، تتكون عملية التوطين عمومًا من مرحلتين: الترجمة والاختبار اللغوي.

كانت المشكلة العامة في مرحلة الترجمة هي وجود الكثير من العمل اليدوي، بسبب كل من العملية المستخدمة وقيود أداة الترجمة بمساعدة الكمبيوتر (CAT). على وجه التحديد:

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

  • كان من المستحيل ضمان الاتساق عبر التطبيقات واللغات.

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

  • أصبح فشل البناء بسبب أخطاء في "غير القابل للترجمة" والأقواس المفردة غير المتهربة والأخطاء البشرية الأخرى مشكلة متزايدة.

أما بالنسبة لمرحلة الاختبار اللغوي، فقد تستغرق ما يصل إلى أسبوعين، مقارنة بثلاثة إلى خمسة أيام استغرقتها الترجمة الفعلية. "ما هو الاختبار اللغوي؟" قد تتساءلون.

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

لذا، فإن الاختبار اللغوي يتضمن فحص جميع شاشات التطبيق الناتجة يدويًا، عادةً عن طريق لقطات الشاشة. ويساعد ذلك في تحديد مشكلات مثل

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

  • النص لم يترجم، إما بسبب خطأ من المترجم أو لأنه تم ترميزه بدلاً من إضافته كـ string،

  • النص المترجم في سياق خاطئ، على سبيل المثال، عندما يكون النص الموجود على زر — مثل "تنزيل" — صيغة أمر بدلاً من صيغة المصدر.

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

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

كان لدينا خياران:

1. توظيف عمال ذوي خبرة قليلة وتقليل حجم أعمال الترجمة — مما يؤدي بطبيعة الحال إلى انخفاض الجودة، أو
2. أتمتة العملية.

اخترنا الخيار الثاني.

لماذا Smartcat

عند اختيار حل CAT/TMS، كانت أولوياتنا القصوى هي:

  1. تقليل عدد الموافقات الداخلية — الموافقة على الميزانيات، وإنشاء مفاتيح تسلسلية، وما إلى ذلك،

  2. ميزات أساسية جاهزة للاستخدام — حتى نتمكن من البدء في استخدامه على الفور دون انتظار تطوير المزيد من الميزات،

  3. متطلبات خادم خفيفة الوزن — مرة أخرى، لتجنب الموافقات المطولة،

  4. مدخل إلى الخدمة ميسور التكلفة، ويفضل أن يكون مجانيًا.

  5. دعم كافٍ من جانب الخدمة حتى لا نضطر إلى توظيف مطور داخلي،

  6. متطلبات الأمان — نحن نتصل بها، وليس العكس،

  7. دعم متعدد الفروع — لترجمة عدة ميزات في وقت واحد،

  8. ترجمات إضافية ممكنة بالتوازي مع الدفعة الأصلية.

عندما قمنا بتجميع قائمة مختصرة بالخيارات، انتهى بنا الأمر باختيار اسمين فقط: Smartcat و Zing، وهو خادم ترجمة مستمر من مبتكري Evernote.

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

لذا كان Smartcat هو الخيار الأمثل. نظرًا لأنه لا يُسمح لنا بربط أدوات CAT مباشرةً بنظام VCS الداخلي لدينا، فقد اخترنا استخدام حزمة Smartcat–Serge. (Serge هو برنامج مفتوح المصدر يقوم بمزامنة السلاسل بين أنظمة التحكم في الإصدارات وإدارة الترجمة. وهو يحدد السلاسل في الملفات ذات التنسيقات المختلفة ويحولها إلى تنسيق PO القياسي في الصناعة، ثم يغذيها إلى Smartcat. يمكننا تثبيته مباشرة على خوادمنا، بحيث لا تخرج أي من معلوماتنا السرية إلى الخارج.)

إليكم ما أعجبنا أكثر في الحل النهائي:

  • يدعم جميع متطلباتنا: خطوط أنابيب متعددة الفروع، ترجمات إضافية، أمان، إلخ.

  • نحصل على التحديثات على الفور، دون الحاجة إلى تنزيل أو تثبيت أي شيء،

  • يمكننا إنشاء مخططات تحليل خاصة بنا للسلاسل بفضل حزمة Smartcat–Serge،

  • يمكننا التحدث إلى المترجمين الذين يعملون على مستنداتنا دون مغادرة المنصة،

  • يمكننا العثور على مترجمين مستقلين مباشرة على سوق المنصة، إذا احتجنا في أي وقت إلى زيادة الإنتاج،

  • يمكننا الدفع لجميع اللغات والمشاريع بفاتورة واحدة فقط,

  • نحن نحب الدعم الذي نحصل عليه — فقد ساعدنا فريق Smartcat في تجهيز سير العمل لدينا وتشغيله، كما أعطى الأولوية لبعض الميزات التي كانت مهمة بالنسبة لنا،

  • الخدمة مجانية تقريبًا — اخترنا في النهاية الاشتراك بسبب ميزة البحث عن النصوص على مستوى المشروع، ولكن هذه الخطوة كانت اختيارية.

بعض التحديات التي واجهناها كانت:

  • في البداية، لم نتمكن من البحث عن نص داخل جميع مستندات المشروع — لم يعد هذا مشكلة، حيث قامت Smartcat منذ ذلك الحين بتنفيذ هذه الميزة،

  • أحيانًا يفوت المترجمون المستقلون أو يتجاهلون الإشعارات التي تفيد بتحديث مستند المشروع، لذلك يتعين علينا إرسال تذكيرات لهم يدويًا عبر الدردشة المدمجة،

  • يتعين على مدير المشروع إرسال دعوات يدويًا إلى المترجمين — لكننا سمعنا أن هذه الخطوة ستصبح آلية قريبًا.

بالنظر إلى تجربتنا مع Smartcat حتى الآن، نأمل أن فريقهم يعمل بالفعل على معالجة هذه المشكلات.

قبل وبعد

لوضع الأمور في نصابها الصحيح، إليكم مقارنة بين ما كان لدينا وما لدينا الآن، من حيث العمليات والأرقام على حد سواء.

العملية

قبل

قبل إجراء التغييرات، كان علينا اتخاذ ما يقرب من 30 خطوة عبر مراحل الترجمة والاختبار اللغوي:

الترجمة:

  1. الحصول على نصوص من فروع مختلفة في التمثيل — يدويًا،

  2. إنشاء دلتا للترجمة — يدويًا،

  3. إنشاء حزم للترجمة،

  4. قم بتحميلها على خادم FTP،

  5. اكتب عددًا كبيرًا من رسائل البريد الإلكتروني إلى الوكالات أو المستقلين أو المكاتب المحلية،

  6. احصل على الترجمة من خادم FTP بمجرد أن تصبح جاهزة،

  7. قم بتحميلها في أداة CAT وتأكد من أن كل شيء يبدو على ما يرام،

  8. تحميل السلاسل المترجمة إلى المستودع مع محاولة عدم خلط الفروع — يدويًا،

  9. تشغيل عملية إنشاء، وإصلاح الأخطاء، وإكمال عملية الإنشاء،

  10. طلب ترجمات إضافية — تكرار نفس العملية مرة أخرى بشكل أساسي.

الاختبار اللغوي:

  1. ابدأ عملية البناء وانتظر حتى تكتمل،

  2. أعد تشغيل عملية البناء إذا فشلت بسبب أخطاء في الترجمة،

  3. قم بتكوين بيئة اختبار خاصة، إذا لم يكن هناك قائمة تصحيح أخطاء،

  4. التقط جميع لقطات الشاشة ذات الصلة لأكثر من 20 لغة،

  5. اكتشف، مع فريق ضمان الجودة، كيفية الحصول على لقطات الشاشة التي لا تزال مفقودة،

  6. قم بإنشاء حزم لقطات الشاشة وتسميتها،

  7. قم بتحميلها على خادم FTP،

  8. قم بتعيين مهام لوكالات الترجمة للتحقق من الترجمات،

  9. الإجابة على أسئلة الوكالات،

  10. قبول المهام وإجراء التغييرات،

  11. القيام بالبناء — الذي يستغرق وقتًا طويلاً في بعض الأحيان،

  12. إعادة البناء في حالة وجود أخطاء،

  13. التقاط لقطات شاشة للاختبار التراجعي،

  14. مرة أخرى، تحميل لقطات الشاشة وتعيين المهام لوكالات الترجمة،

  15. مرة أخرى، مناقشة كل شيء مع الوكالات،

  16. مرة أخرى، إجراء جولة أخرى من الاختبار التراجعي إذا كانت هناك تغييرات في الترجمة.

بعد

الآن لدينا تسع خطوات فقط في جميع المراحل:

  1. يقوم كاتب النصوص بتسجيل سلاسل جديدة في Git. يقوم Serge تلقائيًا بإدخال السلاسل إلى Smartcat،

  2. يقوم مدير مشروع التوطين بتعيين المترجمين،

  3. يقوم المترجمون بالترجمة في سياقها — مع لقطات شاشة وتعليقات في متناول أيديهم،

  4. يقوم مدير مشروع التوطين بمراجعة الترجمة وتأكيدها، ثم تعود الترجمة تلقائيًا إلى Git،

  5. يقوم فريق التوطين بتشغيل روبوت التقاط لقطات الشاشة للميزات للنصوص المترجمة،

  6. يقوم فريق الترجمة بوضع لقطات الشاشة المترجمة على خادم FTP وإرسالها إلى اللغويين،

  7. يقوم اللغويون بمراجعة الترجمات وتصحيحها إذا لزم الأمر أثناء النظر إلى لقطات الشاشة المترجمة،

  8. تنتقل التغييرات تلقائيًا إلى Git،

  9. يقوم فريق الترجمة بإغلاق طلب السحب.

هذا كل شيء — مع هذا التخفيض الثلاثي في التعقيد، نشعر حقًا بالفرق مقارنة بما كان لدينا من قبل!

الأرقام

جميع الأرقام هي لكل إصدار — كل أسبوعين — ولكل تطبيق واحد.

الخطوة

ساعات قبل

ساعات بعد

جمع سلاسل من جميع الفروع

1

-

إنشاء دلتا تحتوي على سلاسل جديدة أو محدثة فقط وتحميلها إلى أداة CAT لأكثر من 20 لغة

4

0.25

إنشاء حزم ترجمة لأكثر من 20 لغة

0.5

-

تحميل حزم الترجمة إلى خادم FTP لأكثر من 20 لغة

0.5

-

التواصل مع الوكالات/المترجمين للتأكد من قدرتهم على تولي المهمة، لأكثر من 20 لغة

2–3

تعيين المهام للوكالات/المترجمين مباشرة على المنصة

-

0.25

الإجابة على أسئلة المترجمين

2–4

0.5

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

1

0.25

تشغيل بنية

حتى 8

0.25

ترجمات إضافية

8

0.25

الحصول على لقطات شاشة

16–32

8 باستخدام أداة التقاط الشاشة التلقائية

تحميل لقطات الشاشة إلى خادم FTP

8

1

التواصل مع الوكالات/المترجمين والحصول على ترجمات ثابتة

8

1

تحديث ملفات الموارد

8

2

اكتب التغييرات في Git

8

0.25

الوقت الإجمالي لكل إصدار لكل تطبيق

84 ساعة

14 ساعة
أقل بست مرات!

المكافآت

تشمل المزايا الإضافية — التي لم نكن نتوقع بعضها — ما يلي:

  • بنى أكثر موثوقية: بفضل placeholders، لم نعد بحاجة إلى القلق بشأن ترجمة النصوص غير القابلة للترجمة أو عدم تجاهل الفواصل العليا، وما إلى ذلك.

  • اكتشفت Smartcat بعض الأخطاء القديمة بفضل إعدادات الأخطاء الحرجة.

  • عدم إضاعة وقت وموارد الآخرين: لم نعد بحاجة إلى أخذ أجهزة الاختبار من فريق ضمان الجودة أو استغراق وقت فريق التطوير في التقاط لقطات الشاشة.

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

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


الملحق. نصائح وأفكار

فيما يلي بعض الخطوات الملموسة التي اتخذناها بعد تطبيق Smartcat. نضعها هنا كـ"ورقة مرجعية" للشركات والفرق الأخرى التي ترغب في اتباع خطواتنا. ليست جميعها سهلة التنفيذ، ولكن معظمها سيساعد في جعل عملية التوطين أكثر سلاسة وأقل عرضة للأخطاء.

التكامل:

  • اختبر تكامل Git–Serge–Smartcat للتأكد من وصول جميع السلاسل إلى مشاريع Smartcat والعودة منها. فأنت لا تريد أن تواجه مفاجآت في مرحلة الإنتاج.

  • اتفق مع مهندسي البرمجيات على تسمية الفروع. بهذه الطريقة، ستتمكن من إعداد روبوت يبحث عن الفروع المحددة التي تحتاج إلى ترجمة — مما يوفر عليك وعلى المطورين ساعات من وقت التواصل.

  • قم بتخصيص محللات Serge الافتراضية إذا لزم الأمر. على سبيل المثال، جعلنا معرّفات السلاسل والتعليقات والروابط إلى لقطات الشاشة المرجعية مرئية للمترجمين.

  • أنشئ مهمة cron للعثور على فروع الترجمة وفقًا لقناع الاسم المتفق عليه أعلاه.

  • فكر في اختبار واجهة المستخدم والتقاط لقطات شاشة للميزات باستخدام إطار عمل Kaspresso. على سبيل المثال، يضع مطورونا رابطًا إلى لقطة شاشة لكل سلسلة يستخدمونها. عندما يصل الملف إلى Smartcat، يتم وضع رابط لقطة الشاشة تلقائيًا في علامة التبويب "تعليقات". يمكنك قراءة المزيد عن Kaspresso وأسباب استخدامه هنا.

الترجمة والتجارب اللغوية:

  • إذا كان لديك مسارد مصطلحات، قم بتحميلها إلى Smartcat لضمان الاتساق في جميع ترجماتك.

  • أضف لغوييك الداخليين حتى يتمكنوا من استكشاف المنصة وتعلم أساسياتها قبل أن يحصلوا على مهام فعلية منك.

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

  • عند الضرورة، ابحث عن وكالات ترجمة لتلبية احتياجات الترجمة أو الاختبار الإضافية.

نأمل أن تكون هذه النصائح مفيدة — أخبرنا إذا كان لديك بعض النصائح الخاصة بك!

💌

اشترك في النشرة الإخبارية لدينا

البريد الإلكتروني *

Kacie Saxer-Taulbee
حرره
Kacie Saxer-Taulbee

Kacie Saxer-Taulbee is Director of Growth at EverQuote and a data-informed content leader with a background in high-scale B2B SaaS, legal tech, and insurtech. As former Director of Content and Strategic Brand at Smartcat, she led global storytelling efforts connecting thought leadership with AI-powered localization and multilingual communication.

تعرّف على سياساتنا التحريرية

Nicole DiNicola
راجعه
Nicole DiNicola

Nicole DiNicola is Senior Director of Product Marketing at Progress Software and a high-performing, empathetic global marketing leader with over 15 years of experience in B2B technology. She previously served as Global VP of Marketing at Smartcat, leading global marketing strategy, growth, and enablement for AI-powered content and localization solutions.

تعرّف على سياساتنا التحريرية

المعايير التحريرية

لماذا يمكنك الوثوق بـ Smartcat

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

  • يكتبه مختصون، وليس بالاعتماد على الذكاء الاصطناعي فقط
  • يتم التحقق من الحقائق وفق أحدث مواصفات Apple و ICU
  • يتم تحديثه عند تغيّر مجموعات SDK أو سياسات المتاجر أو سير العمل
اقرأ معاييرنا التحريرية
100+تقييمات 5 نجوم
★★★★★ G2 · 4.6 / 5
«كان هذا أحد استثماراتنا الأولى في الذكاء الاصطناعي. ما كان يستغرق أسابيع أصبح يستغرق دقائق — تعمل الترجمة بالتوازي مع بقية العمل، ويتولى فريق التسويق إدارتها من البداية إلى النهاية.»
OS
Ollie Scheers

المدير التقني في Huel

تابع القراءة

كل المقالات →

لماذا تُعد عمليات المحتوى «الحدود الجديدة» في مجال الذكاء الاصطناعي المؤسسي

Claire Foster

كيفية ترجمة موقع ويب يعمل بنظام ووردبريس

Maksym Ostapenko

نظرة من داخل فعالية «Lunch & Learn» في eBay: كيف يعمل فريق التعلم والتطوير العالمي على توسيع نطاق التوطين باستخدام Smartcat

Loie Favre

تعرّف على Smartcat

ترجم كل شيء إلى كل لغة يتحدث بها عملاؤك.

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

احجز عرضًا توضيحيًا

ابدأ تجربة مجانية