Merge branch 'dev' of github.com:YunoHost/yunohost into dev

This commit is contained in:
Kay0u 2022-01-20 20:26:57 +01:00
commit e2da7e406b
No known key found for this signature in database
GPG key ID: AAFEEB16CFA2AE2D
35 changed files with 114 additions and 211 deletions

View file

@ -8,7 +8,7 @@ Group=mdns
Type=simple Type=simple
Environment=PYTHONUNBUFFERED=1 Environment=PYTHONUNBUFFERED=1
ExecStart=/usr/bin/yunomdns ExecStart=/usr/bin/yunomdns
StandardOutput=syslog StandardOutput=journal
[Install] [Install]
WantedBy=default.target WantedBy=default.target

View file

@ -215,7 +215,6 @@
"mail_unavailable": "Aquesta adreça de correu està reservada i ha de ser atribuïda automàticament el primer usuari", "mail_unavailable": "Aquesta adreça de correu està reservada i ha de ser atribuïda automàticament el primer usuari",
"main_domain_change_failed": "No s'ha pogut canviar el domini principal", "main_domain_change_failed": "No s'ha pogut canviar el domini principal",
"main_domain_changed": "S'ha canviat el domini principal", "main_domain_changed": "S'ha canviat el domini principal",
"migrations_cant_reach_migration_file": "No s'ha pogut accedir als fitxers de migració al camí «%s»",
"migrations_list_conflict_pending_done": "No es pot utilitzar «--previous» i «--done» al mateix temps.", "migrations_list_conflict_pending_done": "No es pot utilitzar «--previous» i «--done» al mateix temps.",
"migrations_loading_migration": "Carregant la migració {id}...", "migrations_loading_migration": "Carregant la migració {id}...",
"migrations_migration_has_failed": "La migració {id} ha fallat, cancel·lant. Error: {exception}", "migrations_migration_has_failed": "La migració {id} ha fallat, cancel·lant. Error: {exception}",
@ -224,7 +223,6 @@
"migrations_to_be_ran_manually": "La migració {id} s'ha de fer manualment. Aneu a Eines → Migracions a la interfície admin, o executeu «yunohost tools migrations run».", "migrations_to_be_ran_manually": "La migració {id} s'ha de fer manualment. Aneu a Eines → Migracions a la interfície admin, o executeu «yunohost tools migrations run».",
"migrations_need_to_accept_disclaimer": "Per fer la migració {id}, heu d'acceptar aquesta clàusula de no responsabilitat:\n---\n{disclaimer}\n---\nSi accepteu fer la migració, torneu a executar l'ordre amb l'opció «--accept-disclaimer».", "migrations_need_to_accept_disclaimer": "Per fer la migració {id}, heu d'acceptar aquesta clàusula de no responsabilitat:\n---\n{disclaimer}\n---\nSi accepteu fer la migració, torneu a executar l'ordre amb l'opció «--accept-disclaimer».",
"not_enough_disk_space": "No hi ha prou espai en «{path}»", "not_enough_disk_space": "No hi ha prou espai en «{path}»",
"packages_upgrade_failed": "No s'han pogut actualitzar tots els paquets",
"pattern_backup_archive_name": "Ha de ser un nom d'arxiu vàlid amb un màxim de 30 caràcters, compost per caràcters alfanumèrics i -_. exclusivament", "pattern_backup_archive_name": "Ha de ser un nom d'arxiu vàlid amb un màxim de 30 caràcters, compost per caràcters alfanumèrics i -_. exclusivament",
"pattern_domain": "Ha de ser un nom de domini vàlid (ex.: el-meu-domini.cat)", "pattern_domain": "Ha de ser un nom de domini vàlid (ex.: el-meu-domini.cat)",
"pattern_email": "Ha de ser una adreça de correu vàlida, sense el símbol «+» (ex.: algu@domini.cat)", "pattern_email": "Ha de ser una adreça de correu vàlida, sense el símbol «+» (ex.: algu@domini.cat)",
@ -313,13 +311,6 @@
"system_upgraded": "S'ha actualitzat el sistema", "system_upgraded": "S'ha actualitzat el sistema",
"system_username_exists": "El nom d'usuari ja existeix en la llista d'usuaris de sistema", "system_username_exists": "El nom d'usuari ja existeix en la llista d'usuaris de sistema",
"this_action_broke_dpkg": "Aquesta acció a trencat dpkg/APT (els gestors de paquets del sistema)... Podeu intentar resoldre el problema connectant-vos amb SSH i executant «sudo apt install --fix-broken» i/o «sudo dpkg --configure -a».", "this_action_broke_dpkg": "Aquesta acció a trencat dpkg/APT (els gestors de paquets del sistema)... Podeu intentar resoldre el problema connectant-vos amb SSH i executant «sudo apt install --fix-broken» i/o «sudo dpkg --configure -a».",
"tools_upgrade_cant_hold_critical_packages": "No es poden mantenir els paquets crítics...",
"tools_upgrade_cant_unhold_critical_packages": "No es poden deixar de mantenir els paquets crítics...",
"tools_upgrade_regular_packages": "Actualitzant els paquets «normals» (no relacionats amb YunoHost)...",
"tools_upgrade_regular_packages_failed": "No s'han pogut actualitzar els paquets següents: {packages_list}",
"tools_upgrade_special_packages": "Actualitzant els paquets «especials» (relacionats amb YunoHost)...",
"tools_upgrade_special_packages_explanation": "Aquesta actualització especial continuarà en segon pla. No comenceu cap altra acció al servidor en els pròxims ~10 minuts (depèn de la velocitat del maquinari). Després d'això, pot ser que us hagueu de tornar a connectar a la interfície d'administració. Els registres de l'actualització estaran disponibles a Eines → Registres (a la interfície d'administració) o utilitzant «yunohost log list» (des de la línia d'ordres).",
"tools_upgrade_special_packages_completed": "Actualització dels paquets YunoHost acabada.\nPremeu [Enter] per tornar a la línia d'ordres",
"unbackup_app": "{app} no es guardarà", "unbackup_app": "{app} no es guardarà",
"unexpected_error": "Hi ha hagut un error inesperat: {error}", "unexpected_error": "Hi ha hagut un error inesperat: {error}",
"unlimit": "Sense quota", "unlimit": "Sense quota",

View file

@ -71,7 +71,6 @@
"mail_forward_remove_failed": "Die Weiterleitungs-E-Mail '{mail}' konnte nicht gelöscht werden", "mail_forward_remove_failed": "Die Weiterleitungs-E-Mail '{mail}' konnte nicht gelöscht werden",
"main_domain_change_failed": "Die Hauptdomain konnte nicht geändert werden", "main_domain_change_failed": "Die Hauptdomain konnte nicht geändert werden",
"main_domain_changed": "Die Hauptdomain wurde geändert", "main_domain_changed": "Die Hauptdomain wurde geändert",
"packages_upgrade_failed": "Konnte nicht alle Pakete aktualisieren",
"pattern_backup_archive_name": "Muss ein gültiger Dateiname mit maximal 30 alphanumerischen sowie -_. Zeichen sein", "pattern_backup_archive_name": "Muss ein gültiger Dateiname mit maximal 30 alphanumerischen sowie -_. Zeichen sein",
"pattern_domain": "Muss ein gültiger Domainname sein (z.B. meine-domain.org)", "pattern_domain": "Muss ein gültiger Domainname sein (z.B. meine-domain.org)",
"pattern_email": "Muss eine gültige E-Mail-Adresse ohne '+' Symbol sein (z.B. someone@example.com)", "pattern_email": "Muss eine gültige E-Mail-Adresse ohne '+' Symbol sein (z.B. someone@example.com)",
@ -478,7 +477,6 @@
"migrations_pending_cant_rerun": "Diese Migrationen sind immer noch anstehend und können deshalb nicht erneut durchgeführt werden: {ids}", "migrations_pending_cant_rerun": "Diese Migrationen sind immer noch anstehend und können deshalb nicht erneut durchgeführt werden: {ids}",
"migrations_not_pending_cant_skip": "Diese Migrationen sind nicht anstehend und können deshalb nicht übersprungen werden: {ids}", "migrations_not_pending_cant_skip": "Diese Migrationen sind nicht anstehend und können deshalb nicht übersprungen werden: {ids}",
"migrations_success_forward": "Migration {id} abgeschlossen", "migrations_success_forward": "Migration {id} abgeschlossen",
"migrations_cant_reach_migration_file": "Die Migrationsdateien konnten nicht aufgerufen werden im Verzeichnis '%s'",
"migrations_dependencies_not_satisfied": "Führen Sie diese Migrationen aus: '{dependencies_id}', vor der Migration {id}.", "migrations_dependencies_not_satisfied": "Führen Sie diese Migrationen aus: '{dependencies_id}', vor der Migration {id}.",
"migrations_failed_to_load_migration": "Konnte Migration nicht laden {id}: {error}", "migrations_failed_to_load_migration": "Konnte Migration nicht laden {id}: {error}",
"migrations_list_conflict_pending_done": "Sie können nicht '--previous' und '--done' gleichzeitig benützen.", "migrations_list_conflict_pending_done": "Sie können nicht '--previous' und '--done' gleichzeitig benützen.",
@ -577,15 +575,8 @@
"root_password_replaced_by_admin_password": "Ihr Root Passwort wurde durch Ihr Admin Passwort ersetzt.", "root_password_replaced_by_admin_password": "Ihr Root Passwort wurde durch Ihr Admin Passwort ersetzt.",
"show_tile_cant_be_enabled_for_regex": "Du kannst 'show_tile' momentan nicht aktivieren, weil die URL für die Berechtigung '{permission}' ein regulärer Ausdruck ist", "show_tile_cant_be_enabled_for_regex": "Du kannst 'show_tile' momentan nicht aktivieren, weil die URL für die Berechtigung '{permission}' ein regulärer Ausdruck ist",
"show_tile_cant_be_enabled_for_url_not_defined": "Momentan können Sie 'show_tile' nicht aktivieren, weil Sie zuerst eine URL für die Berechtigung '{permission}' definieren müssen", "show_tile_cant_be_enabled_for_url_not_defined": "Momentan können Sie 'show_tile' nicht aktivieren, weil Sie zuerst eine URL für die Berechtigung '{permission}' definieren müssen",
"tools_upgrade_regular_packages_failed": "Konnte für die folgenden Pakete das Upgrade nicht durchführen: {packages_list}",
"tools_upgrade_regular_packages": "Momentan werden Upgrades für das System (YunoHost-unabhängige) Pakete durchgeführt...",
"tools_upgrade_cant_unhold_critical_packages": "Konnte für die kritischen Pakete das Flag 'hold' nicht aufheben...",
"tools_upgrade_cant_hold_critical_packages": "Konnte für die kritischen Pakete das Flag 'hold' nicht setzen...",
"this_action_broke_dpkg": "Diese Aktion hat unkonfigurierte Pakete verursacht, welche durch dpkg/apt (die Paketverwaltungen dieses Systems) zurückgelassen wurden... Sie können versuchen dieses Problem zu lösen, indem Sie 'sudo apt install --fix-broken' und/oder 'sudo dpkg --configure -a' ausführen.", "this_action_broke_dpkg": "Diese Aktion hat unkonfigurierte Pakete verursacht, welche durch dpkg/apt (die Paketverwaltungen dieses Systems) zurückgelassen wurden... Sie können versuchen dieses Problem zu lösen, indem Sie 'sudo apt install --fix-broken' und/oder 'sudo dpkg --configure -a' ausführen.",
"update_apt_cache_failed": "Kann den Cache von APT (Debians Paketmanager) nicht aktualisieren. Hier ist ein Auszug aus den sources.list-Zeilen, die helfen könnten, das Problem zu identifizieren:\n{sourceslist}", "update_apt_cache_failed": "Kann den Cache von APT (Debians Paketmanager) nicht aktualisieren. Hier ist ein Auszug aus den sources.list-Zeilen, die helfen könnten, das Problem zu identifizieren:\n{sourceslist}",
"tools_upgrade_special_packages_completed": "YunoHost-Paketupdate beendet.\nDrücke [Enter], um zurück zur Kommandoziele zu kommen",
"tools_upgrade_special_packages_explanation": "Das Upgrade \"special\" wird im Hintergrund ausgeführt. Bitte starten Sie keine anderen Aktionen auf Ihrem Server für die nächsten ~10 Minuten. Die Dauer ist abhängig von der Geschwindigkeit Ihres Servers. Nach dem Upgrade müssen Sie sich eventuell erneut in das Adminportal einloggen. Upgrade-Logs sind im Adminbereich unter Tools → Log verfügbar. Alternativ können Sie in der Befehlszeile 'yunohost log list' eingeben.",
"tools_upgrade_special_packages": "\"special\" (YunoHost-bezogene) Pakete werden jetzt aktualisiert...",
"unknown_main_domain_path": "Unbekannte:r Domain oder Pfad für '{app}'. Du musst eine Domain und einen Pfad setzen, um die URL für Berechtigungen zu setzen.", "unknown_main_domain_path": "Unbekannte:r Domain oder Pfad für '{app}'. Du musst eine Domain und einen Pfad setzen, um die URL für Berechtigungen zu setzen.",
"yunohost_postinstall_end_tip": "Post-install ist fertig! Um das Setup abzuschliessen, wird empfohlen:\n - einen ersten Benutzer über den Bereich 'Benutzer:in' im Adminbereich hinzuzufügen (oder mit 'yunohost user create <username>' in der Kommandezeile);\n - mögliche Fehler zu diagnostizieren über den Bereich 'Diagnose' im Adminbereich (oder mit 'yunohost diagnosis run' in der Kommandozeile;\n - Die Abschnitte 'Install YunoHost' und 'Geführte Tour' im Administratorenhandbuch zu lesen: https://yunohost.org/admindoc.", "yunohost_postinstall_end_tip": "Post-install ist fertig! Um das Setup abzuschliessen, wird empfohlen:\n - einen ersten Benutzer über den Bereich 'Benutzer:in' im Adminbereich hinzuzufügen (oder mit 'yunohost user create <username>' in der Kommandezeile);\n - mögliche Fehler zu diagnostizieren über den Bereich 'Diagnose' im Adminbereich (oder mit 'yunohost diagnosis run' in der Kommandozeile;\n - Die Abschnitte 'Install YunoHost' und 'Geführte Tour' im Administratorenhandbuch zu lesen: https://yunohost.org/admindoc.",
"user_already_exists": "Benutzer:in '{user}' ist bereits vorhanden", "user_already_exists": "Benutzer:in '{user}' ist bereits vorhanden",

View file

@ -528,7 +528,6 @@
"not_enough_disk_space": "Not enough free space on '{path}'", "not_enough_disk_space": "Not enough free space on '{path}'",
"operation_interrupted": "The operation was manually interrupted?", "operation_interrupted": "The operation was manually interrupted?",
"other_available_options": "... and {n} other available options not shown", "other_available_options": "... and {n} other available options not shown",
"packages_upgrade_failed": "Could not upgrade all the packages",
"password_listed": "This password is among the most used passwords in the world. Please choose something more unique.", "password_listed": "This password is among the most used passwords in the world. Please choose something more unique.",
"password_too_simple_1": "The password needs to be at least 8 characters long", "password_too_simple_1": "The password needs to be at least 8 characters long",
"password_too_simple_2": "The password needs to be at least 8 characters long and contain a digit, upper and lower characters", "password_too_simple_2": "The password needs to be at least 8 characters long and contain a digit, upper and lower characters",

View file

@ -114,7 +114,6 @@
"migrations_must_provide_explicit_targets": "Vi devas provizi eksplicitajn celojn kiam vi uzas '--skip' aŭ '--force-rerun'", "migrations_must_provide_explicit_targets": "Vi devas provizi eksplicitajn celojn kiam vi uzas '--skip' aŭ '--force-rerun'",
"permission_update_failed": "Ne povis ĝisdatigi permeson '{permission}': {error}", "permission_update_failed": "Ne povis ĝisdatigi permeson '{permission}': {error}",
"permission_updated": "Ĝisdatigita \"{permission}\" rajtigita", "permission_updated": "Ĝisdatigita \"{permission}\" rajtigita",
"tools_upgrade_cant_hold_critical_packages": "Ne povis teni kritikajn pakojn…",
"upnp_dev_not_found": "Neniu UPnP-aparato trovita", "upnp_dev_not_found": "Neniu UPnP-aparato trovita",
"pattern_password": "Devas esti almenaŭ 3 signoj longaj", "pattern_password": "Devas esti almenaŭ 3 signoj longaj",
"root_password_desynchronized": "La pasvorta administranto estis ŝanĝita, sed YunoHost ne povis propagandi ĉi tion al la radika pasvorto!", "root_password_desynchronized": "La pasvorta administranto estis ŝanĝita, sed YunoHost ne povis propagandi ĉi tion al la radika pasvorto!",
@ -154,8 +153,6 @@
"permission_deletion_failed": "Ne povis forigi permeson '{permission}': {error}", "permission_deletion_failed": "Ne povis forigi permeson '{permission}': {error}",
"permission_not_found": "Permesita \"{permission}\" ne trovita", "permission_not_found": "Permesita \"{permission}\" ne trovita",
"restore_not_enough_disk_space": "Ne sufiĉa spaco (spaco: {free_space} B, necesa spaco: {needed_space} B, sekureca marĝeno: {margin} B)", "restore_not_enough_disk_space": "Ne sufiĉa spaco (spaco: {free_space} B, necesa spaco: {needed_space} B, sekureca marĝeno: {margin} B)",
"tools_upgrade_regular_packages": "Nun ĝisdatigi 'regulajn' (ne-yunohost-rilatajn) pakojn …",
"tools_upgrade_special_packages_explanation": "La speciala ĝisdatigo daŭros en la fono. Bonvolu ne komenci aliajn agojn en via servilo dum la sekvaj ~ 10 minutoj (depende de la aparata rapideco). Post tio, vi eble devos re-ensaluti al la retadreso. La ĝisdatiga registro estos havebla en Iloj → Ensaluto (en la retadreso) aŭ uzante 'yunohost logliston' (el la komandlinio).",
"unrestore_app": "App '{app}' ne restarigos", "unrestore_app": "App '{app}' ne restarigos",
"group_created": "Grupo '{group}' kreita", "group_created": "Grupo '{group}' kreita",
"group_creation_failed": "Ne povis krei la grupon '{group}': {error}", "group_creation_failed": "Ne povis krei la grupon '{group}': {error}",
@ -168,7 +165,6 @@
"ip6tables_unavailable": "Vi ne povas ludi kun ip6tabloj ĉi tie. Vi estas en ujo aŭ via kerno ne subtenas ĝin", "ip6tables_unavailable": "Vi ne povas ludi kun ip6tabloj ĉi tie. Vi estas en ujo aŭ via kerno ne subtenas ĝin",
"mail_unavailable": "Ĉi tiu retpoŝta adreso estas rezervita kaj aŭtomate estos atribuita al la unua uzanto", "mail_unavailable": "Ĉi tiu retpoŝta adreso estas rezervita kaj aŭtomate estos atribuita al la unua uzanto",
"certmanager_domain_dns_ip_differs_from_public_ip": "La DNS 'A' rekordo por la domajno '{domain}' diferencas de la IP de ĉi tiu servilo. Se vi lastatempe modifis vian A-registron, bonvolu atendi ĝin propagandi (iuj DNS-disvastigaj kontroliloj estas disponeblaj interrete). (Se vi scias, kion vi faras, uzu '--no-checks' por malŝalti tiujn ĉekojn.)", "certmanager_domain_dns_ip_differs_from_public_ip": "La DNS 'A' rekordo por la domajno '{domain}' diferencas de la IP de ĉi tiu servilo. Se vi lastatempe modifis vian A-registron, bonvolu atendi ĝin propagandi (iuj DNS-disvastigaj kontroliloj estas disponeblaj interrete). (Se vi scias, kion vi faras, uzu '--no-checks' por malŝalti tiujn ĉekojn.)",
"tools_upgrade_special_packages_completed": "Plenumis la ĝisdatigon de pakaĵoj de YunoHost.\nPremu [Enter] por retrovi la komandlinion",
"log_remove_on_failed_install": "Forigu '{}' post malsukcesa instalado", "log_remove_on_failed_install": "Forigu '{}' post malsukcesa instalado",
"regenconf_file_manually_modified": "La agorddosiero '{conf}' estis modifita permane kaj ne estos ĝisdatigita", "regenconf_file_manually_modified": "La agorddosiero '{conf}' estis modifita permane kaj ne estos ĝisdatigita",
"regenconf_would_be_updated": "La agordo estus aktualigita por la kategorio '{category}'", "regenconf_would_be_updated": "La agordo estus aktualigita por la kategorio '{category}'",
@ -184,10 +180,8 @@
"upgrading_packages": "Ĝisdatigi pakojn…", "upgrading_packages": "Ĝisdatigi pakojn…",
"custom_app_url_required": "Vi devas provizi URL por altgradigi vian kutimon app {app}", "custom_app_url_required": "Vi devas provizi URL por altgradigi vian kutimon app {app}",
"service_reload_failed": "Ne povis reŝargi la servon '{service}'\n\nLastatempaj servaj protokoloj: {logs}", "service_reload_failed": "Ne povis reŝargi la servon '{service}'\n\nLastatempaj servaj protokoloj: {logs}",
"packages_upgrade_failed": "Ne povis ĝisdatigi ĉiujn pakojn",
"hook_json_return_error": "Ne povis legi revenon de hoko {path}. Eraro: {msg}. Kruda enhavo: {raw_content}", "hook_json_return_error": "Ne povis legi revenon de hoko {path}. Eraro: {msg}. Kruda enhavo: {raw_content}",
"dyndns_key_not_found": "DNS-ŝlosilo ne trovita por la domajno", "dyndns_key_not_found": "DNS-ŝlosilo ne trovita por la domajno",
"tools_upgrade_regular_packages_failed": "Ne povis ĝisdatigi pakojn: {packages_list}",
"service_start_failed": "Ne povis komenci la servon '{service}'\n\nLastatempaj servaj protokoloj: {logs}", "service_start_failed": "Ne povis komenci la servon '{service}'\n\nLastatempaj servaj protokoloj: {logs}",
"service_reloaded": "Servo '{service}' reŝargita", "service_reloaded": "Servo '{service}' reŝargita",
"system_upgraded": "Sistemo ĝisdatigita", "system_upgraded": "Sistemo ĝisdatigita",
@ -201,7 +195,6 @@
"domain_dyndns_already_subscribed": "Vi jam abonis DynDNS-domajnon", "domain_dyndns_already_subscribed": "Vi jam abonis DynDNS-domajnon",
"log_letsencrypt_cert_renew": "Renovigu '{}' Let's Encrypt atestilon", "log_letsencrypt_cert_renew": "Renovigu '{}' Let's Encrypt atestilon",
"backup_output_directory_required": "Vi devas provizi elirejan dosierujon por la sekurkopio", "backup_output_directory_required": "Vi devas provizi elirejan dosierujon por la sekurkopio",
"tools_upgrade_cant_unhold_critical_packages": "Ne povis malŝalti kritikajn pakojn…",
"log_link_to_log": "Plena ŝtipo de ĉi tiu operacio: '<a href=\"#/tools/logs/{name}\" style=\"text-decoration:underline\">{desc} </a>'", "log_link_to_log": "Plena ŝtipo de ĉi tiu operacio: '<a href=\"#/tools/logs/{name}\" style=\"text-decoration:underline\">{desc} </a>'",
"global_settings_cant_serialize_settings": "Ne eblis serialigi datumojn pri agordoj, motivo: {reason}", "global_settings_cant_serialize_settings": "Ne eblis serialigi datumojn pri agordoj, motivo: {reason}",
"backup_running_hooks": "Kurado de apogaj hokoj …", "backup_running_hooks": "Kurado de apogaj hokoj …",
@ -251,7 +244,6 @@
"downloading": "Elŝutante …", "downloading": "Elŝutante …",
"user_deleted": "Uzanto forigita", "user_deleted": "Uzanto forigita",
"service_enable_failed": "Ne povis fari la servon '{service}' aŭtomate komenci ĉe la ekkuro.\n\nLastatempaj servaj protokoloj: {logs}", "service_enable_failed": "Ne povis fari la servon '{service}' aŭtomate komenci ĉe la ekkuro.\n\nLastatempaj servaj protokoloj: {logs}",
"tools_upgrade_special_packages": "Nun ĝisdatigi 'specialajn' (rilatajn al yunohost)…",
"domains_available": "Haveblaj domajnoj:", "domains_available": "Haveblaj domajnoj:",
"dyndns_registered": "Registrita domajno DynDNS", "dyndns_registered": "Registrita domajno DynDNS",
"service_description_fail2ban": "Protektas kontraŭ bruta forto kaj aliaj specoj de atakoj de la interreto", "service_description_fail2ban": "Protektas kontraŭ bruta forto kaj aliaj specoj de atakoj de la interreto",
@ -331,7 +323,6 @@
"regenconf_file_copy_failed": "Ne povis kopii la novan agordodosieron '{new}' al '{conf}'", "regenconf_file_copy_failed": "Ne povis kopii la novan agordodosieron '{new}' al '{conf}'",
"restore_already_installed_app": "App kun la ID '{app}' estas jam instalita", "restore_already_installed_app": "App kun la ID '{app}' estas jam instalita",
"mail_domain_unknown": "Nevalida retadreso por domajno '{domain}'. Bonvolu uzi domajnon administritan de ĉi tiu servilo.", "mail_domain_unknown": "Nevalida retadreso por domajno '{domain}'. Bonvolu uzi domajnon administritan de ĉi tiu servilo.",
"migrations_cant_reach_migration_file": "Ne povis aliri migrajn dosierojn ĉe la vojo '% s'",
"pattern_email": "Devas esti valida retpoŝta adreso (t.e. iu@ekzemple.com)", "pattern_email": "Devas esti valida retpoŝta adreso (t.e. iu@ekzemple.com)",
"mail_alias_remove_failed": "Ne povis forigi retpoŝton alias '{mail}'", "mail_alias_remove_failed": "Ne povis forigi retpoŝton alias '{mail}'",
"regenconf_file_manually_removed": "La dosiero de agordo '{conf}' estis forigita permane, kaj ne estos kreita", "regenconf_file_manually_removed": "La dosiero de agordo '{conf}' estis forigita permane, kaj ne estos kreita",

View file

@ -80,7 +80,6 @@
"main_domain_change_failed": "No se pudo cambiar el dominio principal", "main_domain_change_failed": "No se pudo cambiar el dominio principal",
"main_domain_changed": "El dominio principal ha cambiado", "main_domain_changed": "El dominio principal ha cambiado",
"not_enough_disk_space": "No hay espacio libre suficiente en «{path}»", "not_enough_disk_space": "No hay espacio libre suficiente en «{path}»",
"packages_upgrade_failed": "No se pudieron actualizar todos los paquetes",
"pattern_backup_archive_name": "Debe ser un nombre de archivo válido con un máximo de 30 caracteres, solo se admiten caracteres alfanuméricos y los caracteres -_. (guiones y punto)", "pattern_backup_archive_name": "Debe ser un nombre de archivo válido con un máximo de 30 caracteres, solo se admiten caracteres alfanuméricos y los caracteres -_. (guiones y punto)",
"pattern_domain": "El nombre de dominio debe ser válido (por ejemplo mi-dominio.org)", "pattern_domain": "El nombre de dominio debe ser válido (por ejemplo mi-dominio.org)",
"pattern_email": "Debe ser una dirección de correo electrónico válida, sin el símbolo '+' (ej. alguien@ejemplo.com)", "pattern_email": "Debe ser una dirección de correo electrónico válida, sin el símbolo '+' (ej. alguien@ejemplo.com)",
@ -203,13 +202,6 @@
"password_too_simple_4": "La contraseña debe ser de al menos 12 caracteres de longitud e incluir un número, mayúsculas, minúsculas y caracteres especiales", "password_too_simple_4": "La contraseña debe ser de al menos 12 caracteres de longitud e incluir un número, mayúsculas, minúsculas y caracteres especiales",
"update_apt_cache_warning": "Algo fue mal durante la actualización de la caché de APT (gestor de paquetes de Debian). Aquí tiene un volcado de las líneas de sources.list que podría ayudarle a identificar las líneas problemáticas:\n{sourceslist}", "update_apt_cache_warning": "Algo fue mal durante la actualización de la caché de APT (gestor de paquetes de Debian). Aquí tiene un volcado de las líneas de sources.list que podría ayudarle a identificar las líneas problemáticas:\n{sourceslist}",
"update_apt_cache_failed": "Imposible actualizar la caché de APT (gestor de paquetes de Debian). Aquí tienes un volcado de las líneas de sources.list que podrían ayudarte a identificar las líneas problemáticas:\n{sourceslist}", "update_apt_cache_failed": "Imposible actualizar la caché de APT (gestor de paquetes de Debian). Aquí tienes un volcado de las líneas de sources.list que podrían ayudarte a identificar las líneas problemáticas:\n{sourceslist}",
"tools_upgrade_special_packages_completed": "Actualización de paquetes de YunoHost completada.\nPulse [Intro] para regresar a la línea de órdenes",
"tools_upgrade_special_packages_explanation": "La actualización especial continuará en segundo plano. No inicie ninguna otra acción en su servidor durante los próximos 10 minutos (dependiendo de la velocidad del hardware). Después de esto, es posible que deba volver a iniciar sesión en el administrador web. El registro de actualización estará disponible en Herramientas → Registro (en el webadmin) o usando 'yunohost log list' (desde la línea de comandos).",
"tools_upgrade_special_packages": "Actualizando ahora paquetes «especiales» (relacionados con YunoHost)…",
"tools_upgrade_regular_packages_failed": "No se pudieron actualizar los paquetes: {packages_list}",
"tools_upgrade_regular_packages": "Actualizando ahora paquetes «normales» (no relacionados con YunoHost)…",
"tools_upgrade_cant_unhold_critical_packages": "No se pudo liberar los paquetes críticos…",
"tools_upgrade_cant_hold_critical_packages": "Imposible etiquetar con 'hold' los paquetes críticos…",
"this_action_broke_dpkg": "Esta acción rompió dpkg/APT(los gestores de paquetes del sistema)… Puedes tratar de solucionar este problema conectándote mediante SSH y ejecutando `sudo apt install --fix-broken` and/or `sudo dpkg --configure -a`.", "this_action_broke_dpkg": "Esta acción rompió dpkg/APT(los gestores de paquetes del sistema)… Puedes tratar de solucionar este problema conectándote mediante SSH y ejecutando `sudo apt install --fix-broken` and/or `sudo dpkg --configure -a`.",
"service_reloaded_or_restarted": "El servicio '{service}' fue recargado o reiniciado", "service_reloaded_or_restarted": "El servicio '{service}' fue recargado o reiniciado",
"service_reload_or_restart_failed": "No se pudo recargar o reiniciar el servicio «{service}»\n\nRegistro de servicios recientes:{logs}", "service_reload_or_restart_failed": "No se pudo recargar o reiniciar el servicio «{service}»\n\nRegistro de servicios recientes:{logs}",
@ -281,7 +273,6 @@
"migrations_exclusive_options": "«--auto», «--skip», and «--force-rerun» son opciones mutuamente excluyentes.", "migrations_exclusive_options": "«--auto», «--skip», and «--force-rerun» son opciones mutuamente excluyentes.",
"migrations_failed_to_load_migration": "No se pudo cargar la migración {id}: {error}", "migrations_failed_to_load_migration": "No se pudo cargar la migración {id}: {error}",
"migrations_dependencies_not_satisfied": "Ejecutar estas migraciones: «{dependencies_id}» antes de migrar {id}.", "migrations_dependencies_not_satisfied": "Ejecutar estas migraciones: «{dependencies_id}» antes de migrar {id}.",
"migrations_cant_reach_migration_file": "No se pudo acceder a los archivos de migración en la ruta «%s»",
"migrations_already_ran": "Esas migraciones ya se han realizado: {ids}", "migrations_already_ran": "Esas migraciones ya se han realizado: {ids}",
"mail_unavailable": "Esta dirección de correo está reservada y será asignada automáticamente al primer usuario", "mail_unavailable": "Esta dirección de correo está reservada y será asignada automáticamente al primer usuario",
"mailbox_disabled": "Correo desactivado para usuario {user}", "mailbox_disabled": "Correo desactivado para usuario {user}",

View file

@ -482,8 +482,6 @@
"pattern_lastname": "Abizen horrek ez du balio", "pattern_lastname": "Abizen horrek ez du balio",
"permission_deleted": "'{permission}' baimena ezabatu da", "permission_deleted": "'{permission}' baimena ezabatu da",
"service_disabled": "'{service}' zerbitzua ez da etorkizunean zerbitzaria abiaraztearekin batera exekutatuko.", "service_disabled": "'{service}' zerbitzua ez da etorkizunean zerbitzaria abiaraztearekin batera exekutatuko.",
"tools_upgrade_regular_packages_failed": "Ezin izan dira paketeak eguneratu: {packages_list}",
"tools_upgrade_special_packages_completed": "YunoHosten paketeak eguneratu dira.\nSakatu [Enter] komando-lerrora bueltatzeko",
"unexpected_error": "Ezusteko zerbaitek huts egin du: {error}", "unexpected_error": "Ezusteko zerbaitek huts egin du: {error}",
"updating_apt_cache": "Sistemaren paketeen eguneraketak eskuratzen…", "updating_apt_cache": "Sistemaren paketeen eguneraketak eskuratzen…",
"mail_forward_remove_failed": "Ezinezkoa izan da '{mail}' posta elektronikoko birbidalketa ezabatzea", "mail_forward_remove_failed": "Ezinezkoa izan da '{mail}' posta elektronikoko birbidalketa ezabatzea",
@ -507,13 +505,9 @@
"permission_require_account": "'{permission}' baimena zerbitzarian kontua duten erabiltzaileentzat da eta, beraz, ezin da gaitu bisitarientzat.", "permission_require_account": "'{permission}' baimena zerbitzarian kontua duten erabiltzaileentzat da eta, beraz, ezin da gaitu bisitarientzat.",
"postinstall_low_rootfsspace": "'root' fitxategi-sistemak 10 GB edo espazio gutxiago dauka, kezkatzekoa dena! Litekeena da espaziorik gabe geratzea aurki! Gomendagarria da 'root' fitxategi-sistemak gutxienez 16 GB libre izatea. Jakinarazpen honen ondoren YunoHost instalatzen jarraitu nahi baduzu, berrabiarazi agindua '--force-diskspace' gehituz", "postinstall_low_rootfsspace": "'root' fitxategi-sistemak 10 GB edo espazio gutxiago dauka, kezkatzekoa dena! Litekeena da espaziorik gabe geratzea aurki! Gomendagarria da 'root' fitxategi-sistemak gutxienez 16 GB libre izatea. Jakinarazpen honen ondoren YunoHost instalatzen jarraitu nahi baduzu, berrabiarazi agindua '--force-diskspace' gehituz",
"this_action_broke_dpkg": "Eragiketa honek dpkg/APT (sistemaren pakete kudeatzaileak) kaltetu ditu… Arazoa konpontzeko SSH bidez konektatu eta 'sudo apt install --fix-broken' edota 'sudo dpkg --configure -a' exekutatu dezakezu.", "this_action_broke_dpkg": "Eragiketa honek dpkg/APT (sistemaren pakete kudeatzaileak) kaltetu ditu… Arazoa konpontzeko SSH bidez konektatu eta 'sudo apt install --fix-broken' edota 'sudo dpkg --configure -a' exekutatu dezakezu.",
"tools_upgrade_special_packages_explanation": "Eguneraketa bereziak atzeko planoan jarraituko du. Mesedez, ez abiarazi bestelako eragiketarik datozen ~10 minutuetan (zure hardwarearen abiaduraren arabera). Honen ondoren litekeena da saioa berriro hasi behar izatea. Eguneraketaren erregistroa Erramintak → Erregistroak atalean (administrazio-atarian) edo 'yunohost log list' komandoa erabiliz egongo da ikusgai.",
"user_import_bad_line": "{line} lerro okerra: {details}", "user_import_bad_line": "{line} lerro okerra: {details}",
"restore_complete": "Lehengoratzea amaitu da", "restore_complete": "Lehengoratzea amaitu da",
"restore_extracting": "Behar diren fitxategiak ateratzen…", "restore_extracting": "Behar diren fitxategiak ateratzen…",
"tools_upgrade_cant_unhold_critical_packages": "Ezin izan dira pakete kritikoak deuseztatu…",
"tools_upgrade_regular_packages": "Orain pakete \"arruntak\" (YunoHostekin zerikusia ez dutenak) eguneratzen…",
"tools_upgrade_special_packages": "Orain pakete \"bereziak\" (YunoHostekin zerikusia dutenak) eguneratzen…",
"regenconf_would_be_updated": "'{category}' atalerako konfigurazioa eguneratu izango litzatekeen", "regenconf_would_be_updated": "'{category}' atalerako konfigurazioa eguneratu izango litzatekeen",
"migrations_dependencies_not_satisfied": "Exekutatu honako migrazioak: '{dependencies_id}', {id} migratu baino lehen.", "migrations_dependencies_not_satisfied": "Exekutatu honako migrazioak: '{dependencies_id}', {id} migratu baino lehen.",
"permission_created": "'{permission}' baimena sortu da", "permission_created": "'{permission}' baimena sortu da",
@ -542,8 +536,6 @@
"migrations_pending_cant_rerun": "Migrazio hauek exekutatzeke daude eta, beraz, ezin dira berriro abiarazi: {ids}", "migrations_pending_cant_rerun": "Migrazio hauek exekutatzeke daude eta, beraz, ezin dira berriro abiarazi: {ids}",
"regenconf_file_kept_back": "'{conf}' konfigurazio fitxategia regen-conf-ek ({category} atala) ezabatzekoa zen baina mantendu egin da.", "regenconf_file_kept_back": "'{conf}' konfigurazio fitxategia regen-conf-ek ({category} atala) ezabatzekoa zen baina mantendu egin da.",
"regenconf_file_removed": "'{conf}' konfigurazio fitxategia ezabatu da", "regenconf_file_removed": "'{conf}' konfigurazio fitxategia ezabatu da",
"tools_upgrade_cant_hold_critical_packages": "Ezin izan dira pakete kritikoak mantendu…",
"migrations_cant_reach_migration_file": "Ezinezkoa izan da '%s' migrazioen fitxategia eskuratzea",
"permission_already_allowed": "'{group} taldeak badauka dagoeneko '{permission}' baimena", "permission_already_allowed": "'{group} taldeak badauka dagoeneko '{permission}' baimena",
"permission_cant_add_to_all_users": "{permission} baimena ezin da erabiltzaile guztiei ezarri.", "permission_cant_add_to_all_users": "{permission} baimena ezin da erabiltzaile guztiei ezarri.",
"mailbox_disabled": "Posta elektronikoa desgaituta dago {user} erabiltzailearentzat", "mailbox_disabled": "Posta elektronikoa desgaituta dago {user} erabiltzailearentzat",
@ -562,7 +554,6 @@
"user_import_missing_columns": "Ondorengo zutabeak falta dira: {columns}", "user_import_missing_columns": "Ondorengo zutabeak falta dira: {columns}",
"service_disable_failed": "Ezin izan da '{service}' zerbitzua geldiarazi zerbitzaria abiaraztean.\n\nZerbitzuen erregistro berrienak: {logs}", "service_disable_failed": "Ezin izan da '{service}' zerbitzua geldiarazi zerbitzaria abiaraztean.\n\nZerbitzuen erregistro berrienak: {logs}",
"migrations_skip_migration": "{id} migrazioa saihesten…", "migrations_skip_migration": "{id} migrazioa saihesten…",
"packages_upgrade_failed": "Ezinezkoa izan da pakete guztiak eguneratzea",
"upnp_disabled": "UPnP itzalita dago", "upnp_disabled": "UPnP itzalita dago",
"main_domain_change_failed": "Ezinezkoa izan da domeinu nagusia aldatzea", "main_domain_change_failed": "Ezinezkoa izan da domeinu nagusia aldatzea",
"regenconf_failed": "Ezinezkoa izan da ondorengo atal(ar)en konfigurazioa berregitea: {categories}", "regenconf_failed": "Ezinezkoa izan da ondorengo atal(ar)en konfigurazioa berregitea: {categories}",

View file

