odoo17 翻译模块备忘

odoo17 翻译模块备忘

自定义模块安装前:

复制代码
{
  "en_US": "<field name=\"groups_id\" position=\"replace\">\n  <field name=\"sel_groups_1_10_11\" invisible=\"1\" on_change=\"1\"/>\n  <field name=\"sel_groups_8\" groups=\"!base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\" on_change=\"1\" invisible=\"1\"/>\n  <field name=\"in_group_9\" groups=\"!base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\" invisible=\"1\"/>\n  <field name=\"in_group_5\" groups=\"!base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\" invisible=\"1\"/>\n  <field name=\"in_group_6\" groups=\"!base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\" invisible=\"1\"/>\n  <field name=\"in_group_7\" groups=\"!base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\" invisible=\"1\"/>\n  <field name=\"in_group_3\" readonly=\"sel_groups_1_10_11 != 1\" invisible=\"1\" groups=\"!base.group_no_one\"/>\n  <group groups=\"base.group_no_one\">\n    <separator string=\"User Type\" colspan=\"2\" groups=\"base.group_no_one\"/>\n    <field name=\"sel_groups_1_10_11\" widget=\"radio\" on_change=\"1\"/>\n    <newline/>\n  </group>\n  <group invisible=\"sel_groups_1_10_11 != 1\">\n    <div class=\"alert alert-warning\" role=\"alert\" colspan=\"2\" invisible=\"not user_group_warning\">\n      <label for=\"user_group_warning\" string=\"Access Rights Mismatch\" class=\"text text-warning fw-bold\"/>\n      <field name=\"user_group_warning\"/>\n    </div>\n  </group>\n  <group invisible=\"sel_groups_1_10_11 != 1\">\n    <group string=\"Administration\">\n      <newline/>\n      <field name=\"sel_groups_2_4\" readonly=\"sel_groups_1_10_11 != 1\" on_change=\"1\"/>\n      <newline/>\n    </group>\n    <group string=\"Other\">\n      <newline/>\n      <field name=\"sel_groups_8\" groups=\"base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\" on_change=\"1\"/>\n      <newline/>\n    </group>\n  </group>\n  <group invisible=\"sel_groups_1_10_11 != 1\" groups=\"base.group_no_one\" class=\"o_label_nowrap\">\n    <separator string=\"其它权限\" groups=\"base.group_no_one\"/>\n    <group>\n      <field name=\"in_group_9\" groups=\"base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\"/>\n      <field name=\"in_group_6\" groups=\"base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\"/>\n    </group>\n    <group>\n      <field name=\"in_group_5\" groups=\"base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\"/>\n      <field name=\"in_group_7\" invisible=\"1\" groups=\"base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\"/>\n    </group>\n    <separator string=\"Other\"/>\n    <group>\n      <field name=\"in_group_3\" readonly=\"sel_groups_1_10_11 != 1\"/>\n    </group>\n    <group/>\n  </group>\n</field>",
  "zh_CN": "<field name=\"groups_id\" position=\"replace\">\n  <field name=\"sel_groups_1_10_11\" invisible=\"1\" on_change=\"1\"/>\n  <field name=\"sel_groups_8\" groups=\"!base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\" on_change=\"1\" invisible=\"1\"/>\n  <field name=\"in_group_9\" groups=\"!base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\" invisible=\"1\"/>\n  <field name=\"in_group_5\" groups=\"!base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\" invisible=\"1\"/>\n  <field name=\"in_group_6\" groups=\"!base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\" invisible=\"1\"/>\n  <field name=\"in_group_7\" groups=\"!base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\" invisible=\"1\"/>\n  <field name=\"in_group_3\" readonly=\"sel_groups_1_10_11 != 1\" invisible=\"1\" groups=\"!base.group_no_one\"/>\n  <group groups=\"base.group_no_one\">\n    <separator string=\"用户类型\" colspan=\"2\" groups=\"base.group_no_one\"/>\n    <field name=\"sel_groups_1_10_11\" widget=\"radio\" on_change=\"1\"/>\n    <newline/>\n  </group>\n  <group invisible=\"sel_groups_1_10_11 != 1\">\n    <div class=\"alert alert-warning\" role=\"alert\" colspan=\"2\" invisible=\"not user_group_warning\">\n      <label for=\"user_group_warning\" string=\"访问权限不匹配\" class=\"text text-warning fw-bold\"/>\n      <field name=\"user_group_warning\"/>\n    </div>\n  </group>\n  <group invisible=\"sel_groups_1_10_11 != 1\">\n    <group string=\"管理栏\">\n      <newline/>\n      <field name=\"sel_groups_2_4\" readonly=\"sel_groups_1_10_11 != 1\" on_change=\"1\"/>\n      <newline/>\n    </group>\n    <group string=\"其他\">\n      <newline/>\n      <field name=\"sel_groups_8\" groups=\"base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\" on_change=\"1\"/>\n      <newline/>\n    </group>\n  </group>\n  <group invisible=\"sel_groups_1_10_11 != 1\" groups=\"base.group_no_one\" class=\"o_label_nowrap\">\n    <separator string=\"其它权限\" groups=\"base.group_no_one\"/>\n    <group>\n      <field name=\"in_group_9\" groups=\"base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\"/>\n      <field name=\"in_group_6\" groups=\"base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\"/>\n    </group>\n    <group>\n      <field name=\"in_group_5\" groups=\"base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\"/>\n      <field name=\"in_group_7\" invisible=\"1\" groups=\"base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\"/>\n    </group>\n    <separator string=\"其他\"/>\n    <group>\n      <field name=\"in_group_3\" readonly=\"sel_groups_1_10_11 != 1\"/>\n    </group>\n    <group/>\n  </group>\n</field>"
}

