|
<?php |
|
|
|
namespace Kanboard\Model; |
|
|
|
use Kanboard\Core\Base; |
|
use Kanboard\Core\Translator; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class LanguageModel extends Base |
|
{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static function getCodes() |
|
{ |
|
return array( |
|
'id_ID', |
|
'bg_BG', |
|
'bs_BA', |
|
'ca_ES', |
|
'cs_CZ', |
|
'da_DK', |
|
'de_DE', |
|
'de_DE_du', |
|
'en_GB', |
|
'en_US', |
|
'es_ES', |
|
'es_VE', |
|
'fr_FR', |
|
'el_GR', |
|
'it_IT', |
|
'hr_HR', |
|
'hu_HU', |
|
'mk_MK', |
|
'my_MY', |
|
'nl_NL', |
|
'nb_NO', |
|
'pl_PL', |
|
'pt_PT', |
|
'pt_BR', |
|
'ro_RO', |
|
'ru_RU', |
|
'sr_Latn_RS', |
|
'fi_FI', |
|
'sk_SK', |
|
'sv_SE', |
|
'tr_TR', |
|
'uk_UA', |
|
'ko_KR', |
|
'zh_CN', |
|
'zh_TW', |
|
'ja_JP', |
|
'th_TH', |
|
'vi_VN', |
|
'fa_IR', |
|
); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static function findCode($code) |
|
{ |
|
$code = str_replace('-', '_', $code); |
|
return in_array($code, self::getCodes()) ? $code : ''; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getLanguages($prepend = false) |
|
{ |
|
|
|
$languages = array( |
|
'id_ID' => 'Bahasa Indonesia', |
|
'bg_BG' => 'Български', |
|
'bs_BA' => 'Bosanski', |
|
'ca_ES' => 'Català', |
|
'cs_CZ' => 'Čeština', |
|
'da_DK' => 'Dansk', |
|
'de_DE' => 'Deutsch (Sie)', |
|
'de_DE_du' => 'Deutsch (du)', |
|
'en_GB' => 'English (GB)', |
|
'en_US' => 'English (US)', |
|
'es_ES' => 'Español (España)', |
|
'es_VE' => 'Español (Venezuela)', |
|
'fr_FR' => 'Français', |
|
'el_GR' => 'Grec', |
|
'hr_HR' => 'Hrvatski', |
|
'it_IT' => 'Italiano', |
|
'hu_HU' => 'Magyar', |
|
'mk_MK' => 'Македонски', |
|
'my_MY' => 'Melayu', |
|
'nl_NL' => 'Nederlands', |
|
'nb_NO' => 'Norsk', |
|
'pl_PL' => 'Polski', |
|
'pt_PT' => 'Português', |
|
'pt_BR' => 'Português (Brasil)', |
|
'ro_RO' => 'Română', |
|
'ru_RU' => 'Русский', |
|
'sr_Latn_RS' => 'Srpski', |
|
'fi_FI' => 'Suomi', |
|
'sk_SK' => 'Slovenčina', |
|
'sv_SE' => 'Svenska', |
|
'tr_TR' => 'Türkçe', |
|
'uk_UA' => 'Українська', |
|
'ko_KR' => '한국어', |
|
'zh_CN' => '中文(简体)', |
|
'zh_TW' => '中文(繁體)', |
|
'ja_JP' => '日本語', |
|
'th_TH' => 'ไทย', |
|
'vi_VN' => 'Tiếng Việt', |
|
'fa_IR' => 'فارسی', |
|
); |
|
|
|
if ($prepend) { |
|
return array('' => t('Application default')) + $languages; |
|
} |
|
|
|
return $languages; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getJsLanguageCode() |
|
{ |
|
$languages = array( |
|
'bg_BG' => 'bg', |
|
'cs_CZ' => 'cs', |
|
'ca_ES' => 'ca', |
|
'da_DK' => 'da', |
|
'de_DE' => 'de', |
|
'de_DE_du' => 'de', |
|
'en_GB' => 'en-GB', |
|
'en_US' => 'en', |
|
'es_ES' => 'es', |
|
'es_VE' => 'es', |
|
'fr_FR' => 'fr', |
|
'it_IT' => 'it', |
|
'hr_HR' => 'hr', |
|
'hu_HU' => 'hu', |
|
'nl_NL' => 'nl', |
|
'nb_NO' => 'no', |
|
'pl_PL' => 'pl', |
|
'pt_PT' => 'pt', |
|
'pt_BR' => 'pt-BR', |
|
'ro_RO' => 'ro', |
|
'ru_RU' => 'ru', |
|
'sr_Latn_RS' => 'sr', |
|
'fi_FI' => 'fi', |
|
'sk_SK' => 'sk', |
|
'sv_SE' => 'sv', |
|
'tr_TR' => 'tr', |
|
'uk_UA' => 'uk', |
|
'ko_KR' => 'ko', |
|
'zh_CN' => 'zh-CN', |
|
'zh_TW' => 'zh-TW', |
|
'ja_JP' => 'ja', |
|
'th_TH' => 'th', |
|
'id_ID' => 'id', |
|
'el_GR' => 'el', |
|
'fa_IR' => 'fa', |
|
'vi_VN' => 'vi', |
|
'bs_BA' => 'bs', |
|
'mk_MK' => 'mk', |
|
'my_MY' => 'my', |
|
); |
|
|
|
$lang = $this->getCurrentLanguage(); |
|
|
|
return isset($languages[$lang]) ? $languages[$lang] : 'en'; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getCurrentLanguage() |
|
{ |
|
return $this->userSession->getLanguage() ?: $this->configModel->get('application_language', 'en_US'); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
public function loadCurrentLanguage() |
|
{ |
|
Translator::load($this->getCurrentLanguage()); |
|
} |
|
} |
|
|