-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat:gitlocalize #161
feat:gitlocalize #161
Conversation
adds support for integrating with Gitlocalize whenever a PR from gitlocalize bot is merged the sync_translations.py script will run and update the `locale` folder with user submitted strings from GitLocalize platform
Caution Review failedThe pull request is closed. WalkthroughA new GitHub Actions workflow named Changes
Possibly related PRs
Poem
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 13
🧹 Outside diff range and nitpick comments (19)
tui/locales/hi-in/satellite.sh (1)
Line range hint
27-31
: LGTM with a minor suggestion for consistency.The change from Hindi to English for the comment is consistent with the previous modifications. The Hindi content is correctly preserved, maintaining the localization.
For consistency, consider adding a newline before the export statement at the end of the file:
TITLE_PASSWORD="ओपन वॉयस ओएस स्थापना - उपग्रह 4/4" + export CONTENT_HOST CONTENT_PORT CONTENT_KEY CONTENT_PASSWORD TITLE_HOST TITLE_PORT TITLE_KEY TITLE_PASSWORD
.github/workflows/sync_tx.yml (1)
23-31
: Remove trailing spaces and consider combining script execution steps.There are trailing spaces at the end of lines 27 and 32, which should be removed for consistency.
Additionally, consider combining the two script execution steps into a single step with an
if
condition. This can make the workflow more concise and easier to maintain.Here's a suggested improvement:
- name: Run script if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.event.head_commit.author.username == 'gitlocalize-app[bot]') run: | python scripts/sync_translations.pyThis change eliminates the need for two separate steps and removes the trailing spaces.
🧰 Tools
🪛 yamllint
[error] 27-27: trailing spaces
(trailing-spaces)
scripts/sync_translations.py (2)
5-83
: Templates are well-structured, but consider clarifying SAT_TEMPLATE.The template definitions are clear and use appropriate multi-line string syntax. The placeholders are consistently formatted, which is good for maintainability.
However, in the SAT_TEMPLATE, the reuse of the
content
variable might lead to confusion:Consider renaming the global
content
variable in SAT_TEMPLATE to avoid potential confusion with the more specific content variables. For example:-content="{content}" +global_content="{content}" -$content +$global_contentThis change would make it clearer that there's a distinction between the global content and the specific content for each section.
85-102
: LGTM: Well-structured TEMPLATES dictionary. Consider simplifying folder definitions.The TEMPLATES dictionary provides a clear and maintainable mapping between script names and their corresponding templates. The use of dirname for folder definitions ensures that paths are relative to the script location, which is a good practice for portability.
Consider simplifying the folder definitions by removing the unnecessary f-strings:
-TRANSLATIONS_FOLDER = f"{dirname(dirname(__file__))}/translations" -LOCALE_FOLDER = f"{dirname(dirname(__file__))}/tui/locales" +TRANSLATIONS_FOLDER = dirname(dirname(__file__)) + "/translations" +LOCALE_FOLDER = dirname(dirname(__file__)) + "/tui/locales"This change doesn't affect functionality but slightly improves readability and performance.
translations/en-us/strings.json (6)
8-11
: Clarify availability of the stable channel.The content mentions that the stable channel is "recommended but not yet available". This might be confusing for users. Consider one of the following options:
- If the stable channel is truly unavailable, remove it as an option.
- If it will be available soon, provide an estimated timeframe.
- If it's available but not recommended for general use, clarify the circumstances under which it should be used.
Suggested revision:
- "content": "Open Voice OS has two main release channels:\n\n - stable (recommended but not yet available)\n - development\n\nThe stable release of Open Voice OS is a well-tested and reliable version suitable for everyday use.\n\nThe development release of Open Voice OS is intended for developers and enthusiasts who want to experiment with cutting-edge features and contribute to the platform's development.\n\nPlease select a channel:" + "content": "Open Voice OS has two main release channels:\n\n - stable (recommended for most users, coming soon)\n - development (currently available)\n\nThe stable release of Open Voice OS will be a well-tested and reliable version suitable for everyday use. It will be available in the near future.\n\nThe development release of Open Voice OS is currently available and is intended for developers and enthusiasts who want to experiment with cutting-edge features and contribute to the platform's development.\n\nPlease select a channel:"
16-22
: Simplify GUI description for non-technical users.While the current description of the GUI is accurate, it might be too technical for some users. Consider simplifying it to focus on the benefits and user experience rather than the underlying technologies.
Suggested revision:
- "content": "When choosing between GUI (Graphical User Interface) and skills in Open Voice OS, consider your preference and needs.\n\nThe GUI is an open source visual and display framework for OVOS running on top of KDE Plasma and built using Kirigami empowered by Qt.\n\nSkills enable interaction through speech, making it efficient for tasks like home automation, information retrieval, and controlling smart devices using natural language commands.\n\nPlease choose the features to enable:", + "content": "When choosing between GUI (Graphical User Interface) and skills in Open Voice OS, consider your preference and needs.\n\nThe GUI provides a visual interface for interacting with Open Voice OS, making it easier to navigate and control your device using touch or mouse input.\n\nSkills enable interaction through speech, making it efficient for tasks like home automation, information retrieval, and controlling smart devices using natural language commands.\n\nPlease choose the features to enable:",This revision maintains the essential information while making it more accessible to a broader audience.
27-30
: Enhance guidance for choosing installation methods.While the current content explains the two installation methods, it could be more helpful to provide additional guidance on when to choose each method.
Consider adding more context to help users make an informed decision:
- "content": "To install Open Voice OS, you have two primary methods:\n\n - Containers engine such as Docker\n - Setting it up in a Python virtual environment\n\nContainers provide isolation and easy deployment, while a Python virtual environment offers more flexibility and control over the installation.\n\nIf the containers method is selected, Docker will be installed automatically if not present on the system.\n\nPlease select an installation method:" + "content": "To install Open Voice OS, you have two primary methods:\n\n - Containers engine such as Docker\n - Setting it up in a Python virtual environment\n\nContainers provide isolation and easy deployment, making it ideal for:\n - Users who want a quick and clean installation\n - Systems where you don't want to modify the global Python environment\n - Environments where you plan to run multiple instances or versions\n\nA Python virtual environment offers more flexibility and control over the installation, suitable for:\n - Developers who need to modify or extend Open Voice OS\n - Users who prefer direct access to the Python packages\n - Systems with limited resources where containers might introduce overhead\n\nIf the containers method is selected, Docker will be installed automatically if not present on the system.\n\nPlease select an installation method:"This additional information helps users understand the pros and cons of each method and choose the one that best fits their needs and technical expertise.
31-34
: Enhance profile descriptions and improve formatting.While the current content provides a brief overview of each profile, it could be more informative and easier to read with some enhancements.
Consider the following improvements:
- Provide more detailed descriptions for each profile.
- Use consistent formatting for better readability.
- "content": "To create a versatile system that is suitable for many applications, there are three intriguing choices:\n\n - Open Voice OS Master: The Open Voice OS classic experience\n - HiveMind Satellite: Open Voice OS audio components connected to HiveMind Listener\n - HiveMind Listener: Hub for HiveMind Satellite, bots, etc.. to connect to\n - Server: Open Voice OS Core and HiveMind Core only, no audio features\n\nEach of these profiles offers unique features and capabilities that could greatly enhance your digital experience.\n\nThe question is, which one aligns best with your needs and preferences?\n\nPlease select a profile:" + "content": "To create a versatile system that is suitable for many applications, there are four intriguing choices:\n\n 1. Open Voice OS Master:\n - The classic Open Voice OS experience\n - Full-featured voice assistant with local processing\n - Ideal for standalone use or as a primary device\n\n 2. HiveMind Satellite:\n - Open Voice OS audio components connected to a HiveMind Listener\n - Perfect for extending your voice assistant to multiple rooms\n - Relies on a central HiveMind Listener for processing\n\n 3. HiveMind Listener:\n - Acts as a hub for HiveMind Satellites, bots, and other connected devices\n - Centralizes processing and coordination of multiple voice assistants\n - Ideal for creating a network of interconnected voice assistants\n\n 4. Server:\n - Open Voice OS Core and HiveMind Core only, without audio features\n - Suitable for backend processing or integration with other systems\n - Ideal for developers or advanced users building custom solutions\n\nEach of these profiles offers unique features and capabilities that could greatly enhance your digital experience.\n\nWhich one aligns best with your needs and preferences?\n\nPlease select a profile:"
This revision provides more detailed information about each profile, uses consistent formatting, and improves readability, helping users make a more informed decision.
35-45
: Add security considerations for satellite configuration.The current content provides clear prompts for satellite configuration, but it could benefit from additional information about security best practices.
Consider adding a note about security considerations:
"content_host": "Please enter the HiveMind listener host (DNS or IP address):", "content_port": "Please enter the HiveMind listener port:", "content_key": "Please enter the HiveMind listener key related to the satellite:", - "content_password": "Please enter the HiveMind listener password related to the satellite:" + "content_password": "Please enter the HiveMind listener password related to the satellite:", + "security_note": "Security Note: Ensure you're using a secure connection when configuring your satellite. Use strong, unique passwords and keys. If possible, use encrypted communication channels and consider implementing additional security measures like IP whitelisting or VPN access for remote connections."This addition provides users with important security considerations when setting up their satellite configuration, promoting better security practices.
50-53
: Clarify scope of telemetry data collection.The current content provides a good explanation of telemetry data collection, but it could benefit from a clearer statement about the scope of data collection.
Consider adding a more explicit statement about when data collection occurs:
- "content": "By opting to share telemetry with us, you play a crucial role in contributing valuable, anonymous information that enables us to better understand user experiences and improve our software's performance.\n\nYour telemetry data includes essential insights into how the software functions in real-world scenarios. This data is collected anonymously, prioritizing your privacy and confidentiality.\n\nThe information gathered helps us identify potential issues, optimize features, and ensure a smoother, more efficient user experience for everyone.\n\nFor more information about collected data please visit: https://github.com/OpenVoiceOS/ovos-installer/tree/main/docs/telemetry.md\n\nThis data collection will only happen during the installation process.\n\nDo you accept to share anonymous data with us?" + "content": "By opting to share telemetry with us, you play a crucial role in contributing valuable, anonymous information that enables us to better understand user experiences and improve our software's performance.\n\nYour telemetry data includes essential insights into how the software functions in real-world scenarios. This data is collected anonymously, prioritizing your privacy and confidentiality.\n\nThe information gathered helps us identify potential issues, optimize features, and ensure a smoother, more efficient user experience for everyone.\n\nFor more information about collected data please visit: https://github.com/OpenVoiceOS/ovos-installer/tree/main/docs/telemetry.md\n\nImportant: This data collection will only happen during the installation process. No data will be collected after the installation is complete unless you explicitly opt-in to additional telemetry programs in the future.\n\nDo you accept to share anonymous data with us during the installation process?"This revision emphasizes that the data collection is limited to the installation process and clarifies that no further data will be collected without explicit consent, which may help alleviate privacy concerns.
translations/de-de/strings.json (2)
16-22
: Minor language inconsistency in features description.The translations for the features section are generally accurate and informative. However, there's a minor inconsistency in language use:
- Line 18 uses "Interfaccia utente grafica" (Italian) instead of the German "Grafische Benutzeroberfläche" when explaining GUI.
Consider updating line 18 to use the German term:
- "content": "Bei der Wahl zwischen GUI (Interfaccia utente grafica) und Skills in Open Voice OS sollten Sie Ihre Vorlieben und Bedürfnisse berücksichtigen.\n\nDie GUI ist ein quelloffenes visuelles und Display-Framework für OVOS, das auf KDE Plasma läuft und mit Kirigami, unterstützt durch Qt, entwickelt wurde.\n\nSkills ermöglichen die Interaktion durch Sprache, was sie effizient für Aufgaben wie Hausautomatisierung, Informationsabfrage und die Steuerung intelligenter Geräte durch Sprachbefehle macht.\n\nBitte wählen Sie die zu aktivierenden Funktionen aus:", + "content": "Bei der Wahl zwischen GUI (Grafische Benutzeroberfläche) und Skills in Open Voice OS sollten Sie Ihre Vorlieben und Bedürfnisse berücksichtigen.\n\nDie GUI ist ein quelloffenes visuelles und Display-Framework für OVOS, das auf KDE Plasma läuft und mit Kirigami, unterstützt durch Qt, entwickelt wurde.\n\nSkills ermöglichen die Interaktion durch Sprache, was sie effizient für Aufgaben wie Hausautomatisierung, Informationsabfrage und die Steuerung intelligenter Geräte durch Sprachbefehle macht.\n\nBitte wählen Sie die zu aktivierenden Funktionen aus:",
46-49
: Minor formatting improvement for consistency.The translations for the installation summary are accurate and the use of variables to display user selections is correct. However, there's a minor formatting inconsistency that could be improved.
Consider updating the formatting of the "Tuning" line to match the others:
- - Tuning: $TUNING\n\n + - Tuning: $TUNING\nThis change removes the extra newline after the "Tuning" line, making it consistent with the formatting of the other lines in the summary.
translations/hi-in/strings.json (5)
12-15
: Consider improving the formatting of system information for better readability.The translations are accurate, but the formatting of the system information could be enhanced for better readability in Hindi. Consider adding appropriate spacing or line breaks between the labels and values.
Here's a suggested improvement for the content string:
- "content": "कृपया पता लगाई गई जानकारी को सत्यापित करें:\n\n - OS: ${DISTRO_NAME^} $DISTRO_VERSION\n - Kernel: $KERNEL\n - RPi: $RASPBERRYPI_MODEL\n - Python: $(echo \"$PYTHON\" | awk '{ print $NF }')\n - AVX/SIMD: $CPU_IS_CAPABLE\n - Hardware: $HARDWARE_DETECTED\n - Venv: $VENV_PATH\n - Sound: $SOUND_SERVER\n - Display: ${DISPLAY_SERVER^}" + "content": "कृपया पता लगाई गई जानकारी को सत्यापित करें:\n\n - OS: ${DISTRO_NAME^} $DISTRO_VERSION\n - कर्नेल: $KERNEL\n - RPi: $RASPBERRYPI_MODEL\n - पायथन: $(echo \"$PYTHON\" | awk '{ print $NF }')\n - AVX/SIMD: $CPU_IS_CAPABLE\n - हार्डवेयर: $HARDWARE_DETECTED\n - Venv: $VENV_PATH\n - ध्वनि: $SOUND_SERVER\n - प्रदर्शन: ${DISPLAY_SERVER^}"This change translates some of the labels to Hindi and aligns the values for better readability.
23-26
: Ensure consistency in terminology for "voice assistant".The translations are accurate, but there's an inconsistency in the use of the term "voice assistant". It's written in both English and Hindi transliteration.
Consider using a consistent term throughout the content. Here's a suggested improvement:
- "content": "स्थापना सफलतापूर्वक पूर्ण हो गई है! 🎉\n\nआपका voice assistant वॉयस असिस्टेंट (voice assistant) कार्य करने के लिए तैयार है। हम इस वॉयस असिस्टेंट (voice assistant) द्वारा पेश की जाने वाली सुविधाओं और क्षमताओं की विस्तृत श्रृंखला का पता लगाने के लिए उत्साहित हैं।\n\nयदि आपने डिफ़ॉल्ट (default) कौशल सुविधा सक्षम की है तो आप यह कहकर अपने सहायक के साथ बातचीत करना शुरू कर सकते हैं:\n\n - Hey Mycroft, समय क्या हुआ?\n - Hey Mycroft, तापमान क्या है?\n - Hey Mycroft, आपको किसने बनाया?\n - Hey Mycroft, एडा लवलेस कौन है?\n - Hey Mycroft, ड्यूक नुकेम क्या कहेंगे?\n\nआपके सहायक की सेटिंग्स को $CONFIG_FILE कॉन्फ़िगरेशन फ़ाइल(configuration file) में बदला जा सकता है।\n\nयदि आपको भविष्य में किसी सहायता या अपडेट की आवश्यकता हो तो बेझिझक संपर्क करें। अपने Open Voice OS अनुभव का आनंद लें!" + "content": "स्थापना सफलतापूर्वक पूर्ण हो गई है! 🎉\n\nआपका वॉयस असिस्टेंट कार्य करने के लिए तैयार है। हम इस वॉयस असिस्टेंट द्वारा पेश की जाने वाली सुविधाओं और क्षमताओं की विस्तृत श्रृंखला का पता लगाने के लिए उत्साहित हैं।\n\nयदि आपने डिफ़ॉल्ट कौशल सुविधा सक्षम की है तो आप यह कहकर अपने सहायक के साथ बातचीत करना शुरू कर सकते हैं:\n\n - Hey Mycroft, समय क्या हुआ?\n - Hey Mycroft, तापमान क्या है?\n - Hey Mycroft, आपको किसने बनाया?\n - Hey Mycroft, एडा लवलेस कौन है?\n - Hey Mycroft, ड्यूक नुकेम क्या कहेंगे?\n\nआपके सहायक की सेटिंग्स को $CONFIG_FILE कॉन्फ़िगरेशन फ़ाइल में बदला जा सकता है।\n\nयदि आपको भविष्य में किसी सहायता या अपडेट की आवश्यकता हो तो बेझिझक संपर्क करें। अपने Open Voice OS अनुभव का आनंद लें!"This change uses "वॉयस असिस्टेंट" consistently and removes unnecessary English terms in parentheses.
27-30
: Enhance consistency in technical terminology.The translations are accurate, but there's an inconsistency in the use of some technical terms. Some are left in English while others are translated or transliterated.
Consider using consistent Hindi translations or transliterations for technical terms. Here's a suggested improvement:
- "content": "Open Voice OS इंस्टालेशन (install) करने के लिए, आपके पास दो प्राथमिक विधियाँ हैं:\n\n - Containers engine such as Docker\n - Setting it up in a Python virtual environment\n\nContainers (कंटेनर) अलगाव और आसान तैनाती प्रदान करते हैं, जबकि पायथन वर्चुअल वातावरण (Python virtual environment) इंस्टॉलेशन पर अधिक लचीलापन और नियंत्रण प्रदान करता है।\n\nयदि Container (कंटेनर) विधि का चयन किया गया है, सिस्टम पर मौजूद नहीं होने पर Docker(डॉकर) खुद ब खुद से इंस्टॉल हो जाएगा।\n\nकृपया एक इंस्टालेशन (install) विधि चुनें:" + "content": "Open Voice OS स्थापना करने के लिए, आपके पास दो प्राथमिक विधियाँ हैं:\n\n - डॉकर जैसे कंटेनर इंजन\n - पायथन वर्चुअल वातावरण में सेट करना\n\nकंटेनर अलगाव और आसान तैनाती प्रदान करते हैं, जबकि पायथन वर्चुअल वातावरण स्थापना पर अधिक लचीलापन और नियंत्रण प्रदान करता है।\n\nयदि कंटेनर विधि का चयन किया गया है, सिस्टम पर मौजूद नहीं होने पर डॉकर खुद ब खुद से स्थापित हो जाएगा।\n\nकृपया एक स्थापना विधि चुनें:"
This change uses consistent Hindi translations or transliterations for technical terms throughout the content.
31-34
: LGTM: Profile selection translations are accurate and informative.The translations for the profile selection screen, including descriptions of different profiles, are well-formatted and accurately convey the necessary information.
For consistency, consider transliterating "Open Voice OS" as "ओपन वॉयस ओएस" throughout the content, as it's done in some parts already. This minor change would enhance the overall consistency of the translations.
46-65
: Overall good translations with minor inconsistencies in terminology.The translations for the summary, telemetry, tuning, uninstall, and welcome screens are generally accurate and well-formatted. However, there are some minor inconsistencies in the use of English terms and transliterations across these sections.
Consider the following improvements for consistency:
- In the "summary.sh" section, translate "Method" to "विधि" for consistency.
- In the "telemetry.sh" section, consider transliterating "telemetry" as "टेलीमेट्री" consistently.
- In the "tuning.sh" section, consider translating "Raspberry Pi" as "रास्पबेरी पाई" consistently.
- In the "uninstall.sh" section, consider translating "Uninstall" in the title to "अनइंस्टॉल" for consistency with the content.
These minor adjustments would enhance the overall consistency and quality of the translations.
translations/it-it/strings.json (1)
8-11
: Minor improvement: Ensure consistent use of quotation marks.The translations are accurate and informative. However, for consistency, consider using the same style of quotation marks for both version names.
Suggested change:
- "content": "Esistono due diverse versioni di Open Voice OS:\n\n - Stabile (consigliata ma non ancora disponibile)\n - Per sviluppatori\n\nLa versione stabile di Open Voice OS è una versione ben collaudata e affidabile, adatta per l'uso quotidiano.\n\nLa versione per sviluppatori di Open Voice OS è dedicata agli sviluppatori e agli appassionati che desiderano sperimentare le ultime novità e contribuire all'ulteriore sviluppo della piattaforma.\n\nScegli una versione:" + "content": "Esistono due diverse versioni di Open Voice OS:\n\n - \"Stabile\" (consigliata ma non ancora disponibile)\n - \"Per sviluppatori\"\n\nLa versione stabile di Open Voice OS è una versione ben collaudata e affidabile, adatta per l'uso quotidiano.\n\nLa versione per sviluppatori di Open Voice OS è dedicata agli sviluppatori e agli appassionati che desiderano sperimentare le ultime novità e contribuire all'ulteriore sviluppo della piattaforma.\n\nScegli una versione:"translations/fr-fr/strings.json (1)
12-15
: Improve formatting in "detection.sh" content for consistency.The translations in the "detection.sh" section are accurate and preserve the technical terminology. However, there's a minor formatting inconsistency with spaces after colons.
Consider applying the following change for better readability and consistency:
- "content": "Veuillez trouver ci-dessous les information détectées:\n\n - Système d'exploitation: ${DISTRO_NAME^} $DISTRO_VERSION\n - Noyau: $KERNEL\n - RPi: $RASPBERRYPI_MODEL\n - Python: $(echo \"$PYTHON\" | awk '{ print $NF }')\n - AVX/SIMD: $CPU_IS_CAPABLE\n - Matériel: $HARDWARE_DETECTED\n - Environnement virtuel: $VENV_PATH\n - Serveur de son: $SOUND_SERVER\n - Serveur graphique: ${DISPLAY_SERVER^}" + "content": "Veuillez trouver ci-dessous les informations détectées :\n\n - Système d'exploitation : ${DISTRO_NAME^} $DISTRO_VERSION\n - Noyau : $KERNEL\n - RPi : $RASPBERRYPI_MODEL\n - Python : $(echo \"$PYTHON\" | awk '{ print $NF }')\n - AVX/SIMD : $CPU_IS_CAPABLE\n - Matériel : $HARDWARE_DETECTED\n - Environnement virtuel : $VENV_PATH\n - Serveur de son : $SOUND_SERVER\n - Serveur graphique : ${DISPLAY_SERVER^}"Note: Also corrected "les information" to "les informations".
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (13)
- .github/workflows/sync_tx.yml (1 hunks)
- scripts/sync_translations.py (1 hunks)
- translations/de-de/strings.json (1 hunks)
- translations/en-us/strings.json (1 hunks)
- translations/es-es/strings.json (1 hunks)
- translations/fr-fr/strings.json (1 hunks)
- translations/hi-in/strings.json (1 hunks)
- translations/it-it/strings.json (1 hunks)
- translations/nl-nl/strings.json (1 hunks)
- translations/pt-pt/strings.json (1 hunks)
- tui/locales/hi-in/satellite.sh (1 hunks)
- tui/locales/hi-in/telemetry.sh (1 hunks)
- tui/locales/hi-in/tuning.sh (1 hunks)
✅ Files skipped from review due to trivial changes (1)
- tui/locales/hi-in/tuning.sh
🧰 Additional context used
🪛 actionlint
.github/workflows/sync_tx.yml
14-14: the runner of "actions/checkout@v2" action is too old to run on GitHub Actions. update the action's version to fix this issue
(action)
19-19: the runner of "actions/setup-python@v1" action is too old to run on GitHub Actions. update the action's version to fix this issue
(action)
🪛 yamllint
.github/workflows/sync_tx.yml
[error] 22-22: trailing spaces
(trailing-spaces)
[error] 27-27: trailing spaces
(trailing-spaces)
[error] 32-32: trailing spaces
(trailing-spaces)
🔇 Additional comments (64)
tui/locales/hi-in/telemetry.sh (4)
Line range hint
1-15
: LGTM: Content reordering improves information flowThe reordering of the
CONTENT
variable improves the flow of information by providing context before asking for user consent. The translation appears accurate, and the formatting is consistent.
16-16
: LGTM: Title addition enhances user experienceThe addition of the
TITLE
variable with "Open Voice OS Installation - टेलीमेट्री" provides a clear header for the telemetry section. The bilingual approach (English and Hindi) is user-friendly, especially for users who may not be fully fluent in Hindi.
18-18
: LGTM: Export statement correctly updatedThe export statement has been properly updated to include both
CONTENT
andTITLE
variables. This ensures that both variables are available for use in other scripts or parts of the installation process, maintaining consistency with the addition of the newTITLE
variable.
Line range hint
1-18
: Overall: Excellent improvements to Hindi localizationThe changes made to this file significantly enhance the user experience for Hindi-speaking users during the Open Voice OS installation process. The reordering of content, addition of a bilingual title, and proper export of variables all contribute to a more user-friendly and informative telemetry consent process. These modifications align well with the PR objectives of improving translation support and the overall installation experience.
tui/locales/hi-in/satellite.sh (4)
6-11
: LGTM: Consistent change in comment language.The change from Hindi to English for the comment is consistent with the previous modification. The Hindi content is correctly preserved, maintaining the localization.
13-18
: LGTM: Consistent change in comment language.The change from Hindi to English for the comment is consistent with the previous modifications. The Hindi content is correctly preserved, maintaining the localization.
20-24
: LGTM: Consistent change in comment language.The change from Hindi to English for the comment is consistent with the previous modifications. The Hindi content is correctly preserved, maintaining the localization.
3-4
: Approve change, but verify consistency across localization files.The change from Hindi to English for the comment improves maintainability for non-Hindi speaking developers. This aligns with the PR objective of supporting Gitlocalize integration.
Please run the following script to check if this change is consistent across other localization files:
✅ Verification successful
Update the script to correctly search within
.sh
files in other localization directories:Please run the following script to verify consistency across all localization files:
Update the script to correctly search within
.sh
files in other localization directories:Please run the following script to verify consistency across all localization files:
<!-- [monologue] [task final_verification_1/1] Finalize the verification based on the successful execution of the updated script. [observations] - The corrected shell script successfully found the "Global message" comment in all localization `.sh` files. - All localization files (`de-de`, `en-us`, `es-es`, `fr-fr`, `hi-in`, `it-it`, `nl-nl`, `pt-pt`) contain the English comment "# Global message". [analysis] - The presence of the English comment across all localization files confirms consistency. - This alignment ensures maintainability and supports the PR objective of integrating Gitlocalize. [actions] - Conclude the verification process by approving the initial change. -->Consistency across localization files verified.
All localization files contain the updated English comments, ensuring uniformity and maintainability as intended by the PR.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Check if other localization files have similar English comments # Test: Search for "Global message" in other localization files fd -e sh -x grep -H "Global message" {} tui/localesLength of output: 4875
Script:
#!/bin/bash # Description: Check if other localization files have similar English comments # Find all .sh files within tui/locales and search for "Global message" fd -e sh tui/locales | xargs grep -H "Global message"Length of output: 405
Script:
#!/bin/bash # Description: Check if other localization files have similar English comments # Find all .sh files within tui/locales and search for "Global message" fd -e sh . tui/locales | xargs grep -H "Global message"Length of output: 441
.github/workflows/sync_tx.yml (2)
1-8
: LGTM: Workflow name and triggers are well-defined.The workflow name accurately describes its purpose, and the triggers (manual dispatch and pushes to
dev
) are appropriate for synchronizing translations.
33-37
: LGTM: Commit step is well-configured.The commit step is correctly set up using the latest version of the git-auto-commit-action. It appropriately commits changes to the dev branch with a clear commit message.
scripts/sync_translations.py (2)
1-4
: LGTM: Imports are appropriate and concise.The imported modules (json, os, and dirname from os.path) are all necessary for the script's functionality. There are no unused imports, which is good for code cleanliness.
1-122
: Overall, the script is well-structured but could benefit from enhanced error handling and user feedback.The
sync_translations.py
script effectively manages the synchronization of translation files. It's well-organized with clear template definitions, appropriate use of dictionaries for mapping, and functions that handle specific tasks.Key points for improvement:
- Add comprehensive error handling throughout the script.
- Enhance user feedback with progress reporting and completion messages.
- Review the case sensitivity handling of translation keys.
- Consider simplifying some string operations.
These enhancements will make the script more robust, informative, and maintainable. Great job on creating a functional script for managing translations!
translations/en-us/strings.json (2)
2-7
: LGTM: Common button labels are clear and concise.The "misc.sh" section provides appropriate and consistent labels for common buttons used throughout the installation process.
54-65
: LGTM: Clear and informative content for tuning, uninstallation, and welcome sections.The "tuning.sh", "uninstall.sh", and "welcome.sh" sections provide clear and helpful information:
- The tuning section explains the benefits of optimizing for Raspberry Pi.
- The uninstall section clearly states which components will not be removed and why.
- The welcome message is friendly and encouraging.
These sections are well-written and require no changes.
translations/pt-pt/strings.json (7)
2-7
: LGTM: Common button translations look good.The translations for common buttons are accurate and consistent. They provide clear and concise Portuguese equivalents for "Next", "Yes", "No", and "Back".
35-45
: LGTM: HiveMind satellite configuration translations are clear and accurate.The translations for the HiveMind satellite configuration process are well-structured and provide clear guidance for Portuguese-speaking users. The use of numbered titles (1/4, 2/4, etc.) effectively guides users through the multi-step configuration process.
1-66
: Overall: Excellent Portuguese translations for Open Voice OS installation.The Portuguese translations in this file are comprehensive, accurate, and well-structured. They effectively convey all necessary information for the Open Voice OS installation process to Portuguese-speaking users.
Key points:
- All sections of the installation process are well-translated.
- Technical terms and concepts are accurately conveyed.
- The translations maintain a friendly and informative tone throughout.
To ensure continued quality and consistency:
- Verify all placeholders and variables are correctly maintained across different language files.
- Check that the telemetry information link is up-to-date and accessible.
- Ensure the list of packages mentioned in the uninstallation section is consistent across all translations.
- Keep the information about the availability of the stable version up-to-date.
Great job on providing a high-quality Portuguese localization for the Open Voice OS installer!
12-34
: LGTM: Installation process translations are comprehensive and accurate.The translations for system properties, features, installation completion, deployment methods, and profile selection are well-done. They provide detailed and accurate information to guide Portuguese-speaking users through the installation process.
To ensure the placeholders are correctly maintained, run the following script:
#!/bin/bash # Description: Verify that all placeholders in the Portuguese translation match the English version # Test: Compare placeholders in Portuguese and English translations diff <(grep -oP '\$\{[^}]+\}' translations/en/strings.json | sort) <(grep -oP '\$\{[^}]+\}' translations/pt-pt/strings.json | sort)If there are any differences, please review and update the placeholders accordingly.
46-49
: LGTM: Installation summary translations are concise and accurate.The translations for the installation summary screen effectively convey the chosen options to Portuguese-speaking users.
To ensure the placeholders are correctly maintained, run the following script:
#!/bin/bash # Description: Verify that all placeholders in the Portuguese translation match the English version for the summary section # Test: Compare placeholders in Portuguese and English translations for the summary section diff <(jq -r '.["summary.sh"].content' translations/en/strings.json | grep -oP '\$\w+' | sort) <(jq -r '.["summary.sh"].content' translations/pt-pt/strings.json | grep -oP '\$\w+' | sort)If there are any differences, please review and update the placeholders accordingly.
58-65
: LGTM: Uninstallation and welcome translations are clear and welcoming.The translations for the uninstallation process and welcome screen are well-done, providing clear information and a friendly introduction to Portuguese-speaking users.
To ensure the list of packages that won't be removed during uninstallation is consistent with other translations, run the following script:
#!/bin/bash # Description: Verify that the list of packages is consistent across all translation files # Test: Compare package lists in all translation files for file in translations/*/strings.json; do echo "Packages in $file:" jq -r '.["uninstall.sh"].content' "$file" | grep -oP '^\s+- \K.*' echo doneReview the output to ensure the package lists are consistent across all translations. If there are any discrepancies, update the translations accordingly.
50-57
: LGTM: Telemetry and optimization translations are informative and accurate.The translations for telemetry consent and Raspberry Pi optimization effectively communicate the importance and benefits to Portuguese-speaking users.
Please verify that the telemetry information link is correct and accessible:
#!/bin/bash # Description: Verify the telemetry information link # Test: Check if the telemetry information link is accessible curl -Is https://github.com/OpenVoiceOS/ovos-installer/tree/main/docs/telemetry.md | head -n 1Ensure that the link returns a 200 OK status. If not, update the link in both the English and Portuguese translations.
translations/nl-nl/strings.json (10)
2-7
: LGTM: Common button translations are accurate.The translations for common buttons ("Volgende", "Ja", "Nee", "Terug") are correct and appropriate for Dutch.
12-15
: LGTM: System properties detection translations are correct.The Dutch translations for the system properties detection screen are accurate. The placeholders for various system properties (${DISTRO_NAME^}, $DISTRO_VERSION, etc.) are correctly maintained, ensuring that the actual values will be displayed properly during installation.
16-22
: LGTM: Feature selection translations are clear and accurate.The Dutch translations for the features selection screen are well-done. They provide clear explanations of the GUI and skills options, helping users make informed choices during the installation process.
27-45
: LGTM: Installation environment, profile, and satellite translations are well-done.The Dutch translations for the installation environment, profile selection, and satellite configuration sections are accurate and informative. They provide clear explanations of the different options and configuration steps, helping users make informed decisions during the installation process.
46-49
: LGTM: Installation summary translations are correct and complete.The Dutch translations for the installation summary screen are accurate. The placeholders for various installation choices ($METHOD, $CHANNEL, $PROFILE, etc.) are correctly maintained, ensuring that the actual values will be displayed properly during the installation process.
50-57
: LGTM: Telemetry and tuning translations are clear and informative.The Dutch translations for the telemetry consent and Raspberry Pi tuning options are well-done. They provide clear explanations of the purpose of telemetry data collection and the benefits of tuning for Raspberry Pi devices. The inclusion of a URL for more information about telemetry data collection is helpful for users who want to learn more.
58-66
: LGTM: Uninstallation and welcome translations are accurate and engaging.The Dutch translations for the uninstallation process and welcome screen are well-done. The uninstall section clearly explains which packages won't be removed during the process. The welcome message is friendly, encouraging, and provides a good introduction to Open Voice OS for Dutch-speaking users.
1-66
: Overall assessment: High-quality Dutch translations for Open Voice OS installation.This new
strings.json
file provides comprehensive and accurate Dutch translations for the Open Voice OS installation process. The translations cover all aspects of the installation, including welcome messages, feature selections, system detection, and configuration options. The language used is clear, friendly, and informative, which should provide a good user experience for Dutch-speaking users.A few minor points were raised during the review:
- The mention of the stable version's unavailability may need future updates.
- The handling of the
$CONFIG_FILE
variable in the finish screen should be verified.These points don't detract from the overall quality of the translations but should be kept in mind for future maintenance of the file.
23-26
: Translations are good, but verify the configuration file path.The Dutch translations for the installation completion screen are accurate and informative. However, there's a potential issue with the configuration file path mentioned in the content:
De instellingen van je wizard kun je veranderen in het configuratiebestand $CONFIG_FILE.
The
$CONFIG_FILE
variable might not be properly expanded in the JSON file. Ensure that this variable is correctly replaced with the actual configuration file path during the installation process.To verify the handling of the
$CONFIG_FILE
variable, run the following script:#!/bin/bash # Check how $CONFIG_FILE is handled in the installation scripts rg --type bash '\$CONFIG_FILE'
8-11
: Translations are accurate, but content may need future updates.The Dutch translations for the version selection screen are correct. However, the content mentions that the stable version is not yet available ("maar nog niet beschikbaar"). This information may need to be updated in the future when the stable version is released.
To ensure consistency across all language files, run the following script:
translations/es-es/strings.json (9)
2-7
: LGTM: Common button translations are accurate.The translations for common buttons (OK, Yes, No, Back) are correct and consistent with standard Spanish UI terminology.
8-11
: Verify the availability of the stable version.The translations in this section are accurate and well-formatted. However, there's a note indicating that the stable version is not yet available ("aún no disponible"). Please confirm if this is still the case or if it needs to be updated.
12-15
: LGTM: System properties detection translations are correct.The translations for the system properties detection screen are accurate and maintain the correct placeholders for dynamic content.
16-22
: LGTM: Feature descriptions are well-translated.The translations for the features selection screen, including descriptions of GUI and Skills, are accurate and informative.
27-45
: LGTM: Installation methods, profiles, and satellite configuration translations are accurate.The translations for installation methods, profiles, and satellite configuration are clear, accurate, and provide good explanations for each option and step in the process.
46-49
: LGTM: Installation summary translations are correct.The translations for the installation summary screen are accurate and maintain the correct placeholders for the user's installation choices.
50-57
: LGTM: Telemetry and tuning translations are accurate.The translations for the telemetry consent and Raspberry Pi tuning options are clear and accurate.
Please verify that the URL for telemetry information (https://github.com/OpenVoiceOS/ovos-installer/tree/main/docs/telemetry.md) is correct and accessible.
58-66
: LGTM: Uninstallation and welcome screen translations are well-done.The translations for the uninstallation process and welcome screen are accurate, clear, and maintain a friendly tone appropriate for new users.
1-66
: Overall assessment: High-quality Spanish translations for Open Voice OS installation.The
strings.json
file provides comprehensive and accurate Spanish translations for the Open Voice OS installation process. The translations maintain consistency in terminology and tone throughout the various installation steps. A few minor points were raised for verification:
- The availability of the stable version (line 10)
- The configuration file path placeholder (line 25)
- The telemetry information URL (line 52)
These points should be double-checked to ensure they align with the current state of the project.
Great job on providing a localized experience for Spanish-speaking users!
translations/de-de/strings.json (10)
2-7
: LGTM: Common button translations look good.The translations for common buttons in the "misc.sh" section are accurate and complete.
8-11
: Verify the availability status of the stable version.The content mentions that the stable version is recommended but not yet available. Please verify if this is still the case or if the stable version has become available since this translation was created. Update the text accordingly if the status has changed.
12-15
: LGTM: System properties detection translations are correct.The translations for system properties detection are accurate and the use of runtime variables is correct.
23-26
: LGTM: Installation completion message is informative.The translations for the installation completion message are accurate and provide helpful information to the user, including example voice commands.
Please verify that the
$CONFIG_FILE
variable in the following line will be correctly populated at runtime:Die Einstellungen Ihres Assistenten können in der Konfigurationsdatei $CONFIG_FILE geändert werden.
Ensure that the installation script properly sets this variable before displaying the message.
27-30
: LGTM: Installation environment options are well explained.The translations for the installation environment options are accurate and provide clear explanations of the differences between container and virtual Python environment installations.
31-34
: LGTM: Profile options are well described.The translations for the profile selection are accurate and provide clear descriptions of each profile option (Open Voice OS Master, HiveMind Satellite, and Server).
35-45
: LGTM: HiveMind Satellite setup instructions are clear.The translations for the HiveMind Satellite setup are accurate and provide clear instructions for entering the host, port, key, and password information.
50-53
: LGTM: Telemetry consent information is comprehensive.The translations for the telemetry consent are accurate and provide clear information about data collection. The inclusion of a link for more detailed information is helpful for users who want to learn more about the collected data.
54-65
: LGTM: Remaining sections are well translated.The translations for the "tuning.sh", "uninstall.sh", and "welcome.sh" sections are accurate and provide clear information to the user:
- The Raspberry Pi tuning option is well explained.
- The uninstallation process clearly states which packages will not be removed.
- The welcome message is friendly and informative.
1-66
: Overall, excellent German translations for the Open Voice OS installation process.The translations in this file are comprehensive and of high quality, providing clear guidance to German-speaking users throughout the installation process. A few minor issues were identified:
- A language inconsistency in the "features.sh" section (Italian term used instead of German).
- A suggestion to verify the runtime population of the
$CONFIG_FILE
variable.- A minor formatting inconsistency in the "summary.sh" section.
These issues are minor and can be easily addressed. Once resolved, the translations will be fully ready for use in the Open Voice OS installer.
translations/hi-in/strings.json (5)
2-7
: LGTM: Common button translations look good.The translations for common buttons (OK, Yes, No, Back) are correct and concise.
8-11
: LGTM: Channel selection translations are accurate and informative.The translations for the channel selection screen, including descriptions of stable and development channels, are well-formatted and accurately convey the necessary information.
16-22
: LGTM: Feature selection translations are accurate and informative.The translations for the feature selection screen, including descriptions of GUI and skills features, are well-formatted and accurately convey the necessary information.
35-45
: LGTM: HiveMind Satellite configuration translations are clear and accurate.The translations for the HiveMind Satellite configuration screens, including prompts for host, port, key, and password, are well-formatted and accurately convey the necessary information.
1-66
: Overall, the Hindi translations are of high quality and provide a good user experience.The
translations/hi-in/strings.json
file contains comprehensive and generally accurate Hindi translations for the Open Voice OS installation process. The translations cover all necessary components and will effectively guide Hindi-speaking users through the installation.While some minor inconsistencies in terminology and transliteration were identified, these do not significantly impact the overall quality or understanding of the content. Addressing these minor issues would further enhance the user experience and maintain consistency throughout the installation process.
Great job on providing localized support for Hindi-speaking users!
translations/it-it/strings.json (6)
2-7
: LGTM: Common button translations look good.The translations for common buttons are accurate, concise, and appropriate for their intended use in the user interface.
12-15
: LGTM: System properties detection translations are accurate.The translations for the system properties detection screen are correct and consistent with the expected format. The use of placeholders for dynamic content is appropriate.
23-45
: LGTM: Installation steps and options translations are accurate.The translations for the installation completion, environment selection, profile selection, and satellite configuration screens are correct and informative. The content effectively guides the user through these important steps of the installation process.
46-57
: LGTM: Summary, telemetry, and tuning translations are well-crafted.The translations for the installation summary, telemetry options, and system tuning sections are accurate and informative. The use of placeholders for dynamic content is appropriate, and the explanations effectively communicate the purpose and implications of each option to the user.
58-66
: LGTM: Uninstallation and welcome translations are well-done.The translations for the uninstallation process and welcome screen are accurate and effective. The uninstallation section clearly explains which components will not be removed, and the welcome message provides a friendly and informative introduction to Open Voice OS.
Overall, the Italian translations in this file are of high quality, accurately conveying the necessary information for each step of the installation process. Great job!
16-22
:⚠️ Potential issueMinor correction: Fix typo in "competenze".
The translations for the features selection screen are accurate and informative. However, there's a minor typo in the Italian word for "skills".
Suggested change:
- "content": "Quando si sceglie tra GUI (Graphical User Interface, interfaccia grafica) e Skills (competenze) in Open Voice OS, è necessario considerare le proprie preferenze ed esigenze.\n\nL'interfaccia grafica è un framework visuale e di visualizzazione open source per OVOS che gira su KDE Plasma ed è stato sviluppato con Kirigami, supportato da Qt.\n\nLe competenze consentono l'interazione attraverso la voce, rendendole efficienti per attività quali la domotica, il reperimento di informazioni e il controllo di dispositivi intelligenti tramite comandi vocali.\n\nSeleziona le funzioni da attivare:", + "content": "Quando si sceglie tra GUI (Graphical User Interface, interfaccia grafica) e Skills (competenze) in Open Voice OS, è necessario considerare le proprie preferenze ed esigenze.\n\nL'interfaccia grafica è un framework visuale e di visualizzazione open source per OVOS che gira su KDE Plasma ed è stato sviluppato con Kirigami, supportato da Qt.\n\nLe competenze consentono l'interazione attraverso la voce, rendendole efficienti per attività quali la domotica, il reperimento di informazioni e il controllo di dispositivi intelligenti tramite comandi vocali.\n\nSeleziona le funzioni da attivare:",Likely invalid or redundant comment.
translations/fr-fr/strings.json (3)
2-7
: LGTM: UI button translations are accurate and concise.The translations for common UI buttons in the "misc.sh" section are correct and appropriate. They maintain consistency and clarity for French-speaking users.
62-65
: LGTM: Welcome message is well-translated and maintains the enthusiastic tone.The translation in the "welcome.sh" section accurately conveys the welcoming and encouraging message for the Open Voice OS installation. The content is grammatically correct and maintains the intended enthusiasm.
1-66
: Overall, the French translations are of good quality with minor improvements needed.The
translations/fr-fr/strings.json
file provides comprehensive and generally accurate French translations for the Open Voice OS installation process. The translations maintain the technical terminology and convey the intended information effectively.However, there are several minor issues throughout the file that should be addressed:
- Grammatical errors and typos in various sections.
- Inconsistent formatting, particularly with spaces after colons.
- A few instances of unclear or awkward phrasing.
Addressing these issues will significantly enhance the user experience for French-speaking users and ensure a more polished and professional appearance of the installation process.
It's recommended to carefully review and implement the suggested changes in the previous comments. Additionally, consider having a native French speaker or professional translator review the final version to catch any remaining nuances or improvements.
for reference, this was the quick script to parse locale files import json
import os
from os.path import dirname
FILES = ['misc.sh', 'channels.sh', 'detection.sh', 'features.sh',
'finish.sh', 'methods.sh', 'profiles.sh', 'satellite.sh',
'summary.sh', 'telemetry.sh', 'tuning.sh', 'uninstall.sh',
'welcome.sh']
TRANSLATIONS_FOLDER = f"{dirname(dirname(__file__))}/translations"
LOCALE_FOLDER = f"{dirname(dirname(__file__))}/tui/locales"
def get_key(k, lines, f):
in_k = False
val = ""
for l in lines:
if l.strip().startswith("#"):
continue # comment
if f == "satellite.sh" and k == "content" and 'content="' in l:
in_k = True
elif l.strip() == '"':
in_k = False
elif l.startswith("export "):
in_k = False
elif l.startswith(f"{k.upper()}="):
in_k = True
elif '="' in l:
in_k = False
if in_k:
if f == "satellite.sh" and l.strip() == "$content":
continue
l = l.split('="')[-1]
if l.endswith('"'):
l = l[:-1]
val += f"\n{l}"
return val.strip()
def get_locale(lang):
DATA = {}
for f in FILES:
try:
with open(f"{LOCALE_FOLDER}/{lang}/{f}", "r") as fi:
lines = fi.read().split("\n")
except:
print(f"missing file: {lang}/{f}")
continue
# print(lang, data)
if f == "satellite.sh":
DATA[f] = {
"title_host": get_key("title_host", lines, f),
"title_port": get_key("title_port", lines, f),
"title_key": get_key("title_key", lines, f),
"title_password": get_key("title_password", lines, f),
"content": get_key("content", lines, f),
"content_host": get_key("content_host", lines, f),
"content_port": get_key("content_port", lines, f),
"content_key": get_key("content_key", lines, f),
"content_password": get_key("content_password", lines, f),
}
elif f == "features.sh":
DATA[f] = {
"title": get_key("title", lines, f),
"content": get_key("content", lines, f),
"skill_description": get_key("skill_description", lines, f),
"extra_skill_description": get_key("extra_skill_description", lines, f),
"gui_description": get_key("gui_description", lines, f)
}
elif f == "misc.sh":
DATA[f] = {
"ok_button": get_key("ok_button", lines, f),
"yes_button": get_key("yes_button", lines, f),
"no_button": get_key("no_button", lines, f),
"back_button": get_key("back_button", lines, f),
}
else:
DATA[f] = {
"title": get_key("title", lines, f),
"content": get_key("content", lines, f),
}
return DATA
for lang in os.listdir(LOCALE_FOLDER):
data = get_locale(lang)
print(lang, data)
for f in FILES:
os.makedirs(f"{TRANSLATIONS_FOLDER}/{lang}", exist_ok=True)
with open(f"{TRANSLATIONS_FOLDER}/{lang}/strings.json", "w") as f:
json.dump(data, f, indent=2, ensure_ascii=False) |
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
adds support for integrating with Gitlocalize
whenever a PR from gitlocalize bot is merged the sync_translations.py script will run and update the
locale
folder with user submitted strings from GitLocalize platformalso closes #160 (typo)
the script has been run to validate it didnt mess the files, please check the minor formatting changes caused by the script
Summary by CodeRabbit
New Features
Bug Fixes