首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Rails: Javascript字符串的国际化?

Rails: Javascript字符串的国际化?
EN

Stack Overflow用户
提问于 2010-04-24 04:20:29
回答 10查看 25.2K关注 0票数 58

因此,我们有一个现有的Rails 2.3.5应用程序,它根本不支持国际化。现在,我很熟悉Rails I18n的东西,但是我们在/javascripts/中有很多输出字符串。我不是这种方法的狂热粉丝,但不幸的是,现在修复它已经太晚了。

我们如何在Rails应用程序中国际化JS文件中存储的字符串?Rails甚至不提供JS文件...

我在想,我总是可以让Rails应用程序提供JS文件,但这似乎相当粗俗。有没有插件可以做到这一点?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2012-05-16 07:48:37

为什么不做一些简单的事情,比如:

<script type="text/javascript">
  window.I18n = <%= I18n.backend.send(:translations).to_json.html_safe %>
</script>

然后,在JS中,您可以执行以下操作:

I18n["en-US"]["alpha"]["bravo"];

我已经把我的包在一个应用程序助手中了。

def current_translations
  @translations ||= I18n.backend.send(:translations)
  @translations[I18n.locale].with_indifferent_access
end

然后我在application.html.erb中的调用如下所示:

<script type="text/javascript">
  window.I18n = <%= current_translations.to_json.html_safe %>
</script>

这使您不必了解JavaScript中的当前区域设置。

I18n["alpha"]["bravo"];

I18n.alpha.bravo;
票数 100
EN

Stack Overflow用户

发布于 2012-02-16 17:52:20

巴利布被遗弃了。使用i18n-js:https://github.com/fnando/i18n-js

票数 20
EN

Stack Overflow用户

发布于 2013-09-18 10:03:09

Ryan上面的解决方案是完美的,除了后端需要初始化,如果还没有初始化的话。

I18n.backend.send(:init_translations) unless I18n.backend.initialized?
# now you can safely dump the translations to json
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2701749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档