本地化window.location.href

时间:2014-12-13 04:58:04

标签: localization internationalization wpml

我正在编写一个404自定义页面,一切都很好,但我使用的是WPML,因此我正在本地化我的字符串。

这是我的代码的一部分:

<h4><?php _e('You still can\'t find anything?', 'kslang'); ?></h4>
<h5><?php _e('Well, then you probably should give us a wake up call...', 'kslang'); "\n"?></h5>
<h5><?php _e('but be aware who you\'re waking up!', 'kslang');?></h5>
<h5><?php _e('You\'re sure? Well, then...', 'kslang'); ?></h5>
<form>
    <input type="button" value="<?php _e('Contact Us!', 'kslang'); ?>" onClick="window.location.href='http://www.undenk.info/contact-us-today'">
</form>
<h5><?php _e('or try the Site Map Below. You\'re also welcome to check out our related projects!', 'kslang'); ?></h5>

现在的问题是,我的

"window.location.href='http://www.undenk.info/contact-us-today'"

不会重定向到相对语言。

我虽然可以简单地将href链接包含在get文本中,例如按钮文本和其余字符串。

这不起作用,显然问题更复杂。 我需要使用if / else语句吗?

有人知道如何重定向到正确的语言吗? (我尝试使用_e的想法来翻译字符串翻译器中的href链接,但这不适用于_e,因为在这种情况下插入php片段会破坏我的网站)

希望有人可以提供意见......

1 个答案:

答案 0 :(得分:0)

使用window.location.href重定向到相应的语言版本,您需要在您的URL中包含该语言...即,对于法语,重定向到&#34; http://www.undenk.info/fr/contact-us-today&#34; (使用&#34; fr&#34;在域之后)。您可以通过检测PHP中的当前WPML语言并将其作为JavaScript变量回显来动态执行此操作,如下所示:

//Get current WPML language
global $sitepress;
$language = $sitepress->get_current_language();
//Echo as JS variable
echo "<script>var lang = '".$language."';</script>"

然后,您可以像这样重定向:

window.location.href='http://www.undenk.info/'+lang+'/contact-us-today';

注意:此示例假定您使用的是不同语言的语言文件夹。如果您使用subdomains or a language query parameter,则需要进行相应调整。