mirror of
https://github.com/zjs81/meshcore-open.git
synced 2026-06-23 19:04:33 +10:00
44c0670dae
- replace Android USB dependency with app-owned USB host implementation\n- restore BLE-first scanner flow with USB secondary action\n- tighten Web Serial key handling and disconnect logging\n\nTODO (follow-up):\n- review non-English localization copy for tone and consistency\n- trim remaining unused/awkward localization strings introduced during USB UI changes
3041 lines
89 KiB
Dart
3041 lines
89 KiB
Dart
// 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 AppLocalizationsZh extends AppLocalizations {
|
||
AppLocalizationsZh([String locale = 'zh']) : super(locale);
|
||
|
||
@override
|
||
String get appTitle => 'MeshCore Open';
|
||
|
||
@override
|
||
String get nav_contacts => 'è”系人';
|
||
|
||
@override
|
||
String get nav_channels => '频é“';
|
||
|
||
@override
|
||
String get nav_map => '地图';
|
||
|
||
@override
|
||
String get common_cancel => 'å–æ¶ˆ';
|
||
|
||
@override
|
||
String get common_ok => '确定';
|
||
|
||
@override
|
||
String get common_connect => '连接';
|
||
|
||
@override
|
||
String get common_unknownDevice => '未知设备';
|
||
|
||
@override
|
||
String get common_save => 'ä¿å˜';
|
||
|
||
@override
|
||
String get common_delete => 'åˆ é™¤';
|
||
|
||
@override
|
||
String get common_close => 'å…³é—';
|
||
|
||
@override
|
||
String get common_edit => '编辑';
|
||
|
||
@override
|
||
String get common_add => 'æ·»åŠ ';
|
||
|
||
@override
|
||
String get common_settings => '设置';
|
||
|
||
@override
|
||
String get common_disconnect => 'æ–å¼€';
|
||
|
||
@override
|
||
String get common_connected => '已连接';
|
||
|
||
@override
|
||
String get common_disconnected => 'å·²æ–å¼€';
|
||
|
||
@override
|
||
String get common_create => '创建';
|
||
|
||
@override
|
||
String get common_continue => 'ç»§ç»';
|
||
|
||
@override
|
||
String get common_share => '分享';
|
||
|
||
@override
|
||
String get common_copy => 'å¤åˆ¶';
|
||
|
||
@override
|
||
String get common_retry => 'é‡è¯•';
|
||
|
||
@override
|
||
String get common_hide => 'éšè—';
|
||
|
||
@override
|
||
String get common_remove => '移除';
|
||
|
||
@override
|
||
String get common_enable => 'å¯ç”¨';
|
||
|
||
@override
|
||
String get common_disable => 'ç¦ç”¨';
|
||
|
||
@override
|
||
String get common_reboot => 'é‡å¯';
|
||
|
||
@override
|
||
String get common_loading => 'æ£åœ¨åŠ è½½...';
|
||
|
||
@override
|
||
String get common_notAvailable => '—';
|
||
|
||
@override
|
||
String common_voltageValue(String volts) {
|
||
return '$volts V';
|
||
}
|
||
|
||
@override
|
||
String common_percentValue(int percent) {
|
||
return '$percent%';
|
||
}
|
||
|
||
@override
|
||
String get scanner_title => '连接设备';
|
||
|
||
@override
|
||
String get connectionChoiceUsbLabel => 'USB';
|
||
|
||
@override
|
||
String get connectionChoiceBluetoothLabel => 'è“牙';
|
||
|
||
@override
|
||
String get usbScreenTitle => '通过USB连接';
|
||
|
||
@override
|
||
String get usbScreenSubtitle =>
|
||
'选择已检测到的串行设备,并直接连接到您的 MeshCore 节点。';
|
||
|
||
@override
|
||
String get usbScreenStatus => '选择一个 USB 设备';
|
||
|
||
@override
|
||
String get usbScreenNote =>
|
||
'在支æŒçš„ Android 设备和桌é¢å¹³å°ä¸Šï¼ŒUSB 串行通信功能已å¯ç”¨ã€‚';
|
||
|
||
@override
|
||
String get usbScreenEmptyState =>
|
||
'未找到任何 USB 设备。请æ’入一个,然åŽåˆ·æ–°ã€‚';
|
||
|
||
@override
|
||
String get scanner_scanning => 'æ£åœ¨æœç´¢è®¾å¤‡...';
|
||
|
||
@override
|
||
String get scanner_connecting => 'æ£åœ¨è¿žæŽ¥...';
|
||
|
||
@override
|
||
String get scanner_disconnecting => 'æ–开连接...';
|
||
|
||
@override
|
||
String get scanner_notConnected => '未连接';
|
||
|
||
@override
|
||
String scanner_connectedTo(String deviceName) {
|
||
return '已连接到 $deviceName';
|
||
}
|
||
|
||
@override
|
||
String get scanner_searchingDevices => 'æ£åœ¨æœç´¢ MeshCore 设备...';
|
||
|
||
@override
|
||
String get scanner_tapToScan =>
|
||
'点击“扫æâ€æŒ‰é’®ä»¥æŸ¥æ‰¾ MeshCore 设备。';
|
||
|
||
@override
|
||
String scanner_connectionFailed(String error) {
|
||
return '连接失败:$error';
|
||
}
|
||
|
||
@override
|
||
String get scanner_stop => 'åœæ¢';
|
||
|
||
@override
|
||
String get scanner_scan => '扫æ';
|
||
|
||
@override
|
||
String get scanner_bluetoothOff => 'è“牙已关é—';
|
||
|
||
@override
|
||
String get scanner_bluetoothOffMessage => '请开å¯è“牙以æœç´¢è®¾å¤‡';
|
||
|
||
@override
|
||
String get scanner_chromeRequired => 'éœ€è¦ Chrome æµè§ˆå™¨';
|
||
|
||
@override
|
||
String get scanner_chromeRequiredMessage =>
|
||
'æ¤ Web 应用程åºéœ€è¦ Google Chrome 或基于 Chromium çš„æµè§ˆå™¨ä»¥æ”¯æŒè“牙。';
|
||
|
||
@override
|
||
String get scanner_enableBluetooth => 'å¯ç”¨è“牙';
|
||
|
||
@override
|
||
String get device_quickSwitch => '快速切æ¢';
|
||
|
||
@override
|
||
String get device_meshcore => 'MeshCore';
|
||
|
||
@override
|
||
String get settings_title => '设置';
|
||
|
||
@override
|
||
String get settings_deviceInfo => '设备信æ¯';
|
||
|
||
@override
|
||
String get settings_appSettings => '应用设置';
|
||
|
||
@override
|
||
String get settings_appSettingsSubtitle => 'é€šçŸ¥ã€æ¶ˆæ¯å’Œåœ°å›¾å好';
|
||
|
||
@override
|
||
String get settings_nodeSettings => '节点设置';
|
||
|
||
@override
|
||
String get settings_nodeName => '节点åç§°';
|
||
|
||
@override
|
||
String get settings_nodeNameNotSet => '未设置';
|
||
|
||
@override
|
||
String get settings_nodeNameHint => '请输入节点åç§°';
|
||
|
||
@override
|
||
String get settings_nodeNameUpdated => '节点å称已更新';
|
||
|
||
@override
|
||
String get settings_radioSettings => 'æ— çº¿ç”µè®¾ç½®';
|
||
|
||
@override
|
||
String get settings_radioSettingsSubtitle => '频率ã€åŠŸçŽ‡ã€æ‰©é¢‘å› å';
|
||
|
||
@override
|
||
String get settings_radioSettingsUpdated => 'æ— çº¿ç”µè®¾ç½®å·²æ›´æ–°';
|
||
|
||
@override
|
||
String get settings_location => 'ä½ç½®';
|
||
|
||
@override
|
||
String get settings_locationSubtitle => 'GPS åæ ‡';
|
||
|
||
@override
|
||
String get settings_locationUpdated => 'ä½ç½®å’Œ GPS 设置已更新';
|
||
|
||
@override
|
||
String get settings_locationBothRequired => '请输入ç»åº¦å’Œçº¬åº¦';
|
||
|
||
@override
|
||
String get settings_locationInvalid => 'æ— æ•ˆçš„ç»åº¦å’Œçº¬åº¦';
|
||
|
||
@override
|
||
String get settings_locationGPSEnable => 'å¯ç”¨ GPS';
|
||
|
||
@override
|
||
String get settings_locationGPSEnableSubtitle =>
|
||
'å¯ç”¨ GPS 以自动更新ä½ç½®ã€‚';
|
||
|
||
@override
|
||
String get settings_locationIntervalSec => 'GPS 间隔(秒)';
|
||
|
||
@override
|
||
String get settings_locationIntervalInvalid =>
|
||
'间隔时间必须至少为 60 秒,但ä¸è¶…过 86400 秒。';
|
||
|
||
@override
|
||
String get settings_latitude => '纬度';
|
||
|
||
@override
|
||
String get settings_longitude => 'ç»åº¦';
|
||
|
||
@override
|
||
String get settings_privacyMode => 'éšç§æ¨¡å¼';
|
||
|
||
@override
|
||
String get settings_privacyModeSubtitle => '在广告ä¸éšè—å§“å/ä½ç½®';
|
||
|
||
@override
|
||
String get settings_privacyModeToggle =>
|
||
'切æ¢éšç§æ¨¡å¼ä»¥åœ¨å¹¿å‘Šä¸éšè—å§“åå’Œä½ç½®ï¼Œä¿æŠ¤ä¸ªäººä¿¡æ¯ã€‚';
|
||
|
||
@override
|
||
String get settings_privacyModeEnabled => 'éšç§æ¨¡å¼å·²å¯ç”¨';
|
||
|
||
@override
|
||
String get settings_privacyModeDisabled => 'éšç§æ¨¡å¼å·²å…³é—';
|
||
|
||
@override
|
||
String get settings_actions => 'æ“作';
|
||
|
||
@override
|
||
String get settings_sendAdvertisement => 'å‘é€å¹¿æ’';
|
||
|
||
@override
|
||
String get settings_sendAdvertisementSubtitle => 'ç«‹å³å‘é€å¹¿æ’';
|
||
|
||
@override
|
||
String get settings_advertisementSent => 'å·²å‘é€å¹¿æ’';
|
||
|
||
@override
|
||
String get settings_syncTime => 'åŒæ¥æ—¶é—´';
|
||
|
||
@override
|
||
String get settings_syncTimeSubtitle =>
|
||
'将设备时钟设置为与手机时间一致';
|
||
|
||
@override
|
||
String get settings_timeSynchronized => 'æ—¶é—´å·²åŒæ¥';
|
||
|
||
@override
|
||
String get settings_refreshContacts => '刷新è”系人';
|
||
|
||
@override
|
||
String get settings_refreshContactsSubtitle =>
|
||
'ä»Žè®¾å¤‡é‡æ–°åŠ è½½è”系人列表';
|
||
|
||
@override
|
||
String get settings_rebootDevice => 'é‡å¯è®¾å¤‡';
|
||
|
||
@override
|
||
String get settings_rebootDeviceSubtitle => 'é‡å¯ MeshCore 设备';
|
||
|
||
@override
|
||
String get settings_rebootDeviceConfirm =>
|
||
'确定è¦é‡å¯è®¾å¤‡å—?这将æ–开与设备的连接。';
|
||
|
||
@override
|
||
String get settings_debug => '调试';
|
||
|
||
@override
|
||
String get settings_bleDebugLog => 'BLE 调试日志';
|
||
|
||
@override
|
||
String get settings_bleDebugLogSubtitle =>
|
||
'BLE 命令ã€å“应和原始数æ®';
|
||
|
||
@override
|
||
String get settings_appDebugLog => '应用调试日志';
|
||
|
||
@override
|
||
String get settings_appDebugLogSubtitle => '应用调试消æ¯';
|
||
|
||
@override
|
||
String get settings_about => '关于';
|
||
|
||
@override
|
||
String settings_aboutVersion(String version) {
|
||
return 'MeshCore Open v$version';
|
||
}
|
||
|
||
@override
|
||
String get settings_aboutLegalese => '2026 MeshCore å¼€æºé¡¹ç›®';
|
||
|
||
@override
|
||
String get settings_aboutDescription =>
|
||
'一个开æºçš„ Flutter 客户端,用于 MeshCore LoRa æ— çº¿ç½‘ç»œè®¾å¤‡ã€‚';
|
||
|
||
@override
|
||
String get settings_aboutOpenMeteoAttribution =>
|
||
'LOS 高程数æ®:Open-Meteo (CC BY 4.0)';
|
||
|
||
@override
|
||
String get settings_infoName => 'åç§°';
|
||
|
||
@override
|
||
String get settings_infoId => 'MAC ID';
|
||
|
||
@override
|
||
String get settings_infoStatus => '状æ€';
|
||
|
||
@override
|
||
String get settings_infoBattery => 'ç”µæ± ';
|
||
|
||
@override
|
||
String get settings_infoPublicKey => '公钥';
|
||
|
||
@override
|
||
String get settings_infoContactsCount => 'è”系人数é‡';
|
||
|
||
@override
|
||
String get settings_infoChannelCount => '频铿•°é‡';
|
||
|
||
@override
|
||
String get settings_presets => '预设';
|
||
|
||
@override
|
||
String get settings_frequency => '频率 (MHz)';
|
||
|
||
@override
|
||
String get settings_frequencyHelper => '300.0 - 2500.0';
|
||
|
||
@override
|
||
String get settings_frequencyInvalid =>
|
||
'æ— æ•ˆé¢‘çŽ‡èŒƒå›´ï¼ˆ300-2500 MHz)';
|
||
|
||
@override
|
||
String get settings_bandwidth => '带宽';
|
||
|
||
@override
|
||
String get settings_spreadingFactor => 'æ‰©é¢‘å› å';
|
||
|
||
@override
|
||
String get settings_codingRate => 'ç¼–ç 速率';
|
||
|
||
@override
|
||
String get settings_txPower => 'TX 功率 (dBm)';
|
||
|
||
@override
|
||
String get settings_txPowerHelper => '0 - 22';
|
||
|
||
@override
|
||
String get settings_txPowerInvalid => 'æ— æ•ˆçš„å‘射功率(0-22 dBm)';
|
||
|
||
@override
|
||
String get settings_clientRepeat => '离网é‡å¤';
|
||
|
||
@override
|
||
String get settings_clientRepeatSubtitle =>
|
||
'å…许æ¤è®¾å¤‡é‡å¤å‘é€ç½‘状数æ®åŒ…给其他设备';
|
||
|
||
@override
|
||
String get settings_clientRepeatFreqWarning =>
|
||
'离网é‡å¤é€šä¿¡éœ€è¦ä½¿ç”¨ 433ã€869 或 918 兆赫兹的频率。';
|
||
|
||
@override
|
||
String settings_error(String message) {
|
||
return '错误:$message';
|
||
}
|
||
|
||
@override
|
||
String get appSettings_title => '应用设置';
|
||
|
||
@override
|
||
String get appSettings_appearance => '外观';
|
||
|
||
@override
|
||
String get appSettings_theme => '主题';
|
||
|
||
@override
|
||
String get appSettings_themeSystem => 'è·Ÿéšç³»ç»Ÿ';
|
||
|
||
@override
|
||
String get appSettings_themeLight => '浅色';
|
||
|
||
@override
|
||
String get appSettings_themeDark => '深色';
|
||
|
||
@override
|
||
String get appSettings_language => 'è¯è¨€';
|
||
|
||
@override
|
||
String get appSettings_languageSystem => 'è·Ÿéšç³»ç»Ÿ';
|
||
|
||
@override
|
||
String get appSettings_languageEn => '英è¯';
|
||
|
||
@override
|
||
String get appSettings_languageFr => '法è¯';
|
||
|
||
@override
|
||
String get appSettings_languageEs => '西ç牙è¯';
|
||
|
||
@override
|
||
String get appSettings_languageDe => 'å¾·è¯';
|
||
|
||
@override
|
||
String get appSettings_languagePl => '波兰è¯';
|
||
|
||
@override
|
||
String get appSettings_languageSl => '斯洛文尼亚è¯';
|
||
|
||
@override
|
||
String get appSettings_languagePt => 'è‘¡è„牙è¯';
|
||
|
||
@override
|
||
String get appSettings_languageIt => 'æ„大利è¯';
|
||
|
||
@override
|
||
String get appSettings_languageZh => '䏿–‡';
|
||
|
||
@override
|
||
String get appSettings_languageSv => '瑞典è¯';
|
||
|
||
@override
|
||
String get appSettings_languageNl => 'è·å…°è¯';
|
||
|
||
@override
|
||
String get appSettings_languageSk => '斯洛ä¼å…‹è¯';
|
||
|
||
@override
|
||
String get appSettings_languageBg => 'ä¿åŠ åˆ©äºšè¯';
|
||
|
||
@override
|
||
String get appSettings_languageRu => 'ä¿„è¯';
|
||
|
||
@override
|
||
String get appSettings_languageUk => '乌克兰è¯';
|
||
|
||
@override
|
||
String get appSettings_enableMessageTracing => 'å¯ç”¨æ¶ˆæ¯è¿½è¸ª';
|
||
|
||
@override
|
||
String get appSettings_enableMessageTracingSubtitle =>
|
||
'显示消æ¯çš„详细路由和时间元数æ®';
|
||
|
||
@override
|
||
String get appSettings_notifications => '通知';
|
||
|
||
@override
|
||
String get appSettings_enableNotifications => 'å¯ç”¨é€šçŸ¥';
|
||
|
||
@override
|
||
String get appSettings_enableNotificationsSubtitle =>
|
||
'接收消æ¯å’Œå¹¿æ’的通知';
|
||
|
||
@override
|
||
String get appSettings_notificationPermissionDenied => 'æƒé™è¢«æ‹’ç»';
|
||
|
||
@override
|
||
String get appSettings_notificationsEnabled => '通知已å¯ç”¨';
|
||
|
||
@override
|
||
String get appSettings_notificationsDisabled => '通知已关é—';
|
||
|
||
@override
|
||
String get appSettings_messageNotifications => '消æ¯é€šçŸ¥';
|
||
|
||
@override
|
||
String get appSettings_messageNotificationsSubtitle =>
|
||
'æ”¶åˆ°æ–°æ¶ˆæ¯æ—¶æ˜¾ç¤ºé€šçŸ¥';
|
||
|
||
@override
|
||
String get appSettings_channelMessageNotifications => '频铿¶ˆæ¯é€šçŸ¥';
|
||
|
||
@override
|
||
String get appSettings_channelMessageNotificationsSubtitle =>
|
||
'æ”¶åˆ°é¢‘é“æ¶ˆæ¯æ—¶æ˜¾ç¤ºé€šçŸ¥';
|
||
|
||
@override
|
||
String get appSettings_advertisementNotifications => '广æ’通知';
|
||
|
||
@override
|
||
String get appSettings_advertisementNotificationsSubtitle =>
|
||
'å‘现新节点时显示通知';
|
||
|
||
@override
|
||
String get appSettings_messaging => '消æ¯';
|
||
|
||
@override
|
||
String get appSettings_clearPathOnMaxRetry =>
|
||
'达到最大é‡è¯•次数时清除路径';
|
||
|
||
@override
|
||
String get appSettings_clearPathOnMaxRetrySubtitle =>
|
||
'在5次å‘é€å¤±è´¥åŽé‡ç½®è”系路径。';
|
||
|
||
@override
|
||
String get appSettings_pathsWillBeCleared => '5次失败åŽå°†é‡æ–°è·¯ç”±';
|
||
|
||
@override
|
||
String get appSettings_pathsWillNotBeCleared => '路径ä¸ä¼šè‡ªåŠ¨æ¸…é™¤';
|
||
|
||
@override
|
||
String get appSettings_autoRouteRotation => '自动路径轮æ¢';
|
||
|
||
@override
|
||
String get appSettings_autoRouteRotationSubtitle =>
|
||
'在最佳路径和泛洪模å¼ä¹‹é—´åˆ‡æ¢';
|
||
|
||
@override
|
||
String get appSettings_autoRouteRotationEnabled =>
|
||
'自动路径轮æ¢å·²å¯ç”¨';
|
||
|
||
@override
|
||
String get appSettings_autoRouteRotationDisabled =>
|
||
'自动路径轮æ¢å·²ç¦ç”¨';
|
||
|
||
@override
|
||
String get appSettings_battery => 'ç”µæ± ';
|
||
|
||
@override
|
||
String get appSettings_batteryChemistry => 'ç”µæ± ç±»åž‹';
|
||
|
||
@override
|
||
String appSettings_batteryChemistryPerDevice(String deviceName) {
|
||
return '为æ¯ä¸ªè®¾å¤‡è®¾ç½® ($deviceName)';
|
||
}
|
||
|
||
@override
|
||
String get appSettings_batteryChemistryConnectFirst => '请先连接设备';
|
||
|
||
@override
|
||
String get appSettings_batteryNmc => '18650 NMC ç”µæ± (3.0-4.2V)';
|
||
|
||
@override
|
||
String get appSettings_batteryLifepo4 => '磷酸é“锂 (2.6-3.65V)';
|
||
|
||
@override
|
||
String get appSettings_batteryLipo => '锂èšåˆç‰©ç”µæ± (3.0-4.2V)';
|
||
|
||
@override
|
||
String get appSettings_mapDisplay => '地图显示';
|
||
|
||
@override
|
||
String get appSettings_showRepeaters => '显示转å‘节点';
|
||
|
||
@override
|
||
String get appSettings_showRepeatersSubtitle =>
|
||
'在地图上显示转å‘节点';
|
||
|
||
@override
|
||
String get appSettings_showChatNodes => '显示èŠå¤©èŠ‚ç‚¹';
|
||
|
||
@override
|
||
String get appSettings_showChatNodesSubtitle =>
|
||
'在地图上显示èŠå¤©èŠ‚ç‚¹';
|
||
|
||
@override
|
||
String get appSettings_showOtherNodes => '显示其他节点';
|
||
|
||
@override
|
||
String get appSettings_showOtherNodesSubtitle =>
|
||
'在地图上显示其他节点类型';
|
||
|
||
@override
|
||
String get appSettings_timeFilter => '时间过滤器';
|
||
|
||
@override
|
||
String get appSettings_timeFilterShowAll => '显示所有节点';
|
||
|
||
@override
|
||
String appSettings_timeFilterShowLast(int hours) {
|
||
return '显示过去 $hours å°æ—¶å†…的节点';
|
||
}
|
||
|
||
@override
|
||
String get appSettings_mapTimeFilter => '地图时间ç›é€‰';
|
||
|
||
@override
|
||
String get appSettings_showNodesDiscoveredWithin =>
|
||
'æ˜¾ç¤ºåœ¨æ¤æ—¶é—´æ®µå†…å‘现的节点:';
|
||
|
||
@override
|
||
String get appSettings_allTime => '所有时间';
|
||
|
||
@override
|
||
String get appSettings_lastHour => 'è¿‡åŽ»ä¸€å°æ—¶';
|
||
|
||
@override
|
||
String get appSettings_last6Hours => '过去6å°æ—¶';
|
||
|
||
@override
|
||
String get appSettings_last24Hours => '过去24å°æ—¶';
|
||
|
||
@override
|
||
String get appSettings_lastWeek => '上周';
|
||
|
||
@override
|
||
String get appSettings_offlineMapCache => '离线地图缓å˜';
|
||
|
||
@override
|
||
String get appSettings_unitsTitle => 'å•ä½';
|
||
|
||
@override
|
||
String get appSettings_unitsMetric => '公制(米/公里)';
|
||
|
||
@override
|
||
String get appSettings_unitsImperial => '英制 (ft / mi)';
|
||
|
||
@override
|
||
String get appSettings_noAreaSelected => '未选择任何区域';
|
||
|
||
@override
|
||
String appSettings_areaSelectedZoom(int minZoom, int maxZoom) {
|
||
return '已选择区域(缩放 $minZoom - $maxZoom)';
|
||
}
|
||
|
||
@override
|
||
String get appSettings_debugCard => '调试';
|
||
|
||
@override
|
||
String get appSettings_appDebugLogging => '应用调试日志';
|
||
|
||
@override
|
||
String get appSettings_appDebugLoggingSubtitle =>
|
||
'记录应用调试消æ¯ä»¥è¿›è¡Œæ•…障排除。';
|
||
|
||
@override
|
||
String get appSettings_appDebugLoggingEnabled => '调试日志已å¯ç”¨';
|
||
|
||
@override
|
||
String get appSettings_appDebugLoggingDisabled =>
|
||
'应用调试日志已ç¦ç”¨';
|
||
|
||
@override
|
||
String get contacts_title => 'è”系人';
|
||
|
||
@override
|
||
String get contacts_noContacts => 'æš‚æ— è”系人';
|
||
|
||
@override
|
||
String get contacts_contactsWillAppear =>
|
||
'当设备å‘é€å¹¿æ’时,è”系人将显示。';
|
||
|
||
@override
|
||
String get contacts_unread => '未读';
|
||
|
||
@override
|
||
String get contacts_searchContactsNoNumber => 'æœç´¢è”系人...';
|
||
|
||
@override
|
||
String contacts_searchContacts(int number, String str) {
|
||
return 'æœç´¢è”系人...';
|
||
}
|
||
|
||
@override
|
||
String contacts_searchFavorites(int number, String str) {
|
||
return 'æœç´¢ $number$str æ”¶è—...';
|
||
}
|
||
|
||
@override
|
||
String contacts_searchUsers(int number, String str) {
|
||
return 'æœç´¢ $number$str ä½ç”¨æˆ·...';
|
||
}
|
||
|
||
@override
|
||
String contacts_searchRepeaters(int number, String str) {
|
||
return 'æœç´¢ $number$str é‡å¤å™¨...';
|
||
}
|
||
|
||
@override
|
||
String contacts_searchRoomServers(int number, String str) {
|
||
return 'æœç´¢ $number$str 房间æœåС噍...';
|
||
}
|
||
|
||
@override
|
||
String get contacts_noUnreadContacts => '没有未读内容';
|
||
|
||
@override
|
||
String get contacts_noContactsFound => '未找到任何è”系人或群èŠ';
|
||
|
||
@override
|
||
String get contacts_deleteContact => 'åˆ é™¤è”系人';
|
||
|
||
@override
|
||
String contacts_removeConfirm(String contactName) {
|
||
return '从è”系人ä¸ç§»é™¤ $contactName?';
|
||
}
|
||
|
||
@override
|
||
String get contacts_manageRepeater => '管ç†è½¬å‘节点';
|
||
|
||
@override
|
||
String get contacts_manageRoom => 'ç®¡ç†æˆ¿é—´æœåС噍';
|
||
|
||
@override
|
||
String get contacts_roomLogin => 'æœåŠ¡å™¨ç™»å½•';
|
||
|
||
@override
|
||
String get contacts_openChat => '打开èŠå¤©';
|
||
|
||
@override
|
||
String get contacts_editGroup => '编辑群èŠ';
|
||
|
||
@override
|
||
String get contacts_deleteGroup => 'åˆ é™¤ç¾¤èŠ';
|
||
|
||
@override
|
||
String contacts_deleteGroupConfirm(String groupName) {
|
||
return 'åˆ é™¤ç¾¤èŠ \"$groupName\"?';
|
||
}
|
||
|
||
@override
|
||
String get contacts_newGroup => '新建群èŠ';
|
||
|
||
@override
|
||
String get contacts_groupName => '群èŠåç§°';
|
||
|
||
@override
|
||
String get contacts_groupNameRequired => '请输入群èŠåç§°';
|
||
|
||
@override
|
||
String contacts_groupAlreadyExists(String name) {
|
||
return 'å为 \"$name\" 的群èŠå·²å˜åœ¨';
|
||
}
|
||
|
||
@override
|
||
String get contacts_filterContacts => 'ç›é€‰è”系人...';
|
||
|
||
@override
|
||
String get contacts_noContactsMatchFilter => 'æ²¡æœ‰ç¬¦åˆæ¡ä»¶çš„è”系人';
|
||
|
||
@override
|
||
String get contacts_noMembers => 'æš‚æ— æˆå‘˜';
|
||
|
||
@override
|
||
String get contacts_lastSeenNow => '刚刚';
|
||
|
||
@override
|
||
String contacts_lastSeenMinsAgo(int minutes) {
|
||
return '最åŽåœ¨çº¿ $minutes 分钟å‰';
|
||
}
|
||
|
||
@override
|
||
String get contacts_lastSeenHourAgo => '最åŽåœ¨çº¿ 1å°æ—¶å‰';
|
||
|
||
@override
|
||
String contacts_lastSeenHoursAgo(int hours) {
|
||
return '最åŽåœ¨çº¿ $hours å°æ—¶å‰';
|
||
}
|
||
|
||
@override
|
||
String get contacts_lastSeenDayAgo => '最åŽåœ¨çº¿ 1天å‰';
|
||
|
||
@override
|
||
String contacts_lastSeenDaysAgo(int days) {
|
||
return '最åŽåœ¨çº¿ $days 天å‰';
|
||
}
|
||
|
||
@override
|
||
String get channels_title => '频é“';
|
||
|
||
@override
|
||
String get channels_noChannelsConfigured => '未é…置任何频é“';
|
||
|
||
@override
|
||
String get channels_addPublicChannel => 'æ·»åŠ å…¬å…±é¢‘é“';
|
||
|
||
@override
|
||
String get channels_searchChannels => 'æœç´¢é¢‘é“...';
|
||
|
||
@override
|
||
String get channels_noChannelsFound => '未找到任何频é“';
|
||
|
||
@override
|
||
String channels_channelIndex(int index) {
|
||
return 'é¢‘é“ $index';
|
||
}
|
||
|
||
@override
|
||
String get channels_hashtagChannel => 'æ ‡ç¾é¢‘é“';
|
||
|
||
@override
|
||
String get channels_public => '公共';
|
||
|
||
@override
|
||
String get channels_private => 'ç§æœ‰';
|
||
|
||
@override
|
||
String get channels_publicChannel => '公共频é“';
|
||
|
||
@override
|
||
String get channels_privateChannel => 'ç§æœ‰é¢‘é“';
|
||
|
||
@override
|
||
String get channels_editChannel => '编辑频é“';
|
||
|
||
@override
|
||
String get channels_muteChannel => 'é™éŸ³é¢‘é“';
|
||
|
||
@override
|
||
String get channels_unmuteChannel => 'å–æ¶ˆé™éŸ³é¢‘é“';
|
||
|
||
@override
|
||
String get channels_deleteChannel => 'åˆ é™¤é¢‘é“';
|
||
|
||
@override
|
||
String channels_deleteChannelConfirm(String name) {
|
||
return 'åˆ é™¤é¢‘é“ \"$name\"ï¼Ÿæ¤æ“作ä¸å¯æ’¤é”€ã€‚';
|
||
}
|
||
|
||
@override
|
||
String channels_channelDeleteFailed(String name) {
|
||
return 'æ— æ³•åˆ é™¤é¢‘é“ \"$name\"';
|
||
}
|
||
|
||
@override
|
||
String channels_channelDeleted(String name) {
|
||
return 'å·²åˆ é™¤é¢‘é“ \"$name\"';
|
||
}
|
||
|
||
@override
|
||
String get channels_addChannel => 'æ·»åŠ é¢‘é“';
|
||
|
||
@override
|
||
String get channels_channelIndexLabel => '频é“索引';
|
||
|
||
@override
|
||
String get channels_channelName => '频é“åç§°';
|
||
|
||
@override
|
||
String get channels_usePublicChannel => '使用公共频é“';
|
||
|
||
@override
|
||
String get channels_standardPublicPsk => 'æ ‡å‡†å…¬å…± PSK';
|
||
|
||
@override
|
||
String get channels_pskHex => 'PSK (åå…进制)';
|
||
|
||
@override
|
||
String get channels_generateRandomPsk => '生æˆéšæœº PSK';
|
||
|
||
@override
|
||
String get channels_enterChannelName => '请输入频é“åç§°';
|
||
|
||
@override
|
||
String get channels_pskMustBe32Hex =>
|
||
'PSK 必须为 32 个åå…进制å—符';
|
||
|
||
@override
|
||
String channels_channelAdded(String name) {
|
||
return 'å·²æ·»åŠ é¢‘é“ \"$name\"';
|
||
}
|
||
|
||
@override
|
||
String channels_editChannelTitle(int index) {
|
||
return 'ç¼–è¾‘é¢‘é“ $index';
|
||
}
|
||
|
||
@override
|
||
String get channels_smazCompression => 'SMAZ 压缩';
|
||
|
||
@override
|
||
String channels_channelUpdated(String name) {
|
||
return 'é¢‘é“ \"$name\" 已更新';
|
||
}
|
||
|
||
@override
|
||
String get channels_publicChannelAdded => 'å·²æ·»åŠ å…¬å…±é¢‘é“';
|
||
|
||
@override
|
||
String get channels_sortBy => 'æŽ’åºæ–¹å¼';
|
||
|
||
@override
|
||
String get channels_sortManual => '手动';
|
||
|
||
@override
|
||
String get channels_sortAZ => 'A-Z';
|
||
|
||
@override
|
||
String get channels_sortLatestMessages => '最新消æ¯';
|
||
|
||
@override
|
||
String get channels_sortUnread => '未读';
|
||
|
||
@override
|
||
String get channels_createPrivateChannel => 'åˆ›å»ºç§æœ‰é¢‘é“';
|
||
|
||
@override
|
||
String get channels_createPrivateChannelDesc => 'ä½¿ç”¨å¯†é’¥ä¿æŠ¤ã€‚';
|
||
|
||
@override
|
||
String get channels_joinPrivateChannel => 'åŠ å…¥ç§æœ‰é¢‘é“';
|
||
|
||
@override
|
||
String get channels_joinPrivateChannelDesc => '手动输入密钥。';
|
||
|
||
@override
|
||
String get channels_joinPublicChannel => 'åŠ å…¥å…¬å…±é¢‘é“';
|
||
|
||
@override
|
||
String get channels_joinPublicChannelDesc => '任何人都å¯ä»¥åŠ å…¥ã€‚';
|
||
|
||
@override
|
||
String get channels_joinHashtagChannel => 'åŠ å…¥æ ‡ç¾é¢‘é“';
|
||
|
||
@override
|
||
String get channels_joinHashtagChannelDesc =>
|
||
'任何人都å¯ä»¥åŠ å…¥æ ‡ç¾é¢‘é“。';
|
||
|
||
@override
|
||
String get channels_scanQrCode => '扫æäºŒç»´ç ';
|
||
|
||
@override
|
||
String get channels_scanQrCodeComingSoon => 'å³å°†æŽ¨å‡º';
|
||
|
||
@override
|
||
String get channels_enterHashtag => 'è¾“å…¥æ ‡ç¾';
|
||
|
||
@override
|
||
String get channels_hashtagHint => '例如:#团队';
|
||
|
||
@override
|
||
String get chat_noMessages => 'æš‚æ— æ¶ˆæ¯';
|
||
|
||
@override
|
||
String get chat_sendMessageToStart => 'å‘逿¶ˆæ¯å¼€å§‹å¯¹è¯';
|
||
|
||
@override
|
||
String get chat_originalMessageNotFound => '找ä¸åˆ°åŽŸå§‹æ¶ˆæ¯';
|
||
|
||
@override
|
||
String chat_replyingTo(String name) {
|
||
return 'æ£åœ¨å›žå¤ $name';
|
||
}
|
||
|
||
@override
|
||
String chat_replyTo(String name) {
|
||
return 'å›žå¤ $name';
|
||
}
|
||
|
||
@override
|
||
String get chat_location => 'ä½ç½®';
|
||
|
||
@override
|
||
String chat_sendMessageTo(String contactName) {
|
||
return 'å‘逿¶ˆæ¯ç»™ $contactName';
|
||
}
|
||
|
||
@override
|
||
String get chat_typeMessage => '输入消æ¯...';
|
||
|
||
@override
|
||
String chat_messageTooLong(int maxBytes) {
|
||
return '消æ¯è¿‡é•¿ï¼ˆæœ€å¤š $maxBytes å—节)';
|
||
}
|
||
|
||
@override
|
||
String get chat_messageCopied => '消æ¯å·²å¤åˆ¶';
|
||
|
||
@override
|
||
String get chat_messageDeleted => '消æ¯å·²åˆ 除';
|
||
|
||
@override
|
||
String get chat_retryingMessage => 'æ£åœ¨é‡è¯•消æ¯';
|
||
|
||
@override
|
||
String chat_retryCount(int current, int max) {
|
||
return 'é‡è¯• $current/$max';
|
||
}
|
||
|
||
@override
|
||
String get chat_sendGif => 'å‘é€ GIF';
|
||
|
||
@override
|
||
String get chat_reply => '回å¤';
|
||
|
||
@override
|
||
String get chat_addReaction => 'æ·»åŠ è¡¨æƒ…';
|
||
|
||
@override
|
||
String get chat_me => '我';
|
||
|
||
@override
|
||
String get emojiCategorySmileys => '表情';
|
||
|
||
@override
|
||
String get emojiCategoryGestures => '手势';
|
||
|
||
@override
|
||
String get emojiCategoryHearts => '爱心';
|
||
|
||
@override
|
||
String get emojiCategoryObjects => '物å“';
|
||
|
||
@override
|
||
String get gifPicker_title => '选择 GIF';
|
||
|
||
@override
|
||
String get gifPicker_searchHint => 'æœç´¢ GIF...';
|
||
|
||
@override
|
||
String get gifPicker_poweredBy => 'ç”± GIPHY æä¾›';
|
||
|
||
@override
|
||
String get gifPicker_noGifsFound => '未找到 GIF';
|
||
|
||
@override
|
||
String get gifPicker_failedLoad => 'åŠ è½½ GIF 失败';
|
||
|
||
@override
|
||
String get gifPicker_failedSearch => 'æœç´¢ GIF 失败';
|
||
|
||
@override
|
||
String get gifPicker_noInternet => 'æ— ç½‘ç»œè¿žæŽ¥';
|
||
|
||
@override
|
||
String get debugLog_appTitle => '应用调试日志';
|
||
|
||
@override
|
||
String get debugLog_bleTitle => 'BLE 调试日志';
|
||
|
||
@override
|
||
String get debugLog_copyLog => 'å¤åˆ¶æ—¥å¿—';
|
||
|
||
@override
|
||
String get debugLog_clearLog => '清除日志';
|
||
|
||
@override
|
||
String get debugLog_copied => '调试日志已å¤åˆ¶';
|
||
|
||
@override
|
||
String get debugLog_bleCopied => 'BLE 日志已å¤åˆ¶';
|
||
|
||
@override
|
||
String get debugLog_noEntries => 'æš‚æ— è°ƒè¯•æ—¥å¿—';
|
||
|
||
@override
|
||
String get debugLog_enableInSettings =>
|
||
'请在设置ä¸å¯ç”¨åº”用调试日志。';
|
||
|
||
@override
|
||
String get debugLog_frames => '帧';
|
||
|
||
@override
|
||
String get debugLog_rawLogRx => '原始日志 RX';
|
||
|
||
@override
|
||
String get debugLog_noBleActivity => 'æš‚æ— BLE 活动';
|
||
|
||
@override
|
||
String debugFrame_length(int count) {
|
||
return '帧长度:$count å—节';
|
||
}
|
||
|
||
@override
|
||
String debugFrame_command(String value) {
|
||
return '命令:0x$value';
|
||
}
|
||
|
||
@override
|
||
String get debugFrame_textMessageHeader => '文本消æ¯ï¼š';
|
||
|
||
@override
|
||
String debugFrame_destinationPubKey(String pubKey) {
|
||
return '- ç›®æ ‡å…¬é’¥ï¼š$pubKey';
|
||
}
|
||
|
||
@override
|
||
String debugFrame_timestamp(int timestamp) {
|
||
return '- 时间戳:$timestamp';
|
||
}
|
||
|
||
@override
|
||
String debugFrame_flags(String value) {
|
||
return '- æ ‡å¿—ï¼š0x$value';
|
||
}
|
||
|
||
@override
|
||
String debugFrame_textType(int type, String label) {
|
||
return '- 文本类型:$type ($label)';
|
||
}
|
||
|
||
@override
|
||
String get debugFrame_textTypeCli => '命令行';
|
||
|
||
@override
|
||
String get debugFrame_textTypePlain => '纯文本';
|
||
|
||
@override
|
||
String debugFrame_text(String text) {
|
||
return '- 文本:“$textâ€';
|
||
}
|
||
|
||
@override
|
||
String get debugFrame_hexDump => 'åå…进制数æ®ï¼š';
|
||
|
||
@override
|
||
String get chat_pathManagement => '路径管ç†';
|
||
|
||
@override
|
||
String get chat_ShowAllPaths => '显示所有路径';
|
||
|
||
@override
|
||
String get chat_routingMode => '路由模å¼';
|
||
|
||
@override
|
||
String get chat_autoUseSavedPath => '自动(使用ä¿å˜çš„路径)';
|
||
|
||
@override
|
||
String get chat_forceFloodMode => '强制泛洪模å¼';
|
||
|
||
@override
|
||
String get chat_recentAckPaths =>
|
||
'最近使用的 ACK 路径(点击使用):';
|
||
|
||
@override
|
||
String get chat_pathHistoryFull =>
|
||
'路径历å²å·²æ»¡ï¼Œè¯·åˆ 除åŽå†æ·»åŠ ã€‚';
|
||
|
||
@override
|
||
String get chat_hopSingular => 'è·³';
|
||
|
||
@override
|
||
String get chat_hopPlural => 'è·³';
|
||
|
||
@override
|
||
String chat_hopsCount(int count) {
|
||
return '$count è·³';
|
||
}
|
||
|
||
@override
|
||
String get chat_successes => 'æˆåŠŸ';
|
||
|
||
@override
|
||
String get chat_removePath => '移除路径';
|
||
|
||
@override
|
||
String get chat_noPathHistoryYet =>
|
||
'æš‚æ— è·¯å¾„åŽ†å²ã€‚\nå‘逿¶ˆæ¯ä»¥æŽ¢ç´¢è·¯å¾„。';
|
||
|
||
@override
|
||
String get chat_pathActions => '路径æ“作:';
|
||
|
||
@override
|
||
String get chat_setCustomPath => '设置自定义路径';
|
||
|
||
@override
|
||
String get chat_setCustomPathSubtitle => '手动指定路由路径';
|
||
|
||
@override
|
||
String get chat_clearPath => '清除路径';
|
||
|
||
@override
|
||
String get chat_clearPathSubtitle =>
|
||
'清除当å‰è·¯å¾„,下次å‘é€å°†é‡æ–°å°è¯•。';
|
||
|
||
@override
|
||
String get chat_pathCleared =>
|
||
'è·¯å¾„å·²æ¸…é™¤ã€‚ä¸‹ä¸€æ¡æ¶ˆæ¯å°†é‡æ–°è·¯ç”±ã€‚';
|
||
|
||
@override
|
||
String get chat_floodModeSubtitle => '在应用æ ä¸åˆ‡æ¢è·¯ç”±æ¨¡å¼ã€‚';
|
||
|
||
@override
|
||
String get chat_floodModeEnabled =>
|
||
'泛洪模å¼å·²å¯ç”¨ã€‚å¯é€šè¿‡åº”用æ çš„è·¯ç”±å›¾æ ‡åˆ‡æ¢ã€‚';
|
||
|
||
@override
|
||
String get chat_fullPath => '完整路径';
|
||
|
||
@override
|
||
String get chat_pathDetailsNotAvailable =>
|
||
'è·¯å¾„ä¿¡æ¯æš‚ä¸å¯ç”¨ï¼Œè¯·å°è¯•å‘逿¶ˆæ¯åˆ·æ–°ã€‚';
|
||
|
||
@override
|
||
String chat_pathSetHops(int hopCount, String status) {
|
||
return '路径设置:$hopCount 跳 - $status';
|
||
}
|
||
|
||
@override
|
||
String get chat_pathSavedLocally =>
|
||
'已本地ä¿å˜ï¼Œè¿žæŽ¥è®¾å¤‡åŽå¯åŒæ¥ã€‚';
|
||
|
||
@override
|
||
String get chat_pathDeviceConfirmed => '设备已确认。';
|
||
|
||
@override
|
||
String get chat_pathDeviceNotConfirmed => '设备尚未确认。';
|
||
|
||
@override
|
||
String get chat_type => '类型';
|
||
|
||
@override
|
||
String get chat_path => '路径';
|
||
|
||
@override
|
||
String get chat_publicKey => '公钥';
|
||
|
||
@override
|
||
String get chat_compressOutgoingMessages => '压缩å‘é€çš„æ¶ˆæ¯';
|
||
|
||
@override
|
||
String get chat_floodForced => '泛洪(强制)';
|
||
|
||
@override
|
||
String get chat_directForced => '直连(强制)';
|
||
|
||
@override
|
||
String chat_hopsForced(int count) {
|
||
return '$count 跳(强制)';
|
||
}
|
||
|
||
@override
|
||
String get chat_floodAuto => '自动泛洪';
|
||
|
||
@override
|
||
String get chat_direct => '直连';
|
||
|
||
@override
|
||
String get chat_poiShared => '共享ä½ç½®';
|
||
|
||
@override
|
||
String chat_unread(int count) {
|
||
return '未读:$count';
|
||
}
|
||
|
||
@override
|
||
String get chat_openLink => '打开链接?';
|
||
|
||
@override
|
||
String get chat_openLinkConfirmation =>
|
||
'是å¦ä½¿ç”¨æµè§ˆå™¨æ‰“å¼€æ¤é“¾æŽ¥ï¼Ÿ';
|
||
|
||
@override
|
||
String get chat_open => '打开';
|
||
|
||
@override
|
||
String chat_couldNotOpenLink(String url) {
|
||
return 'æ— æ³•æ‰“å¼€é“¾æŽ¥ï¼š$url';
|
||
}
|
||
|
||
@override
|
||
String get chat_invalidLink => 'æ— æ•ˆçš„é“¾æŽ¥æ ¼å¼';
|
||
|
||
@override
|
||
String get map_title => '节点地图';
|
||
|
||
@override
|
||
String get map_lineOfSight => '视线';
|
||
|
||
@override
|
||
String get map_losScreenTitle => '视线';
|
||
|
||
@override
|
||
String get map_noNodesWithLocation => '没有包å«ä½ç½®ä¿¡æ¯çš„节点';
|
||
|
||
@override
|
||
String get map_nodesNeedGps =>
|
||
'节点需è¦å…±äº« GPS åæ ‡æ‰èƒ½åœ¨åœ°å›¾ä¸Šæ˜¾ç¤º';
|
||
|
||
@override
|
||
String map_nodesCount(int count) {
|
||
return '节点:$count';
|
||
}
|
||
|
||
@override
|
||
String map_pinsCount(int count) {
|
||
return 'æ ‡è®°ï¼š$count';
|
||
}
|
||
|
||
@override
|
||
String get map_chat => 'èŠå¤©';
|
||
|
||
@override
|
||
String get map_repeater => '转å‘节点';
|
||
|
||
@override
|
||
String get map_room => '房间';
|
||
|
||
@override
|
||
String get map_sensor => 'ä¼ æ„Ÿå™¨';
|
||
|
||
@override
|
||
String get map_pinDm => 'æ ‡è®°ï¼ˆç§ä¿¡ï¼‰';
|
||
|
||
@override
|
||
String get map_pinPrivate => 'ç§æœ‰';
|
||
|
||
@override
|
||
String get map_pinPublic => '公共';
|
||
|
||
@override
|
||
String get map_lastSeen => '最åŽåœ¨çº¿';
|
||
|
||
@override
|
||
String get map_disconnectConfirm =>
|
||
'ç¡®å®šè¦æ–开与æ¤è®¾å¤‡çš„连接å—?';
|
||
|
||
@override
|
||
String get map_from => 'æ¥è‡ª';
|
||
|
||
@override
|
||
String get map_source => 'æ¥æº';
|
||
|
||
@override
|
||
String get map_flags => 'æ ‡å¿—';
|
||
|
||
@override
|
||
String get map_shareMarkerHere => '在æ¤åˆ†äº«æ ‡è®°';
|
||
|
||
@override
|
||
String get map_pinLabel => 'æ ‡ç¾';
|
||
|
||
@override
|
||
String get map_label => 'æ ‡ç¾';
|
||
|
||
@override
|
||
String get map_pointOfInterest => '兴趣点';
|
||
|
||
@override
|
||
String get map_sendToContact => 'å‘é€ç»™è”系人';
|
||
|
||
@override
|
||
String get map_sendToChannel => 'å‘é€åˆ°é¢‘é“';
|
||
|
||
@override
|
||
String get map_noChannelsAvailable => '没有å¯ç”¨çš„频é“';
|
||
|
||
@override
|
||
String get map_publicLocationShare => '公共ä½ç½®å…±äº«';
|
||
|
||
@override
|
||
String map_publicLocationShareConfirm(String channelLabel) {
|
||
return '您å³å°†åœ¨ $channelLabel 上分享一个ä½ç½®ã€‚æ¤é¢‘铿˜¯å…¬å¼€çš„,任何拥有 PSK 的人都å¯ä»¥çœ‹åˆ°ã€‚';
|
||
}
|
||
|
||
@override
|
||
String get map_connectToShareMarkers => 'è¿žæŽ¥è®¾å¤‡ä»¥å…±äº«æ ‡è®°';
|
||
|
||
@override
|
||
String get map_filterNodes => '过滤节点';
|
||
|
||
@override
|
||
String get map_nodeTypes => '节点类型';
|
||
|
||
@override
|
||
String get map_chatNodes => 'èŠå¤©èŠ‚ç‚¹';
|
||
|
||
@override
|
||
String get map_repeaters => '转å‘节点';
|
||
|
||
@override
|
||
String get map_otherNodes => '其他节点';
|
||
|
||
@override
|
||
String get map_keyPrefix => '关键å—å‰ç¼€';
|
||
|
||
@override
|
||
String get map_filterByKeyPrefix => '按关键å—å‰ç¼€ç›é€‰';
|
||
|
||
@override
|
||
String get map_publicKeyPrefix => '关键å—å‰ç¼€';
|
||
|
||
@override
|
||
String get map_markers => 'æ ‡è®°';
|
||
|
||
@override
|
||
String get map_showSharedMarkers => 'æ˜¾ç¤ºå…±äº«æ ‡è®°';
|
||
|
||
@override
|
||
String get map_lastSeenTime => '最åŽåœ¨çº¿æ—¶é—´';
|
||
|
||
@override
|
||
String get map_sharedPin => 'å…±äº«æ ‡è®°';
|
||
|
||
@override
|
||
String get map_joinRoom => 'åŠ å…¥æˆ¿é—´';
|
||
|
||
@override
|
||
String get map_manageRepeater => '管ç†è½¬å‘节点';
|
||
|
||
@override
|
||
String get map_tapToAdd => 'ç‚¹å‡»èŠ‚ç‚¹ä»¥æ·»åŠ åˆ°è·¯å¾„';
|
||
|
||
@override
|
||
String get map_runTrace => 'è¿è¡Œè·¯å¾„追踪';
|
||
|
||
@override
|
||
String get map_removeLast => '移除最åŽä¸€ä¸ª';
|
||
|
||
@override
|
||
String get map_pathTraceCancelled => 'è·¯å¾„è¿½è¸ªå·²å–æ¶ˆ';
|
||
|
||
@override
|
||
String get mapCache_title => '离线地图缓å˜';
|
||
|
||
@override
|
||
String get mapCache_selectAreaFirst => '请先选择è¦ç¼“å˜çš„区域';
|
||
|
||
@override
|
||
String get mapCache_noTilesToDownload => 'æ¤åŒºåŸŸæ²¡æœ‰å¯ä¸‹è½½çš„瓦片';
|
||
|
||
@override
|
||
String get mapCache_downloadTilesTitle => '下载瓦片';
|
||
|
||
@override
|
||
String mapCache_downloadTilesPrompt(int count) {
|
||
return '这需è¦ä¸‹è½½ $count 个瓦片';
|
||
}
|
||
|
||
@override
|
||
String get mapCache_downloadAction => '下载';
|
||
|
||
@override
|
||
String mapCache_cachedTiles(int count) {
|
||
return 'å·²ç¼“å˜ $count 个瓦片';
|
||
}
|
||
|
||
@override
|
||
String mapCache_cachedTilesWithFailed(int downloaded, int failed) {
|
||
return 'å·²ç¼“å˜ $downloaded 个瓦片($failed 个失败)';
|
||
}
|
||
|
||
@override
|
||
String get mapCache_clearOfflineCacheTitle => '清除离线缓å˜';
|
||
|
||
@override
|
||
String get mapCache_clearOfflineCachePrompt =>
|
||
'清除所有缓å˜çš„地图瓦片';
|
||
|
||
@override
|
||
String get mapCache_offlineCacheCleared => '离线缓å˜å·²æ¸…除';
|
||
|
||
@override
|
||
String get mapCache_noAreaSelected => '未选择区域';
|
||
|
||
@override
|
||
String get mapCache_cacheArea => '缓å˜åŒºåŸŸ';
|
||
|
||
@override
|
||
String get mapCache_useCurrentView => '使用当å‰è§†å›¾';
|
||
|
||
@override
|
||
String get mapCache_zoomRange => '缩放范围';
|
||
|
||
@override
|
||
String mapCache_estimatedTiles(int count) {
|
||
return '估计瓦片数:$count';
|
||
}
|
||
|
||
@override
|
||
String mapCache_downloadedTiles(int completed, int total) {
|
||
return '已下载 $completed/$total';
|
||
}
|
||
|
||
@override
|
||
String get mapCache_downloadTilesButton => '下载瓦片';
|
||
|
||
@override
|
||
String get mapCache_clearCacheButton => '清除缓å˜';
|
||
|
||
@override
|
||
String mapCache_failedDownloads(int count) {
|
||
return '下载失败:$count';
|
||
}
|
||
|
||
@override
|
||
String mapCache_boundsLabel(
|
||
String north,
|
||
String south,
|
||
String east,
|
||
String west,
|
||
) {
|
||
return '北 $north, å— $south, 东 $east, 西 $west';
|
||
}
|
||
|
||
@override
|
||
String get time_justNow => '刚æ‰';
|
||
|
||
@override
|
||
String time_minutesAgo(int minutes) {
|
||
return '$minutes分钟å‰';
|
||
}
|
||
|
||
@override
|
||
String time_hoursAgo(int hours) {
|
||
return '$hourså°æ—¶å‰';
|
||
}
|
||
|
||
@override
|
||
String time_daysAgo(int days) {
|
||
return '$days天å‰';
|
||
}
|
||
|
||
@override
|
||
String get time_hour => 'å°æ—¶';
|
||
|
||
@override
|
||
String get time_hours => 'å°æ—¶';
|
||
|
||
@override
|
||
String get time_day => '天';
|
||
|
||
@override
|
||
String get time_days => '天';
|
||
|
||
@override
|
||
String get time_week => '周';
|
||
|
||
@override
|
||
String get time_weeks => '周';
|
||
|
||
@override
|
||
String get time_month => '月';
|
||
|
||
@override
|
||
String get time_months => '月';
|
||
|
||
@override
|
||
String get time_minutes => '分钟';
|
||
|
||
@override
|
||
String get time_allTime => '所有时间';
|
||
|
||
@override
|
||
String get dialog_disconnect => 'æ–å¼€';
|
||
|
||
@override
|
||
String get dialog_disconnectConfirm =>
|
||
'ç¡®å®šè¦æ–开与æ¤è®¾å¤‡çš„连接å—?';
|
||
|
||
@override
|
||
String get login_repeaterLogin => '转å‘节点登录';
|
||
|
||
@override
|
||
String get login_roomLogin => '房间æœåŠ¡å™¨ç™»å½•';
|
||
|
||
@override
|
||
String get login_password => '密ç ';
|
||
|
||
@override
|
||
String get login_enterPassword => '请输入密ç ';
|
||
|
||
@override
|
||
String get login_savePassword => 'ä¿å˜å¯†ç ';
|
||
|
||
@override
|
||
String get login_savePasswordSubtitle =>
|
||
'密ç 将安全地å˜å‚¨åœ¨æ¤è®¾å¤‡ä¸Š';
|
||
|
||
@override
|
||
String get login_repeaterDescription =>
|
||
'输入转å‘节点密ç 以访问设置和状æ€ã€‚';
|
||
|
||
@override
|
||
String get login_roomDescription =>
|
||
'输入房间æœåС噍坆ç 以访问设置和状æ€ã€‚';
|
||
|
||
@override
|
||
String get login_routing => '路由';
|
||
|
||
@override
|
||
String get login_routingMode => '路由模å¼';
|
||
|
||
@override
|
||
String get login_autoUseSavedPath => '自动(使用ä¿å˜çš„路径)';
|
||
|
||
@override
|
||
String get login_forceFloodMode => '强制泛洪模å¼';
|
||
|
||
@override
|
||
String get login_managePaths => '管ç†è·¯å¾„';
|
||
|
||
@override
|
||
String get login_login => '登录';
|
||
|
||
@override
|
||
String login_attempt(int current, int max) {
|
||
return 'å°è¯• $current/$max';
|
||
}
|
||
|
||
@override
|
||
String login_failed(String error) {
|
||
return '登录失败:$error';
|
||
}
|
||
|
||
@override
|
||
String get login_failedMessage =>
|
||
'登录失败。å¯èƒ½æ˜¯å¯†ç é”™è¯¯æˆ–æ— æ³•è¿žæŽ¥åˆ°æœåŠ¡å™¨ã€‚';
|
||
|
||
@override
|
||
String get common_reload => '釿–°åŠ è½½';
|
||
|
||
@override
|
||
String get common_clear => '清除';
|
||
|
||
@override
|
||
String path_currentPath(String path) {
|
||
return '当å‰è·¯å¾„:$path';
|
||
}
|
||
|
||
@override
|
||
String path_usingHopsPath(int count) {
|
||
return '使用 $count 跳路径';
|
||
}
|
||
|
||
@override
|
||
String get path_enterCustomPath => '输入自定义路径';
|
||
|
||
@override
|
||
String get path_currentPathLabel => '当å‰è·¯å¾„';
|
||
|
||
@override
|
||
String get path_hexPrefixInstructions =>
|
||
'请输入æ¯ä¸ªä¸ç»§èŠ‚ç‚¹çš„2å—符åå…进制å‰ç¼€ï¼Œç”¨é€—å·åˆ†éš”。';
|
||
|
||
@override
|
||
String get path_hexPrefixExample =>
|
||
'例如:A1, F2, 3C(æ¯ä¸ªèŠ‚ç‚¹ä½¿ç”¨å…¶å…¬é’¥çš„ç¬¬ä¸€å—节)';
|
||
|
||
@override
|
||
String get path_labelHexPrefixes => '路径(åå…进制å‰ç¼€ï¼‰';
|
||
|
||
@override
|
||
String get path_helperMaxHops =>
|
||
'最多 64 跳。æ¯ä¸ªå‰ç¼€ç”± 2 个åå…进制å—符(1 å—节)组æˆã€‚';
|
||
|
||
@override
|
||
String get path_selectFromContacts => '或从è”系人列表ä¸é€‰æ‹©ï¼š';
|
||
|
||
@override
|
||
String get path_noRepeatersFound =>
|
||
'未找到任何转å‘节点或房间æœåŠ¡å™¨ã€‚';
|
||
|
||
@override
|
||
String get path_customPathsRequire =>
|
||
'自定义路径需è¦ä¸é—´èŠ‚ç‚¹è½¬å‘æ¶ˆæ¯ã€‚';
|
||
|
||
@override
|
||
String path_invalidHexPrefixes(String prefixes) {
|
||
return 'æ— æ•ˆçš„åå…进制å‰ç¼€ï¼š$prefixes';
|
||
}
|
||
|
||
@override
|
||
String get path_tooLong => '路径过长,最多å…许 64 跳。';
|
||
|
||
@override
|
||
String get path_setPath => '设置路径';
|
||
|
||
@override
|
||
String get repeater_management => '转å‘节点管ç†';
|
||
|
||
@override
|
||
String get room_management => '房间æœåŠ¡å™¨ç®¡ç†';
|
||
|
||
@override
|
||
String get repeater_managementTools => '管ç†å·¥å…·';
|
||
|
||
@override
|
||
String get repeater_status => '状æ€';
|
||
|
||
@override
|
||
String get repeater_statusSubtitle =>
|
||
'查看转å‘节点状æ€ã€ç»Ÿè®¡å’Œé‚»å±…';
|
||
|
||
@override
|
||
String get repeater_telemetry => '饿µ‹';
|
||
|
||
@override
|
||
String get repeater_telemetrySubtitle =>
|
||
'æŸ¥çœ‹ä¼ æ„Ÿå™¨å’Œç³»ç»ŸçŠ¶æ€æ•°æ®';
|
||
|
||
@override
|
||
String get repeater_cli => '命令行';
|
||
|
||
@override
|
||
String get repeater_cliSubtitle => 'å‘转å‘节点å‘é€å‘½ä»¤';
|
||
|
||
@override
|
||
String get repeater_neighbors => '邻居';
|
||
|
||
@override
|
||
String get repeater_neighborsSubtitle => '查看邻居节点(零跳)';
|
||
|
||
@override
|
||
String get repeater_settings => '设置';
|
||
|
||
@override
|
||
String get repeater_settingsSubtitle => 'é…置转å‘èŠ‚ç‚¹å‚æ•°';
|
||
|
||
@override
|
||
String get repeater_statusTitle => '转å‘节点状æ€';
|
||
|
||
@override
|
||
String get repeater_routingMode => '路由模å¼';
|
||
|
||
@override
|
||
String get repeater_autoUseSavedPath => '自动(使用ä¿å˜çš„路径)';
|
||
|
||
@override
|
||
String get repeater_forceFloodMode => '强制泛洪模å¼';
|
||
|
||
@override
|
||
String get repeater_pathManagement => '路径管ç†';
|
||
|
||
@override
|
||
String get repeater_refresh => '刷新';
|
||
|
||
@override
|
||
String get repeater_statusRequestTimeout => '状æ€è¯·æ±‚è¶…æ—¶';
|
||
|
||
@override
|
||
String repeater_errorLoadingStatus(String error) {
|
||
return 'åŠ è½½çŠ¶æ€æ—¶å‡ºé”™ï¼š$error';
|
||
}
|
||
|
||
@override
|
||
String get repeater_systemInformation => '系统信æ¯';
|
||
|
||
@override
|
||
String get repeater_battery => 'ç”µæ± ';
|
||
|
||
@override
|
||
String get repeater_clockAtLogin => '登录时的时钟';
|
||
|
||
@override
|
||
String get repeater_uptime => 'è¿è¡Œæ—¶é—´';
|
||
|
||
@override
|
||
String get repeater_queueLength => '队列长度';
|
||
|
||
@override
|
||
String get repeater_debugFlags => 'è°ƒè¯•æ ‡å¿—';
|
||
|
||
@override
|
||
String get repeater_radioStatistics => 'æ— çº¿ç”µç»Ÿè®¡';
|
||
|
||
@override
|
||
String get repeater_lastRssi => '上次 RSSI';
|
||
|
||
@override
|
||
String get repeater_lastSnr => '上次 SNR';
|
||
|
||
@override
|
||
String get repeater_noiseFloor => '底噪';
|
||
|
||
@override
|
||
String get repeater_txAirtime => 'å‘é€ç©ºä¸æ—¶é—´';
|
||
|
||
@override
|
||
String get repeater_rxAirtime => 'æŽ¥æ”¶ç©ºä¸æ—¶é—´';
|
||
|
||
@override
|
||
String get repeater_packetStatistics => 'æ•°æ®åŒ…统计';
|
||
|
||
@override
|
||
String get repeater_sent => 'å‘é€';
|
||
|
||
@override
|
||
String get repeater_received => '接收';
|
||
|
||
@override
|
||
String get repeater_duplicates => 'é‡å¤';
|
||
|
||
@override
|
||
String repeater_daysHoursMinsSecs(
|
||
int days,
|
||
int hours,
|
||
int minutes,
|
||
int seconds,
|
||
) {
|
||
return '$days天 $hourså°æ—¶ $minutes分 $secondsç§’';
|
||
}
|
||
|
||
@override
|
||
String repeater_packetTxTotal(int total, String flood, String direct) {
|
||
return '总计:$total,泛洪:$flood,直连:$direct';
|
||
}
|
||
|
||
@override
|
||
String repeater_packetRxTotal(int total, String flood, String direct) {
|
||
return '总计:$total,泛洪:$flood,直连:$direct';
|
||
}
|
||
|
||
@override
|
||
String repeater_duplicatesFloodDirect(String flood, String direct) {
|
||
return '泛洪:$flood,直连:$direct';
|
||
}
|
||
|
||
@override
|
||
String repeater_duplicatesTotal(int total) {
|
||
return '总计:$total';
|
||
}
|
||
|
||
@override
|
||
String get repeater_settingsTitle => '转å‘节点设置';
|
||
|
||
@override
|
||
String get repeater_basicSettings => '基本设置';
|
||
|
||
@override
|
||
String get repeater_repeaterName => '转å‘节点åç§°';
|
||
|
||
@override
|
||
String get repeater_repeaterNameHelper => 'æ¤è½¬å‘节点的显示åç§°';
|
||
|
||
@override
|
||
String get repeater_adminPassword => '管ç†å‘˜å¯†ç ';
|
||
|
||
@override
|
||
String get repeater_adminPasswordHelper => '完整访问密ç ';
|
||
|
||
@override
|
||
String get repeater_guestPassword => '访客密ç ';
|
||
|
||
@override
|
||
String get repeater_guestPasswordHelper => 'åªè¯»è®¿é—®å¯†ç ';
|
||
|
||
@override
|
||
String get repeater_radioSettings => 'æ— çº¿ç”µè®¾ç½®';
|
||
|
||
@override
|
||
String get repeater_frequencyMhz => '频率 (MHz)';
|
||
|
||
@override
|
||
String get repeater_frequencyHelper => '300-2500 MHz';
|
||
|
||
@override
|
||
String get repeater_txPower => 'TX 功率';
|
||
|
||
@override
|
||
String get repeater_txPowerHelper => '1-30 dBm';
|
||
|
||
@override
|
||
String get repeater_bandwidth => '带宽';
|
||
|
||
@override
|
||
String get repeater_spreadingFactor => 'æ‰©é¢‘å› å';
|
||
|
||
@override
|
||
String get repeater_codingRate => 'ç¼–ç 速率';
|
||
|
||
@override
|
||
String get repeater_locationSettings => 'ä½ç½®è®¾ç½®';
|
||
|
||
@override
|
||
String get repeater_latitude => '纬度';
|
||
|
||
@override
|
||
String get repeater_latitudeHelper => 'å进制,例如 37.7749';
|
||
|
||
@override
|
||
String get repeater_longitude => 'ç»åº¦';
|
||
|
||
@override
|
||
String get repeater_longitudeHelper => 'å进制,例如 -122.4194';
|
||
|
||
@override
|
||
String get repeater_features => '功能';
|
||
|
||
@override
|
||
String get repeater_packetForwarding => 'æ•°æ®åŒ…转å‘';
|
||
|
||
@override
|
||
String get repeater_packetForwardingSubtitle =>
|
||
'å¯ç”¨è½¬å‘èŠ‚ç‚¹è½¬å‘æ•°æ®åŒ…';
|
||
|
||
@override
|
||
String get repeater_guestAccess => '访客访问';
|
||
|
||
@override
|
||
String get repeater_guestAccessSubtitle => 'å…许访客åªè¯»æƒé™';
|
||
|
||
@override
|
||
String get repeater_privacyMode => 'éšç§æ¨¡å¼';
|
||
|
||
@override
|
||
String get repeater_privacyModeSubtitle => '在广æ’ä¸éšè—å§“å/ä½ç½®';
|
||
|
||
@override
|
||
String get repeater_advertisementSettings => '广æ’设置';
|
||
|
||
@override
|
||
String get repeater_localAdvertInterval => '本地广æ’é—´éš”';
|
||
|
||
@override
|
||
String repeater_localAdvertIntervalMinutes(int minutes) {
|
||
return '$minutes 分钟';
|
||
}
|
||
|
||
@override
|
||
String get repeater_floodAdvertInterval => '泛洪广æ’é—´éš”';
|
||
|
||
@override
|
||
String repeater_floodAdvertIntervalHours(int hours) {
|
||
return '$hours å°æ—¶';
|
||
}
|
||
|
||
@override
|
||
String get repeater_encryptedAdvertInterval => 'åŠ å¯†å¹¿æ’é—´éš”';
|
||
|
||
@override
|
||
String get repeater_dangerZone => 'å±é™©è®¾ç½®';
|
||
|
||
@override
|
||
String get repeater_rebootRepeater => 'é‡å¯è½¬å‘节点';
|
||
|
||
@override
|
||
String get repeater_rebootRepeaterSubtitle => 'é‡å¯è½¬å‘节点设备';
|
||
|
||
@override
|
||
String get repeater_rebootRepeaterConfirm =>
|
||
'确定è¦é‡å¯æ¤è½¬å‘节点å—?';
|
||
|
||
@override
|
||
String get repeater_regenerateIdentityKey => '釿–°ç”Ÿæˆèº«ä»½å¯†é’¥';
|
||
|
||
@override
|
||
String get repeater_regenerateIdentityKeySubtitle =>
|
||
'ç”Ÿæˆæ–°çš„公钥/ç§é’¥å¯¹';
|
||
|
||
@override
|
||
String get repeater_regenerateIdentityKeyConfirm =>
|
||
'这将为转å‘èŠ‚ç‚¹ç”Ÿæˆæ–°èº«ä»½ï¼Œç»§ç»å—?';
|
||
|
||
@override
|
||
String get repeater_eraseFileSystem => '擦除文件系统';
|
||
|
||
@override
|
||
String get repeater_eraseFileSystemSubtitle =>
|
||
'æ ¼å¼åŒ–转å‘节点文件系统';
|
||
|
||
@override
|
||
String get repeater_eraseFileSystemConfirm =>
|
||
'è¦å‘Šï¼šæ¤æ“作将清除转å‘节点上的所有数æ®ï¼Œä¸”æ— æ³•æ¢å¤ï¼';
|
||
|
||
@override
|
||
String get repeater_eraseSerialOnly =>
|
||
'擦除功能仅å¯é€šè¿‡ä¸²è¡ŒæŽ§åˆ¶å°ä½¿ç”¨ã€‚';
|
||
|
||
@override
|
||
String repeater_commandSent(String command) {
|
||
return '命令已å‘é€ï¼š$command';
|
||
}
|
||
|
||
@override
|
||
String repeater_errorSendingCommand(String error) {
|
||
return 'å‘é€å‘½ä»¤æ—¶å‡ºé”™ï¼š$error';
|
||
}
|
||
|
||
@override
|
||
String get repeater_confirm => '确认';
|
||
|
||
@override
|
||
String get repeater_settingsSaved => '设置ä¿å˜æˆåŠŸ';
|
||
|
||
@override
|
||
String repeater_errorSavingSettings(String error) {
|
||
return 'ä¿å˜è®¾ç½®æ—¶å‡ºé”™ï¼š$error';
|
||
}
|
||
|
||
@override
|
||
String get repeater_refreshBasicSettings => '刷新基本设置';
|
||
|
||
@override
|
||
String get repeater_refreshRadioSettings => 'åˆ·æ–°æ— çº¿ç”µè®¾ç½®';
|
||
|
||
@override
|
||
String get repeater_refreshTxPower => '刷新 TX 功率';
|
||
|
||
@override
|
||
String get repeater_refreshLocationSettings => '刷新ä½ç½®è®¾ç½®';
|
||
|
||
@override
|
||
String get repeater_refreshPacketForwarding => '刷新包转å‘';
|
||
|
||
@override
|
||
String get repeater_refreshGuestAccess => '刷新访客æƒé™';
|
||
|
||
@override
|
||
String get repeater_refreshPrivacyMode => '刷新éšç§æ¨¡å¼';
|
||
|
||
@override
|
||
String get repeater_refreshAdvertisementSettings => '刷新广æ’设置';
|
||
|
||
@override
|
||
String repeater_refreshed(String label) {
|
||
return '$label 已刷新';
|
||
}
|
||
|
||
@override
|
||
String repeater_errorRefreshing(String label) {
|
||
return '刷新 $label 时出错';
|
||
}
|
||
|
||
@override
|
||
String get repeater_cliTitle => '转å‘节点命令行';
|
||
|
||
@override
|
||
String get repeater_debugNextCommand => '调试下一æ¡å‘½ä»¤';
|
||
|
||
@override
|
||
String get repeater_commandHelp => '帮助';
|
||
|
||
@override
|
||
String get repeater_clearHistory => '清除历å²';
|
||
|
||
@override
|
||
String get repeater_noCommandsSent => '尚未å‘é€å‘½ä»¤';
|
||
|
||
@override
|
||
String get repeater_typeCommandOrUseQuick =>
|
||
'输入命令或使用快æ·å‘½ä»¤';
|
||
|
||
@override
|
||
String get repeater_enterCommandHint => '输入命令...';
|
||
|
||
@override
|
||
String get repeater_previousCommand => '上一æ¡å‘½ä»¤';
|
||
|
||
@override
|
||
String get repeater_nextCommand => '下一æ¡å‘½ä»¤';
|
||
|
||
@override
|
||
String get repeater_enterCommandFirst => '请先输入命令';
|
||
|
||
@override
|
||
String get repeater_cliCommandFrameTitle => 'CLI 命令帧';
|
||
|
||
@override
|
||
String repeater_cliCommandError(String error) {
|
||
return '错误:$error';
|
||
}
|
||
|
||
@override
|
||
String get repeater_cliQuickGetName => '获å–åç§°';
|
||
|
||
@override
|
||
String get repeater_cliQuickGetRadio => 'èŽ·å–æ— 线电设置';
|
||
|
||
@override
|
||
String get repeater_cliQuickGetTx => 'èŽ·å– TX';
|
||
|
||
@override
|
||
String get repeater_cliQuickNeighbors => '邻居';
|
||
|
||
@override
|
||
String get repeater_cliQuickVersion => '版本';
|
||
|
||
@override
|
||
String get repeater_cliQuickAdvertise => 'å‘é€å¹¿æ’';
|
||
|
||
@override
|
||
String get repeater_cliQuickClock => 'æ—¶é’Ÿ';
|
||
|
||
@override
|
||
String get repeater_cliHelpAdvert => 'å‘é€å¹¿æ’包';
|
||
|
||
@override
|
||
String get repeater_cliHelpReboot =>
|
||
'é‡å¯è®¾å¤‡ã€‚(注æ„:å¯èƒ½ä¼šæ”¶åˆ°è¶…时错误,属于æ£å¸¸çŽ°è±¡ï¼‰';
|
||
|
||
@override
|
||
String get repeater_cliHelpClock => 'æ˜¾ç¤ºè®¾å¤‡å½“å‰æ—¶é—´';
|
||
|
||
@override
|
||
String get repeater_cliHelpPassword => '设置新的管ç†å‘˜å¯†ç ';
|
||
|
||
@override
|
||
String get repeater_cliHelpVersion =>
|
||
'显示设备版本和固件构建日期';
|
||
|
||
@override
|
||
String get repeater_cliHelpClearStats => 'é‡ç½®å„ç§ç»Ÿè®¡æ•°æ®';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetAf => 'è®¾ç½®æ—¶é—´å› å';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetTx =>
|
||
'设置 LoRa å‘射功率 (dBm)(é‡å¯ç”Ÿæ•ˆï¼‰';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetRepeat =>
|
||
'å¯ç”¨æˆ–ç¦ç”¨æ¤èŠ‚ç‚¹çš„è½¬å‘功能';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetAllowReadOnly =>
|
||
'(房间æœåŠ¡å™¨ï¼‰è®¾ä¸ºâ€œå¼€â€åˆ™å…许空密ç 登录,但åªèƒ½è¯»ï¼ˆä¸èƒ½å‘é€ï¼‰';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetFloodMax =>
|
||
'è®¾ç½®æœ€å¤§ä¼ å…¥æ•°æ®åŒ…跳数(≥该值则ä¸è½¬å‘)';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetIntThresh =>
|
||
'设置干扰阈值 (dB),默认14,设为0ç¦ç”¨';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetAgcResetInterval =>
|
||
'设置 AGC é‡ç½®é—´éš”(秒),设为0ç¦ç”¨';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetMultiAcks =>
|
||
'å¯ç”¨æˆ–ç¦ç”¨â€œå¤šé‡ç¡®è®¤â€åŠŸèƒ½';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetAdvertInterval =>
|
||
'设置本地广æ’间隔(分钟),设为0ç¦ç”¨';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetFloodAdvertInterval =>
|
||
'设置泛洪广æ’é—´éš”ï¼ˆå°æ—¶ï¼‰ï¼Œè®¾ä¸º0ç¦ç”¨';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetGuestPassword => '设置/更新访客密ç ';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetName => '设置广æ’åç§°';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetLat => '设置广æ’纬度(å进制)';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetLon => '设置广æ’ç»åº¦ï¼ˆå进制)';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetRadio =>
|
||
'完全é‡è®¾æ— çº¿ç”µå‚æ•°å¹¶ä¿å˜ï¼Œéœ€é‡å¯ç”Ÿæ•ˆ';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetRxDelay =>
|
||
'(实验性)设置接收延迟基数,设为0ç¦ç”¨';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetTxDelay =>
|
||
'é€šè¿‡å› åå’Œéšæœºæ—¶éš™å»¶è¿Ÿæ³›æ´ªæ•°æ®åŒ…转å‘,é™ä½Žå†²çª';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetDirectTxDelay =>
|
||
'åŒ txdelayï¼Œç”¨äºŽç›´è¿žæ¨¡å¼æ•°æ®åŒ…';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetBridgeEnabled => 'å¯ç”¨/ç¦ç”¨æ¡¥æŽ¥';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetBridgeDelay => '设置桥接转å‘延迟';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetBridgeSource =>
|
||
'é€‰æ‹©æ¡¥æŽ¥å™¨è½¬å‘æŽ¥æ”¶æˆ–å‘é€çš„æ•°æ®åŒ…';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetBridgeBaud =>
|
||
'设置 RS232 æ¡¥æŽ¥ä¸²å£æ³¢ç‰¹çއ';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetBridgeSecret => '设置 ESPNOW 桥接密钥';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetAdcMultiplier =>
|
||
'è®¾ç½®ç”µæ± ç”µåŽ‹æ ¡æ£ç³»æ•°ï¼ˆç‰¹å®šæ¿æ”¯æŒï¼‰';
|
||
|
||
@override
|
||
String get repeater_cliHelpTempRadio =>
|
||
'ä¸´æ—¶è®¾ç½®æ— çº¿ç”µå‚æ•°æŒ‡å®šåˆ†é’Ÿï¼Œä¹‹åŽæ¢å¤ï¼ˆä¸ä¿å˜ï¼‰';
|
||
|
||
@override
|
||
String get repeater_cliHelpSetPerm =>
|
||
'修改 ACL,æƒé™ä½ï¼š0访客ã€1åªè¯»ã€2读写ã€3管ç†å‘˜';
|
||
|
||
@override
|
||
String get repeater_cliHelpGetBridgeType =>
|
||
'æ”¯æŒæ¡¥æŽ¥æ¨¡å¼ï¼šRS232ã€ESPNOW';
|
||
|
||
@override
|
||
String get repeater_cliHelpLogStart => '开始记录数æ®åŒ…到文件系统';
|
||
|
||
@override
|
||
String get repeater_cliHelpLogStop => 'åœæ¢è®°å½•æ•°æ®åŒ…';
|
||
|
||
@override
|
||
String get repeater_cliHelpLogErase => 'åˆ é™¤æ‰€æœ‰è®°å½•çš„æ•°æ®åŒ…';
|
||
|
||
@override
|
||
String get repeater_cliHelpNeighbors =>
|
||
'æ˜¾ç¤ºé›¶è·³å¹¿æ’æ”¶åˆ°çš„其他转å‘节点列表';
|
||
|
||
@override
|
||
String get repeater_cliHelpNeighborRemove =>
|
||
'ä»Žé‚»å±…åˆ—è¡¨åˆ é™¤ç¬¬ä¸€ä¸ªåŒ¹é…项(通过公钥å‰ç¼€ï¼‰';
|
||
|
||
@override
|
||
String get repeater_cliHelpRegion =>
|
||
'(仅串å£ï¼‰åˆ—出所有定义区域åŠå½“剿³›æ´ªæƒé™';
|
||
|
||
@override
|
||
String get repeater_cliHelpRegionLoad =>
|
||
'特殊多命令调用,以空行结æŸ';
|
||
|
||
@override
|
||
String get repeater_cliHelpRegionGet => 'æœç´¢æŒ‡å®šå‰ç¼€çš„区域';
|
||
|
||
@override
|
||
String get repeater_cliHelpRegionPut => 'æ·»åŠ æˆ–æ›´æ–°åŒºåŸŸå®šä¹‰';
|
||
|
||
@override
|
||
String get repeater_cliHelpRegionRemove => 'åˆ é™¤æŒ‡å®šåŒºåŸŸå®šä¹‰';
|
||
|
||
@override
|
||
String get repeater_cliHelpRegionAllowf =>
|
||
'ä¸ºåŒºåŸŸè®¾ç½®â€œæ³›æ´ªâ€æƒé™';
|
||
|
||
@override
|
||
String get repeater_cliHelpRegionDenyf => 'ç§»é™¤åŒºåŸŸçš„â€œæ³›æ´ªâ€æƒé™';
|
||
|
||
@override
|
||
String get repeater_cliHelpRegionHome =>
|
||
'返回当å‰â€œä¸»åŒºåŸŸâ€ï¼ˆé¢„留)';
|
||
|
||
@override
|
||
String get repeater_cliHelpRegionHomeSet => '设置“主â€åŒºåŸŸ';
|
||
|
||
@override
|
||
String get repeater_cliHelpRegionSave => 'ä¿å˜åŒºåŸŸåˆ—表到å˜å‚¨';
|
||
|
||
@override
|
||
String get repeater_cliHelpGps => '显示 GPS 状æ€';
|
||
|
||
@override
|
||
String get repeater_cliHelpGpsOnOff => 'åˆ‡æ¢ GPS 电æº';
|
||
|
||
@override
|
||
String get repeater_cliHelpGpsSync => '将节点时间与 GPS åŒæ¥';
|
||
|
||
@override
|
||
String get repeater_cliHelpGpsSetLoc =>
|
||
'å°†èŠ‚ç‚¹åæ ‡è®¾ä¸º GPS åæ ‡å¹¶ä¿å˜';
|
||
|
||
@override
|
||
String get repeater_cliHelpGpsAdvert =>
|
||
'设置ä½ç½®å¹¿æ’é…置:none/share/prefs';
|
||
|
||
@override
|
||
String get repeater_cliHelpGpsAdvertSet => '设置广æ’ä½ç½®é…ç½®';
|
||
|
||
@override
|
||
String get repeater_commandsListTitle => '命令列表';
|
||
|
||
@override
|
||
String get repeater_commandsListNote =>
|
||
'注æ„:多数 set 命令也有对应的 get 命令';
|
||
|
||
@override
|
||
String get repeater_general => '通用';
|
||
|
||
@override
|
||
String get repeater_settingsCategory => '设置';
|
||
|
||
@override
|
||
String get repeater_bridge => '桥接';
|
||
|
||
@override
|
||
String get repeater_logging => '日志';
|
||
|
||
@override
|
||
String get repeater_neighborsRepeaterOnly => '邻居(仅转å‘节点)';
|
||
|
||
@override
|
||
String get repeater_regionManagementRepeaterOnly =>
|
||
'区域管ç†ï¼ˆä»…转å‘节点)';
|
||
|
||
@override
|
||
String get repeater_regionNote =>
|
||
'区域命令用于管ç†åŒºåŸŸå®šä¹‰å’Œæƒé™';
|
||
|
||
@override
|
||
String get repeater_gpsManagement => 'GPS 管ç†';
|
||
|
||
@override
|
||
String get repeater_gpsNote => 'GPS 命令用于ä½ç½®ç›¸å…³ä»»åŠ¡';
|
||
|
||
@override
|
||
String get telemetry_receivedData => 'æŽ¥æ”¶åˆ°çš„é¥æµ‹æ•°æ®';
|
||
|
||
@override
|
||
String get telemetry_requestTimeout => '饿µ‹è¯·æ±‚è¶…æ—¶';
|
||
|
||
@override
|
||
String telemetry_errorLoading(String error) {
|
||
return 'åŠ è½½é¥æµ‹æ•°æ®æ—¶å‡ºé”™ï¼š$error';
|
||
}
|
||
|
||
@override
|
||
String get telemetry_noData => 'æš‚æ— é¥æµ‹æ•°æ®';
|
||
|
||
@override
|
||
String telemetry_channelTitle(int channel) {
|
||
return 'é¢‘é“ $channel';
|
||
}
|
||
|
||
@override
|
||
String get telemetry_batteryLabel => 'ç”µæ± ';
|
||
|
||
@override
|
||
String get telemetry_voltageLabel => '电压';
|
||
|
||
@override
|
||
String get telemetry_mcuTemperatureLabel => 'MCU 温度';
|
||
|
||
@override
|
||
String get telemetry_temperatureLabel => '温度';
|
||
|
||
@override
|
||
String get telemetry_currentLabel => '电æµ';
|
||
|
||
@override
|
||
String telemetry_batteryValue(int percent, String volts) {
|
||
return '$percent% / ${volts}V';
|
||
}
|
||
|
||
@override
|
||
String telemetry_voltageValue(String volts) {
|
||
return '${volts}V';
|
||
}
|
||
|
||
@override
|
||
String telemetry_currentValue(String amps) {
|
||
return '${amps}A';
|
||
}
|
||
|
||
@override
|
||
String telemetry_temperatureValue(String celsius, String fahrenheit) {
|
||
return '$celsius°C / $fahrenheit°F';
|
||
}
|
||
|
||
@override
|
||
String get neighbors_receivedData => '已接收邻居信æ¯';
|
||
|
||
@override
|
||
String get neighbors_requestTimedOut => '邻居请求超时';
|
||
|
||
@override
|
||
String neighbors_errorLoading(String error) {
|
||
return 'åŠ è½½é‚»å±…æ—¶å‡ºé”™ï¼š$error';
|
||
}
|
||
|
||
@override
|
||
String get neighbors_repeatersNeighbors => '转å‘节点的邻居';
|
||
|
||
@override
|
||
String get neighbors_noData => 'æš‚æ— é‚»å±…ä¿¡æ¯';
|
||
|
||
@override
|
||
String neighbors_unknownContact(String pubkey) {
|
||
return '未知 $pubkey';
|
||
}
|
||
|
||
@override
|
||
String neighbors_heardAgo(String time) {
|
||
return 'å¬åˆ°ï¼š$timeå‰';
|
||
}
|
||
|
||
@override
|
||
String get channelPath_title => 'æ•°æ®åŒ…路径';
|
||
|
||
@override
|
||
String get channelPath_viewMap => '查看地图';
|
||
|
||
@override
|
||
String get channelPath_otherObservedPaths => '其他观察到的路径';
|
||
|
||
@override
|
||
String get channelPath_repeaterHops => '转å‘节点跳数';
|
||
|
||
@override
|
||
String get channelPath_noHopDetails => 'æ¤æ•°æ®åŒ…未æä¾›è¯¦ç»†ä¿¡æ¯';
|
||
|
||
@override
|
||
String get channelPath_messageDetails => '消æ¯è¯¦æƒ…';
|
||
|
||
@override
|
||
String get channelPath_senderLabel => 'å‘é€è€…';
|
||
|
||
@override
|
||
String get channelPath_timeLabel => 'æ—¶é—´';
|
||
|
||
@override
|
||
String get channelPath_repeatsLabel => 'é‡å¤';
|
||
|
||
@override
|
||
String channelPath_pathLabel(int index) {
|
||
return '路径 $index';
|
||
}
|
||
|
||
@override
|
||
String get channelPath_observedLabel => '观察到的';
|
||
|
||
@override
|
||
String channelPath_observedPathTitle(int index, String hops) {
|
||
return '观察到的路径 $index • $hops';
|
||
}
|
||
|
||
@override
|
||
String get channelPath_noLocationData => 'æ— ä½ç½®ä¿¡æ¯';
|
||
|
||
@override
|
||
String channelPath_timeWithDate(int day, int month, String time) {
|
||
return '$day/$month $time';
|
||
}
|
||
|
||
@override
|
||
String channelPath_timeOnly(String time) {
|
||
return '$time';
|
||
}
|
||
|
||
@override
|
||
String get channelPath_unknownPath => '未知';
|
||
|
||
@override
|
||
String get channelPath_floodPath => '泛洪';
|
||
|
||
@override
|
||
String get channelPath_directPath => '直连';
|
||
|
||
@override
|
||
String channelPath_observedZeroOf(int total) {
|
||
return '0 / $total è·³';
|
||
}
|
||
|
||
@override
|
||
String channelPath_observedSomeOf(int observed, int total) {
|
||
return '$observed / $total è·³';
|
||
}
|
||
|
||
@override
|
||
String get channelPath_mapTitle => '路径地图';
|
||
|
||
@override
|
||
String get channelPath_noRepeaterLocations =>
|
||
'æ¤è·¯å¾„上没有å¯ç”¨çš„转å‘节点ä½ç½®ä¿¡æ¯';
|
||
|
||
@override
|
||
String channelPath_primaryPath(int index) {
|
||
return '路径 $index(主è¦ï¼‰';
|
||
}
|
||
|
||
@override
|
||
String get channelPath_pathLabelTitle => '路径';
|
||
|
||
@override
|
||
String get channelPath_observedPathHeader => '观察到的路径';
|
||
|
||
@override
|
||
String channelPath_selectedPathLabel(String label, String prefixes) {
|
||
return '$label • $prefixes';
|
||
}
|
||
|
||
@override
|
||
String get channelPath_noHopDetailsAvailable =>
|
||
'æ¤æ•°æ®åŒ…æš‚æ— è¯¦ç»†ä¿¡æ¯';
|
||
|
||
@override
|
||
String get channelPath_unknownRepeater => '未知转å‘节点';
|
||
|
||
@override
|
||
String get community_title => '社区';
|
||
|
||
@override
|
||
String get community_create => '创建社区';
|
||
|
||
@override
|
||
String get community_createDesc =>
|
||
'创建新社区并通过二维ç 分享。';
|
||
|
||
@override
|
||
String get community_join => 'åŠ å…¥';
|
||
|
||
@override
|
||
String get community_joinTitle => 'åŠ å…¥ç¤¾åŒº';
|
||
|
||
@override
|
||
String community_joinConfirmation(String name) {
|
||
return '是å¦åŠ å…¥ç¤¾åŒº \"$name\"?';
|
||
}
|
||
|
||
@override
|
||
String get community_scanQr => '扫æç¤¾åŒºäºŒç»´ç ';
|
||
|
||
@override
|
||
String get community_scanInstructions =>
|
||
'将摄åƒå¤´å¯¹å‡†ç¤¾åŒºçš„二维ç ';
|
||
|
||
@override
|
||
String get community_showQr => '显示二维ç ';
|
||
|
||
@override
|
||
String get community_publicChannel => '社区公共频é“';
|
||
|
||
@override
|
||
String get community_hashtagChannel => 'ç¤¾åŒºæ ‡ç¾é¢‘é“';
|
||
|
||
@override
|
||
String get community_name => '社区åç§°';
|
||
|
||
@override
|
||
String get community_enterName => '请输入社区åç§°';
|
||
|
||
@override
|
||
String community_created(String name) {
|
||
return '社区 \"$name\" 已创建';
|
||
}
|
||
|
||
@override
|
||
String community_joined(String name) {
|
||
return 'å·²åŠ å…¥ç¤¾åŒº \"$name\"';
|
||
}
|
||
|
||
@override
|
||
String get community_qrTitle => '分享社区';
|
||
|
||
@override
|
||
String community_qrInstructions(String name) {
|
||
return 'æ‰«ææ¤äºŒç»´ç åŠ å…¥ \"$name\"';
|
||
}
|
||
|
||
@override
|
||
String get community_hashtagPrivacyHint =>
|
||
'仅社区æˆå‘˜å¯åŠ å…¥ç¤¾åŒºæ ‡ç¾é¢‘é“。';
|
||
|
||
@override
|
||
String get community_invalidQrCode => 'æ— æ•ˆçš„ç¤¾åŒºäºŒç»´ç ';
|
||
|
||
@override
|
||
String get community_alreadyMember => '已是æˆå‘˜';
|
||
|
||
@override
|
||
String community_alreadyMemberMessage(String name) {
|
||
return '您已是 \"$name\" çš„æˆå‘˜ã€‚';
|
||
}
|
||
|
||
@override
|
||
String get community_addPublicChannel => 'æ·»åŠ å…¬å…±é¢‘é“';
|
||
|
||
@override
|
||
String get community_addPublicChannelHint =>
|
||
'è‡ªåŠ¨æ·»åŠ æ¤ç¤¾åŒºçš„公共频é“';
|
||
|
||
@override
|
||
String get community_noCommunities => 'å°šæœªåŠ å…¥ä»»ä½•ç¤¾åŒºã€‚';
|
||
|
||
@override
|
||
String get community_scanOrCreate =>
|
||
'扫æäºŒç»´ç 或创建社区以开始。';
|
||
|
||
@override
|
||
String get community_manageCommunities => '管ç†ç¤¾åŒº';
|
||
|
||
@override
|
||
String get community_delete => '退出社区';
|
||
|
||
@override
|
||
String community_deleteConfirm(String name) {
|
||
return '是å¦é€€å‡º \"$name\"?';
|
||
}
|
||
|
||
@override
|
||
String community_deleteChannelsWarning(int count) {
|
||
return 'è¿™å°†åŒæ—¶åˆ 除 $count 个频é“åŠå…¶æ‰€æœ‰æ¶ˆæ¯ã€‚';
|
||
}
|
||
|
||
@override
|
||
String community_deleted(String name) {
|
||
return '已退出社区 \"$name\"';
|
||
}
|
||
|
||
@override
|
||
String get community_regenerateSecret => '釿–°ç”Ÿæˆå¯†é’¥';
|
||
|
||
@override
|
||
String community_regenerateSecretConfirm(String name) {
|
||
return '是å¦ä¸º \"$name\" 釿–°ç”Ÿæˆå¯†é’¥ï¼Ÿæ‰€æœ‰æˆå‘˜éœ€æ‰«ææ–°çš„äºŒç»´ç æ‰èƒ½ç»§ç»é€šä¿¡ã€‚';
|
||
}
|
||
|
||
@override
|
||
String get community_regenerate => '釿–°ç”Ÿæˆ';
|
||
|
||
@override
|
||
String community_secretRegenerated(String name) {
|
||
return '已为 \"$name\" 釿–°ç”Ÿæˆå¯†é’¥';
|
||
}
|
||
|
||
@override
|
||
String get community_updateSecret => '更新密钥';
|
||
|
||
@override
|
||
String community_secretUpdated(String name) {
|
||
return '“$nameâ€çš„密钥已更新';
|
||
}
|
||
|
||
@override
|
||
String community_scanToUpdateSecret(String name) {
|
||
return 'æ‰«ææ–°äºŒç»´ç 以更新 \"$name\" 的密钥';
|
||
}
|
||
|
||
@override
|
||
String get community_addHashtagChannel => 'æ·»åŠ æ ‡ç¾é¢‘é“';
|
||
|
||
@override
|
||
String get community_addHashtagChannelDesc =>
|
||
'为æ¤ç¤¾åŒºåˆ›å»ºæ ‡ç¾é¢‘é“';
|
||
|
||
@override
|
||
String get community_selectCommunity => '选择社区';
|
||
|
||
@override
|
||
String get community_regularHashtag => 'æ™®é€šæ ‡ç¾';
|
||
|
||
@override
|
||
String get community_regularHashtagDesc =>
|
||
'å…¬å…±æ ‡ç¾é¢‘é“(任何人都å¯å‚与)';
|
||
|
||
@override
|
||
String get community_communityHashtag => 'ç¤¾åŒºæ ‡ç¾';
|
||
|
||
@override
|
||
String get community_communityHashtagDesc => 'ä»…é™ç¤¾åŒºæˆå‘˜';
|
||
|
||
@override
|
||
String community_forCommunity(String name) {
|
||
return '为 $name';
|
||
}
|
||
|
||
@override
|
||
String get listFilter_tooltip => 'ç›é€‰ä¸ŽæŽ’åº';
|
||
|
||
@override
|
||
String get listFilter_sortBy => 'æŽ’åºæ–¹å¼';
|
||
|
||
@override
|
||
String get listFilter_latestMessages => '最新消æ¯';
|
||
|
||
@override
|
||
String get listFilter_heardRecently => '最近å¬åˆ°';
|
||
|
||
@override
|
||
String get listFilter_az => 'A-Z';
|
||
|
||
@override
|
||
String get listFilter_filters => 'ç›é€‰';
|
||
|
||
@override
|
||
String get listFilter_all => '全部';
|
||
|
||
@override
|
||
String get listFilter_favorites => 'æ”¶è—';
|
||
|
||
@override
|
||
String get listFilter_addToFavorites => 'æ·»åŠ åˆ°æ”¶è—';
|
||
|
||
@override
|
||
String get listFilter_removeFromFavorites => '从收è—ä¸ç§»é™¤';
|
||
|
||
@override
|
||
String get listFilter_users => '用户';
|
||
|
||
@override
|
||
String get listFilter_repeaters => '转å‘节点';
|
||
|
||
@override
|
||
String get listFilter_roomServers => '房间æœåС噍';
|
||
|
||
@override
|
||
String get listFilter_unreadOnly => '仅显示未读';
|
||
|
||
@override
|
||
String get listFilter_newGroup => '新建群èŠ';
|
||
|
||
@override
|
||
String get pathTrace_you => '我自己';
|
||
|
||
@override
|
||
String get pathTrace_failed => '路径追踪失败。';
|
||
|
||
@override
|
||
String get pathTrace_notAvailable => 'æ— æ³•èŽ·å–路径信æ¯ã€‚';
|
||
|
||
@override
|
||
String get pathTrace_refreshTooltip => '刷新路径追踪';
|
||
|
||
@override
|
||
String get pathTrace_someHopsNoLocation => 'æŸäº›è·³ç¼ºå°‘ä½ç½®ä¿¡æ¯ï¼';
|
||
|
||
@override
|
||
String get pathTrace_clearTooltip => '清除路径';
|
||
|
||
@override
|
||
String get losSelectStartEnd =>
|
||
'选择 LOS 的起始节点和结æŸèŠ‚ç‚¹ã€‚';
|
||
|
||
@override
|
||
String losRunFailed(String error) {
|
||
return '视线检查失败:$error';
|
||
}
|
||
|
||
@override
|
||
String get losClearAllPoints => '清除所有点';
|
||
|
||
@override
|
||
String get losRunToViewElevationProfile => 'è¿è¡Œ LOS 查看高程剖é¢';
|
||
|
||
@override
|
||
String get losMenuTitle => 'æœåŠ¡æ°´å¹³èœå•';
|
||
|
||
@override
|
||
String get losMenuSubtitle =>
|
||
'点击节点或长按地图以获å–自定义点';
|
||
|
||
@override
|
||
String get losShowDisplayNodes => '显示显示节点';
|
||
|
||
@override
|
||
String get losCustomPoints => '自定义积分';
|
||
|
||
@override
|
||
String losCustomPointLabel(int index) {
|
||
return '自定义 $index';
|
||
}
|
||
|
||
@override
|
||
String get losPointA => 'A点';
|
||
|
||
@override
|
||
String get losPointB => 'B点';
|
||
|
||
@override
|
||
String losAntennaA(String value, String unit) {
|
||
return '天线 A: $value $unit';
|
||
}
|
||
|
||
@override
|
||
String losAntennaB(String value, String unit) {
|
||
return '天线 B:$value $unit';
|
||
}
|
||
|
||
@override
|
||
String get losRun => 'è¿è¡Œè§†è·';
|
||
|
||
@override
|
||
String get losNoElevationData => 'æ— æµ·æ‹”æ•°æ®';
|
||
|
||
@override
|
||
String losProfileClear(
|
||
String distance,
|
||
String distanceUnit,
|
||
String clearance,
|
||
String heightUnit,
|
||
) {
|
||
return '$distance $distanceUnit,清除 LOS,最å°é—´éš™ $clearance $heightUnit';
|
||
}
|
||
|
||
@override
|
||
String losProfileBlocked(
|
||
String distance,
|
||
String distanceUnit,
|
||
String obstruction,
|
||
String heightUnit,
|
||
) {
|
||
return '$distance $distanceUnit,被 $obstruction $heightUnit 阻æ¢';
|
||
}
|
||
|
||
@override
|
||
String get losStatusChecking => '洛斯:æ£åœ¨æ£€æŸ¥...';
|
||
|
||
@override
|
||
String get losStatusNoData => 'LOSï¼šæ— æ•°æ®';
|
||
|
||
@override
|
||
String losStatusSummary(int clear, int total, int blocked, int unknown) {
|
||
return 'LOS:$clear/$total 清除,$blocked 阻塞,$unknown 未知';
|
||
}
|
||
|
||
@override
|
||
String get losErrorElevationUnavailable =>
|
||
'ä¸€ä¸ªæˆ–å¤šä¸ªæ ·æœ¬çš„æµ·æ‹”æ•°æ®ä¸å¯ç”¨ã€‚';
|
||
|
||
@override
|
||
String get losErrorInvalidInput =>
|
||
'用于 LOS 计算的点/é«˜ç¨‹æ•°æ®æ— 效。';
|
||
|
||
@override
|
||
String get losRenameCustomPoint => 'é‡å‘½å自定义点';
|
||
|
||
@override
|
||
String get losPointName => '点åç§°';
|
||
|
||
@override
|
||
String get losShowPanelTooltip => '显示 LOS 颿¿';
|
||
|
||
@override
|
||
String get losHidePanelTooltip => 'éšè— LOS 颿¿';
|
||
|
||
@override
|
||
String get losElevationAttribution => '高程数æ®ï¼šOpen-Meteo (CC BY 4.0)';
|
||
|
||
@override
|
||
String get losLegendRadioHorizon => 'æ— çº¿ç”µåœ°å¹³çº¿';
|
||
|
||
@override
|
||
String get losLegendLosBeam => 'è§†è·æ³¢æŸ';
|
||
|
||
@override
|
||
String get losLegendTerrain => '地形';
|
||
|
||
@override
|
||
String get losFrequencyLabel => '频率';
|
||
|
||
@override
|
||
String get losFrequencyInfoTooltip => '查看计算详情';
|
||
|
||
@override
|
||
String get losFrequencyDialogTitle => 'æ— çº¿ç”µåœ°å¹³çº¿è®¡ç®—';
|
||
|
||
@override
|
||
String losFrequencyDialogDescription(
|
||
double baselineK,
|
||
double baselineFreq,
|
||
double frequencyMHz,
|
||
double kFactor,
|
||
) {
|
||
return '从 $baselineFreq MHz 处的 k=$baselineK å¼€å§‹ï¼Œè®¡ç®—è°ƒæ•´å½“å‰ $frequencyMHz MHz 频段的 k å› åï¼Œè¯¥å› åå®šä¹‰äº†å¼¯æ›²çš„æ— çº¿ç”µèŒƒå›´ä¸Šé™ã€‚';
|
||
}
|
||
|
||
@override
|
||
String get contacts_pathTrace => '路径追踪';
|
||
|
||
@override
|
||
String get contacts_ping => 'Ping';
|
||
|
||
@override
|
||
String get contacts_repeaterPathTrace => 'Trace 转å‘节点';
|
||
|
||
@override
|
||
String get contacts_repeaterPing => 'Ping 转å‘节点';
|
||
|
||
@override
|
||
String get contacts_roomPathTrace => 'Trace 房间æœåС噍';
|
||
|
||
@override
|
||
String get contacts_roomPing => 'Ping 房间æœåС噍';
|
||
|
||
@override
|
||
String get contacts_chatTraceRoute => '路由追踪';
|
||
|
||
@override
|
||
String contacts_pathTraceTo(String name) {
|
||
return '追踪至 $name 的路径';
|
||
}
|
||
|
||
@override
|
||
String get contacts_clipboardEmpty => '剪贴æ¿ä¸ºç©º';
|
||
|
||
@override
|
||
String get contacts_invalidAdvertFormat => 'æ— æ•ˆçš„è”ç³»äººä¿¡æ¯æ ¼å¼';
|
||
|
||
@override
|
||
String get contacts_contactImported => 'è”系人已导入';
|
||
|
||
@override
|
||
String get contacts_contactImportFailed => '导入è”系人失败。';
|
||
|
||
@override
|
||
String get contacts_zeroHopAdvert => 'å‘é€é›¶è·³å¹¿æ’';
|
||
|
||
@override
|
||
String get contacts_floodAdvert => 'å‘逿³›æ´ªå¹¿æ’';
|
||
|
||
@override
|
||
String get contacts_copyAdvertToClipboard => 'å¤åˆ¶å¹¿æ’到剪贴æ¿';
|
||
|
||
@override
|
||
String get contacts_addContactFromClipboard => 'ä»Žå‰ªè´´æ¿æ·»åŠ è”系人';
|
||
|
||
@override
|
||
String get contacts_ShareContact => 'å¤åˆ¶è”系人信æ¯åˆ°å‰ªè´´æ¿';
|
||
|
||
@override
|
||
String get contacts_ShareContactZeroHop => '通过广æ’分享è”系人';
|
||
|
||
@override
|
||
String get contacts_zeroHopContactAdvertSent => '零跳广æ’å·²å‘é€';
|
||
|
||
@override
|
||
String get contacts_zeroHopContactAdvertFailed =>
|
||
'å‘é€è”系人广æ’失败。';
|
||
|
||
@override
|
||
String get contacts_contactAdvertCopied => '广æ’å·²å¤åˆ¶åˆ°å‰ªè´´æ¿ã€‚';
|
||
|
||
@override
|
||
String get contacts_contactAdvertCopyFailed =>
|
||
'å¤åˆ¶å¹¿æ’到剪贴æ¿å¤±è´¥ã€‚';
|
||
|
||
@override
|
||
String get notification_activityTitle => 'MeshCore 活动';
|
||
|
||
@override
|
||
String notification_messagesCount(int count) {
|
||
return '$count æ¡æ¶ˆæ¯';
|
||
}
|
||
|
||
@override
|
||
String notification_channelMessagesCount(int count) {
|
||
return '$count æ¡é¢‘铿¶ˆæ¯';
|
||
}
|
||
|
||
@override
|
||
String notification_newNodesCount(int count) {
|
||
return '$count 个新节点';
|
||
}
|
||
|
||
@override
|
||
String notification_newTypeDiscovered(String contactType) {
|
||
return 'å‘现新 $contactType';
|
||
}
|
||
|
||
@override
|
||
String get notification_receivedNewMessage => '收到新消æ¯';
|
||
|
||
@override
|
||
String get settings_gpxExportRepeaters =>
|
||
'导出转å‘节点/房间æœåŠ¡å™¨åˆ° GPX';
|
||
|
||
@override
|
||
String get settings_gpxExportRepeatersSubtitle =>
|
||
'导出带ä½ç½®çš„转å‘节点/房间æœåŠ¡å™¨åˆ° GPX 文件';
|
||
|
||
@override
|
||
String get settings_gpxExportContacts => '导出伙伴到 GPX';
|
||
|
||
@override
|
||
String get settings_gpxExportContactsSubtitle =>
|
||
'导出带ä½ç½®çš„伙伴到 GPX 文件';
|
||
|
||
@override
|
||
String get settings_gpxExportAll => '导出所有è”系人到 GPX';
|
||
|
||
@override
|
||
String get settings_gpxExportAllSubtitle =>
|
||
'导出所有带ä½ç½®çš„è”系人到 GPX 文件';
|
||
|
||
@override
|
||
String get settings_gpxExportSuccess => 'GPX 文件导出æˆåŠŸ';
|
||
|
||
@override
|
||
String get settings_gpxExportNoContacts => '没有å¯å¯¼å‡ºçš„è”系人';
|
||
|
||
@override
|
||
String get settings_gpxExportNotAvailable =>
|
||
'您的设备/æ“ä½œç³»ç»Ÿä¸æ”¯æŒ';
|
||
|
||
@override
|
||
String get settings_gpxExportError => '导出时出错';
|
||
|
||
@override
|
||
String get settings_gpxExportRepeatersRoom =>
|
||
'转å‘节点与房间æœåС噍ä½ç½®';
|
||
|
||
@override
|
||
String get settings_gpxExportChat => '伙伴ä½ç½®';
|
||
|
||
@override
|
||
String get settings_gpxExportAllContacts => '所有è”系人ä½ç½®';
|
||
|
||
@override
|
||
String get settings_gpxExportShareText =>
|
||
'æ¥è‡ª MeshCore Open 的地图数æ®å¯¼å‡º';
|
||
|
||
@override
|
||
String get settings_gpxExportShareSubject =>
|
||
'MeshCore Open GPX 地图数æ®å¯¼å‡º';
|
||
|
||
@override
|
||
String get snrIndicator_nearByRepeaters => '附近的é‡å¤å™¨';
|
||
|
||
@override
|
||
String get snrIndicator_lastSeen => '最近访问';
|
||
}
|