-->

Why are some items not translated in Odoo?

2019-04-24 11:26发布

问题:

I have a problem with translations in Project module. Some menu items are not translated. What could be the problem?

Here project_view.xml

<!-- Top menu item -->
<menuitem name="Project"
    id="base.menu_main_pm"
    groups="group_project_manager,group_project_user"
    icon="fa-calendar"
    web_icon="project,static/description/icon.png"
    sequence="50"/>

Here ru.po

#. module: project
#: model:ir.model,name:project.model_project_project
#: model:ir.model.fields,field_description:project.field_project_task_history_cumulative_project_id
#: model:ir.model.fields,field_description:project.field_project_task_project_id
#: model:ir.model.fields,field_description:project.field_report_project_task_user_project_id
#: model:ir.ui.view,arch_db:project.edit_project
#: model:ir.ui.view,arch_db:project.view_task_form2
#: model:ir.ui.view,arch_db:project.view_task_history_search
#: model:ir.ui.view,arch_db:project.view_task_project_user_search
#: model:ir.ui.view,arch_db:project.view_task_search_form
#: model:res.request.link,name:project.req_link_project
msgid "Project"
msgstr "Проект"

回答1:

I've also had this problem with translations. I had updated module base a lot of times too and it worked, but sometimes it wasn't necessary. What I did is the next process:

  • Go to Settings > Translations > Load a Translation, select your language and check the box Overwrite Existing Terms, then click on Load button.

  • After that, press F5 to refresh the browser, then go to Settings > Translations > Application Terms > Synchronize Terms, select your language and click on Update. Then press again F5 to see if your terms have been updated.

Regards.



回答2:

Sometimes translations don't work very well. Try pressing the "Update" button in the "Base" module. This should solve the problem.



回答3:

Yes, sometimes the localization doesn't work perfectly. Here's another strategy from v8, which may still help you in v9.

  • First, update your module like described
  • Then, remove all translated strings for your module from the database. This is safe, because you have them in your ru.po file.
    • Go to Settings > Translations > Application Terms > Translated Terms
    • Do an "Advanced Search" with 'Module' 'contains' to find all your terms
    • select them all (possibly set the pager to 'unlimited')
    • Select 'More' > 'Delete'
    • Confirm
  • Update your module again.
  • Export the ru.po file again; it should now contain all missing terms.

The issue seems to be that the module sometimes takes some values from the default (en) language into the target language, which then prohibits the term to be listed as 'to be translated'.



回答4:

Sometimes, is not enough to update the base module. I implemented a solution based on a post. What I do is clear the whole language using a query, and then reload the language again using. "Load a Translation" from config menu.

The query that made it possible, is the following, for example for es_CL:

DELETE FROM ir_translation WHERE lang = 'es_CL';

I've put this in a module, which you can use to adapt it to your needs:

https://github.com/odoo-chile/l10n_cl_clear_translation

When this module is instaled it runs the query. Then you can reload your language using the menu.