Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ A simple, efficient password generator written in Rust using GTK4.
- **Clipboard Integration**: "Copy immediately" option to copy the generated password to the clipboard instantly.
- **Persistence**: Remembers your settings (groups, auto-close, copy preference) between sessions.
- **Copy Confirmation**: Highlights successful copy actions with a transient green check indicator.
- **Localized UI**: English, German, Japanese, Swedish, Spanish, Italian, and French translations load automatically based on your system locale.
- **Localized UI**: English, German, Japanese, Swedish, Spanish, Italian, French, and Ukrainian translations load automatically based on your system locale.
- **Adaptive Theme**: The interface follows your system's light/dark preference and adjusts its accent colors accordingly.
- **Character Sets**: Toggle lowercase, uppercase, digits, and specials to create the password policy you need.

Expand Down
2 changes: 2 additions & 0 deletions data/io.github.danst0.passwordgenerator.desktop
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,15 @@ Name[sv]=Lösenordsgenerator
Name[es]=Generador de contraseñas
Name[it]=Generatore di password
Name[fr]=Générateur de mots de passe
Name[uk]=Генератор паролів
Comment=Create secure passwords
Comment[de]=Erstelle sichere Passwörter
Comment[ja]=安全なパスワードを作成
Comment[sv]=Skapa säkra lösenord
Comment[es]=Crea contraseñas seguras
Comment[it]=Crea password sicure
Comment[fr]=Créez des mots de passe sûrs
Comment[uk]=Створення надійних паролів
Exec=passwordgenerator
Icon=io.github.danst0.passwordgenerator
Terminal=false
Expand Down
21 changes: 20 additions & 1 deletion data/io.github.danst0.passwordgenerator.metainfo.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
<name xml:lang="es">Generador de contraseñas</name>
<name xml:lang="it">Generatore di password</name>
<name xml:lang="fr">Générateur de mots de passe</name>
<name xml:lang="uk">Генератор паролів</name>

<summary>Create strong passwords in seconds</summary>
<summary xml:lang="de">Erstelle schnell sichere Passwörter</summary>
Expand All @@ -17,6 +18,7 @@
<summary xml:lang="es">Crea contraseñas seguras en segundos</summary>
<summary xml:lang="it">Genera password sicure in pochi secondi</summary>
<summary xml:lang="fr">Créez des mots de passe solides en quelques secondes</summary>
<summary xml:lang="uk">Створюйте надійні паролі за лічені секунди</summary>

<metadata_license>CC0-1.0</metadata_license>
<project_license>CC-BY-SA-4.0</project_license>
Expand All @@ -31,6 +33,9 @@
<p xml:lang="de">Ein einfaches, modernes GTK4-Tool zur Passworterstellung mit standardmäßig dunklem, augenschonendem Layout.</p>
<p xml:lang="de">Wähle ausgewogene oder eigene Zeichensätze, passe gruppierte Länge an und kopiere mit einem Klick; auf Wunsch schließt sich das Fenster automatisch.</p>
<p xml:lang="de">Tastenkürzel halten den Ablauf schnell: Strg+C zum Kopieren, Strg+Q zum Beenden, Strg+W zum Schließen.</p>
<p xml:lang="uk">Простий та сучасний генератор паролів на GTK4 із темним інтерфейсом, що дбає про приватність.</p>
<p xml:lang="uk">Обирайте збалансовані або власні набори символів, коригуйте довжину блоками і копіюйте результати в один клік з опціональним таймером автозакриття.</p>
<p xml:lang="uk">Клавіатурні скорочення прискорять роботу: Ctrl+C для копіювання, Ctrl+Q для виходу, Ctrl+W для закриття.</p>
</description>

