草庐IT

ruby-on-rails - 是否可以在我的 I18n en.yml 文件中使用 yaml key 中的连字符?

例如:en:foobar-does-not-work:'Thisismyvalue'那么如果我这样做:t(foobar-does-not-work)#=>returnsnil这不会在Ruby的yml中解析。有什么方法可以让它发挥作用吗?我的key基于其中包含破折号(-)的URL。 最佳答案 您使用的是哪个版本的ruby​​?你能告诉我们你的代码和错误吗?对我有用:>require'yaml'>YAML.load_file('foo.yml'){"en"=>{"foobar-does-not-work"=>"Thisismyvalue

ruby - I18n.t 翻译缺少默认值 Nil

所以我知道如果我在读取yaml文件时遇到“翻译缺失:”如何返回默认值。some=I18n.t("something.something_else",default:"value")但是如果我希望默认值为nil,我该如何以Ruby的方式做到这一点呢?我知道我可以正则表达式并匹配变量some中的“translationmissing:”,如果它匹配,我会将它分配给nil。但我想做的是拥有some=I18n.t("something.something_else",default:nil)但它只是返回了我缺少的翻译。有谁知道好的方法吗? 最佳答案

ruby-on-rails - 运行 "bin/rake assets:precompile"时未设置 I18n 加载路径!

我正在使用I18n-js,我的客户端I18n.t调用在生产环境中运行时都会返回翻译缺失消息。开发测试一切正常。这个问题的根源似乎在于Assets管道。I18n.load_path不包含我的任何翻译(当运行bin/rakeassets:precompile时)它只包含以下路径:["/home/chris/.rvm/gems/ruby-1.9.3-p125@Project/gems/activesupport-3.2.3/lib/active_support/locale/en.yml","/home/chris/.rvm/gems/ruby-1.9.3-p125@Project/gems

ruby-on-rails - Ruby on Rails + 设计 + I18n : how to set locale?

我在ApplicationController中使用before_filter为我的应用程序设置语言环境:classApplicationController它适用于我编写的Controller。但是所有devise的消息仍然是英文。在config/application.rb中设置config.i18n.default_locale="uk"(或其他)有效,所以我猜问题在于设计的Controller确实不要使用我的before_filter(可能它根本不继承ApplicationController(?))。如何解决这个问题?如何让设计使用我的语言环境?

ruby - Rails 4 引擎是否自动加载引擎的 i18n 语言环境文件?

我有一个关于Rails引擎的问题,在关于Rails引擎的Rails指南中没有提到。我希望在这里得到它。例如,我有一个名为my_engine的引擎和一个名为my_app的应用。出于开发目的,在my_app的Gemfile中,我使用:file键简单地将my_engine包含在以下行中。#my_app/Gemfile...gem"my_engine",:path=>"./../my_engine"...my_engine结构是这样的:.├──Gemfile├──Gemfile.lock├──app│  ├──...||...|├──config│  ├──locales│  │  └──mo

ruby-on-rails - 升级到 Ubuntu 18.04 后 Rails 控制台错误

从ubuntu16.04升级到ubuntu18.04后,从rails项目的根目录运行railsconsole时收到以下错误。只有控制台似乎受到影响,我可以毫无问题地启动puma服务器。RunningviaSpringpreloaderinprocess23887/home/user/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in`require':libreadline.so.6:cannotopensharedobjectfile:Nosuchfileord

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

我创建了一个gem(TranslationsGem),我在多个项目(一个引擎和一个Rails应用程序)中使用它。这个gem设置了几个哈希值,这些哈希值被加载到I18n后端。#store_dynamic_translations方法设置了几个哈希,这些哈希被加载到I18n后端。它基本上是这样工作的:I18n.backend.store_translations(:en,{test:{property:'value'}})我的测试确认方法和翻译加载工作正常。但是我无法让它在主机引擎和Rails应用程序中工作。在我的测试环境中,我必须在我的test_helper中执行该方法,以确保正确加载翻

ruby - I18n::InvalidLocaleData:I18n gem 在 js 导出中有问题

我正在OSX10.13.4上使用Rails3.2.22.4、Ruby2.2.7开发一个应用程序。有多个翻译文件,例如。en.yml,sq.yml基于国家。从下面的ruby​​mine执行命令时,加载网页时出现错误。rake--tracei18n:js:export来自en.yml的yaml内容已经过验证并且是正确的。从文件中删除后引发错误的特定行将在其他一些.yml文件中给出错误。正在使用当前版本的gemi18n(0.9.5)。Rails服务器启动但加载Web应用程序第一页时因同样的错误而中断。代码遇到i18n翻译代码时抛出错误,当错误从一个文件转移到另一个文件时,yml格式不是问题。

ruby-on-rails - 主目录中的 Rails 命令导致 "i18n gem is not available"错误

我在我的Ubuntu主目录中,试图用railsnew创建一个新的rails应用程序,但是我得到了这个错误:Thei18ngemisnotavailable.PleaseaddittoyourGemfileandrunbundleinstall我运行的任何rails命令都会出现该错误。我真的很困惑,因为我不在应用程序中。我只是在我的主目录中。没有gem文件。我尝试使用geminstall'i18n'将“i18n”安装到我的主目录中,它成功了,但我仍然收到该错误。我以前从未遇到过在我的主目录中使用rails命令的任何问题。当我cd进入我的个人应用程序时,所有与rails相关的东西都能正常工

ruby-on-rails - 如何在 Rails 3 中将 i18n 用于我的错误页面?

我需要在我的public/404.html页面上使用I18napi。如果我添加到404.html页面:我收到如下错误消息:Cannotuset('.page_were_looking')shortcutbecausepathisnotavailable如何使用此页面的I18n功能? 最佳答案 Rails通过使用类似public/500.de.html的路径提供错误页面来支持多语言,其中de是语言环境。在Rails本身已基本崩溃的情况下使用i18n是没有意义的。如果Rails无法获得正确的本地化错误文件,它或服务器可能会提供publi