安装后

复制代码
{
  "en_US": "<field name=\"groups_id\" position=\"replace\">\n  <field name=\"sel_groups_1_10_11\" invisible=\"1\" on_change=\"1\"/>\n  <field name=\"in_group_8\" groups=\"!base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\" invisible=\"1\"/>\n  <field name=\"in_group_12\" groups=\"!base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\" invisible=\"1\"/>\n  <field name=\"in_group_9\" groups=\"!base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\" invisible=\"1\"/>\n  <field name=\"in_group_5\" groups=\"!base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\" invisible=\"1\"/>\n  <field name=\"in_group_6\" groups=\"!base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\" invisible=\"1\"/>\n  <field name=\"in_group_7\" groups=\"!base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\" invisible=\"1\"/>\n  <field name=\"in_group_3\" readonly=\"sel_groups_1_10_11 != 1\" invisible=\"1\" groups=\"!base.group_no_one\"/>\n  <group groups=\"base.group_no_one\">\n    <separator string=\"User Type\" colspan=\"2\" groups=\"base.group_no_one\"/>\n    <field name=\"sel_groups_1_10_11\" widget=\"radio\" on_change=\"1\"/>\n    <newline/>\n  </group>\n  <group invisible=\"sel_groups_1_10_11 != 1\">\n    <div class=\"alert alert-warning\" role=\"alert\" colspan=\"2\" invisible=\"not user_group_warning\">\n      <label for=\"user_group_warning\" string=\"Access Rights Mismatch\" class=\"text text-warning fw-bold\"/>\n      <field name=\"user_group_warning\"/>\n    </div>\n  </group>\n  <group invisible=\"sel_groups_1_10_11 != 1\">\n    <group string=\"管理\">\n      <newline/>\n      <field name=\"sel_groups_2_4\" readonly=\"sel_groups_1_10_11 != 1\" on_change=\"1\"/>\n      <newline/>\n    </group>\n  </group>\n  <group invisible=\"sel_groups_1_10_11 != 1\" groups=\"base.group_no_one\" class=\"o_label_nowrap\">\n    <separator string=\"Technical\" groups=\"base.group_no_one\"/>\n    <group>\n      <field name=\"in_group_8\" groups=\"base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\"/>\n    </group>\n    <group>\n      <field name=\"in_group_12\" groups=\"base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\"/>\n    </group>\n    <separator string=\"其它权限\" groups=\"base.group_no_one\"/>\n    <group>\n      <field name=\"in_group_9\" groups=\"base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\"/>\n      <field name=\"in_group_6\" groups=\"base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\"/>\n    </group>\n    <group>\n      <field name=\"in_group_5\" groups=\"base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\"/>\n      <field name=\"in_group_7\" invisible=\"1\" groups=\"base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\"/>\n    </group>\n    <separator string=\"Other\"/>\n    <group>\n      <field name=\"in_group_3\" readonly=\"sel_groups_1_10_11 != 1\"/>\n    </group>\n    <group/>\n  </group>\n</field>",
  "zh_CN": "<field name=\"groups_id\" position=\"replace\">\n  <field name=\"sel_groups_1_10_11\" invisible=\"1\" on_change=\"1\"/>\n  <field name=\"in_group_8\" groups=\"!base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\" invisible=\"1\"/>\n  <field name=\"in_group_12\" groups=\"!base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\" invisible=\"1\"/>\n  <field name=\"in_group_9\" groups=\"!base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\" invisible=\"1\"/>\n  <field name=\"in_group_5\" groups=\"!base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\" invisible=\"1\"/>\n  <field name=\"in_group_6\" groups=\"!base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\" invisible=\"1\"/>\n  <field name=\"in_group_7\" groups=\"!base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\" invisible=\"1\"/>\n  <field name=\"in_group_3\" readonly=\"sel_groups_1_10_11 != 1\" invisible=\"1\" groups=\"!base.group_no_one\"/>\n  <group groups=\"base.group_no_one\">\n    <separator string=\"User Type\" colspan=\"2\" groups=\"base.group_no_one\"/>\n    <field name=\"sel_groups_1_10_11\" widget=\"radio\" on_change=\"1\"/>\n    <newline/>\n  </group>\n  <group invisible=\"sel_groups_1_10_11 != 1\">\n    <div class=\"alert alert-warning\" role=\"alert\" colspan=\"2\" invisible=\"not user_group_warning\">\n      <label for=\"user_group_warning\" string=\"Access Rights Mismatch\" class=\"text text-warning fw-bold\"/>\n      <field name=\"user_group_warning\"/>\n    </div>\n  </group>\n  <group invisible=\"sel_groups_1_10_11 != 1\">\n    <group string=\"管理\">\n      <newline/>\n      <field name=\"sel_groups_2_4\" readonly=\"sel_groups_1_10_11 != 1\" on_change=\"1\"/>\n      <newline/>\n    </group>\n  </group>\n  <group invisible=\"sel_groups_1_10_11 != 1\" groups=\"base.group_no_one\" class=\"o_label_nowrap\">\n    <separator string=\"Technical\" groups=\"base.group_no_one\"/>\n    <group>\n      <field name=\"in_group_8\" groups=\"base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\"/>\n    </group>\n    <group>\n      <field name=\"in_group_12\" groups=\"base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\"/>\n    </group>\n    <separator string=\"其它权限\" groups=\"base.group_no_one\"/>\n    <group>\n      <field name=\"in_group_9\" groups=\"base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\"/>\n      <field name=\"in_group_6\" groups=\"base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\"/>\n    </group>\n    <group>\n      <field name=\"in_group_5\" groups=\"base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\"/>\n      <field name=\"in_group_7\" invisible=\"1\" groups=\"base.group_no_one\" readonly=\"sel_groups_1_10_11 != 1\"/>\n    </group>\n    <separator string=\"Other\"/>\n    <group>\n      <field name=\"in_group_3\" readonly=\"sel_groups_1_10_11 != 1\"/>\n    </group>\n    <group/>\n  </group>\n</field>"
}

