diff --git a/app/bot.php b/app/bot.php index 83a0ad2..5cfaa4f 100644 --- a/app/bot.php +++ b/app/bot.php @@ -112,11 +112,7 @@ class Bot case preg_match('~^/menu (?Paddpeer) (?P(?:-)?\d+)$~', $this->input['callback'], $m): case preg_match('~^/menu (?Pwg) (?P(?:-)?\d+)$~', $this->input['callback'], $m): case preg_match('~^/menu (?Pclient) (?P\d+(?:_(?:-)?\d+)?)$~', $this->input['callback'], $m): - case preg_match('~^/menu (?Ppac)$~', $this->input['callback'], $m): - case preg_match('~^/menu (?Padguard)$~', $this->input['callback'], $m): - case preg_match('~^/menu (?Pconfig)$~', $this->input['callback'], $m): - case preg_match('~^/menu (?Pss)$~', $this->input['callback'], $m): - case preg_match('~^/menu (?Plang)$~', $this->input['callback'], $m): + case preg_match('~^/menu (?Ppac|adguard|config|ss|lang)$~', $this->input['callback'], $m): case preg_match('~^/menu (?Psubzoneslist|reverselist|includelist|excludelist) (?P(?:-)?\d+)$~', $this->input['callback'], $m): $this->menu(type: $m['type'] ?? false, arg: $m['arg'] ?? false); break; @@ -1749,7 +1745,7 @@ DNS-over-HTTPS with IP: public function i18n(string $menu): string { - return $this->i18n[$this->language][$menu] ?: 'no translate'; + return $this->i18n[$menu][$this->language] ?: 'no translate'; } public function menu($type = false, $arg = false, $return = false) diff --git a/app/i18n.php b/app/i18n.php index 190f007..8a82ab7 100644 --- a/app/i18n.php +++ b/app/i18n.php @@ -1,100 +1,188 @@ [ - 'wg_title' => 'Wireguard', - 'sh_title' => 'Shadowsocks', - 'ad_title' => 'AdGuard', - 'config' => 'config', - 'pac' => 'PAC', - 'chat' => 'discussion group', - 'back' => 'back', - 'import' => 'import', - 'export' => 'export', - 'delete' => 'delete', - 'add' => 'add', - 'donate' => 'donate', - 'admin' => 'admin', - 'menu' => 'Menu', - 'update status' => 'update status', - 'add peer' => 'add peer', - 'all traffic' => 'all traffic', - 'subnet' => 'subnet', - 'proxy ip' => 'proxy ip', - 'rename' => 'rename', - 'show QR' => 'show QR', - 'download config' => 'download config', - 'install domain' => 'install domain', - 'renew SSL' => 'renew SSL', - 'delete SSL' => 'delete SSL', - 'Letsencrypt SSL' => 'Letsencrypt SSL', - 'Self SSL' => 'Self SSL', - 'change password' => 'change password', - 'reset settings' => 'reset settings', - 'add upstream' => 'add upstream', - 'check DNS' => 'check DNS', - 'update' => 'update', - 'self list' => 'self list', - 'reverse list' => 'reverse list', - 'subzones' => 'subzones', - 'check url' => 'check url', - 'blacklist exclude' => 'blacklist exclude', - 'lang' => 'language', - 'adguard web' => 'web interface', - 'domain explain' => 'Some clients require a valid certificate when connecting, such as windows 11 DoH or ShadowSocks Android (PAC url), this requires a domain', - 'self list explain' => ' - domains that will work through a proxy', - 'reverse list explain' => ' - domains that will work without a proxy, all others through a proxy', - 'timer' => 'set timer', - 'reset nginx' => 'reset nginx', - 'set internal dns' => 'set internal dns', - 'delete internal dns' => 'delete internal dns', + 'wg_title' => [ + 'en' => 'Wireguard', + 'ru' => 'Wireguard', ], - 'ru' => [ - 'wg_title' => 'Wireguard', - 'sh_title' => 'Shadowsocks', - 'ad_title' => 'AdGuard', - 'config' => 'настройки', - 'pac' => 'PAC', - 'chat' => 'чат поддержки', - 'back' => 'назад', - 'import' => 'импорт', - 'export' => 'экспорт', - 'delete' => 'удалить', - 'add' => 'добавить', - 'donate' => 'донат', - 'admin' => 'админа', - 'menu' => 'Меню', - 'update status' => 'обновить статус', - 'add peer' => 'добавить клиента', - 'all traffic' => 'весь трафик', - 'subnet' => 'подсеть', - 'proxy ip' => 'айпи прокси', - 'rename' => 'переименовать', - 'show QR' => 'показать QR', - 'download config' => 'скачать настройки', - 'install domain' => 'установить домен', - 'renew SSL' => 'обновить SSL', - 'delete SSL' => 'удалить SSL', - 'Letsencrypt SSL' => 'Letsencrypt SSL', - 'Self SSL' => 'Собственный SSL', - 'change password' => 'изменить пароль', - 'reset settings' => 'сбросить настройки', - 'add upstream' => 'добавить DNS', - 'check DNS' => 'проверить DNS', - 'update' => 'обновить', - 'self list' => 'собственный список', - 'reverse list' => 'обратный список', - 'subzones' => 'поддомены', - 'check url' => 'проверить домен', - 'lang' => 'язык', - 'blacklist exclude' => 'список исключений из блэклиста', - 'adguard web' => 'вебморда адгварда', - 'domain explain' => 'Некоторым клиентам требуется валидный сертификат при подключении, например Windows 11 DoH или ShadowSocks Android (URL-адрес PAC), для этого требуется домен', - 'self list explain' => ' - домены, которые будут работать через прокси', - 'reverse list explain' => ' - домены которые будут работать без прокси, все остальные через прокси', - 'timer' => 'установить время действия', - 'reset nginx' => 'сбросить nginx', - 'set internal dns' => 'установить внутренний dns', - 'delete internal dns' => 'удалить внутренний dns', + 'sh_title' => [ + 'en' => 'Shadowsocks', + 'ru' => 'Shadowsocks', + ], + 'ad_title' => [ + 'en' => 'AdGuard', + 'ru' => 'AdGuard', + ], + 'config' => [ + 'en' => 'config', + 'ru' => 'настройки', + ], + 'pac' => [ + 'en' => 'PAC', + 'ru' => 'PAC', + ], + 'chat' => [ + 'en' => 'discussion group', + 'ru' => 'чат поддержки', + ], + 'back' => [ + 'en' => 'back', + 'ru' => 'назад', + ], + 'import' => [ + 'en' => 'import', + 'ru' => 'импорт', + ], + 'export' => [ + 'en' => 'export', + 'ru' => 'экспорт', + ], + 'delete' => [ + 'en' => 'delete', + 'ru' => 'удалить', + ], + 'add' => [ + 'en' => 'add', + 'ru' => 'добавить', + ], + 'donate' => [ + 'en' => 'donate', + 'ru' => 'донат', + ], + 'admin' => [ + 'en' => 'admin', + 'ru' => 'админа', + ], + 'menu' => [ + 'en' => 'Menu', + 'ru' => 'Меню', + ], + 'update status' => [ + 'en' => 'update status', + 'ru' => 'обновить статус', + ], + 'add peer' => [ + 'en' => 'add peer', + 'ru' => 'добавить клиента', + ], + 'all traffic' => [ + 'en' => 'all traffic', + 'ru' => 'весь трафик', + ], + 'subnet' => [ + 'en' => 'subnet', + 'ru' => 'подсеть', + ], + 'proxy ip' => [ + 'en' => 'proxy ip', + 'ru' => 'айпи прокси', + ], + 'rename' => [ + 'en' => 'rename', + 'ru' => 'переименовать', + ], + 'show QR' => [ + 'en' => 'show QR', + 'ru' => 'показать QR', + ], + 'download config' => [ + 'en' => 'download config', + 'ru' => 'скачать настройки', + ], + 'install domain' => [ + 'en' => 'install domain', + 'ru' => 'установить домен', + ], + 'renew SSL' => [ + 'en' => 'renew SSL', + 'ru' => 'обновить SSL', + ], + 'delete SSL' => [ + 'en' => 'delete SSL', + 'ru' => 'удалить SSL', + ], + 'Letsencrypt SSL' => [ + 'en' => 'Letsencrypt SSL', + 'ru' => 'Letsencrypt SSL', + ], + 'Self SSL' => [ + 'en' => 'Self SSL', + 'ru' => 'Собственный SSL', + ], + 'change password' => [ + 'en' => 'change password', + 'ru' => 'изменить пароль', + ], + 'reset settings' => [ + 'en' => 'reset settings', + 'ru' => 'сбросить настройки', + ], + 'add upstream' => [ + 'en' => 'add upstream', + 'ru' => 'добавить DNS', + ], + 'check DNS' => [ + 'en' => 'check DNS', + 'ru' => 'проверить DNS', + ], + 'update' => [ + 'en' => 'update', + 'ru' => 'обновить', + ], + 'self list' => [ + 'en' => 'self list', + 'ru' => 'собственный список', + ], + 'reverse list' => [ + 'en' => 'reverse list', + 'ru' => 'обратный список', + ], + 'subzones' => [ + 'en' => 'subzones', + 'ru' => 'поддомены', + ], + 'check url' => [ + 'en' => 'check url', + 'ru' => 'проверить домен', + ], + 'blacklist exclude' => [ + 'en' => 'blacklist exclude', + 'ru' => 'язык', + ], + 'lang' => [ + 'en' => 'language', + 'ru' => 'список исключений из блэклиста', + ], + 'adguard web' => [ + 'en' => 'web interface', + 'ru' => 'вебморда адгварда', + ], + 'domain explain' => [ + 'en' => 'Some clients require a valid certificate when connecting, such as windows 11 DoH or ShadowSocks Android (PAC url), this requires a domain', + 'ru' => 'Некоторым клиентам требуется валидный сертификат при подключении, например Windows 11 DoH или ShadowSocks Android (URL-адрес PAC), для этого требуется домен', + ], + 'self list explain' => [ + 'en' => ' - domains that will work through a proxy', + 'ru' => ' - домены, которые будут работать через прокси', + ], + 'reverse list explain' => [ + 'en' => ' - domains that will work without a proxy, all others through a proxy', + 'ru' => ' - домены которые будут работать без прокси, все остальные через прокси', + ], + 'timer' => [ + 'en' => 'set timer', + 'ru' => 'установить время действия', + ], + 'reset nginx' => [ + 'en' => 'reset nginx', + 'ru' => 'сбросить nginx', + ], + 'set internal dns' => [ + 'en' => 'set internal dns', + 'ru' => 'установить внутренний dns', + ], + 'delete internal dns' => [ + 'en' => 'delete internal dns', + 'ru' => 'удалить внутренний dns', ], ];