I18n 翻译不在数据表初始化中呈现?
I18n translations not rendering in Datatable initializations?
我正在尝试将翻译应用于 jquery 数据表。即
myTable.DataTable({
language: {
paginate: {
next: (I18n.t('filters.paginate.next')),
previous: (I18n.t('filters.paginate.previous'))
}
}
});
当我运行:
I18n.locale
//=>en(即使更改了语言环境)
在下方,您会看到 I18n json 为相同的值显示了两个不同的语言环境,只是在括号中选择了一个,即使它们是相同的属性?
一段时间后,我发现问题的原因是我用来初始化数据表的函数是 IIFE (function() { })();
,并且在 $(document).ready 之前被处理,并且正确I18n 语言环境不会及时更新我的翻译。所以我在 URL 查询字符串上使用了正则表达式,并在 IIFE 中调用了一个函数,并将 I18n.locale 设置为找到的值:
function QueryString(item){
var svalue = location.search.match(new RegExp("[\?\&]" + item + "=([^\&]*)
(\&?)","i"));
return svalue ? svalue[1] : svalue;
}
(function() {
I18n.locale = QueryString('locale');
//initialized tables and added translations
.... })();
我正在尝试将翻译应用于 jquery 数据表。即
myTable.DataTable({
language: {
paginate: {
next: (I18n.t('filters.paginate.next')),
previous: (I18n.t('filters.paginate.previous'))
}
}
});
当我运行:
I18n.locale
//=>en(即使更改了语言环境)
在下方,您会看到 I18n json 为相同的值显示了两个不同的语言环境,只是在括号中选择了一个,即使它们是相同的属性?
一段时间后,我发现问题的原因是我用来初始化数据表的函数是 IIFE (function() { })();
,并且在 $(document).ready 之前被处理,并且正确I18n 语言环境不会及时更新我的翻译。所以我在 URL 查询字符串上使用了正则表达式,并在 IIFE 中调用了一个函数,并将 I18n.locale 设置为找到的值:
function QueryString(item){
var svalue = location.search.match(new RegExp("[\?\&]" + item + "=([^\&]*)
(\&?)","i"));
return svalue ? svalue[1] : svalue;
}
(function() {
I18n.locale = QueryString('locale');
//initialized tables and added translations
.... })();