因此,我正在构建一个新的rails应用程序,它的最终用户都将是西班牙语。我想我应该使用rails' I18n API,但感觉这是为了翻译已经用英语写的应用程序。我的意思是内部rails使用英语语言环境查找(模型,表名,路由)。因此,如果在创建模式时它们不能正确复数,那么用西班牙语命名模型会感觉很奇怪。
任何人都有这种情况的最佳做法吗?我应该用英语命名所有内容,然后在es.yml文件上映射翻译吗?
答案 0 :(得分:2)
以您喜欢的任何语言编写代码(和翻译密钥),并使用es.yml
作为翻译语言。
以下是您在整个应用中使用I18n的示例:
应用/控制器/ 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
end
应用/视图/东西/ index.html.erb 强>
<h1><%= t('cosa.texto_de_ayuda') %></h1>
<强>配置/区域设置/ 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"
答案 1 :(得分:2)
即使西班牙语最终用户应该查看该应用程序,您最好还是用英语编写它。这意味着编写英语红宝石代码,英语路线,英语模型等。唯一应该是西班牙语的是您网站上的文字。
一些原因:
至于i18n api,如果你只用一种语言呈现网站内容,你现在可以暂时不用它。
答案 2 :(得分:1)
没有黄金法则,但我认为代码应该用英文写成(即使你开始用西班牙语写作,你可能会混合使用西班牙语和英语单词,并使你的代码混乱)。
关于i18n,您不仅要将它用于将应用程序从一种语言翻译成另一种语言,还应该使用它来指定将向用户显示的文本元素。因此,您可以将所有内容组织到一个唯一的文件中。它对维护和代码组织更好,您可以指定Rails应该使用的默认语言(.yml文件)。