@ -386,7 +386,6 @@
"password_too_simple_2": "گذرواژه باید حداقل 8 کاراکتر طول داشته باشد و شامل عدد ، حروف الفبائی کوچک و بزرگ باشد", "password_too_simple_2": "گذرواژه باید حداقل 8 کاراکتر طول داشته باشد و شامل عدد ، حروف الفبائی کوچک و بزرگ باشد",
"password_too_simple_1": "رمز عبور باید حداقل 8 کاراکتر باشد", "password_too_simple_1": "رمز عبور باید حداقل 8 کاراکتر باشد",
"password_listed": "این رمز در بین پر استفاده ترین رمزهای عبور در جهان قرار دارد. لطفاً چیزی منحصر به فرد تر انتخاب کنید.", "password_listed": "این رمز در بین پر استفاده ترین رمزهای عبور در جهان قرار دارد. لطفاً چیزی منحصر به فرد تر انتخاب کنید.",
"packages_upgrade_failed": "همه بسته ها را نمی توان ارتقا داد",
"operation_interrupted": "عملیات به صورت دستی قطع شد؟", "operation_interrupted": "عملیات به صورت دستی قطع شد؟",
"invalid_password": "رمز عبور نامعتبر", "invalid_password": "رمز عبور نامعتبر",
"invalid_number": "باید یک عدد باشد", "invalid_number": "باید یک عدد باشد",
@ -407,7 +406,6 @@
"migrations_exclusive_options": "'--auto', '--skip'، و '--force-rerun' گزینه های متقابل هستند.", "migrations_exclusive_options": "'--auto', '--skip'، و '--force-rerun' گزینه های متقابل هستند.",
"migrations_failed_to_load_migration": "مهاجرت بار نشد {id}: {error}", "migrations_failed_to_load_migration": "مهاجرت بار نشد {id}: {error}",
"migrations_dependencies_not_satisfied": "این مهاجرت ها را اجرا کنید: '{dependencies_id}' ، قبل از مهاجرت {id}.", "migrations_dependencies_not_satisfied": "این مهاجرت ها را اجرا کنید: '{dependencies_id}' ، قبل از مهاجرت {id}.",
"migrations_cant_reach_migration_file": "دسترسی به پرونده های مهاجرت در مسیر '٪ s' امکان پذیر نیست",
"migrations_already_ran": "این مهاجرت ها قبلاً انجام شده است: {ids}", "migrations_already_ran": "این مهاجرت ها قبلاً انجام شده است: {ids}",
"migration_ldap_rollback_success": "سیستم برگردانده شد.", "migration_ldap_rollback_success": "سیستم برگردانده شد.",
"migration_ldap_migration_failed_trying_to_rollback": "نمی توان مهاجرت کرد... تلاش برای بازگرداندن سیستم.", "migration_ldap_migration_failed_trying_to_rollback": "نمی توان مهاجرت کرد... تلاش برای بازگرداندن سیستم.",
@ -498,13 +496,6 @@
"unknown_main_domain_path": "دامنه یا مسیر ناشناخته برای '{app}'. شما باید یک دامنه و یک مسیر را مشخص کنید تا بتوانید یک آدرس اینترنتی برای مجوز تعیین کنید.", "unknown_main_domain_path": "دامنه یا مسیر ناشناخته برای '{app}'. شما باید یک دامنه و یک مسیر را مشخص کنید تا بتوانید یک آدرس اینترنتی برای مجوز تعیین کنید.",
"unexpected_error": "مشکل غیر منتظره ای پیش آمده: {error}", "unexpected_error": "مشکل غیر منتظره ای پیش آمده: {error}",
"unbackup_app": "{app} ذخیره نمی شود", "unbackup_app": "{app} ذخیره نمی شود",
"tools_upgrade_special_packages_completed": "ارتقاء بسته YunoHost به پایان رسید\nبرای بازگرداندن خط فرمان [Enter] را فشار دهید",
"tools_upgrade_special_packages_explanation": "ارتقاء ویژه در پس زمینه ادامه خواهد یافت. لطفاً تا 10 دقیقه دیگر (بسته به سرعت سخت افزار) هیچ اقدام دیگری را روی سرور خود شروع نکنید. پس از این کار ، ممکن است مجبور شوید دوباره وارد webadmin شوید. گزارش ارتقاء در Tools → Log (در webadmin) یا با استفاده از 'yunohost log list' (در خط فرمان) در دسترس خواهد بود.",
"tools_upgrade_special_packages": "در حال ارتقاء بسته های 'special' (مربوط به yunohost)...",
"tools_upgrade_regular_packages_failed": "بسته ها را نمی توان ارتقا داد: {packages_list}",
"tools_upgrade_regular_packages": "در حال ارتقاء بسته های 'regular' (غیر مرتبط با yunohost)...",
"tools_upgrade_cant_unhold_critical_packages": "بسته های مهم و حیاتی را نمی توان نگه نداشت...",
"tools_upgrade_cant_hold_critical_packages": "بسته های مهم و حیاتی را نمی توان نگه داشت...",
"this_action_broke_dpkg": "این اقدام dpkg/APT (مدیران بسته های سیستم) را خراب کرد... می توانید با اتصال از طریق SSH و اجرای فرمان `sudo apt install --fix -break` و/یا` sudo dpkg --configure -a` این مشکل را حل کنید.", "this_action_broke_dpkg": "این اقدام dpkg/APT (مدیران بسته های سیستم) را خراب کرد... می توانید با اتصال از طریق SSH و اجرای فرمان `sudo apt install --fix -break` و/یا` sudo dpkg --configure -a` این مشکل را حل کنید.",
"system_username_exists": "نام کاربری قبلاً در لیست کاربران سیستم وجود دارد", "system_username_exists": "نام کاربری قبلاً در لیست کاربران سیستم وجود دارد",
"system_upgraded": "سیستم ارتقا یافت", "system_upgraded": "سیستم ارتقا یافت",

View file

@ -82,7 +82,6 @@
"main_domain_change_failed": "Impossible de modifier le domaine principal", "main_domain_change_failed": "Impossible de modifier le domaine principal",
"main_domain_changed": "Le domaine principal a été modifié", "main_domain_changed": "Le domaine principal a été modifié",
"not_enough_disk_space": "L'espace disque est insuffisant sur '{path}'", "not_enough_disk_space": "L'espace disque est insuffisant sur '{path}'",
"packages_upgrade_failed": "Impossible de mettre à jour tous les paquets",
"pattern_backup_archive_name": "Doit être un nom de fichier valide avec un maximum de 30 caractères, et composé de caractères alphanumériques et -_. uniquement", "pattern_backup_archive_name": "Doit être un nom de fichier valide avec un maximum de 30 caractères, et composé de caractères alphanumériques et -_. uniquement",
"pattern_domain": "Doit être un nom de domaine valide (ex : mon-domaine.fr)", "pattern_domain": "Doit être un nom de domaine valide (ex : mon-domaine.fr)",
"pattern_email": "Il faut une adresse électronique valide, sans le symbole '+' (par exemple johndoe@exemple.com)", "pattern_email": "Il faut une adresse électronique valide, sans le symbole '+' (par exemple johndoe@exemple.com)",
@ -212,7 +211,6 @@
"restore_system_part_failed": "Impossible de restaurer la partie '{part}' du système", "restore_system_part_failed": "Impossible de restaurer la partie '{part}' du système",
"backup_couldnt_bind": "Impossible de lier {src} avec {dest}.", "backup_couldnt_bind": "Impossible de lier {src} avec {dest}.",
"domain_dns_conf_is_just_a_recommendation": "Cette commande vous montre la configuration *recommandée*. Elle ne configure pas le DNS pour vous. Il est de votre ressort de configurer votre zone DNS chez votre registrar/fournisseur conformément à cette recommandation.", "domain_dns_conf_is_just_a_recommendation": "Cette commande vous montre la configuration *recommandée*. Elle ne configure pas le DNS pour vous. Il est de votre ressort de configurer votre zone DNS chez votre registrar/fournisseur conformément à cette recommandation.",
"migrations_cant_reach_migration_file": "Impossible d'accéder aux fichiers de migration via le chemin '%s'",
"migrations_loading_migration": "Chargement de la migration {id}...", "migrations_loading_migration": "Chargement de la migration {id}...",
"migrations_migration_has_failed": "La migration {id} a échoué avec l'exception {exception} : annulation", "migrations_migration_has_failed": "La migration {id} a échoué avec l'exception {exception} : annulation",
"migrations_no_migrations_to_run": "Aucune migration à lancer", "migrations_no_migrations_to_run": "Aucune migration à lancer",
@ -338,14 +336,7 @@
"regenconf_dry_pending_applying": "Vérification de la configuration en attente qui aurait été appliquée pour la catégorie '{category}'...", "regenconf_dry_pending_applying": "Vérification de la configuration en attente qui aurait été appliquée pour la catégorie '{category}'...",
"regenconf_failed": "Impossible de régénérer la configuration pour la ou les catégorie(s) : '{categories}'", "regenconf_failed": "Impossible de régénérer la configuration pour la ou les catégorie(s) : '{categories}'",
"regenconf_pending_applying": "Applique la configuration en attente pour la catégorie '{category}'...", "regenconf_pending_applying": "Applique la configuration en attente pour la catégorie '{category}'...",
"tools_upgrade_cant_hold_critical_packages": "Impossibilité d'ajouter le drapeau 'hold' pour les paquets critiques...",
"tools_upgrade_regular_packages": "Mise à jour des paquets du système (non liés a YunoHost)...",
"tools_upgrade_regular_packages_failed": "Impossible de mettre à jour les paquets suivants : {packages_list}",
"tools_upgrade_special_packages": "Mise à jour des paquets 'spécifiques' (liés a YunoHost)...",
"tools_upgrade_special_packages_completed": "La mise à jour des paquets de YunoHost est finie !\nPressez [Entrée] pour revenir à la ligne de commande",
"dpkg_lock_not_available": "Cette commande ne peut pas être exécutée pour le moment car un autre programme semble utiliser le verrou de dpkg (le gestionnaire de package système)", "dpkg_lock_not_available": "Cette commande ne peut pas être exécutée pour le moment car un autre programme semble utiliser le verrou de dpkg (le gestionnaire de package système)",
"tools_upgrade_cant_unhold_critical_packages": "Impossible d'enlever le drapeau 'hold' pour les paquets critiques...",
"tools_upgrade_special_packages_explanation": "La mise à niveau spécifique à YunoHost se poursuivra en arrière-plan. Veuillez ne pas lancer d'autres actions sur votre serveur pendant les 10 prochaines minutes (selon la vitesse du matériel). Après cela, vous devrez peut-être vous reconnecter à la webadmin. Le journal de mise à niveau sera disponible dans Outils → Journal (dans le webadmin) ou en utilisant 'yunohost log list' (à partir de la ligne de commande).",
"update_apt_cache_failed": "Impossible de mettre à jour le cache APT (gestionnaire de paquets Debian). Voici un extrait du fichier sources.list qui pourrait vous aider à identifier les lignes problématiques :\n{sourceslist}", "update_apt_cache_failed": "Impossible de mettre à jour le cache APT (gestionnaire de paquets Debian). Voici un extrait du fichier sources.list qui pourrait vous aider à identifier les lignes problématiques :\n{sourceslist}",
"update_apt_cache_warning": "Des erreurs se sont produites lors de la mise à jour du cache APT (gestionnaire de paquets Debian). Voici un extrait des lignes du fichier sources.list qui pourrait vous aider à identifier les lignes problématiques :\n{sourceslist}", "update_apt_cache_warning": "Des erreurs se sont produites lors de la mise à jour du cache APT (gestionnaire de paquets Debian). Voici un extrait des lignes du fichier sources.list qui pourrait vous aider à identifier les lignes problématiques :\n{sourceslist}",
"backup_permission": "Permission de sauvegarde pour {app}", "backup_permission": "Permission de sauvegarde pour {app}",

View file

@ -447,7 +447,6 @@
"password_too_simple_3": "O contrasinal ten que ter 8 caracteres como mínimo e conter un díxito, maiúsculas, minúsculas e caracteres especiais", "password_too_simple_3": "O contrasinal ten que ter 8 caracteres como mínimo e conter un díxito, maiúsculas, minúsculas e caracteres especiais",
"password_too_simple_2": "O contrasinal ten que ter 8 caracteres como mínimo e conter un díxito, maiúsculas e minúsculas", "password_too_simple_2": "O contrasinal ten que ter 8 caracteres como mínimo e conter un díxito, maiúsculas e minúsculas",
"password_listed": "Este contrasinal está entre os máis utilizados no mundo. Por favor elixe outro que sexa máis orixinal.", "password_listed": "Este contrasinal está entre os máis utilizados no mundo. Por favor elixe outro que sexa máis orixinal.",
"packages_upgrade_failed": "Non se puideron actualizar tódolos paquetes",
"operation_interrupted": "Foi interrumpida manualmente a operación?", "operation_interrupted": "Foi interrumpida manualmente a operación?",
"invalid_number": "Ten que ser un número", "invalid_number": "Ten que ser un número",
"not_enough_disk_space": "Non hai espazo libre abondo en '{path}'", "not_enough_disk_space": "Non hai espazo libre abondo en '{path}'",
@ -467,7 +466,6 @@
"migrations_exclusive_options": "'--auto', '--skip', e '--force-rerun' son opcións que se exclúen unhas a outras.", "migrations_exclusive_options": "'--auto', '--skip', e '--force-rerun' son opcións que se exclúen unhas a outras.",
"migrations_failed_to_load_migration": "Non se cargou a migración {id}: {error}", "migrations_failed_to_load_migration": "Non se cargou a migración {id}: {error}",
"migrations_dependencies_not_satisfied": "Executar estas migracións: '{dependencies_id}', antes da migración {id}.", "migrations_dependencies_not_satisfied": "Executar estas migracións: '{dependencies_id}', antes da migración {id}.",
"migrations_cant_reach_migration_file": "Non se pode acceder aos ficheiros de migración na ruta '%s'",
"regenconf_file_manually_removed": "O ficheiro de configuración '{conf}' foi eliminado manualmente e non será creado", "regenconf_file_manually_removed": "O ficheiro de configuración '{conf}' foi eliminado manualmente e non será creado",
"regenconf_file_manually_modified": "O ficheiro de configuración '{conf}' foi modificado manualmente e non vai ser actualizado", "regenconf_file_manually_modified": "O ficheiro de configuración '{conf}' foi modificado manualmente e non vai ser actualizado",
"regenconf_file_kept_back": "Era de agardar que o ficheiro de configuración '{conf}' fose eliminado por regen-conf (categoría {category}) mais foi mantido.", "regenconf_file_kept_back": "Era de agardar que o ficheiro de configuración '{conf}' fose eliminado por regen-conf (categoría {category}) mais foi mantido.",
@ -572,13 +570,6 @@
"unknown_main_domain_path": "Dominio ou ruta descoñecida '{app}'. Tes que indicar un dominio e ruta para poder especificar un URL para o permiso.", "unknown_main_domain_path": "Dominio ou ruta descoñecida '{app}'. Tes que indicar un dominio e ruta para poder especificar un URL para o permiso.",
"unexpected_error": "Aconteceu un fallo non agardado: {error}", "unexpected_error": "Aconteceu un fallo non agardado: {error}",
"unbackup_app": "{app} non vai ser gardada", "unbackup_app": "{app} non vai ser gardada",
"tools_upgrade_special_packages_completed": "Completada a actualización dos paquetes YunoHost.\nPreme [Enter] para recuperar a liña de comandos",
"tools_upgrade_special_packages_explanation": "A actualización especial continuará en segundo plano. Non inicies outras tarefas no servidor nos seguintes ~10 minutos (depende do hardware). Após isto, podes volver a conectar na webadmin. O rexistro da actualización estará dispoñible en Ferramentas → Rexistro (na webadmin) ou con 'yunohost log list' (na liña de comandos).",
"tools_upgrade_special_packages": "Actualizando paquetes 'special' (yunohost-related)...",
"tools_upgrade_regular_packages_failed": "Non se actualizaron os paquetes: {packages_list}",
"tools_upgrade_regular_packages": "Actualizando os paquetes 'regular' (non-yunohost-related)...",
"tools_upgrade_cant_unhold_critical_packages": "Non se desbloquearon os paquetes críticos...",
"tools_upgrade_cant_hold_critical_packages": "Non se puideron bloquear os paquetes críticos...",
"this_action_broke_dpkg": "Esta acción rachou dpkg/APT (xestores de paquetes do sistema)... Podes intentar resolver o problema conectando a través de SSH e executando `sudo apt install --fix-broken`e/ou `sudo dpkg --configure -a`.", "this_action_broke_dpkg": "Esta acción rachou dpkg/APT (xestores de paquetes do sistema)... Podes intentar resolver o problema conectando a través de SSH e executando `sudo apt install --fix-broken`e/ou `sudo dpkg --configure -a`.",
"system_username_exists": "Xa existe este nome de usuaria na lista de usuarias do sistema", "system_username_exists": "Xa existe este nome de usuaria na lista de usuarias do sistema",
"system_upgraded": "Sistema actualizado", "system_upgraded": "Sistema actualizado",

