$languages['de']['NAME'] = 'Deutsch';
$languages['de']['CHARSET'] = 'iso-8859-1';
+ $languages['id']['NAME'] = 'Indonesian';
+ $languages['id']['CHARSET'] = 'iso-8859-1';
+
$languages['nl']['NAME'] = 'Dutch';
$languages['nl']['CHARSET'] = 'iso-8859-1';
$languages['es']['NAME'] = 'Spanish';
$languages['es']['CHARSET'] = 'iso-8859-1';
+ $languages['es_ES']['ALIAS'] = 'es';
$languages['sv']['NAME'] = 'Swedish';
$languages['sv']['CHARSET'] = 'iso-8859-1';
global $use_gettext;
// Detect whether gettext is installed.
- // If it is, set the flag so we can use it.
- if (! function_exists('_') ||
- ! function_exists('bindtextdomain') ||
- ! function_exists('textdomain'))
- $use_gettext = false;
- else
- $use_gettext = true;
-
-
- // Avoid warnings/errors if gettext is not installed
- if (! function_exists('_')) {
- function _($str) { return $str; };
- }
- if (! function_exists('bindtextdomain')) {
- function bindtextdomain() { return; }
- }
- if (! function_exists('textdomain')) {
- function textdomain() { return; }
+ $gettext_flags = 0;
+ if (function_exists('_')) $gettext_flags += 1;
+ if (function_exists('bindtextdomain')) $gettext_flags += 2;
+ if (function_exists('textdomain')) $gettext_flags += 4;
+
+ // If gettext is fully loaded, cool
+ if ($gettext_flags == 7)
+ $use_gettext = true;
+ // If we can fake gettext, try that
+ elseif ($gettext_flags == 0) {
+ $use_gettext = true;
+ include('../functions/gettext.php');
+ } else {
+ // Uh-ho. A weird install
+ if (! $gettext_flags & 1) {
+ function _($str) { return $str; };
+ }
+ if (! $gettext_flags & 2) {
+ function bindtextdomain() { return; }
+ }
+ if (! $gettext_flags & 4) {
+ function textdomain() { return; }
+ }
}
{
static $SetupAlready = 0;
global $HTTP_ACCEPT_LANGUAGE, $use_gettext, $languages,
- $squirrelmail_language;
+ $squirrelmail_language, $squirrelmail_default_language,
+ $sm_notAlias;
if ($SetupAlready)
return;
-
+
$SetupAlready = 1;
$charset_headers_sent=false;
if ($do_search && ! $sm_language && isset($HTTP_ACCEPT_LANGUAGE)) {
$sm_language = substr($HTTP_ACCEPT_LANGUAGE, 0, 2);
}
+ if (! $sm_language && isset($squirrelmail_default_language))
+ $sm_language = $squirrelmail_default_language;
+ $sm_notAlias = $sm_language;
+ while (isset($languages[$sm_notAlias]['ALIAS']))
+ $sm_notAlias = $languages[$sm_notAlias]['ALIAS'];
if (isset($sm_language) && $use_gettext &&
- $squirrelmail_language != '' &&
- isset($languages[$sm_language]['CHARSET'])) {
+ $squirrelmail_language != '' &&
+ isset($languages[$sm_notAlias]['CHARSET'])) {
if ((ini_get('safe_mode') == FALSE) && (getenv('LC_ALL') != $sm_language)) {
- putenv('LC_ALL=' . $sm_language);
+ putenv('LC_ALL=' . $sm_notAlias);
}
- setlocale('LC_ALL', $sm_language);
+ setlocale('LC_ALL', $sm_notAlias);
bindtextdomain('squirrelmail', '../locale/');
textdomain('squirrelmail');
header ('Content-Type: text/html; charset=' . $languages[$sm_language]['CHARSET']);
- $charset_headers_sent=true;
}
- return $charset_headers_sent;
}
function set_my_charset(){
global $data_dir, $username, $default_charset, $languages;
$my_language = getPref($data_dir, $username, "language");
if (!$my_language) return;
+ while (isset($languages[$my_language]['ALIAS']))
+ $my_language = $languages[$my_language]['ALIAS'];
$my_charset=$languages[$my_language]['CHARSET'];
if ($my_charset) $default_charset=$my_charset;
}