检测语言并显示正确的内容

时间:2018-01-31 14:52:12

标签: php multilingual

我正在开发一个多语言网站,我差不多完成了,除了烦人的细节:搜索表单显示所有语言的结果。

<form action="<?php echo esc_url( home_url( '/' ) ); ?>">

我设法理解,如果我将语言前缀(例如 en / 用于英语)放入表单操作中,它将显示当前语言结果。

<form action="<?php echo esc_url( home_url( '/' ) ); ?>en/">

我现在需要做的是将 en / 替换为能够检测当前语言的PHP代码,以便在表单操作中添加正确的前缀。我可以告诉代码读取html lang属性并回显正确的内容,但我不知道如何。 目前这就是我所做的:

<?php if (get_lang() == 'it-it') {echo "it/";} elseif (get_lang() == 'en-us') {echo "en/";} else {echo "zh/";}?>

如何检测页面语言以修改表单操作并显示正确的内容?

1 个答案:

答案 0 :(得分:3)

使用 substr 而非链接if else进行黑客攻击:

echo substr(get_lang(), 0, 2) . "/"; // echo first two characters of get_lang()

您还可以使用 Locale::getPrimaryLanguage()

echo Locale::getPrimaryLanguage(get_lang()) . "/";