客户端翻译在CKAN中不起作用

时间:2015-01-14 16:33:10

标签: internationalization ckan

我在CKAN中翻译客户端文本时遇到问题。我的网站是法语,所以这是问题所在: - 如果我点击左边的绿色按钮“S'abonner”,它应该将按钮更改为红色按钮并显示文本“Sedésabonner”,而是显示“取消关注”,如照片中所示: enter image description here

enter image description here

如果我再次点击它会显示“Follow”(而不是“S'abonner”)。所以这是客户端的问题。通常,当您在服务器端生成文本时,您在模板_('msgid存在于pofile'中)中写入,但是,在客户端,它使用来自AJAX调用的结果“/ api / i18n / {language} ”

我做了一些挖掘,似乎客户端转换使用了来自AJAX调用的结果“/ api / i18n / fr”,但我得到的只是一个json对象:

{
"": {
"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 || '')); 

var url = this.url('http://demo.ckan.org/api/i18n/fr')

问题解决了,因为我在json对象中得到了翻译。      我的问题是如何才能生成正确的数据,是否有一个参数放在production.ini中?不幸的是,CKAN的文档真的很差,所以我没有这方面的线索。有人有线索吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

我怀疑您可能正在运行未发布的CKAN分支(例如master),因此尚未构建Javascript转换。

使用以下命令完成:

paster front-end-build -c config_file.ini

只需运行此命令,翻译就可以了。

在主存储库上,这只是在发布之前完成,以避免使git历史记录复杂化。

检查此网站是否运行最新的主分支,但每晚都在前端构建:

http://master.ckan.org/fr/dataset/world-countries