Tag: rails i18n

在切换要转换的Blacklight标签的区域设置后,需要刷新页面

我正在尝试创建一个基于Blacklight的Rails应用程序的阿拉伯语版本。 这是我面临的问题: 当我切换语言时,除了Blacklight标签外,一切都完美无缺。 只有当我刷新页面时才会翻译标签。 这是我要显示的标签:“ترتيبحسبعام”(翻译:按年份排序) 但这就是我目前得到的:“年ترتيبحسب” 从阿拉伯语切换回英语时会出现同样的问题 – 标签以阿拉伯语显示,直到我刷新页面。 这就是我的Blacklight配置: class CatalogController I18n.t(‘sortby.year’) # … end end 这是我在应用程序控制器中设置区域设置的方法: class ApplicationController < ActionController::Base before_filter :set_locale def set_locale I18n.locale = params[:locale] || I18n.default_locale end # … end 我不确定发生了什么,我真的很感谢你的帮助。

Admin :: FaqsController的未定义方法`t’:Class

在我的项目中,我在命名空间管理员中有控制器,我正在使用breadcrumbs_on_rails来构建breadcrums。 我的控制器看起来像:模块管理员 class FaqsController < Admin::ApplicationController include FaqsHelper load_and_authorize_resource add_breadcrumb t('faqs.faqs_list') , :faqs_path #this line makes the problem def index @faqs = @faqs add_breadcrumb t('faqs.faqs_list') end def new add_breadcrumb t('faqs.new') end #other code ommitted end end 我可以在新的,编辑和其他控制器动作中使用t方法但是当这个’t’不在控制器动作中时,我有以下错误: undefined method `t’ for Admin::FaqsController:Class 有任何想法吗?

应用无法访问引擎或gem中的翻译文件

我尝试了我能想到的每一个组合,但我无法让我的应用程序看到我的引擎提供的本地化内容。 现在发动机做得很好。 我在Rails_admin看到了同样的问题。 它的i18n文件在一个单独的gem中。 主应用程序似乎无法看到文件。 我确定我如何指定I18n.load_path一定会出错,但它让我I18n.load_path了。 来自Ryan Bates的铁杆演员: I18n.load_path += Dir[Rails.root.join(‘config’, ‘locale’, ‘*.{rb,yml}’)] 我的一次黑客尝试: I18n.load_path += Dir[Rails.root.join(‘**’,’locales’, ‘**’, ‘*.{rb,yml}’)] 应用程序内部的任何引用都会导致找不到翻译。 任何线索。

inheritanceRails i18n子类中的validation错误消息

我明白了什么 假设我有一个方便的validation类,如: User {/regex/}, :message => :name_format end 在这种情况下,我可以使用i18n通过在/config/locals/en.yml包含以下内容来使错误消息可翻译: en: activerecord: errors: models: user: attributes: username: name_format: ‘has the way-wrong format, bro!’ 这很好,通常非常方便。 我想知道的是什么: 我的问题是:当我有从Userinheritance的子类时会发生什么: UserSubclassOne < User # extra stuff end UserSubclassTwo < User # extra stuff end … UserSubclassEnn < User # extra stuff end 现在的问题是Rails找不到翻译user_subclass_one.attributes.username.name_format 。 它抱怨说: translation missing: en.activerecord.errors.models.user_subclass_one.attributes.username.name_format 我希望Rails在UserSubclassOne中搜索字符串时会查找UserSubclassOne的层次结构,然后注意它何时获得“点击”,但是(除非我做了一些可怕的错误)显然不会发生了。 一个显而易见的解决方案是复制en.yml.en.errors.models中的user […]

Rails 4 i18n,如何转换子域用于语言环境的路由

我正在使用子域来确定Rails 4网站中的区域设置。 我有一个完全按照我想要的方式使用区域设置切换器,但现在我需要翻译路线,我不确定最好的方法。 我查看了https://github.com/kwi/i18n_routing i18n路由gem,但这不适用于子域,它似乎通过添加/ locale来改变路径,这不是我需要的。 其他gem似乎与Rails 4过时了。 编辑 基本上我希望能够使用相同的视图助手,但是更改URL以使用所选子域反映的任何语言。 这只是路线翻译。 我有语言特定的模板,我可以生成语言的导航模板,但我真的不想担心改变erb路径和url erb标签 结束编辑 来自routes.rb的示例 scope module: ‘countries’, shallow: true do get ‘south_american’, to: ‘south_america#index’, as: :south_america scope module: ‘south_america’ do get ‘south-america-weather’, to: ‘weather#index’, as: :south_america_weather get ‘south-america-gps-maps’, to: ‘gps#index’, as: :south_america_gps get ‘south-america-accommodation’, to: ‘hotels#index’, as: :south_america_hotels get ‘south-america-vacations’, to: ‘vacations#index’, as: :south_america_vacations […]

