Mudlet: توقف عن فقدان الترجمات عند التعديل

تم إنشاؤها على ٧ سبتمبر ٢٠١٨  ·  28تعليقات  ·  مصدر: Mudlet/Mudlet

ملخص موجز للمشكلة / وصف العنصر المطلوب:

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

خطوات إعادة إظهار المشكلة / أسباب إضافة الميزة:

  1. قم بتحميل الملفات إلى Crowdin ، وابدأ في الترجمة
  2. تعديل السلاسل المترجمة في مصدر جيثب
  3. مراجعة Crowdin. اختفت الترجمات!

ناتج الخطأ / النتيجة المتوقعة للميزة

تشرح Crowdin Knowledge Base هذا:

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

يتحدث هذا القسم تحديدًا عن تحديث ملف يدويًا عبر موقع Crowdin.
كيف يمكن أن يبدأ هذا الحوار عندما تصل الملفات المحدثة عبر تكامل جيثب؟

معلومات إضافية ، مثل إصدار Mudlet ونظام التشغيل والأفكار حول كيفية الحل / التنفيذ:

مثال على التغييرات الأسبانية من المجموعة
1

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

لا يزال بإمكان المترجمين رؤية "so" كاقتراح ، إذا بذلوا جهدًا للنقر فوق كل سلسلة مفردة مرة أخرى (بما في ذلك أولئك الذين لم تتم ترجمتهم بعد) ، ولكن الاقتراح بين الاقتراحات الأخرى ولم يتم وضع علامة "هذا تم ترجمة هذه السلسلة بالذات من قبل "

2

discussion i18n & l10n

التعليق الأكثر فائدة

شكرا لك ، أقدر :) سوف ندرس هذا.

ال 28 كومينتر

أي فكرة عن كيفية العلاج؟ @الحشد في

أين ترسم الخط الفاصل بين الاحتفاظ بالترجمة أو التخلي عنها؟

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

بالضبط ، يجب رسم هذا الخط بشكل فردي لكل سلسلة ، كما تقترح لقطة الشاشة من Crowdin.

أود أن أرحب بخيار للمترجمين لبدء هذا الحوار المنبثق بعد سحب السلاسل من جيثب.

في الوقت الحالي ، لا يمكنهم حتى التمييز ، بين السلاسل التي تمت ترجمتها سابقًا ، لإصلاح عملية السحب بسرعة.

لا أشعر أنه من المعقول قضاء ساعات في كل تعديل والبحث عن الترجمات التي تعطلت.

عند استخدام Linguist الخاص بـ Qt (أو بالأحرى lupdate ) لتحديث مجموعة من ملفات .ts الخاصة بلغة معينة من شفرة المصدر مباشرةً ، فإن lupdate لديه خيار:

          Drop all obsolete and vanished strings.

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

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

مرحبا جميعا،

يرجى الانتباه إلى أنه يمكنك حفظ الترجمات لسلاسل معدلة عند تحديث الملف عبر CLI / API / GitHub أيضًا ، من خلال تحديد معلمة update_option في ملف التكوين ( crydin.yml ) المخزن في الريبو الخاص بك.

مزيد من المعلومات:
https://support.crowdin.com/configuration-file/#changed -strings-update

بعد إجراء التغيير ، يرجى الإيقاف المؤقت واستئناف التكامل في Crowdin لتطبيق التغييرات

آمل أن يكون هذا بالضبط ما تحتاجه!

شكرا للإستجابة!

Kebap أي خيار تريد؟

شكرا يا شباب. هذا رائع. سنراجع الخيارات بالتفصيل.

أرغب في تجربة الخيار "update_as_unapproved" ، يبدو أن هذا حل وسط جيد: تظل الترجمات كما هي ، لكنها تفقد حالة الموافقة عليها.

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

ومع ذلك ، يبدو أن Crowdin للأسف مجرد استبدال السلاسل ، بدلاً من الاحتفاظ بترجماتها وإزالة الموافقة فقط. هل أفعل ذلك خطأ؟

سلسلة سبق لها ترجمة وموافقة (يبدو أن الموافقة غير مرئية في ملف ts.؟)
image

تم اختبار خيار التحديث "update_as_unapproved" بتخطيط yaml القصير والطويل ، وكلاهما لنفس النتيجة
image

بعد تعديل السلسلة (أو التعليق) ، يعرض Crowdin الآن سلسلة معدلة بدون ترجمة وموافقة
image