<launchable type="desktop-id">io.github.danst0.passwordgenerator.desktop</launchable>
Expand All @@ -39,71 +44,85 @@
<screenshot type="default">
<caption>Dark mode (English UI)</caption>
<caption xml:lang="de">Dunkelmodus (englische Oberfläche)</caption>
<caption xml:lang="uk">Темний стиль (англійський інтерфейс)</caption>
<image>https://raw.githubusercontent.com/danst0/passwordgenerator/v0.5.3/screenshots/dark_en.png</image>
</screenshot>
<screenshot>
<caption>Light mode (English UI)</caption>
<caption xml:lang="de">Heller Modus (englische Oberfläche)</caption>
<caption xml:lang="uk">Світлий стиль (англійський інтерфейс)</caption>
<image>https://raw.githubusercontent.com/danst0/passwordgenerator/v0.5.3/screenshots/light_en.png</image>
</screenshot>
<screenshot>
<caption>Dark mode (German UI)</caption>
<caption xml:lang="de">Dunkelmodus (deutsche Oberfläche)</caption>
<caption xml:lang="uk">Темний стиль (німецький інтерфейс)</caption>
<image>https://raw.githubusercontent.com/danst0/passwordgenerator/v0.5.3/screenshots/dark_de.png</image>
</screenshot>
<screenshot>
<caption>Light mode (German UI)</caption>
<caption xml:lang="de">Heller Modus (deutsche Oberfläche)</caption>
<caption xml:lang="uk">Світлий стиль (німецький інтерфейс)</caption>
<image>https://raw.githubusercontent.com/danst0/passwordgenerator/v0.5.3/screenshots/light_de.png</image>
</screenshot>
<screenshot>
<caption>Dark mode (Japanese UI)</caption>
<caption xml:lang="ja">ダークモード(日本語表示)</caption>
<caption xml:lang="uk">Темний стиль (японський інтерфейс)</caption>
<image>https://raw.githubusercontent.com/danst0/passwordgenerator/v0.5.3/screenshots/dark_jp.png</image>
</screenshot>
<screenshot>
<caption>Light mode (Japanese UI)</caption>
<caption xml:lang="ja">ライトモード(日本語表示)</caption>
<caption xml:lang="uk">Світлий стиль (японський інтерфейс)</caption>
<image>https://raw.githubusercontent.com/danst0/passwordgenerator/v0.5.3/screenshots/light_jp.png</image>
</screenshot>
<screenshot>
<caption>Dark mode (Spanish UI)</caption>
<caption xml:lang="es">Modo oscuro (interfaz en español)</caption>
<caption xml:lang="uk">Темний стиль (іспанський інтерфейс)</caption>
<image>https://raw.githubusercontent.com/danst0/passwordgenerator/v0.5.3/screenshots/dark_es.png</image>
</screenshot>
<screenshot>
<caption>Light mode (Spanish UI)</caption>
<caption xml:lang="es">Modo claro (interfaz en español)</caption>
<caption xml:lang="uk">Світлий стиль (іспанський інтерфейс)</caption>
<image>https://raw.githubusercontent.com/danst0/passwordgenerator/v0.5.3/screenshots/light_es.png</image>
</screenshot>
<screenshot>
<caption>Dark mode (French UI)</caption>
<caption xml:lang="fr">Mode sombre (interface française)</caption>
<caption xml:lang="uk">Темний стиль (французький інтерфейс)</caption>
<image>https://raw.githubusercontent.com/danst0/passwordgenerator/v0.5.3/screenshots/dark_fr.png</image>
</screenshot>
<screenshot>
<caption>Light mode (French UI)</caption>
<caption xml:lang="fr">Mode clair (interface française)</caption>
<caption xml:lang="uk">Світлий стиль (французький інтерфейс)</caption>
<image>https://raw.githubusercontent.com/danst0/passwordgenerator/v0.5.3/screenshots/light_fr.png</image>
</screenshot>
<screenshot>
<caption>Dark mode (Italian UI)</caption>
<caption xml:lang="it">Modalità scura (interfaccia italiana)</caption>
<caption xml:lang="uk">Темний стиль (італійський інтерфейс)</caption>
<image>https://raw.githubusercontent.com/danst0/passwordgenerator/v0.5.3/screenshots/dark_it.png</image>
</screenshot>
<screenshot>
<caption>Light mode (Italian UI)</caption>
<caption xml:lang="it">Modalità chiara (interfaccia italiana)</caption>
<caption xml:lang="uk">Світлий стиль (італійський інтерфейс)</caption>
<image>https://raw.githubusercontent.com/danst0/passwordgenerator/v0.5.3/screenshots/light_it.png</image>
</screenshot>
<screenshot>
<caption>Dark mode (Swedish UI)</caption>
<caption xml:lang="sv">Mörkt läge (svensk vy)</caption>
<caption xml:lang="uk">Темний стиль (шведський інтерфейс)</caption>
<image>https://raw.githubusercontent.com/danst0/passwordgenerator/v0.5.3/screenshots/dark_sv.png</image>
</screenshot>
<screenshot>
<caption>Light mode (Swedish UI)</caption>
<caption xml:lang="sv">Ljust läge (svensk vy)</caption>
<caption xml:lang="uk">Світлий стиль (шведський інтерфейс)</caption>
<image>https://raw.githubusercontent.com/danst0/passwordgenerator/v0.5.3/screenshots/light_sv.png</image>
</screenshot>
</screenshots>
Expand Down Expand Up @@ -249,4 +268,4 @@
</releases>

<content_rating type="oars-1.1"/>
</component>
</component>
35 changes: 35 additions & 0 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,7 @@ const AVAILABLE_TRANSLATIONS: &[(&str, StringsFactory)] = &[
("it", strings_it),
("fr", strings_fr),
("en", strings_en),
("uk", strings_uk),
];

fn strings_en() -> I18nStrings {
Expand Down Expand Up @@ -468,6 +469,40 @@ fn strings_fr() -> I18nStrings {
}
}

fn strings_uk() -> I18nStrings {
I18nStrings {
app_title: "Генератор паролів",
groups_tooltip: "Кількість груп символів (по 5 у кожній)",
generate_button: "Новий",
copy_button: "Копіювати",
auto_close_label: "Автозакриття",
copy_immediately_label: "Копіювати одразу",
default_strategy_label: "Типова стратегія",
timer_template: "{seconds} с до закриття",
copy_success_label: "Скопійовано",
charset_section_label: "Складові",
lowercase_label: "Малі літери",
uppercase_label: "Великі літери",
digits_label: "Цифри",
special_label: "Спецсимволи",
chars_unit: "символів",
entropy_label: "Ентропія",
bits_unit: "біт",
crack_time_label: "Офлайнова атака",
crack_time_note: "Припущення: 10¹² спроб/с (швидке гешування, потужний GPU)",
strength_labels: [
"Дуже слабкий",
"Слабкий",
"Прийнятний",
"Надійний",
"Дуже надійний",
],
time_units: ["с", "хв", "год", "днів", "років"],
time_instant: "миттєво",
decimal_separator: ",",
}
}

#[cfg(test)]
mod tests {
use super::*;
Expand Down
Loading