所以我正在构建一个新的rails应用程序,它的最终用户都是讲西班牙语的人。我想我应该使用rails的I18n API,但我觉得这是为了翻译一个已经用英语编写的应用程序。我的意思是,内部rails使用英语语言环境查找事物(模型、表名、路由)。因此,如果您的模型在创建模式时不能正确地被多元化,那么用西班牙语命名您的模型会感觉很奇怪。
有人对这种情况有最佳实践吗?我应该用英语命名所有的东西,然后映射到es.yml文件上的翻译吗?
发布于 2015-08-03 14:11:50
即使应用程序应该由西班牙最终用户查看,您最好还是用英语编写它。这意味着写英语红宝石代码,英语路线,英语模型等。唯一应该是西班牙语的东西是你的网站上的文本。
一些原因:
至于i18n api,如果您只使用一种语言显示站点内容,那么现在可以跳过使用它。
发布于 2015-08-03 14:06:11
用您喜欢的任何语言编写代码(和翻译键),并将es.yml用于翻译语言。
下面是您如何在整个应用程序中使用I18n的一个示例:
app/controllers/things_controller.rb
def create
thing = Thing.new(params[:id])
if thing.save
redirect_to thing, notice: t('cosa.crear.prosperidad')
else
flash.now.alert = t('cosa.crear.fracaso')
end
endapp/views/things/index.html.erb
<h1><%= t('cosa.texto_de_ayuda') %></h1>config/locales/es.yml
es:
cosa:
texto_de_ayuda: "Necesita ayuda para la creación de las cosas?"
crear:
prosperidad: "Cosa fue creado con éxito"
fracaso: "Hubo un problema al crear su cosa"发布于 2015-08-03 14:01:05
没有金科玉律,但我认为代码应该用英语编写(即使你开始用西班牙语写作,你也可能把西班牙语和英语单词混在一起,把代码搞得一团糟)。
关于i18n,您不仅应该使用它将您的应用程序从一种语言翻译到另一种语言,而且还应该指定将显示给用户的文本元素。因此,您可以将所有这些内容组织到一个唯一的文件中。这对维护和代码组织更好,您可以指定Rails应该使用的默认语言(.yml文件)。
https://stackoverflow.com/questions/31789131
复制相似问题