أبلغ Crowdin Diff عن السلاسل باعتبارها "محذوفة ومضافة" لم "تم الاحتفاظ بها ولكنها فقدت موافقتها"
image

- الرجاء الرد فوق هذا الخط -

        Hi everyone,

يبدو أن المشكلة تكمن في أن ملفات html و
.ts. لا تحتوي الملفات من هذا النوع على هيكل KEY: VALUE واضح ،
لذلك عند تحديث الملفات ، تكون كل سلسلة تم تغييرها
تعتبر سلاسل جديدة. إنه السلوك المتوقع للنظام ،
لكني سأطلب المطورين إذا كان هناك شيء يمكن القيام به في هذا
حالما يكونون في المكتب!

كيف تقيم ردي؟
عظيم [1] حسنًا [2] ليس جيدًا [3]

-
بإخلاص،
أولغا كوتا
مدير نجاح العملاء

الروابط:

[1]
https://secure.helpscout.net/satisfaction/204306672/record/1818790773/1/
[2]
https://secure.helpscout.net/satisfaction/204306672/record/1818790773/2/
[3]
https://secure.helpscout.net/satisfaction/204306672/record/1818790773/3/

    > On Sat, Sep 8, 2018 at 1:34:23 EEST, Mudlet/mudlet <[email protected]> wrote:

أرغب في تجربة الخيار "update_as_unapproved" ، يبدو أنه ملف
حل وسط جيد: تظل الترجمات سليمة ، لكنها تفقد الموافقة عليها
الحالة.

الآن ، عندما اختبرت هذا ، لا يبدو أنه يعمل. لا تزال الخيوط مفقودة
ترجماتهم. حتى أنني ذهبت إلى أبعد من ذلك لتحسين تلقائي
إنشاء تخطيط موجز لملف التكوين yaml [1] ، وذلك ل
تعكس بالضبط المثال الوارد في قسم قاعدة المعارف [2]
مرتبط أعلاه.

ومع ذلك ، يبدو أن Crowdin للأسف مجرد استبدال
السلاسل ، بدلاً من الاحتفاظ بترجماتها وإزالة ملف
موافقة. هل أفعل ذلك خطأ؟

سلسلة سبق لها الترجمة والموافقة (يبدو أن الموافقة
غير مرئي في ملف .ts؟)
[3]

تم اختبار خيار التحديث "update_as_unapproved" باختصار وطويل
yaml التخطيط ، كلاهما لنفس النتيجة
[4]

بعد تعديل السلسلة (أو التعليق) ، يظهر Crowdin الآن تم التعديل
سلسلة بدون ترجمة وموافقة
[5]

يبلغ Crowdin Diff عن السلاسل باعتبارها "محذوفة ومضافة" لم يتم الاحتفاظ بها ولكن
فقدوا موافقتهم "
[6]

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، أو اعرضها على GitHub [7] ، أو تجاهل ملف
خيط [8].

الروابط:

[1] https://github.com/Kebap/Mudlet/blob/crowdin-test/.crowdin.yml
[2]
https://support.crowdin.com/configuration-file/#changed -strings-update
[3]
https://user-images.githubusercontent.com/117238/45245753-12b3a300-b2fe-11e8-819a-fbc1cab389cd.png
[4]
https://user-images.githubusercontent.com/117238/45245828-632b0080-b2fe-11e8-8457-d16f53e62976.png
[5]
https://user-images.githubusercontent.com/117238/45245723-e7c94f00-b2fd-11e8-831d-14f3c0151aa8.png
[6]
https://user-images.githubusercontent.com/117238/45245651-843f2180-b2fd-11e8-8744-b431244e39e8.png
[7]
https://github.com/Mudlet/Mudlet/issues/1961#issuecomment -419583856
[8]
https://github.com/notifications/unsubscribe-auth/AA0k1tqzDWWwb2qGudFk9ENRg7Hm3D-Hks5uYvRcgaJpZM4WeaRq

نعم ، يستخدم Qt IDE ملفات .ts. بالتأكيد هذا ليس مكانة مناسبة. أي توصية من مطوري Crowdin؟

كانت التعليقات الواردة من كيو تي غير حاسمة:

