2012-03-20 2 views
1

Я использую плагин Transposh Wordpress, чтобы сделать сайт двуязычным.Языковой коммутатор - изменение ссылок URL

Плагин поставляется с выпадающим меню выбора языка, но я хотел бы вместо этого разместить ссылку в навигации, которая переключает сайт между двумя языками.

сайт по умолчанию на английском языке, и пример страницы может быть xxx.com/page

Другой язык является португальский, с переведенной страницы на xxx.com/pt/page

Я хотел бы ссылку, чтобы переключаться между этими двумя значениями:

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

и

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

Будет ли jQuery лучше всего делать это?

Заранее благодарен!

ответ

2

Когда вы загружаете страницу этой ссылкой "example.com/pt/page", измените href и текст ссылки на английский. И когда вы загружаете страницу с помощью «example.com/page», измените href и текст на 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: Если вы хотите добавить ссылку на все страницы вашего сайта, а затем:

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

Предполагая, ваши Português страницы подпадает под «example.com/pt/» URL и английских страниц подпадает под «пример .com/"

+0

Спасибо tusar! Как я могу заставить это работать на сайте? т. е. добавить/удалить «pt /» независимо от того, на какой странице? –

+0

Я обновил ответ, но использую его очень осторожно (я не тестировал). Убедитесь, что вы проверяете все ссылки, прежде чем давать своему боссу ... не обвиняйте меня, если что-то ломается :) – tusar

+0

Еще раз спасибо tusar, но я получаю сообщение об ошибке на следующей строке: '$ (". Lang "). prop ("href", loc.replace ("/ xxx.com/pt/", "/xxx.com /"); '. Кроме того, извините меня, если я глуп, но я должен обернуть оператор if в '.click' function –

1

С тех пор как я написал этот плагин (Transposh), я думаю, что лучший способ - написать простой виджет, чтобы сделать то, что вы пожелаете, это, вероятно, будет одна строка кода. Правильно бегите в своем бэкэнде и делайте, как вы пожелаете.

Руководство здесь: http://trac.transposh.org/wiki/WidgetWritingGuide

Вы можете проверить is_active структуры посланного там, чтобы обеспечить то, что вы хотели.

Удачи!

+0

Спасибо, Овервальд, я уверен, что вы знаете лучше всего!Но прежде чем я совершу бесчисленные часы для этого (я не самый лучший кодер), не могли бы вы сказать мне, смогу ли я использовать код виджета, чтобы создать ссылку, которая переключает языки, которые я могу добавить в меню WP? –

Смежные вопросы