mirror of
https://github.com/kavishdevar/librepods.git
synced 2026-01-29 14:20:48 +00:00
Compare commits
12 Commits
windows/he
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
339c478564 | ||
|
|
c9dd79bb82 | ||
|
|
5cd7db574a | ||
|
|
e10fe21ba5 | ||
|
|
b4deccff7e | ||
|
|
dcbbb2ce98 | ||
|
|
e5836c9869 | ||
|
|
287163e116 | ||
|
|
a75557d6dc | ||
|
|
0e1f784737 | ||
|
|
f3b1db2513 | ||
|
|
b5f0c32751 |
25
README.md
25
README.md
@@ -1,4 +1,7 @@
|
||||

|
||||
>[!IMPORTANT]
|
||||
Development paused due to lack of time until 17th May 2026 (JEE Advanced). PRs and issues might not be responded to until then.
|
||||
|
||||

|
||||
|
||||
## What is LibrePods?
|
||||
|
||||
@@ -36,7 +39,7 @@ Most features should work with any AirPods. Currently, I've only got AirPods Pro
|
||||
## Platform Support
|
||||
|
||||
### Linux
|
||||
for the old version see the [Linux README](/linux/README.md). (doesn't have many features, maintainer didn't have time to work on it)
|
||||
for the old version see the [Linux README](./linux/README.md). (doesn't have many features, maintainer didn't have time to work on it)
|
||||
|
||||
new version in development ([#241](https://github.com/kavishdevar/librepods/pull/241))
|
||||
|
||||
@@ -46,13 +49,13 @@ new version in development ([#241](https://github.com/kavishdevar/librepods/pull
|
||||
|
||||
#### Screenshots
|
||||
|
||||
| | | |
|
||||
| -------------------------------------------------------------------------------------- | ------------------------------------------------- | --------------------------------------------------------------------------- |
|
||||
|  |  |  |
|
||||
|  |  |  |
|
||||
|  |  |  |
|
||||
|  |  |  |
|
||||
|  |  |  |
|
||||
| | | |
|
||||
| --------------------------------------------------------------------------------------- | -------------------------------------------------- | ---------------------------------------------------------------------------- |
|
||||
|  |  |  |
|
||||
|  |  |  |
|
||||
|  |  |  |
|
||||
|  |  |  |
|
||||
|  |  |  |
|
||||
|
||||
|
||||
here's a very unprofessional demo video
|
||||
@@ -64,7 +67,7 @@ https://github.com/user-attachments/assets/43911243-0576-4093-8c55-89c1db5ea533
|
||||
If you are using ColorOS/OxygenOS 16, you don't need root except for customizing transparency mode, setting up hearing aid, and use Bluetooth Multipoint. Changing ANC, conversational awareness, ear detection, and other customizations will work without root. For everyone else:
|
||||
|
||||
> [!CAUTION]
|
||||
> **You must have a rooted device with Xposed to use LibrePods on Android.** This is due to a [bug in the Android Bluetooth stack](https://issuetracker.google.com/issues/371713238). Please upvote the issue by clicking the '+1' icon on the IssueTracker page. I don't know a fix for Android versions <13 either. So, this needs a phone running A13+.
|
||||
> **You must have a rooted device with Xposed to use LibrePods on Android.** This is due to a [bug in the Android Bluetooth stack](https://issuetracker.google.com/issues/371713238). Please upvote the issue by clicking the '+1' icon on the IssueTracker page. DO NOT leave a +1 comment - use the +1 button in the top right of the page next to the "Hotlists" field. Leaving +1 comment spam makes it impossible for developers to engage in the necessary technical discussion to implement this fix, and will disincentivize the responsible Google developers from engaging. I don't know a fix for Android versions <13 either. So, this needs a phone running A13+.
|
||||
>
|
||||
> There are **no exceptions** to the root requirement until Google/your OEM figures out a fix.
|
||||
|
||||
@@ -111,7 +114,7 @@ A huge thank you to everyone supporting the project!
|
||||
- @rithvikvibhu and folks over at lagrangepoint for helping with the hearing aid feature ([gist](https://gist.github.com/rithvikvibhu/45e24bbe5ade30125f152383daf07016))
|
||||
- @devnoname120 for helping with the first root patch
|
||||
- @timgromeyer for making the first version of the linux app
|
||||
- @hackclub for hosting [High Seas](https://highseas.hackclub.com) and [Low Skies](low-skies.hackclub.com)!
|
||||
- @hackclub for hosting [High Seas](https://highseas.hackclub.com) and [Low Skies](https://low-skies.hackclub.com)!
|
||||
|
||||
## Star History
|
||||
|
||||
|
||||
@@ -10,8 +10,6 @@
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"
|
||||
tools:ignore="ForegroundServicesPolicy" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE" />
|
||||
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS"
|
||||
tools:ignore="ProtectedPermissions" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||
|
||||
217
android/app/src/main/res/values-fr/strings.xml
Normal file
217
android/app/src/main/res/values-fr/strings.xml
Normal file
@@ -0,0 +1,217 @@
|
||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||
<string name="app_name" translatable="false">LibrePods</string>
|
||||
<string name="app_description">Libérez vos AirPods de l\'écosystème Apple.</string>
|
||||
<string name="app_widget_description">Voyez l\'état de la batterie de vos AirPods directement depuis votre écran d\'accueil !</string>
|
||||
<string name="accessibility">Accessibilité</string>
|
||||
<string name="tone_volume">Volume de la tonalité</string>
|
||||
<string name="tone_volume_description">Ajustez le volume des effets sonores émis sur les AirPods.</string>
|
||||
<string name="audio">Audio</string>
|
||||
<string name="adaptive_audio">Audio Adaptatif</string>
|
||||
<string name="customize_adaptive_audio">Personnaliser l\'Audio Adaptatif</string>
|
||||
<string name="adaptive_audio_description">L\'audio Adaptatif répond dynamiquement à votre environnement et annule ou laisse entrer le bruit extérieur. Vous pouvez personnaliser l\'Audio Adaptatif pour laisser entrer plus ou moins de bruit.</string>
|
||||
<string name="buds">Écouteurs</string>
|
||||
<string name="case_alt">Boîtier</string>
|
||||
<string name="test">Test</string>
|
||||
<string name="name">Nom</string>
|
||||
<string name="noise_control">Mode d\'écoute</string>
|
||||
<string name="off">Désactivé</string>
|
||||
<string name="transparency">Transparence</string>
|
||||
<string name="adaptive">Adaptatif</string>
|
||||
<string name="noise_cancellation">Réduction de bruit</string>
|
||||
<string name="press_and_hold_airpods">Appuyer et maintenir les AirPods</string>
|
||||
<string name="press_and_hold_noise_control_description">Maintenez la tige pour passer entre les modes d\'écoute sélectionnés.</string>
|
||||
<string name="head_gestures">Gestes de la tête</string>
|
||||
<string name="left">Gauche</string>
|
||||
<string name="right">Droite</string>
|
||||
<string name="conversational_awareness">Détection des conversations</string>
|
||||
<string name="conversational_awareness_description">Baisse le volume des médias et réduit le bruit de fond lorsque vous commencez à parler à quelqu\'un.</string>
|
||||
<string name="personalized_volume">Volume personnalisé</string>
|
||||
<string name="personalized_volume_description">Ajuste le volume des médias en réponse à votre environnement.</string>
|
||||
<string name="noise_cancellation_single_airpod">Réduction du bruit avec un écouteur</string>
|
||||
<string name="noise_cancellation_single_airpod_description">Permet d\'activer la réduction de bruit même avec un seul AirPod à l\'oreille.</string>
|
||||
<string name="volume_control">Contrôle du volume</string>
|
||||
<string name="volume_control_description">Ajustez le volume en balayant vers le haut ou vers le bas sur le capteur situé sur la tige des AirPods Pro.</string>
|
||||
<string name="airpods_not_connected">AirPods non connectés</string>
|
||||
<string name="airpods_not_connected_description">Veuillez connecter vos AirPods pour accéder aux réglages.</string>
|
||||
<string name="back">Retour</string>
|
||||
<string name="app_settings">Personnalisations</string>
|
||||
<string name="relative_conversational_awareness_volume">Volume relatif</string>
|
||||
<string name="relative_conversational_awareness_volume_description">Réduit à un pourcentage du volume actuel plutôt qu\'au volume maximum.</string>
|
||||
<string name="conversational_awareness_pause_music">Mettre la musique en pause</string>
|
||||
<string name="conversational_awareness_pause_music_description">Quand vous commencez à parler, la musique sera mise en pause.</string>
|
||||
<string name="appwidget_text">EXEMPLE</string>
|
||||
<string name="add_widget">Ajouter le widget</string>
|
||||
<string name="noise_control_widget_description">Contrôlez le mode de réduction de bruit directement depuis votre écran d\'accueil.</string>
|
||||
<string name="island_connected_text">Connecté</string>
|
||||
<string name="island_connected_remote_text">Connecté à Linux</string>
|
||||
<string name="island_taking_over_text">Connecté</string>
|
||||
<string name="island_moved_to_remote_text">Déplacé vers Linux</string>
|
||||
<string name="island_moved_to_other_device_text">Déplacé vers %1$s</string>
|
||||
<string name="island_moved_to_other_device_reversed_text">Reconnecté depuis la notification</string>
|
||||
<string name="head_tracking">Suivi de la tête</string>
|
||||
<string name="head_gestures_details">Hochez la tête pour répondre aux appels, secouez-la pour refuser.</string>
|
||||
<string name="general_settings_header">Général</string>
|
||||
<string name="qs_click_behavior_title">Action de la tuile dans les réglages rapides</string>
|
||||
<string name="qs_click_behavior_dialog_desc">Afficher le dialogue de contrôle du bruit au toucher.</string>
|
||||
<string name="qs_click_behavior_cycle_desc">Faire défiler les modes au toucher.</string>
|
||||
<string name="developer_options_header">Développeur</string>
|
||||
<string name="more_settings_title">Ouvrir les réglages des AirPods</string>
|
||||
<string name="more_settings_subtitle">Gérer les fonctionnalités et préférences des AirPods</string>
|
||||
<string name="ear_detection">Détection automatique des oreilles</string>
|
||||
<string name="auto_play">Lecture Automatique</string>
|
||||
<string name="auto_pause">Pause Automatique</string>
|
||||
<string name="troubleshooting">Dépannage</string>
|
||||
<string name="troubleshooting_description">Collecter des journaux pour diagnostiquer les problèmes de connexion des AirPods</string>
|
||||
<string name="collect_logs">Collecter les journaux</string>
|
||||
<string name="saved_logs">Journaux enregistrés</string>
|
||||
<string name="no_logs_found">Aucun journal sauvegardé trouvé</string>
|
||||
<string name="takeover_header">Préférences d\'auto-connexion</string>
|
||||
<string name="takeover_airpods_state">Se connecter aux AirPods lorsque leur état est :</string>
|
||||
<string name="takeover_disconnected">Déconnectés</string>
|
||||
<string name="takeover_disconnected_desc">Les AirPods ne sont connectés à aucun appareil</string>
|
||||
<string name="takeover_idle">Inactifs</string>
|
||||
<string name="takeover_idle_desc">Un appareil est connecté à vos AirPods, mais ne lit pas de média et n\'est pas en appel</string>
|
||||
<string name="takeover_music">Lecture de média</string>
|
||||
<string name="takeover_music_desc">Un appareil lit du média via les AirPods</string>
|
||||
<string name="takeover_call">En appel</string>
|
||||
<string name="takeover_call_desc">Un appareil est en appel via les AirPods</string>
|
||||
<string name="takeover_phone_state">Se connecter aux AirPods lorsque votre téléphone :</string>
|
||||
<string name="takeover_ringing_call">Reçoit un appel</string>
|
||||
<string name="takeover_ringing_call_desc">Votre téléphone commence à sonner</string>
|
||||
<string name="takeover_media_start">Démarre la lecture média</string>
|
||||
<string name="takeover_media_start_desc">Votre téléphone commence à lire un média</string>
|
||||
<string name="undo">Annuler</string>
|
||||
<string name="customize_transparency_mode_description">Vous pouvez personnaliser le mode Transparence de vos AirPods Pro pour vous aider à entendre ce qui vous entoure.</string>
|
||||
<string name="loud_sound_reduction_description">La réduction des sons forts peut réduire activement votre exposition aux bruits ambiants forts en mode Transparence et Adaptatif. La réduction des sons forts n\'est pas active en mode Désactivé.</string>
|
||||
<string name="loud_sound_reduction">Réduction des sons forts</string>
|
||||
<string name="call_controls">Contrôle des appels</string>
|
||||
<string name="automatically_connect">Se connecter automatiquement à cet appareil</string>
|
||||
<string name="automatically_connect_description">Quand ce mode est activé, les AirPods essaieront de se connecter automatiquement à cet appareil. Sinon, ils essaieront uniquement de se connecter automatiquement au dernier appareil connecté.</string>
|
||||
<string name="sleep_detection">Mettre en pause l\'écoute au moment de s\'endormir</string>
|
||||
<string name="off_listening_mode">Mode d\'écoute Désactivé</string>
|
||||
<string name="off_listening_mode_description">Quand ce paramètre est activé, les modes d\'écoute incluront une option Désactivé. Les sons forts ne sont pas réduits en mode Désactivé.</string>
|
||||
<string name="microphone">Microphone</string>
|
||||
<string name="microphone_mode">Mode du microphone</string>
|
||||
<string name="microphone_automatic">Automatique</string>
|
||||
<string name="microphone_always_right">Toujours à droite</string>
|
||||
<string name="microphone_always_left">Toujours à gauche</string>
|
||||
<string name="answer_call">Répondre aux appels</string>
|
||||
<string name="mute_unmute">Muet / Activer le son</string>
|
||||
<string name="hang_up">Raccrocher</string>
|
||||
<string name="press_once">Appuyer une fois</string>
|
||||
<string name="press_twice">Appuyer deux fois</string>
|
||||
<string name="hearing_aid">Aide auditive</string>
|
||||
<string name="adjustments">Ajustements</string>
|
||||
<string name="swipe_to_control_amplification">Balayer pour contrôler l\'amplification</string>
|
||||
<string name="swipe_amplification_description">En mode Transparence et sans lecture média, balayez sur les commandes tactiles des AirPods Pro pour augmenter ou diminuer l\'amplification des sons environnants.</string>
|
||||
<string name="transparency_mode">Mode Transparence</string>
|
||||
<string name="customize_transparency_mode">Personnaliser le mode Transparence</string>
|
||||
<string name="press_speed">Vitesse d\'appui</string>
|
||||
<string name="press_speed_description">Ajustez la vitesse requise pour appuyer deux ou trois fois sur vos AirPods.</string>
|
||||
<string name="press_and_hold_duration">Durée d\'appui et de maintien</string>
|
||||
<string name="press_and_hold_duration_description">Ajustez la durée requise pour maintenir la pression sur vos AirPods.</string>
|
||||
<string name="volume_swipe_speed">Vitesse du balayage du volume</string>
|
||||
<string name="volume_swipe_speed_description">Pour éviter les changements de volume involontaires, sélectionnez le délai préféré entre les balayages.</string>
|
||||
<string name="equalizer">Égaliseur</string>
|
||||
<string name="apply_eq_to">Appliquer l\'EQ à</string>
|
||||
<string name="phone">Téléphone</string>
|
||||
<string name="media">Média</string>
|
||||
<string name="band_label">Bande %d</string>
|
||||
<string name="default_option">Par défaut</string>
|
||||
<string name="slower">Plus lent</string>
|
||||
<string name="slowest">Très lent</string>
|
||||
<string name="longer">Plus long</string>
|
||||
<string name="longest">Très long</string>
|
||||
<string name="darker">Plus sombre</string>
|
||||
<string name="brighter">Plus clair</string>
|
||||
<string name="less">Moins</string>
|
||||
<string name="more">Plus</string>
|
||||
<string name="amplification">Amplification</string>
|
||||
<string name="balance">Balance</string>
|
||||
<string name="tone">Tonalité</string>
|
||||
<string name="ambient_noise_reduction">Réduction des bruits ambiants</string>
|
||||
<string name="conversation_boost">Amplificateur de conversation</string>
|
||||
<string name="conversation_boost_description">L\'Amplificateur de conversation concentre les AirPods Pro sur la personne en face de vous, facilitant les conversations en face-à-face.</string>
|
||||
<string name="hearing_aid_description">Les AirPods peuvent utiliser les résultats d\'un test auditif pour améliorer la clarté des voix et des sons autour de vous.\n\nL\'aide auditive est destinée aux personnes ayant une perte auditive légère à modérée.</string>
|
||||
<string name="media_assist">Aide multimédia</string>
|
||||
<string name="media_assist_description">Les AirPods Pro peuvent utiliser les résultats d\'un test auditif pour améliorer la clarté de la musique, des vidéos et des appels.</string>
|
||||
<string name="adjust_media">Ajuster la musique et les vidéos</string>
|
||||
<string name="adjust_calls">Ajuster les appels</string>
|
||||
<string name="widget">Widget</string>
|
||||
<string name="show_phone_battery_in_widget">Afficher la batterie du téléphone dans le widget</string>
|
||||
<string name="show_phone_battery_in_widget_description">Affiche le niveau de batterie du téléphone dans le widget avec celle des AirPods</string>
|
||||
<string name="conversational_awareness_volume">Volume de détection des conversations</string>
|
||||
<string name="quick_settings_tile">Tuile des réglages rapides</string>
|
||||
<string name="open_dialog_for_controlling">Ouvrir le dialogue de contrôle</string>
|
||||
<string name="open_dialog_for_controlling_description">Si désactivé, appuyer sur la tuile fera défiler les modes. Si activé, un dialogue apparaîtra pour contrôler le mode d\'écoute et la détection de conversation.</string>
|
||||
<string name="disconnect_when_not_wearing">Déconnecter les AirPods quand ils ne sont pas portés</string>
|
||||
<string name="disconnect_when_not_wearing_description">Vous pourrez toujours les contrôler depuis l\'app — cela déconnecte juste l\'audio.</string>
|
||||
<string name="advanced_options">Options avancées</string>
|
||||
<string name="set_identity_resolving_key">Définir la clé d\'identité et de résolution (IRK)</string>
|
||||
<string name="set_identity_resolving_key_description">Définir manuellement la clé IRK utilisée pour la résolution des adresses BLE aléatoires</string>
|
||||
<string name="set_encryption_key">Définir la clé de chiffrement</string>
|
||||
<string name="set_encryption_key_description">Définir manuellement la clé ENC_KEY utilisée pour déchiffrer les publicités BLE</string>
|
||||
<string name="use_alternate_head_tracking_packets">Utiliser des paquets alternatifs pour le suivi de la tête</string>
|
||||
<string name="use_alternate_head_tracking_packets_description">Activez ceci si le suivi de tête ne fonctionne pas. Cela envoie un autre type de données aux AirPods pour demander/arrêter le suivi de la tête.</string>
|
||||
<string name="act_as_an_apple_device">Se comporter comme un appareil Apple</string>
|
||||
<string name="act_as_an_apple_device_description">Active la connectivité multi-appareils et les fonctionnalités d\'accessibilité comme la personnalisation du mode transparence (amplification, tonalité, réduction de bruit ambiant, amplificateur de conversations, EQ)</string>
|
||||
<string name="act_as_an_apple_device_warning">Peut être instable !! Un maximum de deux appareils peut être connecté à vos AirPods. Si vous utilisez un appareil Apple comme un iPad ou un Mac, connectez-le d\'abord, puis connectez votre Android.</string>
|
||||
<string name="reset_hook_offset">Réinitialiser l\'offset du hook</string>
|
||||
<string name="reset_hook_offset_description">Cela effacera l\'offset actuel et nécessitera de refaire la configuration. Voulez-vous vraiment continuer ?</string>
|
||||
<string name="reset">Réinitialiser</string>
|
||||
<string name="hook_offset_reset_success">Hook offset réinitialisé. Redirection vers la configuration…</string>
|
||||
<string name="hook_offset_reset_failure">Impossible de réinitialiser l\'hook offset</string>
|
||||
<string name="irk_set_success">Clé IRK définie avec succès</string>
|
||||
<string name="encryption_key_set_success">Clé de chiffrement définie avec succès</string>
|
||||
<string name="irk_hex_value">Valeur hex IRK</string>
|
||||
<string name="enc_key_hex_value">Valeur hex ENC_KEY</string>
|
||||
<string name="enter_irk_hex">Entrez l\'IRK de 16 octets en string hexadécimal (32 caractères) :</string>
|
||||
<string name="enter_enc_key_hex">Entrez l\'ENC_KEY de 16 octets en string hexadécimal (32 caractères) :</string>
|
||||
<string name="must_be_32_hex_chars">Doit contenir exactement 32 caractères hexadécimaux</string>
|
||||
<string name="error_converting_hex">Erreur lors de la conversion hexadécimale :</string>
|
||||
<string name="found_offset_restart_bluetooth">Offset trouvé. Veuillez redémarrer le processus Bluetooth.</string>
|
||||
<string name="digital_assistant">Assistant numérique</string>
|
||||
<string name="on">Activé</string>
|
||||
<string name="camera_remote">Télécommande de l\'appareil photo</string>
|
||||
<string name="camera_control">Contrôle de la caméra</string>
|
||||
<string name="camera_control_description">Prenez une photo, lancez/arrêtez un enregistrement, etc., avec un appui simple ou un appui long. Si vous utilisez un appui simple, les gestes de contrôle multimédia seront indisponibles ; si vous utilisez un appui long, les gestes de mode d\'écoute et d\'assistant numérique seront indisponibles.</string>
|
||||
<string name="camera_control_app_description">Définir un paquet d\'application de caméra personnalisé</string>
|
||||
<string name="set_custom_camera_package">Définir un appid de caméra personnalisé</string>
|
||||
<string name="enter_custom_camera_package">Entrez l\'identifiant de l\'application caméra :</string>
|
||||
<string name="custom_camera_package">Appid caméra personnalisé</string>
|
||||
<string name="custom_camera_package_set_success">Appid caméra personnalisé défini avec succès</string>
|
||||
<string name="app_listener_service_label">Service d\'écoute de la caméra</string>
|
||||
<string name="app_listener_service_description">Service d\'écoute pour que LibrePods détecte quand la caméra est active afin d\'activer le contrôle caméra via les AirPods.</string>
|
||||
<string name="open_source_licenses">Licences open source</string>
|
||||
<string name="hearing_test">Mettre à jour le test d\'audition</string>
|
||||
<string name="update_hearing_test">Mettre à jour les résultats du test d\'audition</string>
|
||||
<string name="att_manager_is_null_try_reconnecting">ATT Manager est null, essayez de reconnecter.</string>
|
||||
<string name="permissions_required">Les permissions suivantes sont requises pour utiliser l\'application. Veuillez les accorder pour continuer.</string>
|
||||
<string name="shake_your_head_or_nod">Secouez la tête ou hochez-la !</string>
|
||||
<string name="root_access_required">Accès root requis</string>
|
||||
<string name="this_app_needs_root_access_to_hook_onto_the_bluetooth_library">Cette application nécessite l\'accès root pour s\'injecter dans la bibliothèque Bluetooth.</string>
|
||||
<string name="root_access_denied">Accès root refusé. Veuillez accorder les permissions root.</string>
|
||||
<string name="troubleshooting_steps">Étapes de dépannage</string>
|
||||
<string name="hearing_test_value_instruction">Veuillez entrer les valeurs de perte en dBHL</string>
|
||||
<string name="about">À propos</string>
|
||||
<string name="model_name">Nom du modèle</string>
|
||||
<string name="model_number">Numéro du modèle</string>
|
||||
<string name="serial_number">Numéro de série</string>
|
||||
<string name="version">Version</string>
|
||||
<string name="hearing_health">Santé auditive</string>
|
||||
<string name="hearing_protection">Protection auditive</string>
|
||||
<string name="workspace_use">Usage en environnement de travail</string>
|
||||
<string name="ppe">Protection EN 352</string>
|
||||
<string name="workspace_use_description">La protection EN 352 limite le niveau sonore maximal à 82 dBA et répond aux exigences applicables de la norme EN 352 pour la protection auditive personnelle.</string>
|
||||
<string name="environmental_noise">Bruit environnemental</string>
|
||||
<string name="reconnect_to_last_device">Reconnecter au dernier appareil</string>
|
||||
<string name="disconnect">Déconnecter</string>
|
||||
<string name="support_me">Soutenez-moi</string>
|
||||
<string name="never_show_again">Ne plus afficher</string>
|
||||
<string name="support_dialog_description">J\'ai récemment perdu mon AirPod gauche. Si LibrePods vous est utile, pensez à me soutenir sur GitHub Sponsors pour m\'aider à en racheter un et continuer ce projet — même un petit montant aide beaucoup. Merci pour votre soutien !</string>
|
||||
<string name="support_librepods">Soutenir LibrePods</string>
|
||||
<string name="listening_mode_off_description">Désactiver la gestion du bruit</string>
|
||||
<string name="listening_mode_transparency_description">Laisser entrer les sons extérieurs</string>
|
||||
<string name="listening_mode_adaptive_description">Ajuster dynamiquement les sons extérieurs</string>
|
||||
<string name="listening_mode_noise_cancellation_description">Bloquer les sons extérieurs</string>
|
||||
</resources>
|
||||
@@ -194,6 +194,11 @@
|
||||
<string name="root_access_denied">Root 权限被拒绝。请授予 Root 权限。</string>
|
||||
<string name="troubleshooting_steps">故障排除步骤</string>
|
||||
<string name="hearing_test_value_instruction">请输入 dbHL 中的损失值</string>
|
||||
<string name="about">关于</string>
|
||||
<string name="model_name">型号名称</string>
|
||||
<string name="model_number">型号编号</string>
|
||||
<string name="serial_number">序列号</string>
|
||||
<string name="version">版本</string>
|
||||
<string name="hearing_health">听力健康</string>
|
||||
<string name="hearing_protection">听力保护</string>
|
||||
<string name="workspace_use">工作区使用</string>
|
||||
@@ -202,6 +207,12 @@
|
||||
<string name="environmental_noise">环境噪音</string>
|
||||
<string name="reconnect_to_last_device">重新连接到上次连接的设备</string>
|
||||
<string name="disconnect">断开连接</string>
|
||||
<string name="support_me">支持我</string>
|
||||
<string name="never_show_again">不再显示</string>
|
||||
<string name="support_dialog_description">我最近丢了我的左耳 AirPod。如果你觉得 LibrePods 有用,请考虑在 GitHub Sponsors 上支持我,这样我就可以购买一个替换品并继续从事这个项目——即使是少量捐助也能发挥很大作用。感谢你的支持!</string>
|
||||
<string name="support_librepods">支持 LibrePods</string>
|
||||
<string name="listening_mode_off_description">关闭噪音管理</string>
|
||||
<string name="listening_mode_transparency_description">允许外部声音进入</string>
|
||||
<string name="listening_mode_adaptive_description">动态调整外部噪音</string>
|
||||
<string name="listening_mode_noise_cancellation_description">阻隔外部声音</string>
|
||||
</resources>
|
||||
219
android/app/src/main/res/values-zh-rTW/strings.xml
Normal file
219
android/app/src/main/res/values-zh-rTW/strings.xml
Normal file
@@ -0,0 +1,219 @@
|
||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||
<string name="app_name" translatable="false">LibrePods</string>
|
||||
<string name="app_description">讓你的 AirPods 擺脫 Apple 生態系統的束縛。</string>
|
||||
<string name="app_widget_description">直接從主畫面查看 AirPods 電池狀態!</string>
|
||||
<string name="accessibility">輔助使用</string>
|
||||
<string name="tone_volume">提示音音量</string>
|
||||
<string name="tone_volume_description">調整 AirPods 播放音效的提示音音量。</string>
|
||||
<string name="audio">音訊</string>
|
||||
<string name="adaptive_audio">自適應音訊</string>
|
||||
<string name="customize_adaptive_audio">自訂自適應音訊</string>
|
||||
<string name="adaptive_audio_description">自適應音訊會動態回應你的環境,並消除或允許外部噪音。你可以自訂自適應音訊以允許更多或更少的噪音。</string>
|
||||
<string name="buds">耳機</string>
|
||||
<string name="case_alt">充電盒</string>
|
||||
<string name="test">測試</string>
|
||||
<string name="name">名稱</string>
|
||||
<string name="noise_control">聽覺模式</string>
|
||||
<string name="off">關閉</string>
|
||||
<string name="transparency">通透模式</string>
|
||||
<string name="adaptive">自適應</string>
|
||||
<string name="noise_cancellation">降噪</string>
|
||||
<string name="press_and_hold_airpods">按住 AirPods</string>
|
||||
<string name="press_and_hold_noise_control_description">按住耳機柄即可在選定的聽覺模式之間循環切換。</string>
|
||||
<string name="head_gestures">頭部手勢</string>
|
||||
<string name="left">左耳</string>
|
||||
<string name="right">右耳</string>
|
||||
<string name="conversational_awareness">對話感知</string>
|
||||
<string name="conversational_awareness_description">當你開始與他人交談時,降低媒體音量並減少背景噪音。</string>
|
||||
<string name="personalized_volume">個人化音量</string>
|
||||
<string name="personalized_volume_description">根據你的環境調整媒體音量。</string>
|
||||
<string name="noise_cancellation_single_airpod">使用一只 AirPod 進行降噪</string>
|
||||
<string name="noise_cancellation_single_airpod_description">允許在僅配戴一只 AirPod 時進入降噪模式。</string>
|
||||
<string name="volume_control">音量控制</string>
|
||||
<string name="volume_control_description">透過在 AirPods Pro 耳機柄上的感測器向上或向下滑動來調整音量。</string>
|
||||
<string name="airpods_not_connected">未連接 AirPods</string>
|
||||
<string name="airpods_not_connected_description">請連接你的 AirPods 以存取設定。</string>
|
||||
<string name="back">返回</string>
|
||||
<string name="app_settings">自訂</string>
|
||||
<string name="relative_conversational_awareness_volume">相對音量</string>
|
||||
<string name="relative_conversational_awareness_volume_description">降低至當前音量的百分比,而不是最大音量。</string>
|
||||
<string name="conversational_awareness_pause_music">暫停音樂</string>
|
||||
<string name="conversational_awareness_pause_music_description">當你開始說話時,音樂將會暫停。</string>
|
||||
<string name="appwidget_text">範例</string>
|
||||
<string name="add_widget">新增小工具</string>
|
||||
<string name="noise_control_widget_description">直接從主畫面控制聽覺模式。</string>
|
||||
<string name="island_connected_text">已連線</string>
|
||||
<string name="island_connected_remote_text">已連線至 Linux</string>
|
||||
<string name="island_taking_over_text">已連線</string>
|
||||
<string name="island_moved_to_remote_text">已移至 Linux</string>
|
||||
<string name="island_moved_to_other_device_text">已移至 %1$s</string>
|
||||
<string name="island_moved_to_other_device_reversed_text">從通知重新連線</string>
|
||||
<string name="head_tracking">頭部追蹤</string>
|
||||
<string name="head_gestures_details">點頭接聽來電,搖頭拒接。</string>
|
||||
<string name="general_settings_header">一般</string>
|
||||
<string name="qs_click_behavior_title">快速設定方塊動作</string>
|
||||
<string name="qs_click_behavior_dialog_desc">輕觸時顯示聽覺模式對話方塊。</string>
|
||||
<string name="qs_click_behavior_cycle_desc">輕觸時循環切換模式。</string>
|
||||
<string name="developer_options_header">開發人員</string>
|
||||
<string name="more_settings_title">開啟 AirPods 設定</string>
|
||||
<string name="more_settings_subtitle">管理 AirPods 功能與偏好設定</string>
|
||||
<string name="ear_detection">自動耳朵偵測</string>
|
||||
<string name="auto_play">自動播放</string>
|
||||
<string name="auto_pause">自動暫停</string>
|
||||
<string name="troubleshooting">疑難排解</string>
|
||||
<string name="troubleshooting_description">收集記錄以診斷 AirPods 連線問題</string>
|
||||
<string name="collect_logs">收集記錄</string>
|
||||
<string name="saved_logs">已儲存的記錄</string>
|
||||
<string name="no_logs_found">找不到已儲存的記錄</string>
|
||||
<string name="takeover_header">自動連線偏好設定</string>
|
||||
<string name="takeover_airpods_state">當 AirPods 處於以下狀態時連線:</string>
|
||||
<string name="takeover_disconnected">已中斷連線</string>
|
||||
<string name="takeover_disconnected_desc">AirPods 未連接至任何裝置</string>
|
||||
<string name="takeover_idle">閒置</string>
|
||||
<string name="takeover_idle_desc">裝置已連接至你的 AirPods,但未播放媒體或通話中</string>
|
||||
<string name="takeover_music">正在播放媒體</string>
|
||||
<string name="takeover_music_desc">裝置正在你的 AirPods 上播放媒體</string>
|
||||
<string name="takeover_call">通話中</string>
|
||||
<string name="takeover_call_desc">裝置正在使用你的 AirPods 進行通話</string>
|
||||
<string name="takeover_phone_state">當你的手機處於以下狀態時連接至 AirPods:</string>
|
||||
<string name="takeover_ringing_call">接到來電</string>
|
||||
<string name="takeover_ringing_call_desc">你的手機開始響鈴</string>
|
||||
<string name="takeover_media_start">開始播放媒體</string>
|
||||
<string name="takeover_media_start_desc">你的手機開始播放媒體</string>
|
||||
<string name="undo">復原</string>
|
||||
<string name="customize_transparency_mode_description">你可以自訂 AirPods Pro 的通透模式,以協助你聽見周圍的聲音。</string>
|
||||
<string name="loud_sound_reduction_description">「降低高音量」可在通透模式和自適應模式下,主動減少你接觸到的環境高噪音。在「關閉」模式下,「降低高音量」不會作用。</string>
|
||||
<string name="loud_sound_reduction">降低高音量</string>
|
||||
<string name="call_controls">通話控制</string>
|
||||
<string name="automatically_connect">自動連接此裝置</string>
|
||||
<string name="automatically_connect_description">啟用後,AirPods 將嘗試自動連接至此裝置。否則,它們僅會在上次連接過此裝置時嘗試自動連接。</string>
|
||||
<string name="sleep_detection">入睡時暫停媒體</string>
|
||||
<string name="off_listening_mode">「關閉」聽覺模式</string>
|
||||
<string name="off_listening_mode_description">開啟此選項後,AirPods 聽覺模式將包含「關閉」選項。當聽覺模式設為「關閉」時,不會降低高音量。</string>
|
||||
<string name="microphone">麥克風</string>
|
||||
<string name="microphone_mode">麥克風模式</string>
|
||||
<string name="microphone_automatic">自動</string>
|
||||
<string name="microphone_always_right">總是右耳</string>
|
||||
<string name="microphone_always_left">總是左耳</string>
|
||||
<string name="answer_call">接聽來電</string>
|
||||
<string name="mute_unmute">靜音/取消靜音</string>
|
||||
<string name="hang_up">掛斷</string>
|
||||
<string name="press_once">按一下</string>
|
||||
<string name="press_twice">按兩下</string>
|
||||
<string name="hearing_aid">助聽器</string>
|
||||
<string name="adjustments">調整</string>
|
||||
<string name="swipe_to_control_amplification">滑動以控制增強</string>
|
||||
<string name="swipe_amplification_description">在通透模式且未播放媒體時,在 AirPods Pro 的觸控控制上向上或向下滑動,可增加或減少環境聲音的增強效果。</string>
|
||||
<string name="transparency_mode">通透模式</string>
|
||||
<string name="customize_transparency_mode">自訂通透模式</string>
|
||||
<string name="press_speed">按壓速度</string>
|
||||
<string name="press_speed_description">調整在 AirPods 上按兩下或三下所需的速度。</string>
|
||||
<string name="press_and_hold_duration">按住持續時間</string>
|
||||
<string name="press_and_hold_duration_description">調整在 AirPods 上按住所須的時間。</string>
|
||||
<string name="volume_swipe_speed">音量滑動速度</string>
|
||||
<string name="volume_swipe_speed_description">為防止意外調整音量,請選擇滑動之間的偏好等待時間。</string>
|
||||
<string name="equalizer">等化器</string>
|
||||
<string name="apply_eq_to">套用 EQ 至</string>
|
||||
<string name="phone">電話</string>
|
||||
<string name="media">媒體</string>
|
||||
<string name="band_label">頻段 %d</string>
|
||||
<string name="default_option">預設</string>
|
||||
<string name="slower">較慢</string>
|
||||
<string name="slowest">最慢</string>
|
||||
<string name="longer">較長</string>
|
||||
<string name="longest">最長</string>
|
||||
<string name="darker">較低沉</string>
|
||||
<string name="brighter">較清亮</string>
|
||||
<string name="less">較少</string>
|
||||
<string name="more">較多</string>
|
||||
<string name="amplification">增強</string>
|
||||
<string name="balance">平衡</string>
|
||||
<string name="tone">音色</string>
|
||||
<string name="ambient_noise_reduction">環境噪音抑制</string>
|
||||
<string name="conversation_boost">對話增強</string>
|
||||
<string name="conversation_boost_description">「對話增強」會將你的 AirPods Pro 聚焦於你面前說話的人,讓你在面對面交談時更容易聽清楚。</string>
|
||||
<string name="hearing_aid_description">AirPods 可以使用聽力測試的結果進行調整,以改善你周圍的語音和聲音清晰度。
|
||||
|
||||
助聽器功能僅適用於有輕度至中度聽力受損的人士。</string>
|
||||
<string name="media_assist">媒體輔助</string>
|
||||
<string name="media_assist_description">AirPods Pro 可以使用聽力測試的結果進行調整,以改善音樂、影片和通話的清晰度。</string>
|
||||
<string name="adjust_media">調整音樂與影片</string>
|
||||
<string name="adjust_calls">調整通話</string>
|
||||
<string name="widget">小工具</string>
|
||||
<string name="show_phone_battery_in_widget">在小工具中顯示手機電量</string>
|
||||
<string name="show_phone_battery_in_widget_description">在小工具中同時顯示手機電量與 AirPods 電量</string>
|
||||
<string name="conversational_awareness_volume">對話感知音量</string>
|
||||
<string name="quick_settings_tile">快速設定方塊</string>
|
||||
<string name="open_dialog_for_controlling">開啟控制對話方塊</string>
|
||||
<string name="open_dialog_for_controlling_description">若停用,點擊快速設定方塊將循環切換模式。若啟用,則會顯示用於控制聽覺模式和對話感知的對話方塊。</string>
|
||||
<string name="disconnect_when_not_wearing">未配戴時中斷 AirPods 連線</string>
|
||||
<string name="disconnect_when_not_wearing_description">你仍可使用應用程式控制它們,此選項僅會中斷音訊連線。</string>
|
||||
<string name="advanced_options">進階選項</string>
|
||||
<string name="set_identity_resolving_key">設定身分解析金鑰 (IRK)</string>
|
||||
<string name="set_identity_resolving_key_description">手動設定用於解析 BLE 隨機位址的 IRK 值</string>
|
||||
<string name="set_encryption_key">設定加密金鑰</string>
|
||||
<string name="set_encryption_key_description">手動設定用於解密 BLE 廣播的 ENC_KEY值</string>
|
||||
<string name="use_alternate_head_tracking_packets">使用替代頭部追蹤封包</string>
|
||||
<string name="use_alternate_head_tracking_packets_description">如果頭部追蹤對你無效,請啟用此選項。這會傳送不同的資料給 AirPods 以請求/停止頭部追蹤資料。</string>
|
||||
<string name="act_as_an_apple_device">作為 Apple 裝置</string>
|
||||
<string name="act_as_an_apple_device_description">啟用多裝置連線及輔助使用功能,例如自訂通透模式(增強、音色、環境噪音抑制、對話增強及 EQ)。</string>
|
||||
<string name="act_as_an_apple_device_warning">可能不穩定!!你的 AirPods 最多只能同時連接兩個裝置。如果你正與 iPad 或 Mac 等 Apple 裝置搭配使用,請先連接該裝置,然後再連接你的 Android。</string>
|
||||
<string name="reset_hook_offset">重設 Hook 偏移量</string>
|
||||
<string name="reset_hook_offset_description">這將清除目前的 Hook 偏移量,並需要你再次進行設定程序。確定要繼續嗎?</string>
|
||||
<string name="reset">重設</string>
|
||||
<string name="hook_offset_reset_success">Hook 偏移量已重設。正在重新導向至設定...</string>
|
||||
<string name="hook_offset_reset_failure">重設 Hook 偏移量失敗</string>
|
||||
<string name="irk_set_success">IRK 已設定成功</string>
|
||||
<string name="encryption_key_set_success">加密金鑰已設定成功</string>
|
||||
<string name="irk_hex_value">IRK 十六進位值</string>
|
||||
<string name="enc_key_hex_value">ENC_KEY 十六進位值</string>
|
||||
<string name="enter_irk_hex">輸入 16 位元組 IRK 為十六進位字串(32 個字元):</string>
|
||||
<string name="enter_enc_key_hex">輸入 16 位元組 ENC_KEY 為十六進位字串(32 個字元):</string>
|
||||
<string name="must_be_32_hex_chars">必須剛好是 32 個十六進位字元</string>
|
||||
<string name="error_converting_hex">轉換十六進位時發生錯誤:</string>
|
||||
<string name="found_offset_restart_bluetooth">找到偏移量,請重新啟動藍牙程序</string>
|
||||
<string name="digital_assistant">語音助理</string>
|
||||
<string name="on">開啟</string>
|
||||
<string name="camera_remote">相機遙控</string>
|
||||
<string name="camera_control">相機控制</string>
|
||||
<string name="camera_control_description">使用「按一下」或「按住」來拍攝相片、開始或停止錄影等。當使用 AirPods 進行相機動作時,若選擇「按一下」,媒體控制手勢將無法使用;若選擇「按住」,聽覺模式和語音助理手勢將無法使用。</string>
|
||||
<string name="camera_control_app_description">設定用於相機偵測的自訂應用程式套件</string>
|
||||
<string name="set_custom_camera_package">設定自訂相機應用程式 ID</string>
|
||||
<string name="enter_custom_camera_package">輸入相機應用程式的應用程式 ID:</string>
|
||||
<string name="custom_camera_package">自訂相機應用程式 ID</string>
|
||||
<string name="custom_camera_package_set_success">自訂相機應用程式 ID 設定成功</string>
|
||||
<string name="app_listener_service_label">相機監聽器</string>
|
||||
<string name="app_listener_service_description">LibrePods 的監聽器服務,用於偵測相機何時啟用,以啟動 AirPods 上的相機控制。</string>
|
||||
<string name="open_source_licenses">開放原始碼授權</string>
|
||||
<string name="hearing_test">更新聽力測試</string>
|
||||
<string name="update_hearing_test">更新聽力測試結果</string>
|
||||
<string name="att_manager_is_null_try_reconnecting">ATT Manager 為空值,請嘗試重新連線。</string>
|
||||
<string name="permissions_required">需要以下權限才能使用此應用程式。請授權以繼續。</string>
|
||||
<string name="shake_your_head_or_nod">搖頭或點頭!</string>
|
||||
<string name="root_access_required">需要 Root 權限</string>
|
||||
<string name="this_app_needs_root_access_to_hook_onto_the_bluetooth_library">此應用程式需要 Root 權限才能 Hook 藍牙程式庫</string>
|
||||
<string name="root_access_denied">Root 權限被拒絕。請授權 Root 權限。</string>
|
||||
<string name="troubleshooting_steps">疑難排解步驟</string>
|
||||
<string name="hearing_test_value_instruction">請輸入 dbHL 中的損失值</string>
|
||||
<string name="about">關於</string>
|
||||
<string name="model_name">型號名稱</string>
|
||||
<string name="model_number">型號號碼</string>
|
||||
<string name="serial_number">序號</string>
|
||||
<string name="version">版本</string>
|
||||
<string name="hearing_health">聽力健康</string>
|
||||
<string name="hearing_protection">聽力保護</string>
|
||||
<string name="workspace_use">工作場所使用</string>
|
||||
<string name="ppe">EN 352 防護</string>
|
||||
<string name="workspace_use_description">EN 352 防護將媒體的最大音量限制為 82 dBA,並符合個人聽力保護的適用 EN 352 標準要求。</string>
|
||||
<string name="environmental_noise">環境噪音</string>
|
||||
<string name="reconnect_to_last_device">重新連接至上次連接的裝置</string>
|
||||
<string name="disconnect">中斷連線</string>
|
||||
<string name="support_me">贊助我</string>
|
||||
<string name="never_show_again">不再顯示</string>
|
||||
<string name="support_dialog_description">我最近弄丟了左耳的 AirPod。如果你覺得 LibrePods 很好用,請考慮在 GitHub Sponsors 上贊助我,讓我能買個替換品並繼續開發這個專案,一點點金額也能帶來很大的幫助。感謝你的支持!</string>
|
||||
<string name="support_librepods">贊助 LibrePods</string>
|
||||
<string name="listening_mode_off_description">關閉噪音管理</string>
|
||||
<string name="listening_mode_transparency_description">允許外部聲音</string>
|
||||
<string name="listening_mode_adaptive_description">動態調整外部噪音</string>
|
||||
<string name="listening_mode_noise_cancellation_description">阻隔外部聲音</string>
|
||||
</resources>
|
||||
@@ -4,13 +4,18 @@ project(linux VERSION 0.1 LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
find_package(Qt6 REQUIRED COMPONENTS Quick Widgets Bluetooth DBus)
|
||||
find_package(Qt6 REQUIRED COMPONENTS Quick Widgets Bluetooth DBus LinguistTools)
|
||||
find_package(OpenSSL REQUIRED)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(PULSEAUDIO REQUIRED libpulse)
|
||||
|
||||
qt_standard_project_setup()
|
||||
|
||||
# Translation files
|
||||
set(TS_FILES
|
||||
translations/librepods_tr.ts
|
||||
)
|
||||
|
||||
qt_add_executable(librepods
|
||||
main.cpp
|
||||
logger.h
|
||||
@@ -85,3 +90,13 @@ install(FILES assets/me.kavishdevar.librepods.desktop
|
||||
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications")
|
||||
install(FILES assets/librepods.png
|
||||
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/512x512/apps")
|
||||
|
||||
# Translation support
|
||||
qt_add_translations(librepods
|
||||
TS_FILES ${TS_FILES}
|
||||
QM_FILES_OUTPUT_VARIABLE QM_FILES
|
||||
)
|
||||
|
||||
# Install translation files
|
||||
install(FILES ${QM_FILES}
|
||||
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/librepods/translations")
|
||||
|
||||
@@ -81,7 +81,7 @@ ApplicationWindow {
|
||||
|
||||
Label {
|
||||
anchors.centerIn: parent
|
||||
text: airPodsTrayApp.airpodsConnected ? "Connected" : "Disconnected"
|
||||
text: airPodsTrayApp.airpodsConnected ? qsTr("Connected") : qsTr("Disconnected")
|
||||
color: "white"
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Medium
|
||||
@@ -130,7 +130,7 @@ ApplicationWindow {
|
||||
|
||||
SegmentedControl {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
model: ["Off", "Noise Cancellation", "Transparency", "Adaptive"]
|
||||
model: [qsTr("Off"), qsTr("Noise Cancellation"), qsTr("Transparency"), qsTr("Adaptive")]
|
||||
currentIndex: airPodsTrayApp.deviceInfo.noiseControlMode
|
||||
onCurrentIndexChanged: airPodsTrayApp.setNoiseControlModeInt(currentIndex)
|
||||
visible: airPodsTrayApp.airpodsConnected
|
||||
@@ -153,21 +153,21 @@ ApplicationWindow {
|
||||
onValueChanged: if (pressed) debounceTimer.restart()
|
||||
|
||||
Label {
|
||||
text: "Adaptive Noise Level: " + parent.value
|
||||
text: qsTr("Adaptive Noise Level: ") + parent.value
|
||||
anchors.top: parent.bottom
|
||||
}
|
||||
}
|
||||
|
||||
Switch {
|
||||
visible: airPodsTrayApp.airpodsConnected
|
||||
text: "Conversational Awareness"
|
||||
text: qsTr("Conversational Awareness")
|
||||
checked: airPodsTrayApp.deviceInfo.conversationalAwareness
|
||||
onCheckedChanged: airPodsTrayApp.setConversationalAwareness(checked)
|
||||
}
|
||||
|
||||
Switch {
|
||||
visible: airPodsTrayApp.airpodsConnected
|
||||
text: "Hearing Aid"
|
||||
text: qsTr("Hearing Aid")
|
||||
checked: airPodsTrayApp.deviceInfo.hearingAidEnabled
|
||||
onCheckedChanged: airPodsTrayApp.setHearingAidEnabled(checked)
|
||||
}
|
||||
@@ -189,7 +189,7 @@ ApplicationWindow {
|
||||
id: settingsPage
|
||||
Page {
|
||||
id: settingsPageItem
|
||||
title: "Settings"
|
||||
title: qsTr("Settings")
|
||||
|
||||
ScrollView {
|
||||
anchors.fill: parent
|
||||
@@ -200,7 +200,7 @@ ApplicationWindow {
|
||||
padding: 20
|
||||
|
||||
Label {
|
||||
text: "Settings"
|
||||
text: qsTr("Settings")
|
||||
font.pixelSize: 24
|
||||
// center the label
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
@@ -210,19 +210,19 @@ ApplicationWindow {
|
||||
spacing: 5 // Small gap between label and ComboBox
|
||||
|
||||
Label {
|
||||
text: "Pause Behavior When Removing AirPods:"
|
||||
text: qsTr("Pause Behavior When Removing AirPods:")
|
||||
}
|
||||
|
||||
ComboBox {
|
||||
width: parent.width // Ensures full width
|
||||
model: ["One Removed", "Both Removed", "Never"]
|
||||
model: [qsTr("One Removed"), qsTr("Both Removed"), qsTr("Never")]
|
||||
currentIndex: airPodsTrayApp.earDetectionBehavior
|
||||
onActivated: airPodsTrayApp.earDetectionBehavior = currentIndex
|
||||
}
|
||||
}
|
||||
|
||||
Switch {
|
||||
text: "Cross-Device Connectivity with Android"
|
||||
text: qsTr("Cross-Device Connectivity with Android")
|
||||
checked: airPodsTrayApp.crossDeviceEnabled
|
||||
onCheckedChanged: {
|
||||
airPodsTrayApp.setCrossDeviceEnabled(checked)
|
||||
@@ -230,26 +230,26 @@ ApplicationWindow {
|
||||
}
|
||||
|
||||
Switch {
|
||||
text: "Auto-Start on Login"
|
||||
text: qsTr("Auto-Start on Login")
|
||||
checked: airPodsTrayApp.autoStartManager.autoStartEnabled
|
||||
onCheckedChanged: airPodsTrayApp.autoStartManager.autoStartEnabled = checked
|
||||
}
|
||||
|
||||
Switch {
|
||||
text: "Enable System Notifications"
|
||||
text: qsTr("Enable System Notifications")
|
||||
checked: airPodsTrayApp.notificationsEnabled
|
||||
onCheckedChanged: airPodsTrayApp.notificationsEnabled = checked
|
||||
}
|
||||
|
||||
Switch {
|
||||
visible: airPodsTrayApp.airpodsConnected
|
||||
text: "One Bud ANC Mode"
|
||||
text: qsTr("One Bud ANC Mode")
|
||||
checked: airPodsTrayApp.deviceInfo.oneBudANCMode
|
||||
onCheckedChanged: airPodsTrayApp.deviceInfo.oneBudANCMode = checked
|
||||
|
||||
ToolTip {
|
||||
visible: parent.hovered
|
||||
text: "Enable ANC when using one AirPod\n(More noise reduction, but uses more battery)"
|
||||
text: qsTr("Enable ANC when using one AirPod\n(More noise reduction, but uses more battery)")
|
||||
delay: 500
|
||||
}
|
||||
}
|
||||
@@ -257,7 +257,7 @@ ApplicationWindow {
|
||||
Row {
|
||||
spacing: 5
|
||||
Label {
|
||||
text: "Bluetooth Retry Attempts:"
|
||||
text: qsTr("Bluetooth Retry Attempts:")
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
SpinBox {
|
||||
@@ -279,7 +279,7 @@ ApplicationWindow {
|
||||
}
|
||||
|
||||
Button {
|
||||
text: "Rename"
|
||||
text: qsTr("Rename")
|
||||
onClicked: airPodsTrayApp.renameAirPods(newNameField.text)
|
||||
}
|
||||
}
|
||||
@@ -295,14 +295,14 @@ ApplicationWindow {
|
||||
}
|
||||
|
||||
Button {
|
||||
text: "Change Phone MAC"
|
||||
text: qsTr("Change Phone MAC")
|
||||
onClicked: airPodsTrayApp.setPhoneMac(newPhoneMacField.text)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Button {
|
||||
text: "Show Magic Cloud Keys QR"
|
||||
text: qsTr("Show Magic Cloud Keys QR")
|
||||
onClicked: keysQrDialog.show()
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import socket
|
||||
import struct
|
||||
import sys
|
||||
import threading
|
||||
from socket import socket as Socket, TimeoutError
|
||||
from socket import socket as Socket
|
||||
from queue import Queue
|
||||
from threading import Thread
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
||||
@@ -12,6 +12,10 @@
|
||||
#include <QTimer>
|
||||
#include <QProcess>
|
||||
#include <QRegularExpression>
|
||||
#include <QTranslator>
|
||||
#include <QLibraryInfo>
|
||||
#include <QDir>
|
||||
#include <QStandardPaths>
|
||||
|
||||
#include "airpods_packets.h"
|
||||
#include "logger.h"
|
||||
@@ -987,6 +991,25 @@ private:
|
||||
int main(int argc, char *argv[]) {
|
||||
QApplication app(argc, argv);
|
||||
|
||||
// Load translations
|
||||
QTranslator *translator = new QTranslator(&app);
|
||||
QString locale = QLocale::system().name();
|
||||
|
||||
// Try to load translation from various locations
|
||||
QStringList translationPaths = {
|
||||
QCoreApplication::applicationDirPath() + "/translations",
|
||||
QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + "/librepods/translations",
|
||||
"/usr/share/librepods/translations",
|
||||
"/usr/local/share/librepods/translations"
|
||||
};
|
||||
|
||||
for (const QString &path : translationPaths) {
|
||||
if (translator->load("librepods_" + locale, path)) {
|
||||
app.installTranslator(translator);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
QLocalServer::removeServer("app_server");
|
||||
|
||||
QFile stale("/tmp/app_server");
|
||||
|
||||
151
linux/translations/librepods_it_IT.ts
Normal file
151
linux/translations/librepods_it_IT.ts
Normal file
@@ -0,0 +1,151 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="it_IT">
|
||||
<context>
|
||||
<name>Main</name>
|
||||
<message>
|
||||
<source>Connected</source>
|
||||
<translation>Connesso</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Disconnected</source>
|
||||
<translation>Disconnesso</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Off</source>
|
||||
<translation>Non attivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Noise Cancellation</source>
|
||||
<translation>Cancellazione rumore</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transparency</source>
|
||||
<translation>Trasparenza</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Adaptive</source>
|
||||
<translation>Adattivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Adaptive Noise Level: </source>
|
||||
<translation>Livello rumore adattivo: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Conversational Awareness</source>
|
||||
<translation>Rilevamento conversazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Hearing Aid</source>
|
||||
<translation>Apparecchio acustico</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation>Impostazioni</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pause Behavior When Removing AirPods:</source>
|
||||
<translation>Pausa alla rimozione delle AirPods:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>One Removed</source>
|
||||
<translation>Una rimossa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Both Removed</source>
|
||||
<translation>Entrambe rimosse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Never</source>
|
||||
<translation>Mai</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cross-Device Connectivity with Android</source>
|
||||
<translation>Connettività multi-dispositivo con Android</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Auto-Start on Login</source>
|
||||
<translation>Avvio automatico all'accesso</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enable System Notifications</source>
|
||||
<translation>Abilita notifiche di sistema</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>One Bud ANC Mode</source>
|
||||
<translation>Modalità ANC singolo auricolare</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enable ANC when using one AirPod
|
||||
(More noise reduction, but uses more battery)</source>
|
||||
<translation>Abilita ANC con un solo AirPod
|
||||
(Maggiore riduzione rumore, ma consuma più batteria)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bluetooth Retry Attempts:</source>
|
||||
<translation>Tentativi riprova Bluetooth:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Rename</source>
|
||||
<translation>Rinomina</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Change Phone MAC</source>
|
||||
<translation>Cambia MAC Telefono</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show Magic Cloud Keys QR</source>
|
||||
<translation>Mostra QR Magic Cloud Keys</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrayIconManager</name>
|
||||
<message>
|
||||
<source>Battery Status: </source>
|
||||
<translation>Stato batteria: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open</source>
|
||||
<translation>Apri</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation>Impostazioni</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Toggle Conversational Awareness</source>
|
||||
<translation>Attiva/Disattiva Rilevamento conversazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Adaptive</source>
|
||||
<translation>Adattivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transparency</source>
|
||||
<translation>Trasparenza</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Noise Cancellation</source>
|
||||
<translation>Cancellazione rumore</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Off</source>
|
||||
<translation>Non attivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Quit</source>
|
||||
<translation>Esci</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AirPodsTrayApp</name>
|
||||
<message>
|
||||
<source>AirPods Disconnected</source>
|
||||
<translation>AirPods disconnesse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Your AirPods have been disconnected</source>
|
||||
<translation>Le tue AirPods sono state disconnesse</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
151
linux/translations/librepods_tr.ts
Normal file
151
linux/translations/librepods_tr.ts
Normal file
@@ -0,0 +1,151 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="tr_TR">
|
||||
<context>
|
||||
<name>Main</name>
|
||||
<message>
|
||||
<source>Connected</source>
|
||||
<translation>Bağlı</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Disconnected</source>
|
||||
<translation>Bağlantı Kesildi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Off</source>
|
||||
<translation>Kapalı</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Noise Cancellation</source>
|
||||
<translation>Gürültü Engelleme</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transparency</source>
|
||||
<translation>Şeffaflık</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Adaptive</source>
|
||||
<translation>Uyarlanabilir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Adaptive Noise Level: </source>
|
||||
<translation>Uyarlanabilir Gürültü Seviyesi: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Conversational Awareness</source>
|
||||
<translation>Konuşma Farkındalığı</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Hearing Aid</source>
|
||||
<translation>İşitme Cihazı</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation>Ayarlar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pause Behavior When Removing AirPods:</source>
|
||||
<translation>AirPods Çıkarıldığında Duraklatma Davranışı:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>One Removed</source>
|
||||
<translation>Biri Çıkarıldığında</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Both Removed</source>
|
||||
<translation>İkisi de Çıkarıldığında</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Never</source>
|
||||
<translation>Asla</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cross-Device Connectivity with Android</source>
|
||||
<translation>Android ile Çapraz Cihaz Bağlantısı</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Auto-Start on Login</source>
|
||||
<translation>Oturum Açıldığında Otomatik Başlat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enable System Notifications</source>
|
||||
<translation>Sistem Bildirimlerini Etkinleştir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>One Bud ANC Mode</source>
|
||||
<translation>Tek Kulaklık ANC Modu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enable ANC when using one AirPod
|
||||
(More noise reduction, but uses more battery)</source>
|
||||
<translation>Tek AirPod kullanırken ANC'yi etkinleştir
|
||||
(Daha fazla gürültü azaltma, ancak daha fazla pil kullanır)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bluetooth Retry Attempts:</source>
|
||||
<translation>Bluetooth Yeniden Deneme Sayısı:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Rename</source>
|
||||
<translation>Yeniden Adlandır</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Change Phone MAC</source>
|
||||
<translation>Telefon MAC Adresini Değiştir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show Magic Cloud Keys QR</source>
|
||||
<translation>Magic Cloud Anahtarları QR'ını Göster</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrayIconManager</name>
|
||||
<message>
|
||||
<source>Battery Status: </source>
|
||||
<translation>Pil Durumu: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open</source>
|
||||
<translation>Aç</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation>Ayarlar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Toggle Conversational Awareness</source>
|
||||
<translation>Konuşma Farkındalığını Aç/Kapat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Adaptive</source>
|
||||
<translation>Uyarlanabilir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transparency</source>
|
||||
<translation>Şeffaflık</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Noise Cancellation</source>
|
||||
<translation>Gürültü Engelleme</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Off</source>
|
||||
<translation>Kapalı</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Quit</source>
|
||||
<translation>Çıkış</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AirPodsTrayApp</name>
|
||||
<message>
|
||||
<source>AirPods Disconnected</source>
|
||||
<translation>AirPods Bağlantısı Kesildi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Your AirPods have been disconnected</source>
|
||||
<translation>AirPods'unuzun bağlantısı kesildi</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
151
linux/translations/librepods_zh_TW.ts
Normal file
151
linux/translations/librepods_zh_TW.ts
Normal file
@@ -0,0 +1,151 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="zh_TW">
|
||||
<context>
|
||||
<name>Main</name>
|
||||
<message>
|
||||
<source>Connected</source>
|
||||
<translation>已連線</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Disconnected</source>
|
||||
<translation>已中斷連線</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Off</source>
|
||||
<translation>關閉</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Noise Cancellation</source>
|
||||
<translation>降噪</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transparency</source>
|
||||
<translation>通透模式</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Adaptive</source>
|
||||
<translation>自適應</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Adaptive Noise Level: </source>
|
||||
<translation>自適應噪音等級: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Conversational Awareness</source>
|
||||
<translation>對話感知</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Hearing Aid</source>
|
||||
<translation>助聽器</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation>設定</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pause Behavior When Removing AirPods:</source>
|
||||
<translation>取下 AirPods 時的暫停行為:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>One Removed</source>
|
||||
<translation>取下其中一只時</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Both Removed</source>
|
||||
<translation>兩只都取下時</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Never</source>
|
||||
<translation>永不</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cross-Device Connectivity with Android</source>
|
||||
<translation>與 Android 的跨裝置連線</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Auto-Start on Login</source>
|
||||
<translation>登入時自動啟動</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enable System Notifications</source>
|
||||
<translation>啟用系統通知</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>One Bud ANC Mode</source>
|
||||
<translation>單耳 ANC 模式</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enable ANC when using one AirPod
|
||||
(More noise reduction, but uses more battery)</source>
|
||||
<translation>使用一只 AirPod 時啟用 ANC
|
||||
(更多降噪效果,但更耗電)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bluetooth Retry Attempts:</source>
|
||||
<translation>Bluetooth 重試次數:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Rename</source>
|
||||
<translation>重新命名</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Change Phone MAC</source>
|
||||
<translation>變更手機 MAC 位址</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show Magic Cloud Keys QR</source>
|
||||
<translation>顯示 Magic Cloud Key QR 碼</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrayIconManager</name>
|
||||
<message>
|
||||
<source>Battery Status: </source>
|
||||
<translation>電池狀態: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open</source>
|
||||
<translation>開啟</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation>設定</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Toggle Conversational Awareness</source>
|
||||
<translation>切換對話感知</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Adaptive</source>
|
||||
<translation>自適應</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Transparency</source>
|
||||
<translation>通透模式</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Noise Cancellation</source>
|
||||
<translation>降噪</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Off</source>
|
||||
<translation>關閉</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Quit</source>
|
||||
<translation>結束</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AirPodsTrayApp</name>
|
||||
<message>
|
||||
<source>AirPods Disconnected</source>
|
||||
<translation>AirPods 已中斷連線</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Your AirPods have been disconnected</source>
|
||||
<translation>你的 AirPods 已中斷連線</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -36,7 +36,7 @@ void TrayIconManager::showNotification(const QString &title, const QString &mess
|
||||
|
||||
void TrayIconManager::TrayIconManager::updateBatteryStatus(const QString &status)
|
||||
{
|
||||
trayIcon->setToolTip("Battery Status: " + status);
|
||||
trayIcon->setToolTip(tr("Battery Status: ") + status);
|
||||
updateIconFromBattery(status);
|
||||
}
|
||||
|
||||
@@ -57,20 +57,20 @@ void TrayIconManager::updateConversationalAwareness(bool enabled)
|
||||
void TrayIconManager::setupMenuActions()
|
||||
{
|
||||
// Open action
|
||||
QAction *openAction = new QAction("Open", trayMenu);
|
||||
QAction *openAction = new QAction(tr("Open"), trayMenu);
|
||||
trayMenu->addAction(openAction);
|
||||
connect(openAction, &QAction::triggered, qApp, [this](){emit openApp();});
|
||||
|
||||
// Settings Menu
|
||||
|
||||
QAction *settingsMenu = new QAction("Settings", trayMenu);
|
||||
QAction *settingsMenu = new QAction(tr("Settings"), trayMenu);
|
||||
trayMenu->addAction(settingsMenu);
|
||||
connect(settingsMenu, &QAction::triggered, qApp, [this](){emit openSettings();});
|
||||
|
||||
trayMenu->addSeparator();
|
||||
|
||||
// Conversational Awareness Toggle
|
||||
caToggleAction = new QAction("Toggle Conversational Awareness", trayMenu);
|
||||
caToggleAction = new QAction(tr("Toggle Conversational Awareness"), trayMenu);
|
||||
caToggleAction->setCheckable(true);
|
||||
trayMenu->addAction(caToggleAction);
|
||||
connect(caToggleAction, &QAction::triggered, this, [this](bool checked)
|
||||
@@ -81,10 +81,10 @@ void TrayIconManager::setupMenuActions()
|
||||
// Noise Control Options
|
||||
noiseControlGroup = new QActionGroup(trayMenu);
|
||||
const QPair<QString, NoiseControlMode> noiseOptions[] = {
|
||||
{"Adaptive", NoiseControlMode::Adaptive},
|
||||
{"Transparency", NoiseControlMode::Transparency},
|
||||
{"Noise Cancellation", NoiseControlMode::NoiseCancellation},
|
||||
{"Off", NoiseControlMode::Off}};
|
||||
{tr("Adaptive"), NoiseControlMode::Adaptive},
|
||||
{tr("Transparency"), NoiseControlMode::Transparency},
|
||||
{tr("Noise Cancellation"), NoiseControlMode::NoiseCancellation},
|
||||
{tr("Off"), NoiseControlMode::Off}};
|
||||
|
||||
for (auto option : noiseOptions)
|
||||
{
|
||||
@@ -100,7 +100,7 @@ void TrayIconManager::setupMenuActions()
|
||||
trayMenu->addSeparator();
|
||||
|
||||
// Quit action
|
||||
QAction *quitAction = new QAction("Quit", trayMenu);
|
||||
QAction *quitAction = new QAction(tr("Quit"), trayMenu);
|
||||
trayMenu->addAction(quitAction);
|
||||
connect(quitAction, &QAction::triggered, qApp, &QApplication::quit);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user