feat: Add German locale and localized CLI language aliases (--sprache, --idioma)

This commit is contained in:
thePR0M3TH3AN committed 2026-03-13 15:14:13 -04:00
1 parent c706172dc3
commit c55ed24f2b
3 files changed
+112 -2

No files matched your search

+18
View File
@@ -320,6 +320,24 @@
"print_button": "Imprimir volante",
"download_button": "Descargar"
}
},
"de": {
"meta": {"language_name": "Deutsch", "flag": "🇩🇪"},
"landing": {
"title": "STRENG GEHEIM",
"subtitle": "NICHT <span class=\"redacted\">VERBREITEN</span>",
"headline": "OPERATION VOX VERA",
"content": "Befreien Sie sich von Zensur mit VoxVera. Ein anonymes Guerilla-Marketing- und Nachrichtenverbreitungs-Tool. Ob online oder in der physischen Welt, es befähigt Sie, Ihre Ideen mutig zu verbreiten, geschützt durch vollständige Anonymität (wenn Sie über Tor hosten). Laden Sie den Code herunter, entwerfen Sie eine Flyer-Website, hosten Sie diese online und verstärken Sie Ihre Botschaft.\n\nNutzen Sie memetische Kraft, um Ihre Ideen in Ihrer Schule, an Ihrem Arbeitsplatz, in Online-Communities oder sogar weltweit zu teilen. VoxVera stellt sicher, dass Ihre Botschaft weit und breit Resonanz findet, mit Abreißabschnitten, die über einzigartige URLs und QR-Codes für einen einfachen Nachdruck verfügen.\n\nPrivatsphäre kann gewahrt bleiben. Flyer können über das Tor-Netzwerk geteilt werden, was Hoster und Nutzer vor Zensur schützt.\n\nSchließen Sie sich uns in einer Revolution an, die Wahrheit und Transparenz schätzt. Gemeinsam können wir ein Netzwerk informierter Bürger aufbauen, die keine Angst haben, ihre Meinung zu sagen.",
"url_message": "Holen Sie sich VoxVera und beginnen Sie, Ihre Nachricht zu verbreiten."
},
"web": {
"tear_off_tor_browser": "Tor-Browser verwenden",
"tear_off_desc": "um diese Nachricht zu verbreiten, gehen Sie zu",
"tear_off_footer": "Klicken Sie auf die Schaltfläche unten zum Drucken",
"built_with": "erstellt mit",
"print_button": "Flyer drucken",
"download_button": "Herunterladen"
}
}
};
+12 -2
View File
@@ -873,11 +873,13 @@ def main(argv=None):
help="Path to config.json",
)
parser.add_argument(
"--lang",
help="Force language code (e.g. en, es)",
"--lang", "--language", "--sprache", "--idioma",
help="Force language code (e.g. en, es, de)",
)
sub = parser.add_subparsers(dest="command")
sub.add_parser("lang", help="Change language preference")
# ... (parsers as before) ...
p_init = sub.add_parser(
@@ -938,6 +940,14 @@ def main(argv=None):
# Load the locale
load_locale(current_lang or "en")
if args.command == "lang":
new_lang = choose_language(current_lang)
if config_path.exists():
config_data["lang"] = new_lang
save_config(config_data, str(config_path))
print(f"Language changed to {new_lang}")
return
if args.command == "init":
if args.template:
copy_template(args.template)
+82
View File
@@ -0,0 +1,82 @@
{
"meta": {
"language_name": "Deutsch",
"flag": "🇩🇪"
},
"cli": {
"dep_check_header": "Abhängigkeitsprüfung",
"dep_found": "gefunden",
"dep_missing": "fehlt",
"all_deps_installed": "Alle Abhängigkeiten sind installiert.",
"missing_deps_error": "Einige Abhängigkeiten fehlen. Führen Sie aus: pip install 'voxvera[all]'",
"init_name": "Name",
"init_folder": "Ordnername",
"init_title": "Titel",
"init_subtitle": "Untertitel",
"init_headline": "Schlagzeile",
"init_body": "Haupttext",
"init_links": "Links",
"edit_again": "Erneut bearbeiten?",
"body_length": "Textlänge",
"body_limit_exceeded": "überschreitet das Limit",
"url_label": "URL (Inhaltslink - externe Ressource)",
"url_message_label": "URL-Nachricht",
"binary_message_label": "Binäre Nachricht",
"template_not_found": "Vorlage {name} nicht gefunden",
"template_copied": "Vorlage nach {dest} kopiert",
"flyer_created": "Flyer-Dateien erstellt unter {dest}",
"dir_not_found": "Verzeichnis {dir_path} nicht gefunden",
"onionshare_error": "OnionShare für {folder_name} wurde unerwartet beendet.",
"onionshare_causes": "Häufige Ursachen: Netzwerk blockiert, ungenaue Systemzeit oder OnionShare läuft bereits.",
"onionshare_logs_tip": "Vollständige Protokolle finden Sie unter {logfile}.",
"onion_url_msg": "[{folder_name}] Onion-URL: {onion_url}",
"onionshare_running_pid": "[{folder_name}] OnionShare läuft (PID {pid}).",
"export_not_found": "Fehler: Website-Ordner '{folder_name}' nicht gefunden in {host_root}",
"export_success": "'{folder_name}' nach {output_path} exportiert",
"export_all_none": "Keine Websites zum Exportieren gefunden.",
"export_all_starting": "Exportiere {count} Websites nach {dir}...",
"export_all_complete": "Gesamtexport abgeschlossen.",
"import_zip_not_found": "Fehler: Zip-Datei '{path}' nicht gefunden.",
"import_invalid_config": "Fehler: Ungültige Exportdatei. 'config.json' fehlt.",
"import_invalid_folder": "Fehler: Ungültige 'config.json'. 'folder_name' fehlt.",
"import_overwrite_confirm": "Website '{folder_name}' existiert bereits. Überschreiben?",
"import_cancelled": "Import abgebrochen.",
"import_success": "'{folder_name}' erfolgreich nach {dest_dir} importiert",
"import_dir_not_found": "Fehler: Verzeichnis '{dir}' nicht gefunden.",
"import_multiple_none": "Keine Zip-Dateien in {dir} gefunden",
"import_multiple_found": "{count} Website(s) zum Importieren aus {dir} gefunden...",
"importing_file": "Importiere {name}...",
"import_multiple_complete": "Mehrfachimport abgeschlossen.",
"batch_import_none": "Keine JSON-Dateien in 'imports' gefunden",
"batch_import_processing": "Verarbeite {file}",
"stop_server_not_running": "Server {folder_name} läuft nicht.",
"stop_server_success": "{folder_name} gestoppt (PID {pid})",
"delete_server_success": "Server {folder_name} gelöscht",
"manage_select_server": "Wählen Sie einen Server zum Verwalten (oder Beenden):",
"manage_create_new": "--- Neue Website/Flyer erstellen ---",
"manage_start_all": "--- Alle Websites starten ---",
"manage_stop_all": "--- Alle Websites stoppen ---",
"manage_export_all": "--- Alle Websites exportieren ---",
"manage_import_multiple": "--- Mehrere Websites importieren ---",
"manage_exit": "Beenden",
"manage_startup_summary": "Start-Zusammenfassung",
"manage_press_enter": "Drücken Sie die Eingabetaste zum Fortfahren",
"manage_action_menu": "{name} verwalten:",
"manage_action_toggle_stop": "Stopp",
"manage_action_toggle_start": "Start",
"manage_action_export": "Als Zip exportieren",
"manage_action_delete": "Löschen",
"manage_action_back": "Zurück",
"manage_delete_confirm": "Sind Sie sicher, dass Sie {name} löschen möchten?",
"bootstrapping_msg": "[{name}] Verbindung zu Tor-Relays herstellen und Hidden Service einrichten...",
"bootstrapping_progress": "[{name}] Tor-Bootstrapping: {progress}% ..."
},
"web": {
"tear_off_tor_browser": "Tor-Browser verwenden",
"tear_off_desc": "um diese Nachricht zu verbreiten, gehen Sie zu",
"tear_off_footer": "Klicken Sie auf die Schaltfläche unten zum Drucken",
"built_with": "erstellt mit",
"print_button": "Flyer drucken",
"download_button": "Herunterladen"
}
}