سؤال

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

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

هل قام أي شخص بتفويض الترجمة للمستخدمين؟أي مسكتك، D2009 محددة أو غير ذلك؟

يحرر:هل قام أحد بمقارنة دعم الترجمة المدمج في D2009 مقابل dxgettext؟

هل كانت مفيدة؟

المحلول

لم أكن أبدًا صديقًا لأدوات الترجمة الخاصة بالبرامج المجانية أو التطبيقات مفتوحة المصدر.استخدام com.dxgettext, ، ميناء دلفي جنو الحصول على النص يبدو خيارًا أفضل بكثير بالنسبة لي:

  • يعد الاندماج في البرنامج (حتى بعد تطويره بكثير) أمرًا سهلاً.
  • يمكن استخراج السلاسل القابلة للترجمة عن طريق برامج سطر الأوامر، وبالتالي يتم إدخالها بسهولة في البنية الآلية.
  • يمكن إضافة ترجمة جديدة ببساطة عن طريق إنشاء دليل جديد بالبنية الصحيحة، ونسخ ملف الترجمة الفارغ إليه، والبدء في ترجمة السلاسل.هذا شيء يمكن لكل مستخدم القيام به بنفسه، ليست هناك حاجة لإشراك المؤلف الأصلي لإنشاء ترجمة جديدة.هناك أيضًا متعة فورية مع هذه العملية - بمجرد إعادة تشغيل البرنامج، يتم عرض الترجمات الجديدة على الفور.
  • يعد تغيير الترجمة الحالية أسهل من إنشاء ترجمة جديدة.وبالتالي، إذا وجد المستخدم أخطاء إملائية أو أخطاء أخرى أو يحتاج إلى تحسين في الترجمة، فيمكنه تصحيحها بسهولة وإرسال التغييرات إلى المؤلف.
  • تعمل إصدارات البرنامج الجديدة مع الترجمات القديمة، ويتدهور النظام بشكل رائع للغاية - فالسلاسل الجديدة وغير المترجمة تظهر ببساطة دون تعديل.
  • يمكن إجراء الترجمات باستخدام المفكرة فقط، ولكن هناك العديد من الأدوات المجانية لإنشاء ملفات الترجمة وإدارتها أيضًا؛راجع الروابط الموجودة على صفحة dxgettext.وهي مترجمة بنفسها، ولها بعض المزايا مقارنة بجدول البيانات أيضًا:
    • يمكن إظهار موقع السلاسل في الكود المصدري (هذا أمر منطقي فقط للتطبيقات مفتوحة المصدر بالطبع).
    • يتم عرض النسبة المئوية للسلاسل المترجمة.
    • يتم أيضًا تسليط الضوء على التعديلات التي تم إجراؤها على السلاسل المترجمة بالفعل.
  • النظام بأكمله ناضج ومقاوم للمستقبل - لقد استخدمت dxgettext لبرامج Delphi 4، ويجب ألا يكون هناك أي تغييرات ضرورية لـ Delphi 2009 حتى - ملفات الترجمة كانت دائمًا بتشفير UTF-8.

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

يحرر:

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

تستخدم مكتباتنا الداخلية "_(...)" حول جميع السلاسل القابلة للترجمة.هناك تعريفات ENGLISH و USEGETTEXT التي يتم تحديدها على أساس كل مشروع.لو ENGLISH أو USEGETTEXT يتم تعريفها، ثم يتم تجميع النصوص الإنجليزية في وحدات DCU، وإلا يتم تجميع النص الألماني في وحدات DCU.لو USEGETTEXT لم يتم تعريف "_()" يتم تجميعها كدالة تُرجع المعلمة الخاصة بها كما هي، وإلا فسيتم استخدام البحث عن ترجمة dxgettext.

نصائح أخرى

أملك...يمكن أن يكون هناك بعض التحديات.

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

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

وكما ذكرتم، D2009 يأتي مع أدوات الترجمة. لماذا لا مجرد استخدامها؟ AFAIK يمكنك توزيع مدير الترجمة خارجي (etm.exe). هل تحتاج إلى أي شيء آخر؟

وكذلك توطين أكثر من مجرد نص ترجمة. ETM كما يدعم ترجمة الموارد .dfm.

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

وFWIW لدي يستخدم TsiLang الترجمة جناح في الماضي، وأعمل حاليا على مشروع آخر باستخدام أدوات الترجمة التي يتم شحنها مع DevExpress VCL. في وقت لاحق يدمج بشكل جيد مع مكوناتها، فضلا عن عناصر طرف ثالث.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top