// ignore: unused_import
import 'package:intl/intl.dart' as intl;
import 'app_localizations.dart';

// ignore_for_file: type=lint

/// The translations for Chinese (`zh`).
class AppL10nZh extends AppL10n {
  AppL10nZh([String locale = 'zh']) : super(locale);

  @override
  String get appTitle => 'Chanora';

  @override
  String get homeNotProductionReadyBanner => 'Beta 版本——已接通语音收发；尚未达到生产环境质量。';

  @override
  String get fieldServerHost => '服务器地址';

  @override
  String get fieldNickname => '昵称';

  @override
  String get fieldServerPassword => '服务器密码';

  @override
  String get fieldServerPasswordHelp => '如果服务器无需密码，留空即可。';

  @override
  String get fieldPassword => '密码';

  @override
  String get fieldDisplayName => '显示名称';

  @override
  String get connectAction => '连接';

  @override
  String get disconnectAction => '离开服务器';

  @override
  String get disconnectConfirmTitle => '离开服务器？';

  @override
  String get disconnectConfirmBody => '你将从当前服务器断开连接。';

  @override
  String get disconnectConfirmCancel => '留下';

  @override
  String get disconnectConfirmAction => '离开';

  @override
  String get refreshAction => '刷新';

  @override
  String get diagnosticsAction => '诊断信息';

  @override
  String get diagnosticsSaveAction => '保存导出';

  @override
  String get diagnosticsLiveUpdating => '实时更新中';

  @override
  String get shareAction => '分享';

  @override
  String diagnosticsSaved(String path) {
    return '诊断导出已保存到 $path';
  }

  @override
  String get aboutAction => '关于';

  @override
  String aboutVersion(String version) {
    return '版本 $version';
  }

  @override
  String get aboutAuthor => '作者: Edison Jwa';

  @override
  String get aboutNonAffiliation =>
      'Chanora 是独立项目，与 TeamSpeak 之间不存在任何附属、认可、赞助或官方关联关系。';

  @override
  String get aboutLicenseHeading => '许可协议';

  @override
  String get aboutLicenseBody =>
      'Chanora 采用 Apache License 2.0 或 MIT License 双协议授权，使用者可任选其一。完整协议文本以 LICENSE-APACHE 与 LICENSE-MIT 形式随仓库一同分发。';

  @override
  String get aboutThirdPartyHeading => '第三方组件';

  @override
  String get aboutThirdPartyBody =>
      'Chanora 基于 tsclientlib、flutter_rust_bridge、平台原生音频后端、rusqlite、Flutter 框架等开源组件构建。完整归属信息请参阅仓库根目录的 NOTICE 文件。';

  @override
  String get copyAction => '复制';

  @override
  String get closeAction => '关闭';

  @override
  String get openAction => '打开';

  @override
  String get cancelAction => '取消';

  @override
  String get retryAction => '重试';

  @override
  String get chatAction => '聊天';

  @override
  String get chatCloseAction => '关闭聊天';

  @override
  String get chatNewPrivateAction => '新建私聊';

  @override
  String get chatSearchClientsHint => '搜索用户...';

  @override
  String get chatDirectMessageAction => '私聊';

  @override
  String get chatPokeAction => '戳一下';

  @override
  String get clientInfoAction => '信息';

  @override
  String get startAudioAction => '启动语音';

  @override
  String get pttHoldToTalk => '按住说话';

  @override
  String get pttTransmitting => '正在发送…';

  @override
  String get pttHoldToTalkSemanticsHint => '按住进行语音发送，松开停止。';

  @override
  String pttCapabilityBadge(String level, String backend) {
    return '对讲能力：$level（$backend）';
  }

  @override
  String pttCapabilityBoundKey(String key) {
    return '按键：$key';
  }

  @override
  String get pttCapabilityExplainTitle => '对讲能力说明';

  @override
  String get pttCapabilityExplainFocusedHeading => '聚焦对讲';

