`

rails 本地化i18n

 
阅读更多
基础配置
config.autoload_paths += %W(#{config.root}/lib)
config.autoload_paths += %W(#{config.root}/lib/bootstrap)
config.i18n.locale = 'zh-CN'
config.i18n.default_locale = 'zh-CN'
上面配置之后其它不管文件名取为devise.zh-CN.yml还是simple_form.zh_CN.yml只要里面文件第一句为zh-CN:那么就会对应本地化。
产生两个方法i18n.t/l
单独读取本地化时采用上面的方法,然后层层剥去里面的结构
I18n.t("models." + model.to_s.underscore) 如果有多层则在到参数地方按照结构的层次往下加I18n.t("datatime."+'user.'+'name')这样达到目的

项目做的一个获取所有模型对应的本地化。
(1)使用ActiveRecord::Base.descendants获取所有模型名字
     在lib文件下创建一个all_models.rb
     # -*- encoding : utf-8 -*-
module Rails
  def self.all_models
    Rails.application.eager_load! if Rails.env != "production" rescue nil
    ActiveRecord::Base.descendants
  end
end
(2)创建所有模型本地化的实例,在前端直接使用
require './lib/all_models'
before_filter :get_all_models, only: [:new, :edit]
private
  def get_all_models
    @all_models = Rails.all_models.map do |model|
      translation = I18n.t("models." + model.to_s.underscore)
      if translation.include? 'translation missing'
        nil
      else
        [translation,model.to_s]
      end
    end.compact.sort
  end
<td><%= f.input :subject_class, collection: @all_models, label: false, :include_blank => "请选择", :input_html => {:class => "select2"} %></td>

使用yml文件进行初始化数据。
读取文件内容方式YAML.load_file("#{Rails.root}/config/database.yml")
读到的是一个hash。可以作为参数直接传给某个模型。这样就完成了创建。
分享到:
评论

相关推荐

    Ruby-i18nRuby的国际化和本地化的解决方案

    在Rails应用中,Ruby-i18n被深度集成,提供了更丰富的功能,如视图辅助方法、路由本地化等。 10. **其他扩展和工具** Ruby-i18n社区还提供了许多扩展和工具,如`i18n-tasks`用于管理翻译任务,`i18n-spec`用于...

    i18n:轻量级库,可在Javascript上提供I18n翻译

    百济I18n 这是一个小库,可以在JavaScript上提供Rails I18n的翻译。 从借来的特征: 多元化日期/时间本地化号码本地化语言环境回退资产管道支持还有更多! :)用法安装通过NPM npm install baiji-i18n 运行npm ...

    i18n:Ruby的国际化(i18n)库

    Ruby国际化和本地化(i18n)解决方案。 目前由@radar维护。 用法 滑轨 您将最常在Rails应用程序中使用此库。 用法的示例, 。 Ruby(无Rails) 如果要在没有Rails的情况下使用此库,则只需将i18n添加到Gemfile ...

    Ruby的国际化(i18n)库-Ruby开发

    有关e Ruby I18n的Ruby国际化和本地化(i18n)解决方案,请参见《 Rails指南》。 目前由@radar维护。 使用Rails最常见的是在Rails应用程序中使用此库。 有关用法的示例,请参见《 Rails指南》。 Ruby(不带Rails)...

    i18n-bamboo:通过猴子修补 Rails I18n 模块来帮助开发,以始终返回所有可用语言环境中最长的翻译或本地化值

    I18n:Bamboo monkey 修补 Rails I18n 模块,并将强制所有对 I18n.translate (I18n.t) 和 I18n.localize (I18n.l) 的调用返回所有可用语言环境中最长的翻译或本地化值。 出于显而易见的原因(猴子补丁 :anxious_face...

    i18n任务:针对Ruby i18n的静态分析管理翻译和本地化

    i18n-tasks可以与使用ruby 任何项目一起使用(Rails中的默认设置)。 将i18n任务添加到Gemfile中: gem 'i18n-tasks' , '~&gt; 0.9.33' 复制默认: $ cp $( i18n-tasks gem-path ) /templates/config/i18n-tasks....

    Ruby-Localer自动检测丢失的I18n翻译工具

    它包括了本地化字符串的存储、查找以及替换机制,使得开发者可以通过简单的API调用来实现多语言支持。 Localer工具的核心功能在于检测未被翻译的文本。在开发过程中,开发者可能会遗漏某些需要翻译的字符串,这些...

    Ruby-R18n是一个i18n工具用于将Ruby应用程序翻译成多种语言

    Ruby-R18n是Ruby开发领域的一个重要工具,专门用于实现国际化(i18n)功能,使得开发者能够轻松地将他们的应用程序翻译成不同语言,以满足全球用户的需求。i18n是一个广泛应用于软件行业的术语,代表...

    i18n-js:这是一个小库,可以在Javascript上提供I18n翻译。 它带有Rails支持

    这是一个小库,可以在JavaScript上提供Rails I18n的翻译。 特征: 多元化 日期/时间本地化 号码本地化 语言环境回退 资产管道支持 还有更多! :) 版本公告 main分支(包括此README)适用于最新的3.0.0而不是2.x ...

    rails国际化

    在Rails中,国际化(i18n,internationalization)是为了支持多语言环境而设计的一种功能。这篇博文将深入探讨Rails的国际化机制及其应用。 Rails的国际化系统允许开发者轻松地为不同地区的用户提供本地化的应用...

    friendly-locale:Xamarin和.NET的简单跨平台国际化。 本地化类似于Ruby On Rails-http:guides.rubyonrails.orgi18n.html(测试版)

    `LocalizationC#`可能是指一个.NET库,用于处理本地化任务,如加载和管理YAML文件,或者提供类似于Rails-i18n的API。 **友好-locale的核心功能** - **多语言支持**:通过YAML文件,开发者可以轻松添加新的语言环境...

    i18n-js-6bfdcd7e14df-mirror:这是已删除的i18n-js文件的副本

    I18n.js 这是一个小库,可以在Javascript上提供Rails I18n的翻译。 这是I18n旧版本的副本文件,该文件已被删除原始URL。 特征: 多元化日期/时间本地化号码本地化语言环境回退资产管道支持还有更多! :)用法安装...

    Struts2和Rails的国际化实现

    6. **时间、日期和数字的本地化**:Rails的i18n库还支持日期、时间、数字和其他格式的本地化。 总结来说,Struts2和Rails的国际化实现都是基于资源文件,并通过特定的API或辅助方法在代码中引用这些资源。它们都...

    gitlab-i18n-patch, Unofficial Japanese translation for GitLab Community Edition..zip

    "gitlab-i18n-patch" 是针对 GitLab 社区版的一个非官方的日语翻译补丁,旨在为日本用户提供更友好的本地化体验。 在开源世界中,多语言支持是至关重要的,因为这能够吸引全球范围内的用户和贡献者。GitLab-i18n-...

    Ruby-i18ntasks可以帮助您找到并管理缺失和未使用的翻译

    这通常涉及到将文本字符串提取出来,放到单独的翻译文件中,以便于不同语言的本地化工作。 Ruby-i18ntasks 就是在这个背景下诞生的。它利用了Ruby on Rails的I18n框架,通过自动化的方式来检测和解决国际化问题。...

    the_actual_locales:查找实际本地化密钥并将其记录到 i18n 语言环境文件中的方法

    查找实际本地化密钥并将其记录到 i18n 语言环境文件中的方法 问题 经过几个月的 Rails 项目维护后,可能很难找到实际的本地化密钥 解决方案 这个 gem 收集所有已执行的I18n.translate和I18n.t调用并将其转储到位于#{...

    localeapp:发送和检索您的ruby i18n本地化版本到语言环境翻译服务

    尽管i18n gem使用YAML作为默认文件格式,但它不需要对ruby对象进行序列化。 为了避免详述的那种安全问题, ,localeapp gem将不会加载任何包含字符串!ruby /的YAML。 安装 请注意,实际上,API密钥永远不会写入gem...

    simple_flash:I18n在Rails中闪烁

    I18n在Rails中闪烁。 安装 将此行添加到您的应用程序的Gemfile中: gem "simple_flash", "~&gt; 1.0" 然后执行: $ bundle 用法 SimpleFlash将两个辅助方法添加到您的控制器: redirect_to_with_success和redirect_...

    Rails osdc

    3. **国际化和本地化**: Rails支持国际化(i18n)和本地化(l10n),允许开发者轻松地为不同的语言和地区定制应用程序。这通常涉及到对字符串资源进行管理,以及日期和时间格式的调整。 ### 结论 通过上述知识点的学习...

Global site tag (gtag.js) - Google Analytics