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文件中的字符串


- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- Flexslider 箭头未正确显示 2022-01-01
- 400或500级别的HTTP响应 2022-01-01
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- 失败的 Canvas 360 jquery 插件 2022-01-01
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- Fetch API 如何获取响应体? 2022-01-01
- addEventListener 在 IE 11 中不起作用 2022-01-01