View file

@ -95,7 +95,6 @@
"main_domain_change_failed": "Impossibile cambiare il dominio principale", "main_domain_change_failed": "Impossibile cambiare il dominio principale",
"main_domain_changed": "Il dominio principale è stato cambiato", "main_domain_changed": "Il dominio principale è stato cambiato",
"not_enough_disk_space": "Non c'è abbastanza spazio libero in '{path}'", "not_enough_disk_space": "Non c'è abbastanza spazio libero in '{path}'",
"packages_upgrade_failed": "Impossibile aggiornare tutti i pacchetti",
"pattern_backup_archive_name": "Deve essere un nome di file valido di massimo 30 caratteri di lunghezza, con caratteri alfanumerici e \"-_.\" come unica punteggiatura", "pattern_backup_archive_name": "Deve essere un nome di file valido di massimo 30 caratteri di lunghezza, con caratteri alfanumerici e \"-_.\" come unica punteggiatura",
"pattern_domain": "Deve essere un nome di dominio valido (es. il-mio-dominio.org)", "pattern_domain": "Deve essere un nome di dominio valido (es. il-mio-dominio.org)",
"pattern_firstname": "Deve essere un nome valido", "pattern_firstname": "Deve essere un nome valido",
@ -391,13 +390,6 @@
"update_apt_cache_warning": "Qualcosa è andato storto mentre eseguivo l'aggiornamento della cache APT (package manager di Debian). Ecco il dump di sources.list, che potrebbe aiutare ad identificare le linee problematiche:\n{sourceslist}", "update_apt_cache_warning": "Qualcosa è andato storto mentre eseguivo l'aggiornamento della cache APT (package manager di Debian). Ecco il dump di sources.list, che potrebbe aiutare ad identificare le linee problematiche:\n{sourceslist}",
"update_apt_cache_failed": "Impossibile aggiornare la cache di APT (package manager di Debian). Ecco il dump di sources.list, che potrebbe aiutare ad identificare le linee problematiche:\n{sourceslist}", "update_apt_cache_failed": "Impossibile aggiornare la cache di APT (package manager di Debian). Ecco il dump di sources.list, che potrebbe aiutare ad identificare le linee problematiche:\n{sourceslist}",
"unknown_main_domain_path": "Percorso o dominio sconosciuto per '{app}'. Devi specificare un dominio e un percorso per poter specificare un URL per il permesso.", "unknown_main_domain_path": "Percorso o dominio sconosciuto per '{app}'. Devi specificare un dominio e un percorso per poter specificare un URL per il permesso.",
"tools_upgrade_special_packages_completed": "Aggiornamento pacchetti YunoHost completato.\nPremi [Invio] per tornare al terminale",
"tools_upgrade_special_packages_explanation": "L'aggiornamento speciale continuerà in background. Per favore non iniziare nessun'altra azione sul tuo server per i prossimi ~10 minuti (dipende dalla velocità hardware). Dopo questo, dovrai ri-loggarti nel webadmin. Il registro di aggiornamento sarà disponibile in Strumenti → Log/Registri (nel webadmin) o dalla linea di comando eseguendo 'yunohost log list'.",
"tools_upgrade_special_packages": "Adesso aggiorno i pacchetti 'speciali' (correlati a yunohost)...",
"tools_upgrade_regular_packages_failed": "Impossibile aggiornare i pacchetti: {packages_list}",
"tools_upgrade_regular_packages": "Adesso aggiorno i pacchetti 'normali' (non correlati a yunohost)...",
"tools_upgrade_cant_unhold_critical_packages": "Impossibile annullare il blocco dei pacchetti critici/importanti...",
"tools_upgrade_cant_hold_critical_packages": "Impossibile bloccare i pacchetti critici/importanti...",
"show_tile_cant_be_enabled_for_regex": "Non puoi abilitare 'show_tile' in questo momento, perché l'URL del permesso '{permission}' è una regex", "show_tile_cant_be_enabled_for_regex": "Non puoi abilitare 'show_tile' in questo momento, perché l'URL del permesso '{permission}' è una regex",
"show_tile_cant_be_enabled_for_url_not_defined": "Non puoi abilitare 'show_tile' in questo momento, devi prima definire un URL per il permesso '{permission}'", "show_tile_cant_be_enabled_for_url_not_defined": "Non puoi abilitare 'show_tile' in questo momento, devi prima definire un URL per il permesso '{permission}'",
"service_reloaded_or_restarted": "Il servizio '{service}' è stato ricaricato o riavviato", "service_reloaded_or_restarted": "Il servizio '{service}' è stato ricaricato o riavviato",
@ -484,7 +476,6 @@
"migrations_exclusive_options": "'--auto', '--skip', e '--force-rerun' sono opzioni che si escludono a vicenda.", "migrations_exclusive_options": "'--auto', '--skip', e '--force-rerun' sono opzioni che si escludono a vicenda.",
"migrations_failed_to_load_migration": "Impossibile caricare la migrazione {id}: {error}", "migrations_failed_to_load_migration": "Impossibile caricare la migrazione {id}: {error}",
"migrations_dependencies_not_satisfied": "Esegui queste migrazioni: '{dependencies_id}', prima di {id}.", "migrations_dependencies_not_satisfied": "Esegui queste migrazioni: '{dependencies_id}', prima di {id}.",
"migrations_cant_reach_migration_file": "Impossibile accedere ai file di migrazione nel path '%s'",
"migrations_already_ran": "Migrazioni già effettuate: {ids}", "migrations_already_ran": "Migrazioni già effettuate: {ids}",
"mailbox_disabled": "E-mail disabilitate per l'utente {user}", "mailbox_disabled": "E-mail disabilitate per l'utente {user}",
"log_user_permission_reset": "Resetta il permesso '{}'", "log_user_permission_reset": "Resetta il permesso '{}'",

View file

@ -136,7 +136,6 @@
"pattern_email_forward": "Het moet een geldig e-mailadres zijn, '+' symbool is toegestaan (ikzelf@mijndomein.nl bijvoorbeeld, of ikzelf+yunohost@mijndomein.nl)", "pattern_email_forward": "Het moet een geldig e-mailadres zijn, '+' symbool is toegestaan (ikzelf@mijndomein.nl bijvoorbeeld, of ikzelf+yunohost@mijndomein.nl)",
"password_too_simple_2": "Het wachtwoord moet minimaal 8 tekens lang zijn en moet cijfers, hoofdletters en kleine letters bevatten", "password_too_simple_2": "Het wachtwoord moet minimaal 8 tekens lang zijn en moet cijfers, hoofdletters en kleine letters bevatten",
"operation_interrupted": "Werd de bewerking handmatig onderbroken?", "operation_interrupted": "Werd de bewerking handmatig onderbroken?",
"packages_upgrade_failed": "Niet alle pakketten konden bijgewerkt worden",
"pattern_backup_archive_name": "Moet een geldige bestandsnaam zijn van maximaal 30 tekens; alleen alfanumerieke tekens en -_. zijn toegestaan", "pattern_backup_archive_name": "Moet een geldige bestandsnaam zijn van maximaal 30 tekens; alleen alfanumerieke tekens en -_. zijn toegestaan",
"pattern_domain": "Moet een geldige domeinnaam zijn (mijneigendomein.nl, bijvoorbeeld)", "pattern_domain": "Moet een geldige domeinnaam zijn (mijneigendomein.nl, bijvoorbeeld)",
"pattern_firstname": "Het moet een geldige voornaam zijn", "pattern_firstname": "Het moet een geldige voornaam zijn",

View file

@ -126,11 +126,9 @@
"global_settings_unknown_setting_from_settings_file": "Clau desconeguda dins los paramètres: {setting_key}, apartada e salvagardada dins /etc/yunohost/settings-unknown.json", "global_settings_unknown_setting_from_settings_file": "Clau desconeguda dins los paramètres: {setting_key}, apartada e salvagardada dins /etc/yunohost/settings-unknown.json",
"main_domain_change_failed": "Modificacion impossibla del domeni màger", "main_domain_change_failed": "Modificacion impossibla del domeni màger",
"main_domain_changed": "Lo domeni màger es estat modificat", "main_domain_changed": "Lo domeni màger es estat modificat",
"migrations_cant_reach_migration_file": "Impossible daccedir als fichièrs de migracion amb lo camin %s",
"migrations_list_conflict_pending_done": "Podètz pas utilizar --previous e --done a lencòp.", "migrations_list_conflict_pending_done": "Podètz pas utilizar --previous e --done a lencòp.",
"migrations_loading_migration": "Cargament de la migracion {id}…", "migrations_loading_migration": "Cargament de la migracion {id}…",
"migrations_no_migrations_to_run": "Cap de migracion de lançar", "migrations_no_migrations_to_run": "Cap de migracion de lançar",
"packages_upgrade_failed": "Actualizacion de totes los paquets impossibla",
"pattern_domain": "Deu èsser un nom de domeni valid (ex: mon-domeni.org)", "pattern_domain": "Deu èsser un nom de domeni valid (ex: mon-domeni.org)",
"pattern_email": "Deu èsser una adreça electronica valida (ex: escais@domeni.org)", "pattern_email": "Deu èsser una adreça electronica valida (ex: escais@domeni.org)",
"pattern_firstname": "Deu èsser un pichon nom valid", "pattern_firstname": "Deu èsser un pichon nom valid",
@ -310,8 +308,6 @@
"dpkg_lock_not_available": "Aquesta comanda pòt pas sexecutar pel moment perque un autre programa sembla utilizar lo varrolh de dpkg (lo gestionari de paquets del sistèma)", "dpkg_lock_not_available": "Aquesta comanda pòt pas sexecutar pel moment perque un autre programa sembla utilizar lo varrolh de dpkg (lo gestionari de paquets del sistèma)",
"log_regen_conf": "Regenerar las configuracions del sistèma « {} »", "log_regen_conf": "Regenerar las configuracions del sistèma « {} »",
"service_reloaded_or_restarted": "Lo servici « {service} » es estat recargat o reaviat", "service_reloaded_or_restarted": "Lo servici « {service} » es estat recargat o reaviat",
"tools_upgrade_regular_packages_failed": "Actualizacion impossibla dels paquets seguents: {packages_list}",
"tools_upgrade_special_packages_completed": "Lactualizacion dels paquets de YunoHost es acabada!\nQuichatz [Entrada] per tornar a la linha de comanda",
"dpkg_is_broken": "Podètz pas far aquò pel moment perque dpkg/APT (los gestionaris de paquets del sistèma) sembla èsser mal configurat… Podètz ensajar de solucionar aquò en vos connectar via SSH e en executar «sudo dpkg --configure -a».", "dpkg_is_broken": "Podètz pas far aquò pel moment perque dpkg/APT (los gestionaris de paquets del sistèma) sembla èsser mal configurat… Podètz ensajar de solucionar aquò en vos connectar via SSH e en executar «sudo dpkg --configure -a».",
"global_settings_setting_service_ssh_allow_deprecated_dsa_hostkey": "Autorizar lutilizacion de la clau òst DSA (obsolèta) per la configuracion del servici SSH", "global_settings_setting_service_ssh_allow_deprecated_dsa_hostkey": "Autorizar lutilizacion de la clau òst DSA (obsolèta) per la configuracion del servici SSH",
"hook_json_return_error": "Fracàs de la lectura del retorn de lscript {path}. Error : {msg}. Contengut brut: {raw_content}", "hook_json_return_error": "Fracàs de la lectura del retorn de lscript {path}. Error : {msg}. Contengut brut: {raw_content}",
@ -330,7 +326,6 @@
"regenconf_dry_pending_applying": "Verificacion de la configuracion que seriá estada aplicada a la categoria « {category} »…", "regenconf_dry_pending_applying": "Verificacion de la configuracion que seriá estada aplicada a la categoria « {category} »…",
"regenconf_failed": "Regeneracion impossibla de la configuracion per la(s) categoria(s) : {categories}", "regenconf_failed": "Regeneracion impossibla de la configuracion per la(s) categoria(s) : {categories}",
"regenconf_pending_applying": "Aplicacion de la configuracion en espèra per la categoria « {category} »…", "regenconf_pending_applying": "Aplicacion de la configuracion en espèra per la categoria « {category} »…",
"tools_upgrade_cant_hold_critical_packages": "Manteniment impossible dels paquets critiques…",
"global_settings_setting_security_nginx_compatibility": "Solucion de compromés entre compatibilitat e seguretat pel servidor web NGINX Afècta los criptografs (e dautres aspèctes ligats amb la seguretat)", "global_settings_setting_security_nginx_compatibility": "Solucion de compromés entre compatibilitat e seguretat pel servidor web NGINX Afècta los criptografs (e dautres aspèctes ligats amb la seguretat)",
"global_settings_setting_security_ssh_compatibility": "Solucion de compromés entre compatibilitat e seguretat pel servidor SSH. Afècta los criptografs (e dautres aspèctes ligats amb la seguretat)", "global_settings_setting_security_ssh_compatibility": "Solucion de compromés entre compatibilitat e seguretat pel servidor SSH. Afècta los criptografs (e dautres aspèctes ligats amb la seguretat)",
"global_settings_setting_security_postfix_compatibility": "Solucion de compromés entre compatibilitat e seguretat pel servidor Postfix. Afècta los criptografs (e dautres aspèctes ligats amb la seguretat)", "global_settings_setting_security_postfix_compatibility": "Solucion de compromés entre compatibilitat e seguretat pel servidor Postfix. Afècta los criptografs (e dautres aspèctes ligats amb la seguretat)",
@ -339,10 +334,6 @@
"service_reload_or_restart_failed": "Impossible de recargar o reaviar lo servici « {service} »\n\nJornal daudit recent: {logs}", "service_reload_or_restart_failed": "Impossible de recargar o reaviar lo servici « {service} »\n\nJornal daudit recent: {logs}",
"regenconf_file_kept_back": "Sespèra que lo fichièr de configuracion « {conf} » siá suprimit per regen-conf (categoria {category} mas es estat mantengut.", "regenconf_file_kept_back": "Sespèra que lo fichièr de configuracion « {conf} » siá suprimit per regen-conf (categoria {category} mas es estat mantengut.",
"this_action_broke_dpkg": "Aquesta accion a copat dpkg/apt (los gestionaris de paquets del sistèma)… Podètz ensajar de resòlver aqueste problèma en vos connectant amb SSH e executant «sudo dpkg --configure -a».", "this_action_broke_dpkg": "Aquesta accion a copat dpkg/apt (los gestionaris de paquets del sistèma)… Podètz ensajar de resòlver aqueste problèma en vos connectant amb SSH e executant «sudo dpkg --configure -a».",
"tools_upgrade_cant_unhold_critical_packages": "Se pòt pas quitar de manténer los paquets critics…",
"tools_upgrade_regular_packages": "Actualizacion dels paquets «normals» (pas ligats a YunoHost)…",
"tools_upgrade_special_packages": "Actualizacion dels paquets «especials» (ligats a YunoHost)…",
"tools_upgrade_special_packages_explanation": "Aquesta accion sacabarà mas lactualizacion especiala actuala contunharà en rèire-plan. Comencetz pas cap dautra accion sul servidor dins las ~ 10 minutas que venon (depend de la velocitat de la maquina). Un còp acabat, benlèu que vos calrà vos tornar connectar a linterfàcia dadministracion. Los jornals daudit de lactualizacion seràn disponibles a Aisinas > Jornals daudit (dins linterfàcia dadministracion) o amb «yunohost log list» (en linha de comanda).",
"update_apt_cache_failed": "I a agut derrors en actualizar la memòria cache dAPT (lo gestionari de paquets de Debian). Aquí avètz las linhas de sources.list que pòdon vos ajudar a identificar las linhas problematicas: \n{sourceslist}", "update_apt_cache_failed": "I a agut derrors en actualizar la memòria cache dAPT (lo gestionari de paquets de Debian). Aquí avètz las linhas de sources.list que pòdon vos ajudar a identificar las linhas problematicas: \n{sourceslist}",
"update_apt_cache_warning": "I a agut derrors en actualizar la memòria cache dAPT (lo gestionari de paquets de Debian). Aquí avètz las linhas de sources.list que pòdon vos ajudar a identificar las linhas problematicas: \n{sourceslist}", "update_apt_cache_warning": "I a agut derrors en actualizar la memòria cache dAPT (lo gestionari de paquets de Debian). Aquí avètz las linhas de sources.list que pòdon vos ajudar a identificar las linhas problematicas: \n{sourceslist}",
"backup_permission": "Autorizacion de salvagarda per laplicacion {app}", "backup_permission": "Autorizacion de salvagarda per laplicacion {app}",

