[i18n] More translations for flash messages. More french.

This commit is contained in:
opi 2014-05-13 16:37:05 +02:00
parent 5f98e37d4b
commit 44b74724ed
8 changed files with 252 additions and 189 deletions

107
js/app.js
View file

@ -101,8 +101,9 @@ app = Sammy('#main', function (sam) {
installing = true; installing = true;
}, 1500); }, 1500);
$('#popup-title').text('Installing'); $('#popup-title').text(y18n.t('installing'));
$('#popup-body').html('<p>YunoHost is being installed on <strong>'+ data.domain +'</strong>. It may take a few minutes ...</p><br><div class="text-center"><img src="img/ajax-loader.gif"></div><br>'); $('#popup-body').html('<p>'+y18n.t('installation_complete_wait', [data.domain])+'</p>');
$('#popup-body').append('<div class="loader-content"><img src="img/ajax-loader.gif"></div>');
$('#popup').modal('show'); $('#popup').modal('show');
} else { } else {
loaded = false; loaded = false;
@ -137,7 +138,7 @@ app = Sammy('#main', function (sam) {
.fail(function(xhr) { .fail(function(xhr) {
if (xhr.status == 401) { if (xhr.status == 401) {
$('#popup').modal('hide'); $('#popup').modal('hide');
c.flash('fail', 'Wrong password'); c.flash('fail', y18n.t('wrong_password'));
} else if (typeof xhr.responseJSON !== 'undefined') { } else if (typeof xhr.responseJSON !== 'undefined') {
$('#popup').modal('hide'); $('#popup').modal('hide');
c.flash('fail', xhr.responseJSON.error); c.flash('fail', xhr.responseJSON.error);
@ -145,22 +146,25 @@ app = Sammy('#main', function (sam) {
if (uri == '/postinstall') { if (uri == '/postinstall') {
if (installing) { if (installing) {
if (args.domain.match(/\.nohost\.me$/) || args.domain.match(/\.noho\.st$/)) { if (args.domain.match(/\.nohost\.me$/) || args.domain.match(/\.noho\.st$/)) {
$('#popup-title').text('Installed'); $('#popup-title').text(y18n.t('installed'));
$('#popup-body p').text('YunoHost has been successfully installed, we\'ll wait for DNS to be propagated. It will take 3 minutes ...'); $('#popup-body p').text(y18n.t('installation_complete_dns'));
interval = 180000; interval = 180000;
} else { } else {
interval = 5000; interval = 5000;
} }
setInterval(function () { setInterval(function () {
$('#popup-title').text('Installation complete'); $('#popup-title').text(y18n.t('installation_complete'));
$('#popup-body').html('<p>YunoHost has been successfully installed, please go to <a href="https://'+ args.domain +'/yunohost/admin" target="_blank"><strong>https://'+ args.domain +'/yunohost/admin</strong></a> and create your first user.</p><br><p><small><a href="https://doc.yunohost.org/#/dns" target="_blank">Not working ?</a></small></p>'); $('#popup-body').html(
'<p>'+ y18n.t('installation_complete_desc', ['https://'+ args.domain +'/yunohost/admin']) +'</p>'
+ '<br>'
+ '<p><small>'+ y18n.t('installation_complete_help_dns') +'</small></p>');
}, interval); }, interval);
} else { } else {
$('#popup').modal('hide'); $('#popup').modal('hide');
c.flash('fail', 'An error occured, try again'); c.flash('fail', y18n.t('error_occured'));
} }
} else { } else {
c.flash('fail', 'Server error'); c.flash('fail', y18n.t('error_server'));
} }
} }
store.clear('slide'); store.clear('slide');
@ -277,32 +281,14 @@ app = Sammy('#main', function (sam) {
* *
*/ */
sam.get('#/', function (c) { sam.get('#/', function (c) {
c.api('/users', function(data) {
// Show development note
c.flash('info', '<b>You are using a development version.</b><br />' +
'Please note that you can use the <a href="https://doc.yunohost.org/#/moulinette" target="_blank" class="alert-link">moulinette</a> if you want to access to more YunoHost\'s features.');
// Available sections
data = {links: [
{name: "Users", path: '#/users'},
{name: "Domains", path: '#/domains'},
{name: "Applications", path: '#/apps'},
{name: "Services", path: '#/services'},
{name: "Monitoring", path: '#/monitor'},
{name: "Tools", path: '#/tools'},
{name: "Backup", path: '#/backup'},
]};
c.api('/users', function(data2) {
// Warn admin if no users are created. // Warn admin if no users are created.
if (data2.Users.length == 0) { if (data.Users.length == 0) {
c.flash('warning', "You probably need to <a href='#/users/create' class='alert-link'>create a user</a> first."); c.flash('warning', y18n.t('warning_first_user'));
} }
c.view('home', data); c.view('home');
}); });
}); });
sam.get('#/login', function (c) { sam.get('#/login', function (c) {
@ -338,7 +324,7 @@ app = Sammy('#main', function (sam) {
c.api('/users', function(data) { c.api('/users', function(data) {
store.set('connected', true); store.set('connected', true);
$('.logout-button').fadeIn(); $('.logout-button').fadeIn();
c.flash('success', 'Logged in'); c.flash('success', y18n.t('logged_in'));
if (store.get('path')) { if (store.get('path')) {
c.redirect(store.get('path')); c.redirect(store.get('path'));
} else { } else {
@ -346,7 +332,7 @@ app = Sammy('#main', function (sam) {
} }
}); });
} else { } else {
c.flash('fail', 'Non-compatible API'); c.flash('fail', y18n.t('non_compatible_api'));
c.redirect('#/login'); c.redirect('#/login');
} }
}); });
@ -358,7 +344,7 @@ app = Sammy('#main', function (sam) {
store.clear('password'); store.clear('password');
store.clear('connected'); store.clear('connected');
store.set('path', '#/'); store.set('path', '#/');
c.flash('success', 'Logged out'); c.flash('success', y18n.t('logged_out'));
c.redirect('#/login'); c.redirect('#/login');
}); });
@ -370,7 +356,7 @@ app = Sammy('#main', function (sam) {
if (c.params['password'] == c.params['confirmation']) { if (c.params['password'] == c.params['confirmation']) {
if (c.params['domain'] == '') { if (c.params['domain'] == '') {
if (c.params['ddomain'] == '') { if (c.params['ddomain'] == '') {
c.flash('fail', "You should indicate a domain"); c.flash('fail', y18n.t('error_select_domain'));
store.clear('slide'); store.clear('slide');
c.redirect('#/postinstall'); c.redirect('#/postinstall');
} else { } else {
@ -389,7 +375,7 @@ app = Sammy('#main', function (sam) {
c.redirect('#/'); c.redirect('#/');
}, 'POST', params); }, 'POST', params);
} else { } else {
c.flash('fail', "Passwords don't match"); c.flash('fail', y18n.t('passwords_dont_match'));
} }
}); });
@ -413,7 +399,7 @@ app = Sammy('#main', function (sam) {
sam.post('#/users', function (c) { sam.post('#/users', function (c) {
if (c.params['password'] == c.params['confirmation']) { if (c.params['password'] == c.params['confirmation']) {
if (c.params['password'].length < 4) { if (c.params['password'].length < 4) {
c.flash('fail', "Password is too short"); c.flash('fail', y18n.t('password_too_short'));
store.clear('slide'); store.clear('slide');
} }
else { else {
@ -423,7 +409,7 @@ app = Sammy('#main', function (sam) {
}, 'POST', c.params.toHash()); }, 'POST', c.params.toHash());
} }
} else { } else {
c.flash('fail', "Passwords don't match"); c.flash('fail', y18n.t('passwords_dont_match'));
store.clear('slide'); store.clear('slide');
//c.redirect('#/users/create'); //c.redirect('#/users/create');
} }
@ -448,14 +434,14 @@ app = Sammy('#main', function (sam) {
}); });
if ($.isEmptyObject(params)) { if ($.isEmptyObject(params)) {
c.flash('fail', 'You should modify something'); c.flash('fail', y18n.t('error_modify_something'));
store.clear('slide'); store.clear('slide');
// c.redirect('#/users/'+ c.params['user'] + '/edit'); // c.redirect('#/users/'+ c.params['user'] + '/edit');
} else { } else {
if (params['password']) { if (params['password']) {
if (params['password'] == params['confirmation']) { if (params['password'] == params['confirmation']) {
if (params['password'].length < 4) { if (params['password'].length < 4) {
c.flash('fail', "Password is too short"); c.flash('fail', y18n.t('password_too_short'));
store.clear('slide'); store.clear('slide');
} }
else { else {
@ -465,7 +451,7 @@ app = Sammy('#main', function (sam) {
}, 'PUT', params); }, 'PUT', params);
} }
} else { } else {
c.flash('fail', "Passwords don't match"); c.flash('fail', y18n.t('passwords_dont_match'));
store.clear('slide'); store.clear('slide');
} }
} }
@ -478,7 +464,7 @@ app = Sammy('#main', function (sam) {
}); });
sam.get('#/users/:user/delete', function (c) { sam.get('#/users/:user/delete', function (c) {
if (confirm('Are you sure you want to delete '+ c.params['user'] +' ?')) { if (confirm(y18n.t('confirm_delete', [c.params['user']]))) {
c.api('/users/'+ c.params['user'], function(data) { // http://api.yunohost.org/#!/user/user_delete_delete_4 c.api('/users/'+ c.params['user'], function(data) { // http://api.yunohost.org/#!/user/user_delete_delete_4
c.redirect('#/users'); c.redirect('#/users');
}, 'DELETE'); }, 'DELETE');
@ -518,7 +504,7 @@ app = Sammy('#main', function (sam) {
sam.post('#/domains/add', function (c) { sam.post('#/domains/add', function (c) {
if (c.params['domain'] == '') { if (c.params['domain'] == '') {
if (c.params['ddomain'] == '') { if (c.params['ddomain'] == '') {
c.flash('fail', "You should indicate a domain"); c.flash('fail', y18n.t('error_select_domain'));
store.clear('slide'); store.clear('slide');
c.redirect('#/domains/add'); c.redirect('#/domains/add');
} }
@ -533,7 +519,7 @@ app = Sammy('#main', function (sam) {
}); });
sam.get('#/domains/:domain/delete', function (c) { sam.get('#/domains/:domain/delete', function (c) {
if (confirm('Are you sure you want to delete '+ c.params['domain'] +' ?')) { if (confirm(y18n.t('confirm_delete', [c.params['domain']]))) {
c.api('/domains/'+ c.params['domain'], function(data) { // http://api.yunohost.org/#!/domain/domain_remove_delete_3 c.api('/domains/'+ c.params['domain'], function(data) { // http://api.yunohost.org/#!/domain/domain_remove_delete_3
store.clear('slide'); store.clear('slide');
c.redirect('#/domains'); c.redirect('#/domains');
@ -547,10 +533,10 @@ app = Sammy('#main', function (sam) {
// Set default domain // Set default domain
sam.post('#/domains', function (c) { sam.post('#/domains', function (c) {
if (c.params['domain'] == '') { if (c.params['domain'] == '') {
c.flash('fail', "You should select a domain default domain"); c.flash('fail', y18n.t('error_select_domain'));
store.clear('slide'); store.clear('slide');
c.redirect('#/domains'); c.redirect('#/domains');
} else if (confirm('Are you sure you want to change the main domain ?')) { } else if (confirm(y18n.t('confirm_change_maindomain'))) {
params = {'new_domain': c.params['domain']} params = {'new_domain': c.params['domain']}
c.api('/domain/main', function(data) { // http://api.yunohost.org/#!/tools/tools_maindomain_put_1 c.api('/domain/main', function(data) { // http://api.yunohost.org/#!/tools/tools_maindomain_put_1
@ -674,7 +660,7 @@ app = Sammy('#main', function (sam) {
}); });
sam.get('#/apps/:app/uninstall', function (c) { sam.get('#/apps/:app/uninstall', function (c) {
if (confirm('Are you sure you want to uninstall '+ c.params['app'] +' ?')) { if (confirm(y18n.t('confirm_uninstall', [c.params['app']]))) {
c.api('/app?app='+ c.params['app'], function() { // http://api.yunohost.org/#!/app/app_remove_delete_4 c.api('/app?app='+ c.params['app'], function() { // http://api.yunohost.org/#!/app/app_remove_delete_4
c.redirect('#/apps'); c.redirect('#/apps');
}, 'DELETE'); }, 'DELETE');
@ -731,7 +717,7 @@ app = Sammy('#main', function (sam) {
// Remove all access // Remove all access
sam.get('#/apps/:app/access/remove', function (c) { sam.get('#/apps/:app/access/remove', function (c) {
if (confirm('Are you sure you want to remove all access to '+ c.params['app'] +' ?')) { if (confirm(y18n.t('confirm_access_remove_all', [c.params['app']]))) {
params = {'apps': c.params['app'], 'users':[]} params = {'apps': c.params['app'], 'users':[]}
c.api('/app/access?'+c.serialize(params), function(data) { // http://api.yunohost.org/#!/app/app_removeaccess_delete_12 c.api('/app/access?'+c.serialize(params), function(data) { // http://api.yunohost.org/#!/app/app_removeaccess_delete_12
store.clear('slide'); store.clear('slide');
@ -745,7 +731,7 @@ app = Sammy('#main', function (sam) {
// Remove access to a specific user // Remove access to a specific user
sam.get('#/apps/:app/access/remove/:user', function (c) { sam.get('#/apps/:app/access/remove/:user', function (c) {
if (confirm('Are you sure you want to remove access to '+ c.params['app'] +' for '+ c.params['user'] +' ?')) { if (confirm(y18n.t('confirm_access_remove_user', [c.params['app'], c.params['user']]))) {
params = {'apps': c.params['app'], 'users': c.params['user']} params = {'apps': c.params['app'], 'users': c.params['user']}
c.api('/app/access?'+c.serialize(params), function(data) { // http://api.yunohost.org/#!/app/app_removeaccess_delete_12 c.api('/app/access?'+c.serialize(params), function(data) { // http://api.yunohost.org/#!/app/app_removeaccess_delete_12
store.clear('slide'); store.clear('slide');
@ -759,7 +745,7 @@ app = Sammy('#main', function (sam) {
// Grant all access // Grant all access
sam.get('#/apps/:app/access/add', function (c) { sam.get('#/apps/:app/access/add', function (c) {
if (confirm('Are you sure you want to add access to '+ c.params['app'] +' for all users ?')) { if (confirm(y18n.t('confirm_access_add_all', [c.params['app']]))) {
params = {'apps': c.params['app'], 'users': null} params = {'apps': c.params['app'], 'users': null}
c.api('/app/access', function() { // http://api.yunohost.org/#!/app/app_addaccess_put_13 c.api('/app/access', function() { // http://api.yunohost.org/#!/app/app_addaccess_put_13
store.clear('slide'); store.clear('slide');
@ -782,7 +768,7 @@ app = Sammy('#main', function (sam) {
// Clear access (reset) // Clear access (reset)
sam.get('#/apps/:app/access/clear', function (c) { sam.get('#/apps/:app/access/clear', function (c) {
if (confirm('Are you sure you want to clear all access to '+ c.params['app'] +' ?')) { if (confirm(y18n.t('confirm_access_clear_all', [c.params['app']]))) {
params = {'apps': c.params['app']} params = {'apps': c.params['app']}
c.api('/app/access', function() { // c.api('/app/access', function() { //
store.clear('slide'); store.clear('slide');
@ -796,7 +782,7 @@ app = Sammy('#main', function (sam) {
// Make app default // Make app default
sam.get('#/apps/:app/default', function (c) { sam.get('#/apps/:app/default', function (c) {
if (confirm('Are you sure you want to make this app default ?')) { if (confirm(y18n.t('confirm_app_default'))) {
params = {'app': c.params['app']} params = {'app': c.params['app']}
c.api('/app/default', function() { // c.api('/app/default', function() { //
store.clear('slide'); store.clear('slide');
@ -856,7 +842,7 @@ app = Sammy('#main', function (sam) {
// Enable/Disable & Start/Stop service // Enable/Disable & Start/Stop service
sam.get('#/services/:service/:action', function (c) { sam.get('#/services/:service/:action', function (c) {
if (confirm('Are you sure you want to '+ c.params['action'] +' '+ c.params['service'] +' ?')) { if (confirm(y18n.t('confirm_service_action', [y18n.t(c.params['action']), c.params['service']]))) {
params = { 'names': c.params['service'] } params = { 'names': c.params['service'] }
c.api('/service/'+ c.params['action'], function(data) { c.api('/service/'+ c.params['action'], function(data) {
store.clear('slide'); store.clear('slide');
@ -918,12 +904,7 @@ app = Sammy('#main', function (sam) {
*/ */
sam.get('#/tools', function (c) { sam.get('#/tools', function (c) {
// Available tools c.view('tools/tools_list');
data = {links: [
{name: "Change administration password", path: '#/tools/adminpw'},
{name: "System update", path: '#/tools/update'},
]};
c.view('tools/tools_list', data);
}); });
// Update administration password // Update administration password
@ -936,11 +917,11 @@ app = Sammy('#main', function (sam) {
if (value !== '') { params[key] = value; } if (value !== '') { params[key] = value; }
}); });
if ($.isEmptyObject(params)) { if ($.isEmptyObject(params)) {
c.flash('fail', 'You should modify something'); c.flash('fail', y18n.t('error_modify_something'));
store.clear('slide'); store.clear('slide');
c.redirect('#/tools/adminpw'); c.redirect('#/tools/adminpw');
} else if (params['new_password'] !== params['confirm_new_password']) { } else if (params['new_password'] !== params['confirm_new_password']) {
c.flash('fail', 'Your password didn\'t match'); c.flash('fail', y18n.t('passwords_dont_match'));
store.clear('slide'); store.clear('slide');
c.redirect('#/tools/adminpw'); c.redirect('#/tools/adminpw');
} else { } else {
@ -967,11 +948,11 @@ app = Sammy('#main', function (sam) {
sam.get('#/tools/upgrade/:type', function (c) { sam.get('#/tools/upgrade/:type', function (c) {
if (c.params['type'] !== 'apps' && c.params['type'] !== 'packages') { if (c.params['type'] !== 'apps' && c.params['type'] !== 'packages') {
c.flash('fail', 'Error'); c.flash('fail', y18n.t('error_server'));
store.clear('slide'); store.clear('slide');
c.redirect('#/tools/update'); c.redirect('#/tools/update');
} }
if (confirm('Are you sure you want update every '+c.params['type']+' ?')) { if (confirm(y18n.t('confirm_update_type', [y18n.t('system_'+c.params['type']).toLowerCase()]))) {
params = { params = {
'ignore_packages': (c.params['type'] == 'packages') ? false : true, 'ignore_packages': (c.params['type'] == 'packages') ? false : true,
'ignore_apps': (c.params['type'] == 'apps') ? false : true, 'ignore_apps': (c.params['type'] == 'apps') ? false : true,

View file

@ -31,19 +31,51 @@
"stop" : "Stop", "stop" : "Stop",
"log" : "Log", "log" : "Log",
"installing" : "Installing",
"installed" : "Installed",
"installation_complete" : "Installation complete",
"installation_complete_wait" : "YunoHost is being installed on <strong>%s</strong>. It may take a few minutes…",
"installation_complete_dns" : "YunoHost has been successfully installed, we'll wait for DNS to be propagated. It will take 3 minutes…",
"installation_complete_desc" : "YunoHost has been successfully installed, please go to <a href='%s'>%s</a> and create your first user.",
"installation_complete_help_dns" : "<a href='https://doc.yunohost.org/#/dns' target='_blank'>Not working ?</a>",
"wrong_password" : "Wrong password",
"passwords_dont_match" : "Passwords don't match",
"passwords_too_short" : "Password is too short",
"logged_in" : "Logged in",
"logged_out" : "Logged out",
"error_occured" : "An error occured, try again",
"error_server" : "Server error",
"error_select_domain" : "You should indicate a domain",
"error_modify_something" : "You should modify something",
"non_compatible_api" : "Non-compatible API",
"warning_first_user" : "You probably need to <a href='#/users/create' class='alert-link'>create a user</a> first.",
"confirm_delete" : "Are you sure you want to delete %s ?",
"confirm_change_maindomain" : "Are you sure you want to change the main domain ?",
"confirm_uninstall" : "Are you sure you want to uninstall %s ?",
"confirm_access_remove_all" : "Are you sure you want to remove all access to %s ?",
"confirm_access_remove_user" : "Are you sure you want to remove access to %s for %s ?",
"confirm_access_add" : "Are you sure you want to add access to %s for all users ?",
"confirm_access_clear" : "Are you sure you want to clear all access to %s ?",
"confirm_app_default" : "Are you sure you want to make this app default ?",
"confirm_service_action" : "Are you sure you want to %s %s ?",
"confirm_update_type" : "Are you sure you want update every %s %s ?",
"postinstall_intro" : "A last step is necessary to fulfill the installation: You have to link your YunoHost instance to a domain name, and set a new administrator password.", "postinstall_intro" : "A last step is necessary to fulfill the installation: You have to link your YunoHost instance to a domain name, and set a new administrator password.",
"application" : "Application",
"applications" : "Applications",
"install" : "Install", "install" : "Install",
"installed_apps" : "Installed apps", "installed_apps" : "Installed apps",
"refresh_app_list" : "Refresh list", "refresh_app_list" : "Refresh list",
"available_apps" : "Available apps", "available_apps" : "Available apps",
"no_installed_apps" : "No installed apps.", "no_installed_apps" : "No installed apps.",
"app_list" : "App list", "app_list" : "App list",
"install" : "Install",
"uninstall" : "Uninstall", "uninstall" : "Uninstall",
"install_name" : "Install %s", "install_name" : "Install %s",
"label_for_manifestname" : "Label for %s", "label_for_manifestname" : "Label for %s",
"app_info_access_desc" : "Manage user access. Allowed users: %s.", "app_info_access_desc" : "Manage user access. Allowed users: %s.",
"app_info_default_desc" : "Redirect domain root to this application (%s).", "app_info_default_desc" : "Redirect domain root to this application (%s).",
"app_info_uninstall_desc" : "Remove this application.", "app_info_uninstall_desc" : "Remove this application.",
"app_access" : "Access", "app_access" : "Access",
@ -111,7 +143,6 @@
"fs_type" : "FS Type", "fs_type" : "FS Type",
"mount_point" : "Mount point", "mount_point" : "Mount point",
"size" : "Size", "size" : "Size",
"used" : "Used",
"available" : "Available", "available" : "Available",
"io" : "I/O", "io" : "I/O",
"read" : "Read", "read" : "Read",
@ -134,12 +165,12 @@
"system_update" : "System update", "system_update" : "System update",
"system_upgrade" : "System upgrade", "system_upgrade" : "System upgrade",
"system_upgrade_btn" : "Upgrade",
"system_packages" : "Packages", "system_packages" : "Packages",
"system_packages_btn" : "Upgrade packages",
"system_packages_desc" : "There is no packages to upgrade.",
"system_apps" : "Apps", "system_apps" : "Apps",
"system_apps_btn" : "Upgrade apps", "system_packages_nothing" : "There is no packages to upgrade.",
"system_apps_desc" : "There is no apps to upgrade.", "system_apps_nothing" : "There is no apps to upgrade.",
"no_log" : "No log.",
"users" : "Users", "users" : "Users",
"users_new" : "New user", "users_new" : "New user",

View file

@ -5,7 +5,7 @@
"administration_password" : "Mot de passe d'administration", "administration_password" : "Mot de passe d'administration",
"password_confirmation" : "Confirmation du mot de passe", "password_confirmation" : "Confirmation du mot de passe",
"password_new" : "New password", "password_new" : "New password",
"password_description" : "Password must be at least 4 characters long.", "password_description" : "Le mot de passe doit faire au moins 4 caractères.",
"login" : "Connexion", "login" : "Connexion",
"logout" : "Déconnexion", "logout" : "Déconnexion",
"loading" : "Chargement", "loading" : "Chargement",
@ -19,140 +19,167 @@
"mode" : "Mode", "mode" : "Mode",
"url" : "URL", "url" : "URL",
"operations" : "Operations", "operations" : "Operations",
"add" : "Add", "add" : "Ajouter",
"save" : "Save", "save" : "Sauvegarder",
"delete" : "Delete", "delete" : "Supprimer",
"default" : "Default", "default" : "Défaut",
"set_default" : "Set default", "set_default" : "Définir par défaut",
"status" : "Status", "status" : "Statut",
"disable" : "Disable", "disable" : "Désactiver",
"enable" : "Enable", "enable" : "Activer",
"start" : "Start", "start" : "Démarrer",
"stop" : "Stop", "stop" : "Arrêter",
"log" : "Log", "log" : "Journal",
"installing" : "Installing",
"installed" : "Installed",
"installation_complete" : "Installation complete",
"installation_complete_wait" : "YunoHost is being installed on <strong>%s</strong>. It may take a few minutes…",
"installation_complete_dns" : "YunoHost has been successfully installed, we'll wait for DNS to be propagated. It will take 3 minutes…",
"installation_complete_desc" : "YunoHost has been successfully installed, please go to <a href='%s'>%s</a> and create your first user.",
"installation_complete_help_dns" : "<a href='https://doc.yunohost.org/#/dns' target='_blank'>Not working ?</a>",
"wrong_password" : "Mot de passe incorrect",
"passwords_dont_match" : "Les mots de passe ne correspondent pas",
"passwords_too_short" : "Mot de passe trop court",
"logged_in" : "Connecté",
"logged_out" : "Déconnecté",
"error_occured" : "Une erreur est survenue, veuillez réessayer.",
"error_server" : "Erreur serveur",
"error_select_domain" : "Vous devez indiquer une domaine.",
"error_modify_something" : "Vous devez modifier quelque chose.",
"non_compatible_api" : "API Non compatible",
"warning_first_user" : "Vous devez probablement d'abord <a href='#/users/create' class='alert-link'>créer un utilisateur</a>.",
"confirm_delete" : "Êtes-vous sur de vouloir supprimer %s ?",
"confirm_change_maindomain" : "Êtes-vous sur de vouloir changer le domaine principal ?",
"confirm_uninstall" : "Êtes-vous sur de vouloir désinstaller %s ?",
"confirm_access_remove_all" : "Êtes-vous sur de vouloir supprimer tous les accès à %s ?",
"confirm_access_remove_user" : "Êtes-vous sur de vouloir supprimer les accès à %s pour %s ?",
"confirm_access_add" : "Êtes-vous sur de vouloir ajouter un accès à %s pour tous les utilisateurs ?",
"confirm_access_clear" : "Êtes-vous sur de vouloir supprimer toutes les règles d'accès à %s ?",
"confirm_app_default" : "Êtes-vous sur de vouloir définir cette application par défaut ?",
"confirm_service_action" : "Êtes-vous sur de vouloir %s %s ?",
"confirm_update_type" : "Êtes-vous sur de vouloir mettre à jour tous les %s ?",
"postinstall_intro" : "A last step is necessary to fulfill the installation: You have to link your YunoHost instance to a domain name, and set a new administrator password.", "postinstall_intro" : "A last step is necessary to fulfill the installation: You have to link your YunoHost instance to a domain name, and set a new administrator password.",
"postinstall_panel_with_domain" : "?? I already have a domain name…",
"postinstall_panel_without_domain" : "?? I don't have a domain name…",
"postinstall_dns_doc" : "?? … and I have <a href='//yunohost.org/dns'>set my DNS correctly</a>.",
"postinstall_dyndns_doc" : "?? … and I want a dynamic DNS service.",
"install" : "Install", "application" : "Application",
"installed_apps" : "Installed apps", "applications" : "Applications",
"refresh_app_list" : "Refresh list", "install" : "Installer",
"available_apps" : "Available apps", "installed_apps" : "Applications installées",
"no_installed_apps" : "No installed apps.", "refresh_app_list" : "Rafraîchir la liste",
"app_list" : "App list", "available_apps" : "Applications disponibles",
"install" : "Install", "no_installed_apps" : "Aucune application installée.",
"app_list" : "Liste des applications",
"uninstall" : "Désinstaller", "uninstall" : "Désinstaller",
"install_name" : "Installer %s", "install_name" : "Installer %s",
"label_for_manifestname" : "Label for %s", "label_for_manifestname" : "Libellé pour %s",
"app_info_access_desc" : "Manage user access. Allowed users: %s.", "app_info_access_desc" : "Gestion des droits d'accès. Utilisateurs autorisés : %s.",
"app_info_default_desc" : "Redirect domain root to this application (%s).", "app_info_default_desc" : "Redirect domain root to this application (%s).",
"app_info_uninstall_desc" : "Remove this application.", "app_info_uninstall_desc" : "Supprimer cette application.",
"app_access" : "Access", "app_access" : "Accès",
"app_make_default" : "Make default", "app_make_default" : "Définir par défaut",
"app_access_title" : "%s access", "app_access_title" : "Accès à %s",
"allowed_users" : "Allowed users", "allowed_users" : "Utilisateurs autorisés",
"remove_access" : "Remove access", "remove_access" : "Retirer les accès",
"view_user_profile" : "View %s's profile", "view_user_profile" : "Voir le profil de %s",
"rveryone_has_access" : "Everyone has access.", "rveryone_has_access" : "Tous les utilisateurs ont accès.",
"no_allowed_users" : "No allowed users.", "no_allowed_users" : "Aucun utilisateur autorisé.",
"select_user" : "Select user", "select_user" : "Choisissez un utilisateur",
"no_user_to_add" : "No more users to add.", "no_user_to_add" : "Aucun utilisateur à ajouter.",
"app_access_addall_desc" : "All existing users will have access to %s.", "app_access_addall_desc" : "Tous les utilisateurs ont accès à %s.",
"app_access_removeall_desc" : "No users will have access to %s.", "app_access_removeall_desc" : "Aucun utilisateur n'a accès à %s.",
"app_access_clearall_desc" : "Every user will have access to %s.", "app_access_clearall_desc" : "Tous les utilisateurs auront accès à %s.",
"app_access_addall_btn" : "Add access to all", "app_access_addall_btn" : "Ajouter l'accès à tous les utilisateurs",
"app_access_removeall_btn" : "Remove all access", "app_access_removeall_btn" : "Supprimer tous les accès",
"app_access_clearall_btn" : "Clear all access", "app_access_clearall_btn" : "Effacer toutes les règles accès",
"backup" : "Backup", "backup" : "Sauvegarde",
"backup_warning_title" : "The backup system is not implemented yet.", "backup_warning_title" : "Le système de sauvegarde n'est pas encore implémenté.",
"backup_warning_desc" : "You should take care of backing up your data yourself for now.", "backup_warning_desc" : "Vous devriez prendre soin de sauvegarder vos données vous-mêmes pour le moment.",
"domain_list" : "Domain list", "domain_list" : "Liste des domaines",
"domain_add" : "Add domain", "domain_add" : "Ajouter un domaine",
"domain_add_panel_with_domain" : "I already have a domain name…", "domain_add_panel_with_domain" : "J'ai déjà un nom de domaine …",
"domain_add_panel_without_domain" : "I don't have a domain name…", "domain_add_panel_without_domain" : "Je n'ai pas de nom de domaine …",
"domain_add_dns_doc" : "… and I have <a href='//yunohost.org/dns'>set my DNS correctly</a>.", "domain_add_dns_doc" : "… et j'ai <a href='//yunohost.org/dns'>configurer mes DNS correctement</a>.",
"domain_add_dyndns_doc" : "… and I want a dynamic DNS service.", "domain_add_dyndns_doc" : "… et je souhaite un service de DNS dynamique.",
"domain_default" : "Default domain", "domain_default" : "Domaine par défaut",
"domain_default_desc" : "The default domain is the connection domain where users log in.", "domain_default_desc" : "Les utilisateurs se connecteront au domaine par défaut.",
"domain_select" : "Select domain", "domain_select" : "Selectionnez un domaine",
"monitoring" : "Monitoring", "monitoring" : "Monitoring",
"hostname" : "Hostname", "hostname" : "Hostname",
"os" : "OS", "os" : "OS",
"uptime" : "Uptime", "uptime" : "Uptime",
"system" : "System", "system" : "Système",
"memory" : "Memory", "memory" : "Memoire",
"ram" : "RAM", "ram" : "RAM",
"swap" : "Swap", "swap" : "Swap",
"used" : "Used", "used" : "Utilisé(e)",
"free" : "Free", "free" : "Libre",
"total" : "Total", "total" : "Total",
"cpu_load" : "CPU Load", "cpu_load" : "Charge CPU",
"count_min" : "%s min", "count_min" : "%s min",
"process" : "Process", "process" : "Process",
"running" : "Running", "running" : "Running",
"sleeping" : "Sleeping", "sleeping" : "Sleeping",
"network" : "Network", "network" : "Réseau",
"public_ip" : "Public IP: ", "public_ip" : "IP Publique : ",
"local_ip" : "Local IP", "local_ip" : "IP Locale",
"gateway" : "Gateway: ", "gateway" : "Passerelle : ",
"interface" : "Interface", "interface" : "Interface",
"ipv4" : "IPv4", "ipv4" : "IPv4",
"ipv6" : "IPv6", "ipv6" : "IPv6",
"usage" : "Usage", "usage" : "Usage",
"time_since_update" : "Time since update: ", "time_since_update" : "Dernière mise-à-jour: ",
"bit_rate" : "Bit rate", "bit_rate" : "Débit",
"cumulative_usage" : "Cumulative usage", "cumulative_usage" : "Cumul",
"transmission" : "Transmission", "transmission" : "Émission",
"reception" : "Reception", "reception" : "Réception",
"disk" : "Disk", "disk" : "Disque",
"filesystem" : "Filesystem", "filesystem" : "Système de fichier",
"fs_type" : "FS Type", "fs_type" : "Type de système de fichier",
"mount_point" : "Mount point", "mount_point" : "Point de montage",
"size" : "Size", "size" : "Taille",
"used" : "Used", "available" : "Disponible",
"available" : "Available", "io" : "E/S",
"io" : "I/O", "read" : "Lecture",
"read" : "Read", "write" : "Écriture",
"write" : "Write", "monitoring_disabled" : "Le monitoring n'est pas activé.",
"monitoring_disabled" : "Monitoring is not enabled.", "monitoring_check_glances" : "Verifiez l'état du service <a href='#/services/glances'>glances</a>.",
"monitoring_check_glances" : "Check <a href='#/services/glances'>glances</a> service status.",
"services" : "Services", "services" : "Services",
"services_list" : "Services list", "services_list" : "Liste des services",
"service_start_on_boot" : "Start on boot: ", "service_start_on_boot" : "Lancer au démarrage : ",
"service_status" : "Status: ", "service_status" : "Statut : ",
"service_log" : "%s log", "service_log" : "Journal de %s",
"tools" : "Tools", "tools" : "Outils",
"tools_adminpw" : "Change administration password", "tools_adminpw" : "Changer le mot de passe d'administration",
"tools_adminpw_current" : "Current password", "tools_adminpw_current" : "Mot de passe actuel",
"tools_adminpw_current_placeholder" : "Enter your current password", "tools_adminpw_current_placeholder" : "Entrez le mot de passe actuel",
"tools_adminpw_new_placeholder" : "Enter the new password", "tools_adminpw_new_placeholder" : "Entrez le nouveau mot de passe",
"tools_adminpw_confirm_placeholder" : "Confirm the new password", "tools_adminpw_confirm_placeholder" : "Confirmez le nouveau mot de passe",
"system_update" : "System update", "system_update" : "Mises à jour du système",
"system_upgrade" : "System upgrade", "system_upgrade" : "Mise à jour du système",
"system_packages" : "Packages", "system_upgrade_btn" : "Mettre à jour",
"system_packages_btn" : "Upgrade packages", "system_packages" : "Paquets",
"system_packages_desc" : "There is no packages to upgrade.", "system_apps" : "Applications",
"system_apps" : "Apps", "system_packages_nothing" : "Il n'y a aucun paquet à mettre à jour.",
"system_apps_btn" : "Upgrade apps", "system_apps_nothing" : "Il n'y a aucune application à mettre à jour.",
"system_apps_desc" : "There is no apps to upgrade.", "no_log" : "Aucun journal.",
"users" : "Users", "users" : "Utilisateurs",
"users_new" : "New user", "users_new" : "Nouvel utilisateur",
"users_no" : "No users.", "users_no" : "Aucun utilisateur.",
"users_list" : "Users list", "users_list" : "Liste des utilisateurs",
"user_username" : "Username", "user_username" : "Nom d'utilisateur",
"user_username_edit" : "Edit %s", "user_username_edit" : "Editer %s",
"user_fullname" : "Fullname", "user_fullname" : "Nom complet",
"user_email" : "Email", "user_email" : "Email",
"" : "" "" : ""

View file

@ -4,11 +4,33 @@
</header> </header>
<div class="list-group"> <div class="list-group">
{{#links}} <a href="#/users" class="list-group-item slide clearfix">
<a href="{{path}}" class="list-group-item slide clearfix">
<span class="pull-right fa-chevron-right"></span> <span class="pull-right fa-chevron-right"></span>
<h2 class="list-group-item-heading">{{name}}</h2> <h2 class="list-group-item-heading">{{t 'users'}}</h2>
</a>
<a href="#/domains" class="list-group-item slide clearfix">
<span class="pull-right fa-chevron-right"></span>
<h2 class="list-group-item-heading">{{t 'domains'}}</h2>
</a>
<a href="#/applications" class="list-group-item slide clearfix">
<span class="pull-right fa-chevron-right"></span>
<h2 class="list-group-item-heading">{{t 'applications'}}</h2>
</a>
<a href="#/services" class="list-group-item slide clearfix">
<span class="pull-right fa-chevron-right"></span>
<h2 class="list-group-item-heading">{{t 'services'}}</h2>
</a>
<a href="#/monitor" class="list-group-item slide clearfix">
<span class="pull-right fa-chevron-right"></span>
<h2 class="list-group-item-heading">{{t 'monitoring'}}</h2>
</a>
<a href="#/tools" class="list-group-item slide clearfix">
<span class="pull-right fa-chevron-right"></span>
<h2 class="list-group-item-heading">{{t 'tools'}}</h2>
</a>
<a href="#/backup" class="list-group-item slide clearfix">
<span class="pull-right fa-chevron-right"></span>
<h2 class="list-group-item-heading">{{t 'backup'}}</h2>
</a> </a>
{{/links}}
</div> </div>

View file

@ -9,11 +9,13 @@
<div class="list-group"> <div class="list-group">
{{#links}} <a href="#/tools/adminpw" class="list-group-item slide">
<a href="{{path}}" class="list-group-item slide">
<span class="fa-chevron-right pull-right"></span> <span class="fa-chevron-right pull-right"></span>
<h2 class="list-group-item-heading">{{name}}</h2> <h2 class="list-group-item-heading">{{t 'tools_adminpw'}}</h2>
</a>
<a href="#/tools/update" class="list-group-item slide">
<span class="fa-chevron-right pull-right"></span>
<h2 class="list-group-item-heading">{{t 'system_update'}}</h2>
</a> </a>
{{/links}}
</div> </div>

View file

@ -21,9 +21,9 @@
{{/packages}} {{/packages}}
<div class="br"></div> <div class="br"></div>
<a href="#/tools/upgrade/packages" class="btn btn-success">{{t 'system_packages_btn'}}</a> <a href="#/tools/upgrade/packages" class="btn btn-success">{{t 'system_upgrade_btn'}}</a>
{{else}} {{else}}
{{t 'system_packages_desc'}} {{t 'system_packages_nothing'}}
{{/if}} {{/if}}
</div> </div>
</div> </div>
@ -41,9 +41,9 @@
{{/apps}} {{/apps}}
<div class="br"></div> <div class="br"></div>
<a href="#/tools/upgrade/apps" class="btn btn-success">{{t 'system_apps_btn'}}</a> <a href="#/tools/upgrade/apps" class="btn btn-success">{{t 'system_upgrade_btn'}}</a>
{{else}} {{else}}
{{t 'system_packages_desc'}} {{t 'system_apps_nothing'}}
{{/if}} {{/if}}
</div> </div>
</div> </div>

View file

@ -14,5 +14,5 @@
{{/logs}} {{/logs}}
</pre> </pre>
{{else}} {{else}}
No log. {{t 'no_log'}}
{{/if}} {{/if}}

View file

@ -45,7 +45,7 @@
<label for="confirmation" class="col-sm-3 control-label">{{t 'password_confirmation'}}</label> <label for="confirmation" class="col-sm-3 control-label">{{t 'password_confirmation'}}</label>
<div class="col-sm-9"> <div class="col-sm-9">
<input type="password" name="confirmation" class="form-control" placeholder="•••••"> <input type="password" name="confirmation" class="form-control" placeholder="•••••">
<div class="help-block">{{t 'password_decription'}}</div> <div class="help-block">{{t 'password_description'}}</div>
</div> </div>
</div> </div>
</div> </div>