(كباب) مرحباً بالجميع! هل سبق لأي شخص أن استخدم موقع خدمة على شبكة الإنترنت للتعامل مع الترجمات والمترجمين؟ نحن نستخدم Crowdin ويبدو أنها لا تعمل بشكل جيد مع تنسيق ملف Qt .ts. يبدو أنهم يعتقدون أن كل سلسلة تم تعديلها هي سلسلة جديدة وستحذف الترجمات القديمة. انظر الموضوع التالي للحصول على التفاصيل. كيف يمكننا حل هذا؟ https://github.com/Mudlet/Mudlet/issues/1961
(frkleint) Kebap: أوصي بالنشر على http://lists.qt-project.org/mailman/listinfo/localization القائمة البريدية
(Kebap) يبدو أن تلك القائمة البريدية تدور حول مشروع Translatin Qt نفسه. ومع ذلك ، ربما هناك أشخاص آخرون يبنون مشروعهم الخاص باستخدام Qt ويترجمون إلى لغات أخرى؟
(frkleint) Kebap: نعم ، لكن المشرفين / الأشخاص المناسبين سيقرؤونه

اسمحوا لي أن أتحقق من كل التفاصيل مرة أخرى ،Kebap. لدي "خطة ب" واحدة في رأسي ، وأحتاج إلى اختبارها بالرغم من ذلك.

هل سيكون مناسبًا لك تخزين النص المصدر / الترجمات في ملف عنصر من ملف .ts؟ في ال يمكن أن يكون لديك معرف سلسلة فريد على سبيل المثال

في الوقت الحالي نقوم باستيراد / تحميل ملف واحد mudlet.ts يحتوي على نص المصدر إلى CrowdIn ويقومون بمعالجة ذلك لإنتاج mudlet_xx_YY.ts حيث xx هو رمز اللغة المكون من حرفين و YY هو رمز بلد مكون من حرفين. أعتقد أن الأصل mudlet.ts تم إنشاؤه / تحديثه باستخدام الأداة المساعدة Qt lupdate التي يتم تشغيلها من مصدرنا ./translations الدليل كـ lupdate -locations absolute ../src/mudlet.pro -ts ./mudlet.ts {في الأقل من * nux OS}.

