在Rails i18n-js期间限制语言环境的数量

时间:2019-04-11 16:36:36

标签: ruby-on-rails rails-i18n

我正在研究Rails Web应用程序上的ruby,其中我们将Rails I18njs gem用于js翻译。在我的浏览器源代码中,我可以看到所有语言环境的js转换键均已呈现。有什么方法可以将其限制为仅用户区域设置和后备区域设置。

宝石名称:i18n-js

2 个答案:

答案 0 :(得分:0)

如果设置了I18n.available_locales(例如在您的Rails config / application.rb文件中),那么将仅导出指定的语言环境。

将您的语言环境设置为:

I18n.defaultLocale = "pt-BR";
I18n.locale = "pt-BR";
I18n.currentLocale();
// pt-BR

注意:您现在可以像这样加载I18n之前应用您的配置:

I18n = {} // You must define this object in top namespace, which should be `window`
I18n.defaultLocale = "pt-BR";
I18n.locale = "pt-BR";

// Load I18n from `i18n.js`, `application.js` or whatever

I18n.currentLocale();
// pt-BR

在此处查看更多详细信息:https://github.com/fnando/i18n-js

答案 1 :(得分:0)

您需要从将所有翻译加载到单个$("span[name^='question']").click(function(){ alert('test') }); 文件中的默认设置切换为export configuration

这是一个非常简单的配置,它将每种语言导出到单独的语言环境文件中:

config / i18n-js.yml

translations.js

然后,您可以像这样从布局中仅加载所需的语言:

app / views / layouts / application.html.erb

# bake fallbacks into each locale file.
fallbacks: true

# split translations into separate files per-locale
translations:
  - file: "public/javascripts/i18n/%{locale}.js"
  only: '*'