2016-04-11 6 views
1

は、フレーズを考えます各チャリティーはチャリティーに関するデータを含むハッシュです。のgettextプログラム

私はフランス語の講師ではなく、学校ではフランス語しか学んでいませんが、これを行う際の問題は(おそらく、ジェンダー記事のある言語の話者にとってはすぐにわかります)名詞に応じてla、au、a'lまたはauxのいろいろな形をとることができます。

例えば「Vousのsouhaitezドナー10€AUX世界の医療団」

これは他の言語にスケーリングする必要があることを考えると、この使用のgettextを処理するための最良の方法は何ですか? 。

1:ダイナミックテキスト(99%+のほとんどの場合は、パラメータで罰金扱うことができるため、これを実行する必要がありますほんの数例があり

私はこれを行うには3つの方法を考えてきました)このような非常に動的なテキストを関数から生成します。必要に応じてメッセージごとに1つの言語でメッセージを生成します。この関数は、金額とチャリティ名をパラメータとして受け取り、変換されたテキストを返します。

2)各慈善団体の "to"の翻訳を手動で追加し、%{charity_name}の代わりにそれを使用し、poファイルから翻訳を取得します。

3) "to"の形式を指定するエントリを追加します。たとえば、Médecinsdu MondeにはauxMédecinsdu Mondeも保存されます。

これらの方法のいずれかが実行可能であるか、より良い選択肢がありますか?私は考えていませんか?

+0

のベース(英語)name_ru(ロシア語名)またはname_enを提示するように感じ2)が最良の選択です - それはそれをそのまま翻訳する必要がある実際のフレーズです。 C.f。構造を一切想定していないカスタム投稿タイプのWordPress翻訳では、英語の「推測」が可能な場合でも、「投稿の編集」、「新しい投稿」、「投稿の削除」などの翻訳を手動で追加する必要があります。 – simonwo

答えて

1

ベスト・アプローチではないかもしれませんが、私はこれを数回使用しました。

は、以下のフィールドを持つテーブルを考えてみましょう:

id, name_en, name_ru, created_at, updated_at 

私はあなたが言語パラメータを取得するために国際化を使用することを前提としています。コード上

コントローラ

def index 
    @lang = params[:locale] || I18n.locale 
    @examples = Example.all 
end 

<% @examples.each do |ex| %> 
    <li> 
     <%= ex.send("name_#{@lang}") %> 
    </li> 
<% end %> 

I18n.locale