From 9210851765e4dbedf41a926510dfb8114138cc5e Mon Sep 17 00:00:00 2001 From: Retrial Date: Tue, 9 Sep 2025 06:06:36 +0200 Subject: [PATCH 01/19] Translated using Weblate (Greek) Currently translated at 100.0% (664 of 664 strings) Translation: KeePassDX/Strings Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/el/ --- app/src/main/res/values-el/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index f585bfe61..16994ec25 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -19,7 +19,7 @@ --> Σχόλια Αρχική Σελίδα - Το KeePassDX είναι μία εφαρμογή Android του διαχειριστή κωδικών KeePass + Υλοποίηση του διαχειριστή κωδικών πρόσβασης KeePass για Android. Αποδοχή Προσθήκη καταχώρησης Προσθήκη ομάδας From a60e2e780d9006ee61e6113e7b4efb41473d457d Mon Sep 17 00:00:00 2001 From: Matthaiks Date: Mon, 8 Sep 2025 13:04:44 +0200 Subject: [PATCH 02/19] Translated using Weblate (Polish) Currently translated at 100.0% (664 of 664 strings) Translation: KeePassDX/Strings Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/pl/ --- app/src/main/res/values-pl/strings.xml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index cfb325993..f562a0479 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -618,11 +618,7 @@ Zapisz kopię w … Wygasłe Baza danych jest już otwarta, należy ją najpierw zamknąć, aby otworzyć nową - Ta funkcja umożliwia przechowywanie zaszyfrowanych danych uwierzytelniających w bezpiecznym magazynie kluczy urządzenia. -\n -\nW zależności od konkretnej implementacji interfejsu API systemu operacyjnego, może nie być w pełni funkcjonalna. -\n -\nSprawdź kompatybilność i bezpieczeństwo magazynu kluczy u producenta urządzenia i twórcy używanego ROM-u. + Ta funkcja umożliwia przechowywanie zaszyfrowanych danych uwierzytelniających w bezpiecznym magazynie kluczy urządzenia. \n \nMoże nie być w pełni funkcjonalna w zależności od konkretnej implementacji interfejsu API systemu operacyjnego. \n \nSprawdź kompatybilność i bezpieczeństwo magazynu kluczy u producenta urządzenia i twórcy używanego ROM-u. Fraza hasła Koloruj znaki hasła według typu Ekran wyszukiwania From 72bfc50703a44cdd5cc07d8b8e67245da8a8880d Mon Sep 17 00:00:00 2001 From: Matthaiks Date: Wed, 10 Sep 2025 08:10:41 +0200 Subject: [PATCH 03/19] Translated using Weblate (Polish) Currently translated at 100.0% (664 of 664 strings) Translation: KeePassDX/Strings Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/pl/ --- app/src/main/res/values-pl/strings.xml | 75 ++++++++++++-------------- 1 file changed, 35 insertions(+), 40 deletions(-) diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index f562a0479..4cdf54b0c 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -24,12 +24,12 @@ Dodaj wpis Dodaj grupę Algorytm szyfrowania - Koniec czasu + Limit czasu Czas bezczynności przed zablokowaniem bazy danych Aplikacja Ustawienia ogólne Nawiasy - Do tworzenia, otwierania i zapisywania plików bazy danych potrzebny jest menedżer plików, który akceptuje działanie Intent Action ACTION_CREATE_DOCUMENT i ACTION_OPEN_DOCUMENT. + Do tworzenia, otwierania i zapisywania plików bazy danych wymagany jest menedżer plików akceptujący zamierzone działania ACTION_CREATE_DOCUMENT i ACTION_OPEN_DOCUMENT. Schowek został wyczyszczony Czas wygaśnięcia schowka Czas przechowywania w schowku (jeśli jest obsługiwany przez urządzenie) @@ -60,11 +60,11 @@ Upewnij się, że ścieżka jest prawidłowa. Wpisz nazwę. Wybierz plik klucza. - W urządzeniu zabrakło pamięci do załadowania całej bazy danych. + Brak pamięci na załadowanie całej bazy danych. Należy wybrać co najmniej jeden rodzaj generowania hasła. Hasła nie pasują do siebie. - \"Rundy szyfrowania\" są zbyt wysokie. Ustaw na 2147483648. - Wprowadź dodatnią liczbę całkowitą w polu \"Długość\". + „Rundy transformacji” są zbyt wysokie. Ustaw na 2147483648. + Wprowadź dodatnią liczbę całkowitą w polu „Długość”. Menedżer plików Generuj hasło Potwierdź hasło @@ -77,8 +77,8 @@ Nie można odczytać uwierzytelnień. Nie można rozpoznać formatu bazy danych. Długość - Wielkość listy grup - Wielkość tekstu w liście grup + Rozmiar elementów listy + Rozmiar tekstu na liście elementów Wczytywanie bazy danych… Małe litery Ukryj hasła @@ -103,7 +103,7 @@ Tworzenie nowej bazy danych… Pracuję… Usuń - Root + Główny Rundy szyfrowania Dodatkowe rundy szyfrowania zapewniają lepszą ochronę przed atakami typu brute force, ale mogą znacznie spowolnić ładowanie i zapisywanie. Zapisywanie bazy danych… @@ -133,7 +133,7 @@ KeePassDX © %1$d Kunzisoft jest <strong>open source</strong> i <strong>bez reklam</strong>. \nJest on dostarczany w stanie, zgodnie z licencją <strong>GPLv3</strong> bez żadnych gwarancji. Nie znaleziono danych wejściowych. Nie można załadować bazy danych. - Nie można załadować klucza. Spróbuj zmniejszyć użycie pamięć KDF. + Nie można załadować klucza. Spróbuj zmniejszyć „Użycie pamięci” KDF. Każdy ciąg musi mieć nazwę pola. Nie można włączyć usługi autouzupełniania. Nazwa pola @@ -149,8 +149,8 @@ Przenieś Wklej Anuluj - Chroniony przed zapisem - Modyfikowalne + Ochrona przed zapisem + Modyfikowalny Ochrona Ochrona przed zapisem KeePassDX potrzebuje uprawnień do zapisu, aby mógł modyfikować bazę danych. @@ -208,12 +208,12 @@ Przypisz klucz główny Utwórz nowy sejf Wykorzystanie kosza - Przenosi grupy i wpisy do grupy \"Kosz\" przed usunięciem + Przenosi grupy i wpisy do grupy „Kosz” przed usunięciem Czcionka pola Zmień czcionkę użytą w polach, aby poprawić widoczność znaków Ochrona schowka Zezwalanie na kopiowanie hasła wejściowego i chronionych pól do schowka - Ostrzeżenie: Schowek jest współużytkowany przez wszystkie aplikacje. Jeśli poufne dane są kopiowane, inne oprogramowanie może je odzyskać. + Ostrzeżenie: schowek jest współużytkowany przez wszystkie aplikacje. Jeśli poufne dane są kopiowane, inne oprogramowanie może je odzyskać. Nazwa bazy danych Opis bazy danych Wersja bazy danych @@ -224,7 +224,7 @@ Magikeyboard Aktywuj niestandardową klawiaturę wypełniającą hasła i wszystkie pola tożsamości Zezwalaj na brak klucza głównego - Umożliwia naciśnięcie przycisku \"Otwórz\", jeśli nie wybrano żadnych poświadczeń + Umożliwia naciśnięcie przycisku „Otwórz”, jeśli nie wybrano żadnych poświadczeń Wskazówki edukacyjne Podświetl elementy, aby dowiedzieć się, jak działa aplikacja Zresetuj wskazówki edukacyjne @@ -248,10 +248,7 @@ Zarejestruj dodatkowe pole, dodaj wartość i opcjonalnie chroń je. Odblokuj swoją bazę danych Zapisz ochronę swojej bazy danych - Zmień tryb otwierania sesji. -\n -\n\"Ochrona przed zapisem\" zapobiega niezamierzonych zmian w bazie danych. -\n\"Modyfikowalne\" pozwala dodawać, usuwać lub modyfikować wszystkie elementy, jak chcesz. + Zmień tryb otwierania sesji. \n \n„Ochrona przed zapisem” zapobiega niezamierzonym zmianom w bazie danych. \n„Modyfikowalny” pozwala dodawać, usuwać lub modyfikować wszystkie elementy według uznania. Skopiuj pole Skopiowane pola można wkleić w dowolnym miejscu. \n @@ -295,17 +292,17 @@ Zamknij bazę danych podczas zamykania powiadomienia Wygląd Motyw klawiatury - Klawiatura - Wibracja po naciśnięciu klawisza - Dźwięk przy naciśnięciu - Nie zabijaj aplikacji… - Wciśnij \'Powrót\', aby zablokować - Zablokuj bazę danych, gdy użytkownik kliknie przycisk \"Wstecz\" na ekranie głównym + Klawisze + Wibracje przy naciskaniu klawiszy + Dźwięk przy naciskaniu klawiszy + Nie zamykaj aplikacji… + Naciśnij „Wstecz”, aby zablokować + Zablokuj bazę danych, gdy użytkownik kliknie przycisk „Wstecz” na ekranie głównym Wyczyść po zamknięciu Blokowanie bazy danych po wygaśnięciu czasu trwania schowka lub zamknięciu powiadomienia po rozpoczęciu korzystania z niej Kosz Wybór wpisu - Podczas przeglądania wpisu w KeePassDX zapełnij Magikeyboard tym wpisem + Podczas przeglądania wpisu w KeePassDX zapełnij Magikeyboard tym wpisem Usuń hasło Usuwa hasło wprowadzone po próbie połączenia z bazą danych Otwórz plik @@ -367,7 +364,7 @@ Żadna Gzip Ustawienia klawiatury urządzenia - Nieprawidłowy klucz OTP. + Nieprawidłowy klucz tajny OTP. Należy ustawić co najmniej jedno poświadczenie. Klucz tajny musi być w formacie Base32. Licznik musi być między %1$d a %2$d. @@ -391,11 +388,11 @@ Magazyn kluczy nie został poprawnie zainicjowany. Kosz grupy Automatycznie zapisuj bazę danych - Zapisz bazę danych po każdym ważnym działaniu (w trybie „Modyfikowalnym”) + Zapisz bazę danych po każdym ważnym działaniu (w trybie „Modyfikowalny”) Załączniki Przywróć historię Usuń historię - Automatyczne działanie klucza + Automatyczna akcja klawiszy Akcja klawisza „Idź” po naciśnięciu klawisza „Pole” Pobierz %1$s Inicjowanie… @@ -428,7 +425,7 @@ Wyświetla przycisk blokady w interfejsie użytkownika Pokaż przycisk blokady Ustawienia autouzupełniania - Dostęp do pliku anulowany przez menedżera plików + Dostęp do pliku anulowany przez menedżer plików Ta etykieta już istnieje. Zrestartuj aplikację zawierającą formularz, aby aktywować blokadę. Blokowanie autouzupełniania @@ -441,9 +438,9 @@ Lista zablokowanych, która uniemożliwia automatyczne wypełnianie domen internetowych Lista zablokowanych domen internetowych Lista zablokowanych aplikacji - Automatycznie przełącz się z powrotem na poprzednią klawiaturę po wykonaniu automatycznej akcji klawiszy - Przełącz się z powrotem - Automatycznie przełącz się z powrotem do poprzedniej klawiatury na ekranie poświadczeń bazy danych + Automatycznie przełącz z powrotem do poprzedniej klawiatury po wykonaniu automatycznej akcji klawiszy + Przełącz z powrotem + Automatycznie przełącz z powrotem do poprzedniej klawiatury na ekranie poświadczeń bazy danych Ekran poświadczeń bazy danych Przełącz klawiaturę Prześlij %1$s @@ -451,9 +448,7 @@ Dodaj załącznik Czy mimo to dodać plik\? Przesłanie tego pliku spowoduje zastąpienie istniejącego. - Baza danych KeePass powinna zawierać tylko małe pliki narzędziowe (takie jak pliki kluczy PGP). -\n -\nTwoja baza danych może stać się bardzo duża i zmniejszyć wydajność dzięki temu wgrywaniu danych. + Baza danych KeePass powinna zawierać tylko małe pliki narzędziowe (takie jak pliki kluczy PGP). \n \nTwoja baza danych może stać się bardzo duża i obniżyć wydajność w wyniku tego przesyłania. Usuwa załączniki znajdujące się w bazie danych, ale niepowiązane z danym wpisem Usuń niepołączone dane Dane @@ -471,7 +466,7 @@ Zapisz informacje wyszukiwania Zamknij bazę danych po wybraniu autouzupełniania Zamknij bazę danych - Automatycznie przełącz się z powrotem do poprzedniej klawiatury po zablokowaniu bazy danych + Automatycznie przełącz z powrotem do poprzedniej klawiatury po zablokowaniu bazy danych Zablokuj bazę danych Staraj się zapisywać udostępnione informacje podczas dokonywania ręcznego wyboru wpisu, aby ułatwić sobie przyszłe użycie Zapisz udostępnione informacje @@ -623,8 +618,8 @@ Koloruj znaki hasła według typu Ekran wyszukiwania Entropia: %1$s bitowa - Entropia: Wysoka - Entropia: Oblicz… + Entropia: wysoka + Entropia: oblicz… Co najmniej po jednym znaku z każdego Wyklucz niejednoznaczne znaki Rozważ znaki @@ -636,7 +631,7 @@ Liczba słów frazy hasła Ignoruj znaki Koloruj hasła - Automatycznie przełączaj z powrotem do poprzedniej klawiatury na ekranie wyszukiwania + Automatycznie przełącz z powrotem do poprzedniej klawiatury na ekranie wyszukiwania Oczekiwanie na żądanie wyzwania… Oczekiwanie na odpowiedź na wyzwanie… Wyzwanie już zażądane. @@ -696,7 +691,7 @@ Węzły Nie zaleca się dodawania dużego pliku klucza, ponieważ może to uniemożliwić otwarcie bazy danych. Wygeneruj plik klucza - Rekurencyjnie oblicza liczbę wpisów w grupie + Rekurencyjnie oblicza liczbę wpisów w grupie Rekurencyjna liczba wpisów Ukryj szablony Szablony nie są wyświetlane From 3d5adbfc0104bf8780947fb9e9415fd7839dd5c7 Mon Sep 17 00:00:00 2001 From: shinebrillant Date: Wed, 10 Sep 2025 14:21:09 +0200 Subject: [PATCH 04/19] Translated using Weblate (Chinese (Traditional Han script)) Currently translated at 100.0% (664 of 664 strings) Translation: KeePassDX/Strings Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/zh_Hant/ --- app/src/main/res/values-zh-rTW/strings.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 138325f66..daa1bbc84 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -14,7 +14,7 @@ along with KeePassDX. If not, see . --> 關於 - 兼容KeePass密碼管理軟體的Android程式 + 兼容KeePass密碼管理軟體的Android程式。 接受 帳戶 新增項目 @@ -224,7 +224,7 @@ 資料庫所有資料均採用加密演算法 輸入 UUID - 存取於 + 存取時間 添加附件 添加欄位 附件 @@ -643,7 +643,7 @@ 自動填入 資訊 <strong>不收集用戶資料。</strong>,此應用程式不連接任何伺服器,僅在裝置上運作,而且完全尊重用戶私穩。 - 正在等待挑戰請求… + 正在等待開發請求… 正等待Challenge回應…… XML格式錯誤。 已請求Challenge。 @@ -665,10 +665,10 @@ 主題、顏色、屬性 解鎖 從每組中選擇字完 - 可以包括 + 可以包含 不要包括 標題大小寫 - 導航列 + 導航列標題 記得驗證和儲存你的資料庫。 \n \n如果自動鎖定已啓用,而你又忘記你在更改資料,你可能會失去你的資料。 From e8ecf28f7c6ac6263ae1dbb5f4d4f3807a3850a7 Mon Sep 17 00:00:00 2001 From: Artyom Rybakov Date: Wed, 10 Sep 2025 07:42:37 +0200 Subject: [PATCH 05/19] Translated using Weblate (Russian) Currently translated at 100.0% (3 of 3 strings) Translation: KeePassDX/Metadata Translate-URL: https://hosted.weblate.org/projects/keepass-dx/metadata/ru/ --- fastlane/metadata/android/ru-RU/full_description.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fastlane/metadata/android/ru-RU/full_description.txt b/fastlane/metadata/android/ru-RU/full_description.txt index 9a57c7dd3..d2f534e12 100644 --- a/fastlane/metadata/android/ru-RU/full_description.txt +++ b/fastlane/metadata/android/ru-RU/full_description.txt @@ -1,4 +1,4 @@ -KeePassDX имеет открытый исходный код и без рекламы. Многоформатный менеджер паролей KeePass это приложение которое позволяет безопасно сохранять и использовать пароли, ключи и цифровые идентификаторы за счет интеграции стандартов дизайна Android и не требует подключения к Интернету. +KeePassDX — это приложение для хранения и управления паролями, которая позволяет редактировать зашифрованные данные в одном файле в открытом формате KeePass, безопасно заполнять формы, не требует подключения к Интернету и соответствует стандартам дизайна Android. Приложение с открытым исходным кодом, без рекламы. Возможности @@ -16,8 +16,8 @@ KeePassDX имеет открытый исходный код и бе - Точное управление настройками. - Код написан на родных языках для платформы (Kotlin / Java / JNI / C). -Вы можете пожертвовать или купить профессиональную версию чтобы улучшить обслуживание и ускорить разработку нужных вам возможностей: KeePass Pro +Вы можете пожертвовать или купить профессиональную версию для улучшения обслуживания и быстрой разработки нужных вам возможностей: https://play.google.com/store/apps/details?id=com.kunzisoft.keepass.pro -Проект постоянно развивается. Не стесняйтесь проверять статус разработки и следующих обновлений тут: github.com/Kunzisoft/KeePassDX/projects +Проект постоянно развивается. Не стесняйтесь проверять статус разработки следующих обновлений: https://github.com/Kunzisoft/KeePassDX/projects Сообщить о проблеме:https://github.com/Kunzisoft/KeePassDX/issues From b609d4e1824f0033ee9a1a7a0f5a298964770331 Mon Sep 17 00:00:00 2001 From: shinebrillant Date: Wed, 10 Sep 2025 14:36:34 +0200 Subject: [PATCH 06/19] Translated using Weblate (Chinese (Traditional Han script)) Currently translated at 100.0% (3 of 3 strings) Translation: KeePassDX/Metadata Translate-URL: https://hosted.weblate.org/projects/keepass-dx/metadata/zh_Hant/ --- .../android/zh-TW/full_description.txt | 23 +++++++++++++++++++ .../android/zh-TW/short_description.txt | 1 + fastlane/metadata/android/zh-TW/title.txt | 1 + 3 files changed, 25 insertions(+) create mode 100644 fastlane/metadata/android/zh-TW/full_description.txt create mode 100644 fastlane/metadata/android/zh-TW/short_description.txt create mode 100644 fastlane/metadata/android/zh-TW/title.txt diff --git a/fastlane/metadata/android/zh-TW/full_description.txt b/fastlane/metadata/android/zh-TW/full_description.txt new file mode 100644 index 000000000..6b02bbc78 --- /dev/null +++ b/fastlane/metadata/android/zh-TW/full_description.txt @@ -0,0 +1,23 @@ +KeePassDX 是一款密碼保險箱和管理器,允許以開放的 KeePass 格式編輯單一檔案中的加密資料,並以安全的方式填寫表單,無需網路連線,並整合了 Android 設計標準。該應用程式開源,無廣告。 + +功能 + +- 建立資料庫檔案/條目和群組。 +- 支援 .kdb 和 .kdbx 檔案(版本 1 至 4),並採用 AES - Twofish - ChaCha20 - Argon2 演算法。 +- 與大多數替代方案(KeePass、KeePassXC、KeeWeb 等)相容。 +- 允許快速開啟和複製 URI/URL 欄位。 +- 生物辨識技術,可快速解鎖(指紋/人臉解鎖等)。 +- 一次性密碼管理 (HOTP / TOTP),用於雙重認證 (2FA)。 +- 帶主題的 Material Design 設計。 +- 自動填充和整合。 +- 字段填充鍵盤。 +- 動態模板。 +- 每次輸入的歷史記錄。 +- 精確的設定管理。 +- 使用原生語言編寫程式碼 (Kotlin / Java / JNI / C)。 + +您可以捐款或購買專業版,以獲得更好的服務並快速開發您想要的功能:https://play.google.com/store/apps/details?id=com.kunzisoft.keepass.pro + +該項目正在不斷發展。請隨時查看後續更新的開發狀態:https://github.com/Kunzisoft/KeePassDX/projects + +請將問題寄至:https://github.com/Kunzisoft/KeePassDX/issues diff --git a/fastlane/metadata/android/zh-TW/short_description.txt b/fastlane/metadata/android/zh-TW/short_description.txt new file mode 100644 index 000000000..7f4abdc73 --- /dev/null +++ b/fastlane/metadata/android/zh-TW/short_description.txt @@ -0,0 +1 @@ +安全的開源密碼保險箱和管理器 diff --git a/fastlane/metadata/android/zh-TW/title.txt b/fastlane/metadata/android/zh-TW/title.txt new file mode 100644 index 000000000..844550948 --- /dev/null +++ b/fastlane/metadata/android/zh-TW/title.txt @@ -0,0 +1 @@ +KeePassDX - FOSS 密碼管理器 From 7c3a15ce79bb63860e932a9cd66a90bca0718bee Mon Sep 17 00:00:00 2001 From: Milo Ivir Date: Thu, 11 Sep 2025 17:48:51 +0200 Subject: [PATCH 07/19] Translated using Weblate (Croatian) Currently translated at 100.0% (664 of 664 strings) Translation: KeePassDX/Strings Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/hr/ --- app/src/main/res/values-hr/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index c0f766924..b0e418a42 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -383,7 +383,7 @@ Zaključaj bazu podataka brzo, aplikaciju možeš postaviti tako da bazu nakon nekog vremena zaključa i kad se ekran isključi. Prikaži mjesto nedavnih baza podataka Za brzo otključavanje baze podataka, poveži lozinku sa skeniranom biometrijom ili podacima za prijavu uređaja. - <strong>Doprinosom</strong> projektu <i>(novčano, kodom, prijevodom)</i> pomažeš mu da živi i napreduje, a također stječeš pravo na postupak otključavanja <strong>tema</strong>.</strong> + Doprinosom projektu (novčano, kodom, prijevodom) pomažeš mu da živi i napreduje, a također stječeš pravo na postupak otključavanja tema. Za stvaranje ključa za algoritam šifriranja, glavni ključ se transformira pomoću funkcije za generiranje ključeva koja sadrži slučajnu komponentu. Zaključaj bazu podataka kad korisnik pritisne gumb za natrag na glavnom ekranu Sakrij pokvarene poveznice baze podataka From ae903ad236b57130a08eb0cf3f2e2c500178f3d6 Mon Sep 17 00:00:00 2001 From: Xo Date: Sun, 14 Sep 2025 10:21:25 +0200 Subject: [PATCH 08/19] Translated using Weblate (Hebrew) Currently translated at 100.0% (664 of 664 strings) Translation: KeePassDX/Strings Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/he/ --- app/src/main/res/values-iw/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index aef987119..743af44f6 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -20,7 +20,7 @@ --> משוב דף הבית - מימוש אנדרואיד של מנהל הסיסמאות KeePass + מימוש אנדרואיד של מנהל הסיסמאות KeePass. קבל הוסף ערך הוסף קבוצה From f17d211fbdb6c2d72e8e436fa2fb569ac0c08637 Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Wed, 24 Sep 2025 13:19:57 +0200 Subject: [PATCH 09/19] fix: Change appearance summary #2171 --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d5dd2a8ff..c87392f54 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -413,7 +413,7 @@ History Properties Appearance - Themes, colors, attributes + Themes, colors, icons, fonts, attributes Biometric Device credential General From 72087c7e5c2364a13b7655de576aaa52829f1450 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alonso=20Gonz=C3=A1lez=20Chaves?= Date: Fri, 3 Oct 2025 14:01:11 +0200 Subject: [PATCH 10/19] Translated using Weblate (Spanish) Currently translated at 100.0% (664 of 664 strings) Translation: KeePassDX/Strings Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/es/ --- app/src/main/res/values-es/strings.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 992ccb923..8d331f7ea 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -21,7 +21,7 @@ --> Comentarios Página de inicio - Implementación para Android del gestor de contraseñas KeePass + Implementación para Android del gestor de contraseñas KeePass. Aceptar Añadir apunte Añadir grupo @@ -691,4 +691,5 @@ Generar archivo de claves Número recursivo de entradas Las plantillas no se muestran + La clave secreta debe tener al menos %1$d caracteres. From 711a3448601b20d05b31a1fafef9b0e4d0bf73c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alonso=20Gonz=C3=A1lez=20Chaves?= Date: Fri, 3 Oct 2025 14:09:21 +0200 Subject: [PATCH 11/19] Translated using Weblate (Spanish) Currently translated at 100.0% (3 of 3 strings) Translation: KeePassDX/Metadata Translate-URL: https://hosted.weblate.org/projects/keepass-dx/metadata/es/ --- fastlane/metadata/android/es-ES/full_description.txt | 2 +- fastlane/metadata/android/es-ES/short_description.txt | 2 +- fastlane/metadata/android/es-ES/title.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/fastlane/metadata/android/es-ES/full_description.txt b/fastlane/metadata/android/es-ES/full_description.txt index f85e99b58..a9130725b 100644 --- a/fastlane/metadata/android/es-ES/full_description.txt +++ b/fastlane/metadata/android/es-ES/full_description.txt @@ -1,4 +1,4 @@ -KeePassDX es un Administrador de contraseñas seguro que permite editar datos cifrados en un solo archivo en el formato abierto de KeePass permite completar los formularios de manera segura, no requiereconexión a internet e integra los estándares de diseño de Android. La aplicación es de código abierto, sin publicidad. +KeePassDX es un gestor y almacén de contraseñas que permite editar datos cifrados en un único archivo en formato KeePass abierto y rellenar formularios de forma segura, no requiere conexión a Internet e integra los estándares de diseño de Android. La aplicación es de código abierto y sin publicidad. Funciones diff --git a/fastlane/metadata/android/es-ES/short_description.txt b/fastlane/metadata/android/es-ES/short_description.txt index 5dd953b83..1fe438817 100644 --- a/fastlane/metadata/android/es-ES/short_description.txt +++ b/fastlane/metadata/android/es-ES/short_description.txt @@ -1 +1 @@ -Administrador de contraseñas seguro de código abierto \ No newline at end of file +Administrador de contraseñas seguro de código abierto diff --git a/fastlane/metadata/android/es-ES/title.txt b/fastlane/metadata/android/es-ES/title.txt index b658c4290..b5651e34a 100644 --- a/fastlane/metadata/android/es-ES/title.txt +++ b/fastlane/metadata/android/es-ES/title.txt @@ -1 +1 @@ -KeePassDX - FOSS Administrador de contraseñas \ No newline at end of file +KeePassDX - Contraseñas FOSS From 852378e4841eb69cff03485fb3a166bd406529ec Mon Sep 17 00:00:00 2001 From: Andrew Gunnerson Date: Sat, 4 Oct 2025 15:37:45 -0400 Subject: [PATCH 12/19] Simplify inset logic, fix landscape mode, fix cutout overlapping The commit primarily fixes a few overlapping issues caused by the window inset handling. Previously, there were two main issues: * Because setTransparentNavigationBar() checked for portrait mode, the inset logic never executed in landscape mode. This caused the app to overlap the status bar and navigation bar. * The inset logic did not have handling for displayCutout insets. In landscape mode, this would cause the app to overlap the notch or camera hole punch area on phones. In addition to fixing those issues, this commit simplifies the inset logic a bit: * applyWindowInsets() now accepts an EnumSet of WindowInsetPosition to avoid needing to duplicate logic for the various position combinations. * Insets are now applied to the main container in the layout instead of individual elements where possible. This eliminates the need for the previous manual IME height handling logic in BOTTOM_IME vs TOP_BOTTOM_IME (for avoiding the insets being applied twice). * Since insets are now applied to the main layout container, applyWindowInsets() now takes systemBars, displayCutout, and ime all into consideration. This should avoid all possible overlapping. * Add support for using padding instead of margins for insets. This is used for GroupActivity's navigation drawer, where Material design intends for the drawer background to be drawn behind system bars. Signed-off-by: Andrew Gunnerson --- .../keepass/activities/EntryActivity.kt | 15 ++- .../keepass/activities/EntryEditActivity.kt | 9 +- .../keepass/activities/GroupActivity.kt | 19 +++- .../keepass/settings/SettingsActivity.kt | 8 +- .../com/kunzisoft/keepass/view/ViewUtil.kt | 107 +++++++++++------- app/src/main/res/layout/activity_entry.xml | 1 + 6 files changed, 105 insertions(+), 54 deletions(-) diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/EntryActivity.kt b/app/src/main/java/com/kunzisoft/keepass/activities/EntryActivity.kt index 5da1544b8..186288919 100644 --- a/app/src/main/java/com/kunzisoft/keepass/activities/EntryActivity.kt +++ b/app/src/main/java/com/kunzisoft/keepass/activities/EntryActivity.kt @@ -23,7 +23,6 @@ import android.content.Intent import android.graphics.Color import android.graphics.drawable.ColorDrawable import android.net.Uri -import android.os.Build import android.os.Bundle import android.os.Handler import android.os.Looper @@ -38,13 +37,10 @@ import androidx.activity.result.ActivityResultLauncher import androidx.activity.viewModels import androidx.appcompat.widget.Toolbar import androidx.coordinatorlayout.widget.CoordinatorLayout -import androidx.core.content.ContextCompat -import androidx.core.content.res.ResourcesCompat import androidx.core.graphics.BlendModeColorFilterCompat import androidx.core.graphics.BlendModeCompat import androidx.core.graphics.ColorUtils import androidx.core.view.ViewCompat -import androidx.core.view.WindowCompat import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.google.android.material.appbar.AppBarLayout @@ -83,11 +79,13 @@ import com.kunzisoft.keepass.view.hideByFading import com.kunzisoft.keepass.view.setTransparentNavigationBar import com.kunzisoft.keepass.view.showActionErrorIfNeeded import com.kunzisoft.keepass.viewmodels.EntryViewModel +import java.util.EnumSet import java.util.UUID class EntryActivity : DatabaseLockActivity() { private var footer: ViewGroup? = null + private var container: View? = null private var coordinatorLayout: CoordinatorLayout? = null private var collapsingToolbarLayout: CollapsingToolbarLayout? = null private var appBarLayout: AppBarLayout? = null @@ -139,6 +137,7 @@ class EntryActivity : DatabaseLockActivity() { // Get views footer = findViewById(R.id.activity_entry_footer) + container = findViewById(R.id.activity_entry_container) coordinatorLayout = findViewById(R.id.toolbar_coordinator) collapsingToolbarLayout = findViewById(R.id.toolbar_layout) appBarLayout = findViewById(R.id.app_bar) @@ -154,8 +153,12 @@ class EntryActivity : DatabaseLockActivity() { setTransparentNavigationBar { // To fix margin with API 27 ViewCompat.setOnApplyWindowInsetsListener(collapsingToolbarLayout!!, null) - coordinatorLayout?.applyWindowInsets(WindowInsetPosition.TOP) - footer?.applyWindowInsets(WindowInsetPosition.BOTTOM) + container?.applyWindowInsets(EnumSet.of( + WindowInsetPosition.TOP_MARGINS, + WindowInsetPosition.BOTTOM_MARGINS, + WindowInsetPosition.START_MARGINS, + WindowInsetPosition.END_MARGINS, + )) } // Empty title diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/EntryEditActivity.kt b/app/src/main/java/com/kunzisoft/keepass/activities/EntryEditActivity.kt index 49f6544c6..f5b2d6bcb 100644 --- a/app/src/main/java/com/kunzisoft/keepass/activities/EntryEditActivity.kt +++ b/app/src/main/java/com/kunzisoft/keepass/activities/EntryEditActivity.kt @@ -100,6 +100,7 @@ import com.kunzisoft.keepass.view.showActionErrorIfNeeded import com.kunzisoft.keepass.view.updateLockPaddingStart import com.kunzisoft.keepass.viewmodels.ColorPickerViewModel import com.kunzisoft.keepass.viewmodels.EntryEditViewModel +import java.util.EnumSet import java.util.UUID class EntryEditActivity : DatabaseLockActivity(), @@ -180,8 +181,12 @@ class EntryEditActivity : DatabaseLockActivity(), // To apply fit window with transparency setTransparentNavigationBar(applyToStatusBar = true) { - container?.applyWindowInsets(WindowInsetPosition.TOP_BOTTOM_IME) - footer?.applyWindowInsets(WindowInsetPosition.BOTTOM_IME) + container?.applyWindowInsets(EnumSet.of( + WindowInsetPosition.TOP_MARGINS, + WindowInsetPosition.BOTTOM_MARGINS, + WindowInsetPosition.START_MARGINS, + WindowInsetPosition.END_MARGINS, + )) } stopService(Intent(this, ClipboardEntryNotificationService::class.java)) diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/GroupActivity.kt b/app/src/main/java/com/kunzisoft/keepass/activities/GroupActivity.kt index c0704dc0a..c82207b3e 100644 --- a/app/src/main/java/com/kunzisoft/keepass/activities/GroupActivity.kt +++ b/app/src/main/java/com/kunzisoft/keepass/activities/GroupActivity.kt @@ -48,6 +48,7 @@ import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.view.ActionMode import androidx.appcompat.widget.SearchView import androidx.appcompat.widget.Toolbar +import androidx.constraintlayout.widget.ConstraintLayout import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.core.view.GravityCompat import androidx.core.view.WindowInsetsCompat @@ -117,6 +118,7 @@ import com.kunzisoft.keepass.view.updateLockPaddingStart import com.kunzisoft.keepass.viewmodels.GroupEditViewModel import com.kunzisoft.keepass.viewmodels.GroupViewModel import org.joda.time.LocalDateTime +import java.util.EnumSet class GroupActivity : DatabaseLockActivity(), @@ -131,6 +133,7 @@ class GroupActivity : DatabaseLockActivity(), private var header: ViewGroup? = null private var footer: ViewGroup? = null private var drawerLayout: DrawerLayout? = null + private var constraintLayout: ConstraintLayout? = null private var databaseNavView: NavigationDatabaseView? = null private var coordinatorLayout: CoordinatorLayout? = null private var coordinatorError: CoordinatorLayout? = null @@ -279,6 +282,7 @@ class GroupActivity : DatabaseLockActivity(), header = findViewById(R.id.activity_group_header) footer = findViewById(R.id.activity_group_footer) drawerLayout = findViewById(R.id.drawer_layout) + constraintLayout = findViewById(R.id.activity_group_container_view) databaseNavView = findViewById(R.id.database_nav_view) coordinatorLayout = findViewById(R.id.group_coordinator) coordinatorError = findViewById(R.id.error_coordinator) @@ -296,8 +300,19 @@ class GroupActivity : DatabaseLockActivity(), // To apply fit window with transparency setTransparentNavigationBar(applyToStatusBar = true) { - drawerLayout?.applyWindowInsets(WindowInsetPosition.TOP_BOTTOM_IME) - footer?.applyWindowInsets(WindowInsetPosition.BOTTOM_IME) + constraintLayout?.applyWindowInsets(EnumSet.of( + WindowInsetPosition.TOP_MARGINS, + WindowInsetPosition.BOTTOM_MARGINS, + WindowInsetPosition.START_MARGINS, + WindowInsetPosition.END_MARGINS, + )) + // The background of the drawer is meant to overlap system bars, so use padding + databaseNavView?.applyWindowInsets(EnumSet.of( + WindowInsetPosition.TOP_PADDING, + WindowInsetPosition.BOTTOM_PADDING, + // Only on the start side, since the drawer is anchored to one side of the screen + WindowInsetPosition.START_PADDING, + )) } lockView?.setOnClickListener { diff --git a/app/src/main/java/com/kunzisoft/keepass/settings/SettingsActivity.kt b/app/src/main/java/com/kunzisoft/keepass/settings/SettingsActivity.kt index 6bf068bbf..7c996aac3 100644 --- a/app/src/main/java/com/kunzisoft/keepass/settings/SettingsActivity.kt +++ b/app/src/main/java/com/kunzisoft/keepass/settings/SettingsActivity.kt @@ -70,8 +70,12 @@ open class SettingsActivity // To apply navigation bar with background color /* TODO Settings nav bar setTransparentNavigationBar { - coordinatorLayout?.applyWindowInsets(WindowInsetPosition.TOP) - footer?.applyWindowInsets(WindowInsetPosition.BOTTOM) + coordinatorLayout?.applyWindowInsets(EnumSet.of( + WindowInsetPosition.TOP_MARGINS, + WindowInsetPosition.BOTTOM_MARGINS, + WindowInsetPosition.START_MARGINS, + WindowInsetPosition.END_MARGINS, + )) }*/ mExternalFileHelper = ExternalFileHelper(this) diff --git a/app/src/main/java/com/kunzisoft/keepass/view/ViewUtil.kt b/app/src/main/java/com/kunzisoft/keepass/view/ViewUtil.kt index 1768c3c49..2437e070d 100644 --- a/app/src/main/java/com/kunzisoft/keepass/view/ViewUtil.kt +++ b/app/src/main/java/com/kunzisoft/keepass/view/ViewUtil.kt @@ -24,7 +24,6 @@ import android.animation.AnimatorSet import android.animation.ValueAnimator import android.app.Activity import android.content.Context -import android.content.res.Configuration import android.graphics.Color import android.graphics.Paint import android.graphics.PorterDuff @@ -58,7 +57,6 @@ import androidx.core.view.WindowInsetsCompat import androidx.core.view.forEach import androidx.core.view.isVisible import androidx.core.view.updateLayoutParams -import androidx.core.view.updatePadding import androidx.core.view.updatePaddingRelative import com.google.android.material.appbar.CollapsingToolbarLayout import com.google.android.material.snackbar.Snackbar @@ -66,6 +64,7 @@ import com.kunzisoft.keepass.R import com.kunzisoft.keepass.database.helper.getLocalizedMessage import com.kunzisoft.keepass.settings.PreferencesUtil import com.kunzisoft.keepass.tasks.ActionRunnable +import java.util.EnumSet /** @@ -306,9 +305,7 @@ fun CollapsingToolbarLayout.changeTitleColor(color: Int) { @Suppress("DEPRECATION") fun Activity.setTransparentNavigationBar(applyToStatusBar: Boolean = false, applyWindowInsets: () -> Unit) { - // Only in portrait - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1 - && resources.configuration.orientation == Configuration.ORIENTATION_PORTRAIT) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) { WindowCompat.setDecorFitsSystemWindows(window, false) window.navigationBarColor = ContextCompat.getColor(this, R.color.surface_selector) if (applyToStatusBar) { @@ -324,7 +321,7 @@ fun Activity.setTransparentNavigationBar(applyToStatusBar: Boolean = false, appl /** * Apply a margin to a view to fix the window inset */ -fun View.applyWindowInsets(position: WindowInsetPosition = WindowInsetPosition.BOTTOM) { +fun View.applyWindowInsets(positions: EnumSet) { ViewCompat.setOnApplyWindowInsetsListener(this) { view, windowInsets -> var consumed = false @@ -340,52 +337,78 @@ fun View.applyWindowInsets(position: WindowInsetPosition = WindowInsetPosition.B } } - val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars()) - when (position) { - WindowInsetPosition.TOP -> { - if (view.layoutParams is ViewGroup.MarginLayoutParams) { - view.updateLayoutParams { - topMargin = insets.top + val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars() + or WindowInsetsCompat.Type.displayCutout() + or WindowInsetsCompat.Type.ime()) + + val isRtl = layoutDirection == View.LAYOUT_DIRECTION_RTL + + val wantTopMargins = positions.contains(WindowInsetPosition.TOP_MARGINS) + val wantBottomMargins = positions.contains(WindowInsetPosition.BOTTOM_MARGINS) + val wantStartMargins = positions.contains(WindowInsetPosition.START_MARGINS) + val wantEndMargins = positions.contains(WindowInsetPosition.END_MARGINS) + + if (view.layoutParams is ViewGroup.MarginLayoutParams + && (wantTopMargins || wantBottomMargins || wantStartMargins || wantEndMargins)) { + view.updateLayoutParams { + if (wantTopMargins) { + topMargin = insets.top + } + if (wantBottomMargins) { + bottomMargin = insets.bottom + } + if (wantStartMargins) { + if (isRtl) { + rightMargin = insets.right + } else { + leftMargin = insets.left } } - } - WindowInsetPosition.LEGIT_TOP -> { - if (view.layoutParams is ViewGroup.MarginLayoutParams) { - view.updateLayoutParams { - topMargin = 0 - } - } - } - WindowInsetPosition.BOTTOM -> { - if (view.layoutParams is ViewGroup.MarginLayoutParams) { - view.updateLayoutParams { - bottomMargin = insets.bottom - } - } - } - WindowInsetPosition.BOTTOM_IME -> { - val imeHeight = windowInsets.getInsets(WindowInsetsCompat.Type.ime()).bottom - if (view.layoutParams is ViewGroup.MarginLayoutParams) { - view.updateLayoutParams { - bottomMargin = if (imeHeight > 1) 0 else insets.bottom - } - } - } - WindowInsetPosition.TOP_BOTTOM_IME -> { - val imeHeight = windowInsets.getInsets(WindowInsetsCompat.Type.ime()).bottom - if (view.layoutParams is ViewGroup.MarginLayoutParams) { - view.updateLayoutParams { - topMargin = insets.top - bottomMargin = if (imeHeight > 1) imeHeight else 0 + if (wantEndMargins) { + if (isRtl) { + leftMargin = insets.left + } else { + rightMargin = insets.right } } } } + + val wantTopPadding = positions.contains(WindowInsetPosition.TOP_PADDING) + val wantBottomPadding = positions.contains(WindowInsetPosition.BOTTOM_PADDING) + val wantStartPadding = positions.contains(WindowInsetPosition.START_PADDING) + val wantEndPadding = positions.contains(WindowInsetPosition.END_PADDING) + + if (wantTopPadding || wantBottomPadding || wantStartPadding || wantEndPadding) { + val topPadding = if (wantTopPadding) insets.top else 0 + val bottomPadding = if (wantBottomPadding) insets.bottom else 0 + var leftPadding = 0 + var rightPadding = 0 + + if (wantStartPadding) { + if (isRtl) { + rightPadding = insets.right + } else { + leftPadding = insets.left + } + } + if (wantEndPadding) { + if (isRtl) { + leftPadding = insets.left + } else { + rightPadding = insets.right + } + } + + setPadding(leftPadding, topPadding, rightPadding, bottomPadding) + } + // If any of the children consumed the insets, return an appropriate value if (consumed) WindowInsetsCompat.CONSUMED else windowInsets } } enum class WindowInsetPosition { - TOP, BOTTOM, LEGIT_TOP, BOTTOM_IME, TOP_BOTTOM_IME + TOP_MARGINS, BOTTOM_MARGINS, START_MARGINS, END_MARGINS, + TOP_PADDING, BOTTOM_PADDING, START_PADDING, END_PADDING, } diff --git a/app/src/main/res/layout/activity_entry.xml b/app/src/main/res/layout/activity_entry.xml index b93a66a3b..63d4c696c 100644 --- a/app/src/main/res/layout/activity_entry.xml +++ b/app/src/main/res/layout/activity_entry.xml @@ -20,6 +20,7 @@ From b544b5d54d50b24905c24465c3bcf019480ddb4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Sat, 4 Oct 2025 19:44:44 +0200 Subject: [PATCH 13/19] Translated using Weblate (Turkish) Currently translated at 100.0% (664 of 664 strings) Translation: KeePassDX/Strings Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/tr/ --- app/src/main/res/values-tr/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 28b5aa6b8..5d72229aa 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -19,7 +19,7 @@ --> Geri bildirim Ana Sayfa - KeePass Parola Yöneticisi\'nin Android uygulama uyarlaması + KeePass Parola Yöneticisi\'nin Android uygulama uyarlaması. Kabul et Girdi ekle Girdi düzenle From 6044c93a4aa808002259c9befd2c968814fb83c2 Mon Sep 17 00:00:00 2001 From: Mekyla Credo Date: Sun, 5 Oct 2025 08:57:10 +0200 Subject: [PATCH 14/19] Translated using Weblate (Filipino) Currently translated at 46.5% (309 of 664 strings) Translation: KeePassDX/Strings Translate-URL: https://hosted.weblate.org/projects/keepass-dx/strings/fil/ --- app/src/main/res/values-fil/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-fil/strings.xml b/app/src/main/res/values-fil/strings.xml index 2b80e083c..1a76b6618 100644 --- a/app/src/main/res/values-fil/strings.xml +++ b/app/src/main/res/values-fil/strings.xml @@ -75,7 +75,7 @@ I-update Isara ang mga field Piliin para kopyahin ang %1$s sa clipboard - KeePassDX © %1$d Ang Kunzisoft ay <strong>open source</strong> at <strong>walang advertising</strong>. \nIbinigay ito nang as is, sa ilalim <strong>GPLv3</strong> na lisensya, nang walang anumang warranty. + Ang KeePassDX © Kunzisoft ay open source at walang kasamang patalastas.\nIbinibigay ito nang buo sa ilalim ng lisensiyang GPLv3, nang walang anumang garantiya. <strong>Walang user data ay kinukuha</strong>, ang aplikasyon na ito ay hindi kumokonekta sa anumang server, gumanagana ng lokal at ganap na ginagalang ang pagkapribado ng mga gumagamit. Para <strong>panatilihin ang aming kalayaan</strong>, <strong>ayusin ang mga bug</strong>, <strong>magdagdag ng mga feature</strong> at <strong>maging palaging aktibo</strong>, umaasa kami sa iyong <strong>kontribusyon</strong>. Na-access From b0d0c3524100824be32b10e214dddfd7ca118db4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Sun, 5 Oct 2025 11:57:56 +0200 Subject: [PATCH 15/19] Translated using Weblate (Turkish) Currently translated at 100.0% (3 of 3 strings) Translation: KeePassDX/Metadata Translate-URL: https://hosted.weblate.org/projects/keepass-dx/metadata/tr/ --- .../android/tr-TR/full_description.txt | 23 +++++++++++++++++++ .../android/tr-TR/short_description.txt | 2 +- fastlane/metadata/android/tr-TR/title.txt | 2 +- 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 fastlane/metadata/android/tr-TR/full_description.txt diff --git a/fastlane/metadata/android/tr-TR/full_description.txt b/fastlane/metadata/android/tr-TR/full_description.txt new file mode 100644 index 000000000..e0c0b3bbc --- /dev/null +++ b/fastlane/metadata/android/tr-TR/full_description.txt @@ -0,0 +1,23 @@ +KeePassDX, açık KeePass biçiminde tek bir dosyada şifreli verileri düzenlemeye ve formları güvenli bir şekilde doldurmaya olanak tanıyan bir şifre kasası ve yöneticisi olup, internet bağlantısı gerektirmez ve Android tasarım standartlarını takip eder. Uygulama açık kaynaklıdır ve reklam içermez. + +Özellikler + +- Veri tabanı dosyaları / girdileri ve grupları oluşturun. +- AES - Twofish - ChaCha20 - Argon2 algoritması ile .kdb ve .kdbx dosyaları (sürüm 1 ile 4 arası) desteği. +- Birçok farklı programla uyumludur (KeePass, KeePassXC, KeeWeb, …). +- URI / URL alanlarını hızlı bir şekilde açma ve kopyalama imkanı. +- Hızlı kilit açma için biyometrik tanıma (parmak izi / yüz tanıma / …). +- İki aşamalı kimlik doğrulama (2FA) için tek kullanımlık şifre yönetimi (HOTP / TOTP). +- Temalı Material tasarımı. +- Otomatik doldurma ve bütünleşme. +- Alan doldurma klavyesi. +- Değişken şablonlar. +- Her girdinin geçmişi. +- Ayarların hassas yönetimi. +- Yerel dillerde (Kotlin / Java / JNI / C) yazılmış kod. + +Daha iyi hizmet ve istediğiniz özelliklerin hızlı bir şekilde geliştirilmesi için bağış yapabilir veya pro sürümü satın alabilirsiniz: https://play.google.com/store/apps/details?id=com.kunzisoft.keepass.pro + +Proje sürekli gelişmektedir. Bir sonraki güncellemelerin geliştirme durumuna bakmaktan çekinmeyin: https://github.com/Kunzisoft/KeePassDX/projects + +Sorunlarınızı şu adrese gönderin: https://github.com/Kunzisoft/KeePassDX/issues diff --git a/fastlane/metadata/android/tr-TR/short_description.txt b/fastlane/metadata/android/tr-TR/short_description.txt index e7aaaf446..611a6efc3 100644 --- a/fastlane/metadata/android/tr-TR/short_description.txt +++ b/fastlane/metadata/android/tr-TR/short_description.txt @@ -1 +1 @@ -Güvenilir açık kaynaklı parola kasa ve yöneticisi \ No newline at end of file +Güvenilir açık kaynaklı parola kasa ve yöneticisi diff --git a/fastlane/metadata/android/tr-TR/title.txt b/fastlane/metadata/android/tr-TR/title.txt index aae091a35..e92cb62b0 100644 --- a/fastlane/metadata/android/tr-TR/title.txt +++ b/fastlane/metadata/android/tr-TR/title.txt @@ -1 +1 @@ -KeePassDX - FOSS Parola Kasası \ No newline at end of file +KeePassDX - FOSS Parola Kasası From 97f0ca519bb271cf7cfea6ff8a5d44b01e70c266 Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Mon, 6 Oct 2025 16:59:42 +0200 Subject: [PATCH 16/19] fix: Killed service #2201 --- .../kunzisoft/keepass/activities/MainCredentialActivity.kt | 4 ---- .../com/kunzisoft/keepass/database/DatabaseTaskProvider.kt | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/MainCredentialActivity.kt b/app/src/main/java/com/kunzisoft/keepass/activities/MainCredentialActivity.kt index 4bca99154..e9d8cb02c 100644 --- a/app/src/main/java/com/kunzisoft/keepass/activities/MainCredentialActivity.kt +++ b/app/src/main/java/com/kunzisoft/keepass/activities/MainCredentialActivity.kt @@ -311,10 +311,6 @@ class MainCredentialActivity : DatabaseModeActivity() { mDatabaseFileUri?.let { databaseFileUri -> mDatabaseFileViewModel.loadDatabaseFile(databaseFileUri) } - - mDatabase?.let { database -> - launchGroupActivityIfLoaded(database) - } } override fun onDatabaseRetrieved(database: ContextualDatabase?) { diff --git a/app/src/main/java/com/kunzisoft/keepass/database/DatabaseTaskProvider.kt b/app/src/main/java/com/kunzisoft/keepass/database/DatabaseTaskProvider.kt index cd38f0046..303a725a6 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/DatabaseTaskProvider.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/DatabaseTaskProvider.kt @@ -254,6 +254,7 @@ class DatabaseTaskProvider( } private fun initServiceConnection() { + stopDialog() if (serviceConnection == null) { serviceConnection = object : ServiceConnection { override fun onBindingDied(name: ComponentName?) { From cf799c0f681330fe51d4ce3d5bbc8186cf93307a Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Mon, 6 Oct 2025 17:14:10 +0200 Subject: [PATCH 17/19] fix: Update to 4.1.9 --- CHANGELOG | 5 +++++ app/build.gradle | 4 ++-- fastlane/metadata/android/en-US/changelogs/143.txt | 3 +++ fastlane/metadata/android/fr-FR/changelogs/143.txt | 3 +++ 4 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 fastlane/metadata/android/en-US/changelogs/143.txt create mode 100644 fastlane/metadata/android/fr-FR/changelogs/143.txt diff --git a/CHANGELOG b/CHANGELOG index 23aeb1c88..965795f4e 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,8 @@ +KeePassDX(4.1.9) + * Fix landscape UI #2198 (@chenxiaolong) + * Fix start loop and flash screen #2201 + * Small fixes + KeePassDX(4.1.8) * Updated to API 35 minimum SDK 19 #2073 #2138 #2067 #2133 #1687 (Thx @Dev-ClayP) * Remember last read-only state #2099 #2100 (Thx @rmacklin) diff --git a/app/build.gradle b/app/build.gradle index 090ae8234..81802b957 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ android { applicationId "com.kunzisoft.keepass" minSdkVersion 19 targetSdkVersion 35 - versionCode = 141 - versionName = "4.1.8" + versionCode = 143 + versionName = "4.1.9" multiDexEnabled true testApplicationId = "com.kunzisoft.keepass.tests" diff --git a/fastlane/metadata/android/en-US/changelogs/143.txt b/fastlane/metadata/android/en-US/changelogs/143.txt new file mode 100644 index 000000000..fc1979998 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/143.txt @@ -0,0 +1,3 @@ + * Fix landscape UI #2198 (@chenxiaolong) + * Fix start loop and flash screen #2201 + * Small fixes \ No newline at end of file diff --git a/fastlane/metadata/android/fr-FR/changelogs/143.txt b/fastlane/metadata/android/fr-FR/changelogs/143.txt new file mode 100644 index 000000000..8b2fde0d7 --- /dev/null +++ b/fastlane/metadata/android/fr-FR/changelogs/143.txt @@ -0,0 +1,3 @@ + * Correction de l'interface en paysage #2198 (@chenxiaolong) + * Correction du démarrage en boucle et de l'écran clignotant #2201 + * Petites corrections \ No newline at end of file From b4264a30a4f18e92730fe11baf608975911f74bc Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Mon, 6 Oct 2025 17:16:57 +0200 Subject: [PATCH 18/19] fix: Update description --- CHANGELOG | 2 +- fastlane/metadata/android/en-US/changelogs/143.txt | 2 +- fastlane/metadata/android/fr-FR/changelogs/143.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 965795f4e..89ffb7d36 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,5 @@ KeePassDX(4.1.9) - * Fix landscape UI #2198 (@chenxiaolong) + * Fix landscape UI #2198 #2200 (@chenxiaolong) * Fix start loop and flash screen #2201 * Small fixes diff --git a/fastlane/metadata/android/en-US/changelogs/143.txt b/fastlane/metadata/android/en-US/changelogs/143.txt index fc1979998..7c07613f0 100644 --- a/fastlane/metadata/android/en-US/changelogs/143.txt +++ b/fastlane/metadata/android/en-US/changelogs/143.txt @@ -1,3 +1,3 @@ - * Fix landscape UI #2198 (@chenxiaolong) + * Fix landscape UI #2198 #2200 (@chenxiaolong) * Fix start loop and flash screen #2201 * Small fixes \ No newline at end of file diff --git a/fastlane/metadata/android/fr-FR/changelogs/143.txt b/fastlane/metadata/android/fr-FR/changelogs/143.txt index 8b2fde0d7..8b32c9411 100644 --- a/fastlane/metadata/android/fr-FR/changelogs/143.txt +++ b/fastlane/metadata/android/fr-FR/changelogs/143.txt @@ -1,3 +1,3 @@ - * Correction de l'interface en paysage #2198 (@chenxiaolong) + * Correction de l'interface en paysage #2198 #2200 (@chenxiaolong) * Correction du démarrage en boucle et de l'écran clignotant #2201 * Petites corrections \ No newline at end of file From 5adeb5cde06d2058c113477c4812e224517a2bcd Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Mon, 6 Oct 2025 17:20:59 +0200 Subject: [PATCH 19/19] fix: Tags --- app/src/main/res/values-hr/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index b0e418a42..88fe01c63 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -383,7 +383,7 @@ Zaključaj bazu podataka brzo, aplikaciju možeš postaviti tako da bazu nakon nekog vremena zaključa i kad se ekran isključi. Prikaži mjesto nedavnih baza podataka Za brzo otključavanje baze podataka, poveži lozinku sa skeniranom biometrijom ili podacima za prijavu uređaja. - Doprinosom projektu (novčano, kodom, prijevodom) pomažeš mu da živi i napreduje, a također stječeš pravo na postupak otključavanja tema. + <strong>Doprinosom</strong> projektu <i>(novčano, kodom, prijevodom)</i> pomažeš mu da živi i napreduje, a također stječeš pravo na postupak otključavanja <strong>tema</strong>. Za stvaranje ključa za algoritam šifriranja, glavni ključ se transformira pomoću funkcije za generiranje ključeva koja sadrži slučajnu komponentu. Zaključaj bazu podataka kad korisnik pritisne gumb za natrag na glavnom ekranu Sakrij pokvarene poveznice baze podataka