2012-03-20 34 views
1

我正在使用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最好做到這一點?

在此先感謝!

回答

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

更新: 如果你想這個鏈接到所有網頁添加到您的網站,則:

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/」 URL和英文網頁來下「的例子「/

+0

謝謝tusar!我怎樣才能使這個工作網站廣泛?即添加/刪除'pt /'無論頁面是什麼? – 2012-03-20 14:01:42

+0

我已經更新了答案,但非常謹慎地使用它(我沒有測試)。確保你在給老闆之前檢查所有的鏈接......如果有什麼突破,請不要責怪我:) – tusar 2012-03-20 15:20:08

+0

再次感謝tusar,但是我在下面一行中得到一個錯誤:'$(「。lang」)。 prop(「href」,loc.replace(「/ xxx.com/pt/」,「/xxx.com /」);'。另外,如果我是愚蠢的,請原諒我,但是我應該把if語句包裝在'.click'函數? – 2012-03-22 01:06:13

1

由於我寫了插件(Transposh),我認爲你最好的方法是編寫一個簡單的小部件來做你想做的事,這可能是一行代碼。適當地在你的後端運行,並按你的意願去做。

該指南是在這裏: http://trac.transposh.org/wiki/WidgetWritingGuide

您可以檢查派有提供你想要什麼樣的結構IS_ACTIVE。

玩得開心

+0

感謝ofwald,我相信你最清楚!但在我爲此付出無數小時之前(我不是最偉大的編碼器),你能告訴我是否可以使用小部件代碼創建切換語言的鏈接,我可以添加到WP菜單中嗎? – 2012-03-22 01:09:27