大家好 :D 我刚开始学习Rails,目前有一个疑问。
我正在构建一个需要翻译成4种语言的Rails网站。最实用和方便的方法是什么?
我已经读过文章,主要是为每种语言制作单独的文件夹,并复制所有视图到每种语言的文件夹中。但是,我的控制器上仍然会有英文的 notice
消息,我该如何处理? Routes
也是我的关注点。是否应该为4个不同的翻译视图创建4个不同的路由?
您推荐如何解决这个问题?我在网上没有找到任何具体的东西。
谢谢您的建议!
大家好 :D 我刚开始学习Rails,目前有一个疑问。
我正在构建一个需要翻译成4种语言的Rails网站。最实用和方便的方法是什么?
我已经读过文章,主要是为每种语言制作单独的文件夹,并复制所有视图到每种语言的文件夹中。但是,我的控制器上仍然会有英文的 notice
消息,我该如何处理? Routes
也是我的关注点。是否应该为4个不同的翻译视图创建4个不同的路由?
您推荐如何解决这个问题?我在网上没有找到任何具体的东西。
谢谢您的建议!
对于你的通知消息,你可以这样做:
def create
if user.save
flash[:notice] = t(:user_was_successfully_created)
redirect_to users_users_path
else
render :new
end
end
你不应该有四个不同的路由
Rails国际化(I18n)API
请查看此链接 http://guides.rubyonrails.org/i18n.html
Rails国际化(I18n)API
Ruby I18n(即国际化)gem是随Ruby on Rails一起提供的(从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.