Internacionalize seu site: obtenha / defina o idioma do usuário

Aqui estão algumas funções que permitem que você faça um aplicativo internacionalizado.

A primeira função retorna o idioma, de acordo com a configuração do navegador do usuário. Use-o quando seu aplicativo iniciar. Depois de chamar esta função, basta exibir o conteúdo no idioma correto.

public function getLanguage() {
$selected
= 'en';
$cookie_name
= 'locale';
// Locales available for your app
$app_langs
=array('en', 'fr', 'de');
// If a locale was setted before and if is correct, we use it
if (isset($_COOKIE[$cookie_name] && in_array($selected, $app_langs)) {
$selected
=$_COOKIE[$cookie_name];
}
// else let's go to determining the user locale
else {
// Parsing the HTTP_ACCEPT_LANGUAGE header
$accepted_langs
= explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
foreach($accepted_langs as $lang) {
// Extract the language code
$lang
= strtolower(substr($lang, 0, 2));
// If the lang exists and if available, let's use it
if (in_array($lang, $app_langs)) {
$selected
= $lang;
break;
}
}
// Storage of the language wich will be used
setLanguage
($selected);
}
return $selected;
}

A segunda função permite definir o idioma, por exemplo, quando o usuário deseja alterar o idioma do seu aplicativo. Se você usar o padrão de projeto MVC, esta função pode ser chamada de um controlador particular e, a seguir, redirecionar para sua página inicial no idioma correto.

public function setLanguage($lang) {
$cookie_name
= 'locale';
setcookie
($cookie_name, $lang, time()+60*60, '', '', false, true);
}