我正在尝试实现此代码,以便为选择的德语,西班牙语或英语浏览器语言加载不同的文件.
情况是,使用我的西班牙IE仍然可以得到英文文件.
<?php
if (is_home()) {
if (preg_match('/de-DE/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
include(TEMPLATEPATH . '/german-navbar.php' );
}
elseif (preg_match('/es-ES/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
include(TEMPLATEPATH . '/spanish-navbar.php' );
}
else {
include(TEMPLATEPATH . '/english-navbar.php' );
}
}
我同时使用了HTTP_ACCEPT_LANGUAGE和HTTP_USER_AGENT.
这是对网站的测试,如果有人愿意进行检查,请使用德语或西班牙语作为浏览器中的选择语言:http://paragraphe.org/janette/
我有英文的Firefox,并且运行良好,但是我不确定代码是否适用于西班牙文和德文.
我找到了代码片段in this SO thread,但此时我有点迷失了.
非常感谢您的投入,
编辑:该代码的确在Firefox(但IE)中不起作用.
解决方法:
首先,您可以使用User Agent Switcher扩展名的Firefox来伪造用户代理并对其进行测试,尽管您必须伪造HTTP_ACCEPT_LANGUAGE请求的标头,例如使用Modify Headers扩展名(它还可以将用户代理更改为以及标题)
哦,它在德语中不起作用:
Warning: include(/home/paragrap/public_html/janette/wp-content/themes/Janette/german-home.php) [function.include]: failed to open stream: No such file or directory in /home/paragrap/public_html/janette/wp-content/themes/Janette/home.php on line 4
Warning: include() [function.include]: Failed opening '/home/paragrap/public_html/janette/wp-content/themes/Janette/german-home.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/paragrap/public_html/janette/wp-content/themes/Janette/home.php on line 4