因此,我们现有的Rails 2.3.5应用程序根本不支持国际化.现在,我非常熟悉Rails I18n的内容,但是我们在/javascripts/中有很多输出字符串.我不是这个方法的超级粉丝,但不幸的是现在修复它已经太晚了.

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

我想我可以让Rails应用程序提供JS文件,但这看起来很恶心.有插件可以做到这一点吗?

推荐答案

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

<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

然后我打电话来申请.html.雇员再培训局的情况如下:

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

这使您不必知道JavaScript中的当前语言环境.

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

I18n.alpha.bravo;

Ruby-on-rails相关问答推荐

ruby on rails:错误未知关键字::当使用google-cloud-storage下载文件时,soft_deleted

使用Hotwire/Turbo的Rails在链接悬停时获取请求

多对多模型通过控制台创建记录不起作用

nginx 中的 Rails 7 Active Storage - 图像中途停止加载 net::ERR_HTTP2_PROTOCOL_ERROR 200

获取所有属于模型的嵌套对象

组织和/或存储我一直在 RSpec 中使用的模拟对象的最佳方式是什么?

循环大量记录时 Ruby on Rails 内存泄漏; find_each 没有帮助

如何在 Ruby 字符串中返回最后一个斜杠(/)之后的所有内容

Rails(或 Ruby):Yes/No 而不是 True/False

Redis 引发需要 NOAUTH 身份验证错误,但没有设置密码

Rails:使用 gem 卸载特定版本的库

如何在 Rails ActiveRecord 中指定日期小于今天的条件

rmagick 和 OS X Lion

Rails:将所有未知路由重定向到 root_url

rails structure.sql和schema.rb有什么区别

加载常量时自动加载常量时检测到循环依赖

如何仅使用 PostgreSQL 创建简单的模糊搜索?

ActiveRecord 中多列的索引

ActiveRecord 查找以

Rails:如何将日期时间字符串解析为特定时区