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

// ignore_for_file: type=lint

/// The translations for English (`en`).
class AppL10nEn extends AppL10n {
  AppL10nEn([String locale = 'en']) : super(locale);

  @override
  String get appTitle => 'Chanora';

  @override
  String get homeNotProductionReadyBanner =>
      'Beta build — voice in/out wired; not production ready.';

  @override
  String get fieldServerHost => 'Server address';

  @override
  String get fieldNickname => 'Nickname';

  @override
  String get fieldServerPassword => 'Server password';

  @override
  String get fieldServerPasswordHelp =>
      'Leave blank if the server does not require one.';

  @override
  String get fieldPassword => 'Password';

  @override
  String get fieldDisplayName => 'Display name';

  @override
  String get connectAction => 'Connect';

  @override
  String get disconnectAction => 'Disconnect';

  @override
  String get refreshAction => 'Refresh';

  @override
  String get diagnosticsAction => 'Diagnostics';

  @override
  String get aboutAction => 'About';

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

  @override
  String get aboutNonAffiliation =>
      'Chanora is independent and is not affiliated with, endorsed by, sponsored by, or officially associated with TeamSpeak.';

  @override
  String get aboutLicenseHeading => 'License';

  @override
  String get aboutLicenseBody =>
      'Chanora is dual-licensed under the Apache License, Version 2.0 or the MIT License, at your option. The full license texts ship as LICENSE-APACHE and LICENSE-MIT at the repository root.';

  @override
  String get aboutThirdPartyHeading => 'Third-party software';

  @override
  String get aboutThirdPartyBody =>
      'Chanora is built on tsclientlib, flutter_rust_bridge, cpal, rusqlite, and the Flutter framework, among others. See the NOTICE file at the repository root for the current attribution list.';

  @override
  String get copyAction => 'Copy';

  @override
  String get closeAction => 'Close';

  @override
  String get startAudioAction => 'Start audio';

  @override
  String get pttHoldToTalk => 'Hold to talk';

  @override
  String get pttTransmitting => 'Transmitting…';

  @override
  String get pttHoldToTalkSemanticsHint =>
      'Press and hold to transmit voice; release to stop.';

  @override
  String pttCapabilityBadge(String level, String backend) {
    return 'PTT: $level ($backend)';
  }

  @override
  String pttCapabilityBoundKey(String key) {
    return 'Key: $key';
  }

  @override
  String get pttCapabilityExplainTitle => 'Push-to-Talk capability';

  @override
  String get pttCapabilityExplainFocusedHeading => 'Focused PTT';

  @override
  String get pttCapabilityExplainFocusedBody =>
      'Chanora is currently using Focused Push-to-Talk: the binding only fires while the Chanora window is focused. This is the universal fallback used on every platform when a global capture path is not available.';

  @override
  String get pttCapabilityExplainGoGlobalWindows =>
      'On Windows, Global PTT is engaged automatically once you bind a key. No additional permission is required.';

  @override
  String get pttCapabilityExplainGoGlobalMacos =>
      'On macOS, Global PTT requires Input Monitoring permission. Open System Settings → Privacy & Security → Input Monitoring, allow Chanora, then re-bind the key.';

  @override
  String get pttCapabilityExplainGoGlobalLinux =>
      'On Linux, Global PTT requires a GNOME-Wayland desktop with the GlobalShortcuts portal. Re-bind the key and accept the desktop\'s shortcut dialog when it appears.';

  @override
  String get pttCapabilityExplainGoGlobalGeneric =>
      'Global PTT is not available in this environment. Focused PTT will keep working while the Chanora window has focus.';

  @override
  String get pttConfigureAction => 'Configure';

  @override
  String get pttConfigureTitle => 'Configure Push-to-Talk binding';

  @override
  String get pttConfigurePrompt =>
      'Press the key or mouse side button you want to use for Push-to-Talk.';

  @override
  String get pttConfigureWaiting => '(waiting for input…)';

  @override
  String get pttConfigureCaptured => 'Captured';

  @override
  String get pttConfigurePrivacyNote =>
      'Chanora never logs the actual key value. Only the input class (keyboard / mouse-side-button) and a platform-neutral label leave this dialog.';

  @override
  String get pttConfigureSaveAction => 'Save';

  @override
  String get pttConfigurePortalRedirect =>
      'Your desktop environment will open its own shortcut dialog. Pick the key you want to use for Push-to-Talk.';

  @override
  String get inputMuteAction => 'Mute mic';

  @override
  String get inputUnmuteAction => 'Unmute mic';

  @override
  String get outputMuteAction => 'Mute speaker';

  @override
  String get outputUnmuteAction => 'Unmute speaker';

  @override
  String get joinChannelAction => 'Join channel';

  @override
  String get channelPasswordTitle => 'Channel password';

  @override
  String get bookmarksHeading => 'Bookmarks';

  @override
  String get bookmarksEmpty =>
      'No bookmarks yet. Enter a server above and tap \"Save bookmark\".';

  @override
  String get bookmarkAddAction => 'Save bookmark';

  @override
  String get bookmarkAddTitle => 'Save bookmark';

  @override
  String get bookmarkDeleteAction => 'Delete bookmark';

  @override
  String get statusIdle => 'Not connected';

  @override
  String get statusConnecting => 'Connecting…';

  @override
  String statusConnected(String server) {
    return 'Connected to $server';
  }

  @override
  String statusError(String message) {
    return 'Error: $message';
  }

  @override
  String statusReconnecting(int attempt, int delay) {
    return 'Reconnecting… attempt $attempt, in ${delay}s';
  }

  @override
  String statusConnectionLost(String reason) {
    return 'Connection lost: $reason';
  }

  @override
  String audioStatsLine(int sent, int received, String ptt) {
    return 'TX $sent frames • RX $received frames • PTT $ptt';
  }

  @override
  String get channelsHeading => 'Channels';

  @override
  String get clientsHeading => 'Online clients';

  @override
  String countChannelsAndClients(int channels, int clients) {
    return '$channels channels • $clients online';
  }
}
