Internationalization 客户端翻译在CKAN中不起作用
我在翻译CKAN中的客户端文本时遇到问题。我的网站是法语的,所以问题是: -如果我点击左边的绿色按钮“S'abonner”,它会将按钮更改为红色,并显示文本“Se désabonner”,但它会显示“Unfollow”,如照片中所示: 如果我再次单击它,它会显示“Follow”(而不是“S'abonner”)。这是客户端的一个问题。通常,当您在服务器端生成文本时,您会在模板uz('msgid出现在pofile')中写入文本,但在客户端,它使用对“/api/i18n/{language}”的AJAX调用的结果 我做了一些挖掘,客户端翻译似乎使用了AJAX调用“/api/i18n/fr”的结果,但我得到的只是一个json对象:Internationalization 客户端翻译在CKAN中不起作用,internationalization,ckan,Internationalization,Ckan,我在翻译CKAN中的客户端文本时遇到问题。我的网站是法语的,所以问题是: -如果我点击左边的绿色按钮“S'abonner”,它会将按钮更改为红色,并显示文本“Se désabonner”,但它会显示“Unfollow”,如照片中所示: 如果我再次单击它,它会显示“Follow”(而不是“S'abonner”)。这是客户端的一个问题。通常,当您在服务器端生成文本时,您会在模板uz('msgid出现在pofile')中写入文本,但在客户端,它使用对“/api/i18n/{language}”的A
{
"": {
"domain": "ckan",
"lang": "fr",
"plural-forms": "nplurals=2; plural=(n > 1)"
}
}
但是,如果我看看ckan的演示网站,(http://demo.ckan.org/api/i18n/fr
),我得到一个长JSON文件,其中包含所有翻译。
我设法发现这个Ajax调用是从哪里完成的,显然它来自于“src/ckan/ckan/public/base/javascript/client.js”,函数:
getLocaleData: function (locale, success, error) {
var url = this.url('/api/i18n/' + (locale || ''));
return jQuery.getJSON(url).then(success, error);
}
If I replace
var url = this.url('/api/i18n/' + (locale || ''));
与
问题解决了,因为我在json对象中获得了翻译。
我的问题是如何生成正确的数据,production.ini中是否有参数?不幸的是,CKAN中的文档非常糟糕,因此我没有这方面的线索。有人有线索吗?
谢谢 我怀疑您可能正在运行CKAN的一个未发布的分支(例如master),因此还没有构建Javascript翻译 这是通过以下命令完成的:
paster front-end-build -c config_file.ini
只要运行这个命令,翻译就会很好
在主存储库上,这只在发布之前进行,以避免使git历史变得复杂
例如,检查此站点是否运行最新的主分支,但前端每晚都在其上构建:
我应用了您的命令,但粘贴程序似乎无法识别该命令。以下是输出:命令“前端构建”未知(您可能需要运行setup.py egg_info)是否从ckan文件夹({virtualenv}/src/ckan)运行它?
paster front-end-build -c config_file.ini