I18narrays中的插值

我在区域设置文件中使用数组,以便能够以区域设置特定的各种输出方法(ActionMailer模板,Prawn文档,HAML模板)生成文本块。 它工作得很好,但有时我想将变量传递给这些I18n调用。 但是,这不起作用。 假设我的语言环境文件如下所示: en: my_array: – “Line 1” – “Line 2” – “Line 3 has a %{variable}” – “Line 4” 我希望I18n.t(‘my_array’, :variable => ‘variable named variable’)如下: [“Line 1”, “Line 2”, “Line 3 has a variable named variable”, “Line 4”] 但是,输出是: [“Line 1”, “Line 2”, “Line 3 has a %{variable}”, “Line 4”] 检索数组后,我是否必须自己进行插值? 或者有更好的方法吗?

i18n用于选择框

我有一个名为Role的模型。 我在表格中使用下面的助手。 有没有办法将name属性的值更改为另一种语言? 区域设置/ de.yml de: role: admin: “something” editor: “something something”

Rails:删除丢失的翻译错误

我正在使用英语(en)和法语(fr)的国际化 ,我使用en.yml用于有限的使用和我在fr.yml写​​的大部分翻译。 使用locale作为fr一切都很好,但是在en中它显示错误,因为缺少翻译范围。 例如,如果我有类似的东西 t(“Search”), :class=>”search_input”) %> 我得到的输出是: <input class="search_input" id="search" name="search" placeholder=" 我想要的是它应该关闭英语的翻译错误 ,因为英语是我的默认语言,但在某些情况下我使用了en.yml。 或者,如果这不可能,则应删除整个错误消息。 谢谢

Rails使用Twitter Bootstrap设计I18n Flash消息

你好我是ruby on rails的新手,我很难理解I18n的flash消息。 我正在使用devise,rails 4和twitter bootstrap。我明白设计只使用flash[:notice]和flash[:alert] 。 我可以通过登录和注销来获取适用于我的用户模型的Flash消息。 但是,我无法获得注册的Flash错误或忘记密码才能正常显示。 它看起来像是默认的错误消息。 我看了很多与此相关的问题,我很困惑的方法是用漂亮的CSS显示所有flash消息(错误,成功,通知)。 也许答案已经在我的鼻子下的这篇文章中? rails – 设计 – 处理 – devise_error_messages 目前我的flash消息基于如何使用Twitter Bootstrap Rails gem定义Flash通知 这是我的例子: 在‘app / views / layouts / application.html.erb’中 ‘应用程序/视图/布局/ _messages.html.erb’ <div class="alert alert-“> × “flash_#{name}” %> 如何使用自定义css显示所有Flash消息(错误,成功,通知)? 更新:这篇文章显示了我正在尝试做的正确版本。 我遇到的问题是样式看起来不一样。 我相信这是因为html标签。 html = <<-HTML x #{sentence} #{messages} HTML 知道如何为警报设置相同的样式吗? 或者在CSS中使用什么标签? 您可以看到注册^^和登录(下方)页面之间的区别。 UPDATE2 我发了一篇关于我的问题的新post […]

用I18n.t提交按钮助手

我想为提交按钮编写一个帮助程序,它会考虑操作(创建或更新)以获得正确的翻译。 他们来了 : fr: submit: create: user: “Créer mon compte” product: “Déposer l’objet” session: “Se connecter” update: user: “Mettre à jour mon compte” product: “Modifier l’objet” 我试过这个: def submit_button(model) if model == nil I18n.t(‘submit.create.%{model}’) else I18n.t(‘submit.update.%{model}’) end end 但它没有用,rspec发给我的是: Capybara::ElementNotFound: Unable to find button … 我知道这是一个语法问题,但我找不到如何使这项工作……