array ('phpdate' => 'd.m.Y', 'jsdate' => 'dd.mm.yy', 'dateformat' => $clang->gT('dd.mm.yyyy')), 2=> array ('phpdate' => 'd-m-Y', 'jsdate' => 'dd-mm-yy', 'dateformat' => $clang->gT('dd-mm-yyyy')), 3=> array ('phpdate' => 'Y.m.d', 'jsdate' => 'yy.mm.dd', 'dateformat' => $clang->gT('yyyy.mm.dd')), 4=> array ('phpdate' => 'j.n.Y', 'jsdate' => 'd.m.yy', 'dateformat' => $clang->gT('d.m.yyyy')), 5=> array ('phpdate' => 'd/m/Y', 'jsdate' => 'dd/mm/yy', 'dateformat' => $clang->gT('dd/mm/yyyy')), 6=> array ('phpdate' => 'Y-m-d', 'jsdate' => 'yy-mm-dd', 'dateformat' => $clang->gT('yyyy-mm-dd')), 7=> array ('phpdate' => 'Y/m/d', 'jsdate' => 'yy/mm/dd', 'dateformat' => $clang->gT('yyyy/mm/dd')), 8=> array ('phpdate' => 'j/n/Y', 'jsdate' => 'd/m/yy', 'dateformat' => $clang->gT('d/m/yyyy')), 9=> array ('phpdate' => 'm-d-Y', 'jsdate' => 'mm-dd-yy', 'dateformat' => $clang->gT('mm-dd-yyyy')), 10=>array ('phpdate' => 'm.d.Y', 'jsdate' => 'mm.dd.yy', 'dateformat' => $clang->gT('mm.dd.yyyy')), 11=>array ('phpdate' => 'm/d/Y', 'jsdate' => 'mm/dd/yy', 'dateformat' => $clang->gT('mm/dd/yyyy')), 12=>array ('phpdate' => 'j-n-Y', 'jsdate' => 'd-m-yy', 'dateformat' => $clang->gT('d-m-yyyy')) ); if ($iDateFormat > 12 || $iDateFormat<0) { $iDateFormat = 11; // TODO - what should default be? } if ($iDateFormat >0) { return $aDateFormats[$iDateFormat]; } else return $aDateFormats; } function getLanguageData($bOrderByNative=false,$sLanguageCode='en') { $clang = new Limesurvey_lang($sLanguageCode); static $result = array(); if (isset($result[$sLanguageCode][$bOrderByNative])) return $result[$sLanguageCode][$bOrderByNative]; // Afrikaans $supportedLanguages['af']['description'] = $clang->gT('Afrikaans'); $supportedLanguages['af']['nativedescription'] = 'Afrikaans'; $supportedLanguages['af']['rtl'] = false; $supportedLanguages['af']['dateformat'] = 1; $supportedLanguages['af']['radixpoint'] = 1; // Albanian $supportedLanguages['sq']['description'] = $clang->gT('Albanian'); $supportedLanguages['sq']['nativedescription'] = 'Shqipe'; $supportedLanguages['sq']['rtl'] = false; $supportedLanguages['sq']['dateformat'] = 1; $supportedLanguages['sq']['radixpoint'] = 1; // Amharic $supportedLanguages['am']['description'] = $clang->gT('Amharic'); $supportedLanguages['am']['nativedescription'] = 'አማርኛ'; $supportedLanguages['am']['rtl'] = false; $supportedLanguages['am']['dateformat'] = 2; $supportedLanguages['am']['radixpoint'] = 1; // Arabic $supportedLanguages['ar']['description'] = $clang->gT('Arabic'); $supportedLanguages['ar']['nativedescription'] = 'عَرَبيْ'; $supportedLanguages['ar']['rtl'] = true; $supportedLanguages['ar']['dateformat'] = 2; $supportedLanguages['ar']['radixpoint'] = 0; // Armenian $supportedLanguages['hy']['description'] = $clang->gT('Armenian'); $supportedLanguages['hy']['nativedescription'] = 'հայերեն'; $supportedLanguages['hy']['rtl'] = false; $supportedLanguages['hy']['dateformat'] = 1; $supportedLanguages['hy']['radixpoint'] = 1; // Basque $supportedLanguages['eu']['description'] = $clang->gT('Basque'); $supportedLanguages['eu']['nativedescription'] = 'Euskara'; $supportedLanguages['eu']['rtl'] = false; $supportedLanguages['eu']['dateformat'] = 3; $supportedLanguages['eu']['radixpoint'] = 1; // Belarusian $supportedLanguages['be']['description'] = $clang->gT('Belarusian'); $supportedLanguages['be']['nativedescription'] = 'Беларускі'; $supportedLanguages['be']['rtl'] = false; $supportedLanguages['be']['dateformat'] = 1; $supportedLanguages['be']['radixpoint'] = 1; // Bosnian $supportedLanguages['bs']['description'] = $clang->gT('Bosnian'); $supportedLanguages['bs']['nativedescription'] = 'Bosanski'; $supportedLanguages['bs']['rtl'] = false; $supportedLanguages['bs']['dateformat'] = 4; $supportedLanguages['bs']['radixpoint'] = 0; // Bulgarian $supportedLanguages['bg']['description'] = $clang->gT('Bulgarian'); $supportedLanguages['bg']['nativedescription'] = 'Български'; $supportedLanguages['bg']['rtl'] = false; $supportedLanguages['bg']['dateformat'] = 1; $supportedLanguages['bg']['radixpoint'] = 0; // Catalan $supportedLanguages['ca-valencia']['description'] = $clang->gT('Catalan (Valencian)'); $supportedLanguages['ca-valencia']['nativedescription'] = 'Català (Valencià)'; $supportedLanguages['ca-valencia']['rtl'] = false; $supportedLanguages['ca-valencia']['dateformat'] = 1; $supportedLanguages['ca-valencia']['radixpoint'] = 1; // Catalan $supportedLanguages['ca']['description'] = $clang->gT('Catalan'); $supportedLanguages['ca']['nativedescription'] = 'Català'; $supportedLanguages['ca']['rtl'] = false; $supportedLanguages['ca']['dateformat'] = 1; $supportedLanguages['ca']['radixpoint'] = 1; // Welsh $supportedLanguages['cy']['description'] = $clang->gT('Welsh'); $supportedLanguages['cy']['nativedescription'] = 'Cymraeg'; $supportedLanguages['cy']['rtl'] = false; $supportedLanguages['cy']['dateformat'] = 5; $supportedLanguages['cy']['radixpoint'] = 0; // Chinese (Simplified) $supportedLanguages['zh-Hans']['description'] = $clang->gT('Chinese (Simplified)'); $supportedLanguages['zh-Hans']['nativedescription'] = '简体中文'; $supportedLanguages['zh-Hans']['rtl'] = false; $supportedLanguages['zh-Hans']['dateformat'] = 6; $supportedLanguages['zh-Hans']['radixpoint'] = 0; // Chinese (Traditional - Hong Kong) $supportedLanguages['zh-Hant-HK']['description'] = $clang->gT('Chinese (Traditional - Hong Kong)'); $supportedLanguages['zh-Hant-HK']['nativedescription'] = '繁體中文語系'; $supportedLanguages['zh-Hant-HK']['rtl'] = false; $supportedLanguages['zh-Hant-HK']['dateformat'] = 6; $supportedLanguages['zh-Hant-HK']['radixpoint'] = 0; // Chinese (Traditional - Taiwan) $supportedLanguages['zh-Hant-TW']['description'] = $clang->gT('Chinese (Traditional - Taiwan)'); $supportedLanguages['zh-Hant-TW']['nativedescription'] = '繁體中文(台灣)'; $supportedLanguages['zh-Hant-TW']['rtl'] = false; $supportedLanguages['zh-Hant-TW']['dateformat'] = 6; $supportedLanguages['zh-Hant-TW']['radixpoint'] = 0; // Croatian $supportedLanguages['hr']['description'] = $clang->gT('Croatian'); $supportedLanguages['hr']['nativedescription'] = 'Hrvatski'; $supportedLanguages['hr']['rtl'] = false; $supportedLanguages['hr']['dateformat'] = 4; $supportedLanguages['hr']['radixpoint'] = 1; // Czech $supportedLanguages['cs']['description'] = $clang->gT('Czech'); $supportedLanguages['cs']['nativedescription'] = 'Česky'; $supportedLanguages['cs']['rtl'] = false; $supportedLanguages['cs']['dateformat'] = 4; $supportedLanguages['cs']['radixpoint'] = 1; // Czech informal $supportedLanguages['cs-informal']['description'] = $clang->gT('Czech (informal)'); $supportedLanguages['cs-informal']['nativedescription'] = 'Česky neformální'; $supportedLanguages['cs-informal']['rtl'] = false; $supportedLanguages['cs-informal']['dateformat'] = 4; $supportedLanguages['cs-informal']['radixpoint'] = 1; // Danish $supportedLanguages['da']['description'] = $clang->gT('Danish'); $supportedLanguages['da']['nativedescription'] = 'Dansk'; $supportedLanguages['da']['rtl'] = false; $supportedLanguages['da']['dateformat'] = 2; $supportedLanguages['da']['radixpoint'] = 1; // Dari $supportedLanguages['prs']['description'] = $clang->gT('Dari'); $supportedLanguages['prs']['nativedescription'] = 'دری'; $supportedLanguages['prs']['rtl'] = true; $supportedLanguages['prs']['dateformat'] = 6; $supportedLanguages['prs']['radixpoint'] = 0; // Dutch $supportedLanguages['nl']['description'] = $clang->gT('Dutch'); $supportedLanguages['nl']['nativedescription'] = 'Nederlands'; $supportedLanguages['nl']['rtl'] = false; $supportedLanguages['nl']['dateformat'] = 2; $supportedLanguages['nl']['radixpoint'] = 1; // Dutch $supportedLanguages['nl-informal']['description'] = $clang->gT('Dutch (informal)'); $supportedLanguages['nl-informal']['nativedescription'] = 'Nederlands (informeel)'; $supportedLanguages['nl-informal']['rtl'] = false; $supportedLanguages['nl-informal']['dateformat'] = 2; $supportedLanguages['nl-informal']['radixpoint'] = 1; // English $supportedLanguages['en']['description'] = $clang->gT('English'); $supportedLanguages['en']['nativedescription'] = 'English'; $supportedLanguages['en']['rtl'] = false; $supportedLanguages['en']['dateformat'] = 9; $supportedLanguages['en']['radixpoint'] = 0; // Estonian $supportedLanguages['et']['description'] = $clang->gT('Estonian'); $supportedLanguages['et']['nativedescription'] = 'Eesti'; $supportedLanguages['et']['rtl'] = false; $supportedLanguages['et']['dateformat'] = 4; $supportedLanguages['et']['radixpoint'] = 1; // Finnish $supportedLanguages['fi']['description'] = $clang->gT('Finnish'); $supportedLanguages['fi']['nativedescription'] = 'Suomi'; $supportedLanguages['fi']['rtl'] = false; $supportedLanguages['fi']['dateformat'] = 4; $supportedLanguages['fi']['radixpoint'] = 1; // French $supportedLanguages['fr']['description'] = $clang->gT('French'); $supportedLanguages['fr']['nativedescription'] = 'Français'; $supportedLanguages['fr']['rtl'] = false; $supportedLanguages['fr']['dateformat'] = 5; $supportedLanguages['fr']['radixpoint'] = 1; // Fula $supportedLanguages['ful']['description'] = $clang->gT('Fula'); $supportedLanguages['ful']['nativedescription'] = 'Fulfulde'; $supportedLanguages['ful']['rtl'] = false; $supportedLanguages['ful']['dateformat'] = 5; $supportedLanguages['ful']['radixpoint'] = 1; // Galician $supportedLanguages['gl']['description'] = $clang->gT('Galician'); $supportedLanguages['gl']['nativedescription'] = 'Galego'; $supportedLanguages['gl']['rtl'] = false; $supportedLanguages['gl']['dateformat'] = 5; $supportedLanguages['gl']['radixpoint'] = 1; // Georgian $supportedLanguages['ka']['description'] = $clang->gT('Georgian'); $supportedLanguages['ka']['nativedescription'] = 'ქართული ენა'; $supportedLanguages['ka']['rtl'] = false; $supportedLanguages['ka']['dateformat'] = 1; $supportedLanguages['ka']['radixpoint'] = 1; // German $supportedLanguages['de']['description'] = $clang->gT('German'); $supportedLanguages['de']['nativedescription'] = 'Deutsch'; $supportedLanguages['de']['rtl'] = false; $supportedLanguages['de']['dateformat'] = 1; $supportedLanguages['de']['radixpoint'] = 1; // German informal $supportedLanguages['de-informal']['description'] = $clang->gT('German (informal)'); $supportedLanguages['de-informal']['nativedescription'] = 'Deutsch (Du)'; $supportedLanguages['de-informal']['rtl'] = false; $supportedLanguages['de-informal']['dateformat'] = 1; $supportedLanguages['de-informal']['radixpoint'] = 1; // Gujarati $supportedLanguages['gu']['description'] = $clang->gT('Gujarati'); $supportedLanguages['gu']['nativedescription'] = 'ગુજરાતી'; $supportedLanguages['gu']['rtl'] = false; $supportedLanguages['gu']['dateformat'] = 2; $supportedLanguages['gu']['radixpoint'] = 0; // Greek $supportedLanguages['el']['description'] = $clang->gT('Greek'); $supportedLanguages['el']['nativedescription'] = 'ελληνικά'; $supportedLanguages['el']['rtl'] = false; $supportedLanguages['el']['dateformat'] = 8; $supportedLanguages['el']['radixpoint'] = 1; // Hindi $supportedLanguages['hi']['description'] = $clang->gT('Hindi'); $supportedLanguages['hi']['nativedescription'] = 'हिन्दी'; $supportedLanguages['hi']['rtl'] = false; $supportedLanguages['hi']['dateformat'] = 2; $supportedLanguages['hi']['radixpoint'] = 0; // Hebrew $supportedLanguages['he']['description'] = $clang->gT('Hebrew'); $supportedLanguages['he']['nativedescription'] = ' עברית'; $supportedLanguages['he']['rtl'] = true; $supportedLanguages['he']['dateformat'] = 5; $supportedLanguages['he']['radixpoint'] = 0; // Hungarian $supportedLanguages['hu']['description'] = $clang->gT('Hungarian'); $supportedLanguages['hu']['nativedescription'] = 'Magyar'; $supportedLanguages['hu']['rtl'] = false; $supportedLanguages['hu']['dateformat'] = 6; $supportedLanguages['hu']['radixpoint'] = 1; // Icelandic $supportedLanguages['is']['description'] = $clang->gT('Icelandic'); $supportedLanguages['is']['nativedescription'] = 'íslenska'; $supportedLanguages['is']['rtl'] = false; $supportedLanguages['is']['dateformat'] = 1; $supportedLanguages['is']['radixpoint'] = 1; // Indonesian $supportedLanguages['id']['description'] = $clang->gT('Indonesian'); $supportedLanguages['id']['nativedescription'] = 'Bahasa Indonesia'; $supportedLanguages['id']['rtl'] = false; $supportedLanguages['id']['dateformat'] = 5; $supportedLanguages['id']['radixpoint'] = 1; // Irish $supportedLanguages['ie']['description'] = $clang->gT('Irish'); $supportedLanguages['ie']['nativedescription'] = 'Gaeilge'; $supportedLanguages['ie']['rtl'] = false; $supportedLanguages['ie']['dateformat'] = 2; $supportedLanguages['ie']['radixpoint'] = 0; // Italian $supportedLanguages['it']['description'] = $clang->gT('Italian'); $supportedLanguages['it']['nativedescription'] = 'Italiano'; $supportedLanguages['it']['rtl'] = false; $supportedLanguages['it']['dateformat'] = 5; $supportedLanguages['it']['radixpoint'] = 1; // Italian informal $supportedLanguages['it-informal']['description'] = $clang->gT('Italian (informal)'); $supportedLanguages['it-informal']['nativedescription'] = 'Italiano (informale)'; $supportedLanguages['it-informal']['rtl'] = false; $supportedLanguages['it-informal']['dateformat'] = 5; $supportedLanguages['it-informal']['radixpoint'] = 1; // Japanese $supportedLanguages['ja']['description'] = $clang->gT('Japanese'); $supportedLanguages['ja']['nativedescription'] = '日本語'; $supportedLanguages['ja']['rtl'] = false; $supportedLanguages['ja']['dateformat'] = 6; $supportedLanguages['ja']['radixpoint'] = 0; // Kinyarwanda $supportedLanguages['rw']['description'] = $clang->gT('Kinyarwanda'); $supportedLanguages['rw']['nativedescription'] = 'Kinyarwanda'; $supportedLanguages['rw']['rtl'] = false; $supportedLanguages['rw']['dateformat'] = 5; $supportedLanguages['rw']['radixpoint'] = 1; // Korean $supportedLanguages['ko']['description'] = $clang->gT('Korean'); $supportedLanguages['ko']['nativedescription'] = '한국어'; $supportedLanguages['ko']['rtl'] = false; $supportedLanguages['ko']['dateformat'] = 7; $supportedLanguages['ko']['radixpoint'] = 0; // Kurdish (Sorani) $supportedLanguages['ckb']['description'] = $clang->gT('Kurdish (Sorani)'); $supportedLanguages['ckb']['nativedescription'] = 'کوردیی ناوەندی'; $supportedLanguages['ckb']['rtl'] = true; $supportedLanguages['ckb']['dateformat'] = 1; $supportedLanguages['ckb']['radixpoint'] = 1; // Lithuanian $supportedLanguages['lt']['description'] = $clang->gT('Lithuanian'); $supportedLanguages['lt']['nativedescription'] = 'Lietuvių'; $supportedLanguages['lt']['rtl'] = false; $supportedLanguages['lt']['dateformat'] = 6; $supportedLanguages['lt']['radixpoint'] = 1; // Latvian $supportedLanguages['lv']['description'] = $clang->gT('Latvian'); $supportedLanguages['lv']['nativedescription'] = 'Latviešu'; $supportedLanguages['lv']['rtl'] = false; $supportedLanguages['lv']['dateformat'] = 6; $supportedLanguages['lv']['radixpoint'] = 1; // Macedonian $supportedLanguages['mk']['description'] = $clang->gT('Macedonian'); $supportedLanguages['mk']['nativedescription'] = 'Македонски'; $supportedLanguages['mk']['rtl'] = false; $supportedLanguages['mk']['dateformat'] = 1; $supportedLanguages['mk']['radixpoint'] = 1; // Mongolian $supportedLanguages['mn']['description'] = $clang->gT('Mongolian'); $supportedLanguages['mn']['nativedescription'] = 'Монгол'; $supportedLanguages['mn']['rtl'] = false; $supportedLanguages['mn']['dateformat'] = 3; $supportedLanguages['mn']['radixpoint'] = 0; // Malay $supportedLanguages['ms']['description'] = $clang->gT('Malay'); $supportedLanguages['ms']['nativedescription'] = 'Bahasa Melayu'; $supportedLanguages['ms']['rtl'] = false; $supportedLanguages['ms']['dateformat'] = 1; $supportedLanguages['ms']['radixpoint'] = 0; // Maltese $supportedLanguages['mt']['description'] = $clang->gT('Maltese'); $supportedLanguages['mt']['nativedescription'] = 'Malti'; $supportedLanguages['mt']['rtl'] = false; $supportedLanguages['mt']['dateformat'] = 1; $supportedLanguages['mt']['radixpoint'] = 0; // Marathi $supportedLanguages['mr']['description'] = $clang->gT('Marathi'); $supportedLanguages['mr']['nativedescription'] = 'मराठी'; $supportedLanguages['mr']['rtl'] = false; $supportedLanguages['mr']['dateformat'] = 2; $supportedLanguages['mr']['radixpoint'] = 0; // Norwegian Bokmal $supportedLanguages['nb']['description'] = $clang->gT('Norwegian (Bokmal)'); $supportedLanguages['nb']['nativedescription'] = 'Norsk Bokmål'; $supportedLanguages['nb']['rtl'] = false; $supportedLanguages['nb']['dateformat'] = 4; $supportedLanguages['nb']['radixpoint'] = 1; // Norwegian Nynorsk $supportedLanguages['nn']['description'] = $clang->gT('Norwegian (Nynorsk)'); $supportedLanguages['nn']['nativedescription'] = 'Norsk Nynorsk'; $supportedLanguages['nn']['rtl'] = false; $supportedLanguages['nn']['dateformat'] = 4; $supportedLanguages['nn']['radixpoint'] = 1; // Occitan $supportedLanguages['oc']['description'] = $clang->gT('Occitan'); $supportedLanguages['oc']['nativedescription'] = 'Lenga d'òc'; $supportedLanguages['oc']['rtl'] = false; $supportedLanguages['oc']['dateformat'] = 5; $supportedLanguages['oc']['radixpoint'] = 1; // Pashto $supportedLanguages['ps']['description'] = $clang->gT('Pashto'); $supportedLanguages['ps']['nativedescription'] = 'پښتو'; $supportedLanguages['ps']['rtl'] = true; $supportedLanguages['ps']['dateformat'] = 6; $supportedLanguages['ps']['radixpoint'] = 0; // Persian $supportedLanguages['fa']['description'] = $clang->gT('Persian'); $supportedLanguages['fa']['nativedescription'] = 'فارسی'; $supportedLanguages['fa']['rtl'] = true; $supportedLanguages['fa']['dateformat'] = 6; $supportedLanguages['fa']['radixpoint'] = 0; // Papiamento (Aruba) $supportedLanguages['pap-AW']['description'] = $clang->gT('Papiamento (Aruba)'); $supportedLanguages['pap-AW']['nativedescription'] = 'Papiamento'; $supportedLanguages['pap-AW']['rtl'] = false; $supportedLanguages['pap-AW']['dateformat'] = 2; $supportedLanguages['pap-AW']['radixpoint'] = 1; // Papiamento (Curaçao and Bonaire) $supportedLanguages['pap-CW']['description'] = $clang->gT('Papiamento (Curaçao and Bonaire)'); $supportedLanguages['pap-CW']['nativedescription'] = 'Papiamentu'; $supportedLanguages['pap-CW']['rtl'] = false; $supportedLanguages['pap-CW']['dateformat'] = 2; $supportedLanguages['pap-CW']['radixpoint'] = 1; // Polish $supportedLanguages['pl']['description'] = $clang->gT('Polish'); $supportedLanguages['pl']['nativedescription'] = 'Polski'; $supportedLanguages['pl']['rtl'] = false; $supportedLanguages['pl']['dateformat'] = 1; $supportedLanguages['pl']['radixpoint'] = 1; // Portuguese $supportedLanguages['pt']['description'] = $clang->gT('Portuguese'); $supportedLanguages['pt']['nativedescription'] = 'Português'; $supportedLanguages['pt']['rtl'] = false; $supportedLanguages['pt']['dateformat'] = 5; $supportedLanguages['pt']['radixpoint'] = 1; // Brazilian Portuguese $supportedLanguages['pt-BR']['description'] = $clang->gT('Portuguese (Brazilian)'); $supportedLanguages['pt-BR']['nativedescription'] = 'Português do Brasil'; $supportedLanguages['pt-BR']['rtl'] = false; $supportedLanguages['pt-BR']['dateformat'] = 5; $supportedLanguages['pt-BR']['radixpoint'] = 1; // Punjabi $supportedLanguages['pa']['description'] = $clang->gT('Punjabi'); $supportedLanguages['pa']['nativedescription'] = 'ਪੰਜਾਬੀ'; $supportedLanguages['pa']['rtl'] = false; $supportedLanguages['pa']['dateformat'] = 2; $supportedLanguages['pa']['radixpoint'] = 0; // Russian $supportedLanguages['ru']['description'] = $clang->gT('Russian'); $supportedLanguages['ru']['nativedescription'] = 'Русский'; $supportedLanguages['ru']['rtl'] = false; $supportedLanguages['ru']['dateformat'] = 1; $supportedLanguages['ru']['radixpoint'] = 1; // Romanian $supportedLanguages['ro']['description'] = $clang->gT('Romanian'); $supportedLanguages['ro']['nativedescription'] = 'Româna'; $supportedLanguages['ro']['rtl'] = false; $supportedLanguages['ro']['dateformat'] = 1; $supportedLanguages['ro']['radixpoint'] = 1; // Slovak $supportedLanguages['sk']['description'] = $clang->gT('Slovak'); $supportedLanguages['sk']['nativedescription'] = 'Slovenčina'; $supportedLanguages['sk']['rtl'] = false; $supportedLanguages['sk']['dateformat'] = 4; $supportedLanguages['sk']['radixpoint'] = 1; // Sinhala $supportedLanguages['si']['description'] = $clang->gT('Sinhala'); $supportedLanguages['si']['nativedescription'] = 'සිංහල'; $supportedLanguages['si']['rtl'] = false; $supportedLanguages['si']['dateformat'] = 5; $supportedLanguages['si']['radixpoint'] = 0; // Slovenian $supportedLanguages['sl']['description'] = $clang->gT('Slovenian'); $supportedLanguages['sl']['nativedescription'] = 'Slovenščina'; $supportedLanguages['sl']['rtl'] = false; $supportedLanguages['sl']['dateformat'] = 4; $supportedLanguages['sl']['radixpoint'] = 1; // Serbian $supportedLanguages['sr']['description'] = $clang->gT('Serbian (Cyrillic)'); $supportedLanguages['sr']['nativedescription'] = 'Српски'; $supportedLanguages['sr']['rtl'] = false; $supportedLanguages['sr']['dateformat'] = 4; $supportedLanguages['sr']['radixpoint'] = 1; // Serbian (Latin script) $supportedLanguages['sr-Latn']['description'] = $clang->gT('Serbian (Latin)'); $supportedLanguages['sr-Latn']['nativedescription'] = 'Srpski'; $supportedLanguages['sr-Latn']['rtl'] = false; $supportedLanguages['sr-Latn']['dateformat'] = 4; $supportedLanguages['sr-Latn']['radixpoint'] = 1; // Spanish $supportedLanguages['es']['description'] = $clang->gT('Spanish'); $supportedLanguages['es']['nativedescription'] = 'Español'; $supportedLanguages['es']['rtl'] = false; $supportedLanguages['es']['dateformat'] = 5; $supportedLanguages['es']['radixpoint'] = 1; // Spanish (Argentina) $supportedLanguages['es-AR']['description'] = $clang->gT('Spanish (Argentina)'); $supportedLanguages['es-AR']['nativedescription'] = 'Español rioplatense'; $supportedLanguages['es-AR']['rtl'] = false; $supportedLanguages['es-AR']['dateformat'] = 5; $supportedLanguages['es-AR']['radixpoint'] = 0; // Spanish (Argentina) (Informal) $supportedLanguages['es-AR-informal']['description'] = $clang->gT('Spanish (Argentina) (Informal)'); $supportedLanguages['es-AR-informal']['nativedescription'] = 'Español rioplatense informal'; $supportedLanguages['es-AR-informal']['rtl'] = false; $supportedLanguages['es-AR-informal']['dateformat'] = 5; $supportedLanguages['es-AR-informal']['radixpoint'] = 0; // Spanish (Chile) $supportedLanguages['es-CL']['description'] = $clang->gT('Spanish (Chile)'); $supportedLanguages['es-CL']['nativedescription'] = 'Español chileno'; $supportedLanguages['es-CL']['rtl'] = false; $supportedLanguages['es-CL']['dateformat'] = 5; $supportedLanguages['es-CL']['radixpoint'] = 0; // Spanish (Mexico) $supportedLanguages['es-MX']['description'] = $clang->gT('Spanish (Mexico)'); $supportedLanguages['es-MX']['nativedescription'] = 'Español mexicano'; $supportedLanguages['es-MX']['rtl'] = false; $supportedLanguages['es-MX']['dateformat'] = 5; $supportedLanguages['es-MX']['radixpoint'] = 0; // Swahili $supportedLanguages['swh']['description'] = $clang->gT('Swahili'); $supportedLanguages['swh']['nativedescription'] = 'Kiswahili'; $supportedLanguages['swh']['rtl'] = false; $supportedLanguages['swh']['dateformat'] = 1; $supportedLanguages['swh']['radixpoint'] = 1; // Swedish $supportedLanguages['sv']['description'] = $clang->gT('Swedish'); $supportedLanguages['sv']['nativedescription'] = 'Svenska'; $supportedLanguages['sv']['rtl'] = false; $supportedLanguages['sv']['dateformat'] = 6; $supportedLanguages['sv']['radixpoint'] = 1; // Tamil $supportedLanguages['ta']['description'] = $clang->gT('Tamil'); $supportedLanguages['ta']['nativedescription'] = 'தமிழ்'; $supportedLanguages['ta']['rtl'] = false; $supportedLanguages['ta']['dateformat'] = 2; $supportedLanguages['ta']['radixpoint'] = 0; // Turkish $supportedLanguages['tr']['description'] = $clang->gT('Turkish'); $supportedLanguages['tr']['nativedescription'] = 'Türkçe'; $supportedLanguages['tr']['rtl'] = false; $supportedLanguages['tr']['dateformat'] = 5; $supportedLanguages['tr']['radixpoint'] = 1; // Thai $supportedLanguages['th']['description'] = $clang->gT('Thai'); $supportedLanguages['th']['nativedescription'] = 'ภาษาไทย'; $supportedLanguages['th']['rtl'] = false; $supportedLanguages['th']['dateformat'] = 5; $supportedLanguages['th']['radixpoint'] = 0; //Urdu $supportedLanguages['ur']['description'] = $clang->gT('Urdu'); $supportedLanguages['ur']['nativedescription'] = 'اردو'; $supportedLanguages['ur']['rtl'] = true; $supportedLanguages['ur']['dateformat'] = 2; $supportedLanguages['ur']['radixpoint'] = 0; // Vietnamese $supportedLanguages['vi']['description'] = $clang->gT('Vietnamese'); $supportedLanguages['vi']['nativedescription'] = 'Tiếng Việt'; $supportedLanguages['vi']['rtl'] = false; $supportedLanguages['vi']['dateformat'] = 5; $supportedLanguages['vi']['radixpoint'] = 1; // Zulu $supportedLanguages['zu']['description'] = $clang->gT('Zulu'); $supportedLanguages['zu']['nativedescription'] = 'isiZulu'; $supportedLanguages['zu']['rtl'] = false; $supportedLanguages['zu']['dateformat'] = 5; $supportedLanguages['zu']['radixpoint'] = 1; if ($bOrderByNative) { uasort($supportedLanguages,"userSortNative"); } else { uasort($supportedLanguages,"userSort"); } $result[$sLanguageCode][$bOrderByNative] = $supportedLanguages; Return $supportedLanguages; } /** * Returns avaliable formats for Radix Points (Decimal Separators) or returns * radix point info about a specific format. * * @param int $format Format ID/Number [optional] */ function getRadixPointData($format=-1) { $clang = Yii::app()->lang; $aRadixFormats = array ( 0=>array('separator'=> '.', 'desc'=> $clang->gT('Dot (.)')), 1=>array('separator'=> ',', 'desc'=> $clang->gT('Comma (,)')) ); // hack for fact that null sometimes sent to this function if (is_null($format)) { $format = 0; } if ($format >= 0) return $aRadixFormats[$format]; else return $aRadixFormats; } /** * Convert a 'dateformat' format string to a 'phpdate' format. * * @param $sDateformat string * @returns string * */ function getPHPDateFromDateFormat($sDateformat) { // Note that order is relevant (longer strings first) $aFmts = array( // With leading zero "dd" => "d", "mm" => "m", "yyyy" => "Y", "HH" => "H", "MM" => "i", // Without leading zero "d" => "j", "m" => "n", "yy" => "y", "H" => "G", "M" => "i"); // Extra allowed characters $aAllowed = array('-', '.', '/', ':', ' '); // Convert $tmp = array(); foreach ($aAllowed as $k) { $tmp[$k] = true; } foreach (array_values($aFmts) as $k) { for ($i = 0; $i < strlen($k); $i++) { $tmp[$k[$i]] = true; } } $aAllowed = $tmp; $tmp = strtr($sDateformat, $aFmts); $sPhpdate = ""; for ($i = 0; $i < strlen($tmp); $i++) { $c = $tmp[$i]; if(isset($aAllowed[$c])) { $sPhpdate .= $c; } } return $sPhpdate; } /** * Convert a 'dateformat' format string to a 'jsdate' format. * * @param $sDateformat string * @returns string * */ function getJSDateFromDateFormat($sDateformat) { // The only difference from dateformat is that Jsdate does not support truncated years return str_replace(array('yy'), array('y'), $sDateformat); } /** * Get the date format details for a specific question. * * @param $aQidAttributes array Question attributes * @param $mThisSurvey mixed Array of Survey attributes or surveyid * @returns array * */ function getDateFormatDataForQID($aQidAttributes, $mThisSurvey) { if (isset($aQidAttributes['date_format']) && trim($aQidAttributes['date_format'])!='') { $aDateFormatDetails = array(); $aDateFormatDetails['dateformat'] = trim($aQidAttributes['date_format']); $aDateFormatDetails['phpdate'] = getPHPDateFromDateFormat($aDateFormatDetails['dateformat']); $aDateFormatDetails['jsdate'] = getJSDateFromDateFormat($aDateFormatDetails['dateformat']); } else { if(!is_array($mThisSurvey)) { $mThisSurvey = array('surveyls_dateformat' => getDateFormatForSID($mThisSurvey)); } $aDateFormatDetails = getDateFormatData($mThisSurvey['surveyls_dateformat']); } return $aDateFormatDetails; } /** * Get the date format for a specified survey * * @param $surveyid integer Survey id * @param $languagecode string Survey language code (optional) * @returns integer * */ function getDateFormatForSID($surveyid, $languagecode='') { if (!isset($languagecode) || $languagecode=='') { $languagecode=Survey::model()->findByPk($surveyid)->language; } $data = SurveyLanguageSetting::model()->getDateFormat($surveyid,$languagecode); if(empty($data)) { $dateformat = 0; } else { $dateformat = (int) $data; } return (int) $dateformat; } /** * Check whether we can show the JS date picker with the current format * * @param $dateformatdetails array Date format details for the question * @param $dateformats array Available date formats * @returns integer * */ function canShowDatePicker($dateformatdetails, $dateformats=null) { if(is_null($dateformats)) { $dateformats = getDateFormatData(); } $showpicker = false; foreach($dateformats as $format) { if($format['jsdate'] == $dateformatdetails['jsdate']) { $showpicker = true; break; } } return $showpicker; } function getLanguageCodefromLanguage($languagetosearch) { $detaillanguages = getLanguageData(false,Yii::app()->session['adminlang']); foreach ($detaillanguages as $key2=>$languagename) { if ($languagetosearch==$languagename['description']) { return $key2; } } // else return default en code return "en"; } function getLanguageNameFromCode($codetosearch, $withnative=true, $sTranslationLanguage=null) { if (is_null($sTranslationLanguage)) { $sTranslationLanguage=Yii::app()->session['adminlang']; } $detaillanguages = getLanguageData(false,$sTranslationLanguage); if (isset($detaillanguages[$codetosearch]['description'])) { if ($withnative) { return array($detaillanguages[$codetosearch]['description'], $detaillanguages[$codetosearch]['nativedescription']); } else { return $detaillanguages[$codetosearch]['description'];} } else // else return default en code return false; } function getLanguageRTL($sLanguageCode) { $aLanguageData= getLanguageData(false,$sLanguageCode); if (isset($aLanguageData[$sLanguageCode]['rtl'])) { return $aLanguageData[$sLanguageCode]['rtl']; } else { return false; } } /** * Returns the locale settings for a certain language code * * @param string $codetosearch * @return array Array with locale details * */ function getLanguageDetails($codetosearch) { $detaillanguages = getLanguageData(false,Yii::app()->session['adminlang']); if (isset($detaillanguages[$codetosearch])) { return $detaillanguages[$codetosearch]; } else { return $detaillanguages['en']; } } function getLanguageDataRestricted($bOrderByNative=false,$sLanguageCode='en') { $aLanguageData=getLanguageData($bOrderByNative, $sLanguageCode); if (trim(Yii::app()->getConfig('restrictToLanguages'))!='') { foreach(explode(' ',trim(Yii::app()->getConfig('restrictToLanguages'))) AS $key) { $aArray[$key] = $aLanguageData[$key]; } } else { $aArray=$aLanguageData; } return $aArray; } function userSort($a, $b) { // smarts is all-important, so sort it first if($a['description'] >$b['description']) { return 1; } else { return -1; } } function userSortNative($a, $b) { // smarts is all-important, so sort it first if($a['nativedescription'] >$b['nativedescription']) { return 1; } else { return -1; } } /** * This function support the ability NOT to reverse numbers (for example when you output * a phrase as a parameter for a SWF file that can't handle RTL languages itself, but * obviously any numbers should remain the same as in the original phrase). * Note that it can be used just as well for UTF-8 usages if you want the numbers to remain intact * * @param string $str * @param boolean $reverse_numbers * @return string */ function UTF8Strrev($str, $reverse_numbers=false) { preg_match_all('/./us', $str, $ar); if ($reverse_numbers) return join('',array_reverse($ar[0])); else { $temp = array(); foreach ($ar[0] as $value) { if (is_numeric($value) && !empty($temp[0]) && is_numeric($temp[0])) { foreach ($temp as $key => $value2) { if (is_numeric($value2)) $pos = ($key + 1); else break; } $temp2 = array_splice($temp, $pos); $temp = array_merge($temp, array($value), $temp2); } else array_unshift($temp, $value); } return implode('', $temp); } } ?>