  @override
  String get pttCapabilityExplainFocusedBody =>
      'Chanora 当前使用聚焦对讲：按键只在 Chanora 窗口处于聚焦时生效。这是所有平台在无法启用全局采集时的通用回退方案。';

  @override
  String get pttCapabilityExplainGoGlobalWindows =>
      '在 Windows 上，绑定按键后会自动启用全局对讲，无需额外权限。';

  @override
  String get pttCapabilityExplainGoGlobalMacos =>
      '在 macOS 上，启用全局对讲需要「输入监视」权限。请打开「系统设置 → 隐私与安全 → 输入监视」，授权 Chanora 后重新绑定按键。';

  @override
  String get pttCapabilityExplainGoGlobalLinux =>
      '在 Linux 上，启用全局对讲需要带 GlobalShortcuts 门户的 GNOME-Wayland 桌面。请重新绑定按键，并在桌面弹出快捷键对话框时接受。';

  @override
  String get pttCapabilityExplainGoGlobalIos =>
      '在 iOS 上，Apple 不向应用开放全局热键。Chanora 使用屏幕上的按住说话按钮，并且仅在应用位于前台时响应。';

  @override
  String get pttCapabilityExplainGoGlobalGeneric =>
      '当前环境暂不支持全局对讲。聚焦对讲在 Chanora 窗口获得焦点时仍可正常使用。';

  @override
  String get pttConfigureAction => '配置';

  @override
  String get pttConfigureTitle => '配置对讲按键';

  @override
  String get pttConfigurePrompt => '按下您希望用于对讲的按键或鼠标侧键。';

  @override
  String get pttConfigureWaiting => '（等待输入…）';

  @override
  String get pttConfigureCaptured => '已捕获';

  @override
  String get pttConfigurePrivacyNote =>
      'Chanora 不会记录具体的按键值。本对话框只会向应用提交输入类别（键盘 / 鼠标侧键）以及一个跨平台标签。';

  @override
  String get pttConfigureSaveAction => '保存';

  @override
  String get pttConfigurePortalRedirect => '您的桌面环境将打开自带的快捷键对话框，请在其中选择用于对讲的按键。';

  @override
  String get inputMuteAction => '静音麦克风';

  @override
  String get inputUnmuteAction => '取消麦克风静音';

  @override
  String get outputMuteAction => '静音扬声器';

  @override
  String get outputUnmuteAction => '取消扬声器静音';

  @override
  String get joinChannelAction => '加入频道';

  @override
  String get leaveChannelAction => '离开频道';

  @override
  String get channelPasswordTitle => '频道密码';

  @override
  String get bookmarksHeading => '书签';

  @override
  String get bookmarksEmpty => '尚无书签。先在上方填写服务器，然后点击“保存书签”。';

  @override
  String get bookmarkAddAction => '保存书签';

  @override
  String get bookmarkAddTitle => '保存书签';

  @override
  String get bookmarkDeleteAction => '删除书签';

  @override
  String get statusIdle => '未连接';

  @override
  String get statusConnecting => '正在连接…';

  @override
  String statusConnected(String server) {
    return '已连接到 $server';
  }

  @override
  String statusError(String message) {
    return '错误：$message';
  }

  @override
  String statusReconnecting(int attempt, int delay) {
    return '正在重新连接……第 $attempt 次尝试，$delay 秒后';
  }

  @override
  String statusConnectionLost(String reason) {
    return '连接已断开：$reason';
  }

  @override
  String audioStatsLine(int sent, int received, String ptt) {
    return '发送 $sent 帧 • 接收 $received 帧 • 麦克风 $ptt';
  }

  @override
  String get channelsHeading => '频道';

  @override
  String get clientsHeading => '在线用户';

  @override
  String get serverWelcomeHeading => '服务器欢迎信息';

  @override
  String countChannelsAndClients(int channels, int clients) {
    return '$channels 个频道 • $clients 在线';
  }

  @override
  String get voiceModePtt => '按键说话';

  @override
  String get voiceModeContinuous => '持续发送';

  @override
  String get voiceModeVoiceActivity => '语音激活';

