问题标签 [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.
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 应用程序控制器或视图中执行它,它就可以工作。有没有办法在应用程序启动时进行设置?
编辑:我已经设置了一个包含当前设置的示例存储库。
将翻译动态存储到 I18n 后端的 Gem。
一个 Rails 引擎,它加载 gem 并且应该有它的翻译可用
在有问题的测试中,取消注释MyI18n::Translations.store_dynamic_translations
指令使测试通过。但是我认为应该可以在引擎初始化程序中进行操作?
ruby-on-rails - Rails 将翻译添加到正在运行的 rails 环境
有没有办法通过 Rails 控制台手动注入翻译?
假设我在开发环境中工作,并且我想在生产控制台中测试一些代码(例如,测试一些真实数据的统计数据)。问题是,我要测试的代码依赖于不存在的新翻译(或已更改)在生产环境中。
所以我的代码返回了很多translation_missing
我可以注入缺少的翻译吗?通过哈希或 YML 文件?
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
(我有)来处理这个问题,但显然不是。我错过了什么?
internationalization - 日期名称翻译(I18n)似乎不起作用
我有一个使用 I18n v0.6.0 的 Rails 2.2.2 应用程序。
我有一个包含以下内容的 config/locales/da.yml 文件:
所以,我然后进入控制台并做
我希望得到
看起来 I18n 确实知道翻译,因为我可以这样做:
但是,它只是在 strftime 中不起作用。
我是不是误会了什么?
ruby - 选择带有参数的随机 I18n 翻译
在我的一张联系表上,有一条预先填写的信息,因此候选人可以避免不良信息,并有一个初步的良好合作基础。
到目前为止,我使用的是单个message_template
,但我想介绍一些带有随机列表的品种。
我的翻译需要一些变量才能正常工作
本来我有这样的东西
我想切换到随机翻译字符串(即从列表中选择随机翻译),并且仍然替换变量。
就像是
什么是有效的语法?
笔记 :
我试过<%= t('my_templates, name: @user.name, day: DateTime.now.strftime('B')).sample %>
但我获得了未替换参数值的字符串:
嗨 %{name},很好 %{day} 不是吗?你好吗 ?
ruby-on-rails - 如何将本地化字符串日期转换为 Ruby Date 对象?
我有一个日期,当它用作英语时效果很好
但是,当我使用另一种语言es
时,它不起作用。例如
文本字符串ago 02, 2015
本身来自另一个服务,我需要将其标准化为特定格式,例如
有没有办法在 Ruby 中做到这一点,所以
ruby-on-rails - Ruby on Rails,咖啡脚本内化
我有一个用于我的资源之一的咖啡脚本文件。似乎内部化在我的咖啡脚本文件中无法正常工作。我希望 I18 gem 转换“选择”脚本,但它不起作用。
咖啡脚本:
当我打开浏览器控制台时,我最终得到以下文本:
en.yml
tr.yml
有什么建议么,
谢谢。
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
语句?这里有更好的解决方案吗?
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 方法也不起作用,它总是在数据库中创建新行。
这里可能是什么问题?