使Rails应用程序多语言的最佳实践

时间:2014-02-22 02:30:57

标签: html ruby-on-rails html5 ruby-on-rails-4 multilingual

大家好:D我刚开始学习Rails,目前我有一个问题。

我正在构建一个需要翻译成4种语言的Rails网站。最实用,最方便的方法是什么?

我读过主要目标是为每种语言创建单独的文件夹并复制每种语言的所有视图。但是我的控制器里面仍然会有notice英文信息,所以我该如何处理。 Routes也是我关注的问题。我是否应该为4种不同的翻译视图提供4种不同的路线。

您建议如何处理此问题?我没有在网上找到任何具体内容。

感谢您的建议!

1 个答案:

答案 0 :(得分:2)

您可以执行的通知消息

  def create
    if user.save
      flash[:notice] = t(:user_was_successfully_created)
      redirect_to users_users_path
    else
      render :new
    end
  end

你应该有4种不同的路线

Rails国际化(I18n)API

查看此链接http://guides.rubyonrails.org/i18n.html

Rails国际化(I18n)API

随Ruby on Rails一起提供的Ruby I18n(国际化简写)gem(从Rails 2.2开始)提供了一个易于使用且可扩展的框架,用于将您的应用程序翻译成除英语之外的单一自定义语言或提供在您的应用程序中提供多语言支持。

“国际化”过程通常意味着从应用程序中抽象出所有字符串和其他特定于语言环境的位(例如日期或货币格式)。 “本地化”过程意味着为这些位提供翻译和本地化格式.1

因此,在国际化您的Rails应用程序的过程中,您必须:

Ensure you have support for i18n.
Tell Rails where to find locale dictionaries.
Tell Rails how to set, preserve and switch locales.

在本地化您的应用程序的过程中,您可能希望执行以下三项操作:

Replace or supplement Rails' default locale — e.g. date and time formats, month names, Active Record model names, etc.
Abstract strings in your application into keyed dictionaries — e.g. flash messages, static text in your views, etc.
Store the resulting dictionaries somewhere.

本指南将引导您完成I18n API,并包含有关如何从一开始就使Rails应用程序国际化的教程。

阅读本指南后,您将知道: