Esempio n. 1
0
    def update_display(self, msg):
        """
        Receives data from thread and updates the frame
        """

        if config.useGoogle:
            config.isRunTranslate=False
            tranText=msg.data[1][0][0]
            ishText=msg.data[1][0][1]
            latTranText=msg.data[1][0][2]
            latIshText=msg.data[1][0][3]
            dTranText=""
            translatedText=""
            try:
                for text in  msg.data[1][1]:
                    dTranText+=text+" "
            except Exception:
                pass

            if msg.data[len(msg.data)-1]==self.countRunTranslator:
                lang=''
                if self.view.t_choiceLangFrom.GetStringSelection() == 'Auto':
                    for k, v in langForTran.iteritems():
                        if k==msg.data[0]:
                            lang=v
                    if dTranText!="":
                        translatedText=tranText+'\n--------------\n'+dTranText+'\n-------------\n('+_('Source lang is ') +lang+')'
                        self.view.t_textCtrl.SetValue(tranText+'\n--------------\n'+dTranText+'\n-------------\n('+_('Source lang is ') +lang+')')
                    else:
                        translatedText=tranText+'\n-------------\n('+_('Source lang is ') +lang+')'
                        self.view.t_textCtrl.SetValue(tranText+'\n-------------\n('+_('Source lang is ') +lang+')')
                else: self.view.t_textCtrl.SetValue(tranText)

                self.translatedText=msg.data[1][0][0]
                self.show_controls()
                self.set_size(translatedText)
                self.set_position()
                self.countRunTranslator=0
        else:
            config.isRunTranslate=False
            if msg.data[2]==self.countRunTranslator:
                lang=''
                if self.view.t_choiceLangFrom.GetStringSelection() == 'Auto':
                    for k, v in langForTran.iteritems():
                            if k==msg.data[0]:
                                lang=v
                    self.view.t_textCtrl.SetValue(msg.data[1]+'\n('+_('Source lang is ') +lang+')')
                else: self.view.t_textCtrl.SetValue(msg.data[1])

                self.translatedText=msg.data[1]
                self.show_controls()
                self.set_size(msg.data[1])
                self.set_position()
                self.countRunTranslator=0
Esempio n. 2
0
    def set_languages(self):
        """
        set languages name in t_choiceLangFrom and t_choiceLangTo when frame show
        """
        self.languagesFrom=[]
        self.languagesTo=[]
        languages=[]
        for k, v in langForTran.iteritems():
            languages.append(v)
        countItem=0
        languages.sort()
        languagesCopy=list(languages)
        for s in languagesCopy:
            if s in config.langList:
                languages.remove(s)
                languages.insert(countItem,s)
                countItem+=1
            if countItem == len(config.langList):
                languages.insert(countItem,"--------")
                break

        self.languagesTo=languages
        self.languagesFrom=['Auto']+languages
        self.view.t_choiceLangFrom.SetItems(self.languagesFrom)
        self.view.t_choiceLangFrom.Selection=self.languagesFrom.index(config.defaultLangFrom)
        self.view.t_choiceLangTo.SetItems(self.languagesTo)
        self.view.t_choiceLangTo.Selection = self.languagesTo.index(config.defaultLangTo)
Esempio n. 3
0
    def start_translate(self,langFrom,langTo):
        """
        search languages modules and start translate
        """
        _targetLang=''
        _sourceLang=''
        for k, v in langForTran.iteritems():
            if v==langTo:
                _targetLang=k
            if v==langFrom:
                _sourceLang=k
        if langFrom=='Auto':
            _sourceLang="auto"
#        print "start translate"
        translatethread.TranslateThread(self.selectedText,sourceLang=_sourceLang,targetLang=_targetLang,
                                        countRunTranslator=self.countRunTranslator)
Esempio n. 4
0
    def run(self):
        """Run Worker Thread."""
#        options.isRunTranslate=False
        publisher = pub.Publisher()
        result=[]
        try:
            if self.sourceLang=="auto": self.sourceLang=None
            tran= Translator('5879888D232D8A18B987C92997518E37EEEF20AB')
            sourceL=tran.detect(self.sourceText.encode("utf-8"))
#            sourceL=tran.detect(self.sourceText)
            # if language of source text is target language then target language equally source language
            if self.targetLang==sourceL and len(config.langList)==2:
                for lang in config.langList:
                    langAbr=''
                    for k, v in langForTran.iteritems():
                        if v==lang:
                            langAbr=k
                    if langAbr!=self.targetLang:
                        self.targetLang=langAbr
                        break
            time.sleep(0.1)
            result.append(sourceL)
            if config.useBing:
                result.append(tran.translate(self.sourceText.encode("utf-8"),self.targetLang,from_lang=self.sourceLang))
            if config.useGoogle:
                if os.name=="nt":
                    result.append(translate_google(self.sourceText,self.sourceLang,self.targetLang))
                else:
                    result.append(translate_google(self.sourceText.decode("utf-8"),self.sourceLang,self.targetLang))
            result.append(self.countRunTranslator)
#            print result[1]
            time.sleep(0.1)
            if not self.mainTranslate:
                wx.CallAfter(publisher.sendMessage,"TRANSLATE", result)
            else:
                wx.CallAfter(publisher.sendMessage,"MAINTRANSLATE", result)
        except Exception:
            result=("",self.countRunTranslator,"Sorry, an error occurred")
            if not self.mainTranslate:
                wx.CallAfter(publisher.sendMessage,"TRANSLATE", result)
            else:
                wx.CallAfter(publisher.sendMessage,"MAINTRANSLATE", result)