From 116f130deca867f581ddf1d4d1fe4a746b53d9a6 Mon Sep 17 00:00:00 2001 From: Vyom-2007 Date: Sat, 17 Jan 2026 11:37:27 +0530 Subject: [PATCH 1/2] docs: add comprehensive CONTRIBUTING.md guide - Add structured contribution guidelines with table of contents - Include development setup for Android and Linux platforms - Document code style guidelines and commit conventions - Add PR submission process and checklists - Include bug reporting and feature request guidelines - Move translation guide to appendix for better organization - Addresses the missing contribution documentation --- CONTRIBUTING.md | 341 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 341 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..40d33a990 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,341 @@ +# Contributing to LibrePods + +Thank you for your interest in contributing to LibrePods! This project aims to liberate AirPods from Apple's ecosystem, and we welcome contributions of all kinds. + +## Table of Contents + +- [Code of Conduct](#code-of-conduct) +- [How Can I Contribute?](#how-can-i-contribute) +- [Development Setup](#development-setup) +- [Making Changes](#making-changes) +- [Submitting Changes](#submitting-changes) +- [Style Guidelines](#style-guidelines) +- [Additional Resources](#additional-resources) + +## Code of Conduct + +This project adheres to a code of conduct. By participating, you are expected to uphold this code. Please be respectful and constructive in all interactions. + +## How Can I Contribute? + +### Reporting Bugs + +Before creating bug reports, please check existing issues. When creating a bug report, include: + +- **Device Information**: Phone model, OS version, AirPods model +- **LibrePods Version**: Found in app settings +- **Root Status** (Android): LSPosed version if applicable +- **Steps to Reproduce**: Clear, numbered steps +- **Expected vs Actual Behavior** +- **Logs**: Use the troubleshooting feature in the app + +### Suggesting Features + +Feature requests are welcome! Please: +- Check if the feature has already been requested +- Explain the use case and expected behavior +- Consider if it aligns with the project's goals + +### Code Contributions + +All code contributions follow the standard GitHub workflow: +1. Fork the repository +2. Create a feature branch +3. Make your changes +4. Submit a pull request + +See [Making Changes](#making-changes) for detailed instructions. + +### Documentation + +Improvements to documentation are always welcome, including: +- README updates +- Protocol documentation +- Setup guides +- Code comments + +### Translations + +Help make LibrePods accessible to more users by contributing translations. See [Translation Guide](#translation-guide) for details. + +## Development Setup + +### Prerequisites + +Choose the platform you want to contribute to: + +#### Android Development + +**Requirements:** +- Android Studio Ladybug (2024.2.1+) +- JDK 17+ +- Android SDK: API 33 (min) and API 36 (target) +- Root access with Xposed Framework (LSPosed recommended) + +**Note**: Root is required due to an [Android Bluetooth stack limitation](https://issuetracker.google.com/issues/371713238). Exception: ColorOS/OxygenOS 16 users. + +#### Linux Development + +**Requirements:** +- Qt 6 (base, connectivity, multimedia) +- CMake 3.22+ +- OpenSSL development headers +- libpulse development headers +- C++17 compatible compiler + +
+Installation commands for different distributions + +**Arch Linux / EndeavourOS:** +```bash +sudo pacman -S qt6-base qt6-connectivity qt6-multimedia cmake openssl libpulse +``` + +**Debian / Ubuntu:** +```bash +sudo apt-get install qt6-base-dev qt6-declarative-dev qt6-connectivity-dev \ + qt6-multimedia-dev cmake libssl-dev libpulse-dev \ + qml6-module-qtquick-controls qml6-module-qtquick-layouts +``` + +**Fedora:** +```bash +sudo dnf install qt6-qtbase-devel qt6-qtconnectivity-devel \ + qt6-qtmultimedia-devel qt6-qtdeclarative-devel cmake \ + openssl-devel pulseaudio-libs-devel +``` +
+ +### Building the Project + +#### Android + +```bash +git clone https://github.com/YOUR_USERNAME/librepods.git +cd librepods/android +./gradlew assembleDebug +adb install -r app/build/outputs/apk/debug/app-debug.apk +``` + +#### Linux + +```bash +git clone https://github.com/YOUR_USERNAME/librepods.git +cd librepods/linux +mkdir build && cd build +cmake .. +make -j $(nproc) +./librepods +``` + +For troubleshooting, see [linux/README.md](linux/README.md). + +## Making Changes + +### 1. Fork and Clone + +Fork the repository on GitHub, then: + +```bash +git clone https://github.com/YOUR_USERNAME/librepods.git +cd librepods +git remote add upstream https://github.com/kavishdevar/librepods.git +``` + +### 2. Create a Branch + +```bash +git checkout -b feat/your-feature-name +# or +git checkout -b fix/bug-description +``` + +### 3. Make Your Changes + +- Write clear, readable code +- Follow the [style guidelines](#style-guidelines) +- Add comments for complex logic +- Update documentation if needed + +### 4. Test Your Changes + +**Android:** +- Build and install the APK +- Test on a physical device with AirPods +- Verify no regressions in existing features + +**Linux:** +- Build and run the application +- Test core functionality +- Verify system tray integration + +### 5. Commit Your Changes + +```bash +git add . +git commit -m "type(scope): description" +``` + +See [Commit Message Guidelines](#commit-messages) for format details. + +## Submitting Changes + +### Pull Request Process + +1. **Push to your fork:** + ```bash + git push origin your-branch-name + ``` + +2. **Create a Pull Request** on GitHub with: + - **Clear title**: `type(scope): Brief description` + - **Description** including: + - What changed and why + - Related issue number (closes #123) + - Testing performed + - Screenshots for UI changes + +3. **Wait for review** (Note: Maintainer on hiatus until May 2026) + +4. **Address feedback** if requested + +### Pull Request Checklist + +- [ ] Code builds without errors +- [ ] Tested on target platform +- [ ] Follows style guidelines +- [ ] Documentation updated (if applicable) +- [ ] Commit messages follow convention +- [ ] PR description is clear and complete + +## Style Guidelines + +### Commit Messages + +Follow [Conventional Commits](https://www.conventionalcommits.org/): + +``` +(): + +[optional body] + +[optional footer] +``` + +**Types:** +- `feat`: New feature +- `fix`: Bug fix +- `docs`: Documentation changes +- `style`: Code style changes (formatting) +- `refactor`: Code refactoring +- `test`: Adding tests +- `chore`: Maintenance tasks + +**Examples:** +``` +feat(android): add German translation +fix(linux): resolve system tray detection +docs: update development setup guide +``` + +### Code Style + +#### Kotlin (Android) + +- Follow [Kotlin Coding Conventions](https://kotlinlang.org/docs/coding-conventions.html) +- 4 spaces for indentation +- Meaningful variable and function names +- Use `camelCase` for variables/functions, `PascalCase` for classes + +#### C++ (Linux) + +- Follow [Qt Coding Style](https://wiki.qt.io/Qt_Coding_Style) +- Use `camelCase` for variables/functions +- Use `PascalCase` for classes +- Include proper header guards +- Use C++17 features where appropriate + +## Additional Resources + +### Documentation + +- **Protocol Specifications**: [AAP Definitions.md](AAP%20Definitions.md) +- **Control Commands**: [docs/control_commands.md](docs/control_commands.md) +- **Linux Setup**: [linux/README.md](linux/README.md) + +### External Links + +- [AAP Protocol (Third-party)](https://github.com/tyalie/AAP-Protocol-Defintion) +- [Android Bluetooth Bug](https://issuetracker.google.com/issues/371713238) - Please upvote! + +### Community + +- **Discussions**: [GitHub Discussions](https://github.com/kavishdevar/librepods/discussions) +- **Issues**: [GitHub Issues](https://github.com/kavishdevar/librepods/issues) + +--- + +## Translation Guide + +Translations help make LibrePods accessible to users worldwide. Currently supported: 10 languages (Android), 3 languages (Linux). + +### Android Translations + +1. Create translation directory: + ```bash + mkdir -p android/app/src/main/res/values-{LANG_CODE} + ``` + +2. Copy base strings file: + ```bash + cp android/app/src/main/res/values/strings.xml \ + android/app/src/main/res/values-{LANG_CODE}/ + ``` + +3. Translate all `` tags while preserving: + - Placeholders: `%1$s`, `%d` + - XML entities: `\'` for apostrophes + - Technical terms from Apple's official translations + +4. Test: + ```bash + cd android + ./gradlew assembleDebug + adb shell "setprop persist.sys.locale {LANG_CODE}; setprop ctl.restart zygote" + ``` + +### Linux Translations + +1. Copy template: + ```bash + cd linux/translations + cp librepods_tr.ts librepods_{LANG_CODE}.ts + ``` + +2. Edit with Qt Linguist (recommended) or manually: + ```xml + + English text + Translated text + + ``` + +3. Test: + ```bash + mkdir build && cd build + cmake .. && make + LANG={LANG_CODE}.UTF-8 ./librepods + ``` + +### Needed Languages + +High-priority: German, Japanese, Korean, Hindi, Arabic, Russian + +--- + +## License + +By contributing, you agree that your contributions will be licensed under the GNU GPL v3.0 License. + +**Thank you for contributing to LibrePods!** 🎉 + From 9512d57461bd9efe53f374f5449446558ff4cae7 Mon Sep 17 00:00:00 2001 From: Vyom-2007 Date: Sat, 17 Jan 2026 22:05:55 +0530 Subject: [PATCH 2/2] feat: add Hindi and Russian translations - Add Hindi (hi-IN) translations for Android (218 strings) - Add Hindi translations for Linux (~20 strings) - Add Russian (ru-RU) translations for Android (218 strings) - Add Russian translations for Linux (~20 strings) - Use conversational Hindi (not formal Shudh Hindi) - Use standard contemporary Russian - All technical terms properly translated - Tested XML syntax validity --- .../app/src/main/res/values-hi/strings.xml | 217 ++++++++++++++++++ .../app/src/main/res/values-ru/strings.xml | 217 ++++++++++++++++++ linux/translations/librepods_hi.ts | 87 +++++++ linux/translations/librepods_ru.ts | 87 +++++++ 4 files changed, 608 insertions(+) create mode 100644 android/app/src/main/res/values-hi/strings.xml create mode 100644 android/app/src/main/res/values-ru/strings.xml create mode 100644 linux/translations/librepods_hi.ts create mode 100644 linux/translations/librepods_ru.ts diff --git a/android/app/src/main/res/values-hi/strings.xml b/android/app/src/main/res/values-hi/strings.xml new file mode 100644 index 000000000..48d7fde0f --- /dev/null +++ b/android/app/src/main/res/values-hi/strings.xml @@ -0,0 +1,217 @@ + + LibrePods + अपने AirPods को Apple की दुनिया से आजाद करें। + अपनी होम स्क्रीन पर सीधे AirPods की बैटरी देखें! + सुविधाएं + आवाज की वॉल्यूम + AirPods की आवाज की वॉल्यूम बदलें। + ऑडियो + Adaptive Audio + Adaptive Audio सेट करें + Adaptive audio आपके आस-पास की आवाज को अपने आप कम या ज्यादा करता है। आप इसे अपनी मर्जी से सेट कर सकते हैं। + Buds + केस + Test + नाम + सुनने का मोड + बंद + बाहर की आवाज सुनाई दे + Adaptive + शोर कम करना + AirPods को दबाकर रखें + Stem को दबाकर रखने से मोड बदल सकते हैं। + सिर हिलाना + बायां + दायां + बातचीत पहचानना + जब आप बात करते हैं तो गाना की आवाज कम हो जाती है। + अपनी वॉल्यूम + आस-पास के शोर के हिसाब से वॉल्यूम बदलता है। + एक AirPod से भी शोर कम करना + एक AirPod लगाने पर भी शोर कम हो सकता है। + वॉल्यूम कंट्रोल + AirPods Pro की stem पर ऊपर-नीचे swipe करके वॉल्यूम बदलें। + AirPods कनेक्ट नहीं हैं + सेटिंग्स के लिए AirPods कनेक्ट करें। + वापस + अपनी पसंद + वॉल्यूम कितना कम हो + अभी की वॉल्यूम से कम करता है, ज्यादा से कम नहीं। + गाना रोक दें + बात करने पर गाना रुक जाएगा। + EXAMPLE + Widget जोड़ें + Home Screen से ही Noise Control बदलें। + कनेक्ट हो गया + Linux से कनेक्ट है + कनेक्ट हो गया + Linux पर चला गया + %1$s पर चला गया + Notification से फिर से कनेक्ट करें + सिर की गति + हां के लिए सिर हिलाएं, ना के लिए हिलाएं। + सामान्य + Quick Settings वाली टाइल + दबाने पर noise control dialog दिखाएं। + दबाने पर mode बदलें। + Developer + AirPods Settings खोलें + AirPods की सारी सेटिंग्स यहां हैं + कान में है या नहीं पहचानना + अपने आप चलाएं + अपने आप रोकें + समस्या ठीक करना + Problem को समझने के लिए logs इकट्ठा करें + Logs इकट्ठा करें + Save किए हुए Logs + कोई logs नहीं मिले + अपने आप कनेक्ट होने की सेटिंग + AirPods से कनेक्ट हो जब वो: + कनेक्ट नहीं हैं + AirPods किसी device से कनेक्ट नहीं हैं + खाली हैं + किसी device से कनेक्ट हैं पर कोई गाना या call नहीं चल रही + गाना चल रहा है + किसी device पर गाना चल रहा है + Call चल रही है + किसी device पर call चल रही है + AirPods से कनेक्ट हो जब आपका फोन: + Call आ रही है + फोन बज रहा है + गाना शुरू होने वाला है + फोन पर गाना शुरू हो रहा है + Undo करें + आप Transparency mode को अपनी जरूरत से सेट कर सकते हैं ताकि आस-पास की आवाज सुनाई दे। + तेज आवाज कम करने से आपके कान की रक्षा होती है जब Transparency या Adaptive mode में हों। Off mode में यह काम नहीं करता। + तेज आवाज कम करना + Call Controls + इस device से अपने आप कनेक्ट हो + On होने पर AirPods अपने आप कनेक्ट हो जाएंगे। नहीं तो सिर्फ जब पहले कनेक्ट थे तब ही होंगे। + सोते वक्त गाना रोक दो + Off Listening Mode + On होने पर listening modes में Off भी होगा। Off में तेज आवाज कम नहीं होती। + Microphone + Microphone Mode + अपने आप + हमेशा दायां + हमेशा बायां + Call उठाओ + Mute/Unmute + Call काटो + एक बार दबाओ + दो बार दबाओ + सुनने में मदद + बदलाव + आवाज बढ़ाने के लिए swipe करो + जब Transparency में हो और कोई गाना नहीं चल रहा, तो ऊपर-नीचे swipe करके आस-पास की आवाज बढ़ा या घटा सकते हो। + Transparency Mode + Transparency Mode सेट करें + दबाने की speed + दो या तीन बार दबाने की speed बदलें। + दबाकर रखने का time + कितनी देर दबाकर रखना है वो बदलें। + Volume swipe की speed + गलती से volume ना बदले इसलिए swipes के बीच में wait time चुनें। + Equalizer + EQ लगाओ + Phone + Media + Band %d + Default + धीमा + सबसे धीमा + ज्यादा time + सबसे ज्यादा time + गहरा + हल्का + कम + ज्यादा + आवाज बढ़ाना + Balance + Tone + बाहर का शोर कम करना + बातचीत साफ सुनना + आपके सामने वाले की बात साफ सुनाई देगी। + AirPods आपकी hearing test के हिसाब से आवाज साफ कर सकते हैं।\n\nयह सिर्फ उनके लिए है जिन्हें थोड़ी कम सुनाई देती है। + Media Assist + AirPods Pro hearing test के हिसाब से गाना, video और calls साफ कर सकते हैं। + गाना और Video ठीक करें + Calls ठीक करें + Widget + Widget में फोन की battery दिखाएं + AirPods के साथ फोन की भी battery दिखाएं + बातचीत की volume + Quick Settings Tile + Control के लिए dialog खोलें + Off होने पर QS दबाने से modes बदलेंगे। On होने पर dialog आएगा। + नहीं पहने तो disconnect करो + App से control कर सकते हो - बस audio disconnect होगा। + Advanced Options + Identity Resolving Key (IRK) सेट करें + BLE addresses के लिए IRK value manually सेट करें + Encryption Key सेट करें + BLE advertisements decrypt करने के लिए ENC_KEY manually सेट करें + दूसरे head tracking packets use करें + अगर head tracking काम नहीं करता तो यह on करें। + Apple device की तरह काम करो + Multi-device connectivity और transparency mode customization enable करता है + खराब हो सकता है!! Maximum दो devices कनेक्ट हो सकते हैं। iPad या Mac के साथ use कर रहे हो तो पहले वो कनेक्ट करो फिर Android। + Hook Offset Reset करो + यह hook offset clear कर देगा और फिर से setup करना होगा। Continue करना है? + Reset + Hook offset reset हो गया। Setup पर भेज रहे हैं... + Hook offset reset नहीं हुआ + IRK set हो गया + Encryption key set हो गई + IRK Hex Value + ENC_KEY Hex Value + 16-byte IRK hex string डालें (32 characters): + 16-byte ENC_KEY hex string डालें (32 characters): + 32 hex characters होने चाहिए + Hex convert करने में error: + Offset मिल गया, Bluetooth restart करो + Digital Assistant + On + Camera Remote + Camera Control + Photo लो, recording शुरू/बंद करो AirPods से। Press Once या Press and Hold use कर सकते हो। Camera के लिए gestures use करने पर कुछ दूसरे gestures काम नहीं करेंगे। + Camera detect करने के लिए custom app package सेट करें + Custom Camera appid सेट करें + Camera app की application id डालें: + Custom Camera appid + Custom camera appid set हो गया + Camera listener + LibrePods के लिए camera detect करने की service + Open Source Licenses + Hearing Test Update करो + Hearing Test Result Update करो + ATT Manager null है, फिर से कनेक्ट करो। + App use करने के लिए permissions चाहिए। + सिर हिलाओ या हां में हिलाओ! + Root Access चाहिए + यह app Bluetooth library में hook करने के लिए root access चाहिए + Root access नहीं मिला। Root permissions दो। + Troubleshooting Steps + Loss values dbHL में डालें + About + Model Name + Model Number + Serial Number + Version + सुनने की सेहत + कान की रक्षा + Workspace Use + EN 352 Protection + EN 352 Protection media की maximum level 82 dBA रखता है। + बाहर का शोर + पिछले device से फिर कनेक्ट करो + Disconnect करो + Support करो मुझे + फिर कभी मत दिखाओ + मेरा बायां AirPod खो गया। अगर LibrePods आपके काम आया तो GitHub Sponsors पर support करो ताकि मैं नया खरीद सकूं। थोड़ा भी बहुत है। Thanks! + LibrePods को Support करो + Noise management बंद कर देता है + बाहर की आवाज सुनाई देती है + बाहर का शोर अपने आप adjust करता है + बाहर की आवाज block कर देता है + diff --git a/android/app/src/main/res/values-ru/strings.xml b/android/app/src/main/res/values-ru/strings.xml new file mode 100644 index 000000000..8841e17ce --- /dev/null +++ b/android/app/src/main/res/values-ru/strings.xml @@ -0,0 +1,217 @@ + + LibrePods + Освободите свои AirPods от экосистемы Apple. + Смотрите заряд AirPods прямо на главном экране! + Спец. возможности + Громкость звуков + Настройте громкость звуковых эффектов AirPods. + Аудио + Адаптивный звук + Настроить адаптивный звук + Адаптивный звук автоматически реагирует на окружение и подавляет или пропускает внешние звуки. Вы можете настроить больше или меньше шума. + Наушники + Кейс + Тест + Имя + Режим прослушивания + Выкл + Прозрачность + Адаптивный + Шумоподавление + Нажмите и удерживайте AirPods + Нажмите и удерживайте ножку для переключения между режимами. + Жесты головой + Левый + Правый + Распознавание разговора + Понижает громкость медиа и уменьшает фоновый шум, когда вы начинаете говорить. + Персональная громкость + Подстраивает громкость медиа в зависимости от окружения. + Шумоподавление с одним наушником + Разрешить шумоподавление, когда в ухе только один наушник. + Управление громкостью + Регулируйте громкость, проводя вверх или вниз по датчику на ножке AirPods Pro. + AirPods не подключены + Подключите AirPods для доступа к настройкам. + Назад + Настройки + Относительная громкость + Снижает до процента от текущей громкости, а не от максимальной. + Пауза музыки + Когда вы начинаете говорить, музыка будет поставлена на паузу. + EXAMPLE + Добавить виджет + Управляйте шумоподавлением прямо с главного экрана. + Подключено + Подключено к Linux + Подключено + Переключено на Linux + Переключено на %1$s + Переподключиться через уведомление + Отслеживание головы + Кивните, чтобы ответить, покачайте головой, чтобы отклонить. + Общие + Действие плитки быстрых настроек + Показывать диалог управления при нажатии. + Переключать режимы при нажатии. + Для разработчиков + Открыть настройки AirPods + Управление функциями и настройками AirPods + Автоопределение в ухе + Автовоспроизведение + Автопауза + Устранение неполадок + Собрать логи для диагностики проблем с подключением AirPods + Собрать логи + Сохраненные логи + Сохраненных логов не найдено + Настройки автоподключения + Подключаться к AirPods, когда они: + Отключены + AirPods не подключены ни к какому устройству + Без активности + Устройство подключено к AirPods, но не воспроизводит медиа и не на звонке + Играет медиа + Устройство воспроизводит медиа на AirPods + На звонке + Устройство на звонке через AirPods + Подключаться к AirPods, когда телефон: + Принимает звонок + Телефон звонит + Начинает воспроизведение + Телефон начинает воспроизводить медиа + Отменить + Вы можете настроить режим прозрачности для ваших AirPods Pro, чтобы слышать окружающие звуки. + Снижение громких звуков может активно уменьшать воздействие громких звуков окружения в режимах прозрачности и адаптивном. В режиме Выкл снижение не активно. + Снижение громких звуков + Управление звонками + Автоматически подключаться к этому устройству + Если включено, AirPods будут пытаться подключиться автоматически. Иначе только если были подключены последними. + Пауза при засыпании + Режим Выкл + Если включено, в режимах прослушивания будет опция Выкл. Громкие звуки не снижаются в режиме Выкл. + Микрофон + Режим микрофона + Автоматически + Всегда правый + Всегда левый + Ответить на звонок + Вкл/выкл звук + Повесить трубку + Нажать один раз + Нажать два раза + Слуховой аппарат + Настройки + Проведите для управления усилением + В режиме прозрачности без воспроизведения медиа проводите вверх и вниз по сенсору AirPods Pro для усиления или ослабления звуков окружения. + Режим прозрачности + Настроить режим прозрачности + Скорость нажатия + Настройте скорость для двойного или тройного нажатия на AirPods. + Длительность удержания + Настройте длительность нажатия и удержания AirPods. + Скорость свайпа громкости + Чтобы предотвратить случайные изменения громкости, выберите время ожидания между свайпами. + Эквалайзер + Применить EQ к + Телефон + Медиа + Полоса %d + По умолчанию + Медленнее + Самая медленная + Дольше + Самая долгая + Темнее + Светлее + Меньше + Больше + Усиление + Баланс + Тон + Снижение окружающего шума + Усиление разговора + Усиление разговора фокусирует AirPods Pro на человеке перед вами, облегчая общение лицом к лицу. + AirPods могут использовать результаты теста слуха для настройки, улучшающей четкость голосов и звуков вокруг вас.\n\nСлуховой аппарат предназначен только для людей с легкой или умеренной потерей слуха. + Помощь медиа + AirPods Pro могут использовать результаты теста слуха для настройки, улучшающей четкость музыки, видео и звонков. + Настроить музыку и видео + Настроить звонки + Виджет + Показывать заряд телефона в виджете + Отображать уровень заряда телефона в виджете рядом с зарядом AirPods + Громкость распознавания разговора + Плитка быстрых настроек + Открывать диалог для управления + Если отключено, нажатие на QS переключает режимы. Если включено, показывает диалог управления шумоподавлением и распознаванием разговора + Отключать AirPods, когда не надеты + Вы все еще сможете управлять ими через приложение - это только отключит аудио. + Расширенные настройки + Установить ключ разрешения идентификации (IRK) + Вручную установить значение IRK для разрешения BLE случайных адресов + Установить ключ шифрования + Вручную установить значение ENC_KEY для расшифровки BLE объявлений + Использовать альтернативные пакеты отслеживания головы + Включите, если отслеживание головы не работает. Это отправляет другие данные AirPods для запроса/остановки. + Действовать как устройство Apple + Включает многоустройственное подключение и функции специальных возможностей вроде настройки прозрачности + Может быть нестабильно!! К AirPods можно подключить максимум два устройства. Если используете с iPad или Mac, сначала подключите их, затем Android. + Сбросить смещение хука + Это очистит текущее смещение хука и потребует повторной настройки. Вы уверены? + Сбросить + Смещение хука сброшено. Перенаправление на настройку... + Не удалось сбросить смещение хука + IRK успешно установлен + Ключ шифрования успешно установлен + Значение IRK в hex + Значение ENC_KEY в hex + Введите 16-байтный IRK как hex-строку (32 символа): + Введите 16-байтный ENC_KEY как hex-строку (32 символа): + Должно быть ровно 32 hex символа + Ошибка преобразования hex: + Смещение найдено, перезапустите Bluetooth + Цифровой помощник + Вкл + Камера дистанционно + Управление камерой + Сделайте фото, начните или остановите запись используя одиночное или длительное нажатие. При использовании AirPods для камеры некоторые жесты управления медиа или режимами станут недоступны. + Установить пользовательский пакет приложения для определения камеры + Установить ID камеры + Введите ID приложения камеры: + Пользовательский ID камеры + Пользовательский ID камеры успешно установлен + Прослушиватель камеры + Служба для LibrePods для определения активности камеры и активации управления на AirPods. + Лицензии открытого ПО + Обновить тест слуха + Обновить результат теста слуха + ATT Manager null, попробуйте переподключиться. + Для использования приложения требуются следующие разрешения. + Покачайте или кивните головой! + Требуется Root-доступ + Этому приложению нужен root-доступ для подключения к библиотеке Bluetooth + Root-доступ отклонен. Предоставьте root-разрешения. + Шаги устранения неполадок + Введите значения потери в dbHL + О программе + Название модели + Номер модели + Серийный номер + Версия + Здоровье слуха + Защита слуха + Использование на рабочем месте + Защита EN 352 + Защита EN 352 ограничивает максимальный уровень медиа до 82 дБА и соответствует стандарту EN 352 для защиты слуха. + Окружающий шум + Переподключиться к последнему устройству + Отключить + Поддержать меня + Больше не показывать + Я недавно потерял свой левый AirPod. Если LibrePods был вам полезен, поддержите меня на GitHub Sponsors, чтобы я мог купить замену и продолжить работу над проектом. Даже небольшая сумма имеет значение. Спасибо! + Поддержать LibrePods + Выключает управление шумом + Пропускает внешние звуки + Динамически настраивает внешний шум + Блокирует внешние звуки + diff --git a/linux/translations/librepods_hi.ts b/linux/translations/librepods_hi.ts new file mode 100644 index 000000000..a3e91b9da --- /dev/null +++ b/linux/translations/librepods_hi.ts @@ -0,0 +1,87 @@ + + + + + Main + < message > + Connected + < translation > कनेक्ट हो गया + + < message > + Disconnected + < translation > कनेक्शन टूट गया + + < message > + Off + < translation > बंद + + < message > + Noise Cancellation + < translation > शोर कम करना + + < message > + Transparency + < translation > बाहर की आवाज सुनाई दे + + < message > + Adaptive + < translation > Adaptive + + < message > + Adaptive Noise Level: + < translation > Adaptive शोर लेवल: + + < message > + Conversational Awareness + < translation > बातचीत पहचानना + + < message > + Hearing Aid + < translation > सुनने में मदद + + < message > + Settings + < translation > Settings + + < message > + Pause Behavior When Removing AirPods: + < translation > AirPods उतारने पर रुकना: + + < message > + Auto Pause when removing one AirPod + < translation > एक AirPod उतारने पर रुक जाए + + < message > + Auto Pause only when removing both AirPods + < translation > दोनों उतारने पर ही रुके + + < message > + Never Auto Pause + < translation > कभी अपने आप ना रुके + + < message > + Quit + < translation > बंद करो + + < message > + Play / Pause + < translation > चलाओ / रोको + + < message > + Next + < translation > अगला + + < message > + Previous + < translation > पिछला + + < message > + Volume Down + < translation > वॉल्यूम कम + + < message > + Volume Up + < translation > वॉल्यूम ज्यादा + + + diff --git a/linux/translations/librepods_ru.ts b/linux/translations/librepods_ru.ts new file mode 100644 index 000000000..5b836b704 --- /dev/null +++ b/linux/translations/librepods_ru.ts @@ -0,0 +1,87 @@ + + + + + Main + < message > + Connected + < translation > Подключено + + < message > + Disconnected + < translation > Отключено + + < message > + Off + < translation > Выкл + + < message > + Noise Cancellation + < translation > Шумоподавление + + < message > + Transparency + < translation > Прозрачность + + < message > + Adaptive + < translation > Адаптивный + + < message > + Adaptive Noise Level: + < translation > Уровень адаптивного шума: + + < message > + Conversational Awareness + < translation > Распознавание разговора + + < message > + Hearing Aid + < translation > Слуховой аппарат + + < message > + Settings + < translation > Настройки + + < message > + Pause Behavior When Removing AirPods: + < translation > Пауза при снятии AirPods: + + < message > + Auto Pause when removing one AirPod + < translation > Автопауза при снятии одного наушника + + < message > + Auto Pause only when removing both AirPods + < translation > Автопауза только при снятии обоих + + < message > + Never Auto Pause + < translation > Никогда не ставить на автопаузу + + < message > + Quit + < translation > Выход + + < message > + Play / Pause + < translation > Воспр / Пауза + + < message > + Next + < translation > Следующий + + < message > + Previous + < translation > Предыдущий + + < message > + Volume Down + < translation > Громкость - + + < message > + Volume Up + < translation > Громкость + + + +