Odoo - How to translate strings in javascript file(Odoo-如何翻译javascript文件中的字符串)
问题描述
我正在为缺乏对做Javascript的理解而苦苦挣扎。Odoo文档非常糟糕,我有另一个关于这个主题的问题,这里没有答案:Odoo10 - How to do javascript
我希望我在这件事上会有更多的运气。
我现在尝试做的事情:
var _t = null;
odoo.define('mymodule.translate', function (require) {
"use strict";
var translation = require('web.translation');
_t = translation._t;
console.log("_t assigned");
});
A视图:
app.categoriesView = Backbone.View.extend({
tagName: 'div',
className: 'categoriesView',
template: _.template($('#categories_list_template').html()),
initialize: function() {
this.title = _t('OUR PRODUCTS');
console.log("Initilized title: "+this.title);
},
});
PO文件:
#. module: mymodule
#: code:addons/mymodule/static/js/views.js:8
#, python-format
msgid "OUR PRODUCTS"
msgstr "PRODUKTI"
我没有收到任何错误,Firebug控制台仅显示:
_t assigned
Initilized title: OUR PRODUCTS
这样字符串就不会被翻译。我做错了什么?
推荐答案
以防有人也遇到这个问题,并且非常确定她/他做的都是正确的,这里有一个提示,可以帮助我解决问题:
当Odoo lazy通过URL/WebSite/Translations/加载JavaScript的翻译时,您可以很容易地监控您的翻译是否在响应JSON数据中可用。在我的情况下,它们不是,所以我跟踪了url的踪迹。
最后,我所要做的就是将ir.http的一个子项添加到我的模块中,该模块将模块名添加到翻译响应中:
# -*- coding: utf-8 -*-
from odoo import models
class IrHttp(models.AbstractModel):
_inherit = 'ir.http'
@classmethod
def _get_translation_frontend_modules_name(cls):
mods = super(IrHttp, cls)._get_translation_frontend_modules_name()
return mods + ['MyModuleName']
这一简单步骤将我的模块添加到Web请求响应的模块列表中,并交付所有翻译后的字符串。
这篇关于Odoo-如何翻译javascript文件中的字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Odoo-如何翻译javascript文件中的字符串
基础教程推荐
- 在 JS 中获取客户端时区(不是 GMT 偏移量) 2022-01-01
- Karma-Jasmine:如何正确监视 Modal? 2022-01-01
- 角度Apollo设置WatchQuery结果为可用变量 2022-01-01
- 悬停时滑动输入并停留几秒钟 2022-01-01
- 我什么时候应该在导入时使用方括号 2022-01-01
- 在for循环中使用setTimeout 2022-01-01
- 响应更改 div 大小保持纵横比 2022-01-01
- 当用户滚动离开时如何暂停 youtube 嵌入 2022-01-01
- 有没有办法使用OpenLayers更改OpenStreetMap中某些要素 2022-09-06
- 动态更新多个选择框 2022-01-01