Compare commits

..

7 Commits

Author SHA1 Message Date
xxOrdulu52xx
a1df41bd01 feat: add German translation (#78) 2025-06-27 18:23:46 +08:00
KOWX712
46e4e68dc2 misc: update .extra 2025-06-25 23:05:25 +08:00
KOWX712
453198c888 fix: typo 2025-06-24 23:35:36 +08:00
KOWX712
b3bf8bdde8 opt: sync translation from Crowdin (#72)
Co-Authored-By: cvnertnc <148134890+cvnertnc@users.noreply.github.com>
Co-Authored-By: GRgabrix <103899172+grgabrix@users.noreply.github.com>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-06-23 16:24:27 +08:00
KOWX712
b0025ea5d5 feat: add rtl language ui support 2025-06-20 13:51:56 +08:00
KOWX712
38848fa891 misc: update instruction 2025-06-20 03:08:34 +08:00
KOWX712
4cd2083b94 fix: typo 2025-06-19 21:09:05 +08:00
31 changed files with 292 additions and 56 deletions

2
.extra

File diff suppressed because one or more lines are too long

3
.gitignore vendored
View File

@@ -1,3 +1,4 @@
__MACOSX
.DS_Store
applist.json
applist.json
changelog_draft.md

View File

@@ -9,13 +9,13 @@ Telegram channel: [KOW's Little World](https://t.me/kowchannel)
## Changelog
### v4.0
- **WebUI:** Fixed `Failed to fetch secutiry patch` issue in most condition.
- **WebUI:** Fixed `Failed to fetch security patch` issue in most condition.
- **WebUI:** Added support for [qwq233's TrickyStore fork](https://github.com/qwq233/TrickyStore).
- **WebUI:** Provide option to download latest canary version in about menu.
- **action:** Removed MMRL from action redirect WebUI since MMRL no longer provide built-in WebUI. (#66, @ThanhCN0)
- **WebUI:** Unknown keybox option no longer rely on internet connection.
- **WebUI:** Fixed built-in update mechanism might fail in some condition. (@backslashxx)
- **WebUI:** Translation service now is avaible on crowdin, view [translation guide](https://github.com/KOWX712/Tricky-Addon-Update-Target-List/blob/main/module/webui/locales/GUIDE.md) for more detail. You can reach our crowdin website in the WebUI langauge menu too.
- **WebUI:** Translation service now is available on crowdin, view [translation guide](https://github.com/KOWX712/Tricky-Addon-Update-Target-List/blob/main/module/webui/locales/GUIDE.md) for more detail. You can reach our crowdin website in the WebUI language menu too.
- **WebUI:** Added Ukrainian (#43, @StepanSad), Greek (#61, @Goku818) translation.
- **WebUI:** Updated Japanese, Indonesian, Arabic, Polish, French, Portuguese, Ukrainian translation. (@reindex-ot, @Rem01Gaming, @ZG089, @Bladius2024, @GhostFRR, @SecretGogeta, [crowdin@IlliaS](https://crowdin.com/profile/illias))

View File

@@ -27,16 +27,14 @@
<div class="header">
<div id="title" data-i18n="header_title"></div><span id="module-version"></span>
<button id="help-button" class="help-button">
<svg xmlns="http://www.w3.org/2000/svg" height="21px" viewBox="0 -1060 960 990" width="21px" fill="#6E6E6E"><path d="M478-240q21 0 35.5-14.5T528-290q0-21-14.5-35.5T478-340q-21 0-35.5 14.5T428-290q0 21 14.5 35.5T478-240Zm-36-154h74q0-33 7.5-52t42.5-52q26-26 41-49.5t15-56.5q0-56-41-86t-97-30q-57 0-92.5 30T342-618l66 26q5-18 22.5-39t53.5-21q32 0 48 17.5t16 38.5q0 20-12 37.5T506-526q-44 39-54 59t-10 73Zm38 314q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z" /></svg>
<svg xmlns="http://www.w3.org/2000/svg" height="21px" viewBox="0 -960 960 960" width="21px"><path d="M478-240q21 0 35.5-14.5T528-290q0-21-14.5-35.5T478-340q-21 0-35.5 14.5T428-290q0 21 14.5 35.5T478-240Zm-36-154h74q0-33 7.5-52t42.5-52q26-26 41-49.5t15-56.5q0-56-41-86t-97-30q-57 0-92.5 30T342-618l66 26q5-18 22.5-39t53.5-21q32 0 48 17.5t16 38.5q0 20-12 37.5T506-526q-44 39-54 59t-10 73Zm38 314q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z" /></svg>
</button>
<div class="no-connection">
<svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 -920 960 960" width="20px" fill="#6E6E6E"><path d="M790-56 414-434q-47 11-87.5 33T254-346l-84-86q32-32 69-56t79-42l-90-90q-41 21-76.5 46.5T84-516L0-602q32-32 66.5-57.5T140-708l-84-84 56-56 736 736-58 56Zm-310-64q-42 0-71-29.5T380-220q0-42 29-71t71-29q42 0 71 29t29 71q0 41-29 70.5T480-120Zm236-238-29-29-29-29-144-144q81 8 151.5 41T790-432l-74 74Zm160-158q-77-77-178.5-120.5T480-680q-21 0-40.5 1.5T400-674L298-776q44-12 89.5-18t92.5-6q142 0 265 53t215 145l-84 86Z" /></svg>
<svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 -960 960 960" width="20px"><path d="M790-56 414-434q-47 11-87.5 33T254-346l-84-86q32-32 69-56t79-42l-90-90q-41 21-76.5 46.5T84-516L0-602q32-32 66.5-57.5T140-708l-84-84 56-56 736 736-58 56Zm-310-64q-42 0-71-29.5T380-220q0-42 29-71t71-29q42 0 71 29t29 71q0 41-29 70.5T480-120Zm236-238-29-29-29-29-144-144q81 8 151.5 41T790-432l-74 74Zm160-158q-77-77-178.5-120.5T480-680q-21 0-40.5 1.5T400-674L298-776q44-12 89.5-18t92.5-6q142 0 265 53t215 145l-84 86Z" /></svg>
</div>
<div class="language-dropdown">
<button class="language-button">
<i class="language-icon">
<svg xmlns="http://www.w3.org/2000/svg" height="22px" viewBox="0 -960 960 960" width="22px"><path d="M480-80q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-83 31.5-155.5t86-127Q252-817 325-848.5T480-880q83 0 155.5 31.5t127 86q54.5 54.5 86 127T880-480q0 82-31.5 155t-86 127.5q-54.5 54.5-127 86T480-80Zm0-82q26-36 45-75t31-83H404q12 44 31 83t45 75Zm-104-16q-18-33-31.5-68.5T322-320H204q29 50 72.5 87t99.5 55Zm208 0q56-18 99.5-55t72.5-87H638q-9 38-22.5 73.5T584-178ZM170-400h136q-3-20-4.5-39.5T300-480q0-21 1.5-40.5T306-560H170q-5 20-7.5 39.5T160-480q0 21 2.5 40.5T170-400Zm216 0h188q3-20 4.5-39.5T580-480q0-21-1.5-40.5T574-560H386q-3 20-4.5 39.5T380-480q0 21 1.5 40.5T386-400Zm268 0h136q5-20 7.5-39.5T800-480q0-21-2.5-40.5T790-560H654q3 20 4.5 39.5T660-480q0 21-1.5 40.5T654-400Zm-16-240h118q-29-50-72.5-87T584-782q18 33 31.5 68.5T638-640Zm-234 0h152q-12-44-31-83t-45-75q-26 36-45 75t-31 83Zm-200 0h118q9-38 22.5-73.5T376-782q-56 18-99.5 55T204-640Z"/></svg>
</i>
<svg xmlns="http://www.w3.org/2000/svg" height="22px" viewBox="0 -960 960 960" width="22px"><path d="M480-80q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-83 31.5-155.5t86-127Q252-817 325-848.5T480-880q83 0 155.5 31.5t127 86q54.5 54.5 86 127T880-480q0 82-31.5 155t-86 127.5q-54.5 54.5-127 86T480-80Zm0-82q26-36 45-75t31-83H404q12 44 31 83t45 75Zm-104-16q-18-33-31.5-68.5T322-320H204q29 50 72.5 87t99.5 55Zm208 0q56-18 99.5-55t72.5-87H638q-9 38-22.5 73.5T584-178ZM170-400h136q-3-20-4.5-39.5T300-480q0-21 1.5-40.5T306-560H170q-5 20-7.5 39.5T160-480q0 21 2.5 40.5T170-400Zm216 0h188q3-20 4.5-39.5T580-480q0-21-1.5-40.5T574-560H386q-3 20-4.5 39.5T380-480q0 21 1.5 40.5T386-400Zm268 0h136q5-20 7.5-39.5T800-480q0-21-2.5-40.5T790-560H654q3 20 4.5 39.5T660-480q0 21-1.5 40.5T654-400Zm-16-240h118q-29-50-72.5-87T584-782q18 33 31.5 68.5T638-640Zm-234 0h152q-12-44-31-83t-45-75q-26 36-45 75t-31 83Zm-200 0h118q9-38 22.5-73.5T376-782q-56 18-99.5 55T204-640Z"/></svg>
</button>
<div class="language-menu blur-box"></div>
<div id="language-overlay" class="language-overlay"></div>

View File

@@ -1,6 +1,7 @@
{
"ar": "العربية",
"az": "Azərbaycanca",
"de": "Deutsch",
"el": "Ελληνικά",
"en": "English",
"es": "Español",

View File

@@ -18,7 +18,7 @@
<string name="help_add_system_app">إضافة تطبيق نظام</string>
<string name="help_add_system_app_description">إضافة تطبيق نظام محدد إلى قائمة التطبيقات.</string>
<string name="help_set_keybox">تعيين AOSP و Keybox صالح</string>
<string name="help_set_keybox_description">استبدال tricky store keybox.xml. سيتم استبدال keybox AOSP إذا لم يكن هناك keybox صالح آخر. يتطلب خيار keybox الصالح اتصالاً بالإنترنت.</string>
<string name="help_set_keybox_description">استبدال tricky store keybox.xml. يتطلب خيار keybox الصالح اتصالاً بالإنترنت.</string>
<string name="help_set_custom_keybox">تعيين Keybox مخصص</string>
<string name="help_set_custom_keybox_description">استيراد keybox من تخزين جهازك. يدعم فقط ملف xml.</string>
<string name="help_set_security_patch">تعيين تصحيح الأمان</string>

View File

@@ -18,7 +18,7 @@
<string name="help_add_system_app">Sistem Tətbiqi Əlavə et</string>
<string name="help_add_system_app_description">Müəyyən bir sistem tətbiqini tətbiq siyahısına əlavə et.</string>
<string name="help_set_keybox">AOSP &amp; Etibarlı Keybox təyin et</string>
<string name="help_set_keybox_description">Tricky store keybox.xml-ni dəyişdir. Əgər etibarlı keybox yoxdursa, AOSP keybox dəyişdiriləcək. Etibarlı keybox seçimi İnternet bağlantısı tələb edir.</string>
<string name="help_set_keybox_description">Tricky store keybox.xml-ni dəyişdir. Etibarlı keybox seçimi İnternet bağlantısı tələb edir.</string>
<string name="help_set_custom_keybox">Özəl Keybox təyin et</string>
<string name="help_set_custom_keybox_description">Keybox-u cihaz yaddaşından idxal et. Yalnız xml faylını dəstəkləyir.</string>
<string name="help_set_security_patch">Təhlükəsizlik Təkmilləşdirməsini təyin et</string>

View File

@@ -0,0 +1,127 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="system_default">Systemstandard</string>
<string name="more_language">Mehr</string>
<!-- Header -->
<string name="header_title">Tricky Addon</string>
<!-- Help Menu-->
<string name="help_help_instructions">Anleitung</string>
<string name="help_save_and_update">Speichern</string>
<string name="help_save_and_update_description">Aktuelle Konfiguration in target.txt speichern.</string>
<string name="help_refresh">Aktualisieren</string>
<string name="help_refresh_description">App-Liste und Ausschlussliste aktualisieren.</string>
<string name="help_select_deselect">Alle auswählen &amp; abwählen</string>
<string name="help_select_description">Alle Apps in der aktuellen Ansicht auswählen oder abwählen.</string>
<string name="help_select_denylist">Aus DenyList auswählen</string>
<string name="help_select_denylist_description">Nur in Magisk verfügbar, wähle Apps aus der DenyList aus. Empfohlen.</string>
<string name="help_deselect_unnecessary">Unnötige abwählen</string>
<string name="help_deselect_unnecessary_description">Unnötige Kategorie: Xposed-Module, Root-Manager, Root-bezogene Apps und allgemeine Apps, die den Bootloader-Status nie prüfen. Diese Option benötigt eine Internetverbindung.</string>
<string name="help_add_system_app">System-App hinzufügen</string>
<string name="help_add_system_app_description">Füge eine bestimmte System-App zur App-Liste hinzu.</string>
<string name="help_set_keybox">AOSP- &amp; gültige Keybox setzen</string>
<string name="help_set_keybox_description">Ersetze tricky store keybox.xml. Die gültige Keybox-Option benötigt eine Internetverbindung und ist nicht immer verfügbar.</string>
<string name="help_set_custom_keybox">Benutzerdefinierte Keybox setzen</string>
<string name="help_set_custom_keybox_description">Importiere eine Keybox aus dem Gerätespeicher. Nur XML-Dateien werden unterstützt.</string>
<string name="help_set_security_patch">Sicherheitspatch setzen</string>
<string name="help_set_security_patch_description">Benutzerdefiniertes Sicherheitspatch-Spoofing setzen. Auto-Konfiguration verwendet den Sicherheitspatch vom PIF-Modul. Leer lassen und speichern, um Auto-Konfiguration zu deaktivieren.</string>
<string name="help_set_verified_boot_hash">Verifizierten Boot-Hash setzen</string>
<string name="help_set_verified_boot_hash_description">Wert „verifiedBootHash“ aus der Key Attestation Demo abrufen. Behebt einen abnormalen Bootzustand durch Zurücksetzen von ro.boot.vbmeta.digest.</string>
<!-- Update -->
<string name="update_update_available">Eine neue Version ist verfügbar</string>
<string name="update_redirect_to_release">Tippe, um die neueste Version herunterzuladen</string>
<string name="update_changelog">Änderungsprotokoll</string>
<string name="update_install">Installieren</string>
<string name="update_reboot">Neustart</string>
<!-- Search -->
<string name="search_bar_search_placeholder">Suchen</string>
<!-- Functional Button -->
<string name="functional_button_save_and_update_button">Speichern</string>
<string name="functional_button_uninstall_webui">WebUI deinstallieren</string>
<!-- Loading -->
<string name="loading_loading">Lädt...</string>
<!-- Menu -->
<string name="menu_refresh">Aktualisieren</string>
<string name="menu_select_all">Alle auswählen</string>
<string name="menu_deselect_all">Auswahl aufheben</string>
<string name="menu_select_denylist">Aus DenyList auswählen</string>
<string name="menu_deselect_unnecessary">Unnötige abwählen</string>
<string name="menu_add_system_app">System-App hinzufügen</string>
<string name="menu_set_aosp_keybox">AOSP-Keybox setzen</string>
<string name="menu_set_unknown_keybox">Unbekannte Keybox setzen</string>
<string name="menu_set_valid_keybox">Gültige Keybox setzen</string>
<string name="menu_set_custom_keybox">Benutzerdefinierte Keybox setzen</string>
<string name="menu_set_verified_boot_hash">Verifizierten Boot-Hash setzen</string>
<string name="menu_set_security_patch">Sicherheitspatch setzen</string>
<string name="menu_about">Über</string>
<string name="menu_shortcut">Verknüpfung auf dem Startbildschirm erstellen</string>
<!-- Boot-Hash -->
<string name="boot_hash_title">Boot-Hash</string>
<string name="boot_hash_input_placeholder">Füge hier deinen verifizierten Boot-Hash ein</string>
<string name="boot_hash_save_button">Speichern</string>
<!-- About -->
<string name="about_module_name_line1">Tricky Addon</string>
<string name="about_module_name_line2">Ziel-Liste aktualisieren</string>
<string name="about_by">von</string>
<string name="about_telegram_channel">Telegram-Kanal</string>
<string name="about_canary_update">Auf die neueste Canary-Version aktualisieren</string>
<string name="about_disclaimer">Dieses Modul ist kein Teil des Tricky Store Moduls. BITTE melde keine Probleme an Tricky Store.</string>
<string name="about_acknowledgment">Danksagung</string>
<!-- Prompt -->
<string name="prompt_no_internet">Bitte überprüfe deine Internetverbindung</string>
<string name="prompt_aosp_key_set">AOSP-Keybox erfolgreich gesetzt</string>
<string name="prompt_key_set_error">Fehler beim Aktualisieren der Keybox</string>
<string name="prompt_unknown_key_set">Unbekannte Keybox erfolgreich gesetzt</string>
<string name="prompt_valid_key_set">Gültige Keybox erfolgreich gesetzt</string>
<string name="prompt_no_valid">Keine gültige Keybox gefunden.</string>
<string name="prompt_boot_hash_set">Verifizierter Boot-Hash erfolgreich gespeichert</string>
<string name="prompt_boot_hash_set_error">Fehler beim Speichern des verifizierten Boot-Hash</string>
<string name="prompt_saved_target">Konfiguration in target.txt gespeichert</string>
<string name="prompt_save_error">Fehler beim Speichern der Konfiguration</string>
<string name="prompt_uninstall_prompt">WebUI wird nach dem Neustart entfernt</string>
<string name="prompt_uninstall_failed">Fehler bei der Deinstallation der WebUI</string>
<string name="prompt_checking_update">Suche nach Updates...</string>
<string name="prompt_new_update">Ein neues Update ist verfügbar!</string>
<string name="prompt_no_update">Derzeit sind keine Updates verfügbar</string>
<string name="prompt_downloading">Neues Update wird heruntergeladen...</string>
<string name="prompt_downloaded">Download abgeschlossen</string>
<string name="prompt_download_fail">Fehler beim Herunterladen des Updates</string>
<string name="prompt_installing">Update wird installiert...</string>
<string name="prompt_installed">Erfolgreich installiert, jetzt neu starten.</string>
<string name="prompt_install_fail">Fehler bei der Installation, bitte manuell aktualisieren</string>
<string name="prompt_rebooting">Neustart...</string>
<string name="prompt_reboot_fail">Neustart fehlgeschlagen, bitte manuell neu starten</string>
<string name="prompt_custom_key_set">Benutzerdefinierte Keybox erfolgreich gesetzt</string>
<string name="prompt_custom_key_set_error">Fehler beim Setzen der benutzerdefinierten Keybox</string>
<string name="prompt_no_file_selected">Keine Datei ausgewählt</string>
<string name="prompt_system_app_not_found">System-App nicht gefunden</string>
<string name="prompt_system_app_error">Fehler beim Hinzufügen der System-App</string>
<string name="prompt_shortcut_created">Verknüpfung auf dem Startbildschirm erstellt</string>
<!-- Security Patch -->
<string name="security_patch_title">Sicherheitspatch</string>
<string name="security_patch_advanced_mode">Erweitert</string>
<string name="security_patch_get_date">Sicherheitspatch-Datum abrufen</string>
<string name="security_patch_auto">Automatisch</string>
<string name="security_patch_save">Speichern</string>
<string name="security_patch_fetching">Abrufen...</string>
<string name="security_patch_fetched">Fertig</string>
<string name="security_patch_get_failed">Fehler beim Abrufen des Sicherheitspatch-Datums</string>
<string name="security_patch_unable_to_connect">Keine Verbindung zu source.android.com möglich</string>
<string name="security_patch_auto_success">Automatische Konfiguration erfolgreich aktiviert</string>
<string name="security_patch_auto_failed">Fehler beim Aktivieren der automatischen Konfiguration</string>
<string name="security_patch_save_success">Sicherheitspatch erfolgreich gespeichert</string>
<string name="security_patch_save_failed">Fehler beim Speichern des Sicherheitspatch</string>
<string name="security_patch_value_empty">Sicherheitspatch-Konfiguration ist deaktiviert</string>
<string name="security_patch_invalid_all">Ungültiges Format</string>
<string name="security_patch_invalid_boot">Ungültiges Boot-Format</string>
<string name="security_patch_invalid_system">Ungültiges System-Format</string>
<string name="security_patch_invalid_vendor">Ungültiges Vendor-Format</string>
<!-- Add System App -->
<string name="add_system_app_title">System-App hinzufügen</string>
<string name="add_system_app_add">Hinzufügen</string>
<string name="add_system_app_current_list">Aktuelle Liste der System-Apps</string>
<!-- Uninstall confirmation -->
<string name="confirmation_uninstall_title">Deinstallation bestätigen?</string>
<string name="confirmation_uninstall_message">Möchtest du Tricky Addon wirklich deinstallieren?</string>
<string name="confirmation_uninstall_cancel">Abbrechen</string>
<string name="confirmation_uninstall_confirm">Bestätigen</string>
</resources>

View File

@@ -18,7 +18,7 @@
<string name="help_add_system_app">Πρόσθεσε Εφαρμογή Συστήματος</string>
<string name="help_add_system_app_description">Πρόσθεσε συγκεκριμένη εφαρμογή συστήματος στη λίστα εφαρμογών.</string>
<string name="help_set_keybox">Όρισε AOSP &amp; Έγκυρο Keybox</string>
<string name="help_set_keybox_description">Αντικατέστησε το tricky store keybox.xml. Το AOSP keybox θα αντικατασταθεί αν δεν υπάρχει έγκυρο keybox. Η επιλογή valid keybox απαιτεί σύνδεση Internet.</string>
<string name="help_set_keybox_description">Αντικατέστησε το tricky store keybox.xml. Η επιλογή valid keybox απαιτεί σύνδεση Internet.</string>
<string name="help_set_custom_keybox">Όρισε Custom Keybox</string>
<string name="help_set_custom_keybox_description">Εισήγαγε keybox από τη συσκευή σου. Υποστηρίζεται μόνο αρχείο xml.</string>
<string name="help_set_security_patch">Όρισε Security Patch</string>

View File

@@ -19,7 +19,7 @@
<string name="help_add_system_app">Add System App</string>
<string name="help_add_system_app_description">Add specific system app to app list.</string>
<string name="help_set_keybox">Set AOSP &amp; Valid Keybox</string>
<string name="help_set_keybox_description">Replace tricky store keybox.xml. AOSP keybox will be replaced if there\'s no more valid keybox. Valid keybox option requires Internet connection.</string>
<string name="help_set_keybox_description">Replace tricky store keybox.xml. Valid keybox option requires Internet connection and not always available.</string>
<string name="help_set_custom_keybox">Set Custom Keybox</string>
<string name="help_set_custom_keybox_description">Import keybox from your device storage. Only support xml file.</string>
<string name="help_set_security_patch">Set Security Patch</string>
@@ -79,7 +79,7 @@
<string name="prompt_save_error">Failed to save config</string>
<string name="prompt_uninstall_prompt">WebUI will be removed after reboot</string>
<string name="prompt_uninstall_failed">Failed to uninstall WebUI</string>
<string name="prompt_checking_update">Checking udpate...</string>
<string name="prompt_checking_update">Checking update...</string>
<string name="prompt_new_update">A new update is available!</string>
<string name="prompt_no_update">There are currently no updates available</string>
<string name="prompt_downloading">Downloading new update...</string>

View File

@@ -18,7 +18,7 @@
<string name="help_add_system_app">Agregar Aplicación del Sistema</string>
<string name="help_add_system_app_description">Agregar una aplicación del sistema específica a la lista de aplicaciones.</string>
<string name="help_set_keybox">Configurar AOSP y Keybox Válido</string>
<string name="help_set_keybox_description">Reemplazar el archivo keybox.xml de Tricky Store. El AOSP Keybox será reemplazado si no hay un keybox válido. Esta opción requiere conexión a Internet.</string>
<string name="help_set_keybox_description">Reemplazar el archivo keybox.xml de Tricky Store. Esta opción requiere conexión a Internet.</string>
<string name="help_set_custom_keybox">Establecer Keybox Personalizado</string>
<string name="help_set_custom_keybox_description">Importar keybox desde el almacenamiento de tu dispositivo. Solo soporta archivos xml.</string>
<string name="help_set_security_patch">Configurar Parche de Seguridad</string>

View File

@@ -19,7 +19,7 @@
<string name="help_add_system_app">Ajouter une application système</string>
<string name="help_add_system_app_description">Ajouter une application système spécifique à la liste.</string>
<string name="help_set_keybox">Définir une Keybox AOSP &amp; Valide</string>
<string name="help_set_keybox_description">Remplacer le fichier keybox.xml de Tricky Store. La keybox AOSP sera remplacée s&apos;il n&apos;y a plus de keybox valide. L&apos;option keybox valide nécessite une connexion Internet.</string>
<string name="help_set_keybox_description">Remplacer le fichier keybox.xml de Tricky Store. L&apos;option keybox valide nécessite une connexion Internet.</string>
<string name="help_set_custom_keybox">Définir une Keybox personnalisée</string>
<string name="help_set_custom_keybox_description">Importer une keybox depuis le stockage de votre appareil. Seuls les fichiers XML sont pris en charge.</string>
<string name="help_set_security_patch">Définir le patch de sécurité</string>

View File

@@ -18,7 +18,7 @@
<string name="help_add_system_app">Tambahkan Aplikasi Sistem</string>
<string name="help_add_system_app_description">Tambahkan aplikasi sistem tertentu ke daftar aplikasi.</string>
<string name="help_set_keybox">Ganti Keybox AOSP &amp; Valid</string>
<string name="help_set_keybox_description">Ganti file keybox.xml bawaan. Jika tidak ada keybox valid, maka keybox AOSP akan digunakan. Opsi ini memerlukan koneksi internet.</string>
<string name="help_set_keybox_description">Ganti file keybox.xml bawaan. Opsi ini memerlukan koneksi internet.</string>
<string name="help_set_custom_keybox">Gunakan Keybox Kustom</string>
<string name="help_set_custom_keybox_description">Impor keybox dari penyimpanan perangkat. Hanya mendukung file XML.</string>
<string name="help_set_security_patch">Atur Patch Keamanan</string>

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="system_default">Predefinito di sistema</string>
<string name="more_language">Altro</string>
<!-- Header -->
<string name="header_title">Tricky Addon</string>
<!-- Help Menu-->
@@ -18,7 +19,7 @@
<string name="help_add_system_app">Aggiungi App di Sistema</string>
<string name="help_add_system_app_description">Aggiungi app di sistema specifiche all&apos;elenco delle app.</string>
<string name="help_set_keybox">Imposta AOSP &amp; Keybox Valida</string>
<string name="help_set_keybox_description">Sostituisci tricky store keybox.xml. La keybox AOSP verrà sostituita se non ci sono più keybox valide. L&apos;opzione valida per la keybox richiede una connessione Internet.</string>
<string name="help_set_keybox_description">Sostituisci tricky store keybox.xml. L&apos;opzione valida per la keybox richiede una connessione Internet.</string>
<string name="help_set_custom_keybox">Imposta Keybox Personalizzata</string>
<string name="help_set_custom_keybox_description">Importa keybox dalla memoria del tuo dispositivo. Supporta solo file xml.</string>
<string name="help_set_security_patch">Imposta Patch di Sicurezza</string>
@@ -28,7 +29,7 @@
<!-- Update -->
<string name="update_update_available">È pronta una nuova versione</string>
<string name="update_redirect_to_release">tocca per scaricare l&apos;ultima versione</string>
<string name="update_changelog">Changelog</string>
<string name="update_changelog">Registro delle modifiche</string>
<string name="update_install">Installa</string>
<string name="update_reboot">Riavvio</string>
<!-- Search -->
@@ -51,7 +52,7 @@
<string name="menu_set_custom_keybox">Imposta Keybox Personalizzata</string>
<string name="menu_set_verified_boot_hash">Imposta Boot Hash Verificato</string>
<string name="menu_set_security_patch">Imposta Patch di Sicurezza</string>
<string name="menu_about">About</string>
<string name="menu_about">Informazioni</string>
<string name="menu_shortcut">Crea collegamento nella schermata iniziale</string>
<!-- Boot Hash -->
<string name="boot_hash_title">Boot Hash</string>
@@ -62,6 +63,7 @@
<string name="about_module_name_line2">Aggiorna Target List</string>
<string name="about_by">by</string>
<string name="about_telegram_channel">Canale Telegram</string>
<string name="about_canary_update">Aggiornato all&apos;ultima versione canary</string>
<string name="about_disclaimer">Questo modulo non fa parte del modulo Tricky Store. NON segnalare eventuali problemi a Tricky Store se riscontrati.</string>
<string name="about_acknowledgment">Riconoscimento</string>
<!-- Prompt -->
@@ -77,7 +79,9 @@
<string name="prompt_save_error">Impossibile salvare la configurazione</string>
<string name="prompt_uninstall_prompt">WebUI verrà rimosso dopo il riavvio</string>
<string name="prompt_uninstall_failed">Impossibile disinstallare WebUI</string>
<string name="prompt_checking_update">Controllo aggiornamento...</string>
<string name="prompt_new_update">È disponibile un nuovo aggiornamento!</string>
<string name="prompt_no_update">Al momento non ci sono aggiornamenti disponibili</string>
<string name="prompt_downloading">Download nuovo aggiornamento...</string>
<string name="prompt_downloaded">Download completato</string>
<string name="prompt_download_fail">Impossibile scaricare l&apos;aggiornamento</string>
@@ -101,6 +105,7 @@
<string name="security_patch_fetching">Recupero...</string>
<string name="security_patch_fetched">Fatto</string>
<string name="security_patch_get_failed">Impossibile recuperare la data della patch di sicurezza</string>
<string name="security_patch_unable_to_connect">Impossibile connettersi a source.android.com</string>
<string name="security_patch_auto_success">Configurazione automatica abilitata correttamente</string>
<string name="security_patch_auto_failed">Impossibile abilitare la configurazione automatica</string>
<string name="security_patch_save_success">Patch di sicurezza salvata correttamente</string>

View File

@@ -18,7 +18,7 @@
<string name="help_add_system_app">システムアプリを追加</string>
<string name="help_add_system_app_description">特定のシステムアプリをアプリリストに追加します。</string>
<string name="help_set_keybox">AOSP と有効な Keybox</string>
<string name="help_set_keybox_description">Tricky Store の keybox.xml を置き換えます。有効な Keybox がなくなった場合は、AOSP Keybox に置き換えられます。インターネット接続が必要です。</string>
<string name="help_set_keybox_description">Tricky Store の keybox.xml を置き換えます。インターネット接続が必要です。</string>
<string name="help_set_custom_keybox">カスタム Keybox を設定</string>
<string name="help_set_custom_keybox_description">デバイスのストレージからカスタム Keybox ファイルをインポートします。インポートは xml ファイルのみ対応しています。</string>
<string name="help_set_security_patch">セキュリティパッチを設定</string>

View File

@@ -19,7 +19,7 @@
<string name="help_add_system_app">Dodaj aplikację systemową</string>
<string name="help_add_system_app_description">Dodaj konkretną aplikację systemową do listy aplikacji.</string>
<string name="help_set_keybox">Ustaw działający klucz AOSP</string>
<string name="help_set_keybox_description">Zastąp klucz keybox.xml. Klucz AOSP zostanie zastosowany, jeśli nie będzie więcej działających kluczy. Funkcja wymaga połączenia internetowego.</string>
<string name="help_set_keybox_description">Zastąp klucz keybox.xml. Funkcja wymaga połączenia internetowego.</string>
<string name="help_set_custom_keybox">Ustaw niestandardowy klucz</string>
<string name="help_set_custom_keybox_description">Importuj klucz z pamięci urządzenia. Obsługuje tylko pliki xml.</string>
<string name="help_set_security_patch">Ustaw poprawkę zabezpieczeń</string>

View File

@@ -19,7 +19,7 @@
<string name="help_add_system_app">Adicionar app do sistema</string>
<string name="help_add_system_app_description">Adicionar app do sistema específico à lista de aplicativos.</string>
<string name="help_set_keybox">Definir AOSP &amp; Keybox Válida</string>
<string name="help_set_keybox_description">Substitua keybox.xml de tricky store. AOSP keybox será substituído se não houver mais a keybox válida. A opção Keybox válida requer conexão à Internet.</string>
<string name="help_set_keybox_description">Substitua keybox.xml de tricky store. A opção Keybox válida requer conexão à Internet.</string>
<string name="help_set_custom_keybox">Definir uma Keybox personalizada</string>
<string name="help_set_custom_keybox_description">Importar Keybox do armazenamento do seu dispositivo. Suporta apenas o arquivo XML.</string>
<string name="help_set_security_patch">Definir patch de segurança</string>

View File

@@ -18,7 +18,7 @@
<string name="help_add_system_app">Добавить системное приложение</string>
<string name="help_add_system_app_description">Добавить конкретное системное приложение в список приложений.</string>
<string name="help_set_keybox">Установить AOSP и действующий Keybox</string>
<string name="help_set_keybox_description">Замените tricky store keybox.xml. AOSP keybox будет заменен, если не будет найден действующий keybox. Опция с действующим keybox требует подключения к интернету.</string>
<string name="help_set_keybox_description">Замените tricky store keybox.xml. Опция с действующим keybox требует подключения к интернету.</string>
<string name="help_set_custom_keybox">Установить пользовательский Keybox</string>
<string name="help_set_custom_keybox_description">Импортируйте файл keybox из вашего устройства в хранилище. Поддерживаются только xml файлы.</string>
<string name="help_set_security_patch">Установить Security Patch</string>

View File

@@ -18,7 +18,7 @@
<string name="help_add_system_app">Magdagdag ng System App</string>
<string name="help_add_system_app_description">Magdagdag ng tiyak na system app sa listahan ng apps.</string>
<string name="help_set_keybox">I-set ang AOSP at Valid Keybox</string>
<string name="help_set_keybox_description">Palitan ang tricky store keybox. Palitan ang AOSP keybox kung walang valid keybox. Nangangailangan ng koneksyon sa internet ang valid keybox option.</string>
<string name="help_set_keybox_description">Palitan ang tricky store keybox. Nangangailangan ng koneksyon sa internet ang valid keybox option.</string>
<string name="help_set_custom_keybox">I-set ang Custom Keybox</string>
<string name="help_set_custom_keybox_description">Mag-import ng custom keybox mula sa iyong device storage. Sumusuporta lamang ng xml file.</string>
<string name="help_set_security_patch">I-set ang Security Patch</string>

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="system_default">Sistem Varsayılanı</string>
<string name="more_language">Daha Fazla</string>
<!-- Header -->
<string name="header_title">Tricky Addon</string>
<!-- Help Menu-->
@@ -18,7 +19,7 @@
<string name="help_add_system_app">Sistem Uygulaması Ekle</string>
<string name="help_add_system_app_description">Belirli bir sistem uygulamasını uygulama listesine ekleyin.</string>
<string name="help_set_keybox">AOSP &amp; Geçerli Keybox Ayarla</string>
<string name="help_set_keybox_description">Tricky Store&apos;daki keybox.xml dosyasını değiştirir. Eğer geçerli bir keybox yoksa AOSP keybox ile değiştirilecektir. Geçerli keybox seçeneği internet bağlantısı gerektirir.</string>
<string name="help_set_keybox_description">Tricky Store&apos;daki keybox.xml dosyasını değiştirir. Geçerli keybox seçeneği internet bağlantısı gerektirir.</string>
<string name="help_set_custom_keybox">Özel Keybox Ayarla</string>
<string name="help_set_custom_keybox_description">Cihaz depolamasından bir keybox dosyasını içe aktarın. Sadece xml dosyaları desteklenir.</string>
<string name="help_set_security_patch">Güvenlik Yaması Ayarla</string>
@@ -62,6 +63,7 @@
<string name="about_module_name_line2">Target List&apos;i Güncelle</string>
<string name="about_by">tarafından</string>
<string name="about_telegram_channel">Telegram Kanalı</string>
<string name="about_canary_update">En son canary sürümüne güncelleyin</string>
<string name="about_disclaimer">Bu modül, Tricky Store modülünün bir parçası değildir. Herhangi bir sorun yaşarsanız, lütfen bunu Tricky Store&apos;a rapor etmeyin.</string>
<string name="about_acknowledgment">Teşekkürler</string>
<!-- Prompt -->
@@ -77,7 +79,9 @@
<string name="prompt_save_error">Yapılandırma kaydedilemedi</string>
<string name="prompt_uninstall_prompt">WebUI yeniden başlatma sonrasında kaldırılacak</string>
<string name="prompt_uninstall_failed">WebUI kaldırılamadı</string>
<string name="prompt_checking_update">Güncelleme kontrol ediliyor...</string>
<string name="prompt_new_update">Yeni bir güncelleme mevcut!</string>
<string name="prompt_no_update">Şu anda hiçbir güncelleme mevcut değil</string>
<string name="prompt_downloading">Yeni güncelleme indiriliyor...</string>
<string name="prompt_downloaded">İndirme tamamlandı</string>
<string name="prompt_download_fail">Güncelleme indirilemedi</string>
@@ -101,6 +105,7 @@
<string name="security_patch_fetching">Alınıyor...</string>
<string name="security_patch_fetched">Tamamlandı</string>
<string name="security_patch_get_failed">Güvenlik yaması tarihi alınamadı</string>
<string name="security_patch_unable_to_connect">Source.android.com\'a bağlanılamıyor</string>
<string name="security_patch_auto_success">Otomatik yapılandırma başarıyla etkinleştirildi</string>
<string name="security_patch_auto_failed">Otomatik yapılandırma etkinleştirilemedi</string>
<string name="security_patch_save_success">Güvenlik yaması başarıyla kaydedildi</string>

View File

@@ -18,7 +18,7 @@
<string name="help_add_system_app">Додати системний застосунок</string>
<string name="help_add_system_app_description">Додати конкретний системний застосунок до списку.</string>
<string name="help_set_keybox">Встановити AOSP та валідний ключ</string>
<string name="help_set_keybox_description">Замінити tricky store keybox.xml. Ключа буде замінено на AOSP, якщо не буде валідного. Для використання валідного ключа потрібне з&apos;єднання з інтернетом.</string>
<string name="help_set_keybox_description">Замінити tricky store keybox.xml. Для використання валідного ключа потрібне з&apos;єднання з інтернетом.</string>
<string name="help_set_custom_keybox">Встановити власний ключ</string>
<string name="help_set_custom_keybox_description">Імпортувати ключі зі сховища вашого пристрою. Підтримуються лише xml файли.</string>
<string name="help_set_security_patch">Встановити патч безпеки</string>

View File

@@ -19,7 +19,7 @@
<string name="help_add_system_app">添加系统应用</string>
<string name="help_add_system_app_description">添加特定系统应用到应用列表。</string>
<string name="help_set_keybox">设置 AOSP &amp; 有效密钥</string>
<string name="help_set_keybox_description">替换 Tricky Store 的密钥keybox.xml如果没有有效密钥,将替换为 AOSP 密钥。有效密钥选项需连网使用。</string>
<string name="help_set_keybox_description">替换 Tricky Store 的密钥keybox.xml。有效密钥选项需连网使用,不保证能一直提供</string>
<string name="help_set_custom_keybox">设置自定义密钥</string>
<string name="help_set_custom_keybox_description">从设备存储导入自定义密钥。仅支持 xml 文件。</string>
<string name="help_set_security_patch">设置安全补丁</string>

View File

@@ -19,7 +19,7 @@
<string name="help_add_system_app">添加系統應用</string>
<string name="help_add_system_app_description">添加特定系統應用到應用列表。</string>
<string name="help_set_keybox">設置 AOSP &amp; 有效密鑰</string>
<string name="help_set_keybox_description">替換 Tricky Store 的密鑰keybox.xml如果沒有有效密鑰,將替換為 AOSP 密鑰。有效密鑰選項需連網使用。</string>
<string name="help_set_keybox_description">替換 Tricky Store 的密鑰keybox.xml。有效密鑰選項需連網使用,不保證能一直提供</string>
<string name="help_set_custom_keybox">設置自定義密鑰</string>
<string name="help_set_custom_keybox_description">從設備存儲導入自定義密鑰。僅支持 xml 文件。</string>
<string name="help_set_security_patch">設置安全補丁</string>

View File

@@ -19,7 +19,7 @@
<string name="help_add_system_app">Add System App</string>
<string name="help_add_system_app_description">Add specific system app to app list.</string>
<string name="help_set_keybox">Set AOSP &amp; Valid Keybox</string>
<string name="help_set_keybox_description">Replace tricky store keybox.xml. AOSP keybox will be replaced if there\'s no more valid keybox. Valid keybox option requires Internet connection.</string>
<string name="help_set_keybox_description">Replace tricky store keybox.xml. Valid keybox option requires Internet connection and not always available.</string>
<string name="help_set_custom_keybox">Set Custom Keybox</string>
<string name="help_set_custom_keybox_description">Import keybox from your device storage. Only support xml file.</string>
<string name="help_set_security_patch">Set Security Patch</string>
@@ -79,7 +79,7 @@
<string name="prompt_save_error">Failed to save config</string>
<string name="prompt_uninstall_prompt">WebUI will be removed after reboot</string>
<string name="prompt_uninstall_failed">Failed to uninstall WebUI</string>
<string name="prompt_checking_update">Checking udpate...</string>
<string name="prompt_checking_update">Checking update...</string>
<string name="prompt_new_update">A new update is available!</string>
<string name="prompt_no_update">There are currently no updates available</string>
<string name="prompt_downloading">Downloading new update...</string>

View File

@@ -4,6 +4,17 @@ const languageButton = document.querySelector('.language-button');
const languageMenu = document.querySelector('.language-menu');
const languageOptions = document.querySelectorAll('.language-option');
const languageOverlay = document.getElementById('language-overlay');
const rtlLang = [
'ar', // Arabic
'fa', // Persian
'he', // Hebrew
'ur', // Urdu
'ps', // Pashto
'sd', // Sindhi
'ku', // Kurdish
'yi', // Yiddish
'dv', // Dhivehi
];
export let translations = {};
let baseTranslations = {};
@@ -88,6 +99,25 @@ export async function loadTranslations() {
translations = baseTranslations;
}
// Support for rtl language
const isRTL = rtlLang.includes(lang.split('-')[0]);
if (isRTL) {
document.documentElement.setAttribute('dir', 'rtl');
document.documentElement.setAttribute('lang', lang);
// Load extra rtl css
fetch('styles/rtl_styles.css')
.then(res => res.text())
.then(css => {
const style = document.createElement('style');
style.textContent = css;
document.head.appendChild(style);
});
} else {
document.documentElement.setAttribute('dir', 'ltr');
document.documentElement.setAttribute('lang', lang);
}
// Generate language menu
await generateLanguageMenu();
} catch (error) {
@@ -155,10 +185,10 @@ export function setupLanguageMenu() {
languageMenu.addEventListener("click", async (e) => {
if (e.target.classList.contains("language-option")) {
const lang = e.target.getAttribute("data-lang");
localStorage.setItem('trickyAddonLanguage', lang);
closeLanguageMenu();
await new Promise(resolve => setTimeout(resolve, 200));
loadTranslations();
if (lang) {
localStorage.setItem('trickyAddonLanguage', lang);
window.location.reload();
}
}
});
}

View File

@@ -20,7 +20,6 @@
.about-menu p {
margin: 0;
font-size: 16px;
text-align: left;
}
#module_name_line1 {
@@ -55,10 +54,9 @@
.link-icon {
font-size: 17px;
font-weight: bold;
min-height: calc(1em + 15px);
min-height: calc(1em + 20px);
padding: 3px 10px;
color: #fff;
fill: #fff;
user-select: none;
display: inline-flex;
align-items: center;
@@ -69,6 +67,7 @@
transition: background-color 0.2s ease;
svg {
fill: #fff;
padding-right: 3px;
}
}

View File

@@ -273,7 +273,6 @@
display: inline-block;
width: 20px;
height: 20px;
margin-left: auto;
}
.checkbox {

View File

@@ -71,12 +71,12 @@
position: relative;
overflow: hidden;
user-select: none;
}
.file-item svg {
flex-shrink: 0;
margin-right: 10px;
fill: var(--text-secondary);
svg {
flex-shrink: 0;
margin-right: 10px;
fill: var(--text-secondary);
}
}
.file-item span {

View File

@@ -1,7 +1,7 @@
.header {
display: flex;
align-items: center;
justify-content: space-between;
justify-content: flex-start;
position: fixed;
top: 0;
left: 0;
@@ -27,26 +27,34 @@
}
.no-connection {
padding: 0;
height: 100%;
display: flex;
align-items: center;
display: none;
margin-right: 0px;
background: none;
border: none;
svg {
fill: var(--border-color);
}
}
.language-dropdown {
margin-left: auto;
position: relative;
display: inline-block;
}
.language-button {
padding-top: 5px;
height: 100%;
display: flex;
align-items: center;
background: none;
border: none;
}
.language-icon {
fill: var(--text-primary);
svg {
fill: var(--text-primary);
}
}
.language-menu {
@@ -121,10 +129,16 @@
}
.help-button {
padding-left: 5px;
margin-right: auto;
height: 100%;
display: flex;
align-items: center;
padding: 5px;
background: none;
border: none;
svg {
fill: var(--border-color);
}
}
.help-overlay {
@@ -139,7 +153,6 @@
background-color: var(--bg-secondary);
padding: 30px;
border-radius: 15px;
text-align: left;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
}
@@ -148,7 +161,9 @@
flex-direction: column;
gap: 20px;
max-height: calc(85vh - 60px);
padding-bottom: 20px;
overflow-y: auto;
mask-image: linear-gradient(black 0%, black calc(100% - 20px), transparent 100%);
}
.help-content-header {
@@ -162,4 +177,4 @@
.instruction p {
margin: 0;
}
}

View File

@@ -0,0 +1,57 @@
#module-version,
#title {
padding-left: unset;
padding-right: 5px;
}
.language-dropdown {
margin-left: unset;
margin-right: auto;
}
.language-menu {
right: unset;
left: 5px;
transform-origin: top left;
}
.close-btn {
right: unset;
left: 12px;
}
.search-icon {
left: unset;
right: 15px;
}
.search-card {
left: unset;
right: 0;
}
.menu {
right: unset;
left: 0;
}
.menu-options {
right: unset;
left: 0;
transform: translateX(-120%);
}
.app-icon-container {
margin-right: unset;
margin-left: 10px;
}
.link-icon svg {
padding-right: unset;
padding-left: 3px;
}
.file-item svg {
margin-right: unset;
margin-left: 10px;
}

View File

@@ -133,7 +133,6 @@
.menu-options li {
padding: 12px 15px;
text-align: left;
}
.menu-options li::after {