【问题标题】:Developing a Rails app in a language other than english用英语以外的语言开发 Rails 应用程序
【发布时间】:2015-08-03 13:50:37
【问题描述】:

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

对于这种情况,有人有最佳做法吗?我应该只用英文命名所有内容,然后将翻译映射到 es.yml 文件上吗?

【问题讨论】:

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


    【解决方案1】:

    即使应用程序应该由西班牙最终用户查看,您最好还是用英文编写代码。这意味着编写英文 ruby​​ 代码、英文路线、英文模型等。唯一应该是西班牙文的是您网站上的文本。

    一些原因:

    • ruby 中的所有保留字都是英文。
    • 库/框架使用英文命名。
    • 复数等是英文的。
    • 如果代码 sn-p 是英文,则更有可能获得有关 StackOverflow 的帮助。
    • 你永远不会知道,也许有一天它会变成一个与非西班牙语开发人员合作的项目。

    至于 i18n api,如果您只应该用一种语言呈现网站内容,您现在可以跳过使用它。

    【讨论】:

      【解决方案2】:

      用您喜欢的任何语言编写您的代码(和翻译密钥),并使用您的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
      end
      

      app/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"
      

      【讨论】:

        【解决方案3】:

        没有黄金法则,但我认为代码应该用英语编写(即使您开始用西班牙语编写,您也可能将西班牙语和英语单词混在一起,从而使您的代码变得一团糟)。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-04-17
          • 1970-01-01
          • 1970-01-01
          • 2010-10-24
          • 2011-11-22
          • 2021-01-25
          • 1970-01-01
          相关资源
          最近更新 更多