Public release from ruodoo-project: 19.0 - 2026-05-31 21:19:12 UTC
This commit is contained in:
47
translation_helper/models/ir_module.py
Normal file
47
translation_helper/models/ir_module.py
Normal file
@ -0,0 +1,47 @@
|
||||
import logging
|
||||
import os
|
||||
|
||||
from odoo import api, models
|
||||
from odoo.modules import get_module_path
|
||||
from odoo.tools.translate import TranslationImporter
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
module_lname = os.path.basename(
|
||||
os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
|
||||
)
|
||||
|
||||
|
||||
class Module(models.Model):
|
||||
_inherit = "ir.module.module"
|
||||
|
||||
@api.model
|
||||
def _load_module_terms(self, modules, langs, overwrite=False):
|
||||
if module_lname not in modules:
|
||||
return super()._load_module_terms(modules, langs, overwrite=overwrite)
|
||||
# load i18n files
|
||||
translation_importer = TranslationImporter(self.env.cr, verbose=False)
|
||||
for module_name in modules:
|
||||
modpath = get_module_path(module_name)
|
||||
if not modpath:
|
||||
continue
|
||||
for lang in langs:
|
||||
po_paths = []
|
||||
for subdir in ("i18n", "i18n_extra"):
|
||||
po_path = os.path.join(modpath, subdir, "%s.po" % lang)
|
||||
if os.path.exists(po_path):
|
||||
po_paths.append(po_path)
|
||||
for po_path in po_paths:
|
||||
_logger.info(
|
||||
"module %s: loading translation file %s for language %s",
|
||||
module_name,
|
||||
po_path,
|
||||
lang,
|
||||
)
|
||||
translation_importer.load_file(po_path, lang)
|
||||
if lang != "en_US" and not po_paths:
|
||||
_logger.info(
|
||||
"module %s: no translation for language %s", module_name, lang
|
||||
)
|
||||
|
||||
translation_importer.save(overwrite=overwrite, force_overwrite=overwrite)
|
||||
Reference in New Issue
Block a user