Language switcher - link changes URL

ε祈祈猫儿з 提交于 2019-12-24 16:44:28

问题


I am using the Transposh Wordpress plugin to make a site bilingual.

The plugin comes with a dropdown language selector, but I would like to instead place a link in the navigation that toggles the site between the two languages.

The default site is in English, and an example page might be xxx.com/page

The other language is Portuguese, with the translated page at xxx.com/pt/page

So I would like the link to toggle between these two values:

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

and

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

Would jQuery be best to do this?

Thanks in advance!


回答1:


When you load your page with this "example.com/pt/page" link, change the href and text of the link to English. And when you load the page with "example.com/page", change the href and text to 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");
    }
});

Update: If you want to add this link to all pages to your site, then:

1) set class for all the links. Like this:

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

2) Now modify the jQuery handler like this :

$(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");
    }
});

Assuming, your Português pages comes under "example.com/pt/" urls and English pages comes under "example.com/"




回答2:


Since I wrote that plugin (Transposh) I think that your best way would be to write a simple widget to do as you wish, this will probably be a single line of code. Properly run at your backend, and do as you wished.

The guide is here: http://trac.transposh.org/wiki/WidgetWritingGuide

You can check the is_active of the structure sent there to provide what you wanted.

Have fun



来源:https://stackoverflow.com/questions/9781124/language-switcher-link-changes-url

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!