Pregunta

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!

¿Fue útil?

Solución

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/"

Otros consejos

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top