繁体   English   中英

使用PHP的多语言网站

[英]Multilanguage website with PHP

我目前正在一个国际网站上工作,因此需要使用不同的语言。

我有一个名为“ lang”的文件夹,其中包含诸如en.php,no.php等文件。这些文件由带有不同单词的数组组成。

我的问题是我应该如何使用它。 我应该用Cookie将语言保存在人机中吗? 还是应该保存ip地址并为其分配一种语言并将其保存在数据库中,还是应该在整个网站的url中传递&land = en参数?

关于应该如何处理多语言网站的任何想法和想法?

最好的regarsds,亚历山大

我认为最好将用户的语言保存在cookie中,因此您不需要通过querystring参数传递它。 您也可以在$_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'];
  }
}

如果您可以选择在主域上使用CNAME别名,那么一种广泛使用的方法是使用特定于语言的域名,例如。 除了www.site.com之外, 挪威语没有no.site.com ,英语没有en.site.com等,它们都指向同一网站。 然后从当前域名中检测要使用的语言。

这种检测语言的方式看起来像:

$language = substr($_SERVER['HTTP_HOST'],0,2);

我使用了一些简单的方法...我确实维护了calculla的位置。 它就像两种语言:波兰语(PL)和英语(EN)。

如果有人进入域calculla.pl,那么我假定默认值为波兰语。 如果有人进入域名calculla.com,我认为它是英文。 但是以后,网站内的每个“链接”都可能像calculla.pl/en/something一样-变成英语,忽略了默认域名。

用户始终可以通过单击-重新选择语言,然后所有链接“切换”到所选语言。

那只是可能的方法之一,但是我认为这可能满足您的需求-根本没有cookie,没有其他依赖关系,只有URL决定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM