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);
}