View file

@ -48,7 +48,6 @@
"mail_forward_remove_failed": "Não foi possível remover o reencaminhamento de correio '{mail}'", "mail_forward_remove_failed": "Não foi possível remover o reencaminhamento de correio '{mail}'",
"main_domain_change_failed": "Incapaz alterar o domínio raiz", "main_domain_change_failed": "Incapaz alterar o domínio raiz",
"main_domain_changed": "Domínio raiz alterado com êxito", "main_domain_changed": "Domínio raiz alterado com êxito",
"packages_upgrade_failed": "Não foi possível atualizar todos os pacotes",
"pattern_domain": "Deve ser um nome de domínio válido (p.e. meu-dominio.org)", "pattern_domain": "Deve ser um nome de domínio válido (p.e. meu-dominio.org)",
"pattern_email": "Deve ser um endereço de correio válido (p.e. alguem@dominio.org)", "pattern_email": "Deve ser um endereço de correio válido (p.e. alguem@dominio.org)",
"pattern_firstname": "Deve ser um primeiro nome válido", "pattern_firstname": "Deve ser um primeiro nome válido",

View file

@ -137,7 +137,6 @@
"password_too_simple_2": "Пароль має складатися не менше ніж з 8 символів і містити цифри, великі та малі символи", "password_too_simple_2": "Пароль має складатися не менше ніж з 8 символів і містити цифри, великі та малі символи",
"password_too_simple_1": "Пароль має складатися не менше ніж з 8 символів", "password_too_simple_1": "Пароль має складатися не менше ніж з 8 символів",
"password_listed": "Цей пароль входить в число найбільш часто використовуваних паролів у світі. Будь ласка, виберіть щось неповторюваніше.", "password_listed": "Цей пароль входить в число найбільш часто використовуваних паролів у світі. Будь ласка, виберіть щось неповторюваніше.",
"packages_upgrade_failed": "Не вдалося оновити всі пакети",
"operation_interrupted": "Операція була вручну перервана?", "operation_interrupted": "Операція була вручну перервана?",
"invalid_number": "Має бути числом", "invalid_number": "Має бути числом",
"not_enough_disk_space": "Недостатньо вільного місця на '{path}'", "not_enough_disk_space": "Недостатньо вільного місця на '{path}'",
@ -157,7 +156,6 @@
"migrations_exclusive_options": "'--auto', '--skip', і '--force-rerun' є взаємовиключними опціями.", "migrations_exclusive_options": "'--auto', '--skip', і '--force-rerun' є взаємовиключними опціями.",
"migrations_failed_to_load_migration": "Не вдалося завантажити міграцію {id}: {error}", "migrations_failed_to_load_migration": "Не вдалося завантажити міграцію {id}: {error}",
"migrations_dependencies_not_satisfied": "Запустіть ці міграції: '{dependencies_id}', перед міграцією {id}.", "migrations_dependencies_not_satisfied": "Запустіть ці міграції: '{dependencies_id}', перед міграцією {id}.",
"migrations_cant_reach_migration_file": "Не вдалося отримати доступ до файлів міграцій за шляхом '%s'",
"migrations_already_ran": "Наступні міграції вже виконано: {ids}", "migrations_already_ran": "Наступні міграції вже виконано: {ids}",
"migration_ldap_rollback_success": "Система відкотилася.", "migration_ldap_rollback_success": "Система відкотилася.",
"migration_ldap_migration_failed_trying_to_rollback": "Не вдалося виконати міграцію... Пробуємо відкотити систему.", "migration_ldap_migration_failed_trying_to_rollback": "Не вдалося виконати міграцію... Пробуємо відкотити систему.",
@ -404,13 +402,6 @@
"unknown_main_domain_path": "Невідомий домен або шлях для '{app}'. Вам необхідно вказати домен і шлях, щоб мати можливість вказати URL для дозволу.", "unknown_main_domain_path": "Невідомий домен або шлях для '{app}'. Вам необхідно вказати домен і шлях, щоб мати можливість вказати URL для дозволу.",
"unexpected_error": "Щось пішло не так: {error}", "unexpected_error": "Щось пішло не так: {error}",
"unbackup_app": "{app} НЕ буде збережено", "unbackup_app": "{app} НЕ буде збережено",
"tools_upgrade_special_packages_completed": "Оновлення пакета YunoHost завершено.\nНатисніть [Enter] для повернення до командного рядка",
"tools_upgrade_special_packages_explanation": "Спеціальне оновлення триватиме у тлі. Будь ласка, не запускайте ніяких інших дій на вашому сервері протягом наступних ~ 10 хвилин (в залежності від швидкості обладнання). Після цього вам, можливо, доведеться заново увійти в вебадміністрації. Журнал оновлення буде доступний в Засоби → Журнал (в вебадміністрації) або за допомогою 'yunohost log list' (з командного рядка).",
"tools_upgrade_special_packages": "Тепер оновлюємо 'спеціальні' (пов'язані з yunohost) пакети…",
"tools_upgrade_regular_packages_failed": "Не вдалося оновити пакети: {packages_list}",
"tools_upgrade_regular_packages": "Тепер оновлюємо 'звичайні' (не пов'язані з yunohost) пакети…",
"tools_upgrade_cant_unhold_critical_packages": "Не вдалося розтримати критичні пакети…",
"tools_upgrade_cant_hold_critical_packages": "Не вдалося утримати критичні пакети…",
"this_action_broke_dpkg": "Ця дія порушила dpkg/APT (системні менеджери пакетів)... Ви можете спробувати вирішити цю проблему, під'єднавшись по SSH і запустивши `sudo apt install --fix-broken` та/або `sudo dpkg --configure -a`.", "this_action_broke_dpkg": "Ця дія порушила dpkg/APT (системні менеджери пакетів)... Ви можете спробувати вирішити цю проблему, під'єднавшись по SSH і запустивши `sudo apt install --fix-broken` та/або `sudo dpkg --configure -a`.",
"system_username_exists": "Ім'я користувача вже існує в списку користувачів системи", "system_username_exists": "Ім'я користувача вже існує в списку користувачів системи",
"system_upgraded": "Систему оновлено", "system_upgraded": "Систему оновлено",

View file

@ -237,9 +237,6 @@
"service_enable_failed": "无法使服务 '{service}'在启动时自动启动。\n\n最近的服务日志:{logs}", "service_enable_failed": "无法使服务 '{service}'在启动时自动启动。\n\n最近的服务日志:{logs}",
"service_disabled": "系统启动时,服务 '{service}' 将不再启动。", "service_disabled": "系统启动时,服务 '{service}' 将不再启动。",
"service_disable_failed": "服务'{service}'在启动时无法启动。\n\n最近的服务日志:{logs}", "service_disable_failed": "服务'{service}'在启动时无法启动。\n\n最近的服务日志:{logs}",
"tools_upgrade_regular_packages": "现在正在升级 'regular' 与yunohost无关的软件包…",
"tools_upgrade_cant_unhold_critical_packages": "无法解压关键软件包…",
"tools_upgrade_cant_hold_critical_packages": "无法保存重要软件包…",
"this_action_broke_dpkg": "此操作破坏了dpkg / APT系统软件包管理器...您可以尝试通过SSH连接并运行`sudo apt install --fix-broken`和/或`sudo dpkg --configure -a`来解决此问题。", "this_action_broke_dpkg": "此操作破坏了dpkg / APT系统软件包管理器...您可以尝试通过SSH连接并运行`sudo apt install --fix-broken`和/或`sudo dpkg --configure -a`来解决此问题。",
"system_username_exists": "用户名已存在于系统用户列表中", "system_username_exists": "用户名已存在于系统用户列表中",
"system_upgraded": "系统升级", "system_upgraded": "系统升级",
@ -261,10 +258,6 @@
"unknown_main_domain_path": "'{app}'的域或路径未知。您需要指定一个域和一个路径以便能够指定用于许可的URL。", "unknown_main_domain_path": "'{app}'的域或路径未知。您需要指定一个域和一个路径以便能够指定用于许可的URL。",
"unexpected_error": "出乎意料的错误: {error}", "unexpected_error": "出乎意料的错误: {error}",
"unbackup_app": "{app} 将不会保存", "unbackup_app": "{app} 将不会保存",
"tools_upgrade_special_packages_completed": "YunoHost软件包升级完成。\n按[Enter]返回命令行",
"tools_upgrade_special_packages_explanation": "特殊升级将在后台继续。请在接下来的10分钟内取决于硬件速度在服务器上不要执行任何其他操作。此后您可能必须重新登录Webadmin。升级日志将在“工具”→“日志”在Webadmin中或使用'yunohost log list'(从命令行)中可用。",
"tools_upgrade_special_packages": "现在正在升级'special'与yunohost相关的程序包…",
"tools_upgrade_regular_packages_failed": "无法升级软件包: {packages_list}",
"yunohost_installing": "正在安装YunoHost ...", "yunohost_installing": "正在安装YunoHost ...",
"yunohost_configured": "现在已配置YunoHost", "yunohost_configured": "现在已配置YunoHost",
"yunohost_already_installed": "YunoHost已经安装", "yunohost_already_installed": "YunoHost已经安装",
@ -543,7 +536,6 @@
"password_too_simple_3": "密码长度至少为8个字符并且包含数字大写小写和特殊字符", "password_too_simple_3": "密码长度至少为8个字符并且包含数字大写小写和特殊字符",
"password_too_simple_2": "密码长度至少为8个字符并且包含数字大写和小写字符", "password_too_simple_2": "密码长度至少为8个字符并且包含数字大写和小写字符",
"password_listed": "该密码是世界上最常用的密码之一。 请选择一些更独特的东西。", "password_listed": "该密码是世界上最常用的密码之一。 请选择一些更独特的东西。",
"packages_upgrade_failed": "无法升级所有软件包",
"invalid_number": "必须是数字", "invalid_number": "必须是数字",
"not_enough_disk_space": "'{path}'上的可用空间不足", "not_enough_disk_space": "'{path}'上的可用空间不足",
"migrations_to_be_ran_manually": "迁移{id}必须手动运行。请转到webadmin页面上的工具→迁移或运行`yunohost tools migrations run`。", "migrations_to_be_ran_manually": "迁移{id}必须手动运行。请转到webadmin页面上的工具→迁移或运行`yunohost tools migrations run`。",
@ -562,7 +554,6 @@
"migrations_exclusive_options": "'--auto', '--skip',和'--force-rerun'是互斥的选项。", "migrations_exclusive_options": "'--auto', '--skip',和'--force-rerun'是互斥的选项。",
"migrations_failed_to_load_migration": "无法加载迁移{id}: {error}", "migrations_failed_to_load_migration": "无法加载迁移{id}: {error}",
"migrations_dependencies_not_satisfied": "在迁移{id}之前运行以下迁移: '{dependencies_id}'。", "migrations_dependencies_not_satisfied": "在迁移{id}之前运行以下迁移: '{dependencies_id}'。",
"migrations_cant_reach_migration_file": "无法访问路径'%s'处的迁移文件",
"migrations_already_ran": "这些迁移已经完成: {ids}", "migrations_already_ran": "这些迁移已经完成: {ids}",
"migration_ldap_rollback_success": "系统回滚。", "migration_ldap_rollback_success": "系统回滚。",
"migration_ldap_migration_failed_trying_to_rollback": "无法迁移...试图回滚系统。", "migration_ldap_migration_failed_trying_to_rollback": "无法迁移...试图回滚系统。",

View file

@ -60,18 +60,20 @@ def autofix_i18n_placeholders():
k[0] for k in re.findall(r"{(\w+)(:\w)?}", this_locale[key]) k[0] for k in re.findall(r"{(\w+)(:\w)?}", this_locale[key])
] ]
if any(k not in subkeys_in_ref for k in subkeys_in_this_locale): if any(k not in subkeys_in_ref for k in subkeys_in_this_locale):
raise Exception("""\n raise Exception(
"""\n
========================== ==========================
Format inconsistency for string {key} in {locale_file}:" Format inconsistency for string {key} in {locale_file}:"
en.json -> {string} en.json -> {string}
{locale_file} -> {translated_string} {locale_file} -> {translated_string}
Please fix it manually ! Please fix it manually !
""".format( """.format(
key=key, key=key,
string=string.encode("utf-8"), string=string.encode("utf-8"),
locale_file=locale_file, locale_file=locale_file,
translated_string=this_locale[key].encode("utf-8"), translated_string=this_locale[key].encode("utf-8"),
)) )
)
if fixed_stuff: if fixed_stuff:
json.dump( json.dump(
@ -86,7 +88,6 @@ Please fix it manually !
def autofix_orthotypography_and_standardized_words(): def autofix_orthotypography_and_standardized_words():
def reformat(lang, transformations): def reformat(lang, transformations):
locale = open(f"{LOCALE_FOLDER}{lang}.json").read() locale = open(f"{LOCALE_FOLDER}{lang}.json").read()

View file

@ -28,7 +28,7 @@ def cli(debug, quiet, output_as, timeout, args, parser):
locales_dir="/usr/share/yunohost/locales/", locales_dir="/usr/share/yunohost/locales/",
output_as=output_as, output_as=output_as,
timeout=timeout, timeout=timeout,
top_parser=parser top_parser=parser,
) )
sys.exit(ret) sys.exit(ret)

View file

@ -1425,7 +1425,7 @@ def app_action_run(operation_logger, app, action, args=None):
actions = {x["id"]: x for x in actions} actions = {x["id"]: x for x in actions}
if action not in actions: if action not in actions:
available_actions = ", ".join(actions.keys()), available_actions = (", ".join(actions.keys()),)
raise YunohostValidationError( raise YunohostValidationError(
f"action '{action}' not available for app '{app}', available actions are: {available_actions}", f"action '{action}' not available for app '{app}', available actions are: {available_actions}",
raw_msg=True, raw_msg=True,
@ -2416,10 +2416,15 @@ def unstable_apps():
for infos in app_list(full=True)["apps"]: for infos in app_list(full=True)["apps"]:
if not infos.get("from_catalog") or infos.get("from_catalog").get("state") in [ if (
"inprogress", not infos.get("from_catalog")
"notworking", or infos.get("from_catalog").get("state")
] or infos["id"] in deprecated_apps: in [
"inprogress",
"notworking",
]
or infos["id"] in deprecated_apps
):
output.append(infos["id"]) output.append(infos["id"])
return output return output

View file

@ -103,7 +103,9 @@ def _initialize_apps_catalog_system():
) )
write_to_yaml(APPS_CATALOG_CONF, default_apps_catalog_list) write_to_yaml(APPS_CATALOG_CONF, default_apps_catalog_list)
except Exception as e: except Exception as e:
raise YunohostError(f"Could not initialize the apps catalog system... : {e}", raw_msg=True) raise YunohostError(
f"Could not initialize the apps catalog system... : {e}", raw_msg=True
)
logger.success(m18n.n("apps_catalog_init_success")) logger.success(m18n.n("apps_catalog_init_success"))
@ -119,7 +121,9 @@ def _read_apps_catalog_list():
# by returning [] if list_ is None # by returning [] if list_ is None
return list_ if list_ else [] return list_ if list_ else []
except Exception as e: except Exception as e:
raise YunohostError(f"Could not read the apps_catalog list ... : {e}", raw_msg=True) raise YunohostError(
f"Could not read the apps_catalog list ... : {e}", raw_msg=True
)
def _actual_apps_catalog_api_url(base_url): def _actual_apps_catalog_api_url(base_url):
@ -172,7 +176,10 @@ def _update_apps_catalog():
try: try:
write_to_json(cache_file, apps_catalog_content) write_to_json(cache_file, apps_catalog_content)
except Exception as e: except Exception as e:
raise YunohostError(f"Unable to write cache data for {apps_catalog_id} apps_catalog : {e}", raw_msg=True) raise YunohostError(
f"Unable to write cache data for {apps_catalog_id} apps_catalog : {e}",
raw_msg=True,
)
logger.success(m18n.n("apps_catalog_update_success")) logger.success(m18n.n("apps_catalog_update_success"))
@ -220,7 +227,9 @@ def _load_apps_catalog():
# in which case we keep only the first one found) # in which case we keep only the first one found)
if app in merged_catalog["apps"]: if app in merged_catalog["apps"]:
other_catalog = merged_catalog["apps"][app]["repository"] other_catalog = merged_catalog["apps"][app]["repository"]
logger.warning(f"Duplicate app {app} found between apps catalog {apps_catalog_id} and {other_catalog}") logger.warning(
f"Duplicate app {app} found between apps catalog {apps_catalog_id} and {other_catalog}"
)
continue continue
info["repository"] = apps_catalog_id info["repository"] = apps_catalog_id

View file

@ -866,7 +866,7 @@ class RestoreManager:
from_version = self.info.get("from_yunohost_version", "") from_version = self.info.get("from_yunohost_version", "")
# Remove any '~foobar' in the version ... c.f ~alpha, ~beta version during # Remove any '~foobar' in the version ... c.f ~alpha, ~beta version during
# early dev for next debian version # early dev for next debian version
from_version = re.sub(r'~\w+', '', from_version) from_version = re.sub(r"~\w+", "", from_version)
if not from_version or version.parse(from_version) < version.parse("4.2.0"): if not from_version or version.parse(from_version) < version.parse("4.2.0"):
raise YunohostValidationError("restore_backup_too_old") raise YunohostValidationError("restore_backup_too_old")
@ -2403,10 +2403,9 @@ def backup_list(with_info=False, human_readable=False):
logger.warning(str(e)) logger.warning(str(e))
except Exception: except Exception:
import traceback import traceback
trace_ = "\n" + traceback.format_exc() trace_ = "\n" + traceback.format_exc()
logger.warning( logger.warning(f"Could not check infos for archive {archive}: {trace_}")
f"Could not check infos for archive {archive}: {trace_}"
)
archives = d archives = d

View file

