【问题标题】:Language switcher - link changes URL语言切换器 - 链接更改 URL
【发布时间】:2012-04-04 14:02:20
【问题描述】:

我正在使用 Transposh Wordpress 插件来制作双语网站。

该插件带有一个下拉语言选择器,但我想在导航中放置一个链接,以便在两种语言之间切换网站。

默认站点是英文的,示例页面可能是 xxx.com/page

另一种语言是葡萄牙语,翻译页面在 xxx.com/pt/page

所以我希望链接在这两个值之间切换:

<a href="example.com/pt/page">Português</a>

<a href="example.com/page">English</a>

jQuery 会是最好的吗?

提前致谢!

【问题讨论】:

    标签: jquery wordpress language-switching


    【解决方案1】:

    当您使用此“example.com/pt/page”链接加载页面时,请将链接的 href 和文本更改为英文。当您使用“example.com/page”加载页面时,将 href 和 text 更改为 Português。

    <a id="lang" href="example.com/pt/page">Português</a>
    
    $(document).ready(function() {
        var winLocation = window.location;
        var loc = winLocation + "";
        if(loc.indexOf("example.com/pt/page") != -1) {
           $("#lang").prop("href", "example.com/page");
           $("#lang").text("English");
        }
        else {
           $("#lang").prop("href", "example.com/pt/page");
           $("#lang").text("Português");
        }
    });
    

    更新: 如果您想将此链接添加到您网站的所有页面,那么:

    1) 为所有链接设置类。像这样:

    <a class="lang" href="anything">anything</a>
    

    2) 现在像这样修改 jQuery 处理程序:

    $(document).ready(function() {
        var winLocation = window.location;
        var loc = winLocation + "";
        if(loc.indexOf("/example.com/pt/") != -1) {
           $(".lang").prop("href", loc.replace("/example.com/pt/", "/example.com/"));
           $(".lang").text("English");
        }
        else {
           $(".lang").prop("href", loc.replace("/example.com/", "/example.com/pt/"));
           $(".lang").text("Português");
        }
    });
    

    假设您的葡萄牙语页面位于“example.com/pt/”网址下,英文页面位于“example.com/”下

    【讨论】:

    • 感谢图萨尔!我怎样才能让它在网站范围内工作?即添加/删除'pt/'无论页面是什么?
    • 我已经更新了答案,但使用起来非常谨慎(我没有测试)。确保在给老板之前检查所有链接......如果有任何问题,请不要怪我:)
    • 再次感谢 tusar,但我在以下行出现错误:$(".lang").prop("href", loc.replace("/xxx.com/pt/", "/xxx.com/");。另外,如果我很愚蠢,请原谅,但我应该将 if 语句包装在 .click 函数中吗?
    • 嗨,Caroline,我漏掉了一个括号。现在更新了。并且无需将其包装在点击处理程序下。我们正在准备页面加载时的所有链接。
    • 感谢图萨尔!只需交换“English”和“Português”就可以了。
    【解决方案2】:

    自从我编写了那个插件(Transposh)以来,我认为最好的方法是编写一个简单的小部件来做你想做的事,这可能是一行代码。在您的后端正确运行,并按照您的意愿行事。

    指南在这里: http://trac.transposh.org/wiki/WidgetWritingGuide

    您可以检查发送到那里的结构的 is_active 以提供您想要的。

    玩得开心

    【讨论】:

    • 感谢oferwald,我相信您最了解!但在我为此投入无数小时之前(我不是最伟大的编码员),您能否告诉我是否能够使用小部件代码创建一个切换语言的链接,我可以将其添加到 WP 菜单中?跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多