From e809962a79c6bce3c81a33dcc9e2dc78ee7066ef Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Thu, 9 Apr 2020 19:14:09 +0200 Subject: [PATCH 01/91] Fix oc.json and update changelog for 3.7.1.1 :| --- debian/changelog | 8 +++++++- src/locales/oc.json | 4 ---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/debian/changelog b/debian/changelog index d5ecba97..13f0065c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,9 +1,15 @@ +yunohost-admin (3.7.1.1) stable; urgency=low + + - [fix] Aleks forgot to properly fix the conflicts in oc.json ~.~ + + -- Alexandre Aubin Thu, 9 Apr 2020 19:03:00 +0000 + yunohost-admin (3.7.1) stable; urgency=low - [fix] Misc fixes for action / config panel (#289, #282) - [enh] Add a note about some apps that need to be exposed to visitors for external client to work - -- Alexandre Aubin Thu, 9 April 2020 16:09:00 +0000 + -- Alexandre Aubin Thu, 9 Apr 2020 16:09:00 +0000 yunohost-admin (3.7.0.4) stable; urgency=low diff --git a/src/locales/oc.json b/src/locales/oc.json index 58c75db0..5275441b 100644 --- a/src/locales/oc.json +++ b/src/locales/oc.json @@ -463,9 +463,6 @@ "ignore": "Ignorar", "ignored": "%s ignorat", "unignore": "Ignorar pas", -<<<<<<< HEAD - "warnings": "%s avises" -======= "warnings": "%s avises", "configuration": "Configuracion", "since": "dempuèi", @@ -474,5 +471,4 @@ "app_state_low_quality": "qualitat bassa", "catalog": "Catalòg", "others": "Autras" ->>>>>>> 1c7ae83... Translated using Weblate (Occitan) } From 5c247672ade4639ab8429e3e5afb60a4b6588200 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Thu, 23 Apr 2020 04:48:24 +0200 Subject: [PATCH 02/91] Highlight error/warnings/... in tools > logs --- src/js/yunohost/controllers/tools.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/js/yunohost/controllers/tools.js b/src/js/yunohost/controllers/tools.js index 3b86285f..a766e250 100644 --- a/src/js/yunohost/controllers/tools.js +++ b/src/js/yunohost/controllers/tools.js @@ -137,11 +137,19 @@ log.metadata.env = log.metadata.args } } + c.view('tools/tools_log', { "log": log, "next_number": log.logs.length == number ? number * 10:false, "locale": y18n.locale }, function() { + log = $("#log").html(); + log = log.replace(/.*: ERROR - .*/g, function (match) { return ''+match+''}); + log = log.replace(/.*: WARNING - .*/g, function (match) { return ''+match+''}); + log = log.replace(/.*: SUCCESS - .*/g, function (match) { return ''+match+''}); + log = log.replace(/.*: INFO - .*/g, function (match) { return ''+match+''}); + $("#log").html(log); + // Configure behavior for the button to share log on Yunohost (it calls display --share) $('button[data-action="share"]').on("click", function() { c.api('GET', '/logs/display?path='+$(this).data('log-id')+'&share', {}, From 981407edfc6b574c9f8ec30e34425f9663c9d853 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Thu, 23 Apr 2020 05:18:26 +0200 Subject: [PATCH 03/91] More accurate selector because of asynchronous shit related to slider effect --- src/js/yunohost/controllers/tools.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/js/yunohost/controllers/tools.js b/src/js/yunohost/controllers/tools.js index a766e250..21420f42 100644 --- a/src/js/yunohost/controllers/tools.js +++ b/src/js/yunohost/controllers/tools.js @@ -143,12 +143,12 @@ "next_number": log.logs.length == number ? number * 10:false, "locale": y18n.locale }, function() { - log = $("#log").html(); + log = $("#main #log").html(); log = log.replace(/.*: ERROR - .*/g, function (match) { return ''+match+''}); log = log.replace(/.*: WARNING - .*/g, function (match) { return ''+match+''}); log = log.replace(/.*: SUCCESS - .*/g, function (match) { return ''+match+''}); log = log.replace(/.*: INFO - .*/g, function (match) { return ''+match+''}); - $("#log").html(log); + $("#main #log").html(log); // Configure behavior for the button to share log on Yunohost (it calls display --share) $('button[data-action="share"]').on("click", function() { From 7ac6f1e45a21e9bdcebb40c116fbb79a8909d851 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Sun, 26 Apr 2020 21:56:59 +0200 Subject: [PATCH 04/91] Hide stop button for critical services --- src/js/yunohost/controllers/services.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/js/yunohost/controllers/services.js b/src/js/yunohost/controllers/services.js index 40ea2e43..3fc8e759 100644 --- a/src/js/yunohost/controllers/services.js +++ b/src/js/yunohost/controllers/services.js @@ -58,6 +58,18 @@ c.view('service/service_info', data, function() { + // Don't allow user to stop critical services from the webadmin + $('button[data-action="stop"]').each(function() { + + var critical = ['nginx', 'ssh', 'slapd', 'yunohost-api']; + var service = $(this).data('service'); + + if (critical.indexOf(service) >= 0) + { + $(this).hide(); + } + }); + // Configure behavior for enable/disable and start/stop buttons $('button[data-action="start"], button[data-action="restart"], button[data-action="stop"]').on('click', function() { From a3a0d8f49aa93a256b23791aa3cc9095198c63cc Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Mon, 27 Apr 2020 03:19:02 +0200 Subject: [PATCH 05/91] Fix stupid typo in upgrade controller --- src/js/yunohost/controllers/tools.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/yunohost/controllers/tools.js b/src/js/yunohost/controllers/tools.js index 21420f42..51d8f474 100644 --- a/src/js/yunohost/controllers/tools.js +++ b/src/js/yunohost/controllers/tools.js @@ -58,7 +58,7 @@ // Upgrade all apps or the system - if ((what == "system") || (what == "system")) + if ((what == "system") || (what == "apps")) { var confirm_message = y18n.t('confirm_update_' + what); var api_url = '/upgrade?'+what; From 1592ab4e7337a537ab7931ad432b333c1e1682f3 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Mon, 27 Apr 2020 03:24:15 +0200 Subject: [PATCH 06/91] Fix custom app install + misc detail in regular app install --- src/js/yunohost/controllers/apps.js | 102 ++++++++++++++------------ src/js/yunohost/filters.js | 2 + src/views/app/app_catalog_category.ms | 7 +- src/views/app/app_install.ms | 4 +- 4 files changed, 62 insertions(+), 53 deletions(-) diff --git a/src/js/yunohost/controllers/apps.js b/src/js/yunohost/controllers/apps.js index a0ccf5b0..ba5647d5 100644 --- a/src/js/yunohost/controllers/apps.js +++ b/src/js/yunohost/controllers/apps.js @@ -235,6 +235,22 @@ jQuery("#filter-app-cards").on("keyup", function() { cardGrid.isotope({ filter: filterApps }); }); + + $("#install-custom-app a[role='button']").on('click', function() { + + var url = $("#install-custom-app input[name='url']")[0].value; + if (url.indexOf("github.com") < 0) { + return; + } + + c.confirm( + y18n.t('applications'), + y18n.t('confirm_install_custom_app'), + function(){ + c.redirect_to('#/apps/install/custom/' + encodeURIComponent(url)); + } + ); + }); }; // render @@ -376,13 +392,6 @@ }); }) - // Special case for custom app installation. - app.get('#/apps/install/custom', function (c) { - // If we try to GET /apps/install/custom, it means that installation fail. - // Need to redirect to apps/install to get rid of pacamn and see the log. - c.redirect_to('#/apps/install'); - }); - // Helper function that formats YunoHost style arguments for generating a form function formatYunoHostStyleArguments(args, params) { if (!args) { @@ -533,16 +542,24 @@ displayLicense: (manifest['license'] !== undefined && manifest['license'] !== 'free') }; - formatYunoHostStyleArguments(data.manifest.arguments.install, params); + formatYunoHostStyleArguments(manifest.arguments.install, params); // Multilingual description - data.description = (typeof data.manifest.description[y18n.locale] !== 'undefined') ? - data.manifest.description[y18n.locale] : - data.manifest.description['en'] - ; + if (typeof manifest.description === 'string') + { + data.description = manifest.description; + } + else if (typeof manifest.description[y18n.locale] !== 'undefined') + { + data.description = manifest.description[y18n.locale]; + } + else + { + data.description = manifest.description['en']; + } // Multi Instance settings boolean to text - data.manifest.multi_instance = data.manifest.multi_instance ? y18n.t('yes') : y18n.t('no'); + data.manifest.multi_instance = manifest.multi_instance ? y18n.t('yes') : y18n.t('no'); // View app install form c.view('app/app_install', data); @@ -573,13 +590,16 @@ app_infos.manifest, c.params ); + }, + function () { + c.redirect_to('#/apps/catalog'); } ); } else { c.appInstallForm( - c.params['app'], + app_name, app_infos.manifest, c.params ); @@ -624,45 +644,31 @@ }); // Install custom app from github - app.post('#/apps/install/custom', function(c) { + app.get('#/apps/install/custom/:url', function(c) { - var params = { - label: c.params['label'], - app: c.params['url'] - }; - delete c.params['label']; - delete c.params['url']; + // Force trailing slash + url = c.params['url']; + url = url.replace(/\/?$/, '/'); + raw_manifest_url = url.replace('github.com', 'raw.githubusercontent.com') + 'master/manifest.json' - c.confirm( - y18n.t('applications'), - y18n.t('confirm_install_custom_app'), - function(){ + // Fetch manifest.json + jQuery.ajax({ url: raw_manifest_url, type: 'GET' }) + .done(function(manifest) { + // raw.githubusercontent.com serve content as plain text + manifest = jQuery.parseJSON(manifest) || {}; - // Force trailing slash - params.app = params.app.replace(/\/?$/, '/'); + c.appInstallForm( + url, + manifest, + c.params + ); - // Get manifest.json to get additional parameters - jQuery.ajax({ - url: params.app.replace('github.com', 'raw.githubusercontent.com') + 'master/manifest.json', - type: 'GET', - }) - .done(function(manifest) { - // raw.githubusercontent.com serve content as plain text - manifest = jQuery.parseJSON(manifest) || {}; + }) + .fail(function(xhr) { + c.flash('fail', y18n.t('app_install_custom_no_manifest')); + c.redirect("#/apps/catalog/"); + }); - c.appInstallForm( - params.app, - manifest, - c.params - ); - - }) - .fail(function(xhr) { - c.flash('fail', y18n.t('app_install_custom_no_manifest')); - c.refresh(); - }); - } - ); }); // Get app change label page diff --git a/src/js/yunohost/filters.js b/src/js/yunohost/filters.js index c35a9450..aa7f6722 100644 --- a/src/js/yunohost/filters.js +++ b/src/js/yunohost/filters.js @@ -28,6 +28,8 @@ app.before(/domains\/add/, prefetchDomains); app.before(/apps\/install\//, prefetchDomains); app.before(/apps\/install\//, prefetchUsers); + app.before(/apps\/install\/custom\//, prefetchDomains); + app.before(/apps\/install\/custom\//, prefetchUsers); app.before(/apps\/\w+\/actions/, prefetchUsers); app.before(/apps\/\w+\/actions/, prefetchDomains); app.before(/apps\/\w+\/config-panel/, prefetchUsers); diff --git a/src/views/app/app_catalog_category.ms b/src/views/app/app_catalog_category.ms index fd3ac12e..edba4106 100644 --- a/src/views/app/app_catalog_category.ms +++ b/src/views/app/app_catalog_category.ms @@ -83,7 +83,7 @@ {{/apps}} -
+

{{t 'custom_app_install'}}

@@ -92,7 +92,8 @@ {{t 'confirm_install_custom_app'}}

-
+ +
@@ -104,7 +105,7 @@
diff --git a/src/views/app/app_install.ms b/src/views/app/app_install.ms index b5ec27dd..8acc68da 100644 --- a/src/views/app/app_install.ms +++ b/src/views/app/app_install.ms @@ -16,9 +16,9 @@
{{t 'id'}}
-
{{id}}
+
{{manifest.id}}
{{t 'description'}}
-
{{manifest.description}}
+
{{description}}
{{#displayLicense}}
{{t 'license'}}
{{manifest.license}}
From 9694d8a2baa8e94cb67ffaf0347a33fa748035d2 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Mon, 27 Apr 2020 03:30:45 +0200 Subject: [PATCH 07/91] Make the 'all apps' button look like the others --- src/views/app/app_catalog_home.ms | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/app/app_catalog_home.ms b/src/views/app/app_catalog_home.ms index 612cda1d..80574861 100644 --- a/src/views/app/app_catalog_home.ms +++ b/src/views/app/app_catalog_home.ms @@ -7,7 +7,7 @@
+ {{/if}}
From 3c6e1e7602416103c2ff1acf8b7e0bd3ad3a53bd Mon Sep 17 00:00:00 2001 From: amirale qt Date: Mon, 20 Apr 2020 10:44:54 +0000 Subject: [PATCH 09/91] Translated using Weblate (Esperanto) Currently translated at 100.0% (350 of 350 strings) Translation: YunoHost/admin Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eo/ --- src/locales/eo.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/locales/eo.json b/src/locales/eo.json index adceaaee..8748aa93 100644 --- a/src/locales/eo.json +++ b/src/locales/eo.json @@ -457,5 +457,13 @@ "app_state_low_quality": "malkvalita", "app_state_low_quality_explanation": "Ĉi tiu app eble funkcias, sed ankoraŭ enhavas problemojn, aŭ ne plene integras kun YunoHost, aŭ ĝi ne respektas la bonajn praktikojn.", "catalog": "Katalogo", - "others": "Aliaj" + "others": "Aliaj", + "confirm_service_restart": "Ĉu vi certas, ke vi volas rekomenci %s ?", + "diagnosis_first_run": "La diagnoza funkcio provos identigi oftajn problemojn pri la diversaj aspektoj de via servilo por certigi, ke ĉio funkcias glate. Bonvolu ne panikiĝi, se vi vidas amason da eraroj tuj post agordo de via servilo: ĝi ĝuste celas helpi vin identigi problemojn kaj gvidi vin ripari ilin. La diagnozo ankaŭ funkcios aŭtomate dufoje ĉiutage kaj retpoŝtu al la administranto se iuj problemoj ekestos.", + "group_explain_visitors_needed_for_external_client": "Atentu, ke vi bezonas konservi iujn aplikaĵojn permesitajn al vizitantoj se vi intencas uzi ilin kun eksteraj klientoj. Ekzemple, ĉi tiu estas la kazo de Nextcloud se vi volas intenci uzi sinkronigan klienton en via inteligenta telefono aŭ labortabla komputilo.", + "restart": "Rekomenci", + "unmaintained_details": "Ĉi tiu app ne estis ĝisdatigita antaŭ tre tempo kaj la antaŭa prizorganto foriĝis aŭ ne havas tempon por subteni ĉi tiun app. Bonvolu kontroli la app-deponejon por doni vian helpon", + "run_first_diagnosis": "Kuru komencan diagnozon", + "groups": "Grupoj", + "issues": "%s aferoj" } From 291097f3cd1b2acf0d3b02f0350330f8dc92fc28 Mon Sep 17 00:00:00 2001 From: amirale qt Date: Mon, 20 Apr 2020 09:51:36 +0000 Subject: [PATCH 10/91] Translated using Weblate (Spanish) Currently translated at 100.0% (350 of 350 strings) Translation: YunoHost/admin Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/es/ --- src/locales/es.json | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/locales/es.json b/src/locales/es.json index fbac8ea4..062a1dec 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -24,7 +24,7 @@ "app_make_default": "Establecer como predeterminado", "app_repository": "Origen de la aplicación: ", "app_state": "Estado de la aplicación: ", - "app_state_inprogress": "en desarollo", + "app_state_inprogress": "Todavía no trabajando", "app_state_notworking": "no funciona", "app_state_validated": "Validado", "app_state_working": "funciona", @@ -222,7 +222,7 @@ "save": "Guardar", "select_user": "Seleccionar usuario", "service_log": "%s log", - "service_start_on_boot": "Inicio en el arranque", + "service_start_on_boot": "Inicie en el arranque", "service_status": "Estado: ", "services": "Servicios", "services_list": "Lista de servicios", @@ -238,11 +238,11 @@ "swap": "Swap", "system": "Sistema", "system_apps": "Aplicaciones", - "system_apps_nothing": "Todas las aplicaciones están actualizadas !", + "system_apps_nothing": "¡Todas las aplicaciones están actualizadas!", "system_delayed_upgrade": "Retraso en actualización", "system_delayed_upgrade_warning": "%s será actualizada automáticamente en la próxima hora.", "system_packages": "Paquetes", - "system_packages_nothing": "No hay paquetes para actualizar.", + "system_packages_nothing": "¡Todos los paquetes del sistema están actualizados!", "system_update": "Actualización del sistema", "system_upgrade": "Actualización del sistema", "system_upgrade_btn": "Actualización", @@ -376,14 +376,14 @@ "from_to": "desde %s a %s", "only_highquality_apps": "Solo aplicaciones de alta calidad", "only_decent_quality_apps": "Solo aplicaciones de calidad aceptable", - "orphaned": "Sin mantenimiento", + "orphaned": "No mantenido", "request_adoption": "pendiente de adopción", "request_adoption_details": "Al mantenedor actual le gustaría dejar de mantener esta aplicación. ¡No dude en ofrecerse como el nuevo mantenedor!", "request_help": "necesita ayuda", "app_state_inprogress_explanation": "El mantenedor de esta aplicación declara que aún no está lista para su uso en producción. ¡TENGA CUIDADO!", "app_state_high-quality_explanation": "Esta aplicación está bien integrada en YunoHost. Ha sido (¡y continua siendo!) revisada por especialistas del equipo de aplicaciones de YunoHost. Se puede esperar que sea segura y mantenida a largo plazo.", "app_state_working_explanation": "El mantenedor de esta aplicación declara que «funciona». Significa que debería ser funcional (comparada a nivel de aplicación) pero no está revisada por especialistas necesariamente, puede tener aún problemas o no está totalmente integrada en YunoHost.", - "orphaned_details": "Esta aplicación ya no se mantiene. Puede que funcione pero no se actualizará mientras ningún voluntarie la cuide . ¡No dude en venir y reanimarla!", + "orphaned_details": "Esta aplicación no se ha mantenido durante bastante tiempo. Todavía puede estar funcionando, pero no recibirá ninguna actualización hasta que alguien se ofrezca como voluntario para encargarse de ello. ¡Siéntase libre de contribuir para revivirlo!", "request_help_details": "Al mantenedor actual le gustaría recibir alguna ayuda con el mantenimiento de esta aplicación. ¡No dude en venir a contribuir!", "tools_rebooting": "Su servidor se está reiniciando. Para volver a la interfaz de administración web necesita esperar a que el servidor esté listo. Puede comprobarlo recargando esta página (F5).", "tools_shutdown_btn": "Apagar", @@ -474,5 +474,11 @@ "configuration": "Configuración", "catalog": "Catálogo", "app_state_low_quality_explanation": "Asta app esta probablemente funcional, pero puede fallar, no esta completamente integrada con YunoHost, o no respeta las buenas practicas.", - "app_state_low_quality": "baja qualidad" + "app_state_low_quality": "baja qualidad", + "confirm_service_restart": "¿Estás seguro de que quieres reiniciar %s ?", + "group_explain_visitors_needed_for_external_client": "Tenga cuidado de que necesita mantener algunas aplicaciones permitidas a los visitantes si tiene la intención de usarlas con clientes externos. Por ejemplo, este es el caso de Nextcloud si desea utilizar un cliente de sincronización en su teléfono inteligente o computadora de escritorio.", + "issues": "%s problemas", + "unmaintained_details": "Esta aplicación no se ha actualizado durante bastante tiempo y el responsable anterior se ha ido o no tiene tiempo para mantenerla. No dude en consultar el repositorio de aplicaciones para brindar su ayuda", + "groups": "Grupos", + "restart": "Reiniciar" } From af356d9db0e654e1eb4f2e2a53b04bf4483ee5df Mon Sep 17 00:00:00 2001 From: amirale qt Date: Mon, 20 Apr 2020 07:55:19 +0000 Subject: [PATCH 11/91] Translated using Weblate (French) Currently translated at 100.0% (350 of 350 strings) Translation: YunoHost/admin Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/ --- src/locales/fr.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/locales/fr.json b/src/locales/fr.json index 25a384da..ecffa07a 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -482,5 +482,7 @@ "confirm_service_restart": "Êtes-vous certain de vouloir redémarrer %s ?", "groups": "Groupes", "restart": "Redémarrer", - "unmaintained_details": "Cette application n'a pas été mise à jour depuis longtemps et le responsable précédent est parti ou n'a pas le temps de maintenir cette application. N'hésitez pas à consulter le repertoire des applications pour apporter votre aide" + "unmaintained_details": "Cette application n'a pas été mise à jour depuis un bon moment et le responsable précédent est parti ou n'a pas le temps de maintenir cette application. N'hésitez pas à consulter le référentiel des applications pour apporter votre aide", + "group_explain_visitors_needed_for_external_client": "Veillez à ce que certaines applications soient autorisées pour les visiteurs si vous avez l'intention de les utiliser avec des clients externes. Par exemple, c'est le cas pour Nextcloud si vous souhaitez avoir l'intention d'utiliser un client de synchronisation sur votre smartphone ou ordinateur de bureau.", + "issues": "%s problèmes" } From 2cfb4804a526b95fcf0fcafca37b4c47d47ee8f3 Mon Sep 17 00:00:00 2001 From: Simon Date: Tue, 21 Apr 2020 16:54:15 +0000 Subject: [PATCH 12/91] Translated using Weblate (French) Currently translated at 100.0% (350 of 350 strings) Translation: YunoHost/admin Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/ --- src/locales/fr.json | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/locales/fr.json b/src/locales/fr.json index ecffa07a..a9c0c922 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -27,7 +27,7 @@ "app_state_inprogress": "ne fonctionne pas encore", "app_state_notworking": "Non fonctionnelle", "app_state_validated": "Validée", - "app_state_working": "Fonctionnelle", + "app_state_working": "fonctionnelle", "application": "Application", "applications": "Applications", "archive_empty": "L’archive est vide", @@ -65,7 +65,7 @@ "confirm_change_maindomain": "Voulez-vous vraiment changer le domaine principal ?", "confirm_delete": "Voulez-vous vraiment supprimer %s ?", "confirm_firewall": "Voulez-vous vraiment %s le port %s (protocole: %s, connexion: %s)", - "confirm_install_custom_app": "AVERTISSEMENT ! L’installation d’applications tierces peut compromettre l’intégrité et la sécurité de votre système. Vous ne devriez probablement PAS l’installer si vous ne savez pas ce que vous faites. Prenez-vous ce risque ?", + "confirm_install_custom_app": "ATTENTION ! L’installation d’applications tierces peut compromettre l’intégrité et la sécurité de votre système. Vous ne devriez probablement PAS l’installer si vous ne savez pas ce que vous faites. Prenez-vous ce risque ?", "confirm_install_domain_root": "Vous ne pourrez pas installer d'autres applications sur %s. Continuer ?", "confirm_postinstall": "Vous êtes sur le point de lancer le processus de post-installation sur le domaine %s. Cela peut prendre du temps, *n'interrompez pas l'opération avant la fin*.", "confirm_restore": "Voulez-vous vraiment restaurer %s ?", @@ -139,7 +139,7 @@ "hook_data_home": "Données de l’utilisateur", "hook_data_home_desc": "Les données de l’utilisateur situées dans /home/USER", "hook_data_mail": "Courriel", - "hook_data_mail_desc": "Les courriels qui sont stockés sur le serveur", + "hook_data_mail_desc": "Courriels stockés sur le serveur", "hostname": "Nom d'hôte", "id": "ID", "inactive": "Inactif", @@ -426,24 +426,24 @@ "purge_user_data_warning": "La purge des données de l’utilisateur n’est pas réversible. Assurez-vous de savoir ce que vous faites !", "version": "Version", "confirm_update_system": "Voulez-vous vraiment mettre à jour tous les paquets système ?", - "app_state_inprogress_explanation": "Le mainteneur de cette application a indiqué qu'elle n'est pas encore prête pour une utilisation en production. FAITES ATTENTION !", - "app_state_notworking_explanation": "Le mainteneur de cette application a déclaré celle-ci comme \"non fonctionnelle\" SON INSTALLATION PEUT CASSER VOTRE SYSTÈME !", + "app_state_inprogress_explanation": "Le responsable de cette application a indiqué qu'elle n'est pas encore prête pour une utilisation en production. SOYEZ VIGILANT(E) !", + "app_state_notworking_explanation": "Le responsable de cette application a déclaré celle-ci comme \"non fonctionnelle\". SON INSTALLATION POURRAIT CASSER VOTRE SYSTÈME !", "app_state_high-quality": "Haute qualité", - "app_state_high-quality_explanation": "Cette application est bien intégrée dans YunoHost. Elle a été (et est !) revue par l'équipe applicative de YunoHost. On peut s'attendre à ce qu'elle soit sûre et maintenue sur le long terme.", - "app_state_working_explanation": "Le responsable de cette application l'a déclarée comme fonctionnelle. Cela signifie qu'elle doit être utilisable (c.f. niveau de l'application) mais n'est pas nécessairement revue, elle peut encore contenir des bogues ou bien n'est pas entièrement intégrée dans YunoHost.", + "app_state_high-quality_explanation": "Cette application est bien intégrée à YunoHost. Elle a été (et est !) revue par l'équipe applicative de YunoHost. On peut s'attendre à ce qu'elle soit sûre et maintenue sur le long terme.", + "app_state_working_explanation": "Le responsable de cette application l'a déclarée comme 'fonctionnelle'. Cela signifie qu'elle doit fonctionner (voir son niveau d'intégration) mais n'est pas nécessairement revue, elle peut encore contenir des bugs ou bien n'est pas entièrement intégrée à YunoHost.", "hook_conf_ynh_currenthost": "Domaine principal actuel", "license": "Licence", "maintained": "Maintenue", - "maintained_details": "Cette application a été maintenue par son responsable au cours des tout derniers mois.", - "only_highquality_apps": "Uniquement des applications de haute qualité", + "maintained_details": "Cette application a été maintenue par son responsable au cours des derniers mois.", + "only_highquality_apps": "Uniquement des applications de haute-qualité", "only_decent_quality_apps": "Seulement des applications d'une qualité décente", "orphaned": "Non maintenue", "orphaned_details": "Cette application n'a pas été maintenue depuis un certain temps. Il peut encore fonctionner, mais ne recevra aucune mise à niveau jusqu'à ce que quelqu'un se porte volontaire pour s'en occuper. N'hésitez pas à contribuer à la faire revivre !", - "request_adoption": "en attente de repreneur", - "request_adoption_details": "Le responsable actuel aimerait arrêter de s'occuper et de maintenir cette application. N'hésitez pas à vous proposer comme nouveau responsable !", + "request_adoption": "en attente de responsable", + "request_adoption_details": "Le responsable actuel ne souhaite plus s'occuper de cette application. N'hésitez pas à vous proposer comme nouveau responsable !", "request_help": "besoin d'assistance", "request_help_details": "Le responsable actuel aimerait de l'aide pour la maintenance de cette application. N'hésitez pas à y contribuer !", - "advanced": "Avancée", + "advanced": "Avancé", "from_to": "de %s à %s", "group_name": "Nom du groupe", "nobody": "Personne", @@ -473,7 +473,7 @@ "configuration": "Configuration", "since": "depuis", "all": "Tout", - "app_state_low_quality": "basse qualité", + "app_state_low_quality": "faible qualité", "app_state_low_quality_explanation": "Cette application peut être fonctionnelle, mais peut toujours contenir des problèmes, ou n'est pas entièrement intégrée à YunoHost, ou elle ne respecte pas les bonnes pratiques.", "catalog": "Catalogue", "others": "Autres", From c6c9a305066a3099ba1cd4ced95e81587b9b19cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Quent=C3=AD?= Date: Thu, 23 Apr 2020 08:38:36 +0000 Subject: [PATCH 13/91] Translated using Weblate (Occitan) Currently translated at 99.1% (347 of 350 strings) Translation: YunoHost/admin Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/oc/ --- src/locales/oc.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/locales/oc.json b/src/locales/oc.json index b730ccfa..721a5d01 100644 --- a/src/locales/oc.json +++ b/src/locales/oc.json @@ -471,5 +471,9 @@ "app_state_low_quality": "qualitat bassa", "catalog": "Catalòg", "others": "Autras", - "run_first_diagnosis": "Executar lo diagnostic inicial" + "run_first_diagnosis": "Executar lo diagnostic inicial", + "confirm_service_restart": "Volètz vertadièrament reaviar %s ?", + "restart": "Reaviar", + "groups": "Grops", + "issues": "%s problèmas" } From 31bc7bcf818ac4cfb6a17b5c8a3fd3c14dfde6a2 Mon Sep 17 00:00:00 2001 From: amirale qt Date: Mon, 20 Apr 2020 08:59:59 +0000 Subject: [PATCH 14/91] Translated using Weblate (Polish) Currently translated at 10.9% (38 of 350 strings) Translation: YunoHost/admin Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/pl/ --- src/locales/pl.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/pl.json b/src/locales/pl.json index 3044730a..ad41672f 100644 --- a/src/locales/pl.json +++ b/src/locales/pl.json @@ -1,5 +1,5 @@ { - "password": "hasło", + "password": "Hasło", "action": "Akcja", "active": "Aktywny", "add": "Dodaj", From acd4c031c8bb6a4aaf4d0a567f9d3793505b24ea Mon Sep 17 00:00:00 2001 From: amirale qt Date: Mon, 20 Apr 2020 09:06:22 +0000 Subject: [PATCH 15/91] Translated using Weblate (Nepali) Currently translated at 14.0% (49 of 350 strings) Translation: YunoHost/admin Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/ne/ --- src/locales/ne.json | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/locales/ne.json b/src/locales/ne.json index 94345dde..b3ab085e 100644 --- a/src/locales/ne.json +++ b/src/locales/ne.json @@ -2,7 +2,7 @@ "configuration": "कन्फिगरेसन", "close": "बन्द", "check": "जाँच गर्नुहोस्", - "cancel": "रद्द", + "cancel": "रद्द गर्नुहोस्", "both": "दुबै", "begin": "सुरु गर्नुहोस्", "backups_no": "कुनै ब्याकअप छैन", @@ -54,5 +54,8 @@ "remove": "हटाउनुहोस्", "add": "थप्नुहोस्", "active": "सक्रिय", - "action": "कार्य" + "action": "कार्य", + "password": "पासवर्ड", + "ok": "ठिक छ", + "logged_out": "लग आउट" } From e66f65c93f7b213b2ee13c92616579c221122cff Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Mon, 27 Apr 2020 05:38:13 +0200 Subject: [PATCH 16/91] Small color bug on group/permission view --- src/css/style.less | 1 + 1 file changed, 1 insertion(+) diff --git a/src/css/style.less b/src/css/style.less index 8f31df2d..726de23a 100644 --- a/src/css/style.less +++ b/src/css/style.less @@ -795,6 +795,7 @@ input[type='radio'].nice-radio { padding-left:6px; border-left: #ccc 1px solid; color:lighten(@label-info-bg,20); + background-color:transparent; text-decoration: none; } From a110e564395ebe77be1216a64175a18603b8a7cb Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Mon, 27 Apr 2020 05:43:30 +0200 Subject: [PATCH 17/91] Save/restore collapse states when refreshing diagnosis view --- src/js/yunohost/controllers/diagnosis.js | 41 +++++++++++++++++++++--- src/js/yunohost/helpers.js | 6 ++-- src/views/diagnosis/diagnosis_show.ms | 6 ++-- 3 files changed, 43 insertions(+), 10 deletions(-) diff --git a/src/js/yunohost/controllers/diagnosis.js b/src/js/yunohost/controllers/diagnosis.js index 7d8e996b..0f491e89 100644 --- a/src/js/yunohost/controllers/diagnosis.js +++ b/src/js/yunohost/controllers/diagnosis.js @@ -13,8 +13,8 @@ }); }); + function updateDiagnosisView(state) { - function updateDiagnosisView() { c.api('GET', '/diagnosis/show?full', {}, function(data) { if (typeof(data.reports) === "undefined") @@ -75,6 +75,8 @@ // Render and display the view c.view('diagnosis/diagnosis_show', data, function() { + restoreDiagnosisViewState(state); + // Button for first diagnosis $("button[data-action='run-full-diagnosis']").click(function() { c.api('POST', '/diagnosis/run', {}, function(data) { @@ -94,7 +96,7 @@ $("button[data-action='rerun-diagnosis']").click(function() { var category = $(this).data("category"); c.api('POST', '/diagnosis/run?force', {"categories": [category]}, function(data) { - updateDiagnosisView(); + updateDiagnosisView(saveDiagnosisViewState()); }); }); @@ -102,19 +104,50 @@ $("button[data-action='ignore']").click(function() { var filter_args = $(this).data("filter-args"); c.api('POST', '/diagnosis/ignore', {'add_filter': filter_args.split(',') }, function(data) { - updateDiagnosisView(); + updateDiagnosisView(saveDiagnosisViewState()); }) }); $("button[data-action='unignore']").click(function() { var filter_args = $(this).data("filter-args"); c.api('POST', '/diagnosis/ignore', {'remove_filter': filter_args.split(',') }, function(data) { - updateDiagnosisView(); + updateDiagnosisView(saveDiagnosisViewState()); }) }); }); }); } + // Save current level of scroll + which panels are collapsed / not collapsed + function saveDiagnosisViewState() { + var collapse = {}; + $(".panel-diagnosis").each(function(i, el) { + console.log($(el)); + console.log($(el).data("category")); + collapse[$(el).data("category")] = $($(".panel-body", el)[0]).hasClass("in"); + }); + return { "scroll": document.documentElement.scrollTop, "collapse": collapse }; + } + + // Restore scroll + panel collapse state + function restoreDiagnosisViewState(state) { + if (typeof state === "undefined") { return; } + + Object.keys(state.collapse).forEach(function(category) { + console.log(category); + console.log(state.collapse[category]); + if (state.collapse[category]) { + $(".panel-diagnosis[data-category='"+category+"'] .panel-body").addClass("in"); + } + else + { + $(".panel-diagnosis[data-category='"+category+"'] .panel-body").removeClass("in"); + } + }); + + window.scroll(0,state.scroll); + } + + })(); diff --git a/src/js/yunohost/helpers.js b/src/js/yunohost/helpers.js index d7c3dfc1..ba1d4ff1 100644 --- a/src/js/yunohost/helpers.js +++ b/src/js/yunohost/helpers.js @@ -336,11 +336,11 @@ } }); - // Run callback - callback(); - // Force scrollTop on page load $('html, body').scrollTop(0); + + // Run callback + callback(); }); }; diff --git a/src/views/diagnosis/diagnosis_show.ms b/src/views/diagnosis/diagnosis_show.ms index ae043f8d..98ab7080 100644 --- a/src/views/diagnosis/diagnosis_show.ms +++ b/src/views/diagnosis/diagnosis_show.ms @@ -22,10 +22,10 @@
{{t 'diagnosis_experimental_disclaimer'}}
{{#reports}} -
+

- {{ description }} + {{ description }}

{{#if noIssues}}{{#if items}}{{t 'everything_good'}}{{/if}}{{/if}} {{#if errors}}{{t 'issues' errors }}{{/if}} @@ -33,7 +33,7 @@ {{#if ignored}}{{t 'ignored' ignored }}{{/if}}
-
+

    {{t 'last_ran' }} {{formatRelative time day="numeric" month="long" year="numeric" hour="numeric" minute="numeric" }}

    {{#items}} From 5f99660f194314285960ea71d4f7224f76e423d8 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Tue, 28 Apr 2020 19:34:22 +0200 Subject: [PATCH 18/91] Forgot to remove console.log for debug :| --- src/js/yunohost/controllers/diagnosis.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/js/yunohost/controllers/diagnosis.js b/src/js/yunohost/controllers/diagnosis.js index 0f491e89..8829ae40 100644 --- a/src/js/yunohost/controllers/diagnosis.js +++ b/src/js/yunohost/controllers/diagnosis.js @@ -122,8 +122,6 @@ function saveDiagnosisViewState() { var collapse = {}; $(".panel-diagnosis").each(function(i, el) { - console.log($(el)); - console.log($(el).data("category")); collapse[$(el).data("category")] = $($(".panel-body", el)[0]).hasClass("in"); }); return { "scroll": document.documentElement.scrollTop, "collapse": collapse }; @@ -134,8 +132,6 @@ if (typeof state === "undefined") { return; } Object.keys(state.collapse).forEach(function(category) { - console.log(category); - console.log(state.collapse[category]); if (state.collapse[category]) { $(".panel-diagnosis[data-category='"+category+"'] .panel-body").addClass("in"); } From 084487e1d8af12d41cd3491166e84c7b1c5abc43 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Wed, 29 Apr 2020 18:26:49 +0200 Subject: [PATCH 19/91] Info icon for info-type reports in diagnosis --- src/js/yunohost/controllers/diagnosis.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/js/yunohost/controllers/diagnosis.js b/src/js/yunohost/controllers/diagnosis.js index 8829ae40..2bc22b80 100644 --- a/src/js/yunohost/controllers/diagnosis.js +++ b/src/js/yunohost/controllers/diagnosis.js @@ -41,6 +41,9 @@ if (type_ == "success") { icon = "check-circle"; } + else if (type_ == "info") { + icon = "info-circle"; + } else if (ignored == true) { icon = type_; if (type_ == "error") { From ccefdd6c3c95daf1d26e4a901bda211c16fe980f Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Wed, 29 Apr 2020 19:46:31 +0200 Subject: [PATCH 20/91] Add an explanation text on top of the diagnosis view --- src/locales/en.json | 3 ++- src/views/diagnosis/diagnosis_show.ms | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/locales/en.json b/src/locales/en.json index 14b2562b..9af3b58d 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -83,7 +83,8 @@ "domain_dns_conf_is_just_a_recommendation": "This page shows you the *recommended* configuration. It does *not* configure the DNS for you. It is your responsability to configure your DNS zone in your DNS registrar according to this recommendation.", "diagnosis": "Diagnosis", "diagnosis_experimental_disclaimer": "Be aware that the diagnosis feature is still experimental and being polished, and it may not be fully reliable.", - "diagnosis_first_run": "The diagnosis feature will attempt to identify common issues on the different aspects of your server to make sure everything runs smoothly. Please do not panic if you see a bunch of errors right after setting up your server: it is precisely meant to help you to identify issues and guide you to fix them. The diagnosis will also run automatically twice a day and email the administrator if some issue arise.", + "diagnosis_first_run": "The diagnosis feature will attempt to identify common issues on the different aspects of your server to make sure everything runs smoothly. Please do not panic if you see a bunch of errors right after setting up your server: it is precisely meant to help you to identify issues and guide you to fix them. The diagnosis will also run automatically twice a day and an email is sent to the administrator if issues are found.", + "diagnosis_explanation": "The diagnosis feature will attempt to identify common issues on the different aspects of your server to make sure everything runs smoothly. The diagnosis run automatically twice a day and an email is sent to the administrator if issues are found. Note that some tests may not be relevant if you do not want to use some specific features (for example XMPP) or may fail if you have a complex setup. In such cases, and if you know what you are doing, it is alright to ignore the corresponding issues or warnings.", "run_first_diagnosis": "Run initial diagnosis", "disable": "Disable", "disabled": "Disabled", diff --git a/src/views/diagnosis/diagnosis_show.ms b/src/views/diagnosis/diagnosis_show.ms index 98ab7080..e2f6b736 100644 --- a/src/views/diagnosis/diagnosis_show.ms +++ b/src/views/diagnosis/diagnosis_show.ms @@ -11,13 +11,15 @@
    -{{#unless reports}}
    +{{#if reports}} +

    {{t 'diagnosis_explanation'}}

    +{{else}}

    {{t 'diagnosis_first_run'}}


    +{{/if}}
    -{{/unless}}
    {{t 'diagnosis_experimental_disclaimer'}}
    From 724e59fc090ed20ebfbdd544f5972e2ad28e1a40 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Wed, 29 Apr 2020 23:19:17 +0200 Subject: [PATCH 21/91] Update changelog for 3.8.2 --- debian/changelog | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/debian/changelog b/debian/changelog index 7fe2cc5c..34ddd391 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,19 @@ +yunohost-admin (3.8.2) testing; urgency=low + + - [enh] Highlight error/warnings/... in tools > logs (#294) + - [enh] Hide stop button for critical services ? (#295) + - [fix] Stupid typo in upgrade controller prevented upgrading all apps (a3a0d8f) + - [fix] Custom app install + misc detail in regular app install (1592ab4) + - [fix] Make the 'all apps' button look like the others (9694d8a) + - [mod] Simplify log view (4480836) + - [enh] Save/restore collapse states when refreshing diagnosis view (a110e56) + - [enh] Add an explanation text on top of the diagnosis view (ccefdd6) + - [i18n] Improve translations for Esperanto, Spanish, French, Occitan, Polish, Nepali + + Thanks to all contributors <3 ! (Quentí, Simon, amirale qt) + + -- Alexandre Aubin Wed, 29 Apr 2020 23:20:00 +0000 + yunohost-admin (3.8.1.1) testing; urgency=low - [hotfix] Pacman hanging forever after fetching version number.. From c29093377f5476a5b35c4a3e710ead7f607b6a98 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Sun, 3 May 2020 01:48:12 +0200 Subject: [PATCH 22/91] No reason to fetch installed apps here --- src/js/yunohost/controllers/domains.js | 61 ++++++++++++-------------- 1 file changed, 29 insertions(+), 32 deletions(-) diff --git a/src/js/yunohost/controllers/domains.js b/src/js/yunohost/controllers/domains.js index 51850f90..709c8abb 100644 --- a/src/js/yunohost/controllers/domains.js +++ b/src/js/yunohost/controllers/domains.js @@ -84,40 +84,37 @@ // Get existing domain info app.get('#/domains/:domain', function (c) { c.api('PUT', '/domains/main', {}, function(dataMain) { - c.api('GET', '/apps?installed', {}, function(data) { + var domain = { + name: c.params['domain'], + main: (c.params['domain'] == dataMain.current_main_domain) ? true : false, + url: "https://"+c.params['domain'] + }; + c.view('domain/domain_info', domain, function() { - var domain = { - name: c.params['domain'], - main: (c.params['domain'] == dataMain.current_main_domain) ? true : false, - url: "https://"+c.params['domain'] - }; - c.view('domain/domain_info', domain, function() { + // Configure "set default" button + $('button[data-action="set_default"]').on("click", function() { + var domain = $(this).data("domain"); + c.confirm( + y18n.t('domains'), + y18n.t('confirm_change_maindomain'), + function() { + c.api('PUT', '/domains/main', {new_main_domain: domain}, function() { c.refresh() }); + } + ) + }); - // Configure "set default" button - $('button[data-action="set_default"]').on("click", function() { - var domain = $(this).data("domain"); - c.confirm( - y18n.t('domains'), - y18n.t('confirm_change_maindomain'), - function() { - c.api('PUT', '/domains/main', {new_main_domain: domain}, function() { c.refresh() }); - } - ) - }); - - // Configure delete button - $('button[data-action="delete"]').on("click", function() { - var domain = $(this).data("domain"); - c.confirm( - y18n.t('domains'), - y18n.t('confirm_delete', [domain]), - function(){ - c.api('DELETE', '/domains/'+ domain, {}, function(data) { - c.redirect_to('#/domains'); - }); - } - ); - }); + // Configure delete button + $('button[data-action="delete"]').on("click", function() { + var domain = $(this).data("domain"); + c.confirm( + y18n.t('domains'), + y18n.t('confirm_delete', [domain]), + function(){ + c.api('DELETE', '/domains/'+ domain, {}, function() { + c.redirect_to('#/domains'); + }); + } + ); }); }); }); From dc81cdbb0cb1b014361687634ad3345364e834d7 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Sun, 3 May 2020 05:09:14 +0200 Subject: [PATCH 23/91] Filter non-relevant line in log displayed on webadmin --- src/js/yunohost/controllers/tools.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/yunohost/controllers/tools.js b/src/js/yunohost/controllers/tools.js index 51d8f474..bb8d7ee9 100644 --- a/src/js/yunohost/controllers/tools.js +++ b/src/js/yunohost/controllers/tools.js @@ -129,7 +129,7 @@ app.get(/\#\/tools\/logs\/(.*)(\?number=(\d+))?/, function (c) { var params = "?path=" + c.params["splat"][0]; var number = (c.params["number"])?c.params["number"]:50; - params += "&number=" + number; + params += "&filter_irrelevant&number=" + number; c.api('GET', "/logs/display" + params, {}, function(log) { if ('metadata' in log) { From 4e013c7e0ac54be199f301f5c2ba65a4613d4d61 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Sun, 3 May 2020 05:20:02 +0200 Subject: [PATCH 24/91] Add a note and explanation about sharing the logs... --- src/locales/en.json | 1 + src/views/tools/tools_log.ms | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/src/locales/en.json b/src/locales/en.json index 9af3b58d..be600254 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -203,6 +203,7 @@ "orphaned": "Not maintained", "orphaned_details": "This app has not been maintained for quite some time. It may still be working, but won't receive any upgrade until somebody volunteers to take care of it. Feel free to contribute to revive it!", "others": "Others", + "operation_failed_explanation": "This operation failed! Really sorry about that :( You can try to ask for help. Please provide *the full log* of the operation to the people helping you. You can do so by clicking on the 'Share with Yunopaste' green button. When sharing the logs, YunoHost will automatically attempt to anonymize private data like domain names and IPs.", "password": "Password", "password_confirmation": "Password confirmation", "password_empty": "The password field is empty", diff --git a/src/views/tools/tools_log.ms b/src/views/tools/tools_log.ms index 1257dfa1..d4700666 100644 --- a/src/views/tools/tools_log.ms +++ b/src/views/tools/tools_log.ms @@ -26,6 +26,13 @@
+ +{{#if log.metadata.error}} +
+

{{t 'operation_failed_explanation'}}

+
+{{/if}} + - {{/if}}
diff --git a/src/views/tools/tools_logs.ms b/src/views/tools/tools_logs.ms index 2b719534..f7358206 100644 --- a/src/views/tools/tools_logs.ms +++ b/src/views/tools/tools_logs.ms @@ -7,29 +7,17 @@
{{#intl locales=locale}} -{{#if data}} -
-{{#data}} -{{#if value}} -
- -
- -
+
+
+

+ {{t 'logs_operation'}} +

+
+
+ {{#operations}} + {{formatRelative started_at}} + {{ description }} + {{/operations}}
-{{/if}} -{{/data}}
-{{/if}} {{/intl}} From c2e548ba409dbeb155f99a5d790013cee8a2b005 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Fri, 4 Sep 2020 14:55:35 +0200 Subject: [PATCH 82/91] Update changelog for 4.0.4 --- debian/changelog | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/debian/changelog b/debian/changelog index 9a13897e..86ae41f4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,13 @@ +yunohost-admin (4.0.4) stable; urgency=low + + - [fix] migrations link in french translation (#309) + - [fix] Stupid typo breaking yunopaste for service logs (7e03213) + - [fix] In log views, sometimes 'error' is empty despite success:false ... so rely on the value of success instead (7894c84) + + Thanks to all contributors <3 ! (opi) + + -- Alexandre Aubin Fri, 04 Sep 2020 14:54:01 +0200 + yunohost-admin (4.0.3) stable; urgency=low - Bump version number for stable release From 39f426c789786fc480a317ac46c070659f809eae Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Sat, 5 Sep 2020 18:39:42 +0200 Subject: [PATCH 83/91] Syntax / indent --- src/js/yunohost/controllers/users.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/yunohost/controllers/users.js b/src/js/yunohost/controllers/users.js index 803096a2..fb2524c2 100644 --- a/src/js/yunohost/controllers/users.js +++ b/src/js/yunohost/controllers/users.js @@ -223,7 +223,7 @@ c.params['mailbox_quota'] += "M"; } else {c.params['mailbox_quota'] = 0;} - c.params['domain']=c.params['domain'].slice(1); + c.params['domain'] = c.params['domain'].slice(1); c.api('POST', '/users', c.params.toHash(), function(data) { c.redirect_to('#/users'); From 4bc01267457cc48ce79988463998fa86df5951c8 Mon Sep 17 00:00:00 2001 From: Christian Wehrli Date: Tue, 1 Sep 2020 12:31:41 +0000 Subject: [PATCH 84/91] Translated using Weblate (French) Currently translated at 99.7% (351 of 352 strings) Translation: YunoHost/admin Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/ --- src/locales/fr.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/locales/fr.json b/src/locales/fr.json index d5f5a914..9027fc1f 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -65,7 +65,7 @@ "confirm_change_maindomain": "Voulez-vous vraiment changer le domaine principal ?", "confirm_delete": "Voulez-vous vraiment supprimer %s ?", "confirm_firewall": "Voulez-vous vraiment %s le port %s (protocole: %s, connexion: %s)", - "confirm_install_custom_app": "ATTENTION ! L’installation d’applications tierces peut compromettre l’intégrité et la sécurité de votre système. Vous ne devriez probablement PAS l’installer si vous ne savez pas ce que vous faites. Prenez-vous ce risque ?", + "confirm_install_custom_app": "ATTENTION! L’installation d’applications tierces peut compromettre l’intégrité et la sécurité de votre système. Vous ne devriez probablement PAS l’installer si vous ne savez pas ce que vous faites. Prenez-vous ce risque ?", "confirm_install_domain_root": "Vous ne pourrez pas installer d'autres applications sur %s. Continuer ?", "confirm_postinstall": "Vous êtes sur le point de lancer le processus de post-installation sur le domaine %s. Cela peut prendre du temps, *n'interrompez pas l'opération avant la fin*.", "confirm_restore": "Voulez-vous vraiment restaurer %s ?", @@ -139,7 +139,7 @@ "hook_data_home": "Données de l’utilisateur", "hook_data_home_desc": "Les données de l’utilisateur situées dans /home/USER", "hook_data_mail": "Courriel", - "hook_data_mail_desc": "Courriels stockés sur le serveur", + "hook_data_mail_desc": "Les courriels au format brut sont stockés sur le serveur", "hostname": "Nom d'hôte", "id": "ID", "inactive": "Inactif", @@ -396,7 +396,7 @@ "confirm_install_app_warning": "Avertissement : cette application peut fonctionner mais n’est pas bien intégrée dans YunoHost. Certaines fonctionnalités telles que l’authentification unique et la sauvegarde/restauration pourraient ne pas être disponibles.", "confirm_install_app_danger": "AVERTISSEMENT ! Cette application est encore expérimentale et risque de casser votre système ! Vous ne devriez probablement PAS l’installer si vous ne savez pas ce que vous faites. Voulez-vous vraiment prendre ce risque ?", "current_maintainer_title": "Mainteneur actuel de ce paquet", - "error_connection_interrupted": "Le serveur a fermé la connexion au lieu d’y répondre. Est-ce que Nginx ou l'API YunoHost aurait été redémarré ou arrêté ? (code/message d’erreur : %s)", + "error_connection_interrupted": "Le serveur a fermé la connexion au lieu d’y répondre. Est-ce que nginx ou l'API YunoHost aurait été redémarré ou arrêté ? (code/message d’erreur : %s)", "experimental_warning": "Attention : cette fonctionnalité est expérimentale et ne doit pas être considérée comme stable, vous ne devriez pas l’utiliser à moins que vous ne sachiez ce que vous faites...", "good_practices_about_admin_password": "Vous êtes maintenant sur le point de définir un nouveau mot de passe administrateur. Le mot de passe doit comporter au moins 8 caractères — bien qu’il soit recommandé d’utiliser un mot de passe plus long (c’est-à-dire une phrase secrète) et/ou d’utiliser différents types de caractères (majuscules, minuscules, chiffres et caractères spéciaux).", "good_practices_about_user_password": "Vous êtes maintenant sur le point de définir un nouveau mot de passe pour l'utilisateur. Le mot de passe doit comporter au moins 8 caractères - bien qu’il soit recommandé d’utiliser un mot de passe plus long (c’est-à-dire une phrase secrète) et/ou d’utiliser différents types de caractères tels que : majuscules, minuscules, chiffres et caractères spéciaux.", @@ -422,27 +422,27 @@ "logs_more": "Afficher plus de lignes", "search_for_apps": "Recherche des applications…", "unmaintained": "Non maintenue", - "purge_user_data_checkbox": "Purger les données de l'utilisateur %s ? (Cela supprimera le contenu de ses dossiers et répertoires dans home et mail.)", + "purge_user_data_checkbox": "Purger les données de l'utilisateur %s ? (Cela supprimera le contenu de ses dossiers et répertoires dans home et courriel.)", "purge_user_data_warning": "La purge des données de l’utilisateur n’est pas réversible. Assurez-vous de savoir ce que vous faites !", "version": "Version", "confirm_update_system": "Voulez-vous vraiment mettre à jour tous les paquets système ?", - "app_state_inprogress_explanation": "Le responsable de cette application a indiqué qu'elle n'est pas encore prête pour une utilisation en production. SOYEZ VIGILANT(E) !", + "app_state_inprogress_explanation": "Le/La responsable de cette application à déclaré(e) que l'application suivante n'est pas encore prête à être utilisée en production. SOYEZ VIGILANT(E)", "app_state_notworking_explanation": "Le responsable de cette application a déclaré celle-ci comme \"non fonctionnelle\". SON INSTALLATION POURRAIT CASSER VOTRE SYSTÈME !", - "app_state_high-quality": "haute qualité", + "app_state_high-quality": "bonne qualité", "app_state_high-quality_explanation": "Cette application est bien intégrée à YunoHost. Elle a été (et est !) revue par l'équipe applicative de YunoHost. On peut s'attendre à ce qu'elle soit sûre et maintenue sur le long terme.", "app_state_working_explanation": "Le responsable de cette application l'a déclarée comme 'fonctionnelle'. Cela signifie qu'elle doit fonctionner (voir son niveau d'intégration) mais n'est pas nécessairement revue, elle peut encore contenir des bugs ou bien n'est pas entièrement intégrée à YunoHost.", "hook_conf_ynh_currenthost": "Domaine principal actuel", "license": "Licence", "maintained": "Maintenue", "maintained_details": "Cette application a été maintenue par son responsable au cours des derniers mois.", - "only_highquality_apps": "Uniquement des applications de haute-qualité", + "only_highquality_apps": "Seulement les applications de bonne qualité", "only_decent_quality_apps": "Seulement des applications d'une qualité décente", "orphaned": "Non maintenue", "orphaned_details": "Cette application n'a pas été maintenue depuis un certain temps. Il peut encore fonctionner, mais ne recevra aucune mise à niveau jusqu'à ce que quelqu'un se porte volontaire pour s'en occuper. N'hésitez pas à contribuer à la faire revivre !", - "request_adoption": "en attente de responsable", + "request_adoption": "en attente d'adoption", "request_adoption_details": "Le responsable actuel ne souhaite plus s'occuper de cette application. N'hésitez pas à vous proposer comme nouveau responsable !", "request_help": "besoin d'assistance", - "request_help_details": "Le responsable actuel aimerait de l'aide pour la maintenance de cette application. N'hésitez pas à y contribuer !", + "request_help_details": "Le mainteneur actuel souhaiterait de l'aide pour la maintenance de cette application. N'hésitez pas à contribuer !", "advanced": "Avancé", "from_to": "de %s à %s", "group_name": "Nom du groupe", @@ -477,7 +477,7 @@ "app_state_low_quality_explanation": "Cette application peut être fonctionnelle, mais peut toujours contenir des problèmes, ou n'est pas entièrement intégrée à YunoHost, ou elle ne respecte pas les bonnes pratiques.", "catalog": "Catalogue", "others": "Autres", - "diagnosis_first_run": "La fonctionnalité de diagnostic va tenter de trouver certains problèmes communs sur différents aspects de votre serveur pour être sûr que tout fonctionne normalement. Merci de ne pas paniquer si vous voyez une multitude d'erreurs après avoir configuré votre serveur : la fonctionnalité est précisément prévue pour les identifier et vous aider à les résoudre. Le diagnostic sera également effectué deux fois par jour et enverra un mail à l'administrateur si des erreurs sont détectées.", + "diagnosis_first_run": "La fonctionnalité de diagnostic va tenter de trouver certains problèmes communs sur différents aspects de votre serveur pour être sûr que tout fonctionne normalement. Merci de ne pas paniquer si vous voyez une multitude d'erreurs après avoir configuré votre serveur : la fonctionnalité est précisément prévue pour les identifier et vous aider à les résoudre. Le diagnostic sera également effectué deux fois par jour et enverra un courriel à l'administrateur si des erreurs sont détectées.", "run_first_diagnosis": "Démarrer le diagnostic initial", "confirm_service_restart": "Êtes-vous certain de vouloir redémarrer %s ?", "groups": "Groupes", @@ -486,6 +486,6 @@ "group_explain_visitors_needed_for_external_client": "Veillez à ce que certaines applications soient autorisées pour les visiteurs si vous avez l'intention de les utiliser avec des clients externes. Par exemple, c'est le cas pour Nextcloud si vous souhaitez avoir l'intention d'utiliser un client de synchronisation sur votre smartphone ou ordinateur de bureau.", "issues": "%s problèmes", "operation_failed_explanation": "L'opération a échoué ! Veuillez-nous excuser pour ça :( Vous pouvez essayer de demander de l'aide. Merci de fournir *le log complet* de l'opération pour les personnes qui vont vous aider. Vous pouvez cliquer sur le bouton vert 'Partager avec Yunopaste'. Quand vous partagez les logs, YunoHost essaie automatiquement d'anonymiser les informations privées comme le nom de domaine et l'adresses IP.", - "diagnosis_explanation": "La fonctionnalité de diagnostic va tenter de trouver certains problèmes communs sur différents aspects de votre serveur pour être sûr que tout fonctionne normalement. Le diagnostic sera également effectué deux fois par jour et enverra un mail à l'administrateur si des erreurs sont détectées. À noter que certains tests ne seront pas montrés si vous n'utilisez pas certaines fonctions spécifiques (XMPP, par exemple) ou s'ils échouent à cause d'une configuration trop complexe. Dans ce cas, et si vous savez ce que vous avez modifié, vous pouvez ignorer les problèmes et les avertissements correspondantes.", + "diagnosis_explanation": "La fonctionnalité de diagnostic va tenter de trouver certains problèmes communs sur différents aspects de votre serveur pour être sûr que tout fonctionne normalement. Le diagnostic sera également effectué deux fois par jour et enverra un courriel à l'administrateur si des erreurs sont détectées. À noter que certains tests ne seront pas montrés si vous n'utilisez pas certaines fonctions spécifiques (XMPP, par exemple) ou s'ils échouent à cause d'une configuration trop complexe. Dans ce cas, et si vous savez ce que vous avez modifié, vous pouvez ignorer les problèmes et les avertissements correspondantes.", "pending_migrations": "Il y a des migrations en suspens qui attentent d'être exécutées. Veuillez aller dans Outils > Migrations pour les exécuter." } From 253a4c9e02f9b670fcea20ce19753c4040047232 Mon Sep 17 00:00:00 2001 From: ppr Date: Tue, 1 Sep 2020 12:31:59 +0000 Subject: [PATCH 85/91] Translated using Weblate (French) Currently translated at 99.7% (351 of 352 strings) Translation: YunoHost/admin Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/ --- src/locales/fr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/fr.json b/src/locales/fr.json index 9027fc1f..cd1e00b6 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -443,7 +443,7 @@ "request_adoption_details": "Le responsable actuel ne souhaite plus s'occuper de cette application. N'hésitez pas à vous proposer comme nouveau responsable !", "request_help": "besoin d'assistance", "request_help_details": "Le mainteneur actuel souhaiterait de l'aide pour la maintenance de cette application. N'hésitez pas à contribuer !", - "advanced": "Avancé", + "advanced": "Avancée", "from_to": "de %s à %s", "group_name": "Nom du groupe", "nobody": "Personne", From b8871daa8fdfd062c432696fad6b3f4aa055005a Mon Sep 17 00:00:00 2001 From: Titus PiJean Date: Fri, 4 Sep 2020 21:00:23 +0000 Subject: [PATCH 86/91] Translated using Weblate (French) Currently translated at 99.7% (351 of 352 strings) Translation: YunoHost/admin Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/ --- src/locales/fr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/fr.json b/src/locales/fr.json index cd1e00b6..686e5739 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -318,7 +318,7 @@ "certificate_authority": "Autorité de certification", "validity": "Validité", "domain_is_eligible_for_ACME": "Ce domaine semble correctement configuré pour installer un certificat Let’s Encrypt !", - "domain_not_eligible_for_ACME": "Ce domaine ne semble pas prêt pour installer un certificat Let’s Encrypt. Veuillez vérifier votre configuration DNS et l’accessibilité HTTP de votre serveur. Les sections 'enregistrement DNS' et 'Web' dans la page de diagnostic peuvent vous aider à comprendre ce qui est mal configurée.", + "domain_not_eligible_for_ACME": "Ce domaine ne semble pas prêt pour installer un certificat Let’s Encrypt. Veuillez vérifier votre configuration DNS et l’accessibilité HTTP de votre serveur. Les sections 'enregistrement DNS' et 'Web' dans la page de diagnostic peuvent vous aider à comprendre ce qui est mal configuré.", "install_letsencrypt_cert": "Installer un certificat Let’s Encrypt", "manually_renew_letsencrypt_message": "Le certificat sera renouvelé automatiquement durant les 15 derniers jours de sa validité. Vous pouvez le renouveler manuellement si vous le souhaitez (non recommandé).", "manually_renew_letsencrypt": "Renouveler manuellement maintenant", From c636e14ec974a7744a0b8553264eeaf445b31cc5 Mon Sep 17 00:00:00 2001 From: Christian Wehrli Date: Tue, 1 Sep 2020 11:35:30 +0000 Subject: [PATCH 87/91] Translated using Weblate (German) Currently translated at 100.0% (352 of 352 strings) Translation: YunoHost/admin Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/de/ --- src/locales/de.json | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/locales/de.json b/src/locales/de.json index ee3721e8..9ab11566 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -218,7 +218,7 @@ "swap": "Auslagerungsspeicher", "system": "System", "system_apps": "Apps", - "system_apps_nothing": "Allen Apps sind auf dem neuesten Stand!", + "system_apps_nothing": "Alle Applikationen sind auf dem neuesten Stand!", "system_delayed_upgrade": "Zurückgestellte Aktualisierung", "system_delayed_upgrade_warning": "%s wird automatisch innerhalb der nächsten Stunde aktualisiert.", "system_packages": "Systempakete", @@ -317,7 +317,7 @@ "certificate_authority": "Zertifizierungsstelle", "validity": "Gültigkeit", "domain_is_eligible_for_ACME": "Die Domain scheint korrekt konfiguriert zu sein, um ein Let's Encrypt Zertifikat installieren zu können !", - "domain_not_eligible_for_ACME": "Die Domain scheint nicht korrekt konfiguriert zu sein, um ein Let's Encrypt Zertifikat installieren zu können ! Bitte überprüfe deine DNS-Konfiguration und die Erreichbarkeit deines HTTP-Servers.", + "domain_not_eligible_for_ACME": "Die Domain scheint nicht korrekt konfiguriert zu sein, um ein Let's Encrypt Zertifikat installieren zu können! Bitte überprüfen Sie Ihre DNS-Konfiguration und die Erreichbarkeit Ihres HTTP-Servers. Der 'DNS records' und 'Web' Bereich in der Diagnose Seite kann Ihnen helfen zu verstehen, was falsch konfiguriert ist.", "install_letsencrypt_cert": "Let's Encrypt Zertifikat installieren", "manually_renew_letsencrypt_message": "Das Zertifikat wird, innerhalb der letzten 15 Tage bevor es ungültig wird, automatisch erneuert. Du kannst es aber auch manuell erneuern. (Nicht empfohlen).", "manually_renew_letsencrypt": "Jetzt manuell erneuern", @@ -475,12 +475,13 @@ "all": "Alle", "confirm_service_restart": "Bist du sicher, dass du %s neustarten möchtest?", "run_first_diagnosis": "Initiale Diagnose läuft", - "diagnosis_first_run": "Die Diagnose Funktion wird versuchen, gängige Probleme in verschiedenen Teilen deines Servers zu finden, damit alles reibungslos läuft. Bitte werde nicht panisch, wenn du ein paar Fehlermeldungen siehst nachdem du deinen Server aufgesetzt hast: es soll versuchen dir zu helfen, Probleme zu identifizieren und Tipps für Lösungen zu zeigen. Die Diagnose wird auch automatisch zweimal täglich ausgeführt, falls Fehler gefunden werden, bekommt der Administrator ein E-Mail.", + "diagnosis_first_run": "Die Diagnosefunktion wird versuchen, gängige Probleme in verschiedenen Teilen Ihres Servers zu finden. Bitte werden Sie nicht panisch, wenn Sie ein paar Fehlermeldungen sehen, nachdem Sie Ihren Server aufgesetzt haben: Es soll Ihnen hauptsächlich helfen, Probleme zu identifizieren und Tipps für Lösungen zu zeigen. Die Diagnose wird auch automatisch zweimal täglich ausgeführt. Falls Fehler gefunden werden, bekommt der Administrator eine E-Mail.", "unmaintained_details": "Diese Anwendung wurde seit einiger Zeit nicht gewartet und der frühere Wart hat die Anwendung aufgegeben oder hat keine Zeit mehr für die Wartung. Du bist herzlich eingeladen dir die Quellen und Unterlagen anzusehen und Hilfe zu leisten", "group_explain_visitors_needed_for_external_client": "Sei vorsichtig und beachte, dass du manche Anwendungen für externe Besucher freigeben musst, falls du beabsichtigst, diese mit externen Clients aufzurufen. Zum Beispiel trifft das auf Nextcloud zu, wenn du eine Synchronisation auf dem Smartphone oder Desktop PC haben möchtest.", "groups": "Gruppen", "issues": "%s Probleme", "restart": "Neustart", - "operation_failed_explanation": "Die Operation ist fehlgeschlagen! Das tut uns leid :( Du kannst dir hier Hilfe holen. Bitte stelle *die ganzen Logs* der Operation bereit, damit dir besser geholfen werden kann. Dies tust du, indem du auf den grünen 'mit Yunopaste teilen' Knopf drückst. Wenn du die Logs teilst wird Yunohost automatisch versuchen deine privaten Daten wie Domainnamen und IP's zu anonymisieren.", - "diagnosis_explanation": "Die Diagnose Funktion wird versuchen, gängige Probleme in verschiedenen Teilen deines Servers zu finden, damit alles reibungslos läuft. Die Diagnose wird auch automatisch zweimal täglich ausgeführt, falls Fehler gefunden werden, bekommt der Administrator ein E-Mail. Beachte, dass einige tests nicht relevant sind, wenn du einzelne Features (zum Beispiel XMPP) nicht benutzt oder du ein komplexes Setup hast. In diesem Fall und wenn du weisst was du tust ist es in Ordnung die dazugehoerigen Warnungen und Hinweise zu ignorieren." + "operation_failed_explanation": "Die Operation ist fehlgeschlagen! Das tut uns leid :( Sie können Sich hier Hilfe holen. Bitte stellen Sie *die ganzen Logs* der Operation bereit, damit Ihnen besser geholfen werden kann. Dies tun Sie, indem Sie auf den grünen 'mit Yunopaste teilen' Knopf drücken. Wenn Sie die Logs teilen, wird Yunohost automatisch versuchen Ihre privaten Daten wie Domainnamen und IP's zu anonymisieren.", + "diagnosis_explanation": "Die Diagnose Funktion wird versuchen, gängige Probleme in verschiedenen Teilen deines Servers zu finden, damit alles reibungslos läuft. Die Diagnose wird auch automatisch zweimal täglich ausgeführt, falls Fehler gefunden werden, bekommt der Administrator ein E-Mail. Beachte, dass einige tests nicht relevant sind, wenn du einzelne Features (zum Beispiel XMPP) nicht benutzt oder du ein komplexes Setup hast. In diesem Fall und wenn du weisst was du tust ist es in Ordnung die dazugehoerigen Warnungen und Hinweise zu ignorieren.", + "pending_migrations": "Es gibt einige ausstehende Migrationen, die darauf warten, ausgeführt zu werden. Bitte gehen Sie auf Werkzeuge > Migrationen um diese auszuführen." } From 09b674b5cac4d9bdc2b89b9b88f071c219342d65 Mon Sep 17 00:00:00 2001 From: Titus PiJean Date: Fri, 4 Sep 2020 21:02:08 +0000 Subject: [PATCH 88/91] Translated using Weblate (French) Currently translated at 99.7% (351 of 352 strings) Translation: YunoHost/admin Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/ --- src/locales/fr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/fr.json b/src/locales/fr.json index 686e5739..29939300 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -426,7 +426,7 @@ "purge_user_data_warning": "La purge des données de l’utilisateur n’est pas réversible. Assurez-vous de savoir ce que vous faites !", "version": "Version", "confirm_update_system": "Voulez-vous vraiment mettre à jour tous les paquets système ?", - "app_state_inprogress_explanation": "Le/La responsable de cette application à déclaré(e) que l'application suivante n'est pas encore prête à être utilisée en production. SOYEZ VIGILANT(E)", + "app_state_inprogress_explanation": "Le mainteneur de cette application précise que cette application n'est pas encore prête à être utilisée en production. SOYEZ PRUDENTS !", "app_state_notworking_explanation": "Le responsable de cette application a déclaré celle-ci comme \"non fonctionnelle\". SON INSTALLATION POURRAIT CASSER VOTRE SYSTÈME !", "app_state_high-quality": "bonne qualité", "app_state_high-quality_explanation": "Cette application est bien intégrée à YunoHost. Elle a été (et est !) revue par l'équipe applicative de YunoHost. On peut s'attendre à ce qu'elle soit sûre et maintenue sur le long terme.", From b82fdbb278e0c77fa0db558656d48e779d93abed Mon Sep 17 00:00:00 2001 From: Yifei Ding Date: Tue, 1 Sep 2020 16:15:50 +0000 Subject: [PATCH 89/91] Translated using Weblate (Chinese (Simplified)) Currently translated at 11.4% (40 of 352 strings) Translation: YunoHost/admin Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/zh_Hans/ --- src/locales/zh_Hans.json | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/locales/zh_Hans.json b/src/locales/zh_Hans.json index 53675b7c..e13b1138 100644 --- a/src/locales/zh_Hans.json +++ b/src/locales/zh_Hans.json @@ -12,5 +12,31 @@ "cancel": "取消", "ok": "好", "password": "密码", - "logged_in": "登录" + "logged_in": "登录", + "configuration": "配置", + "close": "关闭", + "check": "检查", + "catalog": "目录", + "both": "同时", + "begin": "开始", + "backups_no": "无备份", + "backup_optional_password": "可选密码", + "backup_optional_encryption": "可选加密", + "backup_new": "新备份", + "backup_create": "创建一个备份", + "backup_content": "备份内容", + "backup_action": "备份", + "backup": "备份", + "applications": "应用程序", + "app_state_working": "工作", + "app_state_high-quality": "高质量", + "app_state_notworking": "不工作", + "app_make_default": "设为默认", + "app_install_custom_no_manifest": "manifest.json文件不存在", + "app_install_cancel": "安装已取消。", + "app_info_uninstall_desc": "删除此应用程序。", + "app_info_default_desc": "重定向域根到这个应用(%s)。", + "app_info_changelabel_desc": "在门户中修改应用标签。", + "unignore": "取消忽略", + "last_ran": "最近一次运行:" } From 5ee0b7633bb48b82be68d41d03e0a36cf7524387 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Sat, 5 Sep 2020 18:45:40 +0200 Subject: [PATCH 90/91] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Éric Gaspar <46165813+ericgaspar@users.noreply.github.com> --- src/locales/fr.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/locales/fr.json b/src/locales/fr.json index 29939300..c609203e 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -65,7 +65,7 @@ "confirm_change_maindomain": "Voulez-vous vraiment changer le domaine principal ?", "confirm_delete": "Voulez-vous vraiment supprimer %s ?", "confirm_firewall": "Voulez-vous vraiment %s le port %s (protocole: %s, connexion: %s)", - "confirm_install_custom_app": "ATTENTION! L’installation d’applications tierces peut compromettre l’intégrité et la sécurité de votre système. Vous ne devriez probablement PAS l’installer si vous ne savez pas ce que vous faites. Prenez-vous ce risque ?", + "confirm_install_custom_app": "ATTENTION ! L’installation d’applications tierces peut compromettre l’intégrité et la sécurité de votre système. Vous ne devriez probablement PAS l’installer si vous ne savez pas ce que vous faites. Prenez-vous ce risque ?", "confirm_install_domain_root": "Vous ne pourrez pas installer d'autres applications sur %s. Continuer ?", "confirm_postinstall": "Vous êtes sur le point de lancer le processus de post-installation sur le domaine %s. Cela peut prendre du temps, *n'interrompez pas l'opération avant la fin*.", "confirm_restore": "Voulez-vous vraiment restaurer %s ?", @@ -396,7 +396,7 @@ "confirm_install_app_warning": "Avertissement : cette application peut fonctionner mais n’est pas bien intégrée dans YunoHost. Certaines fonctionnalités telles que l’authentification unique et la sauvegarde/restauration pourraient ne pas être disponibles.", "confirm_install_app_danger": "AVERTISSEMENT ! Cette application est encore expérimentale et risque de casser votre système ! Vous ne devriez probablement PAS l’installer si vous ne savez pas ce que vous faites. Voulez-vous vraiment prendre ce risque ?", "current_maintainer_title": "Mainteneur actuel de ce paquet", - "error_connection_interrupted": "Le serveur a fermé la connexion au lieu d’y répondre. Est-ce que nginx ou l'API YunoHost aurait été redémarré ou arrêté ? (code/message d’erreur : %s)", + "error_connection_interrupted": "Le serveur a fermé la connexion au lieu d’y répondre. Est-ce que NGINX ou l'API YunoHost aurait été redémarré ou arrêté ? (code/message d’erreur : %s)", "experimental_warning": "Attention : cette fonctionnalité est expérimentale et ne doit pas être considérée comme stable, vous ne devriez pas l’utiliser à moins que vous ne sachiez ce que vous faites...", "good_practices_about_admin_password": "Vous êtes maintenant sur le point de définir un nouveau mot de passe administrateur. Le mot de passe doit comporter au moins 8 caractères — bien qu’il soit recommandé d’utiliser un mot de passe plus long (c’est-à-dire une phrase secrète) et/ou d’utiliser différents types de caractères (majuscules, minuscules, chiffres et caractères spéciaux).", "good_practices_about_user_password": "Vous êtes maintenant sur le point de définir un nouveau mot de passe pour l'utilisateur. Le mot de passe doit comporter au moins 8 caractères - bien qu’il soit recommandé d’utiliser un mot de passe plus long (c’est-à-dire une phrase secrète) et/ou d’utiliser différents types de caractères tels que : majuscules, minuscules, chiffres et caractères spéciaux.", From a8c66ba244ca026d7b322e0187154dcf63310550 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Sat, 5 Sep 2020 18:51:02 +0200 Subject: [PATCH 91/91] Update fr.json --- src/locales/fr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/fr.json b/src/locales/fr.json index c609203e..24757f7c 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -139,7 +139,7 @@ "hook_data_home": "Données de l’utilisateur", "hook_data_home_desc": "Les données de l’utilisateur situées dans /home/USER", "hook_data_mail": "Courriel", - "hook_data_mail_desc": "Les courriels au format brut sont stockés sur le serveur", + "hook_data_mail_desc": "Courriels (au format brut) stockés sur le serveur", "hostname": "Nom d'hôte", "id": "ID", "inactive": "Inactif",