diff --git a/admin/index.php b/admin/index.php
index 012ca6689..bc88f0ad5 100644
--- a/admin/index.php
+++ b/admin/index.php
@@ -204,7 +204,7 @@ if (isset($_GET['pane']) && $_GET['pane'] == 'left') {
} else {
// Generate frameset
$template->assign_vars(array(
- 'CONTENT_ENCODING' => $bb_cfg['charset'],
+ 'CONTENT_ENCODING' => config('language.charset'),
'TPL_ADMIN_FRAMESET' => true,
));
send_no_cache_headers();
diff --git a/config/tp.php b/config/tp.php
new file mode 100644
index 000000000..abb99e2c7
--- /dev/null
+++ b/config/tp.php
@@ -0,0 +1,12 @@
+data['user_lang']]['locale']) ?
- $bb_cfg['lang'][$this->data['user_lang']]['locale'] : 'en_US.UTF-8');
+
+ setlocale(LC_ALL, config('language.lang.' . $this->data['user_lang'] . '.locale') ?? 'en_US.UTF-8');
$theme = setup_style();
$DeltaTime = new DateDelta();
diff --git a/library/TorrentPier/TorrentPier/Legacy/Emailer.php b/library/TorrentPier/TorrentPier/Legacy/Emailer.php
index d95e40ae9..37e1278a0 100644
--- a/library/TorrentPier/TorrentPier/Legacy/Emailer.php
+++ b/library/TorrentPier/TorrentPier/Legacy/Emailer.php
@@ -177,7 +177,7 @@ class Emailer
/** Set some variables */
$this->subject = !empty($this->subject) ? $this->subject : $lang['EMAILER_SUBJECT']['EMPTY'];
- $this->encoding = $bb_cfg['charset'];
+ $this->encoding = config('language.charset');
/** Prepare message */
if ($bb_cfg['emailer']['smtp']['enabled']) {
diff --git a/library/config.php b/library/config.php
index ceb25bf45..4eb64c5b3 100644
--- a/library/config.php
+++ b/library/config.php
@@ -150,199 +150,6 @@ $bb_cfg['login_url'] = 'login.php'; # "http://{$domain_name}/login.php"
$bb_cfg['posting_url'] = 'posting.php'; # "http://{$domain_name}/posting.php"
$bb_cfg['pm_url'] = 'privmsg.php'; # "http://{$domain_name}/privmsg.php"
-// Language
-$bb_cfg['charset'] = 'UTF-8'; // page charset
-$bb_cfg['lang'] = [
- 'af' => [
- 'name' => 'Afrikaans',
- 'locale' => 'af_ZA.UTF-8',
- ],
- 'sq' => [
- 'name' => 'Albanian',
- 'locale' => 'sq_AL.UTF-8',
- ],
- 'ar' => [
- 'name' => 'Arabic',
- 'locale' => 'ar_SA.UTF-8',
- ],
- 'hy' => [
- 'name' => 'Armenian',
- 'locale' => 'hy_AM.UTF-8',
- ],
- 'az' => [
- 'name' => 'Azerbaijani',
- 'locale' => 'az_AZ.UTF-8',
- ],
- 'be' => [
- 'name' => 'Belarusian',
- 'locale' => 'be_BY.UTF-8',
- ],
- 'bs' => [
- 'name' => 'Bosnian',
- 'locale' => 'bs_BA.UTF-8',
- ],
- 'bg' => [
- 'name' => 'Bulgarian',
- 'locale' => 'bg_BG.UTF-8',
- ],
- 'ca' => [
- 'name' => 'Catalan',
- 'locale' => 'ca_ES.UTF-8',
- ],
- 'zh' => [
- 'name' => 'Chinese Simplified',
- 'locale' => 'zh_CN.UTF-8',
- ],
- 'hr' => [
- 'name' => 'Croatian',
- 'locale' => 'hr_HR.UTF-8',
- ],
- 'cs' => [
- 'name' => 'Czech',
- 'locale' => 'cs_CZ.UTF-8',
- ],
- 'da' => [
- 'name' => 'Danish',
- 'locale' => 'da_DK.UTF-8',
- ],
- 'nl' => [
- 'name' => 'Dutch',
- 'locale' => 'nl_NL.UTF-8',
- ],
- 'en' => [
- 'name' => 'English',
- 'locale' => 'en_US.UTF-8',
- ],
- 'et' => [
- 'name' => 'Estonian',
- 'locale' => 'et_EE.UTF-8',
- ],
- 'fi' => [
- 'name' => 'Finnish',
- 'locale' => 'fi_FI.UTF-8',
- ],
- 'fr' => [
- 'name' => 'French',
- 'locale' => 'fr_FR.UTF-8',
- ],
- 'ka' => [
- 'name' => 'Georgian',
- 'locale' => 'ka_GE.UTF-8',
- ],
- 'de' => [
- 'name' => 'German',
- 'locale' => 'de_DE.UTF-8',
- ],
- 'el' => [
- 'name' => 'Greek',
- 'locale' => 'el_GR.UTF-8',
- ],
- 'he' => [
- 'name' => 'Hebrew',
- 'locale' => 'he_IL.UTF-8',
- ],
- 'hi' => [
- 'name' => 'Hindi',
- 'locale' => 'hi_IN.UTF-8',
- ],
- 'hu' => [
- 'name' => 'Hungarian',
- 'locale' => 'hu_HU.UTF-8',
- ],
- 'id' => [
- 'name' => 'Indonesian',
- 'locale' => 'id_ID.UTF-8',
- ],
- 'it' => [
- 'name' => 'Italian',
- 'locale' => 'it_IT.UTF-8',
- ],
- 'ja' => [
- 'name' => 'Japanese',
- 'locale' => 'ja_JP.UTF-8',
- ],
- 'kk' => [
- 'name' => 'Kazakh',
- 'locale' => 'kk_KZ.UTF-8',
- ],
- 'ko' => [
- 'name' => 'Korean',
- 'locale' => 'ko_KR.UTF-8',
- ],
- 'lv' => [
- 'name' => 'Latvian',
- 'locale' => 'lv_LV.UTF-8',
- ],
- 'lt' => [
- 'name' => 'Lithuanian',
- 'locale' => 'lt_LT.UTF-8',
- ],
- 'no' => [
- 'name' => 'Norwegian',
- 'locale' => 'nn_NO.UTF-8',
- ],
- 'pl' => [
- 'name' => 'Polish',
- 'locale' => 'pl_PL.UTF-8',
- ],
- 'pt' => [
- 'name' => 'Portuguese',
- 'locale' => 'pt_PT.UTF-8',
- ],
- 'ro' => [
- 'name' => 'Romanian',
- 'locale' => 'ro_RO.UTF-8',
- ],
- 'ru' => [
- 'name' => 'Russian',
- 'locale' => 'ru_RU.UTF-8',
- ],
- 'sr' => [
- 'name' => 'Serbian',
- 'locale' => 'sr_CS.UTF-8',
- ],
- 'sk' => [
- 'name' => 'Slovak',
- 'locale' => 'sk_SK.UTF-8',
- ],
- 'sl' => [
- 'name' => 'Slovenian',
- 'locale' => 'sl_SI.UTF-8',
- ],
- 'es' => [
- 'name' => 'Spanish',
- 'locale' => 'es_ES.UTF-8',
- ],
- 'sv' => [
- 'name' => 'Swedish',
- 'locale' => 'sv_SE.UTF-8',
- ],
- 'tg' => [
- 'name' => 'Tajik',
- 'locale' => 'tg_TJ.UTF-8',
- ],
- 'th' => [
- 'name' => 'Thai',
- 'locale' => 'th_TH.UTF-8',
- ],
- 'tr' => [
- 'name' => 'Turkish',
- 'locale' => 'tr_TR.UTF-8',
- ],
- 'uk' => [
- 'name' => 'Ukrainian',
- 'locale' => 'uk_UA.UTF-8',
- ],
- 'uz' => [
- 'name' => 'Uzbek',
- 'locale' => 'uz_UZ.UTF-8',
- ],
- 'vi' => [
- 'name' => 'Vietnamese',
- 'locale' => 'vi_VN.UTF-8',
- ],
-];
-
// Templates
$bb_cfg['templates'] = [
'default' => 'Стандартный',
diff --git a/library/includes/functions.php b/library/includes/functions.php
index 993cc9264..6f50f2e61 100644
--- a/library/includes/functions.php
+++ b/library/includes/functions.php
@@ -1375,7 +1375,7 @@ function bb_simple_die($txt)
bb_die("bb_simple_die:
$txt");
}
- header('Content-Type: text/plain; charset=' . $bb_cfg['charset']);
+ header('Content-Type: text/plain; charset=' . config('language.charset'));
die($txt);
}
diff --git a/library/includes/functions_selects.php b/library/includes/functions_selects.php
index 99e94d0f4..0b3e2a9f7 100644
--- a/library/includes/functions_selects.php
+++ b/library/includes/functions_selects.php
@@ -16,12 +16,10 @@ if (!defined('BB_ROOT')) {
//
function language_select($default_lang, $select_name = 'language')
{
- global $bb_cfg;
-
- $lang_default = reset($bb_cfg['lang']);
+ $lang_default = config('language.lang');
$lang_select = '';
- return ($x > 1) ? $lang_select : $lang_default['name'];
+ return ($x > 1) ? $lang_select : reset($lang_default)['name'];
}
//
diff --git a/library/includes/page_header.php b/library/includes/page_header.php
index b996a7cda..d8c62e94f 100644
--- a/library/includes/page_header.php
+++ b/library/includes/page_header.php
@@ -109,7 +109,7 @@ $template->assign_vars(array(
// The following assigns all _common_ variables that may be used at any point in a template
$template->assign_vars(array(
'SIMPLE_HEADER' => !empty($gen_simple_header),
- 'CONTENT_ENCODING' => $bb_cfg['charset'],
+ 'CONTENT_ENCODING' => config('language.charset'),
'IN_ADMIN' => defined('IN_ADMIN'),
'USER_HIDE_CAT' => (BB_SCRIPT == 'index'),