Каков наилучший способ перевода на язык с полами в рельсах? - PullRequest
14 голосов
/ 25 ноября 2010

перевод с английского на французский, например,

submit:
  create: 'Create %{model}'
  update: 'Update %{model}'
  submit: 'Save %{model}'

станет

    submit:
      create: "Créer un(e) %{model}"
      update: "Modifier ce(tte) %{model}"
      submit: "Enregistrer ce(tte) %{model}"

Каков наилучший способ реализации текста в круглых скобках (genderized) для работы с любой переданной моделью,Спасибо!

Ответы [ 2 ]

10 голосов
/ 15 февраля 2011

Существует также i18n-inflector-rails Плагин Rails, который позволяет регистрировать так называемые методы перегиба в контроллерах.

Эти методы будут прозрачно снабжать инфлектор I18n данными о полеили любой другой тип перегиба, который вам нравится.

Пример:

fr:
  i18n:
    inflections:
      gender:
        h:        "hommes"
        f:        "femmes"
        n:        "neutre"
        m:        @h
        default:  n

  welcome:  "@{h,n:Cher|f:Chère|Bonjour}{ }{h:Monsieur|f:Dame|n:Vous|à tous}"

А затем в контроллерах:

class ApplicationController < ActionController::Base

  before_filter :set_gender

  inflection_method :gender

  # inflection method for the kind gender
  def gender
    @gender
  end

  def set_gender
    if user_signed_in?              # assuming Devise is in use
      @gender = current_user.gender # assuming there is @gender attribute
    else
      @gender = nil
    end
  end

end

class UsersController < ApplicationController

  def say_welcome

    t('welcome')

    # => "Cher Vous"    (for empty gender or gender == :n)
    # => "Chère Dame"   (for gender == :f)
    # etc.

  end

end
1 голос
/ 28 января 2011

Взгляните на i18n-inflector , это интересный проект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...