  @override
  String get voiceModeComingSoon => '即将推出';

  @override
  String get voiceModeLabel => '发送模式';

  @override
  String get voiceReleaseTailLabel => '释放延迟';

  @override
  String get voiceReleaseTailHint => '毫秒';

  @override
  String get voiceLeaveAction => '离开语音';

  @override
  String get voiceHardMuteLabel => '麦克风静音';

  @override
  String get voiceOutputMuteLabel => '扬声器静音';

  @override
  String get voiceSettingsTitle => '语音设置';

  @override
  String get voiceBindKeyAction => '绑定 PTT 按键';

  @override
  String get voiceBoundKeyLabel => '已绑定按键';

  @override
  String get voicePttHoldHint => '按住按钮';

  @override
  String get voiceMicOn => '开启';

  @override
  String get voiceMicOff => '关闭';

  @override
  String get voiceSheetTitle => '语音';

  @override
  String get audioOutputLabel => '音频输出';

  @override
  String get audioRouteSpeaker => '扬声器';

  @override
  String get audioRouteReceiver => '听筒';

  @override
  String get audioRouteBluetooth => '蓝牙';

  @override
  String get audioRouteWiredHeadset => '有线耳机';

  @override
  String get audioRouteCarAudio => '车载音频';

  @override
  String get audioRouteAirplay => 'AirPlay';

  @override
  String get audioRouteUnknown => '未知';

  @override
  String get channelJoinAlreadyIn => '您已在此频道中。';

  @override
  String get channelJoinFailedPermission => '权限不足，无法加入此频道。';

  @override
  String get channelJoinFailedPassword => '频道密码错误。';

  @override
  String get channelJoinFailedFull => '频道已满。';

  @override
  String get channelJoinFailedFamilyFull => '频道家族人数已达上限。';

  @override
  String get channelJoinFailedPrivate => '此频道为私有频道。';

  @override
  String get channelJoinFailedTimeout => '无法加入频道：服务器响应超时。';

  @override
  String get channelJoinFailedFlooding => '切换频道过于频繁，请稍后再试。';

  @override
  String channelJoinFailedGeneric(String message) {
    return '无法加入频道：$message';
  }

  @override
  String get networkPermissionTitle => '需要网络权限';

  @override
  String get networkPermissionBody =>
      'Chanora 需要网络访问权限。请前往系统设置 → 隐私与安全性 → 本地网络，启用 Chanora，然后重试。';

  @override
  String get networkPermissionOpenSettings => '打开系统设置';

  @override
  String get microphonePermissionTitle => '需要麦克风权限';

  @override
  String get microphonePermissionBody =>
      'Chanora 需要麦克风访问权限。请前往系统设置 → 隐私与安全性 → 麦克风，启用 Chanora。';

  @override
  String get microphonePermissionRequiredForVoice => '语音发送需要麦克风权限。';

  @override
  String get permissionGrantAction => '授权';

  @override
  String get startupPermissionsTitle => '权限';

  @override
  String get startupPermissionsBody =>
      'Chanora 会在启动时请求麦克风、蓝牙耳机和通知权限，以确保语音、耳机路由和前台会话正常工作。';

  @override
  String get startupPermissionsNotNow => '暂不';

  @override
  String get startupPermissionsAllow => '允许';

  @override
  String get audioRouteSystemDefault => '系统默认';

  @override
  String get audioRouteEarpiece => '听筒';

  @override
  String get audioRouteUsbHeadset => 'USB 耳机';

  @override
  String get audioRouteOtherDevice => '其他设备';

  @override
  String get audioRouteRefreshDevices => '刷新音频设备';

  @override
  String get audioRouteCannotSelect => '无法选择此输出设备。';

  @override
  String get audioRouteChangeFailed => '无法切换音频输出。';

  @override
  String get iosAudioInterrupted => '系统已中断音频（电话通话）';

  @override
  String get iosAudioResuming => '音频正在恢复';

  @override
  String get linkTrustTitle => '打开外部链接？';

