nagiosql/functions/translator.php
2019-04-17 11:40:50 +02:00

264 lines
10 KiB
PHP

<?php
///////////////////////////////////////////////////////////////////////////////
//
// NagiosQL
//
///////////////////////////////////////////////////////////////////////////////
//
// (c) 2005-2018 by Martin Willisegger
//
// Project : NagiosQL
// Component : Translation Functions
// Website : https://sourceforge.net/projects/nagiosql/
// Version : 3.4.0
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
//
///////////////////////////////////////////////////////////////////////////////
//
// Translate given text
//
function translate($translation)
{
$translation = str_replace('"', '&quot;', gettext($translation));
$translation = str_replace("'", '&#039;', gettext($translation));
return $translation;
}
///
/// Internationalization and Localization utilities
///
function getLanguageCodefromLanguage($languagetosearch)
{
$strReturn = 'en_GB';
$detaillanguages = getLanguageData();
/** @noinspection ForeachSourceInspection */
foreach ($detaillanguages as $key2 => $languagename) {
if ($languagetosearch == $languagename['description']) {
$strReturn = $key2;
}
}
// else return default en code
return $strReturn;
}
function getLanguageNameFromCode($codetosearch, $withnative = true)
{
$strReturn = false;
$detaillanguages = getLanguageData();
if (isset($detaillanguages[$codetosearch]['description'])) {
if ($withnative) {
$strReturn = $detaillanguages[$codetosearch]['description'].' - '.
$detaillanguages[$codetosearch]['nativedescription'];
} else {
$strReturn = $detaillanguages[$codetosearch]['description'];
}
}
return $strReturn;
}
function getLanguageData()
{
unset($supportedLanguages);
// English
$supportedLanguages['en_GB']['description'] = translate('English');
$supportedLanguages['en_GB']['nativedescription'] = 'English';
// German
$supportedLanguages['de_DE']['description'] = translate('German');
$supportedLanguages['de_DE']['nativedescription'] = 'Deutsch';
// Chinese (Simplified)
$supportedLanguages['zh_CN']['description'] = translate('Chinese (Simplified)');
$supportedLanguages['zh_CN']['nativedescription'] = '&#31616;&#20307;&#20013;&#25991;';
// Italian
$supportedLanguages['it_IT']['description'] = translate('Italian');
$supportedLanguages['it_IT']['nativedescription'] = 'Italiano';
// French
$supportedLanguages['fr_FR']['description'] = translate('French');
$supportedLanguages['fr_FR']['nativedescription'] = 'Fran&#231;ais';
// Russian
$supportedLanguages['ru_RU']['description'] = translate('Russian');
$supportedLanguages['ru_RU']['nativedescription'] = '&#1056;&#1091;&#1089;&#1089;&#1082;&#1080;&#1081;';
// Spanish
$supportedLanguages['es_ES']['description'] = translate('Spanish');
$supportedLanguages['es_ES']['nativedescription'] = 'Espa&#241;ol';
// Brazilian Portuguese
$supportedLanguages['pt_BR']['description'] = translate('Portuguese (Brazilian)');
$supportedLanguages['pt_BR']['nativedescription'] = 'Portugu&#234;s do Brasil';
// Dutch
$supportedLanguages['nl_NL']['description'] = translate('Dutch');
$supportedLanguages['nl_NL']['nativedescription'] = 'Nederlands';
// Danish
$supportedLanguages['da_DK']['description'] = translate('Danish');
$supportedLanguages['da_DK']['nativedescription'] = 'Dansk';
// No longer supported language because of missing translators
//
// // Japanese
// $supportedLanguages['ja_JP']['description'] = translate('Japanese');
// $supportedLanguages['ja_JP']['nativedescription'] = '&#x65e5;&#x672c;&#x8a9e;';
//
// // Polish
// $supportedLanguages['pl_PL']['description'] = translate('Polish');
// $supportedLanguages['pl_PL']['nativedescription'] = 'Polski';
//
// // Spanish (Argentina)
// $supportedLanguages['es_AR']['description'] = translate('Spanish (Argentina)');
// $supportedLanguages['es_AR']['nativedescription'] = 'Espa&#241;ol Argentina';
///
/// Currently not supported languages
//
// // Albanian
// $supportedLanguages['sq']['description'] = $clang->translate('Albanian');
// $supportedLanguages['sq']['nativedescription'] = 'Shqipe';
//
// // Basque
// $supportedLanguages['eu']['description'] = translate('Basque');
// $supportedLanguages['eu']['nativedescription'] = 'Euskara';
//
// // Bosnian
// $supportedLanguages['bs']['description'] = translate('Bosnian');
// $supportedLanguages['bs']['nativedescription'] =
// '&#x0411;&#x044a;&#x043b;&#x0433;&#x0430;&#x0440;&#x0441;&#x043a;&#x0438;';
//
// // Bulgarian
// $supportedLanguages['bg']['description'] = translate('Bulgarian');
// $supportedLanguages['bg']['nativedescription'] =
// '&#x0411;&#x044a;&#x043b;&#x0433;&#x0430;&#x0440;&#x0441;&#x043a;&#x0438;';
//
// // Catalan
// $supportedLanguages['ca']['description'] = translate('Catalan');
// $supportedLanguages['ca']['nativedescription'] = 'Catal&#940;';
//
// // Welsh
// $supportedLanguages['cy']['description'] = translate('Welsh');
// $supportedLanguages['cy']['nativedescription'] = 'Cymraeg';
//
// // Chinese (Traditional - Hong Kong)
// $supportedLanguages['zh-Hant-HK']['description'] = translate('Chinese (Traditional - Hong Kong)');
// $supportedLanguages['zh-Hant-HK']['nativedescription'] = '&#32321;&#39636;&#20013;&#25991;&#35486;&#31995;';
//
// // Chinese (Traditional - Taiwan)
// $supportedLanguages['zh-Hant-TW']['description'] = translate('Chinese (Traditional - Taiwan)');
// $supportedLanguages['zh-Hant-TW']['nativedescription'] = 'Chinese (Traditional - Taiwan)';
//
// // Croatian
// $supportedLanguages['hr']['description'] = translate('Croatian');
// $supportedLanguages['hr']['nativedescription'] = 'Hrvatski';
//
// // Czech
// $supportedLanguages['cs']['description'] = translate('Czech');
// $supportedLanguages['cs']['nativedescription'] = '&#x010c;esky';
//
//
// // Estonian
// $supportedLanguages['et']['description'] = translate('Estonian');
// $supportedLanguages['et']['nativedescription'] = 'Eesti';
//
// // Finnish
// $supportedLanguages['fi']['description'] = translate('Finnish');
// $supportedLanguages['fi']['nativedescription'] = 'Suomi';
//
// // Galician
// $supportedLanguages['gl']['description'] = translate('Galician');
// $supportedLanguages['gl']['nativedescription'] = 'Galego';
//
// // German informal
// $supportedLanguages['de-informal']['description'] = translate('German informal');
// $supportedLanguages['de-informal']['nativedescription'] = 'Deutsch (Du)';
//
// // Greek
// $supportedLanguages['el']['description'] = translate('Greek');
// $supportedLanguages['el']['nativedescription'] = '&#949;&#955;&#955;&#951;&#957;&#953;&#954;&#940;';
//
// // Hebrew
// $supportedLanguages['he']['description'] = translate('Hebrew');
// $supportedLanguages['he']['nativedescription'] = ' &#1506;&#1489;&#1512;&#1497;&#1514;';
//
// // Hungarian
// $supportedLanguages['hu']['description'] = translate('Hungarian');
// $supportedLanguages['hu']['nativedescription'] = 'Magyar';
//
// // Indonesian
// $supportedLanguages['id']['description'] = translate('Indonesian');
// $supportedLanguages['id']['nativedescription'] = 'Bahasa Indonesia';
//
//
// // Lithuanian
// $supportedLanguages['lt']['description'] = translate('Lithuanian');
// $supportedLanguages['lt']['nativedescription'] = 'Lietuvi&#371;';
//
// // Macedonian
// $supportedLanguages['mk']['description'] = translate('Macedonian');
// $supportedLanguages['mk']['nativedescription'] =
// '&#1052;&#1072;&#1082;&#1077;&#1076;&#1086;&#1085;&#1089;&#1082;&#1080;';
//
// // Norwegian Bokml
// $supportedLanguages['nb']['description'] = translate('Norwegian (Bokmal)');
// $supportedLanguages['nb']['nativedescription'] = 'Norsk Bokm&#229;l';
//
// // Norwegian Nynorsk
// $supportedLanguages['nn']['description'] = translate('Norwegian (Nynorsk)');
// $supportedLanguages['nn']['nativedescription'] = 'Norsk Nynorsk';
//
// // Portuguese
// $supportedLanguages['pt']['description'] = translate('Portuguese');
// $supportedLanguages['pt']['nativedescription'] = 'Portugu&#234;s';
//
// // Romanian
// $supportedLanguages['ro']['description'] = translate('Romanian');
// $supportedLanguages['ro']['nativedescription'] = 'Rom&#226;nesc';
//
// // Slovak
// $supportedLanguages['sk']['description'] = translate('Slovak');
// $supportedLanguages['sk']['nativedescription'] = 'Slov&aacute;k';
//
// // Slovenian
// $supportedLanguages['sl']['description'] = translate('Slovenian');
// $supportedLanguages['sl']['nativedescription'] = 'Sloven&#353;&#269;ina';
//
// // Serbian
// $supportedLanguages['sr']['description'] = translate('Serbian');
// $supportedLanguages['sr']['nativedescription'] = 'Srpski';
//
// // Spanish (Mexico)
// $supportedLanguages['es-MX']['description'] = translate('Spanish (Mexico)');
// $supportedLanguages['es-MX']['nativedescription'] = 'Espa&#241;ol Mejicano';
//
// // Swedish
// $supportedLanguages['sv']['description'] = translate('Swedish');
// $supportedLanguages['sv']['nativedescription'] = 'Svenska';
//
// // Turkish
// $supportedLanguages['tr']['description'] = translate('Turkish');
// $supportedLanguages['tr']['nativedescription'] = 'T&#252;rk&#231;e';
//
// // Thai
// $supportedLanguages['th']['description'] = translate('Thai');
// $supportedLanguages['th']['nativedescription'] = '&#3616;&#3634;&#3625;&#3634;&#3652;&#3607;&#3618;';
//
// // Vietnamese
// $supportedLanguages['vi']['description'] = translate('Vietnamese');
// $supportedLanguages['vi']['nativedescription'] = 'Ti&#7871;ng Vi&#7879;t';
uasort($supportedLanguages, 'user_sort');
return $supportedLanguages;
}
function user_sort($intValue1, $intValue2)
{
$intReturn = -1;
// smarts is all-important, so sort it first
if ($intValue1['description'] > $intValue2['description']) {
$intReturn = 1;
}
return $intReturn;
}