def act_update_automatically(self, cr, uid, ids, context=None): # _logger.warning("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<") # this = self.browse(cr, uid, ids)[0] # lang_name = self._get_lang_name(cr, uid, 'vi_VN') # _logger.warning(lang_name) # _logger.warning(this.lang) try: _logger.warning("<<<<<<<<<<<<<<<<<<<< Syn <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<") vn_ids = self.pool['res.lang'].search(cr, uid,[('iso_code','=','vi_VN')],context={}) if len(vn_ids) == 0: raise osv.except_osv(_('Error!'), _('No language found')) return {'type': 'ir.actions.act_window_close'} vn_string = self.pool['res.lang'].read(cr, uid, vn_ids, ['name'],context={})[0] _logger.warning(vn_string) _logger.warning("<<<<<<<<<<<<<<<<<<<< Syn <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<") buf = cStringIO.StringIO() tools.trans_export('vi_VN', ['all'], buf, 'csv', cr) tools.trans_load_data(cr, buf, 'csv', 'vi_VN', lang_name=vn_string['name']) buf.close() except: return {'type': 'ir.actions.act_window_close'} return {'type': 'ir.actions.act_window_close'}
def act_getfile(self, cr, uid, ids, context=None): this = self.browse(cr, uid, ids, context=context)[0] lang = this.lang if this.lang != NEW_LANG_KEY else False mods = sorted(map(lambda m: m.name, this.modules)) or ['all'] with contextlib.closing(cStringIO.StringIO()) as buf: tools.trans_export(lang, mods, buf, this.format, cr) out = base64.encodestring(buf.getvalue()) filename = 'new' if lang: filename = get_iso_codes(lang) elif len(mods) == 1: filename = mods[0] extension = this.format if not lang and extension == 'po': extension = 'pot' name = "%s.%s" % (filename, extension) this.write({ 'state': 'get', 'data': out, 'name': name }) return { 'type': 'ir.actions.act_window', 'res_model': 'base.language.export', 'view_mode': 'form', 'view_type': 'form', 'res_id': this.id, 'views': [(False, 'form')], 'target': 'new', }
def run_config_env(self): # check module installed self.model_obj = self.pool["ir.module.module"] if not self.model_obj.search_id(self.cr, 1, [("state", "=", "installed"), ("name", "=", self.params.module)]): _logger.error("No module %s installed!" % self.params.module) return export_filename = os.path.join(self.langdir, self.langfile) export_f = file(export_filename, "w") try: ignore = None ignore_filename = "%s.ignore" % export_filename if os.path.exists(ignore_filename): _logger.info("Load ignore file %s" % ignore_filename) ignore = set() fileobj = misc.file_open(ignore_filename) reader = tools.TinyPoFile(fileobj) for row in reader: if not row[4]: ignore.add(row) _logger.info('Writing %s', export_filename) tools.trans_export(self.lang, [self.params.module], export_f, "po", self.cr, ignore=ignore) finally: export_f.close()
def act_getfile(self, cr, uid, ids, context=None): this = self.browse(cr, uid, ids)[0] lang = this.lang if this.lang != NEW_LANG_KEY else False mods = map(lambda m: m.name, this.modules) or ['all'] mods.sort() buf = cStringIO.StringIO() tools.trans_export(lang, mods, buf, this.format, cr) filename = 'new' if lang: filename = get_iso_codes(lang) elif len(mods) == 1: filename = mods[0] this.name = "%s.%s" % (filename, this.format) out = base64.encodestring(buf.getvalue()) buf.close() self.write(cr, uid, ids, {'state': 'get', 'data': out, 'name':this.name}, context=context) return { 'type': 'ir.actions.act_window', 'res_model': 'base.language.export', 'view_mode': 'form', 'view_type': 'form', 'res_id': this.id, 'views': [(False, 'form')], 'target': 'new', }
def button_save_translation(self): format_ = 'po' i18n_path = os.path.join(get_module_path(self.name), 'i18n') if not os.path.isdir(i18n_path): os.mkdir(i18n_path) lang_obj = self.env['res.lang'] condition = [('translatable', '=', True), ('code', '!=', 'en_US')] langs = lang_obj.search(condition) files = [('%s.pot' % self.name, False)] for lang in langs: iso_code = get_iso_codes(lang.code) filename = '%s.%s' % (iso_code, format_) files.append((filename, lang.code)) for filename, lang in files: path = os.path.join(i18n_path, filename) with open(path, 'w') as buf: tools.trans_export(lang, [self.name], buf, format_, self.env.cr) return True
def act_update(self, cr, uid, ids, context=None): this = self.browse(cr, uid, ids)[0] lang_name = self._get_lang_name(cr, uid, this.lang) buf = io.StringIO() tools.trans_export(this.lang, ['all'], buf, 'csv', cr) tools.trans_load_data(cr, buf, 'csv', this.lang, lang_name=lang_name) buf.close() return {'type': 'ir.actions.act_window_close'}
def act_update(self, cr, uid, ids, context=None): this = self.browse(cr, uid, ids)[0] lang_name = self._get_lang_name(cr, uid, this.lang) buf = cStringIO.StringIO() tools.trans_export(this.lang, ['all'], buf, 'csv', cr) tools.trans_load_data(cr, buf, 'csv', this.lang, lang_name=lang_name) buf.close() return {'type': 'ir.actions.act_window_close'}
def act_update_automatically(self, cr, uid, ids, context=None): # _logger.warning("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<") # this = self.browse(cr, uid, ids)[0] # lang_name = self._get_lang_name(cr, uid, 'vi_VN') # _logger.warning(lang_name) # _logger.warning(this.lang) try: _logger.warning( "<<<<<<<<<<<<<<<<<<<< Syn <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<") vn_ids = self.pool['res.lang'].search(cr, uid, [('iso_code', '=', 'vi_VN')], context={}) if len(vn_ids) == 0: raise osv.except_osv(_('Error!'), _('No language found')) return {'type': 'ir.actions.act_window_close'} vn_string = self.pool['res.lang'].read(cr, uid, vn_ids, ['name'], context={})[0] _logger.warning(vn_string) _logger.warning( "<<<<<<<<<<<<<<<<<<<< Syn <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<") buf = cStringIO.StringIO() tools.trans_export('vi_VN', ['all'], buf, 'csv', cr) tools.trans_load_data(cr, buf, 'csv', 'vi_VN', lang_name=vn_string['name']) buf.close() except: return {'type': 'ir.actions.act_window_close'} return {'type': 'ir.actions.act_window_close'}