كيف تطلق المنتجات باستمرار في 20 لغة ولا تموت؟

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

صورة

من نحن


مرحبا جميعا! نحن Ekaterina Galitskaya و Daria Egorushkina من Kaspersky Lab (قسم التوثيق والتعريب). أكثر تحديدًا بقليل: الفريق الذي نعمل فيه مسؤول عن كتابة وترجمة نصوص الواجهة والمساعدة في تطبيقات الهاتف المحمول.

ألم


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

بيانات المصدر.

التوقيت


استغرقت دورة التوطين 3 أسابيع:

  • 3-5 أيام - النقل ؛
  • 2 أسابيع - اختبار لغوي.

مع الترجمة ، كل شيء واضح ، ولكن لماذا الاختبار اللغوي ، وما هو كل هذا؟

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

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

أحجام


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

  • النصوص في الواجهة - بمعدل 25 ألف كلمة في المشروع ؛
  • 10 تطبيقات ؛
  • في المتوسط ​​19 توطينًا في كل مشروع ؛
  • تحديث النصوص في الواجهة وترجمة الوثائق كل أسبوع.

لماذا لا تتسارع؟


دعونا نرى ما تتكون كل مرحلة من مراحل التوطين. خطوة الترجمة (9 خطوات):

  1. اختر من VCS يدويًا من وجبات الفطور والغداء المختلفة ؛
  2. إنشاء دلتا ترجمة يدويًا ؛
  3. إنشاء حزم الترجمة ؛
  4. تحميل لبروتوكول نقل الملفات ؛
  5. كتابة مجموعة من الرسائل إلى الوكالات والمستقلين والمكاتب المحلية ؛
  6. بعد الاستلام من FTP ، تحميل إلى CAT ، تحقق ؛
  7. ضع في VCS - لا تخلط في وجبات الغداء ؛
  8. بدء التجميع ، إصلاح الأخطاء ، إعادة بناء التجميع ؛
  9. بدء الترجمات الإضافية وإصلاح الأخطاء في تلك الحالات التي كان يجب فيها إعادة تشغيل عملية الترجمة.

مشاكل مرحلة الترجمة: باختصار ، إنها قيود على العمليات القديمة والكثير من العمل الروتيني عند استخدام CATs القديمة:

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

مرحلة الاختبار اللغوي (19 خطوة):

  1. قم بتشغيل التجميع وانتظر حتى.
  2. , .
  3. , -.
  4. .
  5. 20+ .
  6. , .
  7. — .
  8. FTP.
  9. .
  10. .
  11. .
  12. .
  13. ( ).
  14. .
  15. ( , ).
  16. .
  17. FTP.
  18. .
  19. (, ) .

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

بالإضافة إلى ذلك ، كان هناك عامل بشري.

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

كان علينا البحث عن حل ، وفي الوقت نفسه بسرعة كبيرة. ما هي خيارات الحل؟ يمكن ان تكون:

  • توظيف المزيد من الطلاب ؛
  • تقليل عدد أعمال التوطين (وبالتالي جودة التبذير) ؛
  • أتمتة المهام الروتينية.

استقرنا على هذا الأخير.

ماذا أردت


لم يكن لدينا مائة عام للجلوس ، وصب كوب من القهوة ، ولفّ سواعدنا والبدء في تحليل سوق الحلول السحابية بالكامل في غضون عام. كنا نبحث عن حل جاهز لبدء العمل غدًا. كان هدفنا هو حل المشكلة.

ما المتطلبات الأخرى التي لدينا:

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

من بين الخيارات المختلفة ، نظرنا عن كثب إلى Zing (خدمة ترجمة من مطوري Evernote).

من الايجابيات :
  • إمكانية التخصيص لنفسك ؛
  • حزمة تثبيت مجانية - كانت هناك حاجة إلى قدرات الخادم فقط ؛
  • بدون رسوم شهرية
  • توصيل المترجمين
  • الوصول الخاص (يمكن استضافتها داخليا).

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


ماذا اخترت


نظرًا لأنه لا يمكننا توصيل نظام CAT مباشرةً بنظام التحكم في الإصدار الداخلي ، فقد احتجنا إلى موصل مختلف. يمكنك أن تكتب نفسك أو تأخذ واحدة موجودة. لذلك قمنا باختبار مجموعة من Git - Serge - Smartcat.

من الايجابيات :

  • دعم للعمل مع وجبات غداء متعددة.
  • تحديث الموارد على الطاير.
  • الاستقلال عن CAT Parsers (كتابة ملفات التكوين من جانبنا). Smartcat يترك ملفات PO.
  • المراسلات مع المستقلين عمليا "في نافذة واحدة".
  • هناك بحث واختيار المستقلين (الاتصال المباشر ، واختيار احتياجات المشروع - في حالتنا ، سرعة وجودة الترجمة مهمة).
  • يمكنك الدفع مقابل العمل بجميع اللغات والمشاريع في حساب واحد.
  • بناء على طلبنا ، رفعوا الأولوية في تطوير الميزات الجديدة: قدموا ميزات جديدة (البحث النصي في جميع ملفات المشروع ، وما إلى ذلك) ، وحلوا بعض المشاكل.
  • TechSupport السريع - المساعدة في الإعداد.
  • في الواقع الوصول المجاني إلى الخدمة (الاشتراك اختياري).
  • الفحوصات.

السلبيات :

  • لم يكن هناك بحث نصي داخل المشروع بأكمله (وقد يكون هناك أكثر من 1000 ملف في المشروع). لكن مطوري Smartcat قدموا هذه الميزة في نهاية العام الماضي.
  • لا يمكنك فتح مستندات متعددة في علامة تبويب متصفح واحدة.
  • يمكن أن تصل ملفات الموارد (المستندات في Smartcat) بلغة واحدة إلى 200. يحتاج المستخدم إلى تصحيح الترجمات بعد التحقق من النص في لقطات الشاشة. لا يعرف المستخدم في أي مستند القطعة. لذلك ، يحتاج المستخدم إلى فتح جميع مستندات 200 والبحث عن هذا الخط.
  • لا تزال هناك مشكلة في إشعارات المستقلين: يقومون بإيقاف تشغيلها ولا يتلقون إشعارًا بتحديث المستند. في هذه الحالة ، ما زلنا نكتب في الدردشة.

ماذا فعل وكيف أصبح


باختصار - غيرت عملية العمل مع نصوص الواجهة :) ماذا فعل:

  • اختبرت مجموعة من Git - Serge - Smartcat.
  • اتفقنا مع المطورين على قواعد تسمية وجبة الإفطار للكتاب والمحليين (وهذا ضروري لإزالة المراسلات مع المطورين ، وكذلك لتكوين قواعد locobot).
  • ( 25  — , 20+ ).
  • Smartcat, Serge.
  • .
  • Serge: ID , , .
  • cron, () .
  • - ().
  • , : , , .
  • Monorepo: Serge .
  • قام المطورون لدينا بتنفيذ ميزة التقاط لقطات الشاشة استنادًا إلى إطار Kaspresso . وهذا ما سمح لنا حل ليس فقط مشكلة مع autoscreenshots * ، ولكن أيضا لجعل السياق للمترجمين. لذلك ، لكل سطر جديد في الملف ، يتم إضافة رابط إلى لقطة شاشة لفهم مكان وكيفية استخدام هذا الخط الجديد. عندما "يطير" الملف بخطوط جديدة إلى Smartcat ، تقع الروابط إلى لقطة الشاشة في حقل "التعليقات على المقطع".

كيف تبدو الترجمة الآن (9 خطوات لكل شيء):

  1. الكاتب يرتكب أسطر جديدة في جيت. تتم معالجة السلاسل تلقائيًا وتطير بعيدًا في Smartcat.
  2. يعين المترجم المترجمين (ستنتهي هذه الخطوة قريبًا ، هل هذا صحيح يا شباب من Smartcat؟))))
  3. لا يترجم المترجمون ذلك فحسب ، بل أيضًا باستخدام لقطات الشاشة - أي في السياق.
  4. التحقق من الترجمة المحلية (جعل ملف كامل). يستعيد الروبوت الترجمة ليس سطرا ، ولكن عندما ينتهي العمل على الملف بأكمله. ترجع الترجمة تلقائيًا وترسل إلى Git.
  5. يقوم المحليون بتشغيل لقطات تلقائية.
  6. يقوم المحليون بتحميل لقطات شاشة إلى FTP.
  7. يجيب المحللون على أسئلة اللغويين.
  8. يقوم المحليون ، إذا لزم الأمر ، بإجراء تغييرات على Smartcat. يتم تنفيذ التعديلات تلقائيًا في Git.
  9. إغلاق إغلاق طلب السحب.

بالطبع ، لا يزال هناك مجال للأتمتة والتحسينات. ولكن يمكنك بالفعل أن تشعر بالفرق مع ما كان أولًا.

ما هو سيرج


هذا حل مفتوح المصدر ، وموصل بين نظام التحكم في الإصدار (SVN ، Git ، Gerrit (نظام مراجعة التعليمات البرمجية القائم على Git) ، Mercurial) و TMS ، في حالتنا Smartcat.

لماذا نحن "مسجلون الدخول": كل سحابة TMS لها موصل خارج الصندوق. لكن هذه الموصلات المعبأة تتصل مباشرة بالمستودع. وهو أمر مستحيل في حالتنا. ما هي الخيارات:

  • الكشف عن جزء من نظام التحكم في الإصدار ؛
  • استنساخ المجلدات مع ملفات الموارد للوصول العام ؛
  • استلام ومعالجة ملفات الموارد قبل إرسالها إلى TMS ، ثم تصديرها إلى TMS.

الكشف عن جزء من النظام محفوف بالمخاطر.

من الممكن عمل استنساخ ، وهذا فقط يتطلب موارد مؤقتة وبشرية.

إن Serge قادر فقط على تلقي ملفات الموارد ومعالجتها قبل إرسالها إلى TMS. ونتيجة لذلك ، فإن الهندسة المعمارية هي كما يلي: Git - Serge - TMS.

يأخذ Serge الملفات من Git ويعالجها وفقًا لقواعد معينة. ثم يقوم بتحويلها إلى تنسيق PO وإرسالها إلى Smartcat. يحصل Serge على ملفات PO المترجمة من Smartcat ، ويحولها ويلتزم بـ Git.

بالإضافة إلى ذلك ، فإن ميزة سيرج الكبيرة بالنسبة لنا هي أنه يتم نشرها داخل شركتنا. وهكذا يبقى "المطبخ" بأكمله خلف جدار حجري. لا شيء يخرج سر :)

الميزات الرئيسية:

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

يمكنك التعرف على الميزات الأخرى لـ Serge على موقع الويب أو مشاهدة الفيديو .

ملخص


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

النتائج والأرقام


المسرحكم ساعة كانت (2018)كم ساعة أصبحت (نهاية 2019)
جمع خطوط من جميع وجبات الغداء. يدويًا10
احصل فقط على خطوط جديدة أو متغيرة للتكرار ، قم بتحميلها في أداة CAT القديمة لـ 20 لغة40.25
إنشاء حزم الترجمة. كرر لمدة 20 لغة.0.50
تعيين المهام للوكالات / المترجمين. لغة واحدة = وكالة واحدة.20
قم بتنزيل الحزم مع ترجمة FTP لكل لغة. كرر لمدة 20 لغة.0.50
شطب ، والحصول على تأكيد من الوكالة / المترجم أن المهمة قد اتخذت. كرر لمدة 20 لغة.2-30
أجب على أسئلة المترجم. كرر لمدة 20 لغة.2-40.5
اقبل الترجمة لكل لغة10.25
تشغيل البناء<8 (تحرير الأخطاء من أداة CAT القديمة)0.25
ترجمة إضافية (كرر كل ما سبق)80.25
احصل على لقطات شاشة16-32 (يدويًا بنفسك)8 (لقطة شاشة تلقائية)
تحميل إلى FTP81
الدردشة مع الوكالة / لحسابهم الخاص81
تحرير الموارد82
صب التغييرات في البوابة80.25
وقت نقي8414

المكافآت:

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

بالإضافة إلى ذلك ، سمحت مجموعة من Git - Serge - Smartcat بترجمة عمل كتاب UX إلى Smartcat. كيف فعلنا ذلك ، سنخبرنا في المقالة التالية :).

* المزيد عن لقطات تلقائية: كتب زملاؤنا الاختبارات الذاتية وأنشأوا Kaspresso ، إطار عمل للاختبارات الذاتية . فقط يتم عمل لقطة تلقائية ، والتي نستخدمها في التوطين. كمنتج ثانوي للاختبارات الذاتية.

All Articles