问题标签 [i18n-gem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
203 浏览

ruby - 如何获取 i18n 文件中的语言环境?

在我基于 Sinatra 的项目中,我有一个登录路径

如果出现问题,例如凭证,用户将被引导到带有本地化消息的页面。使用以下sorry功能会发生这种情况:

该消息使用以下视图呈现:

一些本地化字符串中包含 URL:

我需要将用户定向到en/loginURL(而不是/login),因为我们当前的 i18n 框架使用该前缀来确定语言环境。

如果我使用上面的版本(<a href="<%= I18n.locale %>/login">),它不起作用。

如何使用本地化文本将语言环境插入到文件内的 URL 中?有什么解决方法吗?

0 投票
1 回答
719 浏览

ruby-on-rails - 将 gem 中的 I18n 翻译动态加载到 Rails 引擎中

我创建了一个 gem (TranslationsGem),我在多个项目(一个引擎和一个 Rails 应用程序)中使用它。这个 gem 设置了几个哈希值,这些哈希值被加载到 I18n 后端。

一个方法#store_dynamic_translations设置了几个哈希值,这些哈希值被加载到 I18n 后端。它基本上是这样工作的:

我的测试确认方法和翻译加载正常。但是,我无法让它在主机引擎和 Rails 应用程序中工作。在我的测试环境中,我必须执行我的方法test_helper以确保正确加载翻译。在测试环境之外,我似乎无法让它正常工作。我可以验证该方法是否已执行,但未加载翻译。

我已经尝试了好几个小时,比如在引擎初始化程序中执行方法和使用 ActiveSupport 钩子。在主机 Rails 应用程序中,我尝试#store_dynamic_translations在初始化程序中执行,但无济于事。

奇怪的是,如果我#store_dynamic_translations在我的 Rails 应用程序控制器或视图中执行它,它就可以工作。有没有办法在应用程序启动时进行设置?


编辑:我已经设置了一个包含当前设置的示例存储库

  1. 将翻译动态存储到 I18n 后端的 Gem。

  2. 一个 Rails 引擎,它加载 gem 并且应该有它的翻译可用

有问题的测试中,取消注释MyI18n::Translations.store_dynamic_translations指令使测试通过。但是我认为应该可以在引擎初始化程序中进行操作?

0 投票
1 回答
91 浏览

ruby-on-rails - Rails 将翻译添加到正在运行的 rails 环境

有没有办法通过 Rails 控制台手动注入翻译?

假设我在开发环境中工作,并且我想在生产控制台中测试一些代码(例如,测试一些真实数据的统计数据)。问题是,我要测试的代码依赖于不存在的新翻译(或已更改)在生产环境中。

所以我的代码返回了很多translation_missing

我可以注入缺少的翻译吗?通过哈希或 YML 文件?

0 投票
1 回答
368 浏览

ruby - 使用 Rack::Locale 的 Sinatra I18n 回退

我正在尝试使用 I18n 设置一个简单的 Sinatra 应用程序,遵循推荐的 Sinatra recipe,并使用Rack:Locale来确定语言。

我的 app.rb:

我的语言环境/en.yml:

当我运行rackup并访问我的 Sinatra 应用程序的根路径时,我得到以下信息:

我认为I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)通过不找到en-US并退回到en(我有)来处理这个问题,但显然不是。我错过了什么?

0 投票
1 回答
304 浏览

internationalization - 日期名称翻译(I18n)似乎不起作用

我有一个使用 I18n v0.6.0 的 Rails 2.2.2 应用程序。

我有一个包含以下内容的 config/locales/da.yml 文件:

所以,我然后进入控制台并做

我希望得到

看起来 I18n 确实知道翻译,因为我可以这样做:

但是,它只是在 strftime 中不起作用。

我是不是误会了什么?

0 投票
1 回答
360 浏览

ruby - 选择带有参数的随机 I18n 翻译

在我的一张联系表上,有一条预先填写的信息,因此候选人可以避免不良信息,并有一个初步的良好合作基础。

到目前为止,我使用的是单个message_template,但我想介绍一些带有随机列表的品种。

我的翻译需要一些变量才能正常工作

本来我有这样的东西

我想切换到随机翻译字符串(即从列表中选择随机翻译),并且仍然替换变量。

就像是

什么是有效的语法?

笔记 :

我试过<%= t('my_templates, name: @user.name, day: DateTime.now.strftime('B')).sample %>但我获得了未替换参数值的字符串:

嗨 %{name},很好 %{day} 不是吗?你好吗 ?

0 投票
2 回答
1439 浏览

ruby-on-rails - 如何将本地化字符串日期转换为 Ruby Date 对象?

我有一个日期,当它用作英语时效果很好

但是,当我使用另一种语言es时,它不起作用。例如

文本字符串ago 02, 2015本身来自另一个服务,我需要将其标准化为特定格式,例如

有没有办法在 Ruby 中做到这一点,所以

0 投票
1 回答
107 浏览

ruby-on-rails - Ruby on Rails,咖啡脚本内化

我有一个用于我的资源之一的咖啡脚本文件。似乎内部化在我的咖啡脚本文件中无法正常工作。我希望 I18 gem 转换“选择”脚本,但它不起作用。

咖啡脚本:

当我打开浏览器控制台时,我最终得到以下文本:

en.yml

tr.yml

有什么建议么,

谢谢。

0 投票
1 回答
148 浏览

ruby-on-rails - 多行 i18n-tasks-use 语句

我们有一个从传入请求中获取其 I18n 密钥的存储库。所以,我一直在使用i18n-tasks-use明确声明我们打算用来满足我们的 linter 的所有键。

例如:

i18n-tasks-use # i18n-tasks-use t('notification.notification_name.alt_1')

但是,有些i18n-tasks-use语句超出了 rubocop 行长度限制。我已经尝试了这两个多行i18n-tasks-use语句,但似乎无法让它工作。

有没有办法创建多行i18n-tasks-use语句?这里有更好的解决方案吗?

0 投票
0 回答
55 浏览

ruby-on-rails - 带有“find_or_create_by”添加垃圾值的种子数据库

我正在使用 find_or_create_by 方法来播种这样的 MySQL 数据库:

我正在使用 i18n 库中的 Translation 类。

而对应的MySQL表是这样的:

全部都有字符集 'utf8' 和排序规则 'utf8_unicode_ci'。

但是,在我运行之后bundle exec rake db:seed,我在“值”中看到了垃圾值,例如:

在 MySQL 工作台上,\n 没有像“\n”那样出现,我只看到垃圾值,但我可以在日志文件中看到 \n。

我猜测由于这些字符 find_or_create_by 方法也不起作用,它总是在数据库中创建新行。

这里可能是什么问题?