diff --git a/docs b/docs
index 5bc4f0793..61816176a 160000
--- a/docs
+++ b/docs
@@ -1 +1 @@
-Subproject commit 5bc4f079358f4a3c163707128c35e7731173c756
+Subproject commit 61816176a3d1b66c7f54617bc94fdd39ad646d93
diff --git a/psalm-baseline.xml b/psalm-baseline.xml
index 9a44540c6..74a0c4911 100644
--- a/psalm-baseline.xml
+++ b/psalm-baseline.xml
@@ -4492,8 +4492,6 @@
-
-
@@ -4502,26 +4500,22 @@
+
+
+
+
+
-
-
-
-
-
-
-
-
-
@@ -4534,6 +4528,15 @@
authorization['user']['id']]]>
+
+
+
+
+
+
+
+
+
getIdInternal($participant['peer'])]]]>
@@ -4554,15 +4557,8 @@
-
-
-
-
-
+
-
-
-
@@ -4581,7 +4577,7 @@
-
+ getIdInternal($participant['peer'])]]]>
diff --git a/src/Lang.php b/src/Lang.php
index 74f49bc72..58b0f865c 100644
--- a/src/Lang.php
+++ b/src/Lang.php
@@ -21,6 +21,7 @@ namespace danog\MadelineProto;
final class Lang
{
public const PERCENTAGES = [
+ 'zh_Hans' => 100,
'en' => 100,
'fr' => 36,
'de' => 0,
@@ -1547,6 +1548,174 @@ If you intentionally deleted this account, ignore this message.',
'waveform_value' => 'A waveform value must be between 0 and 31!',
'windows_warning' => 'For Windows users: please switch to Linux if this fails. You can also try modifying the firewall settings to allow all PHP processes to create sockets (it\'s 100% easier to just switch to Linux, on Linux MadelineProto just works out of the box, no changes needed)',
],
+ 'zh_Hans' =>
+ [
+ '2fa_uncalled' => '我不等你输入密码!请先调用 phoneLogin 和 completePhoneLogin 方法!',
+ 'accepting_call' => '正在接听来自 %s 的电话...',
+ 'account_banned' => '!!!!!!! 警告 !!!!!!!
+Telegram 的防洪系统已暂停此帐户。
+要继续,需要手动验证。
+发送电子邮件至 recovery@telegram.org,要求解禁电话号码 %s,并简要描述您将如何处理此电话号码。
+然后重新登录。
+如果您有意删除此帐户,请忽略此消息。',
+ 'already_loggedIn' => 'MadelineProto 的这个实例已经登录!',
+ 'apiAppInstructionsAuto0' => '输入应用程序的名称,可以是任何内容: ',
+ 'apiAppInstructionsAuto1' => '输入应用程序的简称,字母数字,5-32个字符: ',
+ 'apiAppInstructionsAuto2' => '输入应用程序/网站的 URL,或 t.me/yourusername: ',
+ 'apiAppInstructionsAuto3' => '输入应用纲领: ',
+ 'apiAppInstructionsAuto4' => '描述你的应用: ',
+ 'apiAppInstructionsAutoTypeOther' => '其他(在描述中指定)',
+ 'apiAppInstructionsManual0' => '你的应用名称,可以是任意名称',
+ 'apiAppInstructionsManual1' => '您的应用的简称,字母数字,5-32 个字符',
+ 'apiAppInstructionsManual2' => '你的应用/网站的 URL,或者 t.me/yourusername',
+ 'apiAppInstructionsManual3' => '任何事',
+ 'apiAppInstructionsManual4' => '在此描述您的应用',
+ 'apiAppWeb' => '输入 API 信息',
+ 'apiAutoPrompt0' => '输入已经在 Telegram 注册的电话号码: ',
+ 'apiAutoPrompt1' => '输入您在 Telegram 中收到的验证码: ',
+ 'apiAutoWeb' => '输入已在电报上注册的电话号码以获取 API ID',
+ 'apiChooseManualAutoTip' => '请注意,您也可以使用以下设置直接在代码中提供 API ID/hash:%s',
+ 'apiChooseManualAutoTipWeb' => '请注意,您还可以使用设置直接在代码中提供 API ID/hash。',
+ 'apiChoosePrompt' => '您的选择 (m/a): ',
+ 'apiError' => '错误:%s. 请重试。',
+ 'apiManualInstructions0' => '登录 https://my.telegram.org',
+ 'apiManualInstructions1' => '前往API 开发工具',
+ 'apiManualInstructions2' => '点击创建应用程序',
+ 'apiManualPrompt0' => '输入您的 API ID: ',
+ 'apiManualPrompt1' => '输入您的 API hash: ',
+ 'apiManualWeb' => '输入您的 API ID 和 API hash',
+ 'apiParamsError' => '您没有提供所有必需的参数!',
+ 'api_not_set' => '您必须提供一个 api key 和一个 api id,请获取您自己的 @ my.telegram.org',
+ 'array_invalid' => '您没有提供有效的数组',
+ 'baseDirLimitation' => '配置了 basedir 限制:这可能会影响性能并导致一些问题,请尽可能禁用它!',
+ 'bool_error' => '无法提取布尔值',
+ 'botAlreadyRunning' => '机器人已开始运行!',
+ 'botapi_conversion_error' => '无法将 %s 转换为机器人 API 对象',
+ 'call_already_accepted' => '呼叫 %s 已被接受',
+ 'call_already_declined' => '已拒绝来电 %s',
+ 'call_completing' => '正在完成来自 %s 的呼叫...',
+ 'call_confirming' => '确认来自 %s 的呼叫...',
+ 'call_discarding' => '正在丢弃呼叫 %s...',
+ 'call_error_1' => '无法找到并接受呼叫 %s',
+ 'call_error_2' => '无法找到并确认呼叫 %s',
+ 'call_error_3' => '无法找到并完成呼叫 %s',
+ 'cli_need_dl.php_link' => '通过 CLI 使用 getDownloadLink 时,请指定下载脚本 URL!',
+ 'constructor_not_found' => '未找到该类型的构造函数: ',
+ 'could_not_connect_to_MadelineProto' => '无法连接到 MadelineProto,请启用 proc_open 并删除 open_basedir 限制或禁用 webserver 路径重写以进行修复!如果您已经这样做了,请确保 PHP 的 CLI 版本与 web 版本完全相同(相同的版本、扩展等),并查看 MadelineProto.log 文件以获取有关阻止 IPC 服务器启动的错误的更多信息。',
+ 'could_not_convert_object' => '无法转换 %s 类型的对象',
+ 'deserialization_error' => '反序列化时发生错误',
+ 'dl.php_check_logs_make_sure_session_running' => '相关的 MadelineProto EventHandler 机器人或 MadelineProto IPC 服务器处于离线状态,请检查日志并确保其中至少有一个正在运行!',
+ 'dl.php_powered_by_madelineproto' => 'Telegram 文件下载服务器(最高 4GB),由 MadelineProto 提供支持!
单击此处了解有关如何设置您自己的 Telegram 文件下载服务器的更多信息!',
+ 'do_not_delete_MadelineProto.log' => '绝不能删除 MadelineProto.log 文件,请在设置中设置自定义最大大小!',
+ 'do_not_remove_MadelineProto.log_phar' => '请不要删除 madeline.phar 或 madeline.php,否则 MadelineProto 将崩溃。如果您对 MadelineProto 有任何问题,请报告给 https://github.com/danog/MadelineProto 或 https://t.me/pwrtelegramgroup',
+ 'do_not_use_blocking_class' => '出于性能原因,处理程序可能不会使用非异步阻塞类 %s,请改用 %s',
+ 'do_not_use_blocking_function' => '出于性能原因,事件处理程序可能不会使用非异步阻塞函数 %s,请改用 %s',
+ 'do_not_use_deprecated_function' => '%s 函数已弃用,请使用 %s 代替',
+ 'do_not_use_non_root_require_in_event_handler' => '出于性能原因,您不能在事件处理程序类中使用 require 或 include,只允许使用根级需要。',
+ 'do_not_use_yield' => 'MadelineProto 8 不要求或支持在异步函数中使用 Yield,您必须删除以前用于异步函数调用的所有 Yield 关键字',
+ 'done' => '完成!',
+ 'encode_double_error' => '无法正确编码双重',
+ 'extensionRecommended' => '警告:未安装 %s 扩展,请安装它以加快 MadelineProto 的速度!',
+ 'extensionRequired' => 'MadelineProto 需要 %s 扩展才能运行.%s',
+ 'extensionRequiredInstallWithApt' => '尝试运行 sudo apt-get install %s.',
+ 'extensionRequiredInstallWithCustomInstructions' => '按照 %s 中的说明进行安装。',
+ 'file_not_exist' => '文件不存在',
+ 'file_parsing' => '正在解析 %s...',
+ 'file_type_invalid' => '检测到无效的文件类型 (%s)',
+ 'fingerprint_invalid' => '密钥指纹无效!',
+ 'go' => '去',
+ 'invalid_dl.php_session' => '%s 不是有效的下载脚本,因为其会话 ID 不同(预期为 %s,实际为 %s)',
+ 'length_too_big' => '长度太大',
+ 'loginBot' => '输入您的机器人令牌: ',
+ 'loginBotTokenWeb' => '机器人令牌',
+ 'loginChoosePromptWeb' => '您想以用户身份还是机器人身份登录?',
+ 'loginManual' => '或者,您也可以输入机器人令牌或电话号码手动登录: ',
+ 'loginNoCode' => '您没有提供电话代码!',
+ 'loginNoName' => '您没有提供名字!',
+ 'loginNoPass' => '您没有提供密码!',
+ 'loginOptionBot' => '机器人',
+ 'loginOptionUser' => '用户',
+ 'loginQr' => '扫描以上二维码即可自动登录。',
+ 'loginQrCodeExpired' => 'QR 码已过期,正在生成新的 QR 码...',
+ 'loginQrCodeSuccessful' => '二维码登录成功!',
+ 'loginUser' => '输入你的电话号码: ',
+ 'loginUserCode' => '输入验证码: ',
+ 'loginUserPass' => '输入您的密码(提示 %s): ',
+ 'loginUserPassHint' => '提示:%s',
+ 'loginUserPassWeb' => '输入您的密码: ',
+ 'loginUserPhoneCodeWeb' => '验证码',
+ 'loginUserPhoneWeb' => '电话号码',
+ 'loginWebQr' => '您也可以通过扫描以下二维码自动登录:',
+ 'loginWebQr1' => '在手机上打开 Telegram',
+ 'loginWebQr2' => '前往“设置”>“设备”>“链接桌面设备”',
+ 'loginWebQr3' => '将你的手机对准此屏幕以确认登录',
+ 'login_2fa_enabled' => '启用 2FA 后,您将必须调用 complete2falogin 函数...',
+ 'login_auth_key' => '使用身份验证密钥登录...',
+ 'login_bot' => '以机器人身份登录...',
+ 'login_code_sending' => '正在发送代码...',
+ 'login_code_sent' => '代码发送成功!收到代码后,您应该使用 completePhoneLogin 函数。',
+ 'login_code_uncalled' => '我不等代码了!请先调用 phoneLogin 方法',
+ 'login_need_signup' => '尚未为此号码创建帐户,您必须调用 completeSignup 函数...',
+ 'login_ok' => '登录成功!',
+ 'login_user' => '以普通用户身份登录...',
+ 'logout_ok' => '退出成功!',
+ 'long_not_16' => '给定值的长度不是 16 个字节',
+ 'long_not_32' => '给定值的长度不是 32 个字节',
+ 'long_not_64' => '给定值的长度不是 64 个字节',
+ 'madelineproto_ready' => 'MadelineProto 已准备好!',
+ 'manualAdminActionRequired' => '!!!!!!!!! 需要系统管理员手动操作 !!!!!!!!!',
+ 'method_not_found' => '找不到方法: ',
+ 'mmapErrorPart1' => '已达到内存映射(mmap)区域的最大数量(%s):请将 vm.max_map_count 内核配置增加到 262144 进行修复。',
+ 'mmapErrorPart2' => '要修复此问题,请以 root 身份运行以下命令:%s',
+ 'mmapErrorPart3' => '要在重启后保留更改:%s',
+ 'mmapErrorPart4' => '在 Windows 和 WSL 上,增加页面文件的大小可能会有所帮助;如果问题仍然存在,请切换到原生 Linux。',
+ 'must_have_declare_types' => '出于性能原因,事件处理程序文件的第一个语句必须是“declare(strict_types=1);”',
+ 'nearest_dc' => '我们在 %s,最近的 DC 是 %d。',
+ 'need_dl.php' => '无法生成默认下载脚本(%s),请创建一个包含以下内容的 dl.php 文件:%s 并将其 URL 传递给 getDownloadLink 的第二个参数',
+ 'noReportPeers' => '警告:未设置报告对等体,请将以下方法添加到您的事件处理程序中',
+ 'non_text_conversion' => '尚无法转换非文本信息!',
+ 'not_loggedIn' => '我还没有登录!',
+ 'not_numeric' => '给定值不是数字',
+ 'params_missing' => '缺少必需参数',
+ 'peer_not_in_db' => '内部对等数据库中不存在此对等点',
+ 'plugin_path_does_not_exist' => '插件路径 %s 不存在!',
+ 'plugins_do_not_use_require' => '出于性能原因,插件只能通过触发 PSR-4 自动加载器来自动包含或需要插件文件夹中的其他文件(而不是通过手动 require() 它们)。',
+ 'plugins_must_have_exactly_one_class' => '一个插件必须定义一个类!要定义多个类、接口或特征,请创建单独的文件,它们将由 MadelineProto 自动加载。',
+ 'predicate_not_set' => '谓词(_ 下的值)未设置!',
+ 'recommend_not_use_filesystem_function' => '不建议使用 %s 函数,因为在更新处理期间访问文件系统会减慢您的机器人速度,请参阅 https://docs.madelineproto.xyz/docs/UPDATES.html#avoiding-the-use-of-filesystem-functions 以获取不会减慢您的机器人速度的替代数据存储方法列表!',
+ 'rpc_tg_error' => 'Telegram 返回了 RPC 错误:%s(%s),由 %s:%s%sTL 跟踪导致:',
+ 'sec_peer_not_in_db' => '内部对等数据库中不存在此秘密对等体',
+ 'secret_chat_skipping' => '我的数据库中没有秘密聊天 %s,跳过消息...',
+ 'serialization_ofd' => '序列化已过时,正在重建对象!',
+ 'session_corrupted' => '会话已损坏!',
+ 'signing_up' => '正在注册为普通用户...',
+ 'signupFirstName' => '输入您的名字: ',
+ 'signupFirstNameWeb' => '名字',
+ 'signupLastName' => '输入您的姓氏(可以为空): ',
+ 'signupLastNameWeb' => '姓氏',
+ 'signupWeb' => '请注册',
+ 'signup_ok' => '报名成功!',
+ 'signup_uncalled' => '我不等着注册!请先调用 phoneLogin 和 completePhoneLogin 方法!',
+ 'src_file_invalid' => '提供的源文件无效: ',
+ 'static_analysis_minor' => '对 %s 进行静态分析时遇到一个小问题:%s',
+ 'static_analysis_severe' => '对 %s 进行静态分析时遇到严重问题:%s',
+ 'stream_handle_invalid' => '提供了无效的流句柄。',
+ 'string_required' => '期望的是字符串!',
+ 'translate_madelineproto_cli' => 'MadelineProto 可以翻译成您的语言(当前翻译进度:%d%%),请访问 https://weblate.madelineproto.xyz 为翻译做出贡献!',
+ 'translate_madelineproto_web' => 'MadelineProto 可以翻译成您的语言(当前翻译进度:%d%%),点击此处为翻译做出贡献!',
+ 'type_extract_error' => '无法提取类型“%s”,您应该更新 MadelineProto!',
+ 'type_extract_error_id' => '无法提取类型:%s,ID 为 %s,您应该更新 MadelineProto!',
+ 'update_madelineproto' => '您正在运行旧版本的 MadelineProto,需要更新:当前运行 %s,但最新版本具有多项错误修复和新功能是 %s!',
+ 'value_bigger_than_2147483647' => '提供的值 %s 大于 2147483647',
+ 'value_bigger_than_4294967296' => '提供的值 %s 大于 4294967296',
+ 'value_bigger_than_9223372036854775807' => '提供的值 %s 大于 9223372036854775807',
+ 'value_smaller_than_0' => '提供的值 %s 小于 0',
+ 'value_smaller_than_2147483648' => '提供的值 %s 小于 -2147483648',
+ 'value_smaller_than_9223372036854775808' => '提供的值 %s 小于 -9223372036854775808',
+ 'waveform_must_have_100_values' => '波形数组必须有 100 个值!',
+ 'waveform_value' => '波形值必须介于0至31之间!',
+ 'windows_warning' => '对于 Windows 用户:如果失败,请切换到 Linux。您还可以尝试修改防火墙设置以允许所有 PHP 进程创建套接字(切换到 Linux 更容易,在 Linux 上 MadelineProto 开箱即用,无需进行任何更改)',
+ ],
];
// THIS WILL BE OVERWRITTEN BY $lang["en"]