إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

للاستعانة بجوجل في ترجمة البرامج الحرة

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • للاستعانة بجوجل في ترجمة البرامج الحرة

    السلام عليكم و رحمة الله و بركاته

    منذ مدة راودتني فكرة كتابة برنامج يستعين بالواجهة البرمجية لجوجل google api ، بالخصوص خدمة الترجمة التلقائية لتحويل ملفات .po التي تستعملها البرامج الحرة من الإنجليزية إلى العربية، لكني وجدت من سبقني فاعتمدت عليه لإنشاء السكريبت التالي tarjim .

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


    مثلا إذا كان لديك ملف test.po يمكن بدأ ترجمته هكذا :


    كود:
    tarjim  test.po
    سيعطيك ملفين

    كود:
    test.mo
    ar_test.po
    بعدها يمكنك استعمال أحد برامج تحرير ملفات .po مثل kbabel لتصحيح الترجمة التلقائية من جوجل لأنها في الغالب تكون رديئة.
    إذا هذا البرنامج لا يعيك ترجمة تلقائية مقبولة دون جهد و لكنه يساعد في وضعك على الطريق.

    فيما يلي نص السكريبت و سأضعه أيضا في الملحقات مع العلم أني لم أجربه بعد و هو يحتاج إلى python 2.6 فما فوق أو تثبيت simplejson مع python 2.5.

    من قام بتنزيله فلا ينسى بتغيير صلاحيات الملف كي يجعله ملف تنفيذي

    كود:
    chmod  755  tarjim
    أو أو يقوم بوضع كلمة python أمام اسم السكريبت عند تنفيذه

    كود:
    python tarjim test.po
    كود:
    #!/usr/bin/env python
    
    # The google translate API can be found here: 
    # http://code.google.com/apis/ajaxlanguage/documentation/#Examples
    
    # http://code.activestate.com/recipes/576890-python-wrapper-for-google-ajax-language-api/
    
    #import re
    import sys
    import urllib
    import simplejson
    import polib
    
    baseUrl = "http://ajax.googleapis.com/ajax/services/language/translate"
    
    def getSplits(text,splitLength=4500):
        '''
        Translate Api has a limit on length of text(4500 characters) that can be translated at once, 
        '''
        return (text[index:index+splitLength] for index in xrange(0,len(text),splitLength))
    
    
    def translate(text, src='', to='en'):
        '''
        A Python Wrapper for Google AJAX Language API:
        * Uses Google Language Detection, in cases source language is not provided with the source text
        * Splits up text if it's longer then 4500 characters, as a limit put up by the API
        '''
    
        params = ({'langpair': '%s|%s' % (src, to),
                 'v': '1.0'
                 })
        retText=''
        for text in getSplits(text):
                params['q'] = text
                resp = simplejson.load(urllib.urlopen('%s' % (baseUrl), data = urllib.urlencode(params)))
                try:
                        retText += resp['responseData']['translatedText']
                except:
                        raise
        return retText
    
    
    def tarjim(file):
        po = polib.pofile(file)
        for entry in (po.untranslated_entries() + po.fuzzy_entries()):
            entry.msgstr = translate(enrty.msgid, 'en', 'ar')
            #print entry.msgid, entry.msgstr
        print "Translated: %d\%." % po.percent_translated()
        po.save_as_mofile('%s.mo' % file)
        po.save_as_pofile('ar_%s' % file)
    
    
    if __name__=='__main__':
            tarjim(sys.argv[1])
    و هذا رابط السكريبت الأصلي



    أكرر أن مستوى الترجمة الناتجة عن هذا السكريبت رديئ و يحتاج مراجعة يدوية.
    مدونتي
    تغرب عن الأوطان في طلب العلا * وسافر ففي الأسفار خمس فوائد
    تَفَرُّجُ هم ، واكتسـاب معيشــة * وعلم وآداب ، وصحبة ماجـد
    لكن بعدها

    لقرب الدار في الإقتار خيرٌ * من العيش الموسّع في اغتراب


  • #2
    شكرا لك على السكربت . لكن الترجمة عبر جوجل لا انصح بها بتاتا .
    النتائج سيئة للغاية .
    الترجمة لا تكون دائما حرفية، بل عليها مراعاة الدلالة العميقة للاستعمال الاصطلاحي وليس للأصل اللغوي. ويجب أن تراعي الترجمة كذلك تداول الكلمة العربية.
    مقتبسة من http://ojuba.org/wiki/%D8%AA%D8%B1%D...%D8%A7%D8%AA?s

    تعليق


    • #3
      ربما ستتفاجؤون ان عرفتم أن ترجمة تعليمات مايكروسوفت أوفيس هي ترجمة آلية وليست بشرية
      رغم ذلك تكاد لا تجد خطأ في هاته الترجمة
      حبيبي أريد أن أسألك هل يمكن تخصيص ترجمة جوجل
      يعني القيام بفتح حساب لدى ترجمة جوجل وتحسين الترجمة ومع مرور الوقت سنصل إلى ترجمة إحترافية لواجهات البرامج والتعليمات كذلك أقول هذا لانني حاولت تحسين بعض الترجمات لكن ما زالت كلمة Menu تترجم "قائمة طعام"

      تعليق


      • #4
        ربما ستتفاجؤون ان عرفتم أن ترجمة تعليمات مايكروسوفت أوفيس هي ترجمة آلية وليست بشرية
        بحاجة لمصدر .
        جوجل يترجم Menu
        القائمة
        al-Qāʼimh
        القاموس - عرض القاموس المفصل
        اسم
        1. قائمة الطعام
        2. لائحة الطعام
        3. ألوان الطعام المقدمة


        وهم يوفرون ميزة اقتراح ترجمة افضل (تجدها في اسفل الترجمة) .

        تعليق


        • #5
          المشاركة الأصلية بواسطة ayoooub مشاهدة المشاركة
          ربما ستتفاجؤون ان عرفتم أن ترجمة تعليمات مايكروسوفت أوفيس هي ترجمة آلية وليست بشرية
          رغم ذلك تكاد لا تجد خطأ في هاته الترجمة
          قد يكون الأمر كذلك بسبب مراجعة انسان للناتج وليس بسبب دقة البرنامج المبرمج.
          اما عن الموضوع الرئيسي، السؤال يطرح نفسة: هل تسمح غوغل بإستخدام برنامج الترجمة لهذا الغرض؟ معظم الشركات تمنع بشكل عام اي استعمال لبرامجها إلا للإستعمال الشخصي.
          استثمر وقتك بما هو مفيد. افد نفسك و غيرك بما تعلم.
          مدونتي (النطاق تغير!) | برمجياتي | سايه

          تعليق


          • #6
            لقد كررت في الموضوع أن الترجمة التلقائية من جوجل رديئة و تحتاج تصحيح !
            ما لا يدرك كله لا يترك جله ...
            أرى أن هذا أحسن من البدأ من الصفر.

            و لا أرى في "شروط الخدمة" terms of service ما يمنع من استعمال ترجمة جوجل !
            مدونتي
            تغرب عن الأوطان في طلب العلا * وسافر ففي الأسفار خمس فوائد
            تَفَرُّجُ هم ، واكتسـاب معيشــة * وعلم وآداب ، وصحبة ماجـد
            لكن بعدها

            لقرب الدار في الإقتار خيرٌ * من العيش الموسّع في اغتراب

            تعليق


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

              على كل، فرتال (Virtaal) يوفر ميزة الاستعانة بخدمات الترجمة الآلية (ليس جوجل فقط) بحيث تظهر لك كمقترحات للترجمة.

              تعليق


              • #8
                أعتقد من الأفضل استخدام القاموس المخصص لذلك من قبل مشروع عربآيز .... دعونا نجرب Menu


                هل يمكن تعديل المسطورة البرمجية لتقرأ من الرابط السابق http://wiki.arabeyes.org/techdict_talk:Script
                daif.net/klinux

                تعليق


                • #9
                  المشاركة الأصلية بواسطة خالد حسني مشاهدة المشاركة
                  على كل، فرتال (Virtaal) يوفر ميزة الاستعانة بخدمات الترجمة الآلية (ليس جوجل فقط) بحيث تظهر لك كمقترحات للترجمة.
                  أتمنى شرح هذه الخاصية في برنامج Virtaal لأنني لم أجد خيار الترجمة الآلية من جوجل

                  تعليق


                  • #10
                    من تحرير->التفضيلات->الملحقات->ذاكرة الترجمة، اذغظ على ذاكرة الترجمة وسيظهر زر "اضبط"، اضغط عليه وستجد قائمة بخدمات يمكن تفعيلها، أنصح بتفعيل Open-Tran.eu فهو يحتوي ذاكرة ترجمة مستخلصة من كثير من ترجمات البرمجيات الحرة. بعدها ستظهر الترجمات من الخدمات المفعلة على شكل اقتراحات أثناء الترجمة.

                    تعليق


                    • #11
                      المشاركة الأصلية بواسطة daif مشاهدة المشاركة
                      أعتقد من الأفضل استخدام القاموس المخصص لذلك من قبل مشروع عربآيز .... دعونا نجرب Menu


                      هل يمكن تعديل المسطورة البرمجية لتقرأ من الرابط السابق http://wiki.arabeyes.org/techdict_talk:Script
                      ممكن جدا بشرط أن يوفر أصحاب الموقع واجهة برمجية api مناسبة ،
                      في الوقت الحالي لا يوجد شيء في صفحة html يميز الترجمة من غيرها و بالتالي يصعب على أي برنامج العثور على نتيجة الترجمة
                      مدونتي
                      تغرب عن الأوطان في طلب العلا * وسافر ففي الأسفار خمس فوائد
                      تَفَرُّجُ هم ، واكتسـاب معيشــة * وعلم وآداب ، وصحبة ماجـد
                      لكن بعدها

                      لقرب الدار في الإقتار خيرٌ * من العيش الموسّع في اغتراب

                      تعليق


                      • #12
                        المشاركة الأصلية بواسطة د. م. جلال شفرور مشاهدة المشاركة
                        ممكن جدا بشرط أن يوفر أصحاب الموقع واجهة برمجية api مناسبة ،
                        في الوقت الحالي لا يوجد شيء في صفحة html يميز الترجمة من غيرها و بالتالي يصعب على أي برنامج العثور على نتيجة الترجمة
                        ربما و لكن لو حافظوا علي ترتيب الصفحة: ممكن كود بسيط مثل هذا يعمل

                        كود:
                        #!/usr/bin/env ruby
                        require 'rubygems'
                        require 'open-uri'
                        require 'hpricot'
                        
                        def translate(word)
                          url="http://wiki.arabeyes.org/techdict:#{word}"
                          page=open(url).read
                          doc=Hpricot(page)
                          re=(doc/:html/:body/:table/:td/:p/:b).first
                          re.inner_html unless re.nil?
                        end
                        المشكلة هنا لو تغير الترتيب يبقي فعلاً كما قلت

                        تعليق

                        يعمل...
                        X