هناك بديل لكني لا أعرف ما إذا كان CrowdIn يمكنه العمل بهذه الطريقة التي نوفر بها ملفات .ts الفردية (حاليًا:

  • mudlet_de_DE.ts
  • mudlet_el_GR .ts`
  • mudlet_en_GB.ts
  • mudlet_es_ES.ts
  • mudlet_fr_FR.ts
  • mudlet_it_IT.ts
  • mudlet_nl_NL.ts
  • mudlet_pl_PL.ts
  • mudlet_ru_RU.ts
  • mudlet_zh_CN.ts
  • mudlet_zn_TW.ts

) إلى CrowdIn وجعلها / فريق الترجمة يعمل عليها. قد يعني هذا بعد ذلك أن جهود الترجمة الحالية يتم الاحتفاظ بها داخل كل ملف .ts - هذا هو في الواقع كيف تتصور Qt أن تتم الترجمة - لأن lupdate سيقوم بعد ذلك بتحديث كل ملف ترجمة فردي بالتغييرات من مصادر التعليمات البرمجية عند تشغيلها ولكنها لن تتجاهل (ما لم يتم إخبارها صراحة باستخدام الوسيطة -no-obsolete ) النصوص القديمة التي لم تعد تظهر في المصادر. الجانب السلبي لهذا هو أنه لا يوجد ملف مصدر واحد لجميع الترجمات التي قد تربك / لا تعمل مع نظام CrowdIn. الجانب الإيجابي هو أن # 1963 الفوري أصبح غير مشكلة حيث يمكننا إنشاء ملف الجمع mudlet_en_US.ts فقط وإدراجه في التحميل إلى CrowdIn عند الإصدار / الإصدار / أي تغيير ...

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

على الرغم من أنه يمكننا فقط تسمية ملفات الإدخال والإخراج بشكل مختلف؟

يمكن لـ Crowdin بالتأكيد التعامل مع ملفات إدخال متعددة ، كما هو الحال في ترجمة النصوص المختلفة. ومع ذلك ، في خطة SlySven ، سيكون لديهم جميعًا محتويات متطابقة. هذا يعني ، حتى فريق الترجمة البولندي سيرى جميع الملفات بما في ذلك mudlet_it_IT.ts و mudlet_ru_RU.ts ، إلخ. ومن ثم لم نواصل السير في هذا الطريق كثيرًا وبدلاً من ذلك اخترنا ملف ترجمة مركزيًا واحدًا.

تحرير: شرح إنشاء ملفات .ts صحيح ، لكن الأمر الحقيقي المستخدم هو: lupdate -recursive. \ src \ -ts. \ translationsmudlet.ts

لست متأكدًا مما تقصده هناك Vadim ، لكنني أعتقد أن Kebap على المسار نفسه - يمكننا إدخال جميع الملفات ولكن كيف يمكننا بعد ذلك أن نقول / نقول لـ CrowdId أنه يجب عرض mudlet_ru_RU.ts للمجموعة فقط مترجم روسي (روسيا) ؟

@ vadi2 أنت محق ، يوصى بتحميل ملف مصدر واحد ، سيقوم Crowdin بإنشاء الملفات المترجمة بنفسه.

الرجاء عدم تحميل ملفات مثل mudlet_ru_RU.ts في المشروع.

ربما يمكننا إعداد مكالمة لمناقشة ذلك علاوة على ذلك؟ الرجاء التواصل معي على andriy (at) crydin.com

لدي فكرة واحدة ستعمل بالتأكيد ، لكنني بحاجة إلى معرفة ما إذا كنت ستسعد بها. الشيء هو أن .ts لا تحتوي على معرّفات فريدة لكل سلسلة - كما هو الحال في .po ، الملفات التي يكون فيها msgid مصدرًا ومعرّفًا في نفس الوقت ، و <source> هو نص ومعرّف أيضًا (مع عناصر <context> و <name> ، تعتبر كل سلسلة فريدة ، وإذا قمت بتعديل <source> ، فإن السلسلة تعتبر جديدة ولا يمكنك الاحتفاظ بالترجمات للتعديل السلاسل في النتيجة).

على أي حال ، هناك حل / حل جيد جدًا أود مناقشته / شرحه لفريقك ؛)

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

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

عندما نترجم كل السلاسل في لغة ما إلى 100٪ ثم نعدل القليل منها في إصدار ، ألن يكون من السهل جدًا استعراضها وإعادة إضافتها مرة أخرى بفضل TM؟

تبدو هذه المشكلة وكأنها مشكلة حقيقية فقط لأننا لم نصل بعد إلى 100٪.

@ vadi2 في حالة رغبتك في الحصول على القدرة على ترجمة السلاسل المضافة حديثًا تلقائيًا بمساعدة TM ، يمكنك إعداد سير العمل هذا باستخدام ميزة مسارات العمل المتقدمة (لقد قمت بتمكينها لحسابك للتو)
https://support.crowdin.com/advanced-workflows/

شكرا لك ، أقدر :) سوف ندرس هذا.

كتب Kebap :

تحرير: شرح إنشاء ملفات .ts صحيح ، لكن الأمر الحقيقي المستخدم هو: lupdate -recursive. \ src \ -ts. \ translationsmudlet.ts

-recursive هي حالة الوسيطة الافتراضية وليست ضرورية - وكذلك الحال مع -locations absolute للملفات الجديدة على ما يبدو ...: قليلاً_ابتسامة_الوجه: - كنت أكتشف هذا أثناء التحقق لمعرفة التأثير المشاكل lupdate لا تزال تواجه مع C ++ 11/14 سلسلة حرفية أولية { QTBUG ، # 1310} وما إذا كانت السلاسل مفقودة من ملف mudlet.ts نتيجة لإرباكها .. . :عابس:

Kebap هل ما زالت هذه مشكلة؟

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

هناك أيضًا قدر من السباق في الوقت الحالي بينما معظم اللغات لم تقترب من 100٪ ، فهل ستترجم السلاسل بشكل أسرع مما تفقد الترجمات مرة أخرى؟

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

Andrulko هل لديك أي تحديثات هنا؟ لقد ذكرت خطة "ب" أعلاه ..

أيضًا ، لماذا يفعل Crowdin هذا السلوك الغريب في TM الآن !؟ انظر لقطة الشاشة أدناه للمقارنة.

كل ما قمنا بتغييره هنا هو h3 إلى a . لم يتم لمس أي علامة أخرى. الآن ماذا حدث؟

هل تتوقع أن يقوم المترجمون باستبدال كل {[=-lt;-=]}h2{[=-gt;-=]}{[=-lt;-=]}u{[=-gt;-=]} إلى <h2><u> أو بالأحرى <0> يدويًا؟

رابط إلى المثال: https://crowdin.com/translate/mudlet/137/en-de
Sceenshot على سبيل المثال:
grafik

أعتقد أن هذا خطأ في TM Crowdin. ربما يكون من الأفضل الإبلاغ عنها كمسألة منفصلة.

لقد أبلغتهم هنا أيضًا: https://crowdin.com/contacts

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

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات