diff --git a/debian/changelog b/debian/changelog index 75ad5137..2fc2ba46 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,17 @@ +moulinette (3.7.0.2) stable; urgency=low + + Bumping version number for stable release + + -- Kay0u Thu, 26 Mar 2020 22:03:23 +0000 + +moulinette (3.7.0.1) testing; urgency=low + + - [fix] Slapd may crash if we try to update the LDAP with no change (moulinette#231) + + Thanks to all contributors (Josue) <3 ! + + -- Kay0u Sun, 15 Mar 2020 16:09:25 +0000 + moulinette (3.7.0) testing; urgency=low # ~ Major stuff diff --git a/locales/ar.json b/locales/ar.json index b5746321..d2853799 100644 --- a/locales/ar.json +++ b/locales/ar.json @@ -13,7 +13,7 @@ "file_not_exist": "الملف غير موجود : '{path}'", "folder_exists": "إنّ المجلد موجود من قبل : '{path}'", "folder_not_exist": "المجلد غير موجود", - "instance_already_running": "هناك نسخة خادوم تشتغل مِن قبل", + "instance_already_running": "هناك بالفعل عملية YunoHost جارية. الرجاء الانتظار حتى ينتهي الأمر قبل تشغيل آخر.", "invalid_argument": "المُعامِل غير صالح '{argument}': {error}", "invalid_password": "كلمة السر خاطئة", "invalid_usage": "إستعمال غير صالح، إستخدم --help لعرض المساعدة", @@ -52,5 +52,7 @@ "command_unknown": "الأمر '{command:s}' مجهول؟", "corrupted_yaml": "قراءة مُشوّهة لنسق yaml مِن {ressource:s} (السبب : {error:s})", "info": "معلومة:", - "warn_the_user_about_waiting_lock_again": "جارٍ الانتظار…" + "warn_the_user_about_waiting_lock_again": "جارٍ الانتظار…", + "warn_the_user_that_lock_is_acquired": "لقد انتهى تنفيذ ذاك الأمر ، جارٍ إطلاق الأمر", + "warn_the_user_about_waiting_lock": "هناك أمر لـ YunoHost قيد التشغيل حاليا. في انتظار انتهاء تنفيذه قبل تشغيل التالي" } diff --git a/locales/bn_BD.json b/locales/bn_BD.json index 0967ef42..d885278e 100644 --- a/locales/bn_BD.json +++ b/locales/bn_BD.json @@ -1 +1,4 @@ -{} +{ + "logged_out": "প্রস্থান", + "password": "পাসওয়ার্ড" +} diff --git a/locales/ca.json b/locales/ca.json index 50417dcb..c0f1e040 100644 --- a/locales/ca.json +++ b/locales/ca.json @@ -13,7 +13,7 @@ "file_not_exist": "El fitxer no existeix: '{path}'", "folder_exists": "La carpeta ja existeix: '{path}'", "folder_not_exist": "La carpeta no existeix", - "instance_already_running": "Una instància ja s'està executant", + "instance_already_running": "Ja hi ha una operació de YunoHost en curs. Espereu a que s'acabi abans d'executar-ne una altra.", "invalid_argument": "Argument invàlid '{argument}': {error}", "invalid_password": "Contrasenya invàlida", "invalid_usage": "Utilització invàlida, utilitzeu --help per veure l'ajuda", @@ -55,5 +55,6 @@ "corrupted_toml": "El fitxer TOML ha estat corromput en la lectura des de {ressource:s} (motiu: {error:s})", "warn_the_user_about_waiting_lock": "Hi ha una altra ordre de YunoHost en execució, s'executarà aquesta ordre un cop l'anterior hagi acabat", "warn_the_user_about_waiting_lock_again": "Encara en espera…", - "warn_the_user_that_lock_is_acquired": "l'altra ordre tot just ha acabat, ara s'executarà aquesta ordre" + "warn_the_user_that_lock_is_acquired": "l'altra ordre tot just ha acabat, ara s'executarà aquesta ordre", + "invalid_token": "Testimoni no vàlid - torneu-vos a autenticar" } diff --git a/locales/cmn.json b/locales/cmn.json index bbad7315..634868a4 100644 --- a/locales/cmn.json +++ b/locales/cmn.json @@ -1,5 +1,5 @@ { - "argument_required": "{argument}是必须的", + "argument_required": "参数“{argument}”是必须的", "authentication_profile_required": "必须验证配置文件{profile}", "authentication_required": "需要验证", "authentication_required_long": "此操作需要验证", @@ -22,7 +22,7 @@ "ldap_operation_error": "LDAP操作时发生了错误", "ldap_server_down": "无法连接LDAP服务器", "logged_in": "登录成功", - "logged_out": "注销成功", + "logged_out": "登出", "not_logged_in": "您未登录", "operation_interrupted": "操作中断", "password": "密码", diff --git a/locales/de.json b/locales/de.json index 455eb05d..0b9f409f 100644 --- a/locales/de.json +++ b/locales/de.json @@ -19,7 +19,7 @@ "ldap_operation_error": "Ein Fehler trat während der LDAP Abfrage auf", "ldap_server_down": "LDAP-Server nicht erreichbar", "logged_in": "Angemeldet", - "logged_out": "Ausgeloggt", + "logged_out": "Abgemeldet", "not_logged_in": "Du bist nicht angemeldet", "operation_interrupted": "Vorgang unterbrochen", "password": "Passwort", diff --git a/locales/el.json b/locales/el.json index 0967ef42..a6f9617e 100644 --- a/locales/el.json +++ b/locales/el.json @@ -1 +1,4 @@ -{} +{ + "logged_out": "Αποσυνδέθηκα", + "password": "Κωδικός πρόσβασης" +} diff --git a/locales/en.json b/locales/en.json index 9b4bb310..5c55d14c 100644 --- a/locales/en.json +++ b/locales/en.json @@ -55,5 +55,5 @@ "command_unknown": "Command '{command:s}' unknown ?", "warn_the_user_about_waiting_lock": "Another YunoHost command is running right now, we are waiting for it to finish before running this one", "warn_the_user_about_waiting_lock_again": "Still waiting...", - "warn_the_user_that_lock_is_acquired": "the other command just complet, now starting this command" + "warn_the_user_that_lock_is_acquired": "the other command just completed, now starting this command" } diff --git a/locales/eo.json b/locales/eo.json index f61ecff2..d0f3ebd9 100644 --- a/locales/eo.json +++ b/locales/eo.json @@ -1,3 +1,59 @@ { - "password": "Pasvorto" + "password": "Pasvorto", + "colon": "{}: ", + "warn_the_user_that_lock_is_acquired": "la alia komando nur kompletigas, nun komencante ĉi tiun komandon", + "warn_the_user_about_waiting_lock_again": "Ankoraŭ atendanta...", + "warn_the_user_about_waiting_lock": "Alia komando de YunoHost funkcias ĝuste nun, ni atendas, ke ĝi finiĝos antaŭ ol funkcii ĉi tiu", + "command_unknown": "Komando '{command:s}' nekonata?", + "download_bad_status_code": "{url:s} redonita statuskodo {code:s}", + "download_unknown_error": "Eraro dum elŝutado de datumoj de {url:s}: {error:s}", + "download_timeout": "{url:s} prenis tro da tempo por respondi, rezignis.", + "download_ssl_error": "SSL-eraro dum konekto al {url:s}", + "invalid_url": "Nevalida url {url:s} (ĉu ĉi tiu retejo ekzistas?)", + "error_changing_file_permissions": "Eraro dum ŝanĝo de permesoj por {path:s}: {error:s}", + "error_removing": "Eraro dum la forigo de {path:s}: {error:s}", + "error_writing_file": "Eraro skribinte dosieron {file:s}: {error:s}", + "corrupted_toml": "Korupta toml legita el {ressource:s} (kialo: {error:s})", + "corrupted_yaml": "Korupta yaml legita de {ressource:s} (kialo: {error:s})", + "corrupted_json": "Koruptita json legita de {ressource:s} (kialo: {error:s})", + "unknown_error_reading_file": "Nekonata eraro dum provi legi dosieron {file:s} (kialo: {error:s})", + "cannot_write_file": "Ne povis skribi dosieron {file:s} (kialo: {error:s})", + "cannot_open_file": "Ne povis malfermi dosieron {file: s} (kialo: {error: s})", + "websocket_request_expected": "Atendis ret-peto", + "warning": "Averto:", + "values_mismatch": "Valoroj ne kongruas", + "unknown_user": "Nekonata uzanto '{user}'", + "unknown_group": "Nekonata grupo \"{group}\"", + "unable_retrieve_session": "Ne eblas retrovi la sesion ĉar '{exception}'", + "unable_authenticate": "Ne eblas aŭtentiĝi", + "success": "Sukceson!", + "server_already_running": "Servilo jam funkcias sur tiu haveno", + "root_required": "Vi devas esti 'root' por plenumi ĉi tiun agon", + "pattern_not_match": "Ne kongruas kun ŝablono", + "operation_interrupted": "Operacio interrompita", + "not_logged_in": "Vi ne estas ensalutinta", + "logged_in": "Ensalutinta", + "ldap_server_down": "Ne eblas atingi la servilon LDAP", + "ldap_operation_error": "Eraro okazis dum LDAP-operacio", + "ldap_attribute_already_exists": "Atributo '{attribute}' jam ekzistas kun valoro '{value}'", + "invalid_usage": "Nevalida uzado, preterpase '--help' por vidi helpon", + "invalid_password": "Nevalida pasvorto", + "invalid_argument": "Nevalida argumento '{argument}': {error}", + "instance_already_running": "Jam funkcias YunoHost-operacio. Bonvolu atendi, ke ĝi finiĝos antaŭ ol funkcii alia.", + "info": "informoj:", + "folder_not_exist": "Dosierujo ne ekzistas", + "folder_exists": "Dosierujo jam ekzistas: '{path}'", + "file_not_exist": "Dosiero ne ekzistas: '{path}'", + "file_exists": "Dosiero jam ekzistas: '{path}'", + "error_see_log": "Eraro okazis. Bonvolu vidi la protokolojn por detaloj, ili troviĝas en /var/log/yunohost/.", + "error": "Eraro:", + "deprecated_command_alias": "'{prog} {old}' malakceptas kaj estos forigita estonte, uzu anstataŭe '{prog} {new}'", + "deprecated_command": "'{prog} {command}' malakceptas kaj estos forigita estonte", + "confirm": "Konfirmu {prompt}", + "authentication_required_long": "Aŭtentigo necesas por plenumi ĉi tiun agon", + "authentication_required": "Aŭtentigo bezonata", + "authentication_profile_required": "Aŭtentigo al la profilo '{profile}' bezonata", + "argument_required": "Argumento '{argument}' estas bezonata", + "logged_out": "Ensalutinta", + "invalid_token": "Nevalida tokeno - bonvolu autentiki" } diff --git a/locales/eu.json b/locales/eu.json index db0ce305..803f875c 100644 --- a/locales/eu.json +++ b/locales/eu.json @@ -1,3 +1,6 @@ { - "argument_required": "'{argument}' argumentua beharrezkoa da" + "argument_required": "'{argument}' argumentua beharrezkoa da", + "logged_out": "Saioa amaitu", + "password": "Pasahitza", + "colon": "{}: " } diff --git a/locales/fr.json b/locales/fr.json index 732eaa0e..b0f63470 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -55,5 +55,6 @@ "corrupted_toml": "Fichier TOML corrompu en lecture depuis {ressource:s} (cause : {error:s})", "warn_the_user_about_waiting_lock": "Une autre commande YunoHost est actuellement en cours, nous attendons qu'elle se termine avant de démarrer celle là", "warn_the_user_about_waiting_lock_again": "Toujours en attente...", - "warn_the_user_that_lock_is_acquired": "l'autre commande vient de se terminer, lancement de cette commande" + "warn_the_user_that_lock_is_acquired": "l'autre commande vient de se terminer, lancement de cette commande", + "invalid_token": "Jeton non valide - veuillez vous authentifier" } diff --git a/locales/hu.json b/locales/hu.json index 0967ef42..42bb7781 100644 --- a/locales/hu.json +++ b/locales/hu.json @@ -1 +1,4 @@ -{} +{ + "logged_out": "Kilépett", + "password": "Jelszó" +} diff --git a/locales/it.json b/locales/it.json index 479a1b96..c7fc2864 100644 --- a/locales/it.json +++ b/locales/it.json @@ -15,7 +15,7 @@ "file_not_exist": "Il file non esiste: '{path}'", "folder_exists": "La cartella esiste già: '{path}'", "folder_not_exist": "La cartella non esiste", - "instance_already_running": "Un'istanza è già in esecuzione", + "instance_already_running": "Esiste già un'operazione YunoHost in esecuzione. Attendi il completamento prima di eseguirne un altro.", "invalid_argument": "Argomento non valido '{argument}': {error}", "invalid_password": "Password non valida", "invalid_usage": "Utilizzo non valido, usa --help per vedere l'aiuto", @@ -31,7 +31,7 @@ "server_already_running": "Un server è già in esecuzione su quella porta", "success": "Riuscito!", "unable_authenticate": "Autenticazione fallita", - "unable_retrieve_session": "Recupero della sessione non riuscito", + "unable_retrieve_session": "Impossibile recuperare la sessione perché \"{exception}\"", "unknown_group": "Gruppo '{group}' sconosciuto", "unknown_user": "Utente '{user}' sconosciuto", "values_mismatch": "I valori non corrispondono", @@ -39,7 +39,7 @@ "websocket_request_expected": "Richiesta WebSocket attesa", "cannot_open_file": "Impossibile aprire il file {file:s} (motivo: {error:s})", "cannot_write_file": "Impossibile scrivere il file {file:s} (motivo: {error:s})", - "unknown_error_reading_file": "Errore sconosciuto nel tentativo di leggere il file {file:s}", + "unknown_error_reading_file": "Errore sconosciuto durante il tentativo di leggere il file {file:s} (motivo: {errore:s})", "corrupted_json": "Lettura json corrotta da {ressource:s} (motivo: {error:s})", "corrupted_yaml": "Lettura yaml corrotta da {ressource:s} (motivo: {error:s})", "error_writing_file": "Errore durante la scrittura del file {file:s}: {error:s}", @@ -51,5 +51,10 @@ "download_unknown_error": "Errore durante il download di dati da {url:s} : {error:s}", "download_bad_status_code": "{url:s} ha restituito il codice di stato {code:s}", "command_unknown": "Comando '{command:s}' sconosciuto ?", - "info": "Info:" + "info": "Info:", + "warn_the_user_that_lock_is_acquired": "l'altro comando è appena completato, ora avvia questo comando", + "warn_the_user_about_waiting_lock_again": "Sto ancora aspettando ...", + "warn_the_user_about_waiting_lock": "Un altro comando YunoHost è in esecuzione in questo momento, stiamo aspettando che finisca prima di eseguire questo", + "corrupted_toml": "Toml corrotto da {ressource:s} (motivo: {errore:s})", + "invalid_token": "Token non valido: autenticare" } diff --git a/locales/ne.json b/locales/ne.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/locales/ne.json @@ -0,0 +1 @@ +{} diff --git a/locales/nl.json b/locales/nl.json index 54e72c97..cbbee8cc 100644 --- a/locales/nl.json +++ b/locales/nl.json @@ -11,7 +11,7 @@ "file_not_exist": "Bestand bestaat niet: '{path}'", "folder_exists": "Deze map bestaat al: '{path}'", "folder_not_exist": "Map bestaat niet", - "instance_already_running": "Er is al een instantie actief", + "instance_already_running": "Er is al een instantie actief, bedankt om te wachten tot deze afgesloten is alvorens een andere te starten.", "invalid_argument": "Ongeldig argument '{argument}': {error}", "invalid_password": "Ongeldig wachtwoord", "invalid_usage": "Ongeldig gebruik, doe --help om de hulptekst te lezen", @@ -29,7 +29,7 @@ "server_already_running": "Er is al een server actief op die poort", "success": "Succes!", "unable_authenticate": "Aanmelding niet mogelijk", - "unable_retrieve_session": "Kan de sessie niet ophalen", + "unable_retrieve_session": "Het is onmogelijk op de sessie op te halen omwille van '{exception}'", "values_mismatch": "Waarden zijn niet gelijk", "warning": "Waarschuwing:", "websocket_request_expected": "Verwachtte een WebSocket request", @@ -39,7 +39,7 @@ "unknown_user": "Gebruiker '{user}' is onbekend", "cannot_open_file": "Niet mogelijk om bestand {file:s} te openen (reden: {error:s})", "cannot_write_file": "Niet gelukt om bestand {file:s} te schrijven (reden: {error:s})", - "unknown_error_reading_file": "Ongekende fout tijdens het lezen van bestand {file:s}", + "unknown_error_reading_file": "Ongekende fout tijdens het lezen van bestand {file:s} (cause:{error:s})", "corrupted_json": "Corrupte json gelezen van {ressource:s} (reden: {error:s})", "error_writing_file": "Fout tijdens het schrijven van bestand {file:s}: {error:s}", "error_removing": "Fout tijdens het verwijderen van {path:s}: {error:s}", @@ -49,5 +49,12 @@ "download_timeout": "{url:s} neemt te veel tijd om te antwoorden, we geven het op.", "download_unknown_error": "Fout tijdens het downloaden van data van {url:s}: {error:s}", "download_bad_status_code": "{url:s} stuurt status code {code:s}", - "command_unknown": "Opdracht '{command:s}' ongekend ?" + "command_unknown": "Opdracht '{command:s}' ongekend ?", + "warn_the_user_that_lock_is_acquired": "het andere commando is net voltooid, starten van dit commando", + "warn_the_user_about_waiting_lock_again": "Nog steeds aan het wachten...", + "warn_the_user_about_waiting_lock": "Een ander YunoHost commando wordt uitgevoerd, we wachten tot het gedaan is alovrens dit te starten", + "corrupted_toml": "Ongeldige TOML werd gelezen op {ressource:s} (reason: {error:s})", + "corrupted_yaml": "Ongeldig YAML bestand op {ressource:s} (reason: {error:s})", + "invalid_token": "Ongeldig token - gelieve in te loggen", + "info": "Ter info:" } diff --git a/locales/oc.json b/locales/oc.json index c7068e82..785882f9 100644 --- a/locales/oc.json +++ b/locales/oc.json @@ -16,7 +16,7 @@ "file_not_exist": "Lo fichièr « {path} » existís pas", "folder_exists": "Lo repertòri existís ja : « {path} »", "folder_not_exist": "Lo repertòri existís pas", - "instance_already_running": "Una instància es ja en execucion", + "instance_already_running": "I a ja una operacion de YunoHost en cors. Mercés d’esperar que s’acabe abans de ne lançar una mai.", "invalid_argument": "Argument « {argument} » incorrècte : {error}", "invalid_password": "Senhal incorrècte", "ldap_server_down": "Impossible d’aténher lo servidor LDAP", @@ -55,5 +55,6 @@ "corrupted_toml": "Fichièr TOML corromput en lectura de {ressource:s} estant (rason : {error:s})", "warn_the_user_about_waiting_lock": "Una autra comanda YunoHost es en execucion, sèm a esperar qu’acabe abans d’aviar aquesta d’aquí", "warn_the_user_about_waiting_lock_again": "Encara en espèra…", - "warn_the_user_that_lock_is_acquired": "l’autra comanda ven d’acabar, lançament d’aquesta comanda" + "warn_the_user_that_lock_is_acquired": "l’autra comanda ven d’acabar, lançament d’aquesta comanda", + "invalid_token": "Geton invalid - volgatz vos autentificar" } diff --git a/locales/pl.json b/locales/pl.json index 0967ef42..d02a6f65 100644 --- a/locales/pl.json +++ b/locales/pl.json @@ -1 +1,58 @@ -{} +{ + "logged_out": "Wylogowano", + "password": "hasło", + "warn_the_user_that_lock_is_acquired": "drugie polecenie właśnie się zakończyło, teraz uruchamia to polecenie", + "warn_the_user_about_waiting_lock_again": "Wciąż czekam...", + "warn_the_user_about_waiting_lock": "Kolejne polecenie YunoHost jest teraz uruchomione, czekamy na jego zakończenie przed uruchomieniem tego", + "command_unknown": "Polecenie „{command:s}” jest nieznane?", + "download_bad_status_code": "{url:s} zwrócił kod stanu {code:s}", + "download_unknown_error": "Błąd podczas pobierania danych z {url:s}: {error:s}", + "download_timeout": "{url:s} odpowiedział zbyt długo, poddał się.", + "download_ssl_error": "Błąd SSL podczas łączenia z {url:s}", + "invalid_url": "Nieprawidłowy adres URL {url:s} (czy ta strona istnieje?)", + "error_changing_file_permissions": "Błąd podczas zmiany uprawnień dla {path:s}: {error:s}", + "error_removing": "Błąd podczas usuwania {path:s}: {error:s}", + "error_writing_file": "Błąd podczas zapisywania pliku {file:s}: {error:s}", + "corrupted_toml": "Uszkodzony toml z {ressource: s} (powód: {error:s})", + "corrupted_yaml": "Uszkodzony yaml odczytany z {ressource:s} (powód: {error:s})", + "corrupted_json": "Uszkodzony json odczytany z {ressource:s} (powód: {error:s})", + "unknown_error_reading_file": "Nieznany błąd podczas próby odczytania pliku {file:s} (przyczyna: {error:s})", + "cannot_write_file": "Nie można zapisać pliku {file:s} (przyczyna: {error:s})", + "cannot_open_file": "Nie można otworzyć pliku {file:s} (przyczyna: {error:s})", + "websocket_request_expected": "Oczekiwano żądania WebSocket", + "warning": "Ostrzeżenie:", + "values_mismatch": "Wartości nie pasują", + "unknown_user": "Nieznany użytkownik „{user}”", + "unknown_group": "Nieznana grupa „{group}”", + "unable_retrieve_session": "Nie można pobrać sesji, ponieważ „{exception}”", + "unable_authenticate": "Nie można uwierzytelnić", + "success": "Sukces!", + "server_already_running": "Serwer już działa na tym porcie", + "root_required": "Aby wykonać tę akcję, musisz być rootem", + "pattern_not_match": "Nie pasuje do wzoru", + "operation_interrupted": "Operacja przerwana", + "not_logged_in": "Nie jesteś zalogowany", + "logged_in": "Zalogowany", + "ldap_server_down": "Nie można połączyć się z serwerem LDAP", + "ldap_operation_error": "Wystąpił błąd podczas operacji LDAP", + "ldap_attribute_already_exists": "Atrybut „{attribute}” już istnieje z wartością „{value}”", + "invalid_usage": "Nieprawidłowe użycie. Przejdź --help, aby wyświetlić pomoc", + "invalid_token": "Nieprawidłowy token - proszę uwierzytelnić", + "invalid_password": "Nieprawidłowe hasło", + "invalid_argument": "Nieprawidłowy argument „{argument}”: {error}", + "instance_already_running": "Trwa już operacja YunoHost. Zaczekaj na zakończenie, zanim uruchomisz kolejny.", + "info": "Informacje:", + "folder_not_exist": "Folder nie istnieje", + "folder_exists": "Folder już istnieje: „{path}”", + "file_not_exist": "Plik nie istnieje: „{path}”", + "file_exists": "Plik już istnieje: „{path}”", + "error_see_log": "Wystąpił błąd. Szczegółowe informacje można znaleźć w dziennikach, znajdują się one w katalogu /var/log/yunohost/.", + "error": "Błąd:", + "deprecated_command_alias": "„{prog} {old}” jest przestarzałe i zostanie usunięte w przyszłości, zamiast tego użyj „{prog} {new}”", + "deprecated_command": "„{prog} {command}” jest przestarzałe i zostanie usunięte w przyszłości", + "confirm": "Potwierdź {prompt}", + "colon": "{}: ", + "authentication_required_long": "Do wykonania tej czynności wymagane jest uwierzytelnienie", + "authentication_required": "Wymagane uwierzytelnienie", + "argument_required": "Argument „{argument}” jest wymagany" +} diff --git a/locales/pt.json b/locales/pt.json index cfc73e1e..97c96a61 100644 --- a/locales/pt.json +++ b/locales/pt.json @@ -10,7 +10,7 @@ "file_not_exist": "O ficheiro não existe: '{path}'", "folder_exists": "A pasta já existe: '{path}'", "folder_not_exist": "A pasta não existe", - "instance_already_running": "O serviço já está em execussão", + "instance_already_running": "Já existe uma operação YunoHost em execução. Aguarde o término antes de executar outro.", "invalid_argument": "Argumento inválido '{argument}': {error}", "invalid_password": "Senha incorreta", "invalid_usage": "Uso invalido, utilizar --help para ver a ajuda", @@ -28,7 +28,7 @@ "server_already_running": "Existe um servidor ativo nessa porta", "success": "Sucesso!", "unable_authenticate": "Não foi possível autenticar", - "unable_retrieve_session": "Não foi possível recuperar a sessão", + "unable_retrieve_session": "Não foi possível recuperar a sessão porque '{exception}'", "values_mismatch": "Os valores não coincidem", "warning": "Aviso:", "websocket_request_expected": "Esperado um pedido a WebSocket", @@ -39,7 +39,7 @@ "unknown_user": "Nome de utilizador '{user}' desconhecido", "cannot_open_file": "Não foi possível abrir o arquivo {file:s} (reason: {error:s})", "cannot_write_file": "Não foi possível abrir o arquivo {file:s} (reason: {error:s})", - "unknown_error_reading_file": "Erro desconhecido ao tentar ler o arquivo {file:s}", + "unknown_error_reading_file": "Erro desconhecido ao tentar ler o arquivo {file:s} (motivo: {error:s})", "error_writing_file": "Erro ao gravar arquivo {file:s}: {error:s}", "error_removing": "Erro ao remover {path:s}: {error:s}", "error_changing_file_permissions": "Erro ao alterar as permissões para {path:s}: {error:s}", @@ -50,5 +50,11 @@ "download_bad_status_code": "{url:s} retornou o código de status {code:s}", "command_unknown": "Comando '{command:s}' desconhecido ?", "corrupted_json": "Json corrompido lido do {ressource:s} (motivo: {error:s})", - "corrupted_yaml": "Yaml corrompido lido do {ressource:s} (motivo: {error:s})" + "corrupted_yaml": "Yaml corrompido lido do {ressource:s} (motivo: {error:s})", + "warn_the_user_that_lock_is_acquired": "o outro comando acabou de concluir, agora iniciando este comando", + "warn_the_user_about_waiting_lock_again": "Ainda esperando...", + "warn_the_user_about_waiting_lock": "Outro comando YunoHost está sendo executado agora, estamos aguardando o término antes de executar este", + "corrupted_toml": "Toml corrompido lido em {ressource:s} (motivo: {error:s})", + "invalid_token": "Token inválido - autentique", + "info": "Informações:" } diff --git a/locales/ru.json b/locales/ru.json index 0ef34009..03465b52 100644 --- a/locales/ru.json +++ b/locales/ru.json @@ -32,7 +32,7 @@ "websocket_request_expected": "Ожидается запрос WebSocket", "cannot_open_file": "Не могу открыть файл {file:s} (причина: {error:s})", "cannot_write_file": "Не могу записать файл {file:s} (причина: {error:s})", - "unknown_error_reading_file": "Неизвестная ошибка при чтении файла {file:s}", + "unknown_error_reading_file": "Неизвестная ошибка при попытке прочитать файл {file:s} (причина: {error:s})", "corrupted_yaml": "Повреждённой yaml получен от {ressource:s} (причина: {error:s})", "error_writing_file": "Ошибка при записи файла {file:s}: {error:s}", "error_removing": "Ошибка при удалении {path:s}: {error:s}", @@ -40,9 +40,20 @@ "download_ssl_error": "Ошибка SSL при соединении с {url:s}", "download_timeout": "Превышено время ожидания ответа от {url:s}.", "download_unknown_error": "Ошибка при загрузке данных с {url:s} : {error:s}", - "instance_already_running": "Процесс уже запущен", + "instance_already_running": "Операция YunoHost уже запущена. Пожалуйста, подождите, пока он закончится, прежде чем запускать другой.", "ldap_operation_error": "Ошибка в процессе работы LDAP", "root_required": "Чтобы выполнить это действие, вы должны иметь права root", "corrupted_json": "Повреждённый json получен от {ressource:s} (причина: {error:s})", - "command_unknown": "Команда '{command:s}' неизвестна ?" + "command_unknown": "Команда '{command:s}' неизвестна ?", + "warn_the_user_that_lock_is_acquired": "другая команда только что завершилась, теперь запускает эту команду", + "warn_the_user_about_waiting_lock_again": "Все еще жду...", + "warn_the_user_about_waiting_lock": "Сейчас запускается еще одна команда YunoHost, мы ждем ее завершения, прежде чем запустить эту", + "download_bad_status_code": "{url:s} вернул код состояния {code:s}", + "error_changing_file_permissions": "Ошибка при изменении разрешений для {path:s}: {error:s}", + "corrupted_toml": "Поврежденный том, прочитанный из {ressource:s} (причина: {error:s})", + "unable_retrieve_session": "Невозможно получить сеанс, так как '{exception}'", + "ldap_server_down": "Невозможно связаться с сервером LDAP", + "invalid_usage": "Неправильное использование, передайте --help, чтобы увидеть помощь", + "invalid_token": "Неверный токен - пожалуйста, авторизуйтесь", + "info": "Информация:" } diff --git a/locales/sv.json b/locales/sv.json index 0967ef42..eee34d09 100644 --- a/locales/sv.json +++ b/locales/sv.json @@ -1 +1,58 @@ -{} +{ + "warn_the_user_about_waiting_lock_again": "Väntar fortfarande …", + "download_bad_status_code": "{url:s} svarade med statuskod {code:s}", + "download_timeout": "Gav upp eftersom {url:s} tog för lång tid på sig att svara.", + "download_ssl_error": "Ett SSL-fel påträffades vid anslutning till {url:s}", + "cannot_write_file": "Kunde inte skriva till filen {file:s} (orsak: {error:s})", + "cannot_open_file": "Kunde inte öppna filen {file:s} (orsak: {error:s})", + "websocket_request_expected": "Förväntade en WebSocket-förfrågan", + "warning": "Varning:", + "values_mismatch": "Värdena stämmer inte överens", + "unknown_user": "Okänd användare '{user}'", + "unknown_group": "Okänd grupp '{group}'", + "success": "Lyckades!", + "server_already_running": "En server använder redan den porten", + "root_required": "Du måste vara inloggad som root för att utföra den här åtgärden", + "pattern_not_match": "Stämmer inte in på mönstret", + "operation_interrupted": "Behandling avbruten", + "not_logged_in": "Du är inte inloggad", + "logged_in": "Inloggad", + "ldap_attribute_already_exists": "Attributet '{attribute}' finns redan med värdet '{value}'", + "invalid_password": "Ogiltigt lösenord", + "invalid_argument": "Ogiltig parameter '{argument}': {error}", + "logged_out": "Utloggad", + "info": "Info:", + "folder_not_exist": "Katalogen finns inte", + "folder_exists": "Katalogen finns redan: '{path}'", + "file_not_exist": "Filen finns inte: '{path}'", + "file_exists": "Filen finns redan: '{path}'", + "error_see_log": "Ett fel har inträffat. Kolla gärna i loggfilerna för mer information, de finns i /var/log/yunohost/.", + "error": "Fel:", + "deprecated_command_alias": "'{prog} {old}' rekommenderas inte längre och kommer tas bort i framtiden, använd '{prog} {new}' istället", + "deprecated_command": "'{prog} {command}' rekommenderas inte längre och kommer tas bort i framtiden", + "confirm": "Bekräfta {prompt}", + "colon": "{}: ", + "argument_required": "Parametern '{argument}' krävs", + "password": "Lösenord", + "warn_the_user_that_lock_is_acquired": "det andra kommandot har bara slutförts, nu startar du det här kommandot", + "warn_the_user_about_waiting_lock": "Ett annat YunoHost-kommando körs just nu, vi väntar på att det ska slutföras innan det här körs", + "command_unknown": "Kommando '{command:s}' okänd?", + "download_unknown_error": "Fel vid nedladdning av data från {url:s}: {error:s}", + "invalid_url": "Ogiltig url {url:s} (finns den här webbplatsen?)", + "error_changing_file_permissions": "Fel vid ändring av behörigheter för {path:s}: {error:s}", + "error_removing": "Fel vid borttagning av {path:s}: {error:s}", + "error_writing_file": "Fel vid skrivning av fil {file:s}: {error:s}", + "corrupted_toml": "Korrupt toml läst från {ressource:s} (anledning: {error:s})", + "corrupted_yaml": "Skadad yaml läst från {ressource:s} (anledning: {error:s})", + "corrupted_json": "Skadad json läst från {ressource:s} (anledning: {error:s})", + "unknown_error_reading_file": "Okänt fel vid försök att läsa filen {file:s} (anledning: {error:s})", + "unable_retrieve_session": "Det gick inte att hämta sessionen eftersom '{exception}'", + "unable_authenticate": "Det går inte att verifiera", + "ldap_server_down": "Det går inte att nå LDAP-servern", + "ldap_operation_error": "Ett fel inträffade under LDAP-drift", + "invalid_usage": "Ogiltig användning, pass --help för att se hjälp", + "invalid_token": "Ogiltigt token - verifiera", + "instance_already_running": "Det finns redan en YunoHost-operation. Vänta tills den är klar innan du kör en annan.", + "authentication_required_long": "Autentisering krävs för att utföra denna åtgärd", + "authentication_required": "Autentisering krävs" +} diff --git a/locales/tr.json b/locales/tr.json index ee5f4fec..7e6673e1 100644 --- a/locales/tr.json +++ b/locales/tr.json @@ -6,8 +6,8 @@ "colon": "{}: ", "confirm": "{prompt}'i doğrulayın", "error": "Hata:", - "error_see_log": "Bir hata oluştu. Detaylar için lütfen loga bakınız", - "instance_already_running": "Uygulama zaten çalışıyor", + "error_see_log": "Bir hata oluştu. Ayrıntılar için lütfen günlüklere bakın, bunlar /var/log/yunohost/ dizinindedir.", + "instance_already_running": "Halihazırda bir YunoHost operasyonu var. Lütfen başka bir tane çalıştırmadan önce bitmesini bekleyin.", "invalid_argument": "Geçersiz argüman '{argument}': {error}", "invalid_password": "Geçersiz parola", "ldap_attribute_already_exists": "'{attribute}={value}' özelliği zaten mevcut", @@ -24,8 +24,37 @@ "server_already_running": "Bu portta zaten çalışan bir sunucu var", "success": "İşlem Başarılı!", "unable_authenticate": "Yetkilendirme başarısız", - "unable_retrieve_session": "Oturum bilgileri alınamadı", + "unable_retrieve_session": "'{exception}' nedeniyle oturum alınamadı", "values_mismatch": "Değerler uyuşmuyor", "warning": "Uyarı:", - "websocket_request_expected": "WebSocket isteği gerekli" + "websocket_request_expected": "WebSocket isteği gerekli", + "warn_the_user_that_lock_is_acquired": "diğer komut şimdi tamamlandı, şimdi bu komutu başlatıyor", + "warn_the_user_about_waiting_lock_again": "Hala bekliyor...", + "warn_the_user_about_waiting_lock": "Başka bir YunoHost komutu şu anda çalışıyor, bunu çalıştırmadan önce bitmesini bekliyoruz", + "command_unknown": "'{Command:s}' komutu bilinmiyor mu?", + "download_bad_status_code": "{url:s} döndürülen durum kodu {code:s}", + "download_unknown_error": "{url:s} adresinden veri indirilirken hata oluştu: {error:s}", + "download_timeout": "{url:s} yanıtlaması çok uzun sürdü, pes etti.", + "download_ssl_error": "{url:s} ağına bağlanırken SSL hatası", + "invalid_url": "Geçersiz url {url:s} (bu site var mı?)", + "error_changing_file_permissions": "{Path:s} için izinler değiştirilirken hata oluştu: {error:s}", + "error_removing": "{Path:s} kaldırılırken hata oluştu: {error:s}", + "error_writing_file": "{File:s} dosyası yazılırken hata oluştu: {error:s}", + "corrupted_toml": "{Ressource:s} kaynağından okunan bozuk toml (nedeni: {hata:s})", + "corrupted_yaml": "{Ressource:s} kaynağından bozuk yaml okunuyor (nedeni: {error:s})", + "corrupted_json": "{Ressource:s} adresinden okunan bozuk json (nedeni: {error:s})", + "unknown_error_reading_file": "{File:s} dosyasını okumaya çalışırken bilinmeyen hata (nedeni: {error:s})", + "cannot_write_file": "{File:s} dosyası yazılamadı (nedeni: {error:s})", + "cannot_open_file": "{File:s} dosyası açılamadı (nedeni: {error:s})", + "unknown_user": "Bilinmeyen '{user}' kullanıcı", + "unknown_group": "Bilinmeyen '{group}' grubu", + "invalid_usage": "Geçersiz kullanım, yardım görmek için --help iletin", + "invalid_token": "Geçersiz simge - lütfen kimlik doğrulaması yapın", + "info": "Bilgi:", + "folder_not_exist": "Klasör mevcut değil", + "folder_exists": "Klasör zaten var: '{path}'", + "file_not_exist": "Dosya mevcut değil: '{path}'", + "file_exists": "Dosya zaten var: '{path}'", + "deprecated_command_alias": "'{prog} {old}' kullanımdan kaldırıldı ve gelecekte kaldırılacak, bunun yerine '{prog} {new}' kullanın", + "deprecated_command": "'{prog} {command}' kullanımdan kaldırıldı ve gelecekte kaldırılacak" } diff --git a/moulinette/authenticators/ldap.py b/moulinette/authenticators/ldap.py index 5a82a6f0..283094c5 100644 --- a/moulinette/authenticators/ldap.py +++ b/moulinette/authenticators/ldap.py @@ -240,6 +240,10 @@ class Authenticator(BaseAuthenticator): actual_entry = self.search(base=dn, attrs=None) ldif = modlist.modifyModlist(actual_entry[0], attr_dict, ignore_oldexistent=1) + if ldif == []: + logger.warning("Nothing to update in LDAP") + return True + try: if new_rdn: self.con.rename_s(dn, new_rdn) diff --git a/moulinette/interfaces/__init__.py b/moulinette/interfaces/__init__.py index 5c6a64cd..4f2e33dd 100644 --- a/moulinette/interfaces/__init__.py +++ b/moulinette/interfaces/__init__.py @@ -55,7 +55,7 @@ class BaseActionsMapParser(object): # Each parser classes must implement these methods. @staticmethod - def format_arg_names(self, name, full): + def format_arg_names(name, full): """Format argument name Format agument name depending on its 'full' parameter and return @@ -70,9 +70,7 @@ class BaseActionsMapParser(object): A list of option strings """ - raise NotImplementedError( - "derived class '%s' must override this method" % self.__class__.__name__ - ) + raise NotImplementedError("derived class must override this method") def has_global_parser(self): return False @@ -156,7 +154,8 @@ class BaseActionsMapParser(object): # Arguments helpers - def prepare_action_namespace(self, tid, namespace=None): + @staticmethod + def prepare_action_namespace(tid, namespace=None): """Prepare the namespace for a given action""" # Validate tid and namespace if not isinstance(tid, tuple) and ( diff --git a/moulinette/interfaces/cli.py b/moulinette/interfaces/cli.py index 30f6e622..dd340398 100644 --- a/moulinette/interfaces/cli.py +++ b/moulinette/interfaces/cli.py @@ -287,7 +287,7 @@ class ActionsMapParser(BaseActionsMapParser): @staticmethod def format_arg_names(name, full): - if name[0] == "-" and full: + if name.startswith("-") and full: return [name, full] return [name] diff --git a/moulinette/utils/stream.py b/moulinette/utils/stream.py index e7af3091..addd1907 100644 --- a/moulinette/utils/stream.py +++ b/moulinette/utils/stream.py @@ -43,9 +43,13 @@ class AsynchronousFileReader(Process): else: data = "" while True: - # Try to read (non-blockingly) a few bytes, append them to - # the buffer - data += os.read(self._fd, 50) + try: + # Try to read (non-blockingly) a few bytes, append them to + # the buffer + data += os.read(self._fd, 50) + except Exception as e: + print("from moulinette.utils.stream: could not read file descriptor : %s" % str(e)) + continue # If nobody's writing in there anymore, get out if not data and os.fstat(self._fd).st_nlink == 0: