使用英语以外的语言开发Rails应用程序

时间:2015-08-03 13:50:37

标签: ruby-on-rails ruby-on-rails-4

因此,我正在构建一个新的rails应用程序,它的最终用户都将是西班牙语。我想我应该使用rails' I18n API,但感觉这是为了翻译已经用英语写的应用程序。我的意思是内部rails使用英语语言环境查找(模型,表名,路由)。因此,如果在创建模式时它们不能正确复数,那么用西班牙语命名模型会感觉很奇怪。

任何人都有这种情况的最佳做法吗?我应该用英语命名所有内容,然后在es.yml文件上映射翻译吗?

3 个答案:

答案 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)

即使西班牙语最终用户应该查看该应用程序,您最好还是用英语编写它。这意味着编写英语红宝石代码,英语路线,英语模型等。唯一应该是西班牙语的是您网站上的文字。

一些原因:

  • 红宝石中的所有保留字都是英文。
  • 图书馆/框架使用英文命名。
  • 多元化等是英文的。
  • 如果代码段是英文的话,更有可能获得StackOverflow的帮助。
  • 你永远不会知道,也许有一天它会变成与非西班牙语开发者的合作项目。

至于i18n api,如果你只用一种语言呈现网站内容,你现在可以暂时不用它。

答案 2 :(得分:1)

没有黄金法则,但我认为代码应该用英文写成(即使你开始用西班牙语写作,你可能会混合使用西班牙语和英语单词,并使你的代码混乱)。

关于i18n,您不仅要将它用于将应用程序从一种语言翻译成另一种语言,还应该使用它来指定将向用户显示的文本元素。因此,您可以将所有内容组织到一个唯一的文件中。它对维护和代码组织更好,您可以指定Rails应该使用的默认语言(.yml文件)。