我试着在这里和谷歌上寻找答案,但也许我没有使用正确的搜索词…我就是找不到。希望有人能帮我解决这个问题。
在一个bi-lingual
商店,我希望一个人被重定向到相同的产品在不同的domain/url
,当点击english flag
按钮。
www.mydomain**.nl/a1**/product1.html
为起始点。点击英文标志应该会获取域名和类别,并更改它并转到新创建的url:
www.mydomain**.com/a2**/product1.html
www.mydomain**.nl/b1**/product1.html
,点击'english flag'按钮后变为:
www.mydomain**.com/b2**/product1.html
等。
大约有30个不同的页面像这样被改写,所有的页面都有相同的'english flag'按钮。
如果url的一部分是'。nl/schoenen/'然后更改并转到'.com/shoes/'
如果url的一部分是'。nl/jassen/'然后更改并转到'.com/jackets/'
TL;DR -使用一些javascript来操作url onclick,按照您希望的方式重新组装url,重新加载新url。
我曾经做过一个双语商店,并在路径中插入一个"es"或"en"来表示西班牙语或英语,本质上是作为一个URL参数。你的目标有点复杂(我假设它必须是),但这可能会让你开始。你可以在这里看到商店(不是我的设计——不要怪我。)根据网站所有者的要求(一些合法的东西),大部分内容是离线的,但你应该能够浏览一些页面并看到语言切换的效果。
单击语言切换触发一些简单的Javascript,如下所示:
function switchLanguage(lang) {
u = location.href.split('/');
u[3] = lang;
location.href = u.join('/');
}
然后一个onclick
被添加到语言切换链接到直接onclick="switchLanguage('en')"
或onclick="switchLanguage('es')"
,或任何你的URL注入是。同样,这是特定于我的示例,其中URL参数将跟随第三个正斜杠(u[3] = lang
),但这应该使您开始为操作和重新组装划分URL。
这里有一些很好的例子。
当然,我的网站的本地化版本需要驻留在这些url路径下(在我的情况下,我改变了一些PHP全局变量,以说明url中的不同语言代码,所以底层的东西真的是最小的),但这是一个方法,让你开始如何拆分/更改/替换你的url onclick。
只需使用IF语句,如果按钮被单击,url将被更改!每个url都指向不同语言的页面。如果我没看错你
您当前所在的Url在窗口中。位置的对象。当您想要重定向时,检索它(window.location)。(例如Href),使用字符串操作更改域并重定向窗口?
如果我没有正确理解你的问题,我很抱歉。
你可以创建一个方法来"翻译"当前url:
function translateUrl(string transArticleName) {
var newTerm = ".com/"+transArticleName+"/";
return window.location.href.replace("/.nl/['w]{1,}//", newTerm);
}
或者你阅读文章名称并将其翻译成英文:
function translateUrl(string transArticleName) {
var oldTerm = window.location.href.match("/.nl/['w]{1,}//")[0];
var aName = oldTerm.match(/'/['w]{1,}'//)[0].match(/[^'/]{1,}/)[0]
var transArticleName = //translate aName server side
var newTerm = ".com/"+transArticleName+"/";
return window.location.href.replace(oldTerm, newTerm);
}
正如你所看到的,我不是regex的主人,所以我相信有一个更好的方法来使用它们。