1

以下はフランス語のメニューの例ですが、さらに 5 つの言語で表示する予定です。

<a href="/<%= @lang %>/">Jeux</a>
<a href="/<%= @lang %>/get-the-player">Obtenir le lecteur</a>
<a href="/<%= @lang %>/about">À propos</a>
<a href="/<%= @lang %>/faq">FAQ</a>
<a href="/<%= @lang %>/contact">Contact</a>

現時点では、メニューは関連するページ (.html.erb) にあります。以下にリストされているコードを使用します。

<%= content_for :menu do %>    
    <a href="/<%= @lang %>/">Jeux</a>
    <a href="/<%= @lang %>/get-the-player">Obtenir le lecteur</a>
    <a href="/<%= @lang %>/about">À propos</a>
    <a href="/<%= @lang %>/faq">FAQ</a>
    <a href="/<%= @lang %>/contact">Contact</a>
<% end %>

上記を実行したら、application.html.erb の参照を取得しました

<%= yield :menu %>

他の言語でもまったく同じ方法で実行できますが、コードの繰り返しを避ける方法はありますか? おそらく、コントローラーがそれを見つけて正確な場所にレンダリングするようにしますか?助けてください、

前もって感謝します!

================================================== =========================

    **CHECK BELOW FOR SOLUTIONS THAT I HAVE PROVIDED**
4

3 に答える 3

3

組み込みの国際化 (i18n) API をご覧ください。

編集: 別の方法は、 ruby​​ on rails i18n guides で説明されているように、ローカライズされたビューを使用することです。たとえば、ファイルindex.fr.html.erbindex.en.html.erb. 次に、I18n.locale設定に応じて、適切なビューがレンダリングされます。

于 2012-11-06T16:26:57.363 に答える
1

サイトでこれを行うことがたくさんある場合は、Google Closure Templates (Soy) を参照することをお勧めします。それを達成するために使用できるローカリゼーション フレームワークがあります。

それを使用する場合は、Soy テンプレートを作成してメニューと (サイトの他の部分) を生成し、ローカリゼーション機能を使用してユーザーに適切な言語を表示します。

于 2012-11-06T16:37:26.677 に答える
0

これが実行する必要があることです。私の _header.html.erb (または、やり方によっては application.html.erb) で、以下に示すような if ステートメントを作成しました。

<% if params[:lang]=="es" %>
    <a href="/<%= @lang %>/">Jeux</a>
    <a href="/<%= @lang %>/get-the-player">Obtenir le lecteur</a>
    ..........
    ..........
<% end %>


<% if params[:lang]=="en" %>
    <a href="/<%= @lang %>/">Games</a>
    <a href="/<%= @lang %>/get-the-player">Get the Player</a>
    ..........
    ..........
<% end %>

これにより、私/あなたが望むなら、より多くのものを手に入れることができます。はい、国際化 API を使用してこれを行うこともできますが、今回は大きなアプリケーションを編集しているため、時間がかかり、生産性が低下する可能性があります。したがって、上記のソースコードは別の方法になる可能性があります。:)。この件についてご意見をお寄せいただきありがとうございます。

于 2012-11-07T15:03:43.147 に答える