i18n-inflector-railsコントローラにいわゆる変曲方法を登録できるようにするRailsプラグインもあります。
これらのメソッドは、I18n Inflectorにジェンダーまたは好きな他の任意の種類のデータを透過的に供給します。
例:コントローラで
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
私はどのような方法で国際化支援性別を考えていません。したがって、自動組み込みソリューションはありません...しかし、私は間違っているかもしれません! – plehoux
私が考えていた2つのアイデアは:モデルの性別を設定し、テキスト(いくつかのlamba)を作成するときにそれを読んだり、動作しないモデルのテキストを上書きするツリー構造を作成します。私はレールアプリを翻訳する最初の人ではないと仮定しているので、うまくいけばこれは優雅なやり方で誰かによって解決されているはずです。 – montrealmike