i18n: add sl_SI/id_ID/lt_LT/lv_LV; translate v1.8.0 strings in de_DE & fr_FR#1201
Conversation
📝 WalkthroughWalkthroughUpdates German and French Qt translation catalogs (many completed/adjusted translations and added Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~30 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…& fr_FR **New locales** - Slovenian (sl_SI) — explicit request - Lithuanian (lt_LT) and Latvian (lv_LV) — Baltic completeness; we already had Estonian - Indonesian (id_ID) — fills the SE-Asian gap next to ja_JP/ko_KR/zh_* /ta_IN/si_LK The four new .ts files start out empty (`<translation type="unfinished"/>`); populated by lupdate6 from the existing source strings, ready to be filled in by translators. **de_DE and fr_FR translations for the v1.8.0 features** The recent merged PR #1200 (Weblate sync) left the new feature strings empty (`type="unfinished"`) for both German and French. Filling them in directly here: - Process Output panel: "Process Output", "Show process output", "Clear", "Clear output" - Import Key dialog: title, description, From File / From Clipboard, placeholder, Import button, file-filter labels, error messages, success message - UsersDialog button + tooltip ("Import key…", "Import a GPG key from file or clipboard") - ExportPublicKeyDialog: file-dialog title, name filter (preserves both ASCII-armored and All-files groups), I/O error messages - Share help: full HTML block with `<ol>/<li>` structure preserved - ConfigDialog profile strings: "New profile: %1 at %2", "Profile: %1 at %2", "Fill in all required fields" - Numerus forms: "Found %n match(es)" and "in %n entr(ies)." now carry singular/plural forms in both languages Style notes: - German: "ASCII-codiert" for armored, "Schlüsselbund" for keyring, "Treffer" / "Eintrag/Einträgen" for the numerus forms. - French: "ASCII-armored" left as-is (it's the technical term most French GPG docs use), "presse-papiers" for clipboard, "%n correspondance trouvée" / "%n correspondances trouvées" with proper feminine agreement. Editing the .ts files directly per maintainer instruction; not going via Weblate for this round.
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
localization/localization_de_DE.ts (2)
477-491:⚠️ Potential issue | 🟠 MajorConfigDialog profile-creation strings still unfinished.
The PR objectives advertise completion of "ConfigDialog profile strings", but three profile-related dialog strings are still
type="unfinished"and were not touched by this change:
- Line 480:
Create profile directory?- Line 485:
Would you like to create a password store at %1?- Line 490:
Could not create profile directory: %1These are user-visible message-box strings on the profile-creation path (
configdialog.cpp:720/721/729) and will fall back to English when a user clicks "Add" on a non-existent profile directory. Note that a closely related string at line 412 ("Would you like to create a password-store at %1?") is already translated as "Soll ein Kennwortspeicher in %1 erstellt werden?", which can be reused/adapted for line 485 to keep wording consistent.🛠️ Suggested German translations (style-matched to surrounding entries)
<message> <location filename="../src/configdialog.cpp" line="720"/> <source>Create profile directory?</source> - <translation type="unfinished"></translation> + <translation>Profilverzeichnis erstellen?</translation> </message> <message> <location filename="../src/configdialog.cpp" line="721"/> <source>Would you like to create a password store at %1?</source> - <translation type="unfinished"></translation> + <translation>Soll ein Kennwortspeicher in %1 erstellt werden?</translation> </message> <message> <location filename="../src/configdialog.cpp" line="729"/> <source>Could not create profile directory: %1</source> - <translation type="unfinished"></translation> + <translation>Profilverzeichnis konnte nicht erstellt werden: %1</translation> </message>🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@localization/localization_de_DE.ts` around lines 477 - 491, Add German translations for the three unfinished ConfigDialog profile-creation messages in localization_de_DE.ts: provide a translation for "Create profile directory?", for "Would you like to create a password store at %1?" (reuse/adapt the existing translation "Soll ein Kennwortspeicher in %1 erstellt werden?" for consistent wording), and for "Could not create profile directory: %1" (an error message like "Profilverzeichnis konnte nicht erstellt werden: %1"); update the <translation> elements corresponding to the <source> strings tied to configdialog.cpp (Create profile directory?, Would you like to create a password store at %1?, Could not create profile directory: %1) and remove type="unfinished".
1280-1333:⚠️ Potential issue | 🟡 MinorMainWindow: new Share/Export-key menu items and help text remain unfinished.
A consistent block of new MainWindow strings tied to the Share menu and Export-public-key flow is still
type="unfinished":
- Line 1282
Share- Line 1287
Re-encrypt all passwords(note: another instance at line 1664 is already translated as "Passwörter neu verschlüsseln" — reuse for consistency)- Line 1292
Export my public key...- Line 1297
Add recipient...- Line 1302
What is this?- Lines 1315/1320:
Export Public Keytitle and its<h3>Export Your Public Key</h3>...help block- Lines 1327/1332:
Could not export public key for %1./No output from gpg.error stringsGiven the Sharing-with-GPG help body at line 1342 was translated, leaving the surrounding entry points (menu labels, dialog titles, and error messages reachable from those menu actions) untranslated produces a half-German UI on this flow. Recommend completing these in the same pass, or explicitly noting they are deferred to a follow-up so reviewers don't expect them.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@localization/localization_de_DE.ts` around lines 1280 - 1333, The menu and dialog strings in MainWindow related to sharing and exporting GPG keys are left untranslated; update the corresponding translation entries for the source texts "Share", "Re-encrypt all passwords", "Export my public key...", "Add recipient...", "What is this?", the dialog title "Export Public Key", the help HTML starting with "<h3>Export Your Public Key</h3>...", and the error messages "Could not export public key for %1." and "No output from gpg." in localization_de_DE.ts so the Share/Export flow is fully localized; reuse the existing German translation "Passwörter neu verschlüsseln" for "Re-encrypt all passwords" for consistency and ensure the help HTML and placeholders like %1/%2 are preserved exactly in the translated strings.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@localization/localization_de_DE.ts`:
- Around line 1334-1343: The title message "Sharing Passwords with GPG" in
localization_de_DE.ts is still marked unfinished while the corresponding HTML
body is translated; open the <message> containing the source "Sharing Passwords
with GPG" (the same message pair that contains the long HTML source) and provide
the German translation (e.g., "Passwörter mit GPG teilen") for the title
translation element, remove the type="unfinished" attribute so both title and
body are translated consistently for the mainwindow.cpp call site.
In `@localization/localization_fr_FR.ts`:
- Around line 885-891: You edited translated strings directly in
localization_fr_FR.ts (e.g. the entry with source "Import a GPG public key from
file or paste it below.") — revert those manual changes in
localization_fr_FR.ts, remove all direct translation edits in this PR (including
the other ranges you noted), and instead update the translations through Weblate
for the corresponding source keys; once source strings change, run qmake6 to
regenerate/update the .ts reference files and include only the generated update
in the PR.
---
Outside diff comments:
In `@localization/localization_de_DE.ts`:
- Around line 477-491: Add German translations for the three unfinished
ConfigDialog profile-creation messages in localization_de_DE.ts: provide a
translation for "Create profile directory?", for "Would you like to create a
password store at %1?" (reuse/adapt the existing translation "Soll ein
Kennwortspeicher in %1 erstellt werden?" for consistent wording), and for "Could
not create profile directory: %1" (an error message like "Profilverzeichnis
konnte nicht erstellt werden: %1"); update the <translation> elements
corresponding to the <source> strings tied to configdialog.cpp (Create profile
directory?, Would you like to create a password store at %1?, Could not create
profile directory: %1) and remove type="unfinished".
- Around line 1280-1333: The menu and dialog strings in MainWindow related to
sharing and exporting GPG keys are left untranslated; update the corresponding
translation entries for the source texts "Share", "Re-encrypt all passwords",
"Export my public key...", "Add recipient...", "What is this?", the dialog title
"Export Public Key", the help HTML starting with "<h3>Export Your Public
Key</h3>...", and the error messages "Could not export public key for %1." and
"No output from gpg." in localization_de_DE.ts so the Share/Export flow is fully
localized; reuse the existing German translation "Passwörter neu verschlüsseln"
for "Re-encrypt all passwords" for consistency and ensure the help HTML and
placeholders like %1/%2 are preserved exactly in the translated strings.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI (base), Organization UI (inherited)
Review profile: ASSERTIVE
Plan: Pro
Run ID: 6f884130-4bcc-458b-8778-e38d64de8d6e
📒 Files selected for processing (7)
localization/localization_de_DE.tslocalization/localization_fr_FR.tslocalization/localization_id_ID.tslocalization/localization_lt_LT.tslocalization/localization_lv_LV.tslocalization/localization_sl_SI.tssrc/src.pro
This comment has been minimized.
This comment has been minimized.
…-create Filling in 13 more empty German translations the latest review caught: - Share submenu (mainwindow.cpp): "Share", "Re-encrypt all passwords" (reusing the existing "neu verschlüsseln" wording for consistency with "Re-encrypt passwords"), "Export my public key…", "Add recipient…", "What is this?". - Sharing help dialog: "Sharing Passwords with GPG" title (the body was already translated last commit, the title was the orphan). - ExportPublicKeyDialog flow: dialog title "Export Public Key" (covers both the .ui slot and the mainwindow.cpp call site), the no-signing-key help HTML <h3>/<pre>/<p> block, and the "Could not export public key" / "No output from gpg." error messages. - ConfigDialog profile creation (configdialog.cpp): "Create profile directory?", "Would you like to create a password store at %1?" (matching the pre-existing "Soll ein Kennwortspeicher in %1 erstellt werden?" wording), "Could not create profile directory: %1". Placeholders preserved exactly (%1, %2, the <h3>/<pre>/<p> HTML structure, the &gt; / &lt; entities in the gpg command line).
ac7afd9 to
add9c53
Compare
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@localization/localization_de_DE.ts`:
- Around line 1599-1602: The German numerusform currently has both <numerusform>
entries as "%n Treffer gefunden"; update the singular branch (the first
<numerusform> inside the <translation> block) to a more idiomatic singular
string such as "Ein Treffer gefunden" while keeping the plural "%n Treffer
gefunden" as the second <numerusform>; modify the translation entry in
localization_de_DE.ts accordingly (adjust only the first <numerusform> in that
<translation> block).
- Around line 683-710: Translate the five unfinished strings in
localization_de_DE.ts for the ExportPublicKeyDialog so the dialog is fully
German: replace the empty translations for "Public key", "Copy to Clipboard",
"Save to File...", "Public key for %1", and "Copied!" with appropriate German
translations (or remove the de_DE entry if you prefer a fallback to English);
locate the entries by their source text in the ExportPublicKeyDialog block
(references: exportpublickeydialog.ui and exportpublickeydialog.cpp) and update
the <translation> elements so they are no longer type="unfinished".
In `@localization/localization_fr_FR.ts`:
- Around line 362-375: Several French translations in localization_fr_FR.ts are
still marked type="unfinished" (e.g., the strings from configdialog.cpp: "Create
profile directory?", "Would you like to create a password store at %1?", and
"Could not create profile directory: %1"); update those entries with proper
French translations and remove the type="unfinished" attribute so they are used
at runtime, and repeat the same for the other ranges mentioned (lines
corresponding to 681-712, 928-934, 1568-1591, 1653-1679) to ensure all UI
strings for profile creation, key import/export and sharing flows are translated
and not left as unfinished.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI (base), Organization UI (inherited)
Review profile: ASSERTIVE
Plan: Pro
Run ID: 2c313d20-fa9f-4a47-92a5-fa136e304bbe
📒 Files selected for processing (7)
localization/localization_de_DE.tslocalization/localization_fr_FR.tslocalization/localization_id_ID.tslocalization/localization_lt_LT.tslocalization/localization_lv_LV.tslocalization/localization_sl_SI.tssrc/src.pro
de_DE: - Numerus "Found %n match(es)": singular form now reads "Ein Treffer gefunden" instead of repeating "%n Treffer gefunden". The plural stays "%n Treffer gefunden". - ExportPublicKeyDialog body strings still missing: "Public key", "Copy to Clipboard", "Save to File…", "Public key for %1", "Copied!". The dialog title and the no-signing-key help block were already done last commit; this finishes the inside of the dialog. fr_FR: - ConfigDialog profile-create trio: "Create profile directory?", "Would you like to create a password store at %1?", "Could not create profile directory: %1". - ExportPublicKeyDialog: title (both call sites collapsed via the identical-source mechanism), body strings (Public key, Copy to Clipboard, Save to File…, Public key for %1, Copied!), and the no-signing-key <h3>/<pre>/<p> help HTML block. - Share submenu: Share, Re-encrypt all passwords, Export my public key…, Add recipient…, What is this? - "Sharing Passwords with GPG" title (the body was already done; the title was the orphan). - "Could not export public key for %1." and "No output from gpg." error paths. Placeholders preserved exactly (%1, %2, <h3>/<pre>/<p>, &gt; / &lt; entities for the gpg command).
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
localization/localization_fr_FR.ts (1)
1688-1697:⚠️ Potential issue | 🟡 MinorFix malformed HTML/text in the French QtPass help block.
This translation contains stray literal artifacts (e.g.,
.</p>.and</p>>Documentation), which can render broken UI text/markup.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@localization/localization_fr_FR.ts` around lines 1688 - 1697, The French translation for the QtPass help HTML block is malformed (extra ".</p>.", duplicated ">Documentation" and wrong "CodeSource"); edit the translation corresponding to the source help string (the translation element that maps the multi-paragraph HTML help block) to remove stray artifacts, ensure each paragraph has a single closing </p> with no extra punctuation, restore the three separate lines/links (Documentation, Issues, Source Code) matching the source order, and fix wording to proper French (e.g., "Veuillez signaler" or "Signalez" for issues and "Code source" for source code) so the HTML is valid and renders correctly.
♻️ Duplicate comments (2)
localization/localization_fr_FR.ts (2)
362-375:⚠️ Potential issue | 🟠 MajorUse Weblate for translation-content changes instead of editing this
.tsfile directly.This patch updates French translation bodies in-place. Per repo policy, translation text changes should be done in Weblate; keep
.tsdiffs to generated reference updates (qmake6) only.As per coding guidelines: "Do not manually edit
.tstranslation files; translations are managed via Weblate. Runqmake6to update translation source references after changing source strings".🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@localization/localization_fr_FR.ts` around lines 362 - 375, This change modifies translated strings in localization_fr_FR.ts directly (the messages with source texts "Create profile directory?", "Would you like to create a password store at %1?", and "Could not create profile directory: %1"); per project policy, revert these direct edits and instead update the French translations via Weblate, then regenerate .ts files with qmake6 so only generated reference updates appear in the repo; do not manually edit localization_fr_FR.ts—use Weblate for content changes and run qmake6 to produce the updated .ts.
928-934:⚠️ Potential issue | 🟠 Major
Import Keyis still unfinished in French.
<translation type="unfinished"></translation>forsource="Import Key"will fall back to English at runtime in this dialog path.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@localization/localization_fr_FR.ts` around lines 928 - 934, Replace the unfinished French translation for the source string "Import Key" in localization_fr_FR.ts by adding the French text "Importer la clé" inside the corresponding <translation> element (the <message> entries for source="Import Key" in the import key dialog), so the dialog no longer falls back to English at runtime.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@localization/localization_de_DE.ts`:
- Around line 7-8: The .ts file contains hand-edited <location> entries for
configdialog.ui and ui_configdialog.h that must be regenerated via the Qt
translation workflow; do not edit localization_de_DE.ts by hand. Run the Qt
steps (regenerate the ui headers via qmake6 and then run lupdate to refresh
translation source references) so that localization_de_DE.ts is updated with
correct <location> entries for configdialog.ui and ui_configdialog.h; commit the
regenerated .ts instead of manual edits.
---
Outside diff comments:
In `@localization/localization_fr_FR.ts`:
- Around line 1688-1697: The French translation for the QtPass help HTML block
is malformed (extra ".</p>.", duplicated ">Documentation" and wrong
"CodeSource"); edit the translation corresponding to the source help string (the
translation element that maps the multi-paragraph HTML help block) to remove
stray artifacts, ensure each paragraph has a single closing </p> with no
extra punctuation, restore the three separate lines/links (Documentation,
Issues, Source Code) matching the source order, and fix wording to proper French
(e.g., "Veuillez signaler" or "Signalez" for issues and "Code source" for source
code) so the HTML is valid and renders correctly.
---
Duplicate comments:
In `@localization/localization_fr_FR.ts`:
- Around line 362-375: This change modifies translated strings in
localization_fr_FR.ts directly (the messages with source texts "Create profile
directory?", "Would you like to create a password store at %1?", and "Could not
create profile directory: %1"); per project policy, revert these direct edits
and instead update the French translations via Weblate, then regenerate .ts
files with qmake6 so only generated reference updates appear in the repo; do not
manually edit localization_fr_FR.ts—use Weblate for content changes and run
qmake6 to produce the updated .ts.
- Around line 928-934: Replace the unfinished French translation for the source
string "Import Key" in localization_fr_FR.ts by adding the French text "Importer
la clé" inside the corresponding <translation> element (the <message> entries
for source="Import Key" in the import key dialog), so the dialog no longer falls
back to English at runtime.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI (base), Organization UI (inherited)
Review profile: ASSERTIVE
Plan: Pro
Run ID: d35a03c8-bc37-4d4d-9427-15109ae60091
📒 Files selected for processing (2)
localization/localization_de_DE.tslocalization/localization_fr_FR.ts
…title
Two follow-up items from the latest review:
- The QtPass welcome <p>/<a> block in fr_FR was malformed:
* trailing dot after the unix.</p> closing tag
* stray ">Documentation" left over after the closing </p> on the
Documentation line
* "CodeSource" (untranslated mash-up) instead of "Code source"
Cleaned up: each paragraph has a single closing </p>, the three
links (Documentation, Issues, Code source) are in source order
with proper French wording ("Veuillez signaler", "Code source").
This was a pre-existing translation, not something this PR
introduced — fixing while we're here.
- importkeydialog.cpp:171 uses tr("Import Key") as the title for the
success / error QMessageBox. I translated the dialog button and the
UsersDialog tooltip earlier but missed this standalone string —
filling in "Importer la clé" so the message boxes are no longer in
English.
Kody Review CompleteGreat news! 🎉 Keep up the excellent work! 🚀 Kody Guide: Usage and ConfigurationInteracting with Kody
Current Kody ConfigurationReview OptionsThe following review options are enabled or disabled:
|
|
There was a problem hiding this comment.
♻️ Duplicate comments (1)
localization/localization_fr_FR.ts (1)
362-375:⚠️ Potential issue | 🟠 MajorDo not commit direct French translation edits in this
.tscatalog.This PR still modifies translated content directly (for example Line 364, Line 885, Line 1303, Line 1565). Per repo policy, translations must be updated via Weblate; keep
.tschanges limited to generated reference updates (e.g., afterqmake6/translation tooling sync).As per coding guidelines: "Do not manually edit
.tstranslation files; translations are managed via Weblate. Runqmake6to update translation source references after changing source strings".Also applies to: 681-735, 883-961, 1302-1305, 1450-1453, 1563-1697, 1982-1986
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@localization/localization_fr_FR.ts` around lines 362 - 375, The .ts file was edited directly—revert manual translations in localization_fr_FR.ts (e.g., entries with source strings "Create profile directory?", "Would you like to create a password store at %1?", "Could not create profile directory: %1" and the other listed source strings) and restore the file to only generated reference changes; update translations via Weblate for any content changes and regenerate/update the .ts references by running the translation tooling (qmake6) so only tool-generated diffs remain.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Duplicate comments:
In `@localization/localization_fr_FR.ts`:
- Around line 362-375: The .ts file was edited directly—revert manual
translations in localization_fr_FR.ts (e.g., entries with source strings "Create
profile directory?", "Would you like to create a password store at %1?", "Could
not create profile directory: %1" and the other listed source strings) and
restore the file to only generated reference changes; update translations via
Weblate for any content changes and regenerate/update the .ts references by
running the translation tooling (qmake6) so only tool-generated diffs remain.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI (base), Organization UI (inherited)
Review profile: ASSERTIVE
Plan: Pro
Run ID: a4ab9aed-2220-4e7e-bd06-fa264077b7e5
📒 Files selected for processing (1)
localization/localization_fr_FR.ts
The id_ID locale was bootstrapped earlier (PR IJHack#1201) but stayed at 2/304 — basically empty. Going through all 302 unfinished entries and filling them with natural-Indonesian software UI register. Conventions used: - Register: neutral / imperative — Indonesian software UI rarely uses the explicit formal "Anda" pronoun unless the source clearly addresses the user (which the QtPass strings often do, so "Anda" appears in those cases). - File / folder: "berkas" / "folder" — both are accepted; "berkas" for files and "folder" stays as the loanword for directories. - Password: "kata sandi" (the most common term in Indonesian software UI). - Public/private key: "kunci publik" / "kunci privat". - Encryption: "enkripsi" / "dekripsi" / "mengenkripsi ulang". - Save / Open / Cancel / Delete / Add: "Simpan" / "Buka" / "Batal" / "Hapus" / "Tambah". - Import / Export: "Impor" / "Ekspor". - Share / Recipient: "Bagikan" / "Penerima". - Clipboard: kept the loanword "clipboard" — both "clipboard" and "papan klip" are used in Indonesian; the loanword is more common in modern software UI. Technical terms kept literal: GPG, ASCII-armored, OTP, regex, WebDAV, PWGen, fusedav, QRencode, gpg-id, push, pull, OK, Ctrl+G, Ctrl+N, LTR, the Aa toggle, etc. Numerus forms: Indonesian doesn't grammatically distinguish singular/plural so the `<numerusform>` block has a single entry — "Found %n match(es)" → "Ditemukan %n kecocokan", "in %n entr(ies)." → "di %n entri.". Multi-line / long-HTML translations covered: - The ConfigDialog + KeygenDialog + UsersDialog walkthrough strings - Three GnuPG-not-found install prompts (gpg / Ubuntu-Microsoft-Store variants) - Passphrase explanation HTML - The QtPass welcome HTML (passwordstore.org / Issues / Documentation / Source code) - The Sharing-help and Export-Public-Key-help blocks (matching the recent v1.8.0 feature work) - Re-encrypt confirmation prompt - WebDAV connection error messages A couple of strings (button accelerators "&Use pass" / "Nati&ve Git /GPG", brand names "QtPass / GPG / PWGen / Pass / pass") kept as-is because they're identical in any locale.
This pull request introduces support for new languages and updates existing translations.
Key changes include:
ui_*.h), ensuring better coverage for translatable UI elements.Summary by CodeRabbit
New Features
Localization
Chores