diff --git a/addons/base_gengo/ir_translation.py b/addons/base_gengo/ir_translation.py
index 2c1740b9b04..297e449ecdc 100644
--- a/addons/base_gengo/ir_translation.py
+++ b/addons/base_gengo/ir_translation.py
@@ -19,20 +19,19 @@
#
##############################################################################
-from osv import fields,osv
+from osv import fields, osv
+
class ir_translation(osv.Model):
_name = "ir.translation"
- _description="Translation"
- _inherit="ir.translation"
+ _inherit = "ir.translation"
_columns = {
- 'gengo_comment':fields.text("Comments"),
- 'gengo_translation':fields.boolean("Translation", help='This term has to be translated by Gengo automatically'),
- 'gengo_control':fields.boolean('Active'),
- 'job_id':fields.char('Gengo Job Id',size=32),
- }
-
- _defaults = {
- 'gengo_control':False,
+ 'gengo_comment': fields.text("Comments"),
+ 'gengo_translation': fields.boolean("Translation", help='This term has to be translated by Gengo automatically'),
+ 'gengo_control': fields.boolean('Active'),
+ 'job_id': fields.char('Gengo Job Id', size=32),
}
+ _defaults = {
+ 'gengo_control': False,
+ }
diff --git a/addons/base_gengo/ir_translation.xml b/addons/base_gengo/ir_translation.xml
index 52b081cd7d6..753c12c7e7d 100644
--- a/addons/base_gengo/ir_translation.xml
+++ b/addons/base_gengo/ir_translation.xml
@@ -13,12 +13,12 @@
-
+
ir.translation.form.inherit
- ir.translation
+ ir.translation
form
diff --git a/addons/base_gengo/res_company.py b/addons/base_gengo/res_company.py
index 2a91d13f1b1..888e675e26b 100644
--- a/addons/base_gengo/res_company.py
+++ b/addons/base_gengo/res_company.py
@@ -19,24 +19,24 @@
#
##############################################################################
-from osv import fields,osv
+from osv import fields, osv
+
class res_company(osv.Model):
_name = "res.company"
- _description = "Companies"
_inherit = "res.company"
_columns = {
- "gengo_private_key":fields.text("Gengo private key"),
- "gengo_public_key":fields.text("Gengo public key"),
- "gengo_tier":fields.selection([('machine','Machine'),
- ('standard','Standard'),
- ('pro','Pro'),
- ('ultra','Ultra')],"Tier types", required=True),
- "gengo_comment":fields.text("comments"),
- "gengo_auto_approve":fields.boolean("Active",help="Jobs are Automatically Approved by Gengo."),
- "fields_ids":fields.many2many('ir.model.fields','fields_company_rel','field_id','model_id','fields'),
+ "gengo_private_key": fields.text("Gengo private key"),
+ "gengo_public_key": fields.text("Gengo public key"),
+ "gengo_tier": fields.selection([('machine', 'Machine'),
+ ('standard', 'Standard'),
+ ('pro', 'Pro'),
+ ('ultra', 'Ultra')], "Tier types", required=True),
+ "gengo_comment": fields.text("comments"),
+ "gengo_auto_approve": fields.boolean("Active", help="Jobs are Automatically Approved by Gengo."),
+ "fields_ids": fields.many2many('ir.model.fields', 'fields_company_rel', 'field_id', 'model_id', 'fields'),
}
-
- _defaults={
- "gengo_tier":"machine",
+
+ _defaults = {
+ "gengo_tier": "machine",
}
diff --git a/addons/base_gengo/res_company_view.xml b/addons/base_gengo/res_company_view.xml
index a4f6ceffcce..bfa0b1ddf95 100644
--- a/addons/base_gengo/res_company_view.xml
+++ b/addons/base_gengo/res_company_view.xml
@@ -5,7 +5,7 @@
res.company.form.inherit
- res.company
+ res.company
form
diff --git a/addons/base_gengo/res_lang.py b/addons/base_gengo/res_lang.py
index 48e5a6db995..e9c88c9fd29 100644
--- a/addons/base_gengo/res_lang.py
+++ b/addons/base_gengo/res_lang.py
@@ -19,14 +19,13 @@
#
##############################################################################
-from osv import fields,osv
+from osv import fields, osv
+
class res_company(osv.Model):
_name = "res.lang"
- _description = "Languages"
_inherit = "res.lang"
_columns = {
- 'gengo_sync':fields.boolean('Active', help='Synchronize Translation Periodically')
+ 'gengo_sync': fields.boolean('Active', help='Synchronize Translation Periodically')
}
-
diff --git a/addons/base_gengo/res_lang_view.xml b/addons/base_gengo/res_lang_view.xml
index efdfeed671e..e0c8edd11aa 100644
--- a/addons/base_gengo/res_lang_view.xml
+++ b/addons/base_gengo/res_lang_view.xml
@@ -5,7 +5,7 @@
res.lang.form.inherit
- res.lang
+ res.lang
form
diff --git a/addons/base_gengo/wizard/__init__.py b/addons/base_gengo/wizard/__init__.py
index fe8452a5b64..e7935ca8b1c 100644
--- a/addons/base_gengo/wizard/__init__.py
+++ b/addons/base_gengo/wizard/__init__.py
@@ -22,5 +22,3 @@
import gengo_update_translation
import wrap_object
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
-
diff --git a/addons/base_gengo/wizard/alert_message_gengo.xml b/addons/base_gengo/wizard/alert_message_gengo.xml
index 9b16c34552f..304175db031 100644
--- a/addons/base_gengo/wizard/alert_message_gengo.xml
+++ b/addons/base_gengo/wizard/alert_message_gengo.xml
@@ -7,16 +7,16 @@
base.update.translations
form
-
+
-
+
-
+
diff --git a/addons/base_gengo/wizard/gengo_response_scheduler.xml b/addons/base_gengo/wizard/gengo_response_scheduler.xml
index f924dc5e4ee..544235d8a6f 100644
--- a/addons/base_gengo/wizard/gengo_response_scheduler.xml
+++ b/addons/base_gengo/wizard/gengo_response_scheduler.xml
@@ -6,12 +6,12 @@
Run Gengo Response Scheduler
1
- minutes
+ days
-1
-
+
Run Gengo Sync Request Scheduler
diff --git a/addons/base_gengo/wizard/gengo_update_translation.py b/addons/base_gengo/wizard/gengo_update_translation.py
index a5186b4ab6d..1a5c90edb0a 100644
--- a/addons/base_gengo/wizard/gengo_update_translation.py
+++ b/addons/base_gengo/wizard/gengo_update_translation.py
@@ -20,123 +20,118 @@
##############################################################################
from osv import osv, fields
-import tools
-import cStringIO
from tools.translate import _
import wrap_object
import logging
_logger = logging.getLogger(__name__)
+
class gengo_update_translation(osv.osv_memory):
def send_translation_terms(self, cr, uid, ids, context):
"""Lasy Loading will be perform when user or cron send a bunch of request."""
-
- total_term=0
- limit= 0
- translation_list=context['translation_term_id']
- range_jobs=1
-
+ total_term = 0
+ limit = 0
+ translation_list = context['translation_term_id']
+ range_jobs = 1
meta = self.pool.get('jobs.meta')
- translation_pool=self.pool.get('ir.translation')
+ translation_pool = self.pool.get('ir.translation')
user = self.pool.get('res.users').browse(cr, uid, uid, context)
- gengo = meta.gengo_authentication(cr,uid,ids,context)
- job_length=len(context['translation_term_id'])
- remain=len(context['translation_term_id']) % wrap_object.REQUEST_LIMIT
+ gengo = meta.gengo_authentication(cr, uid, ids, context)
+ job_length = len(context['translation_term_id'])
+ remain = len(context['translation_term_id']) % wrap_object.REQUEST_LIMIT
if len(context['translation_term_id']) > wrap_object.REQUEST_LIMIT:
if remain > 0:
- range_jobs=(len(context['translation_term_id']) / wrap_object.REQUEST_LIMIT) + 1
+ range_jobs = (len(context['translation_term_id']) / wrap_object.REQUEST_LIMIT) + 1
else:
- range_jobs=len(context['translation_term_id']) / wrap_object.REQUEST_LIMIT
- for length in range(0,range_jobs):
- trans_list=[]
+ range_jobs = len(context['translation_term_id']) / wrap_object.REQUEST_LIMIT
+ for length in range(0, range_jobs):
+ trans_list = []
if job_length > wrap_object.REQUEST_LIMIT:
- job_length-=wrap_object.REQUEST_LIMIT
- limit+=wrap_object.REQUEST_LIMIT
+ job_length -= wrap_object.REQUEST_LIMIT
+ limit += wrap_object.REQUEST_LIMIT
else:
- limit+=remain
+ limit += remain
for key in translation_list[total_term:limit]:
trans_list.append(key)
- total_term=limit
- jobs = meta.pack_jobs_request(cr,uid,trans_list,context={'language_code':context['lang']})
- result = gengo.postTranslationJobs(jobs = jobs)
- self.write(cr, uid, ids, {'state':'done'})
+ total_term = limit
+ jobs = meta.pack_jobs_request(cr, uid, trans_list, context={'language_code': context['lang']})
+ result = gengo.postTranslationJobs(jobs=jobs)
+ self.write(cr, uid, ids, {'state': 'done'})
if user.company_id.gengo_tier == 'machine':
- if result.get('opstat')=='ok':
- for job in result.get('response').get('jobs'):
- for translation_id,val in job.items():
- translation_pool.write(cr,uid,int(translation_id),{'value':
- val['body_tgt'],'state':'translated','gengo_control':True})
+ if result.get('opstat') == 'ok':
+ for job in result.get('response').get('jobs'):
+ for translation_id, val in job.items():
+ translation_pool.write(cr, uid, int(translation_id), {'value':
+ val['body_tgt'], 'state': 'translated', 'gengo_control': True})
else:
for job in result.get('response').get('jobs'):
- for translation_id,val in job.items():
- translation_pool.write(cr,uid,int(translation_id),{'job_id':val['job_id']})
+ for translation_id, val in job.items():
+ translation_pool.write(cr, uid, int(translation_id), {'job_id': val['job_id']})
return
-
+
def act_update(self, cr, uid, ids, context=None):
try:
- language_pool=self.pool.get('res.lang')
+ language_pool = self.pool.get('res.lang')
this = self.browse(cr, uid, ids)[0]
- translation_pool=self.pool.get('ir.translation')
- lang_search_id=language_pool.search(cr, uid, [('gengo_sync','=',True),('code','=',this.lang)])
-
+ translation_pool = self.pool.get('ir.translation')
+ lang_search_id = language_pool.search(cr, uid,
+ [('gengo_sync', '=', True), ('code', '=', this.lang)])
+
if not lang_search_id:
- translation_term_id=translation_pool.search(cr,uid,[('state','=','translate'), ('gengo_translation','=','True'),('lang','=',this.lang)])
- context.update({'lang':this.lang,'translation_term_id':translation_term_id})
- self.send_translation_terms(cr,uid,ids,context)
+ translation_term_id = translation_pool.search(cr, uid, [('state', '=', 'translate'), ('gengo_translation', '=', 'True'), ('lang', '=', this.lang)])
+ context.update({'lang': this.lang, 'translation_term_id': translation_term_id})
+ self.send_translation_terms(cr, uid, ids, context)
return
else:
- self.write(cr, uid, ids, {'state':'inprogress'})
+ self.write(cr, uid, ids, {'state': 'inprogress'})
except Exception, e:
raise osv.except_osv(_('Warning !'), _('%s') % e)
-
+
def scheduler_get_gengo_response(self, cr, uid, ids=0, context=None):
- """Scheduler will be call to get response from gengo and all term will get
+ """Scheduler will be call to get response from gengo and all term will get
by scheduler which terms are in reviewable state"""
-
+
meta = self.pool.get('jobs.meta')
- translation_pool=self.pool.get('ir.translation')
-
- gengo = meta.gengo_authentication(cr,uid,ids,context)
- res = gengo.getTranslationJobs(status = "approved")
+ translation_pool = self.pool.get('ir.translation')
+ gengo = meta.gengo_authentication(cr, uid, ids, context)
+ res = gengo.getTranslationJobs(status="approved")
if res:
response = meta.unpack_jobs_response(res)
for job in response.response:
- translation_id=translation_pool.search(cr,uid,[('job_id','=',job.job_id)],context)
- response=gengo.getTranslationJob(id = job.job_id)
- translation_pool.write(cr,uid,translation_id,{'value':response['response']['job']['body_tgt'],'state':'translated','gengo_control':True})
-
+ translation_id = translation_pool.search(cr, uid, [('job_id', '=', job.job_id)], context)
+ response = gengo.getTranslationJob(id=job.job_id)
+ translation_pool.write(cr, uid, translation_id, {'value': response['response']['job']['body_tgt'], 'state': 'translated', 'gengo_control': True})
+
def scheduler_get_gengo_sync_request(self, cr, uid, ids=0, context=None):
- """This scheduler will send a job request to the gengo , which terms are
+ """This scheduler will send a job request to the gengo , which terms are
in translate state and gengo_translation is true"""
-
+
if context is None:
- context={}
+ context = {}
try:
- language_pool=self.pool.get('res.lang')
- translation_pool=self.pool.get('ir.translation')
-
- lang_search_id=language_pool.search(cr, uid, [('gengo_sync','=',True)])
- lang_ids=language_pool.read(cr, uid,lang_search_id)
-
+ language_pool = self.pool.get('res.lang')
+ translation_pool = self.pool.get('ir.translation')
+ lang_search_id = language_pool.search(cr, uid, [('gengo_sync', '=', True)])
+ lang_ids = language_pool.read(cr, uid, lang_search_id)
+
for lang_id in lang_ids:
- translation_term_id=translation_pool.search(cr,uid,[('state','=','translate'), ('gengo_translation','=','True'),('lang','=',lang_id['code']),('job_id','=',False)])
- context.update({'lang':lang_id['code'],'translation_term_id':translation_term_id})
+ translation_term_id = translation_pool.search(cr, uid, [('state', '=', 'translate'), ('gengo_translation', '=', 'True'), ('lang', '=', lang_id['code']), ('job_id', '=', False)])
+ context.update({'lang': lang_id['code'], 'translation_term_id': translation_term_id})
if translation_term_id:
self.send_translation_terms(cr, uid, ids, context)
except Exception, e:
- _logger.warning('A Gengo Exception is occur:: %s',e)
+ _logger.warning('A Gengo Exception is occur:: %s', e)
_name = 'base.update.translations'
_inherit = "base.update.translations"
-
- _columns= {
- 'state':fields.selection([('init','init'),('inprogress','inprogress'),('done','done')], 'state'),
+ _columns = {
+ 'state': fields.selection([('init', 'init'), ('inprogress', 'inprogress'), ('done', 'done')], 'state'),
}
-
- _defaults= {
- 'state':'init',
+
+ _defaults = {
+ 'state': 'init',
}
gengo_update_translation()
-
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/base_gengo/wizard/wrap_object.py b/addons/base_gengo/wizard/wrap_object.py
index 51007bdbd71..01368e5e2cb 100644
--- a/addons/base_gengo/wizard/wrap_object.py
+++ b/addons/base_gengo/wizard/wrap_object.py
@@ -20,66 +20,65 @@
##############################################################################
from osv import orm, osv
-import tools
from tools.translate import _
from mygengo import MyGengo
import re
-REQUEST_LIMIT=10
+REQUEST_LIMIT = 10
-LANG_MAPPING={
- 'ar':'Arabic',
- 'id':'Indonesian',
- 'nl':'Dutch',
- 'fr-ca':'French (Canada)',
- 'pl':'Polish',
- 'zh-tw':'Chinese (Traditional)',
- 'sv':'Swedish',
- 'ko':'Korean',
- 'pt':'Portuguese (Europe)',
- 'en':'English',
- 'ja':'Japanese',
- 'es':'Spanish (Spain)',
- 'zh':'Chinese (Simplified)',
- 'de':'German',
- 'fr':'French',
- 'ru':'Russian',
- 'it':'Italian',
- 'pt-br':'Portuguese (Brazil)',
+LANG_MAPPING = {
+ 'ar': 'Arabic',
+ 'id': 'Indonesian',
+ 'nl': 'Dutch',
+ 'fr-ca': 'French (Canada)',
+ 'pl': 'Polish',
+ 'zh-tw': 'Chinese (Traditional)',
+ 'sv': 'Swedish',
+ 'ko': 'Korean',
+ 'pt': 'Portuguese (Europe)',
+ 'en': 'English',
+ 'ja': 'Japanese',
+ 'es': 'Spanish (Spain)',
+ 'zh': 'Chinese (Simplified)',
+ 'de': 'German',
+ 'fr': 'French',
+ 'ru': 'Russian',
+ 'it': 'Italian',
+ 'pt-br': 'Portuguese (Brazil)',
}
LANG_CODE_MAPPING = {
- 'ar_SA':'ar',
- 'id_ID':'id',
- 'nl_NL':'nl',
- 'fr_CA':'fr-ca',
- 'pl':'pl',
- 'zh_TW':'zh-tw',
- 'sv_SE':'sv',
- 'ko_KR':'ko',
- 'pt_PT':'pt',
- 'en':'en',
- 'ja_JP':'ja',
- 'es_ES':'es',
- 'zh_CN':'zh',
- 'de_DE':'de',
- 'fr_FR':'fr',
- 'ru_RU':'ru',
- 'it_IT':'it',
- 'pt_BR':'pt-br'
+ 'ar_SA': 'ar',
+ 'id_ID': 'id',
+ 'nl_NL': 'nl',
+ 'fr_CA': 'fr-ca',
+ 'pl': 'pl',
+ 'zh_TW': 'zh-tw',
+ 'sv_SE': 'sv',
+ 'ko_KR': 'ko',
+ 'pt_PT': 'pt',
+ 'en': 'en',
+ 'ja_JP': 'ja',
+ 'es_ES': 'es',
+ 'zh_CN': 'zh',
+ 'de_DE': 'de',
+ 'fr_FR': 'fr',
+ 'ru_RU': 'ru',
+ 'it_IT': 'it',
+ 'pt_BR': 'pt-br'
}
+
class gengo_response(object):
- """
+ """
"""
def __init__(self, jobs):
- response = jobs['response']
+ response = jobs['response']
job = []
- jobs_id=[]
if isinstance(response, list):
- job = [ gengo_job(value) for value in response]
+ job = [gengo_job(value) for value in response]
else:
- job = [ gengo_job(value) for value in response.values()]
+ job = [gengo_job(value) for value in response.values()]
jobs.update({'response': job})
self._data = jobs
@@ -92,8 +91,9 @@ class gengo_response(object):
except KeyError, e:
raise AttributeError(e)
+
class gengo_job(object):
- """
+ """
"""
def __init__(self, job):
self._data = job
@@ -107,53 +107,53 @@ class gengo_job(object):
except KeyError, e:
raise AttributeError(e)
+
class JobsMeta(orm.AbstractModel):
-
- _name="jobs.meta"
-
- def gengo_authentication(self,cr,uid,ids,context=None):
+
+ _name = "jobs.meta"
+
+ def gengo_authentication(self, cr, uid, ids, context=None):
''' To Send Request and Get Response from Gengo User needs Public and Private
- key for that user need to signup to gengo and get public and private
+ key for that user need to signup to gengo and get public and private
key which is provided by gengo to authentic user '''
-
- gengo_parameter_pool=self.pool.get('res.users').browse(cr,uid,uid,context)
+
+ gengo_parameter_pool = self.pool.get('res.users').browse(cr, uid, uid, context)
try:
gengo = MyGengo(
- public_key = gengo_parameter_pool.company_id.gengo_public_key.encode('ascii'),
- private_key = gengo_parameter_pool.company_id.gengo_private_key.encode('ascii'),
- sandbox = True,
+ public_key=gengo_parameter_pool.company_id.gengo_public_key.encode('ascii'),
+ private_key=gengo_parameter_pool.company_id.gengo_private_key.encode('ascii'),
+ sandbox=True,
)
return gengo
except Exception, e:
raise osv.except_osv(_('Warning !'), _(e))
-
- def pack_jobs_request(self, cr, uid, translation_term_id, context):
- jobs={}
- auto_approve = 0
- gengo_parameter_pool=self.pool.get('res.users').browse(cr, uid, uid, context)
- translation_pool =self.pool.get('ir.translation')
-
- if gengo_parameter_pool.company_id.gengo_auto_approve == True:
- auto_approve=1
- for key,value in LANG_CODE_MAPPING.items():
+ def pack_jobs_request(self, cr, uid, translation_term_id, context):
+ jobs = {}
+ auto_approve = 0
+ gengo_parameter_pool = self.pool.get('res.users').browse(cr, uid, uid, context)
+ translation_pool = self.pool.get('ir.translation')
+
+ if gengo_parameter_pool.company_id.gengo_auto_approve == True:
+ auto_approve = 1
+
+ for key, value in LANG_CODE_MAPPING.items():
if key == context['language_code']:
for terms in translation_pool.read(cr, uid, translation_term_id, context=None):
-# translation_pool.write(cr,uid,translation_term_id,{'state':'inprogress'})
- if re.search(r"[a-z A-Z]",terms['src']):
- job = {'type':'text',
- 'slug':'single::English to '+ LANG_MAPPING.get(value),
- 'tier':gengo_parameter_pool.company_id.gengo_tier,
- 'body_src':terms['src'],
- 'lc_src':'en',
- 'lc_tgt':value,
- 'auto_approve': auto_approve,
- 'comment':gengo_parameter_pool.company_id.gengo_comment ,
+ translation_pool.write(cr, uid, translation_term_id, {'state': 'inprogress'})
+ if re.search(r"[a-z A-Z]", terms['src']):
+ job = {'type': 'text',
+ 'slug': 'single::English to' + LANG_MAPPING.get(value),
+ 'tier': gengo_parameter_pool.company_id.gengo_tier,
+ 'body_src': terms['src'],
+ 'lc_src': 'en',
+ 'lc_tgt': value,
+ 'auto_approve': auto_approve,
+ 'comment': gengo_parameter_pool.company_id.gengo_comment,
}
jobs.update({terms['id']: job})
return {'jobs': jobs}
-
+
def unpack_jobs_response(self, jobs):
return gengo_response(jobs)
-
-
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: