我目前正在开发一个国际化的网站,因此需要使用不同的语言。使用PHP的多语言网站
我有一个名为“lang”的文件夹,其中包含诸如en.php,no.php等等文件。这些文件由具有不同单词的数组组成。
我的问题是我应该如何使用它。我应该使用cookie将个人电脑中的语言保存起来吗?或者我应该保存IP地址并为其分配一种语言并将其保存在数据库中,或者我应该在整个网站的url中传递一个& land = en参数吗?
关于如何处理多语言网站的想法和想法?
最佳regarsds的, 亚历山大
我目前正在开发一个国际化的网站,因此需要使用不同的语言。使用PHP的多语言网站
我有一个名为“lang”的文件夹,其中包含诸如en.php,no.php等等文件。这些文件由具有不同单词的数组组成。
我的问题是我应该如何使用它。我应该使用cookie将个人电脑中的语言保存起来吗?或者我应该保存IP地址并为其分配一种语言并将其保存在数据库中,或者我应该在整个网站的url中传递一个& land = en参数吗?
关于如何处理多语言网站的想法和想法?
最佳regarsds的, 亚历山大
我认为这可能是最好保存用户的语言在cookie中,因此你不需要通过查询参数周围通过。您也可以将其设置为$_SESSION
但是,您应该在每个页面中接受参数lang=
,这将允许任何用户轻松地立即更改语言。新语言应该覆盖现有的cookie。
$valid_langs = array('en','fr','de','no');
if (isset($_GET['lang'])) {
// verify that it is a valid language choice before attempting to use it
// you may store an array of possibilities.
if (in_array($_GET['lang'], $valid_langs)) {
$language = $_GET['lang'];
setcookie('lang', $_GET['lang']);
}
}
else if (isset($_COOKIE['lang'])) {
// also be sure to check that the language is a valid choice in a cookie too.
if (in_array($_GET['lang'], $valid_langs)) {
$language = $_COOKIE['lang'];
}
}
我使用了一些简单的方法......我确实保持calculla的网站。这就像两个语言:波兰语(PL)和英语(EN)。
如果有人进入域calculla.pl那么我确实假设默认值是波兰语。如果有人输入域名calculla.com,我认为它是英文。但后来,网站内部的每个“链接”都可以像calculla.pl/en/something - 这会变成英语而忽略默认的域名。
用户始终可以通过单击 - 重新选择语言,然后将所有链接“切换”为所选语言。
这只是一种可能的方法,但我认为它可能适合您的需求 - 根本没有cookie,没有其他依赖关系,只是URL决定。
如果您可以选择在主域上使用CNAME别名,那么一种广泛使用的方法是使用语言特定的域名,例如。除了www.site.com有no.site.com挪威,en.site.com英语等等,这些都指向同一个网站。然后使用当前域名检测要使用的语言。
这样检测的语言看起来是这样的:
$language = substr($_SERVER['HTTP_HOST'],0,2);
也可以考虑使用HTTP内容协商头在请求中选择默认语言,如果您既没有看到也没有饼干明确的参数。 –
+1,让我再提一下'url = lang ='的另一个好处是你可以提供永久链接到页面的某个语言版本。 – nobody