  @override
  String linkTrustBody(String domain) {
    return '你将打开指向以下域名的链接：\n\n$domain';
  }

  @override
  String get linkTrustRememberDomain => '信任来自此域名的所有链接';

  @override
  String get clientInfoFetchingProfile => '正在获取 TeamSpeak 资料';

  @override
  String get clientInfoLoadingProfile => '正在加载资料…';

  @override
  String get clientInfoProfileUnavailable => '资料不可用';

  @override
  String get clientInfoProfileUnavailableBody => '服务器没有返回此用户的资料详情。';

  @override
  String get clientInfoIdentitySection => '身份';

  @override
  String get clientInfoMembershipSection => '成员关系';

  @override
  String get clientInfoConnectionSection => '连接';

  @override
  String get clientInfoHistorySection => '历史';

  @override
  String get clientInfoTransferSection => '传输';

  @override
  String get clientInfoClientId => '用户 ID';

  @override
  String get clientInfoDatabaseId => '数据库 ID';

  @override
  String get clientInfoUniqueId => '唯一 ID';

  @override
  String get clientInfoDescription => '描述';

  @override
  String get clientInfoAvatar => '头像';

  @override
  String get clientInfoServerGroups => '服务器组';

  @override
  String get clientInfoChannelGroup => '频道组';

  @override
  String get clientInfoChannelId => '频道 ID';

  @override
  String get clientInfoOnline => '在线时长';

  @override
  String get clientInfoIdle => '空闲';

  @override
  String get clientInfoPing => '延迟';

  @override
  String get clientInfoPingDeviation => '延迟偏差';

  @override
  String get clientInfoAddress => '地址';

  @override
  String get clientInfoPacketLossClientToServer => '丢包 C->S';

  @override
  String get clientInfoPacketLossServerToClient => '丢包 S->C';

  @override
  String get clientInfoFirstConnected => '首次连接';

  @override
  String get clientInfoLastConnected => '上次连接';

  @override
  String get clientInfoConnections => '连接次数';

  @override
  String get clientInfoDownloadedMonth => '本月下载';

  @override
  String get clientInfoUploadedMonth => '本月上传';

  @override
  String get clientInfoDownloadedTotal => '总下载';

  @override
  String get clientInfoUploadedTotal => '总上传';

  @override
  String get clientInfoUnknown => '未知';

  @override
  String get clientInfoHidden => '隐藏';

  @override
  String get clientInfoNone => '无';

  @override
  String get pokeSnackBarClearAction => '清除';

  @override
  String get pokeSnackBarMoreIndicator => '...';

  @override
  String pokeSnackBarIncomingNoMessage(String sender) {
    return '$sender 戳了你一下';
  }

  @override
  String pokeSnackBarIncomingWithMessage(String sender, String message) {
    return '$sender 戳了你一下：$message';
  }

  @override
  String pokeHistorySelfNoMessage(String time, String target) {
    return '<$time> 你戳了“$target”一下。';
  }

  @override
  String pokeHistorySelfWithMessage(
    String time,
    String target,
    String message,
  ) {
    return '<$time> 你戳了“$target”一下，消息：$message';
  }

  @override
  String pokeHistoryIncomingNoMessage(String time, String sender) {
    return '<$time> “$sender”戳了你一下';
  }

  @override
  String pokeHistoryIncomingWithMessage(
    String time,
    String sender,
    String message,
  ) {
    return '<$time> “$sender”戳了你一下：$message';
  }

  @override
  String get clientVolumeAction => '用户音量';

  @override
  String clientVolumeTitle(String name) {
    return '$name — 音量';
  }

  @override
  String clientVolumeLabel(int percent) {
    return '$percent%';
  }

  @override
  String get clientVolumeMuteAction => '静音该用户';

  @override
  String get clientVolumeUnmuteAction => '取消静音';

  @override
  String get clientVolumeResetAction => '恢复默认';

  @override
  String get permissionDenied => '权限被拒绝';

  @override
  String get voiceTalkPowerBlocked => '发言权限不足，无法在此频道发言';
}