@ -415,9 +415,7 @@ def certificate_renew(
traceback.print_exc(file=stack) traceback.print_exc(file=stack)
msg = f"Certificate renewing for {domain} failed!" msg = f"Certificate renewing for {domain} failed!"
if no_checks: if no_checks:
msg += ( msg += f"\nPlease consider checking the 'DNS records' (basic) and 'Web' categories of the diagnosis to check for possible issues that may prevent installing a Let's Encrypt certificate on domain {domain}."
f"\nPlease consider checking the 'DNS records' (basic) and 'Web' categories of the diagnosis to check for possible issues that may prevent installing a Let's Encrypt certificate on domain {domain}."
)
logger.error(msg) logger.error(msg)
operation_logger.error(msg) operation_logger.error(msg)
logger.error(stack.getvalue()) logger.error(stack.getvalue())
@ -788,7 +786,10 @@ def _enable_certificate(domain, new_cert_folder):
for service in ("postfix", "dovecot", "metronome"): for service in ("postfix", "dovecot", "metronome"):
# Ugly trick to not restart metronome if it's not installed # Ugly trick to not restart metronome if it's not installed
if service == "metronome" and os.system("dpkg --list | grep -q 'ii *metronome'") != 0: if (
service == "metronome"
and os.system("dpkg --list | grep -q 'ii *metronome'") != 0
):
continue continue
_run_service_command("restart", service) _run_service_command("restart", service)

View file

@ -155,9 +155,7 @@ class MyDiagnoser(Diagnoser):
return None return None
# We use the resolver file as a list of well-known, trustable (ie not google ;)) IPs that we can ping # We use the resolver file as a list of well-known, trustable (ie not google ;)) IPs that we can ping
resolver_file = ( resolver_file = "/usr/share/yunohost/conf/dnsmasq/plain/resolv.dnsmasq.conf"
"/usr/share/yunohost/conf/dnsmasq/plain/resolv.dnsmasq.conf"
)
resolvers = [ resolvers = [
r.split(" ")[1] r.split(" ")[1]
for r in read_file(resolver_file).split("\n") for r in read_file(resolver_file).split("\n")

View file

@ -419,10 +419,7 @@ class Diagnoser:
def diagnose(self, force=False): def diagnose(self, force=False):
if ( if not force and self.cached_time_ago() < self.cache_duration:
not force
and self.cached_time_ago() < self.cache_duration
):
logger.debug(f"Cache still valid : {self.cache_file}") logger.debug(f"Cache still valid : {self.cache_file}")
logger.info( logger.info(
m18n.n("diagnosis_cache_still_valid", category=self.description) m18n.n("diagnosis_cache_still_valid", category=self.description)
@ -659,7 +656,9 @@ class Diagnoser:
def _list_diagnosis_categories(): def _list_diagnosis_categories():
paths = glob.glob(os.path.dirname(__file__) + "/diagnosers/??-*.py") paths = glob.glob(os.path.dirname(__file__) + "/diagnosers/??-*.py")
names = sorted([os.path.basename(path)[: -len(".py")].split("-")[-1] for path in paths]) names = sorted(
[os.path.basename(path)[: -len(".py")].split("-")[-1] for path in paths]
)
return names return names
@ -671,7 +670,10 @@ def _load_diagnoser(diagnoser_name):
paths = glob.glob(os.path.dirname(__file__) + f"/diagnosers/??-{diagnoser_name}.py") paths = glob.glob(os.path.dirname(__file__) + f"/diagnosers/??-{diagnoser_name}.py")
if len(paths) != 1: if len(paths) != 1:
raise YunohostError(f"Uhoh, found several matches (or none?) for diagnoser {diagnoser_name} : {paths}", raw_msg=True) raise YunohostError(
f"Uhoh, found several matches (or none?) for diagnoser {diagnoser_name} : {paths}",
raw_msg=True,
)
module_id = os.path.basename(paths[0][: -len(".py")]) module_id = os.path.basename(paths[0][: -len(".py")])
@ -686,7 +688,9 @@ def _load_diagnoser(diagnoser_name):
traceback.print_exc() traceback.print_exc()
raise YunohostError(f"Failed to load diagnoser {diagnoser_name} : {e}", raw_msg=True) raise YunohostError(
f"Failed to load diagnoser {diagnoser_name} : {e}", raw_msg=True
)
def _email_diagnosis_issues(): def _email_diagnosis_issues():

View file

@ -68,9 +68,7 @@ def domain_list(exclude_subdomains=False):
ldap = _get_ldap_interface() ldap = _get_ldap_interface()
result = [ result = [
entry["virtualdomain"][0] entry["virtualdomain"][0]
for entry in ldap.search( for entry in ldap.search("ou=domains", "virtualdomain=*", ["virtualdomain"])
"ou=domains", "virtualdomain=*", ["virtualdomain"]
)
] ]
result_list = [] result_list = []

View file

@ -190,7 +190,6 @@ def dyndns_update(
import dns.tsigkeyring import dns.tsigkeyring
import dns.update import dns.update
# If domain is not given, try to guess it from keys available... # If domain is not given, try to guess it from keys available...
key = None key = None
if domain is None: if domain is None:
@ -227,7 +226,7 @@ def dyndns_update(
with open(key) as f: with open(key) as f:
key = f.readline().strip().split(" ", 6)[-1] key = f.readline().strip().split(" ", 6)[-1]
keyring = dns.tsigkeyring.from_text({f'{domain}.': key}) keyring = dns.tsigkeyring.from_text({f"{domain}.": key})
# Python's dns.update is similar to the old nsupdate cli tool # Python's dns.update is similar to the old nsupdate cli tool
update = dns.update.Update(zone, keyring=keyring, keyalgorithm=dns.tsig.HMAC_SHA512) update = dns.update.Update(zone, keyring=keyring, keyalgorithm=dns.tsig.HMAC_SHA512)
@ -300,7 +299,9 @@ def dyndns_update(
# [{"name": "...", "ttl": "...", "type": "...", "value": "..."}] # [{"name": "...", "ttl": "...", "type": "...", "value": "..."}]
for records in dns_conf.values(): for records in dns_conf.values():
for record in records: for record in records:
name = f"{record['name']}.{domain}." if record['name'] != "@" else f"{domain}." name = (
f"{record['name']}.{domain}." if record["name"] != "@" else f"{domain}."
)
update.delete(name) update.delete(name)
# Add the new records for all domain/subdomains # Add the new records for all domain/subdomains
@ -313,9 +314,11 @@ def dyndns_update(
if record["value"] == "@": if record["value"] == "@":
record["value"] = domain record["value"] = domain
record["value"] = record["value"].replace(";", r"\;") record["value"] = record["value"].replace(";", r"\;")
name = f"{record['name']}.{domain}." if record['name'] != "@" else f"{domain}." name = (
f"{record['name']}.{domain}." if record["name"] != "@" else f"{domain}."
)
update.add(name, record['ttl'], record['type'], record['value']) update.add(name, record["ttl"], record["type"], record["value"])
logger.debug("Now pushing new conf to DynDNS host...") logger.debug("Now pushing new conf to DynDNS host...")
logger.debug(update) logger.debug(update)
@ -347,9 +350,7 @@ def _guess_current_dyndns_domain():
dynette...) dynette...)
""" """
DYNDNS_KEY_REGEX = re.compile( DYNDNS_KEY_REGEX = re.compile(r".*/K(?P<domain>[^\s\+]+)\.\+165.+\.key$")
r".*/K(?P<domain>[^\s\+]+)\.\+165.+\.key$"
)
# Retrieve the first registered domain # Retrieve the first registered domain
paths = list(glob.iglob("/etc/yunohost/dyndns/K*.key")) paths = list(glob.iglob("/etc/yunohost/dyndns/K*.key"))

View file

@ -331,8 +331,8 @@ class MyMigration(Migration):
# FIXME: update this message with updated topic link once we release the migration as stable # FIXME: update this message with updated topic link once we release the migration as stable
message = ( message = (
"N.B.: **THIS MIGRATION IS STILL IN BETA-STAGE** ! If your server hosts critical services and if you are not too confident with debugging possible issues, we recommend you to wait a little bit more while we gather more feedback and polish things up. If on the other hand you are relatively confident with debugging small issues that may arise, you are encouraged to run this migration ;)! You can read and share feedbacks on this forum thread: https://forum.yunohost.org/t/18531\n\n" "N.B.: **THIS MIGRATION IS STILL IN BETA-STAGE** ! If your server hosts critical services and if you are not too confident with debugging possible issues, we recommend you to wait a little bit more while we gather more feedback and polish things up. If on the other hand you are relatively confident with debugging small issues that may arise, you are encouraged to run this migration ;)! You can read and share feedbacks on this forum thread: https://forum.yunohost.org/t/18531\n\n"
+ message + message
) )
# message = ( # message = (
# "N.B.: This migration has been tested by the community over the last few months but has only been declared stable recently. If your server hosts critical services and if you are not too confident with debugging possible issues, we recommend you to wait a little bit more while we gather more feedback and polish things up. If on the other hand you are relatively confident with debugging small issues that may arise, you are encouraged to run this migration ;)! You can read about remaining known issues and feedback from the community here: https://forum.yunohost.org/t/12195\n\n" # "N.B.: This migration has been tested by the community over the last few months but has only been declared stable recently. If your server hosts critical services and if you are not too confident with debugging possible issues, we recommend you to wait a little bit more while we gather more feedback and polish things up. If on the other hand you are relatively confident with debugging small issues that may arise, you are encouraged to run this migration ;)! You can read about remaining known issues and feedback from the community here: https://forum.yunohost.org/t/12195\n\n"

View file

@ -406,9 +406,7 @@ def permission_create(
permission = permission + ".main" permission = permission + ".main"
# Validate uniqueness of permission in LDAP # Validate uniqueness of permission in LDAP
if ldap.get_conflict( if ldap.get_conflict({"cn": permission}, base_dn="ou=permission"):
{"cn": permission}, base_dn="ou=permission"
):
raise YunohostValidationError("permission_already_exist", permission=permission) raise YunohostValidationError("permission_already_exist", permission=permission)
# Get random GID # Get random GID
@ -678,8 +676,7 @@ def permission_sync_to_user():
new_inherited_perms = { new_inherited_perms = {
"inheritPermission": [ "inheritPermission": [
f"uid={u},ou=users,dc=yunohost,dc=org" f"uid={u},ou=users,dc=yunohost,dc=org" for u in should_be_allowed_users
for u in should_be_allowed_users
], ],
"memberUid": should_be_allowed_users, "memberUid": should_be_allowed_users,
} }

View file

@ -505,9 +505,7 @@ def _calculate_hash(path):
return hasher.hexdigest() return hasher.hexdigest()
except IOError as e: except IOError as e:
logger.warning( logger.warning(f"Error while calculating file '{path}' hash: {e}", exc_info=1)
f"Error while calculating file '{path}' hash: {e}", exc_info=1
)
return None return None

View file

@ -695,19 +695,25 @@ def _get_services():
if "log" not in services["ynh-vpnclient"]: if "log" not in services["ynh-vpnclient"]:
services["ynh-vpnclient"]["log"] = ["/var/log/ynh-vpnclient.log"] services["ynh-vpnclient"]["log"] = ["/var/log/ynh-vpnclient.log"]
services_with_package_condition = [name for name, infos in services.items() if infos.get("ignore_if_package_is_not_installed")] services_with_package_condition = [
name
for name, infos in services.items()
if infos.get("ignore_if_package_is_not_installed")
]
for name in services_with_package_condition: for name in services_with_package_condition:
package = services[name]["ignore_if_package_is_not_installed"] package = services[name]["ignore_if_package_is_not_installed"]
if os.system(f"dpkg --list | grep -q 'ii *{package}'") != 0: if os.system(f"dpkg --list | grep -q 'ii *{package}'") != 0:
del services[name] del services[name]
php_fpm_versions = check_output(r"dpkg --list | grep -P 'ii php\d.\d-fpm' | awk '{print $2}' | grep -o -P '\d.\d' || true") php_fpm_versions = check_output(
php_fpm_versions = [v for v in php_fpm_versions.split('\n') if v.strip()] r"dpkg --list | grep -P 'ii php\d.\d-fpm' | awk '{print $2}' | grep -o -P '\d.\d' || true"
)
php_fpm_versions = [v for v in php_fpm_versions.split("\n") if v.strip()]
for version in php_fpm_versions: for version in php_fpm_versions:
services[f"php{version}-fpm"] = { services[f"php{version}-fpm"] = {
"log": f"/var/log/php{version}-fpm.log", "log": f"/var/log/php{version}-fpm.log",
"test_conf": f"php-fpm{version} --test", # ofc the service is phpx.y-fpm but the program is php-fpmx.y because why not ... "test_conf": f"php-fpm{version} --test", # ofc the service is phpx.y-fpm but the program is php-fpmx.y because why not ...
"category": "web" "category": "web",
} }
# Remove legacy /var/log/daemon.log and /var/log/syslog from log entries # Remove legacy /var/log/daemon.log and /var/log/syslog from log entries
@ -833,7 +839,6 @@ def _get_journalctl_logs(service, number="all"):
) )
except Exception: except Exception:
import traceback import traceback
trace_ = traceback.format_exc() trace_ = traceback.format_exc()
return ( return f"error while get services logs from journalctl:\n{trace_}"
f"error while get services logs from journalctl:\n{trace_}"
)

View file

@ -341,9 +341,7 @@ def _get_settings():
_save_settings(unknown_settings, location=unknown_settings_path) _save_settings(unknown_settings, location=unknown_settings_path)
_save_settings(settings) _save_settings(settings)
except Exception as e: except Exception as e:
logger.warning( logger.warning(f"Failed to save unknown settings (because {e}), aborting.")
f"Failed to save unknown settings (because {e}), aborting."
)
return settings return settings
@ -373,12 +371,12 @@ post_change_hooks = {}
def post_change_hook(setting_name): def post_change_hook(setting_name):
def decorator(func): def decorator(func):
assert setting_name in DEFAULTS.keys(), ( assert (
f"The setting {setting_name} does not exists" setting_name in DEFAULTS.keys()
) ), f"The setting {setting_name} does not exists"
assert setting_name not in post_change_hooks, ( assert (
f"You can only register one post change hook per setting (in particular for {setting_name})" setting_name not in post_change_hooks
) ), f"You can only register one post change hook per setting (in particular for {setting_name})"
post_change_hooks[setting_name] = func post_change_hooks[setting_name] = func
return func return func

View file

@ -536,9 +536,7 @@ def tools_upgrade(operation_logger, target=None):
# Restart the API after 10 sec (at now doesn't support sub-minute times...) # Restart the API after 10 sec (at now doesn't support sub-minute times...)
# We do this so that the API / webadmin still gets the proper HTTP response # We do this so that the API / webadmin still gets the proper HTTP response
# It's then up to the webadmin to implement a proper UX process to wait 10 sec and then auto-fresh the webadmin # It's then up to the webadmin to implement a proper UX process to wait 10 sec and then auto-fresh the webadmin
cmd = ( cmd = 'at -M now >/dev/null 2>&1 <<< "sleep 10; systemctl restart yunohost-api"'
"at -M now >/dev/null 2>&1 <<< \"sleep 10; systemctl restart yunohost-api\""
)
# For some reason subprocess doesn't like the redirections so we have to use bash -c explicity... # For some reason subprocess doesn't like the redirections so we have to use bash -c explicity...
subprocess.check_call(["bash", "-c", cmd]) subprocess.check_call(["bash", "-c", cmd])
@ -894,9 +892,9 @@ def _get_migration_by_name(migration_name):
if re.match(r"^\d+_%s\.py$" % migration_name, x) if re.match(r"^\d+_%s\.py$" % migration_name, x)
] ]
assert len(migrations_found) == 1, ( assert (
f"Unable to find migration with name {migration_name}" len(migrations_found) == 1
) ), f"Unable to find migration with name {migration_name}"
return _load_migration(migrations_found[0]) return _load_migration(migrations_found[0])

View file

@ -254,9 +254,7 @@ def user_create(
logger.warning(m18n.n("user_home_creation_failed", home=home), exc_info=1) logger.warning(m18n.n("user_home_creation_failed", home=home), exc_info=1)
try: try:
subprocess.check_call( subprocess.check_call(["setfacl", "-m", "g:all_users:---", f"/home/{username}"])
["setfacl", "-m", "g:all_users:---", f"/home/{username}"]
)
except subprocess.CalledProcessError: except subprocess.CalledProcessError:
logger.warning(f"Failed to protect /home/{username}", exc_info=1) logger.warning(f"Failed to protect /home/{username}", exc_info=1)
@ -986,9 +984,7 @@ def user_group_create(
ldap = _get_ldap_interface() ldap = _get_ldap_interface()
# Validate uniqueness of groupname in LDAP # Validate uniqueness of groupname in LDAP
conflict = ldap.get_conflict( conflict = ldap.get_conflict({"cn": groupname}, base_dn="ou=groups")
{"cn": groupname}, base_dn="ou=groups"
)
if conflict: if conflict:
raise YunohostValidationError("group_already_exist", group=groupname) raise YunohostValidationError("group_already_exist", group=groupname)

View file

@ -65,4 +65,3 @@ class YunohostValidationError(YunohostError):
class YunohostAuthenticationError(MoulinetteAuthenticationError): class YunohostAuthenticationError(MoulinetteAuthenticationError):
pass pass

View file

@ -116,10 +116,7 @@ def _patch_legacy_php_versions(app_folder):
c = ( c = (
"sed -i " "sed -i "
+ "".join( + "".join(f"-e 's@{p}@{r}@g' " for p, r in LEGACY_PHP_VERSION_REPLACEMENTS)
f"-e 's@{p}@{r}@g' "
for p, r in LEGACY_PHP_VERSION_REPLACEMENTS
)
+ "%s" % filename + "%s" % filename
) )
os.system(c) os.system(c)
@ -137,7 +134,11 @@ def _patch_legacy_php_versions_in_settings(app_folder):
settings["phpversion"] = "7.4" settings["phpversion"] = "7.4"
# We delete these checksums otherwise the file will appear as manually modified # We delete these checksums otherwise the file will appear as manually modified
list_to_remove = ["checksum__etc_php_7.3_fpm_pool", "checksum__etc_php_7.0_fpm_pool", "checksum__etc_nginx_conf.d"] list_to_remove = [
"checksum__etc_php_7.3_fpm_pool",
"checksum__etc_php_7.0_fpm_pool",
"checksum__etc_nginx_conf.d",
]
settings = { settings = {
k: v k: v
for k, v in settings.items() for k, v in settings.items()
@ -168,9 +169,15 @@ def _patch_legacy_helpers(app_folder):
"important": False, "important": False,
}, },
# Old $1, $2 in backup/restore scripts... # Old $1, $2 in backup/restore scripts...
"app=$2": {"only_for": ["scripts/backup", "scripts/restore"], "important": True}, "app=$2": {
"only_for": ["scripts/backup", "scripts/restore"],
"important": True,
},
# Old $1, $2 in backup/restore scripts... # Old $1, $2 in backup/restore scripts...
"backup_dir=$1": {"only_for": ["scripts/backup", "scripts/restore"], "important": True}, "backup_dir=$1": {
"only_for": ["scripts/backup", "scripts/restore"],
"important": True,
},
# Old $1, $2 in backup/restore scripts... # Old $1, $2 in backup/restore scripts...
"restore_dir=$1": {"only_for": ["scripts/restore"], "important": True}, "restore_dir=$1": {"only_for": ["scripts/restore"], "important": True},
# Old $1, $2 in install scripts... # Old $1, $2 in install scripts...