升级模块:

翻译也不起作用

复制代码
#. module: resconfig
#: model_terms:ir.ui.view,arch_db:base.user_groups_view
msgid "User Type"
msgstr "用户类型"

#. module: resconfig
#: model_terms:ir.ui.view,arch_db:base.res.users.groups
msgid ""
"<separator string=\"Technical\" groups=\"base.group_no_one\"/>\n"
""
msgstr ""
"<separator string=\"真怪了的技术 \" groups=\"base.group_no_one\"/>\n"
""
复制代码
#. module: base
#: model_terms:ir.ui.view,arch_db:base.user_groups_view
msgid "User Type"
msgstr "用户类型"

#. module: base
#: model_terms:ir.ui.view,arch_db:base.res.users.groups
msgid ""
"<separator string=\"Technical\" groups=\"base.group_no_one\"/>\n"
""
msgstr ""
"<separator string=\"真怪了的技术 \" groups=\"base.group_no_one\"/>\n"
""
相关推荐
数智顾问4 分钟前
(133页PPT)数据中心基础设施规划设计(附下载方式)
大数据·数据库·人工智能
l1t8 分钟前
DeepSeek总结的PostgreSQL 的开源 TDE:pg_tde
数据库·postgresql·开源
南极企鹅8 分钟前
深入理解 MVCC:数据库并发控制的基石
java·数据库·mysql
欧神附体1239 分钟前
MYSQL数据库集群高可用和数据监控平台项目
数据库·mysql
仿生狮子12 分钟前
🎼 从文本到交互界面——GenUI 的中庸之道
前端·vue.js·markdown
wuhen_n18 分钟前
LangChain 核心:Chain 链式调用实现复杂 AI 任务
前端·langchain·ai编程
往上跑山21 分钟前
【Agentic RL / 强化学习 / OPD】OpenClaw-RL 源码阅读
前端
abcy07121323 分钟前
python在models定义了一个对象,接口调用时报错对象不存在models.xx.DoesNotExist
数据库·sqlite
無限進步D38 分钟前
MySQL 数据处理之增删改
数据库·mysql
我,也来自江湖39 分钟前
Redis的持久化有哪些方式
数据库·redis·缓存