您将如何提供用不同(语言环境)语言编写的菜单,而不是在每个页面中重复它们



以下是法语菜单的一个示例,我还将用另外五种语言使用:

<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 %>

我上面完成了一旦我在应用程序上获得了参考。html.erb

<%= yield :menu %>

对于其他语言,它可以完全相同,但是,有一种方法可以避免重复代码。也许使控制器去找到它并在确切的位置渲染?请帮助,

预先感谢!

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

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

请查看内置的国际化(I18N)API。

编辑:另一种方法是使用局部视图,如Ruby在Rails I18N指南上所述。例如,您可以命名文件index.fr.html.erbindex.en.html.erb。然后,根据您的I18n.locale设置,呈现适当的视图。

如果您在网站上有很多要做的事情,建议您查看Google Closure模板(Soy)。它具有一个本地化框架,您可以用来实现这一目标。

如果使用它,则编写一个大豆模板来生成菜单和(网站的其他部分),并使用本地化功能为用户显示适当的语言。

这是需要做的。在我的_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来做到这一点,但是这次我正在编辑一个大型应用程序,该应用程序可能会杀死更多的时间,甚至使其效率低下。因此上述源代码可能是另一种方法。:)。谢谢你们对此的所有投入。

最新更新