mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
Merge branch 'stretch-unstable' into permission-visitors
This commit is contained in:
commit
795cae1a4b
29 changed files with 2114 additions and 943 deletions
16
README.md
16
README.md
|
@ -1,19 +1,19 @@
|
||||||
[](https://travis-ci.org/YunoHost/yunohost)
|
[](https://travis-ci.org/YunoHost/yunohost)
|
||||||
[](https://github.com/YunoHost/yunohost/blob/stretch-unstable/LICENSE)
|
[](https://github.com/YunoHost/yunohost/blob/stretch-unstable/LICENSE)
|
||||||
|
|
||||||
# YunoHost core
|
# YunoHost core
|
||||||
|
|
||||||
This repository is the core of YunoHost code.
|
This repository is the core of YunoHost code.
|
||||||
|
|
||||||
- [YunoHost project website](https://yunohost.org)
|
- [Project website](https://yunohost.org)
|
||||||
- [Butracker](https://github.com/YunoHost/issues).
|
- [Bugtracker](https://github.com/YunoHost/issues).
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
- You can develop on this repository using [ynh-dev](https://github.com/YunoHost/ynh-dev) with `use-git` sub-command.
|
- You can develop on this repository using [ynh-dev](https://github.com/YunoHost/ynh-dev) with `use-git` sub-command.
|
||||||
- On this repository we are [following this workflow](https://yunohost.org/#/build_system_en): `stable <- testing <- unstable <- your_branch`.
|
- On this repository we are [following this workflow](https://yunohost.org/#/build_system_en): `stable ← testing ← unstable ← your_branch`.
|
||||||
- Note: if you modify python scripts, you will have to modifiy the actions map.
|
- Note: If you modify Python scripts, you will have to modifiy the actions map.
|
||||||
- You can help with translation on [our translation platform](https://translate.yunohost.org/engage/yunohost/?utm_source=widget)
|
- You can help translate YunoHost on our [translation platform](https://translate.yunohost.org/engage/yunohost/?utm_source=widget)
|
||||||
|
|
||||||
<img src="https://translate.yunohost.org/widgets/yunohost/-/multi-auto.svg" alt="Translation status" />
|
<img src="https://translate.yunohost.org/widgets/yunohost/-/multi-auto.svg" alt="Translation status" />
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ This repository is the core of YunoHost code.
|
||||||
- Python core scripts are accessible through two interfaces thanks to the [moulinette framework](https://github.com/YunoHost/moulinette):
|
- Python core scripts are accessible through two interfaces thanks to the [moulinette framework](https://github.com/YunoHost/moulinette):
|
||||||
- [CLI](https://en.wikipedia.org/wiki/Command-line_interface) for `yunohost` command.
|
- [CLI](https://en.wikipedia.org/wiki/Command-line_interface) for `yunohost` command.
|
||||||
- [API](https://en.wikipedia.org/wiki/Application_programming_interface) for [web administration module](https://github.com/YunoHost/yunohost-admin) (other modules could be implemented).
|
- [API](https://en.wikipedia.org/wiki/Application_programming_interface) for [web administration module](https://github.com/YunoHost/yunohost-admin) (other modules could be implemented).
|
||||||
- You can find more details about how YunoHost works on this [documentation (in french)](https://yunohost.org/#/package_list_fr).
|
- You can find more details about how YunoHost works on this [documentation (in French)](https://yunohost.org/#/package_list_fr).
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
|
||||||
|
@ -45,4 +45,4 @@ This repository is the core of YunoHost code.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
As [other components of YunoHost core code](https://yunohost.org/#/faq_en), this repository is under GNU AGPL v.3 license.
|
As [other components of YunoHost core code](https://yunohost.org/#/faq_en), this repository is licensed GNU AGPL v3.
|
||||||
|
|
|
@ -270,11 +270,11 @@ user:
|
||||||
|
|
||||||
### user_group_info()
|
### user_group_info()
|
||||||
info:
|
info:
|
||||||
action_help: Get information for a specific group
|
action_help: Get information about a specific group
|
||||||
api: GET /users/groups/<groupname>
|
api: GET /users/groups/<groupname>
|
||||||
arguments:
|
arguments:
|
||||||
groupname:
|
groupname:
|
||||||
help: Name of the group to get info about
|
help: Name of the group to fetch info about
|
||||||
extra:
|
extra:
|
||||||
pattern: *pattern_username
|
pattern: *pattern_username
|
||||||
|
|
||||||
|
@ -289,31 +289,31 @@ user:
|
||||||
arguments:
|
arguments:
|
||||||
-s:
|
-s:
|
||||||
full: --short
|
full: --short
|
||||||
help: List only the names of permissions
|
help: Only list permission names
|
||||||
action: store_true
|
action: store_true
|
||||||
-f:
|
-f:
|
||||||
full: --full
|
full: --full
|
||||||
help: Display all informations known about each permissions, including the full list of users corresponding to allowed groups.
|
help: Display all info known about each permission, including the full user list of each group it is granted to.
|
||||||
action: store_true
|
action: store_true
|
||||||
|
|
||||||
|
|
||||||
### user_permission_update()
|
### user_permission_update()
|
||||||
update:
|
update:
|
||||||
action_help: Grant / remove permissions to groups or users
|
action_help: Manage group or user permissions
|
||||||
api: POST /users/permissions/<permission>
|
api: POST /users/permissions/<permission>
|
||||||
arguments:
|
arguments:
|
||||||
permission:
|
permission:
|
||||||
help: Permission to manage (e.g. mail or nextcloud or wordpress.editors)
|
help: Permission to manage (e.g. mail or nextcloud or wordpress.editors)
|
||||||
-a:
|
-a:
|
||||||
full: --add
|
full: --add
|
||||||
help: Group or user names to add to this permission
|
help: Group or usernames to grant this permission to
|
||||||
nargs: "*"
|
nargs: "*"
|
||||||
metavar: GROUP_OR_USER
|
metavar: GROUP_OR_USER
|
||||||
extra:
|
extra:
|
||||||
pattern: *pattern_username
|
pattern: *pattern_username
|
||||||
-r:
|
-r:
|
||||||
full: --remove
|
full: --remove
|
||||||
help: Group or user names to remove from this permission
|
help: Group or usernames revoke this permission from
|
||||||
nargs: "*"
|
nargs: "*"
|
||||||
metavar: GROUP_OR_USER
|
metavar: GROUP_OR_USER
|
||||||
extra:
|
extra:
|
||||||
|
|
|
@ -218,6 +218,27 @@ ynh_install_app_dependencies () {
|
||||||
fi
|
fi
|
||||||
local dep_app=${app//_/-} # Replace all '_' by '-'
|
local dep_app=${app//_/-} # Replace all '_' by '-'
|
||||||
|
|
||||||
|
#
|
||||||
|
# Epic ugly hack to fix the goddamn dependency nightmare of sury
|
||||||
|
# Sponsored by the "Djeezusse Fokin Kraiste Why Do Adminsys Has To Be So Fucking Complicated I Should Go Grow Potatoes Instead Of This Shit" collective
|
||||||
|
# https://github.com/YunoHost/issues/issues/1407
|
||||||
|
#
|
||||||
|
# If we require to install php dependency
|
||||||
|
if echo $dependencies | grep -q 'php';
|
||||||
|
then
|
||||||
|
# And we have packages from sury installed (7.0.33-10+weirdshiftafter instead of 7.0.33-0 on debian)
|
||||||
|
if dpkg --list | grep "php7.0" | grep -q -v "7.0.33-0+deb9u5"
|
||||||
|
then
|
||||||
|
# And sury ain't already installed
|
||||||
|
if ! grep -nrq "sury" /etc/apt/sources.list*
|
||||||
|
then
|
||||||
|
# Re-add sury
|
||||||
|
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/sury.list
|
||||||
|
wget -O /etc/apt/trusted.gpg.d/sury.gpg https://packages.sury.org/php/apt.gpg
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
cat > /tmp/${dep_app}-ynh-deps.control << EOF # Make a control file for equivs-build
|
cat > /tmp/${dep_app}-ynh-deps.control << EOF # Make a control file for equivs-build
|
||||||
Section: misc
|
Section: misc
|
||||||
Priority: optional
|
Priority: optional
|
||||||
|
|
|
@ -339,7 +339,7 @@ ynh_backup_if_checksum_is_different () {
|
||||||
backup_file_checksum=""
|
backup_file_checksum=""
|
||||||
if [ -n "$checksum_value" ]
|
if [ -n "$checksum_value" ]
|
||||||
then # Proceed only if a value was stored into the app settings
|
then # Proceed only if a value was stored into the app settings
|
||||||
if ! echo "$checksum_value $file" | sudo md5sum -c --status
|
if [ -e $file ] && ! echo "$checksum_value $file" | sudo md5sum -c --status
|
||||||
then # If the checksum is now different
|
then # If the checksum is now different
|
||||||
backup_file_checksum="/home/yunohost.conf/backup/$file.backup.$(date '+%Y%m%d.%H%M%S')"
|
backup_file_checksum="/home/yunohost.conf/backup/$file.backup.$(date '+%Y%m%d.%H%M%S')"
|
||||||
sudo mkdir -p "$(dirname "$backup_file_checksum")"
|
sudo mkdir -p "$(dirname "$backup_file_checksum")"
|
||||||
|
|
|
@ -40,10 +40,13 @@ ynh_use_logrotate () {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $# -gt 0 ] && [ "$(echo ${1:0:1})" != "-" ]; then
|
if [ $# -gt 0 ] && [ "$(echo ${1:0:1})" != "-" ]; then
|
||||||
if [ "$(echo ${1##*.})" == "log" ]; then # Keep only the extension to check if it's a logfile
|
# If the given logfile parameter already exists as a file, or if it ends up with ".log",
|
||||||
local logfile=$1 # In this case, focus logrotate on the logfile
|
# we just want to manage a single file
|
||||||
|
if [ -f "$1" ] || [ "$(echo ${1##*.})" == "log" ]; then
|
||||||
|
local logfile=$1
|
||||||
|
# Otherwise we assume we want to manage a directory and all its .log file inside
|
||||||
else
|
else
|
||||||
local logfile=$1/*.log # Else, uses the directory and all logfile into it.
|
local logfile=$1/*.log
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
# LEGACY CODE
|
# LEGACY CODE
|
||||||
|
@ -54,7 +57,7 @@ ynh_use_logrotate () {
|
||||||
fi
|
fi
|
||||||
if [ -n "$logfile" ]
|
if [ -n "$logfile" ]
|
||||||
then
|
then
|
||||||
if [ "$(echo ${logfile##*.})" != "log" ]; then # Keep only the extension to check if it's a logfile
|
if [ ! -f "$1" ] && [ "$(echo ${logfile##*.})" != "log" ]; then # Keep only the extension to check if it's a logfile
|
||||||
local logfile="$logfile/*.log" # Else, uses the directory and all logfile into it.
|
local logfile="$logfile/*.log" # Else, uses the directory and all logfile into it.
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
|
|
@ -53,9 +53,6 @@ do_pre_regen() {
|
||||||
else
|
else
|
||||||
sudo cp services.yml /etc/yunohost/services.yml
|
sudo cp services.yml /etc/yunohost/services.yml
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p "$pending_dir"/etc/etckeeper/
|
|
||||||
cp etckeeper.conf "$pending_dir"/etc/etckeeper/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_update_services() {
|
_update_services() {
|
||||||
|
|
|
@ -63,7 +63,7 @@ bantime = 600
|
||||||
findtime = 600
|
findtime = 600
|
||||||
|
|
||||||
# "maxretry" is the number of failures before a host get banned.
|
# "maxretry" is the number of failures before a host get banned.
|
||||||
maxretry = 5
|
maxretry = 10
|
||||||
|
|
||||||
# "backend" specifies the backend used to get files modification.
|
# "backend" specifies the backend used to get files modification.
|
||||||
# Available options are "pyinotify", "gamin", "polling", "systemd" and "auto".
|
# Available options are "pyinotify", "gamin", "polling", "systemd" and "auto".
|
||||||
|
|
|
@ -29,4 +29,3 @@ protocol = tcp
|
||||||
filter = yunohost
|
filter = yunohost
|
||||||
logpath = /var/log/nginx/*error.log
|
logpath = /var/log/nginx/*error.log
|
||||||
/var/log/nginx/*access.log
|
/var/log/nginx/*access.log
|
||||||
maxretry = 6
|
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
# The VCS to use.
|
|
||||||
#VCS="hg"
|
|
||||||
VCS="git"
|
|
||||||
#VCS="bzr"
|
|
||||||
#VCS="darcs"
|
|
||||||
|
|
||||||
# Options passed to git commit when run by etckeeper.
|
|
||||||
GIT_COMMIT_OPTIONS="--quiet"
|
|
||||||
|
|
||||||
# Options passed to hg commit when run by etckeeper.
|
|
||||||
HG_COMMIT_OPTIONS=""
|
|
||||||
|
|
||||||
# Options passed to bzr commit when run by etckeeper.
|
|
||||||
BZR_COMMIT_OPTIONS=""
|
|
||||||
|
|
||||||
# Options passed to darcs record when run by etckeeper.
|
|
||||||
DARCS_COMMIT_OPTIONS="-a"
|
|
||||||
|
|
||||||
# Uncomment to avoid etckeeper committing existing changes
|
|
||||||
# to /etc automatically once per day.
|
|
||||||
#AVOID_DAILY_AUTOCOMMITS=1
|
|
||||||
|
|
||||||
# Uncomment the following to avoid special file warning
|
|
||||||
# (the option is enabled automatically by cronjob regardless).
|
|
||||||
#AVOID_SPECIAL_FILE_WARNING=1
|
|
||||||
|
|
||||||
# Uncomment to avoid etckeeper committing existing changes to
|
|
||||||
# /etc before installation. It will cancel the installation,
|
|
||||||
# so you can commit the changes by hand.
|
|
||||||
#AVOID_COMMIT_BEFORE_INSTALL=1
|
|
||||||
|
|
||||||
# The high-level package manager that's being used.
|
|
||||||
# (apt, pacman-g2, yum, zypper etc)
|
|
||||||
HIGHLEVEL_PACKAGE_MANAGER=apt
|
|
||||||
|
|
||||||
# The low-level package manager that's being used.
|
|
||||||
# (dpkg, rpm, pacman, pacman-g2, etc)
|
|
||||||
LOWLEVEL_PACKAGE_MANAGER=dpkg
|
|
||||||
|
|
||||||
# To push each commit to a remote, put the name of the remote here.
|
|
||||||
# (eg, "origin" for git). Space-separated lists of multiple remotes
|
|
||||||
# also work (eg, "origin gitlab github" for git).
|
|
||||||
PUSH_REMOTE=""
|
|
9
debian/changelog
vendored
9
debian/changelog
vendored
|
@ -1,3 +1,12 @@
|
||||||
|
yunohost (3.6.5) stable; urgency=low
|
||||||
|
|
||||||
|
- [enh] Detect and warn early about unavailable full domains... (#798)
|
||||||
|
- [mod] Change maxretry of fail2ban from 6 to 10 (#802)
|
||||||
|
- [fix] Epicly ugly workaround for the goddamn dependency nighmare about sury fucking up php7.0 dependencies (#809)
|
||||||
|
- [fix] Support logfiles not ending with .log in logrotate ... (#810)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Mon, 08 Oct 2019 19:00:00 +0000
|
||||||
|
|
||||||
yunohost (3.6.4.6) stable; urgency=low
|
yunohost (3.6.4.6) stable; urgency=low
|
||||||
|
|
||||||
- [fix] Hopefully fix the issue about corrupted logs metadata files (d507d447, 1cec9d78)
|
- [fix] Hopefully fix the issue about corrupted logs metadata files (d507d447, 1cec9d78)
|
||||||
|
|
2
debian/control
vendored
2
debian/control
vendored
|
@ -31,7 +31,7 @@ Depends: ${python:Depends}, ${misc:Depends}
|
||||||
, equivs, lsof
|
, equivs, lsof
|
||||||
Recommends: yunohost-admin
|
Recommends: yunohost-admin
|
||||||
, openssh-server, ntp, inetutils-ping | iputils-ping
|
, openssh-server, ntp, inetutils-ping | iputils-ping
|
||||||
, bash-completion, rsyslog, etckeeper
|
, bash-completion, rsyslog
|
||||||
, php-gd, php-curl, php-gettext, php-mcrypt
|
, php-gd, php-curl, php-gettext, php-mcrypt
|
||||||
, python-pip
|
, python-pip
|
||||||
, unattended-upgrades
|
, unattended-upgrades
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
"app_location_install_failed": "Unable to install the app in this location because it conflit with the app '{other_app}' already installed on '{other_path}'",
|
"app_location_install_failed": "Unable to install the app in this location because it conflit with the app '{other_app}' already installed on '{other_path}'",
|
||||||
"app_location_unavailable": "This url is not available or conflicts with an already installed app",
|
"app_location_unavailable": "This url is not available or conflicts with an already installed app",
|
||||||
"app_manifest_invalid": "Invalid app manifest: {error}",
|
"app_manifest_invalid": "Invalid app manifest: {error}",
|
||||||
"app_no_upgrade": "البرمجيات لا تحتاج إلى تحديث",
|
"app_no_upgrade": "ليس هناك أي تطبيق بحاجة إلى تحديث",
|
||||||
"app_not_correctly_installed": "يبدو أن التطبيق {app:s} لم يتم تنصيبه بشكل صحيح",
|
"app_not_correctly_installed": "يبدو أن التطبيق {app:s} لم يتم تنصيبه بشكل صحيح",
|
||||||
"app_not_installed": "إنّ التطبيق {app:s} غير مُنصَّب",
|
"app_not_installed": "إنّ التطبيق {app:s} غير مُنصَّب",
|
||||||
"app_not_properly_removed": "لم يتم حذف تطبيق {app:s} بشكلٍ جيّد",
|
"app_not_properly_removed": "لم يتم حذف تطبيق {app:s} بشكلٍ جيّد",
|
||||||
|
@ -37,17 +37,17 @@
|
||||||
"app_unsupported_remote_type": "Unsupported remote type used for the app",
|
"app_unsupported_remote_type": "Unsupported remote type used for the app",
|
||||||
"app_upgrade_app_name": "جارٍ تحديث تطبيق {app}…",
|
"app_upgrade_app_name": "جارٍ تحديث تطبيق {app}…",
|
||||||
"app_upgrade_failed": "تعذرت عملية ترقية {app:s}",
|
"app_upgrade_failed": "تعذرت عملية ترقية {app:s}",
|
||||||
"app_upgrade_some_app_failed": "تعذرت عملية ترقية بعض البرمجيات",
|
"app_upgrade_some_app_failed": "تعذرت عملية ترقية بعض التطبيقات",
|
||||||
"app_upgraded": "تم تحديث التطبيق {app:s}",
|
"app_upgraded": "تم تحديث التطبيق {app:s}",
|
||||||
"appslist_corrupted_json": "Could not load the application lists. It looks like {filename:s} is corrupted.",
|
"appslist_corrupted_json": "Could not load the application lists. It looks like {filename:s} is corrupted.",
|
||||||
"appslist_could_not_migrate": "Could not migrate app list {appslist:s} ! Unable to parse the url... The old cron job has been kept in {bkp_file:s}.",
|
"appslist_could_not_migrate": "Could not migrate app list {appslist:s} ! Unable to parse the url... The old cron job has been kept in {bkp_file:s}.",
|
||||||
"appslist_fetched": "تم جلب قائمة تطبيقات {appslist:s}",
|
"appslist_fetched": "تم جلب قائمة تطبيقات {appslist:s}",
|
||||||
"appslist_migrating": "Migrating application list {appslist:s} …",
|
"appslist_migrating": "Migrating application list {appslist:s} …",
|
||||||
"appslist_name_already_tracked": "There is already a registered application list with name {name:s}.",
|
"appslist_name_already_tracked": "There is already a registered application list with name {name:s}.",
|
||||||
"appslist_removed": "تم حذف قائمة البرمجيات {appslist:s}",
|
"appslist_removed": "تم حذف قائمة التطبيقات {appslist:s}",
|
||||||
"appslist_retrieve_bad_format": "Retrieved file for application list {appslist:s} is not valid",
|
"appslist_retrieve_bad_format": "Retrieved file for application list {appslist:s} is not valid",
|
||||||
"appslist_retrieve_error": "Unable to retrieve the remote application list {appslist:s}: {error:s}",
|
"appslist_retrieve_error": "Unable to retrieve the remote application list {appslist:s}: {error:s}",
|
||||||
"appslist_unknown": "قائمة البرمجيات {appslist:s} مجهولة.",
|
"appslist_unknown": "قائمة التطبيقات {appslist:s} مجهولة.",
|
||||||
"appslist_url_already_tracked": "There is already a registered application list with url {url:s}.",
|
"appslist_url_already_tracked": "There is already a registered application list with url {url:s}.",
|
||||||
"ask_current_admin_password": "كلمة السر الإدارية الحالية",
|
"ask_current_admin_password": "كلمة السر الإدارية الحالية",
|
||||||
"ask_email": "عنوان البريد الإلكتروني",
|
"ask_email": "عنوان البريد الإلكتروني",
|
||||||
|
@ -114,7 +114,7 @@
|
||||||
"certmanager_attempt_to_replace_valid_cert": "You are attempting to overwrite a good and valid certificate for domain {domain:s}! (Use --force to bypass)",
|
"certmanager_attempt_to_replace_valid_cert": "You are attempting to overwrite a good and valid certificate for domain {domain:s}! (Use --force to bypass)",
|
||||||
"certmanager_cannot_read_cert": "Something wrong happened when trying to open current certificate for domain {domain:s} (file: {file:s}), reason: {reason:s}",
|
"certmanager_cannot_read_cert": "Something wrong happened when trying to open current certificate for domain {domain:s} (file: {file:s}), reason: {reason:s}",
|
||||||
"certmanager_cert_install_success": "تمت عملية تنصيب شهادة Let's Encrypt بنجاح على النطاق {domain:s} !",
|
"certmanager_cert_install_success": "تمت عملية تنصيب شهادة Let's Encrypt بنجاح على النطاق {domain:s} !",
|
||||||
"certmanager_cert_install_success_selfsigned": "Successfully installed a self-signed certificate for domain {domain:s}!",
|
"certmanager_cert_install_success_selfsigned": "نجحت عملية تثبيت الشهادة الموقعة ذاتيا الخاصة بالنطاق {domain:s}!",
|
||||||
"certmanager_cert_renew_success": "نجحت عملية تجديد شهادة Let's Encrypt الخاصة باسم النطاق {domain:s} !",
|
"certmanager_cert_renew_success": "نجحت عملية تجديد شهادة Let's Encrypt الخاصة باسم النطاق {domain:s} !",
|
||||||
"certmanager_cert_signing_failed": "فشل إجراء توقيع الشهادة الجديدة",
|
"certmanager_cert_signing_failed": "فشل إجراء توقيع الشهادة الجديدة",
|
||||||
"certmanager_certificate_fetching_or_enabling_failed": "Sounds like enabling the new certificate for {domain:s} failed somehow…",
|
"certmanager_certificate_fetching_or_enabling_failed": "Sounds like enabling the new certificate for {domain:s} failed somehow…",
|
||||||
|
@ -232,7 +232,7 @@
|
||||||
"migrations_no_migrations_to_run": "No migrations to run",
|
"migrations_no_migrations_to_run": "No migrations to run",
|
||||||
"migrations_show_currently_running_migration": "Running migration {number} {name}…",
|
"migrations_show_currently_running_migration": "Running migration {number} {name}…",
|
||||||
"migrations_show_last_migration": "Last ran migration is {}",
|
"migrations_show_last_migration": "Last ran migration is {}",
|
||||||
"migrations_skip_migration": "جارٍ تجاهل التهجير {number} {name}…",
|
"migrations_skip_migration": "جارٍ تجاهل التهجير {id}…",
|
||||||
"monitor_disabled": "The server monitoring has been disabled",
|
"monitor_disabled": "The server monitoring has been disabled",
|
||||||
"monitor_enabled": "The server monitoring has been enabled",
|
"monitor_enabled": "The server monitoring has been enabled",
|
||||||
"monitor_glances_con_failed": "Unable to connect to Glances server",
|
"monitor_glances_con_failed": "Unable to connect to Glances server",
|
||||||
|
@ -301,7 +301,7 @@
|
||||||
"service_add_failed": "تعذرت إضافة خدمة '{service:s}'",
|
"service_add_failed": "تعذرت إضافة خدمة '{service:s}'",
|
||||||
"service_added": "The service '{service:s}' has been added",
|
"service_added": "The service '{service:s}' has been added",
|
||||||
"service_already_started": "Service '{service:s}' has already been started",
|
"service_already_started": "Service '{service:s}' has already been started",
|
||||||
"service_already_stopped": "Service '{service:s}' has already been stopped",
|
"service_already_stopped": "إنّ خدمة '{service:s}' متوقفة مِن قبلُ",
|
||||||
"service_cmd_exec_failed": "Unable to execute command '{command:s}'",
|
"service_cmd_exec_failed": "Unable to execute command '{command:s}'",
|
||||||
"service_conf_file_backed_up": "The configuration file '{conf}' has been backed up to '{backup}'",
|
"service_conf_file_backed_up": "The configuration file '{conf}' has been backed up to '{backup}'",
|
||||||
"service_conf_file_copy_failed": "Unable to copy the new configuration file '{new}' to '{conf}'",
|
"service_conf_file_copy_failed": "Unable to copy the new configuration file '{new}' to '{conf}'",
|
||||||
|
@ -316,7 +316,7 @@
|
||||||
"service_conf_updated": "The configuration has been updated for service '{service}'",
|
"service_conf_updated": "The configuration has been updated for service '{service}'",
|
||||||
"service_conf_would_be_updated": "The configuration would have been updated for service '{service}'",
|
"service_conf_would_be_updated": "The configuration would have been updated for service '{service}'",
|
||||||
"service_disable_failed": "",
|
"service_disable_failed": "",
|
||||||
"service_disabled": "The service '{service:s}' has been disabled",
|
"service_disabled": "تم تعطيل خدمة '{service:s}'",
|
||||||
"service_enable_failed": "",
|
"service_enable_failed": "",
|
||||||
"service_enabled": "تم تنشيط خدمة '{service:s}'",
|
"service_enabled": "تم تنشيط خدمة '{service:s}'",
|
||||||
"service_no_log": "ليس لخدمة '{service:s}' أي سِجلّ للعرض",
|
"service_no_log": "ليس لخدمة '{service:s}' أي سِجلّ للعرض",
|
||||||
|
@ -329,7 +329,7 @@
|
||||||
"service_started": "تم إطلاق تشغيل خدمة '{service:s}'",
|
"service_started": "تم إطلاق تشغيل خدمة '{service:s}'",
|
||||||
"service_status_failed": "Unable to determine status of service '{service:s}'",
|
"service_status_failed": "Unable to determine status of service '{service:s}'",
|
||||||
"service_stop_failed": "",
|
"service_stop_failed": "",
|
||||||
"service_stopped": "The service '{service:s}' has been stopped",
|
"service_stopped": "تمّ إيقاف خدمة '{service:s}'",
|
||||||
"service_unknown": "Unknown service '{service:s}'",
|
"service_unknown": "Unknown service '{service:s}'",
|
||||||
"ssowat_conf_generated": "The SSOwat configuration has been generated",
|
"ssowat_conf_generated": "The SSOwat configuration has been generated",
|
||||||
"ssowat_conf_updated": "The SSOwat configuration has been updated",
|
"ssowat_conf_updated": "The SSOwat configuration has been updated",
|
||||||
|
@ -343,11 +343,11 @@
|
||||||
"unlimit": "دون تحديد الحصة",
|
"unlimit": "دون تحديد الحصة",
|
||||||
"unrestore_app": "App '{app:s}' will not be restored",
|
"unrestore_app": "App '{app:s}' will not be restored",
|
||||||
"update_cache_failed": "Unable to update APT cache",
|
"update_cache_failed": "Unable to update APT cache",
|
||||||
"updating_apt_cache": "جارٍ تحديث قائمة الحُزم المتوفرة …",
|
"updating_apt_cache": "جارٍ جلب قائمة حُزم النظام المحدّثة المتوفرة…",
|
||||||
"upgrade_complete": "إكتملت عملية الترقية و التحديث",
|
"upgrade_complete": "إكتملت عملية الترقية و التحديث",
|
||||||
"upgrading_packages": "عملية ترقية الحُزم جارية …",
|
"upgrading_packages": "عملية ترقية الحُزم جارية …",
|
||||||
"upnp_dev_not_found": "No UPnP device found",
|
"upnp_dev_not_found": "No UPnP device found",
|
||||||
"upnp_disabled": "UPnP has been disabled",
|
"upnp_disabled": "تم تعطيل UPnP",
|
||||||
"upnp_enabled": "UPnP has been enabled",
|
"upnp_enabled": "UPnP has been enabled",
|
||||||
"upnp_port_open_failed": "Unable to open UPnP ports",
|
"upnp_port_open_failed": "Unable to open UPnP ports",
|
||||||
"user_created": "تم إنشاء المستخدم",
|
"user_created": "تم إنشاء المستخدم",
|
||||||
|
@ -412,7 +412,7 @@
|
||||||
"service_description_dnsmasq": "مُكلَّف بتحليل أسماء النطاقات (DNS)",
|
"service_description_dnsmasq": "مُكلَّف بتحليل أسماء النطاقات (DNS)",
|
||||||
"service_description_mysql": "يقوم بتخزين بيانات التطبيقات (قواعد بيانات SQL)",
|
"service_description_mysql": "يقوم بتخزين بيانات التطبيقات (قواعد بيانات SQL)",
|
||||||
"service_description_rspamd": "يقوم بتصفية البريد المزعج و إدارة ميزات أخرى للبريد",
|
"service_description_rspamd": "يقوم بتصفية البريد المزعج و إدارة ميزات أخرى للبريد",
|
||||||
"service_description_yunohost-firewall": "يريد فتح و غلق منافذ الإتصال إلى الخدمات",
|
"service_description_yunohost-firewall": "يُدير فتح وإغلاق منافذ الإتصال إلى الخدمات",
|
||||||
"users_available": "المستخدمون المتوفرون:",
|
"users_available": "المستخدمون المتوفرون:",
|
||||||
"aborting": "إلغاء.",
|
"aborting": "إلغاء.",
|
||||||
"admin_password_too_long": "يرجى اختيار كلمة سرية أقصر مِن 127 حرف",
|
"admin_password_too_long": "يرجى اختيار كلمة سرية أقصر مِن 127 حرف",
|
||||||
|
@ -426,5 +426,22 @@
|
||||||
"global_settings_setting_security_password_admin_strength": "قوة الكلمة السرية الإدارية",
|
"global_settings_setting_security_password_admin_strength": "قوة الكلمة السرية الإدارية",
|
||||||
"global_settings_setting_security_password_user_strength": "قوة الكلمة السرية للمستخدم",
|
"global_settings_setting_security_password_user_strength": "قوة الكلمة السرية للمستخدم",
|
||||||
"log_app_addaccess": "إضافة ترخيص بالنفاذ إلى '{}'",
|
"log_app_addaccess": "إضافة ترخيص بالنفاذ إلى '{}'",
|
||||||
"password_too_simple_1": "يجب أن يكون طول الكلمة السرية على الأقل 8 حروف"
|
"password_too_simple_1": "يجب أن يكون طول الكلمة السرية على الأقل 8 حروف",
|
||||||
|
"service_description_php7.0-fpm": "يُشغّل التطبيقات المكتوبة بلغة الـ PHP على Nginx",
|
||||||
|
"updating_app_lists": "جارٍ جلب التحديثات المتوفرة الخاصة بالتطبيقات…",
|
||||||
|
"already_up_to_date": "كل شيء على ما يرام! ليس هناك ما يتطلّب تحديثًا!",
|
||||||
|
"service_description_nslcd": "يدير اتصال متسخدمي واي يونوهوست عبر طرفية سطر الأوامر",
|
||||||
|
"service_description_slapd": "يخزّن المستخدمين والنطاقات والمعلومات المتعلقة بها",
|
||||||
|
"service_reloaded": "تم إعادة تحميل خدمة '{service:s}'",
|
||||||
|
"service_restarted": "تم إعادة تشغيل خدمة '{service:s}'",
|
||||||
|
"group_unknown": "الفريق {group:s} مجهول",
|
||||||
|
"group_deletion_failed": "فشلت عملية حذف الفريق '{group}'",
|
||||||
|
"group_deleted": "تم حذف الفريق '{group}'",
|
||||||
|
"group_created": "تم إنشاء الفريق '{group}' بنجاح",
|
||||||
|
"group_name_already_exist": "الفريق {name:s} موجود بالفعل",
|
||||||
|
"error_when_removing_sftpuser_group": "حدث خطأ أثناء محاولة حذف فريق sftpusers",
|
||||||
|
"dyndns_could_not_check_available": "لا يمكن التحقق مِن أنّ {domain:s} متوفر على {provider:s}.",
|
||||||
|
"backup_mount_archive_for_restore": "جارٍ تهيئة النسخة الاحتياطية للاسترجاع…",
|
||||||
|
"root_password_replaced_by_admin_password": "لقد تم استبدال كلمة سر الجذر root بالكلمة الإدارية لـ admin.",
|
||||||
|
"app_upgrade_stopped": "لقد تم إلغاء تحديث كافة التطبيقات لتجنب حادث بسبب فشل تحديث التطبيق السابق"
|
||||||
}
|
}
|
||||||
|
|
|
@ -198,7 +198,7 @@
|
||||||
"executing_script": "Execució de l'script « {script:s} »…",
|
"executing_script": "Execució de l'script « {script:s} »…",
|
||||||
"extracting": "Extracció en curs…",
|
"extracting": "Extracció en curs…",
|
||||||
"dyndns_cron_installed": "S'ha instal·lat la tasca cron pel DynDNS",
|
"dyndns_cron_installed": "S'ha instal·lat la tasca cron pel DynDNS",
|
||||||
"dyndns_cron_remove_failed": "No s'ha pogut eliminar la tasca cron pel DynDNS",
|
"dyndns_cron_remove_failed": "No s'ha pogut eliminar la tasca cron per a DynDNS: {error}",
|
||||||
"dyndns_cron_removed": "S'ha eliminat la tasca cron pel DynDNS",
|
"dyndns_cron_removed": "S'ha eliminat la tasca cron pel DynDNS",
|
||||||
"experimental_feature": "Atenció: aquesta funcionalitat és experimental i no es considera estable, no s'ha d'utilitzar a excepció de saber el que esteu fent.",
|
"experimental_feature": "Atenció: aquesta funcionalitat és experimental i no es considera estable, no s'ha d'utilitzar a excepció de saber el que esteu fent.",
|
||||||
"field_invalid": "Camp incorrecte « {:s} »",
|
"field_invalid": "Camp incorrecte « {:s} »",
|
||||||
|
@ -581,5 +581,6 @@
|
||||||
"system_groupname_exists": "El nom de grup ja existeix en el sistema de grups",
|
"system_groupname_exists": "El nom de grup ja existeix en el sistema de grups",
|
||||||
"tools_update_failed_to_app_fetchlist": "No s'ha pogut actualitzar la llista d'aplicacions de YunoHost a causa de: {error}",
|
"tools_update_failed_to_app_fetchlist": "No s'ha pogut actualitzar la llista d'aplicacions de YunoHost a causa de: {error}",
|
||||||
"user_already_in_group": "L'usuari {user:s} ja és en el grup {group:s}",
|
"user_already_in_group": "L'usuari {user:s} ja és en el grup {group:s}",
|
||||||
"user_not_in_group": "L'usuari {user:s} no és en el grup {group:s}"
|
"user_not_in_group": "L'usuari {user:s} no és en el grup {group:s}",
|
||||||
|
"migration_description_0012_postgresql_password_to_md5_authentication": "Força l'autenticació postgresql a fer servir md5 per a les connexions locals"
|
||||||
}
|
}
|
||||||
|
|
206
locales/de.json
206
locales/de.json
|
@ -2,27 +2,27 @@
|
||||||
"action_invalid": "Ungültige Aktion '{action:s}'",
|
"action_invalid": "Ungültige Aktion '{action:s}'",
|
||||||
"admin_password": "Administrator-Passwort",
|
"admin_password": "Administrator-Passwort",
|
||||||
"admin_password_change_failed": "Passwort kann nicht geändert werden",
|
"admin_password_change_failed": "Passwort kann nicht geändert werden",
|
||||||
"admin_password_changed": "Das Administrator-Kennwort wurde erfolgreich geändert",
|
"admin_password_changed": "Das Administrator-Kennwort wurde geändert",
|
||||||
"app_already_installed": "{app:s} ist schon installiert",
|
"app_already_installed": "{app:s} ist schon installiert",
|
||||||
"app_argument_choice_invalid": "Ungültige Auswahl für Argument '{name:s}'. Es muss einer der folgenden Werte sein {choices:s}",
|
"app_argument_choice_invalid": "Wähle einen der folgenden Werte '{choices:s}' für das Argument '{name:s}'",
|
||||||
"app_argument_invalid": "Das Argument '{name:s}' hat einen falschen Wert: {error:s}",
|
"app_argument_invalid": "Wähle einen gültigen Wert für das Argument '{name: s}': {error: s}",
|
||||||
"app_argument_required": "Argument '{name:s}' wird benötigt",
|
"app_argument_required": "Argument '{name:s}' wird benötigt",
|
||||||
"app_extraction_failed": "Installationsdateien konnten nicht entpackt werden",
|
"app_extraction_failed": "Installationsdateien konnten nicht entpackt werden",
|
||||||
"app_id_invalid": "Falsche App-ID",
|
"app_id_invalid": "Falsche App-ID",
|
||||||
"app_install_files_invalid": "Ungültige Installationsdateien",
|
"app_install_files_invalid": "Diese Dateien können nicht installiert werden",
|
||||||
"app_location_already_used": "Eine andere App ({app}) ist bereits an diesem Ort ({path}) installiert",
|
"app_location_already_used": "Die App ({app}) ist bereits hier ({path}) installiert",
|
||||||
"app_location_install_failed": "Die App kann nicht an diesem Ort installiert werden, da es mit der App {other_app} die bereits in diesem Pfad ({other_path}) installiert ist Probleme geben würde",
|
"app_location_install_failed": "Die App kann dort nicht installiert werden, da ein Konflikt mit der App '{other_app}' besteht, die bereits in '{other_path}' installiert ist",
|
||||||
"app_manifest_invalid": "Ungültiges App-Manifest: {error}",
|
"app_manifest_invalid": "Mit dem App-Manifest stimmt etwas nicht: {error}",
|
||||||
"app_no_upgrade": "Keine Aktualisierungen für Apps verfügbar",
|
"app_no_upgrade": "Alle Apps sind bereits aktuell",
|
||||||
"app_not_installed": "{app:s} ist nicht installiert",
|
"app_not_installed": "Die App {app:s} konnte nicht in der Liste installierter Apps gefunden werden: {all_apps}",
|
||||||
"app_recent_version_required": "Für {:s} benötigt eine aktuellere Version von moulinette",
|
"app_recent_version_required": "Für {:s} benötigt eine aktuellere Version von moulinette",
|
||||||
"app_removed": "{app:s} wurde erfolgreich entfernt",
|
"app_removed": "{app:s} wurde entfernt",
|
||||||
"app_sources_fetch_failed": "Quelldateien konnten nicht abgerufen werden",
|
"app_sources_fetch_failed": "Quelldateien konnten nicht abgerufen werden, ist die URL korrekt?",
|
||||||
"app_unknown": "Unbekannte App",
|
"app_unknown": "Unbekannte App",
|
||||||
"app_upgrade_failed": "{app:s} konnte nicht aktualisiert werden",
|
"app_upgrade_failed": "{app:s} konnte nicht aktualisiert werden",
|
||||||
"app_upgraded": "{app:s} wurde erfolgreich aktualisiert",
|
"app_upgraded": "{app:s} aktualisiert",
|
||||||
"appslist_fetched": "Appliste {appslist:s} wurde erfolgreich heruntergelanden",
|
"appslist_fetched": "Appliste {appslist:s} wurde erfolgreich gelanden",
|
||||||
"appslist_removed": "Appliste {appslist:s} wurde erfolgreich entfernt",
|
"appslist_removed": "Appliste {appslist:s} wurde entfernt",
|
||||||
"appslist_retrieve_error": "Entfernte Appliste {appslist:s} kann nicht empfangen werden: {error:s}",
|
"appslist_retrieve_error": "Entfernte Appliste {appslist:s} kann nicht empfangen werden: {error:s}",
|
||||||
"appslist_unknown": "Appliste {appslist:s} ist unbekannt.",
|
"appslist_unknown": "Appliste {appslist:s} ist unbekannt.",
|
||||||
"ask_current_admin_password": "Derzeitiges Administrator-Kennwort",
|
"ask_current_admin_password": "Derzeitiges Administrator-Kennwort",
|
||||||
|
@ -34,26 +34,26 @@
|
||||||
"ask_new_admin_password": "Neues Verwaltungskennwort",
|
"ask_new_admin_password": "Neues Verwaltungskennwort",
|
||||||
"ask_password": "Passwort",
|
"ask_password": "Passwort",
|
||||||
"backup_action_required": "Du musst etwas zum Speichern auswählen",
|
"backup_action_required": "Du musst etwas zum Speichern auswählen",
|
||||||
"backup_app_failed": "Konnte keine Sicherung für '{app:s}' erstellen",
|
"backup_app_failed": "Konnte keine Sicherung für die App '{app:s}' erstellen",
|
||||||
"backup_archive_app_not_found": "App '{app:s}' konnte in keiner Datensicherung gefunden werden",
|
"backup_archive_app_not_found": "App '{app:s}' konnte in keiner Datensicherung gefunden werden",
|
||||||
"backup_archive_hook_not_exec": "Hook '{hook:s}' konnte für diese Datensicherung nicht ausgeführt werden",
|
"backup_archive_hook_not_exec": "Hook '{hook:s}' konnte für diese Datensicherung nicht ausgeführt werden",
|
||||||
"backup_archive_name_exists": "Datensicherung mit dem selben Namen existiert bereits",
|
"backup_archive_name_exists": "Datensicherung mit dem selben Namen existiert bereits.",
|
||||||
"backup_archive_name_unknown": "Unbekanntes lokale Datensicherung mit Namen '{name:s}' gefunden",
|
"backup_archive_name_unknown": "Unbekanntes lokale Datensicherung mit Namen '{name:s}' gefunden",
|
||||||
"backup_archive_open_failed": "Kann Sicherungsarchiv nicht öfnen",
|
"backup_archive_open_failed": "Kann Sicherungsarchiv nicht öfnen",
|
||||||
"backup_cleaning_failed": "Temporäres Sicherungsverzeichnis konnte nicht geleert werden",
|
"backup_cleaning_failed": "Temporäres Sicherungsverzeichnis konnte nicht geleert werden",
|
||||||
"backup_created": "Datensicherung komplett",
|
"backup_created": "Datensicherung komplett",
|
||||||
"backup_creating_archive": "Datensicherung wird erstellt...",
|
"backup_creating_archive": "Datensicherung wird erstellt…",
|
||||||
"backup_delete_error": "Pfad '{path:s}' konnte nicht gelöscht werden",
|
"backup_delete_error": "Pfad '{path:s}' konnte nicht gelöscht werden",
|
||||||
"backup_deleted": "Datensicherung wurde entfernt",
|
"backup_deleted": "Backup wurde entfernt",
|
||||||
"backup_extracting_archive": "Entpacke Sicherungsarchiv...",
|
"backup_extracting_archive": "Entpacke Sicherungsarchiv...",
|
||||||
"backup_hook_unknown": "Datensicherungshook '{hook:s}' unbekannt",
|
"backup_hook_unknown": "Der Datensicherungshook '{hook:s}' unbekannt",
|
||||||
"backup_invalid_archive": "Ungültige Datensicherung",
|
"backup_invalid_archive": "Dies ist kein Backup-Archiv",
|
||||||
"backup_nothings_done": "Es gibt keine Änderungen zur Speicherung",
|
"backup_nothings_done": "Keine Änderungen zur Speicherung",
|
||||||
"backup_output_directory_forbidden": "Verbotenes Ausgabeverzeichnis. Datensicherung können nicht in /bin, /boot, /dev, /etc, /lib, /root, /run, /sbin, /sys, /usr, /var oder in Unterordnern von /home/yunohost.backup/archives erstellt werden",
|
"backup_output_directory_forbidden": "Wähle ein anderes Ausgabeverzeichnis. Datensicherung können nicht in /bin, /boot, /dev, /etc, /lib, /root, /run, /sbin, /sys, /usr, /var oder in Unterordnern von /home/yunohost.backup/archives erstellt werden",
|
||||||
"backup_output_directory_not_empty": "Ausgabeordner ist nicht leer",
|
"backup_output_directory_not_empty": "Der gewählte Ausgabeordner sollte leer sein",
|
||||||
"backup_output_directory_required": "Für die Datensicherung muss ein Zielverzeichnis angegeben werden",
|
"backup_output_directory_required": "Für die Datensicherung muss ein Zielverzeichnis angegeben werden",
|
||||||
"backup_running_app_script": "Datensicherung für App '{app:s}' wurd durchgeführt...",
|
"backup_running_app_script": "Datensicherung für App '{app:s}' wurd durchgeführt...",
|
||||||
"backup_running_hooks": "Datensicherunghook wird ausgeführt...",
|
"backup_running_hooks": "Datensicherunghook wird ausgeführt…",
|
||||||
"custom_app_url_required": "Es muss eine URL angegeben werden, um deine benutzerdefinierte App {app:s} zu aktualisieren",
|
"custom_app_url_required": "Es muss eine URL angegeben werden, um deine benutzerdefinierte App {app:s} zu aktualisieren",
|
||||||
"custom_appslist_name_required": "Du musst einen Namen für deine benutzerdefinierte Appliste angeben",
|
"custom_appslist_name_required": "Du musst einen Namen für deine benutzerdefinierte Appliste angeben",
|
||||||
"dnsmasq_isnt_installed": "dnsmasq scheint nicht installiert zu sein. Bitte führe 'apt-get remove bind9 && apt-get install dnsmasq' aus",
|
"dnsmasq_isnt_installed": "dnsmasq scheint nicht installiert zu sein. Bitte führe 'apt-get remove bind9 && apt-get install dnsmasq' aus",
|
||||||
|
@ -71,7 +71,7 @@
|
||||||
"domain_zone_exists": "DNS Zonen Datei existiert bereits",
|
"domain_zone_exists": "DNS Zonen Datei existiert bereits",
|
||||||
"domain_zone_not_found": "DNS Zonen Datei kann nicht für Domäne {:s} gefunden werden",
|
"domain_zone_not_found": "DNS Zonen Datei kann nicht für Domäne {:s} gefunden werden",
|
||||||
"done": "Erledigt",
|
"done": "Erledigt",
|
||||||
"downloading": "Wird heruntergeladen...",
|
"downloading": "Wird heruntergeladen…",
|
||||||
"dyndns_cron_installed": "DynDNS Cronjob erfolgreich angelegt",
|
"dyndns_cron_installed": "DynDNS Cronjob erfolgreich angelegt",
|
||||||
"dyndns_cron_remove_failed": "Der DynDNS Cronjob konnte nicht entfernt werden",
|
"dyndns_cron_remove_failed": "Der DynDNS Cronjob konnte nicht entfernt werden",
|
||||||
"dyndns_cron_removed": "Der DynDNS Cronjob wurde gelöscht",
|
"dyndns_cron_removed": "Der DynDNS Cronjob wurde gelöscht",
|
||||||
|
@ -81,9 +81,9 @@
|
||||||
"dyndns_registered": "Deine DynDNS Domain wurde registriert",
|
"dyndns_registered": "Deine DynDNS Domain wurde registriert",
|
||||||
"dyndns_registration_failed": "DynDNS Domain konnte nicht registriert werden: {error:s}",
|
"dyndns_registration_failed": "DynDNS Domain konnte nicht registriert werden: {error:s}",
|
||||||
"dyndns_unavailable": "DynDNS Subdomain ist nicht verfügbar",
|
"dyndns_unavailable": "DynDNS Subdomain ist nicht verfügbar",
|
||||||
"executing_command": "Führe den Behfehl '{command:s}' aus...",
|
"executing_command": "Führe den Behfehl '{command:s}' aus…",
|
||||||
"executing_script": "Skript '{script:s}' wird ausgeührt...",
|
"executing_script": "Skript '{script:s}' wird ausgeührt…",
|
||||||
"extracting": "Wird entpackt...",
|
"extracting": "Wird entpackt…",
|
||||||
"field_invalid": "Feld '{:s}' ist unbekannt",
|
"field_invalid": "Feld '{:s}' ist unbekannt",
|
||||||
"firewall_reload_failed": "Die Firewall konnte nicht neu geladen werden",
|
"firewall_reload_failed": "Die Firewall konnte nicht neu geladen werden",
|
||||||
"firewall_reloaded": "Die Firewall wurde neu geladen",
|
"firewall_reloaded": "Die Firewall wurde neu geladen",
|
||||||
|
@ -156,7 +156,7 @@
|
||||||
"restore_hook_unavailable": "Das Wiederherstellungsskript für '{part:s}' steht weder in deinem System noch im Archiv zur Verfügung",
|
"restore_hook_unavailable": "Das Wiederherstellungsskript für '{part:s}' steht weder in deinem System noch im Archiv zur Verfügung",
|
||||||
"restore_nothings_done": "Es wurde nicht wiederhergestellt",
|
"restore_nothings_done": "Es wurde nicht wiederhergestellt",
|
||||||
"restore_running_app_script": "Wiederherstellung wird ausfeührt für App '{app:s}'...",
|
"restore_running_app_script": "Wiederherstellung wird ausfeührt für App '{app:s}'...",
|
||||||
"restore_running_hooks": "Wiederherstellung wird gestartet...",
|
"restore_running_hooks": "Wiederherstellung wird gestartet…",
|
||||||
"service_add_configuration": "Füge Konfigurationsdatei {file:s} hinzu",
|
"service_add_configuration": "Füge Konfigurationsdatei {file:s} hinzu",
|
||||||
"service_add_failed": "Der Dienst '{service:s}' kann nicht hinzugefügt werden",
|
"service_add_failed": "Der Dienst '{service:s}' kann nicht hinzugefügt werden",
|
||||||
"service_added": "Der Service '{service:s}' wurde erfolgreich hinzugefügt",
|
"service_added": "Der Service '{service:s}' wurde erfolgreich hinzugefügt",
|
||||||
|
@ -189,9 +189,9 @@
|
||||||
"unlimit": "Kein Kontingent",
|
"unlimit": "Kein Kontingent",
|
||||||
"unrestore_app": "App '{app:s}' kann nicht Wiederhergestellt werden",
|
"unrestore_app": "App '{app:s}' kann nicht Wiederhergestellt werden",
|
||||||
"update_cache_failed": "Konnte APT cache nicht aktualisieren",
|
"update_cache_failed": "Konnte APT cache nicht aktualisieren",
|
||||||
"updating_apt_cache": "Die Liste der verfügbaren Pakete wird aktualisiert...",
|
"updating_apt_cache": "Die Liste der verfügbaren Pakete wird aktualisiert…",
|
||||||
"upgrade_complete": "Upgrade vollständig",
|
"upgrade_complete": "Upgrade vollständig",
|
||||||
"upgrading_packages": "Pakete werden aktualisiert...",
|
"upgrading_packages": "Pakete werden aktualisiert…",
|
||||||
"upnp_dev_not_found": "Es konnten keine UPnP Geräte gefunden werden",
|
"upnp_dev_not_found": "Es konnten keine UPnP Geräte gefunden werden",
|
||||||
"upnp_disabled": "UPnP wurde deaktiviert",
|
"upnp_disabled": "UPnP wurde deaktiviert",
|
||||||
"upnp_enabled": "UPnP wurde aktiviert",
|
"upnp_enabled": "UPnP wurde aktiviert",
|
||||||
|
@ -208,12 +208,12 @@
|
||||||
"yunohost_already_installed": "YunoHost ist bereits installiert",
|
"yunohost_already_installed": "YunoHost ist bereits installiert",
|
||||||
"yunohost_ca_creation_failed": "Zertifikatsstelle konnte nicht erstellt werden",
|
"yunohost_ca_creation_failed": "Zertifikatsstelle konnte nicht erstellt werden",
|
||||||
"yunohost_configured": "YunoHost wurde konfiguriert",
|
"yunohost_configured": "YunoHost wurde konfiguriert",
|
||||||
"yunohost_installing": "YunoHost wird installiert...",
|
"yunohost_installing": "YunoHost wird installiert…",
|
||||||
"yunohost_not_installed": "YunoHost ist nicht oder unvollständig installiert worden. Bitte 'yunohost tools postinstall' ausführen",
|
"yunohost_not_installed": "YunoHost ist nicht oder unvollständig installiert worden. Bitte 'yunohost tools postinstall' ausführen",
|
||||||
"app_not_properly_removed": "{app:s} wurde nicht ordnungsgemäß entfernt",
|
"app_not_properly_removed": "{app:s} wurde nicht ordnungsgemäß entfernt",
|
||||||
"service_regenconf_failed": "Konnte die Konfiguration für folgende Dienste nicht neu erzeugen: {services}",
|
"service_regenconf_failed": "Konnte die Konfiguration für folgende Dienste nicht neu erzeugen: {services}",
|
||||||
"not_enough_disk_space": "Zu wenig freier Speicherplatz unter '{path:s}' verfügbar",
|
"not_enough_disk_space": "Zu wenig freier Speicherplatz unter '{path:s}' verfügbar",
|
||||||
"backup_creation_failed": "Erstellen des Backups fehlgeschlagen",
|
"backup_creation_failed": "Konnte Backup-Archiv nicht erstellen",
|
||||||
"service_conf_up_to_date": "Die Konfiguration für den Dienst '{service}' ist bereits aktuell",
|
"service_conf_up_to_date": "Die Konfiguration für den Dienst '{service}' ist bereits aktuell",
|
||||||
"package_not_installed": "Das Paket '{pkgname}' ist nicht installiert",
|
"package_not_installed": "Das Paket '{pkgname}' ist nicht installiert",
|
||||||
"pattern_positive_number": "Muss eine positive Zahl sein",
|
"pattern_positive_number": "Muss eine positive Zahl sein",
|
||||||
|
@ -221,7 +221,7 @@
|
||||||
"package_unexpected_error": "Ein unerwarteter Fehler trat bei der Verarbeitung des Pakets '{pkgname}' auf",
|
"package_unexpected_error": "Ein unerwarteter Fehler trat bei der Verarbeitung des Pakets '{pkgname}' auf",
|
||||||
"app_incompatible": "Die Anwendung {app} ist nicht mit deiner YunoHost-Version kompatibel",
|
"app_incompatible": "Die Anwendung {app} ist nicht mit deiner YunoHost-Version kompatibel",
|
||||||
"app_not_correctly_installed": "{app:s} scheint nicht korrekt installiert zu sein",
|
"app_not_correctly_installed": "{app:s} scheint nicht korrekt installiert zu sein",
|
||||||
"app_requirements_checking": "Überprüfe notwendige Pakete für {app}...",
|
"app_requirements_checking": "Überprüfe notwendige Pakete für {app}…",
|
||||||
"app_requirements_failed": "Anforderungen für {app} werden nicht erfüllt: {error}",
|
"app_requirements_failed": "Anforderungen für {app} werden nicht erfüllt: {error}",
|
||||||
"app_requirements_unmeet": "Anforderungen für {app} werden nicht erfüllt, das Paket {pkgname} ({version}) muss {spec} sein",
|
"app_requirements_unmeet": "Anforderungen für {app} werden nicht erfüllt, das Paket {pkgname} ({version}) muss {spec} sein",
|
||||||
"app_unsupported_remote_type": "Für die App wurde ein nicht unterstützer Steuerungstyp verwendet",
|
"app_unsupported_remote_type": "Für die App wurde ein nicht unterstützer Steuerungstyp verwendet",
|
||||||
|
@ -277,29 +277,141 @@
|
||||||
"service_regenconf_pending_applying": "Überprüfe ausstehende Konfigurationen, die für den Server '{service}' notwendig sind...",
|
"service_regenconf_pending_applying": "Überprüfe ausstehende Konfigurationen, die für den Server '{service}' notwendig sind...",
|
||||||
"certmanager_http_check_timeout": "Eine Zeitüberschreitung ist aufgetreten als der Server versuchte sich selbst über HTTP mit der öffentlichen IP (Domain {domain:s} mit der IP {ip:s}) zu erreichen. Möglicherweise ist dafür hairpinning oder eine falsch konfigurierte Firewall/Router deines Servers dafür verantwortlich.",
|
"certmanager_http_check_timeout": "Eine Zeitüberschreitung ist aufgetreten als der Server versuchte sich selbst über HTTP mit der öffentlichen IP (Domain {domain:s} mit der IP {ip:s}) zu erreichen. Möglicherweise ist dafür hairpinning oder eine falsch konfigurierte Firewall/Router deines Servers dafür verantwortlich.",
|
||||||
"certmanager_couldnt_fetch_intermediate_cert": "Eine Zeitüberschreitung ist aufgetreten als der Server versuchte die Teilzertifikate von Let's Encrypt zusammenzusetzen. Die Installation/Erneuerung des Zertifikats wurde abgebrochen - bitte versuche es später erneut.",
|
"certmanager_couldnt_fetch_intermediate_cert": "Eine Zeitüberschreitung ist aufgetreten als der Server versuchte die Teilzertifikate von Let's Encrypt zusammenzusetzen. Die Installation/Erneuerung des Zertifikats wurde abgebrochen - bitte versuche es später erneut.",
|
||||||
"appslist_retrieve_bad_format": "Die empfangene Datei der Appliste {appslist:s} ist ungültig",
|
"appslist_retrieve_bad_format": "Die geladene Appliste {appslist:s} ist ungültig",
|
||||||
"domain_hostname_failed": "Erstellen des neuen Hostnamens fehlgeschlagen",
|
"domain_hostname_failed": "Erstellen des neuen Hostnamens fehlgeschlagen",
|
||||||
"appslist_name_already_tracked": "Es gibt bereits eine registrierte App-Liste mit Namen {name:s}.",
|
"appslist_name_already_tracked": "Es gibt bereits eine registrierte App-Liste mit Namen {name:s}.",
|
||||||
"appslist_url_already_tracked": "Es gibt bereits eine registrierte Anwendungsliste mit dem URL {url:s}.",
|
"appslist_url_already_tracked": "Es gibt bereits eine registrierte Anwendungsliste mit der URL {url:s}.",
|
||||||
"appslist_migrating": "Migriere Anwendungsliste {appslist:s} ...",
|
"appslist_migrating": "Migriere Anwendungsliste {appslist:s} …",
|
||||||
"appslist_could_not_migrate": "Konnte Anwendungsliste {appslist:s} nicht migrieren. Konnte die URL nicht verarbeiten... Der alte Cron-Job wurde unter {bkp_file:s} beibehalten.",
|
"appslist_could_not_migrate": "Konnte Anwendungsliste {appslist:s} nicht migrieren. Konnte die URL nicht verarbeiten... Der alte Cron-Job wurde unter {bkp_file:s} beibehalten.",
|
||||||
"appslist_corrupted_json": "Konnte die Anwendungslisten. Es scheint, dass {filename:s} beschädigt ist.",
|
"appslist_corrupted_json": "Anwendungslisten konnte nicht geladen werden. Es scheint, dass {filename:s} beschädigt ist.",
|
||||||
"yunohost_ca_creation_success": "Die lokale Zertifizierungs-Authorität wurde angelegt.",
|
"yunohost_ca_creation_success": "Die lokale Zertifizierungs-Authorität wurde angelegt.",
|
||||||
"app_already_installed_cant_change_url": "Diese Application ist bereits installiert. Die URL kann durch diese Funktion nicht modifiziert werden. Überprüfe ob `app changeurl` verfügbar ist.",
|
"app_already_installed_cant_change_url": "Diese Application ist bereits installiert. Die URL kann durch diese Funktion nicht modifiziert werden. Überprüfe ob `app changeurl` verfügbar ist.",
|
||||||
"app_change_no_change_url_script": "Die Application {app_name:s} unterstützt das anpassen der URL noch nicht. Sie muss gegebenenfalls erweitert werden.",
|
"app_change_no_change_url_script": "Die Application {app_name:s} unterstützt das anpassen der URL noch nicht. Sie muss gegebenenfalls erweitert werden.",
|
||||||
"app_change_url_failed_nginx_reload": "NGINX konnte nicht neu gestartet werden. Hier ist der Output von 'nginx -t':\n{nginx_errors:s}",
|
"app_change_url_failed_nginx_reload": "NGINX konnte nicht neu gestartet werden. Hier ist der Output von 'nginx -t':\n{nginx_errors:s}",
|
||||||
"app_change_url_identical_domains": "Die alte und neue domain/url_path sind identisch: ('{domain:s} {path:s}'). Es gibt nichts zu tun.",
|
"app_change_url_identical_domains": "Die alte und neue domain/url_path sind identisch: ('{domain:s} {path:s}'). Es gibt nichts zu tun.",
|
||||||
"app_already_up_to_date": "{app:s} ist schon aktuell",
|
"app_already_up_to_date": "{app:s} ist bereits aktuell",
|
||||||
"backup_abstract_method": "Diese Backup-Methode wird noch nicht unterstützt",
|
"backup_abstract_method": "Diese Backup-Methode wird noch nicht unterstützt",
|
||||||
"backup_applying_method_tar": "Erstellen des Backup-tar Archives...",
|
"backup_applying_method_tar": "Erstellen des Backup-tar Archives…",
|
||||||
"backup_applying_method_copy": "Kopiere alle Dateien ins Backup...",
|
"backup_applying_method_copy": "Kopiere alle Dateien ins Backup…",
|
||||||
"app_change_url_no_script": "Die Anwendung '{app_name:s}' unterstützt bisher keine URL-Modufikation. Vielleicht gibt es eine Aktualisierung der Anwendung.",
|
"app_change_url_no_script": "Die Anwendung '{app_name:s}' unterstützt bisher keine URL-Modufikation. Vielleicht gibt es eine Aktualisierung.",
|
||||||
"app_location_unavailable": "Diese URL ist nicht verfügbar oder wird von einer installierten Anwendung genutzt:\n{apps:s}",
|
"app_location_unavailable": "Diese URL ist nicht verfügbar oder wird von einer installierten Anwendung genutzt:\n{apps:s}",
|
||||||
"backup_applying_method_custom": "Rufe die benutzerdefinierte Backup-Methode '{method:s}' auf...",
|
"backup_applying_method_custom": "Rufe die benutzerdefinierte Backup-Methode '{method:s}' auf…",
|
||||||
"backup_archive_system_part_not_available": "Der System-Teil '{part:s}' ist in diesem Backup nicht enthalten",
|
"backup_archive_system_part_not_available": "Der System-Teil '{part:s}' ist in diesem Backup nicht enthalten",
|
||||||
"backup_archive_mount_failed": "Das Einbinden des Backup-Archives ist fehlgeschlagen",
|
"backup_archive_mount_failed": "Das Einbinden des Backup-Archives ist fehlgeschlagen",
|
||||||
"backup_archive_writing_error": "Die Dateien konnten nicht in der komprimierte Archiv-Backup hinzugefügt werden",
|
"backup_archive_writing_error": "Die Dateien '{source:s} (im Ordner '{dest:s}') konnten nicht in das komprimierte Archiv-Backup '{archive:s}' hinzugefügt werden",
|
||||||
"app_change_url_success": "Erfolgreiche Änderung der URL von {app:s} zu {domain:s}{path:s}",
|
"app_change_url_success": "{app:s} URL ist nun {domain:s}{path:s}",
|
||||||
"backup_applying_method_borg": "Sende alle Dateien zur Sicherung ins borg-backup repository...",
|
"backup_applying_method_borg": "Sende alle Dateien zur Sicherung ins borg-backup repository…",
|
||||||
"invalid_url_format": "ungültiges URL Format"
|
"invalid_url_format": "ungültiges URL Format",
|
||||||
|
"global_settings_bad_type_for_setting": "Falscher Typ für Einstellung {setting: s}. Empfangen: {receive_type: s}, aber erwartet: {expected_type: s}",
|
||||||
|
"global_settings_bad_choice_for_enum": "Falsche Wahl für die Einstellung {setting: s}. Habe '{choice: s}' erhalten, aber es stehen nur folgende Auswahlmöglichkeiten zur Verfügung: {available_choices: s}",
|
||||||
|
"file_does_not_exist": "Die Datei {path: s} existiert nicht.",
|
||||||
|
"experimental_feature": "Warnung: Diese Funktion ist experimentell und gilt nicht als stabil. Sie sollten sie nur verwenden, wenn Sie wissen, was Sie tun.",
|
||||||
|
"error_when_removing_sftpuser_group": "Fehler beim Versuch, die Gruppe sftpusers zu entfernen",
|
||||||
|
"edit_permission_with_group_all_users_not_allowed": "Sie dürfen die Berechtigung für die Gruppe \"all_users\" nicht bearbeiten. Verwenden Sie stattdessen \"yunohost user permission clear APP\" oder \"yunohost user permission add APP -u USER\".",
|
||||||
|
"edit_group_not_allowed": "Du bist nicht berechtigt zum Bearbeiten der Gruppe {group: s}",
|
||||||
|
"dyndns_domain_not_provided": "Der Dyndns-Anbieter {provider: s} kann die Domain(s) {domain: s} nicht bereitstellen.",
|
||||||
|
"dyndns_could_not_check_available": "Konnte nicht überprüfen, ob {domain: s} auf {provider: s} verfügbar ist.",
|
||||||
|
"dyndns_could_not_check_provide": "Konnte nicht überprüft, ob {provider: s} die Domain(s) {domain: s} bereitstellen kann.",
|
||||||
|
"domain_dyndns_dynette_is_unreachable": "YunoHost dynette kann nicht erreicht werden, entweder ist Ihr YunoHost nicht korrekt mit dem Internet verbunden oder der dynette-Server ist inaktiv. Fehler: {error}",
|
||||||
|
"domain_dns_conf_is_just_a_recommendation": "Dieser Befehl zeigt Ihnen, was die * empfohlene * Konfiguration ist. Die DNS-Konfiguration wird NICHT für Sie eingerichtet. Es liegt in Ihrer Verantwortung, Ihre DNS-Zone in Ihrem Registrar gemäß dieser Empfehlung zu konfigurieren.",
|
||||||
|
"dpkg_lock_not_available": "Dieser Befehl kann momentan nicht ausgeführt werden, da anscheinend ein anderes Programm die Sperre von dpkg (dem Systempaket-Manager) verwendet",
|
||||||
|
"confirm_app_install_thirdparty": "WARNUNG! Das Installieren von Anwendungen von Drittanbietern kann die Integrität und Sicherheit Deines Systems beeinträchtigen. Du solltest es wahrscheinlich NICHT installieren, es sei denn, Du weisst, was Du tust. Bist du bereit, dieses Risiko einzugehen? [{answers: s}] ",
|
||||||
|
"confirm_app_install_danger": "WARNUNG! Diese Anwendung ist noch experimentell (wenn nicht ausdrücklich \"not working\"/\"funktioniert nicht\") und es ist wahrscheinlich, dass Dein System Schaden nimmt! Du solltest es wahrscheinlich NICHT installieren, es sei denn, Du weisst, was Du tust. Bist du bereit, dieses Risiko einzugehen? [{answers: s}] ",
|
||||||
|
"confirm_app_install_warning": "Warnung: Diese Anwendung funktioniert möglicherweise, ist jedoch nicht gut in YunoHost integriert. Einige Funktionen wie Single Sign-On und Backup / Restore sind möglicherweise nicht verfügbar. Trotzdem installieren? [{answers: s}] ",
|
||||||
|
"backup_with_no_restore_script_for_app": "App {app: s} hat kein Wiederherstellungsskript. Das Backup dieser App kann nicht automatisch wiederhergestellt werden.",
|
||||||
|
"backup_with_no_backup_script_for_app": "App {app: s} hat kein Sicherungsskript. Ignoriere es.",
|
||||||
|
"backup_unable_to_organize_files": "Dateien im Archiv können mit der schnellen Methode nicht organisiert werden",
|
||||||
|
"backup_system_part_failed": "Der Systemteil '{part: s}' kann nicht gesichert werden",
|
||||||
|
"backup_permission": "Sicherungsberechtigung für App {app: s}",
|
||||||
|
"backup_output_symlink_dir_broken": "Sie haben einen fehlerhaften Symlink anstelle Ihres Archivverzeichnisses '{path: s}'. Möglicherweise haben Sie ein spezielles Setup, um Ihre Daten auf einem anderen Dateisystem zu sichern. In diesem Fall haben Sie wahrscheinlich vergessen, Ihre Festplatte oder Ihren USB-Schlüssel erneut einzuhängen oder anzuschließen.",
|
||||||
|
"backup_mount_archive_for_restore": "Archiv für Wiederherstellung vorbereiten…",
|
||||||
|
"backup_method_tar_finished": "Tar-Backup-Archiv erstellt",
|
||||||
|
"backup_method_custom_finished": "Benutzerdefinierte Sicherungsmethode '{method: s}' beendet",
|
||||||
|
"backup_method_copy_finished": "Sicherungskopie beendet",
|
||||||
|
"backup_method_borg_finished": "Backup in Borg beendet",
|
||||||
|
"backup_custom_need_mount_error": "Bei der benutzerdefinierten Sicherungsmethode ist beim Arbeitsschritt \"Braucht ein Einhängen/Verbinden\" (need_mount) ein Fehler aufgetreten",
|
||||||
|
"backup_custom_mount_error": "Bei der benutzerdefinierten Sicherungsmethode ist beim Arbeitsschritt \"Einhängen/Verbinden\" ein Fehler aufgetreten",
|
||||||
|
"backup_custom_backup_error": "Bei der benutzerdefinierten Sicherungsmethode ist beim Arbeitsschritt \"Sicherung\" ein Fehler aufgetreten",
|
||||||
|
"backup_csv_creation_failed": "Die zur Wiederherstellung erforderliche CSV-Datei kann nicht erstellt werden",
|
||||||
|
"backup_couldnt_bind": "{Src: s} konnte nicht an {dest: s} angebunden werden.",
|
||||||
|
"backup_borg_not_implemented": "Die Borg-Sicherungsmethode ist noch nicht implementiert",
|
||||||
|
"backup_ask_for_copying_if_needed": "Einige Dateien konnten mit der Methode, die es vermeidet vorübergehend Speicherplatz auf dem System zu verschwenden, nicht gesichert werden. Zur Durchführung der Sicherung sollten vorübergehend {size: s} MB verwendet werden. Sind Sie einverstanden?",
|
||||||
|
"backup_actually_backuping": "Erstellt ein Backup-Archiv aus den gesammelten Dateien …",
|
||||||
|
"ask_path": "Pfad",
|
||||||
|
"ask_new_path": "Neuer Pfad",
|
||||||
|
"ask_new_domain": "Neue Domain",
|
||||||
|
"apps_permission_restoration_failed": "Erteilen der Berechtigung '{permission: s}' für die Wiederherstellung der App {app: s} erforderlich",
|
||||||
|
"apps_permission_not_found": "Keine Berechtigung für die installierten Apps gefunden",
|
||||||
|
"app_upgrade_some_app_failed": "Einige Anwendungen können nicht aktualisiert werden",
|
||||||
|
"app_upgrade_app_name": "{App} wird jetzt aktualisiert…",
|
||||||
|
"app_upgrade_several_apps": "Die folgenden Apps werden aktualisiert: {apps}",
|
||||||
|
"app_start_restore": "Anwendung {app} wird wiederhergestellt…",
|
||||||
|
"app_start_backup": "Sammeln von Dateien, die für {app} gesichert werden sollen…",
|
||||||
|
"app_start_remove": "Anwendung {app} wird entfernt…",
|
||||||
|
"app_start_install": "Anwendung {app} wird installiert…",
|
||||||
|
"app_not_upgraded": "Die App '{failed_app}' konnte nicht aktualisiert werden. Infolgedessen wurden die folgenden App-Upgrades abgebrochen: {apps}",
|
||||||
|
"app_make_default_location_already_used": "Die App \"{app}\" kann nicht als Standard für die Domain \"{domain}\" festgelegt werden. Sie wird bereits von der anderen App \"{other_app}\" verwendet",
|
||||||
|
"aborting": "Breche ab.",
|
||||||
|
"app_action_cannot_be_ran_because_required_services_down": "Diese App erfordert einige Dienste, die derzeit nicht verfügbar sind. Bevor Sie fortfahren, sollten Sie versuchen, die folgenden Dienste neu zu starten (und möglicherweise untersuchen, warum sie nicht verfügbar sind): {services}",
|
||||||
|
"already_up_to_date": "Nichts zu tun. Alles ist bereits auf dem neusten Stand.",
|
||||||
|
"admin_password_too_long": "Bitte ein Passwort kürzer als 127 Zeichen wählen",
|
||||||
|
"app_action_broke_system": "Diese Aktion hat anscheinend diese wichtigen Services gestört: {services}",
|
||||||
|
"apps_already_up_to_date": "Alle Apps sind bereits aktuell",
|
||||||
|
"backup_copying_to_organize_the_archive": "Kopieren von {size: s} MB, um das Archiv zu organisieren",
|
||||||
|
"app_upgrade_stopped": "Das Upgrade aller Anwendungen wurde gestoppt, um mögliche Schäden zu vermeiden, da das Upgrade der vorherigen Anwendung fehlgeschlagen ist",
|
||||||
|
"group_already_disallowed": "Die Gruppe '{group:s}' hat bereits die Berechtigungen '{permission:s}' für die App '{app:s}' deaktiviert",
|
||||||
|
"global_settings_setting_security_ssh_compatibility": "Kompatibilität vs. Sicherheitskompromiss für den SSH-Server. Beeinflusst die Chiffren (und andere sicherheitsrelevante Aspekte)",
|
||||||
|
"group_deleted": "Gruppe '{group}' gelöscht",
|
||||||
|
"group_deletion_failed": "Kann Gruppe '{group}' nicht löschen",
|
||||||
|
"group_deletion_not_allowed": "Die Gruppe {group:s} kann nicht manuell gelöscht werden.",
|
||||||
|
"dyndns_provider_unreachable": "Dyndns-Anbieter {provider} kann nicht erreicht werden: Entweder ist dein YunoHost nicht korrekt mit dem Internet verbunden oder der Dynette-Server ist ausgefallen.",
|
||||||
|
"group_already_allowed": "Gruppe '{group:s}' hat bereits die Berechtigung '{permission:s}' für die App '{app:s}' eingeschaltet",
|
||||||
|
"group_name_already_exist": "Gruppe {name:s} existiert bereits",
|
||||||
|
"group_created": "Gruppe '{group}' angelegt",
|
||||||
|
"group_creation_failed": "Kann Gruppe '{group}' nicht anlegen",
|
||||||
|
"group_unknown": "Die Gruppe '{group:s}' ist unbekannt",
|
||||||
|
"group_updated": "Gruppe '{group:s}' erneuert",
|
||||||
|
"group_update_failed": "Kann Gruppe '{group:s}' nicht anpassen",
|
||||||
|
"log_does_exists": "Es gibt kein Operationsprotokoll mit dem Namen'{log}', verwende'yunohost log list', um alle verfügbaren Operationsprotokolle anzuzeigen",
|
||||||
|
"log_app_removelist": "Entferne eine Applikationsliste",
|
||||||
|
"log_operation_unit_unclosed_properly": "Die Operationseinheit wurde nicht richtig geschlossen",
|
||||||
|
"log_app_removeaccess": "Entziehe Zugriff auf '{}'",
|
||||||
|
"global_settings_setting_security_postfix_compatibility": "Kompatibilität vs. Sicherheitskompromiss für den Postfix-Server. Beeinflusst die Chiffren (und andere sicherheitsrelevante Aspekte)",
|
||||||
|
"log_category_404": "Die Log-Kategorie '{category}' existiert nicht",
|
||||||
|
"global_settings_unknown_type": "Unerwartete Situation, die Einstellung {setting:s} scheint den Typ {unknown_type:s} zu haben, ist aber kein vom System unterstützter Typ.",
|
||||||
|
"dpkg_is_broken": "Du kannst das gerade nicht tun, weil dpkg/APT (der Systempaketmanager) in einem defekten Zustand zu sein scheint.... Du kannst versuchen, dieses Problem zu lösen, indem du dich über SSH verbindest und `sudo dpkg --configure -a` ausführst.",
|
||||||
|
"global_settings_unknown_setting_from_settings_file": "Unbekannter Schlüssel in den Einstellungen: '{setting_key:s}', verwerfen und speichern in /etc/yunohost/settings-unknown.json",
|
||||||
|
"log_link_to_log": "Vollständiges Log dieser Operation: '<a href=\"#/tools/logs/{name}\" style=\"text-decoration:underline\">{desc}</a>'",
|
||||||
|
"global_settings_setting_example_bool": "Beispiel einer booleschen Option",
|
||||||
|
"log_app_fetchlist": "Füge eine Applikationsliste hinzu",
|
||||||
|
"log_help_to_get_log": "Um das Protokoll der Operation '{desc}' anzuzeigen, verwende den Befehl 'yunohost log display {name}'",
|
||||||
|
"global_settings_setting_security_nginx_compatibility": "Kompatibilität vs. Sicherheitskompromiss für den Webserver NGINX. Beeinflusst die Chiffren (und andere sicherheitsrelevante Aspekte)",
|
||||||
|
"backup_php5_to_php7_migration_may_fail": "Dein Archiv konnte nicht für PHP 7 konvertiert werden, Du kannst deine PHP-Anwendungen möglicherweise nicht wiederherstellen (Grund: {error:s})",
|
||||||
|
"global_settings_setting_service_ssh_allow_deprecated_dsa_hostkey": "Erlaubt die Verwendung eines (veralteten) DSA-Hostkeys für die SSH-Daemon-Konfiguration",
|
||||||
|
"global_settings_setting_example_string": "Beispiel einer string Option",
|
||||||
|
"log_app_addaccess": "Füge Zugriff auf '{}' hinzu",
|
||||||
|
"log_app_remove": "Entferne die Anwendung '{}'",
|
||||||
|
"global_settings_setting_example_int": "Beispiel einer int Option",
|
||||||
|
"global_settings_cant_open_settings": "Einstellungsdatei konnte nicht geöffnet werden, Grund: {reason:s}",
|
||||||
|
"global_settings_cant_write_settings": "Einstellungsdatei konnte nicht gespeichert werden, Grund: {reason:s}",
|
||||||
|
"log_app_install": "Installiere die Anwendung '{}'",
|
||||||
|
"global_settings_reset_success": "Frühere Einstellungen werden nun auf {path:s} gesichert",
|
||||||
|
"log_app_upgrade": "Upgrade der Anwendung '{}'",
|
||||||
|
"good_practices_about_admin_password": "Sie sind nun dabei, ein neues Administrationspasswort zu definieren. Das Passwort sollte mindestens 8 Zeichen lang sein - obwohl es sinnvoll ist, ein längeres Passwort (z.B. eine Passphrase) und/oder eine Variation von Zeichen (Groß- und Kleinschreibung, Ziffern und Sonderzeichen) zu verwenden.",
|
||||||
|
"log_corrupted_md_file": "Die mit Protokollen verknüpfte YAML-Metadatendatei ist beschädigt: '{md_file}\nFehler: {error}''",
|
||||||
|
"global_settings_cant_serialize_settings": "Einstellungsdaten konnten nicht serialisiert werden, Grund: {reason:s}",
|
||||||
|
"log_help_to_get_failed_log": "Der Vorgang'{desc}' konnte nicht abgeschlossen werden. Bitte teile das vollständige Protokoll dieser Operation mit dem Befehl 'yunohost log display {name} --share', um Hilfe zu erhalten",
|
||||||
|
"backup_no_uncompress_archive_dir": "Dieses unkomprimierte Archivverzeichnis gibt es nicht",
|
||||||
|
"log_app_change_url": "Ändere die URL der Anwendung '{}'",
|
||||||
|
"global_settings_setting_security_password_user_strength": "Stärke des Benutzerpassworts",
|
||||||
|
"good_practices_about_user_password": "Du bist nun dabei, ein neues Benutzerpasswort zu definieren. Das Passwort sollte mindestens 8 Zeichen lang sein - obwohl es ratsam ist, ein längeres Passwort (z.B. eine Passphrase) und/oder eine Variation von Zeichen (Groß- und Kleinschreibung, Ziffern und Sonderzeichen) zu verwenden.",
|
||||||
|
"global_settings_setting_example_enum": "Beispiel einer enum Option",
|
||||||
|
"log_link_to_failed_log": "Der Vorgang konnte nicht abgeschlossen werden '{desc}'. Bitte gib das vollständige Protokoll dieser Operation mit <a href=\"#/tools/logs/{name}\">Klicken Sie hier</a> an, um Hilfe zu erhalten",
|
||||||
|
"backup_cant_mount_uncompress_archive": "Das unkomprimierte Archiv konnte nicht als schreibgeschützt gemountet werden",
|
||||||
|
"backup_csv_addition_failed": "Es konnten keine Dateien zur Sicherung in die CSV-Datei hinzugefügt werden",
|
||||||
|
"log_app_clearaccess": "Entziehe alle Zugriffe auf '{}'",
|
||||||
|
"global_settings_setting_security_password_admin_strength": "Stärke des Admin-Passworts",
|
||||||
|
"global_settings_key_doesnt_exists": "Der Schlüssel'{settings_key:s}' existiert nicht in den globalen Einstellungen, du kannst alle verfügbaren Schlüssel sehen, indem du 'yunohost settings list' ausführst",
|
||||||
|
"log_app_makedefault": "Mache '{}' zur Standard-Anwendung",
|
||||||
|
"hook_json_return_error": "Konnte die Rückkehr vom Einsprungpunkt {path:s} nicht lesen. Fehler: {msg:s}. Unformatierter Inhalt: {raw_content}"
|
||||||
}
|
}
|
||||||
|
|
733
locales/en.json
733
locales/en.json
|
@ -2,66 +2,68 @@
|
||||||
"aborting": "Aborting.",
|
"aborting": "Aborting.",
|
||||||
"action_invalid": "Invalid action '{action:s}'",
|
"action_invalid": "Invalid action '{action:s}'",
|
||||||
"admin_password": "Administration password",
|
"admin_password": "Administration password",
|
||||||
"admin_password_change_failed": "Unable to change password",
|
"admin_password_change_failed": "Cannot change password",
|
||||||
"admin_password_changed": "The administration password has been changed",
|
"admin_password_changed": "The administration password got changed",
|
||||||
"admin_password_too_long": "Please choose a password shorter than 127 characters",
|
"admin_password_too_long": "Please choose a password shorter than 127 characters",
|
||||||
"already_up_to_date": "Nothing to do! Everything is already up to date!",
|
"already_up_to_date": "Nothing to do. Everything is already up-to-date.",
|
||||||
"app_action_cannot_be_ran_because_required_services_down": "This app requires some services which are currently down. Before continuing, you should try to restart the following services (and possibly investigate why they are down) : {services}",
|
"app_action_cannot_be_ran_because_required_services_down": "This app requires some services which are currently down. Before continuing, you should try to restart the following services (and possibly investigate why they are down): {services}",
|
||||||
|
"app_action_broke_system": "This action seem to have broke these important services: {services}",
|
||||||
"app_already_installed": "{app:s} is already installed",
|
"app_already_installed": "{app:s} is already installed",
|
||||||
"app_already_installed_cant_change_url": "This app is already installed. The url cannot be changed just by this function. Look into `app changeurl` if it's available.",
|
"app_already_installed_cant_change_url": "This app is already installed. The URL cannot be changed just by this function. Look into `app changeurl` if it's available.",
|
||||||
"app_already_up_to_date": "{app:s} is already up to date",
|
"app_already_up_to_date": "{app:s} is already up-to-date",
|
||||||
"app_argument_choice_invalid": "Invalid choice for argument '{name:s}', it must be one of {choices:s}",
|
"app_argument_choice_invalid": "Use one of these choices '{choices:s}' for the argument '{name:s}'",
|
||||||
"app_argument_invalid": "Invalid value for argument '{name:s}': {error:s}",
|
"app_argument_invalid": "Pick a valid value for the argument '{name:s}': {error:s}",
|
||||||
"app_argument_required": "Argument '{name:s}' is required",
|
"app_argument_required": "Argument '{name:s}' is required",
|
||||||
"app_change_no_change_url_script": "The application {app_name:s} doesn't support changing it's URL yet, you might need to upgrade it.",
|
"app_change_url_failed_nginx_reload": "Could not reload NGINX. Here is the output of 'nginx -t':\n{nginx_errors:s}",
|
||||||
"app_change_url_failed_nginx_reload": "Failed to reload nginx. Here is the output of 'nginx -t':\n{nginx_errors:s}",
|
|
||||||
"app_change_url_identical_domains": "The old and new domain/url_path are identical ('{domain:s}{path:s}'), nothing to do.",
|
"app_change_url_identical_domains": "The old and new domain/url_path are identical ('{domain:s}{path:s}'), nothing to do.",
|
||||||
"app_change_url_no_script": "This application '{app_name:s}' doesn't support url modification yet. Maybe you should upgrade the application.",
|
"app_change_url_no_script": "This application '{app_name:s}' doesn't support URL modification yet. Maybe you should upgrade it.",
|
||||||
"app_change_url_success": "Successfully changed {app:s} url to {domain:s}{path:s}",
|
"app_change_url_success": "{app:s} URL is now {domain:s}{path:s}",
|
||||||
"app_extraction_failed": "Unable to extract installation files",
|
"app_extraction_failed": "Could not extract the installation files",
|
||||||
"app_id_invalid": "Invalid app id",
|
"app_full_domain_unavailable": "Sorry, this application requires a full domain to be installed on, but some other apps are already installed on domain '{domain}'. One possible solution is to add and use a subdomain dedicated to this application instead.",
|
||||||
|
"app_id_invalid": "Invalid app ID",
|
||||||
"app_incompatible": "The app {app} is incompatible with your YunoHost version",
|
"app_incompatible": "The app {app} is incompatible with your YunoHost version",
|
||||||
"app_install_files_invalid": "Invalid installation files",
|
"app_install_files_invalid": "These files cannot be installed",
|
||||||
"app_location_already_used": "The app '{app}' is already installed on that location ({path})",
|
"app_location_already_used": "The app '{app}' is already installed in ({path})",
|
||||||
"app_make_default_location_already_used": "Can't make the app '{app}' the default on the domain {domain} is already used by the other app '{other_app}'",
|
"app_make_default_location_already_used": "Can't make the app '{app}' the default on the domain, {domain} is already in use by the other app '{other_app}'",
|
||||||
"app_location_install_failed": "Unable to install the app in this location because it conflit with the app '{other_app}' already installed on '{other_path}'",
|
"app_location_install_failed": "Cannot install the app there because it conflicts with the app '{other_app}' already installed in '{other_path}'",
|
||||||
"app_location_unavailable": "This url is not available or conflicts with the already installed app(s):\n{apps:s}",
|
"app_location_unavailable": "This URL is either unavailable, or conflicts with the already installed app(s):\n{apps:s}",
|
||||||
"app_manifest_invalid": "Invalid app manifest: {error}",
|
"app_manifest_invalid": "Something is wrong with the app manifest: {error}",
|
||||||
"app_no_upgrade": "No apps to upgrade",
|
"app_not_upgraded": "The app '{failed_app}' failed to upgrade, and as a consequence the following apps upgrades have been cancelled: {apps}",
|
||||||
"app_not_upgraded": "The following apps were not upgraded: {apps}",
|
"app_upgrade_stopped": "The upgrade of all applications has been stopped to prevent possible damage because the previous application failed to upgrade",
|
||||||
"app_not_correctly_installed": "{app:s} seems to be incorrectly installed",
|
"app_not_correctly_installed": "{app:s} seems to be incorrectly installed",
|
||||||
"app_not_installed": "The application '{app:s}' is not installed. Here is the list of all installed apps: {all_apps}",
|
"app_not_installed": "Could not find the application '{app:s}' in the list of installed apps: {all_apps}",
|
||||||
"app_not_properly_removed": "{app:s} has not been properly removed",
|
"app_not_properly_removed": "{app:s} has not been properly removed",
|
||||||
"app_package_need_update": "The app {app} package needs to be updated to follow YunoHost changes",
|
"app_package_need_update": "The app {app} package needs to be updated to follow YunoHost changes",
|
||||||
"app_removed": "{app:s} has been removed",
|
"app_removed": "{app:s} removed",
|
||||||
"app_requirements_checking": "Checking required packages for {app}…",
|
"app_requirements_checking": "Checking required packages for {app}…",
|
||||||
"app_requirements_failed": "Unable to meet requirements for {app}: {error}",
|
"app_requirements_failed": "Some requirements are not met for {app}: {error}",
|
||||||
"app_requirements_unmeet": "Requirements are not met for {app}, the package {pkgname} ({version}) must be {spec}",
|
"app_requirements_unmeet": "Requirements are not met for {app}, the package {pkgname} ({version}) must be {spec}",
|
||||||
"app_sources_fetch_failed": "Unable to fetch sources files, is the url correct?",
|
"app_sources_fetch_failed": "Could not fetch sources files, is the URL correct?",
|
||||||
"app_start_install": "Installing application {app}…",
|
"app_start_install": "Installing application {app}…",
|
||||||
"app_start_remove": "Removing application {app}…",
|
"app_start_remove": "Removing application {app}…",
|
||||||
"app_start_backup": "Collecting files to be backuped for {app}…",
|
"app_start_backup": "Collecting files to be backed up for {app}…",
|
||||||
"app_start_restore": "Restoring application {app}…",
|
"app_start_restore": "Restoring application {app}…",
|
||||||
"app_unknown": "Unknown app",
|
"app_unknown": "Unknown app",
|
||||||
"app_unsupported_remote_type": "Unsupported remote type used for the app",
|
"app_unsupported_remote_type": "Unsupported remote type used for the app",
|
||||||
"app_upgrade_several_apps": "The following apps will be upgraded : {apps}",
|
"app_upgrade_several_apps": "The following apps will be upgraded: {apps}",
|
||||||
"app_upgrade_app_name": "Now upgrading app {app}…",
|
"app_upgrade_app_name": "Now upgrading {app}…",
|
||||||
"app_upgrade_failed": "Unable to upgrade {app:s}",
|
"app_upgrade_failed": "Could not upgrade {app:s}",
|
||||||
"app_upgrade_some_app_failed": "Unable to upgrade some applications",
|
"app_upgrade_some_app_failed": "Some applications could not be upgraded",
|
||||||
"app_upgraded": "{app:s} has been upgraded",
|
"app_upgraded": "{app:s} upgraded",
|
||||||
|
"apps_already_up_to_date": "All applications are already up-to-date",
|
||||||
"apps_permission_not_found": "No permission found for the installed apps",
|
"apps_permission_not_found": "No permission found for the installed apps",
|
||||||
"appslist_corrupted_json": "Could not load the application lists. It looks like {filename:s} is corrupted.",
|
"appslist_corrupted_json": "Could not load the application lists. It looks like {filename:s} is damaged.",
|
||||||
"appslist_could_not_migrate": "Could not migrate app list {appslist:s}! Unable to parse the url… The old cron job has been kept in {bkp_file:s}.",
|
"appslist_could_not_migrate": "Could not migrate the app list {appslist:s}! Could not parse the URL… The old cron job was kept kept in {bkp_file:s}.",
|
||||||
"appslist_fetched": "The application list {appslist:s} has been fetched",
|
"appslist_fetched": "Updated application list {appslist:s}",
|
||||||
"appslist_migrating": "Migrating application list {appslist:s}…",
|
"appslist_migrating": "Migrating application list {appslist:s}…",
|
||||||
"appslist_name_already_tracked": "There is already a registered application list with name {name:s}.",
|
"appslist_name_already_tracked": "A registered application list with name {name:s} already exists.",
|
||||||
"appslist_removed": "The application list {appslist:s} has been removed",
|
"appslist_removed": "{appslist:s} application list removed",
|
||||||
"appslist_retrieve_bad_format": "Retrieved file for application list {appslist:s} is not valid",
|
"appslist_retrieve_bad_format": "Could not read the fetched application list {appslist:s}",
|
||||||
"appslist_retrieve_error": "Unable to retrieve the remote application list {appslist:s}: {error:s}",
|
"appslist_retrieve_error": "Cannot retrieve the remote application list {appslist:s}: {error:s}",
|
||||||
"appslist_unknown": "Application list {appslist:s} unknown.",
|
"appslist_unknown": "Application list {appslist:s} unknown.",
|
||||||
"appslist_url_already_tracked": "There is already a registered application list with url {url:s}.",
|
"appslist_url_already_tracked": "There is already a registered application list with the URL {url:s}.",
|
||||||
"ask_current_admin_password": "Current administration password",
|
"ask_current_admin_password": "Current administration password",
|
||||||
"ask_email": "Email address",
|
"ask_email": "E-mail address",
|
||||||
"ask_firstname": "First name",
|
"ask_firstname": "First name",
|
||||||
"ask_lastname": "Last name",
|
"ask_lastname": "Last name",
|
||||||
"ask_list_to_remove": "List to remove",
|
"ask_list_to_remove": "List to remove",
|
||||||
|
@ -71,202 +73,189 @@
|
||||||
"ask_new_path": "New path",
|
"ask_new_path": "New path",
|
||||||
"ask_password": "Password",
|
"ask_password": "Password",
|
||||||
"ask_path": "Path",
|
"ask_path": "Path",
|
||||||
"backup_abstract_method": "This backup method hasn't yet been implemented",
|
"backup_abstract_method": "This backup method has yet to be implemented",
|
||||||
"backup_action_required": "You must specify something to save",
|
"backup_actually_backuping": "Creating a backup archive from the collected files…",
|
||||||
"backup_actually_backuping": "Now creating a backup archive from the files collected…",
|
"backup_app_failed": "Could not back up the app '{app:s}'",
|
||||||
"backup_app_failed": "Unable to back up the app '{app:s}'",
|
|
||||||
"backup_applying_method_borg": "Sending all files to backup into borg-backup repository…",
|
"backup_applying_method_borg": "Sending all files to backup into borg-backup repository…",
|
||||||
"backup_applying_method_copy": "Copying all files to backup…",
|
"backup_applying_method_copy": "Copying all files to backup…",
|
||||||
"backup_applying_method_custom": "Calling the custom backup method '{method:s}'…",
|
"backup_applying_method_custom": "Calling the custom backup method '{method:s}'…",
|
||||||
"backup_applying_method_tar": "Creating the backup tar archive…",
|
"backup_applying_method_tar": "Creating the backup TAR archive…",
|
||||||
"backup_archive_app_not_found": "App '{app:s}' not found in the backup archive",
|
"backup_archive_app_not_found": "Could not find the app '{app:s}' in the backup archive",
|
||||||
"backup_archive_broken_link": "Unable to access backup archive (broken link to {path:s})",
|
"backup_archive_broken_link": "Could not access the backup archive (broken link to {path:s})",
|
||||||
"backup_archive_mount_failed": "Mounting the backup archive failed",
|
"backup_archive_name_exists": "A backup archive with this name already exists.",
|
||||||
"backup_archive_name_exists": "The backup's archive name already exists",
|
|
||||||
"backup_archive_name_unknown": "Unknown local backup archive named '{name:s}'",
|
"backup_archive_name_unknown": "Unknown local backup archive named '{name:s}'",
|
||||||
"backup_archive_open_failed": "Unable to open the backup archive",
|
"backup_archive_open_failed": "Could not open the backup archive",
|
||||||
"backup_archive_system_part_not_available": "System part '{part:s}' not available in this backup",
|
"backup_archive_system_part_not_available": "System part '{part:s}' unavailable in this backup",
|
||||||
"backup_archive_writing_error": "Unable to add files '{source:s}' (named in the archive: '{dest:s}') to backup into the compressed archive '{archive:s}'",
|
"backup_archive_writing_error": "Could not add the files '{source:s}' (named in the archive '{dest:s}') to be backed up into the compressed archive '{archive:s}'",
|
||||||
"backup_ask_for_copying_if_needed": "Some files couldn't be prepared to be backuped using the method that avoid to temporarily waste space on the system. To perform the backup, {size:s}MB should be used temporarily. Do you agree?",
|
"backup_ask_for_copying_if_needed": "Some files could not be prepared for backup using the method that avoids temporarily wasting space on the system. To perform the backup, {size:s}MB will be temporarily. Do you agree?",
|
||||||
"backup_borg_not_implemented": "Borg backup method is not yet implemented",
|
"backup_borg_not_implemented": "The Borg backup method is not yet implemented",
|
||||||
"backup_cant_mount_uncompress_archive": "Unable to mount in readonly mode the uncompress archive directory",
|
"backup_cant_mount_uncompress_archive": "Could not mount the uncompressed archive as write protected",
|
||||||
"backup_cleaning_failed": "Unable to clean-up the temporary backup directory",
|
"backup_cleaning_failed": "Could not clean-up the temporary backup folder",
|
||||||
"backup_copying_to_organize_the_archive": "Copying {size:s}MB to organize the archive",
|
"backup_copying_to_organize_the_archive": "Copying {size:s}MB to organize the archive",
|
||||||
"backup_couldnt_bind": "Couldn't bind {src:s} to {dest:s}.",
|
"backup_couldnt_bind": "Could not bind {src:s} to {dest:s}.",
|
||||||
"backup_created": "Backup created",
|
"backup_created": "Backup created",
|
||||||
"backup_creating_archive": "Creating the backup archive…",
|
"backup_creation_failed": "Could not create the backup archive",
|
||||||
"backup_creation_failed": "Backup creation failed",
|
"backup_csv_addition_failed": "Could not add files to backup into the CSV file",
|
||||||
"backup_csv_addition_failed": "Unable to add files to backup into the CSV file",
|
"backup_csv_creation_failed": "Could not create the CSV file needed for restoration",
|
||||||
"backup_csv_creation_failed": "Unable to create the CSV file needed for future restore operations",
|
"backup_custom_backup_error": "Custom backup method could not get past the 'backup' step",
|
||||||
"backup_custom_backup_error": "Custom backup method failure on 'backup' step",
|
"backup_custom_mount_error": "Custom backup method could not get past the 'mount' step",
|
||||||
"backup_custom_mount_error": "Custom backup method failure on 'mount' step",
|
"backup_delete_error": "Could not delete '{path:s}'",
|
||||||
"backup_custom_need_mount_error": "Custom backup method failure on 'need_mount' step",
|
"backup_deleted": "Backup deleted",
|
||||||
"backup_delete_error": "Unable to delete '{path:s}'",
|
"backup_hook_unknown": "The backup hook '{hook:s}' is unknown",
|
||||||
"backup_deleted": "The backup has been deleted",
|
"backup_invalid_archive": "This is not a backup archive",
|
||||||
"backup_extracting_archive": "Extracting the backup archive…",
|
"backup_method_borg_finished": "Backup into Borg finished",
|
||||||
"backup_hook_unknown": "Backup hook '{hook:s}' unknown",
|
"backup_method_copy_finished": "Backup copy finalized",
|
||||||
"backup_invalid_archive": "Invalid backup archive",
|
|
||||||
"backup_method_borg_finished": "Backup into borg finished",
|
|
||||||
"backup_method_copy_finished": "Backup copy finished",
|
|
||||||
"backup_method_custom_finished": "Custom backup method '{method:s}' finished",
|
"backup_method_custom_finished": "Custom backup method '{method:s}' finished",
|
||||||
"backup_method_tar_finished": "Backup tar archive created",
|
"backup_method_tar_finished": "TAR backup archive created",
|
||||||
"backup_mount_archive_for_restore": "Preparing archive for restoration…",
|
"backup_mount_archive_for_restore": "Preparing archive for restoration…",
|
||||||
"backup_no_uncompress_archive_dir": "Uncompress archive directory doesn't exist",
|
"backup_no_uncompress_archive_dir": "There is no such uncompressed archive directory",
|
||||||
"backup_nothings_done": "There is nothing to save",
|
"backup_nothings_done": "Nothing to save",
|
||||||
"backup_output_directory_forbidden": "Forbidden output directory. Backups can't be created in /bin, /boot, /dev, /etc, /lib, /root, /run, /sbin, /sys, /usr, /var or /home/yunohost.backup/archives sub-folders",
|
"backup_output_directory_forbidden": "Pick a different output directory. Backups can not be created in /bin, /boot, /dev, /etc, /lib, /root, /run, /sbin, /sys, /usr, /var or /home/yunohost.backup/archives sub-folders",
|
||||||
"backup_output_directory_not_empty": "The output directory is not empty",
|
"backup_output_directory_not_empty": "You should pick an empty output directory",
|
||||||
"backup_output_directory_required": "You must provide an output directory for the backup",
|
"backup_output_directory_required": "You must provide an output directory for the backup",
|
||||||
"backup_output_symlink_dir_broken": "You have a broken symlink instead of your archives directory '{path:s}'. You may have a specific setup to backup your data on an other filesystem, in this case you probably forgot to remount or plug your hard dirve or usb key.",
|
"backup_output_symlink_dir_broken": "You have a broken symlink in place of your archive directory '{path:s}'. You may have a specific setup to backup your data on another filesystem, in this case you probably forgot to remount or plug in your hard-drive or USB key.",
|
||||||
"backup_permission": "Backup permission for app {app:s}",
|
"backup_permission": "Backup permission for app {app:s}",
|
||||||
"backup_php5_to_php7_migration_may_fail": "Could not convert your archive to support php7, your php apps may fail to restore (reason: {error:s})",
|
"backup_php5_to_php7_migration_may_fail": "Could not convert your archive to support PHP 7, you may be unable to restore your PHP apps (reason: {error:s})",
|
||||||
"backup_running_hooks": "Running backup hooks…",
|
"backup_running_hooks": "Running backup hooks…",
|
||||||
"backup_system_part_failed": "Unable to backup the '{part:s}' system part",
|
"backup_system_part_failed": "Could not backup the '{part:s}' system part",
|
||||||
"backup_unable_to_organize_files": "Unable to organize files in the archive with the quick method",
|
"backup_unable_to_organize_files": "Could not use the quick method to organize files in the archive",
|
||||||
"backup_with_no_backup_script_for_app": "App {app:s} has no backup script. Ignoring.",
|
"backup_with_no_backup_script_for_app": "The app '{app:s}' has no backup script. Ignoring.",
|
||||||
"backup_with_no_restore_script_for_app": "App {app:s} has no restore script, you won't be able to automatically restore the backup of this app.",
|
"backup_with_no_restore_script_for_app": "The '{app:s}' has no restoration script, you will not be able to automatically restore the backup of this app.",
|
||||||
"certmanager_acme_not_configured_for_domain": "Certificate for domain {domain:s} does not appear to be correctly installed. Please run cert-install for this domain first.",
|
"certmanager_acme_not_configured_for_domain": "Certificate for the domain '{domain:s}' does not appear to be correctly installed. Please run 'cert-install' for this domain first.",
|
||||||
"certmanager_attempt_to_renew_nonLE_cert": "The certificate for domain {domain:s} is not issued by Let's Encrypt. Cannot renew it automatically!",
|
"certmanager_attempt_to_renew_nonLE_cert": "The certificate for the domain '{domain:s}' is not issued by Let's Encrypt. Cannot renew it automatically!",
|
||||||
"certmanager_attempt_to_renew_valid_cert": "The certificate for domain {domain:s} is not about to expire! (You may use --force if you know what you're doing)",
|
"certmanager_attempt_to_renew_valid_cert": "The certificate for the domain '{domain:s}' is not about to expire! (You may use --force if you know what you're doing)",
|
||||||
"certmanager_attempt_to_replace_valid_cert": "You are attempting to overwrite a good and valid certificate for domain {domain:s}! (Use --force to bypass)",
|
"certmanager_attempt_to_replace_valid_cert": "You are attempting to overwrite a good and valid certificate for domain {domain:s}! (Use --force to bypass)",
|
||||||
"certmanager_cannot_read_cert": "Something wrong happened when trying to open current certificate for domain {domain:s} (file: {file:s}), reason: {reason:s}",
|
"certmanager_cannot_read_cert": "Something wrong happened when trying to open current certificate for domain {domain:s} (file: {file:s}), reason: {reason:s}",
|
||||||
"certmanager_cert_install_success": "Successfully installed Let's Encrypt certificate for domain {domain:s}!",
|
"certmanager_cert_install_success": "Let's Encrypt certificate now installed for the domain '{domain:s}'",
|
||||||
"certmanager_cert_install_success_selfsigned": "Successfully installed a self-signed certificate for domain {domain:s}!",
|
"certmanager_cert_install_success_selfsigned": "Self-signed certificate now installed for the domain '{domain:s}'",
|
||||||
"certmanager_cert_renew_success": "Successfully renewed Let's Encrypt certificate for domain {domain:s}!",
|
"certmanager_cert_renew_success": "Let's Encrypt certificate renewed for the domain '{domain:s}'",
|
||||||
"certmanager_cert_signing_failed": "Signing the new certificate failed",
|
"certmanager_cert_signing_failed": "Could not sign the new certificate",
|
||||||
"certmanager_certificate_fetching_or_enabling_failed": "Sounds like enabling the new certificate for {domain:s} failed somehow…",
|
"certmanager_certificate_fetching_or_enabling_failed": "Trying to use the new certificate for {domain:s} did not work…",
|
||||||
"certmanager_conflicting_nginx_file": "Unable to prepare domain for ACME challenge: the nginx configuration file {filepath:s} is conflicting and should be removed first",
|
"certmanager_conflicting_nginx_file": "Could not prepare domain for ACME challenge: the NGINX configuration file {filepath:s} is conflicting and should be removed first",
|
||||||
"certmanager_couldnt_fetch_intermediate_cert": "Timed out when trying to fetch intermediate certificate from Let's Encrypt. Certificate installation/renewal aborted - please try again later.",
|
"certmanager_couldnt_fetch_intermediate_cert": "Timed out when trying to fetch intermediate certificate from Let's Encrypt. Certificate installation/renewal aborted—please try again later.",
|
||||||
"certmanager_domain_cert_not_selfsigned": "The certificate for domain {domain:s} is not self-signed. Are you sure you want to replace it? (Use --force)",
|
"certmanager_domain_cert_not_selfsigned": "The certificate for domain {domain:s} is not self-signed. Are you sure you want to replace it? (Use '--force' to do so.)",
|
||||||
"certmanager_domain_dns_ip_differs_from_public_ip": "The DNS 'A' record for domain {domain:s} is different from this server IP. If you recently modified your A record, please wait for it to propagate (some DNS propagation checkers are available online). (If you know what you are doing, use --no-checks to disable those checks.)",
|
"certmanager_domain_dns_ip_differs_from_public_ip": "The DNS 'A' record for the domain '{domain:s}' is different from this server IP. If you recently modified your A record, please wait for it to propagate (some DNS propagation checkers are available online). (If you know what you are doing, use '--no-checks' to turn off those checks.)",
|
||||||
"certmanager_domain_http_not_working": "It seems that the domain {domain:s} cannot be accessed through HTTP. Please check your DNS and nginx configuration is okay",
|
"certmanager_domain_http_not_working": "It seems the domain {domain:s} cannot be accessed through HTTP. Check that your DNS and NGINX configuration is correct",
|
||||||
"certmanager_domain_not_resolved_locally": "The domain {domain:s} cannot be resolved from inside your Yunohost server. This might happen if you recently modified your DNS record. If so, please wait a few hours for it to propagate. If the issue persists, consider adding {domain:s} to /etc/hosts. (If you know what you are doing, use --no-checks to disable those checks.)",
|
"certmanager_domain_unknown": "Unknown domain '{domain:s}'",
|
||||||
"certmanager_domain_unknown": "Unknown domain {domain:s}",
|
"certmanager_error_no_A_record": "No DNS 'A' record found for '{domain:s}'. You need to make your domain name point to your machine to be able to install a Let's Encrypt certificate. (If you know what you are doing, use '--no-checks' to turn off those checks.)",
|
||||||
"certmanager_error_no_A_record": "No DNS 'A' record found for {domain:s}. You need to make your domain name point to your machine to be able to install a Let's Encrypt certificate! (If you know what you are doing, use --no-checks to disable those checks.)",
|
"certmanager_hit_rate_limit": "Too many certificates already issued for this exact set of domains {domain:s} recently. Please try again later. See https://letsencrypt.org/docs/rate-limits/ for more details",
|
||||||
"certmanager_hit_rate_limit": "Too many certificates already issued for exact set of domains {domain:s} recently. Please try again later. See https://letsencrypt.org/docs/rate-limits/ for more details",
|
"certmanager_http_check_timeout": "Timed out when server tried to contact itself through HTTP using a public IP address (domain '{domain:s}' with IP '{ip:s}'). You may be experiencing a hairpinning issue, or the firewall/router ahead of your server is misconfigured.",
|
||||||
"certmanager_http_check_timeout": "Timed out when server tried to contact itself through HTTP using public IP address (domain {domain:s} with ip {ip:s}). You may be experiencing hairpinning issue or the firewall/router ahead of your server is misconfigured.",
|
"certmanager_no_cert_file": "Could not read the certificate file for the domain {domain:s} (file: {file:s})",
|
||||||
"certmanager_no_cert_file": "Unable to read certificate file for domain {domain:s} (file: {file:s})",
|
"certmanager_self_ca_conf_file_not_found": "Could not find configuration file for self-signing authority (file: {file:s})",
|
||||||
"certmanager_self_ca_conf_file_not_found": "Configuration file not found for self-signing authority (file: {file:s})",
|
"certmanager_unable_to_parse_self_CA_name": "Could not parse name of self-signing authority (file: {file:s})",
|
||||||
"certmanager_unable_to_parse_self_CA_name": "Unable to parse name of self-signing authority (file: {file:s})",
|
"confirm_app_install_warning": "Warning: This application may work, but is not well-integrated in YunoHost. Some features such as single sign-on and backup/restore might not be available. Install anyway? [{answers:s}] ",
|
||||||
"confirm_app_install_warning": "Warning: this application may work but is not well-integrated in YunoHost. Some features such as single sign-on and backup/restore might not be available. Install anyway? [{answers:s}] ",
|
"confirm_app_install_danger": "DANGER! This application is known to be still experimental (if not explicitly not working)! You should probably NOT install it unless you know what you are doing. NO SUPPORT will be provided if this app doesn't work or break your system... If you are willing to take that risk anyway, type '{answers:s}'",
|
||||||
"confirm_app_install_danger": "WARNING! This application is still experimental (if not explicitly not working) and it is likely to break your system! You should probably NOT install it unless you know what you are doing. Are you willing to take that risk? [{answers:s}] ",
|
"confirm_app_install_thirdparty": "DANGER! This application is not part of Yunohost's application catalog. Installing third-party applications may compromise the integrity and security of your system. You should probably NOT install it unless you know what you are doing. NO SUPPORT will be provided if this app doesn't work or break your system... If you are willing to take that risk anyway, type '{answers:s}'",
|
||||||
"confirm_app_install_thirdparty": "WARNING! Installing 3rd party applications may compromise the integrity and security of your system. You should probably NOT install it unless you know what you are doing. Are you willing to take that risk? [{answers:s}] ",
|
|
||||||
"custom_app_url_required": "You must provide a URL to upgrade your custom app {app:s}",
|
"custom_app_url_required": "You must provide a URL to upgrade your custom app {app:s}",
|
||||||
"custom_appslist_name_required": "You must provide a name for your custom app list",
|
"custom_appslist_name_required": "You must provide a name for your custom app list",
|
||||||
"diagnosis_debian_version_error": "Can't retrieve the Debian version: {error}",
|
"diagnosis_debian_version_error": "Could not retrieve the Debian version: {error}",
|
||||||
"diagnosis_kernel_version_error": "Can't retrieve kernel version: {error}",
|
"diagnosis_kernel_version_error": "Could not retrieve kernel version: {error}",
|
||||||
"diagnosis_monitor_disk_error": "Can't monitor disks: {error}",
|
"diagnosis_monitor_disk_error": "Could not monitor disks: {error}",
|
||||||
"diagnosis_monitor_network_error": "Can't monitor network: {error}",
|
"diagnosis_monitor_system_error": "Could not monitor system: {error}",
|
||||||
"diagnosis_monitor_system_error": "Can't monitor system: {error}",
|
|
||||||
"diagnosis_no_apps": "No installed application",
|
"diagnosis_no_apps": "No installed application",
|
||||||
"dpkg_is_broken": "You cannot do this right now because dpkg/apt (the system package managers) seems to be in a broken state... You can try to solve this issue by connecting through SSH and running `sudo dpkg --configure -a`.",
|
"dpkg_is_broken": "You cannot do this right now because dpkg/APT (the system package managers) seems to be in a broken state… You can try to solve this issue by connecting through SSH and running `sudo dpkg --configure -a`.",
|
||||||
"dpkg_lock_not_available": "This command can't be ran right now because another program seems to be using the lock of dpkg (the system package manager)",
|
"dpkg_lock_not_available": "This command can't be ran right now because another program seems to be using the lock of dpkg (the system package manager)",
|
||||||
"dnsmasq_isnt_installed": "dnsmasq does not seem to be installed, please run 'apt-get remove bind9 && apt-get install dnsmasq'",
|
"domain_cannot_remove_main": "Cannot remove main domain. Set one first",
|
||||||
"domain_cannot_remove_main": "Cannot remove main domain. Set a new main domain first",
|
"domain_cert_gen_failed": "Could not generate certificate",
|
||||||
"domain_cert_gen_failed": "Unable to generate certificate",
|
"domain_created": "Domain created",
|
||||||
"domain_created": "The domain has been created",
|
"domain_creation_failed": "Could not create domain {domain}: {error}",
|
||||||
"domain_creation_failed": "Failed to create domain {domain}: {error}",
|
"domain_deleted": "Domain deleted",
|
||||||
"domain_deleted": "The domain has been deleted",
|
"domain_deletion_failed": "Could not delete domain {domain}: {error}",
|
||||||
"domain_deletion_failed": "Failed to delete domain {domain}: {error}",
|
"domain_dns_conf_is_just_a_recommendation": "This command shows you the *recommended* configuration. It does not actually set up the DNS configuration for you. It is your responsability to configure your DNS zone in your registrar according to this recommendation.",
|
||||||
"domain_dns_conf_is_just_a_recommendation": "This command shows you what is the *recommended* configuration. It does not actually set up the DNS configuration for you. It is your responsability to configure your DNS zone in your registrar according to this recommendation.",
|
"domain_dyndns_already_subscribed": "You have already subscribed to a DynDNS domain",
|
||||||
"domain_dyndns_already_subscribed": "You've already subscribed to a DynDNS domain",
|
|
||||||
"domain_dyndns_dynette_is_unreachable": "Unable to reach YunoHost dynette, either your YunoHost is not correctly connected to the internet or the dynette server is down. Error: {error}",
|
|
||||||
"domain_dyndns_invalid": "Invalid domain to use with DynDNS",
|
|
||||||
"domain_dyndns_root_unknown": "Unknown DynDNS root domain",
|
"domain_dyndns_root_unknown": "Unknown DynDNS root domain",
|
||||||
"domain_exists": "Domain already exists",
|
"domain_exists": "The domain already exists",
|
||||||
"domain_hostname_failed": "Failed to set new hostname. This might cause issue later (not sure about it... it might be fine).",
|
"domain_hostname_failed": "Could not set new hostname. This might cause an issue later (it might be fine).",
|
||||||
"domain_uninstall_app_first": "One or more apps are installed on this domain. Please uninstall them before proceeding to domain removal",
|
"domain_uninstall_app_first": "One or more apps are installed on this domain. Please uninstall them before proceeding to domain removal",
|
||||||
"domain_unknown": "Unknown domain",
|
"domain_unknown": "Unknown domain",
|
||||||
"domain_zone_exists": "DNS zone file already exists",
|
|
||||||
"domain_zone_not_found": "DNS zone file not found for domain {:s}",
|
|
||||||
"domains_available": "Available domains:",
|
"domains_available": "Available domains:",
|
||||||
"done": "Done",
|
"done": "Done",
|
||||||
"downloading": "Downloading…",
|
"downloading": "Downloading…",
|
||||||
"dyndns_could_not_check_provide": "Could not check if {provider:s} can provide {domain:s}.",
|
"dyndns_could_not_check_provide": "Could not check if {provider:s} can provide {domain:s}.",
|
||||||
"dyndns_could_not_check_available": "Could not check if {domain:s} is available on {provider:s}.",
|
"dyndns_could_not_check_available": "Could not check if {domain:s} is available on {provider:s}.",
|
||||||
"dyndns_cron_installed": "The DynDNS cron job has been installed",
|
"dyndns_cron_installed": "DynDNS cron job created",
|
||||||
"dyndns_cron_remove_failed": "Unable to remove the DynDNS cron job because: {error}",
|
"dyndns_cron_remove_failed": "Could not remove the DynDNS cron job because: {error}",
|
||||||
"dyndns_cron_removed": "The DynDNS cron job has been removed",
|
"dyndns_cron_removed": "DynDNS cron job removed",
|
||||||
"dyndns_ip_update_failed": "Unable to update IP address on DynDNS",
|
"dyndns_ip_update_failed": "Could not update IP address to DynDNS",
|
||||||
"dyndns_ip_updated": "Your IP address has been updated on DynDNS",
|
"dyndns_ip_updated": "Updated your IP on DynDNS",
|
||||||
"dyndns_key_generating": "DNS key is being generated, it may take a while…",
|
"dyndns_key_generating": "Generating DNS key… It may take a while.",
|
||||||
"dyndns_key_not_found": "DNS key not found for the domain",
|
"dyndns_key_not_found": "DNS key not found for the domain",
|
||||||
"dyndns_no_domain_registered": "No domain has been registered with DynDNS",
|
"dyndns_no_domain_registered": "No domain registered with DynDNS",
|
||||||
"dyndns_registered": "The DynDNS domain has been registered",
|
"dyndns_provider_unreachable": "Unable to reach Dyndns provider {provider}: either your YunoHost is not correctly connected to the internet or the dynette server is down.",
|
||||||
"dyndns_registration_failed": "Unable to register DynDNS domain: {error:s}",
|
"dyndns_registered": "DynDNS domain registered",
|
||||||
"dyndns_domain_not_provided": "Dyndns provider {provider:s} cannot provide domain {domain:s}.",
|
"dyndns_registration_failed": "Could not register DynDNS domain: {error:s}",
|
||||||
"dyndns_unavailable": "Domain {domain:s} is not available.",
|
"dyndns_domain_not_provided": "DynDNS provider {provider:s} cannot provide domain {domain:s}.",
|
||||||
|
"dyndns_unavailable": "The domain '{domain:s}' is unavailable.",
|
||||||
"executing_command": "Executing command '{command:s}'…",
|
"executing_command": "Executing command '{command:s}'…",
|
||||||
"executing_script": "Executing script '{script:s}'…",
|
"executing_script": "Executing script '{script:s}'…",
|
||||||
"extracting": "Extracting…",
|
"extracting": "Extracting…",
|
||||||
"experimental_feature": "Warning: this feature is experimental and not consider stable, you shouldn't be using it except if you know what you are doing.",
|
"experimental_feature": "Warning: This feature is experimental and not considered stable, you should not use it unless you know what you are doing.",
|
||||||
"field_invalid": "Invalid field '{:s}'",
|
"field_invalid": "Invalid field '{:s}'",
|
||||||
"file_does_not_exist": "The file {path:s} does not exists.",
|
"file_does_not_exist": "The file {path:s} does not exist.",
|
||||||
"firewall_reload_failed": "Unable to reload the firewall",
|
"firewall_reload_failed": "Could not reload the firewall",
|
||||||
"firewall_reloaded": "The firewall has been reloaded",
|
"firewall_reloaded": "Firewall reloaded",
|
||||||
"firewall_rules_cmd_failed": "Some firewall rules commands have failed. For more information, see the log.",
|
"firewall_rules_cmd_failed": "Some firewall rules commands have failed. More info in log.",
|
||||||
"format_datetime_short": "%m/%d/%Y %I:%M %p",
|
"global_settings_bad_choice_for_enum": "Bad choice for setting {setting:s}, received '{choice:s}', but available choices are: {available_choices:s}",
|
||||||
"global_settings_bad_choice_for_enum": "Bad choice for setting {setting:s}, received '{choice:s}' but available choices are : {available_choices:s}",
|
"global_settings_bad_type_for_setting": "Bad type for setting {setting:s}, received {received_type:s}, expected {expected_type:s}",
|
||||||
"global_settings_bad_type_for_setting": "Bad type for setting {setting:s}, received {received_type:s}, except {expected_type:s}",
|
"global_settings_cant_open_settings": "Could not open settings file, reason: {reason:s}",
|
||||||
"global_settings_cant_open_settings": "Failed to open settings file, reason: {reason:s}",
|
"global_settings_cant_serialize_settings": "Could not serialize settings data, reason: {reason:s}",
|
||||||
"global_settings_cant_serialize_settings": "Failed to serialize settings data, reason: {reason:s}",
|
"global_settings_cant_write_settings": "Could not save settings file, reason: {reason:s}",
|
||||||
"global_settings_cant_write_settings": "Failed to write settings file, reason: {reason:s}",
|
"global_settings_key_doesnt_exists": "The key '{settings_key:s}' does not exist in the global settings, you can see all the available keys by running 'yunohost settings list'",
|
||||||
"global_settings_key_doesnt_exists": "The key '{settings_key:s}' doesn't exists in the global settings, you can see all the available keys by doing 'yunohost settings list'",
|
"global_settings_reset_success": "Previous settings now backed up to {path:s}",
|
||||||
"global_settings_reset_success": "Success. Your previous settings have been backuped in {path:s}",
|
|
||||||
"global_settings_setting_example_bool": "Example boolean option",
|
"global_settings_setting_example_bool": "Example boolean option",
|
||||||
"global_settings_setting_example_enum": "Example enum option",
|
"global_settings_setting_example_enum": "Example enum option",
|
||||||
"global_settings_setting_example_int": "Example int option",
|
"global_settings_setting_example_int": "Example int option",
|
||||||
"global_settings_setting_example_string": "Example string option",
|
"global_settings_setting_example_string": "Example string option",
|
||||||
"global_settings_setting_security_nginx_compatibility": "Compatibility vs. security tradeoff for the web server nginx. Affects the ciphers (and other security-related aspects)",
|
"global_settings_setting_security_nginx_compatibility": "Compatibility vs. security tradeoff for the web server NGINX. Affects the ciphers (and other security-related aspects)",
|
||||||
"global_settings_setting_security_password_admin_strength": "Admin password strength",
|
"global_settings_setting_security_password_admin_strength": "Admin password strength",
|
||||||
"global_settings_setting_security_password_user_strength": "User password strength",
|
"global_settings_setting_security_password_user_strength": "User password strength",
|
||||||
"global_settings_setting_security_ssh_compatibility": "Compatibility vs. security tradeoff for the SSH server. Affects the ciphers (and other security-related aspects)",
|
"global_settings_setting_security_ssh_compatibility": "Compatibility vs. security tradeoff for the SSH server. Affects the ciphers (and other security-related aspects)",
|
||||||
"global_settings_setting_security_postfix_compatibility": "Compatibility vs. security tradeoff for the Postfix server. Affects the ciphers (and other security-related aspects)",
|
"global_settings_setting_security_postfix_compatibility": "Compatibility vs. security tradeoff for the Postfix server. Affects the ciphers (and other security-related aspects)",
|
||||||
"global_settings_unknown_setting_from_settings_file": "Unknown key in settings: '{setting_key:s}', discarding it and save it in /etc/yunohost/settings-unknown.json",
|
"global_settings_unknown_setting_from_settings_file": "Unknown key in settings: '{setting_key:s}', discard it and save it in /etc/yunohost/settings-unknown.json",
|
||||||
"global_settings_setting_service_ssh_allow_deprecated_dsa_hostkey": "Allow the use of (deprecated) DSA hostkey for the SSH daemon configuration",
|
"global_settings_setting_service_ssh_allow_deprecated_dsa_hostkey": "Allow the use of (deprecated) DSA hostkey for the SSH daemon configuration",
|
||||||
"global_settings_unknown_type": "Unexpected situation, the setting {setting:s} appears to have the type {unknown_type:s} but it's not a type supported by the system.",
|
"global_settings_unknown_type": "Unexpected situation, the setting {setting:s} appears to have the type {unknown_type:s} but it is not a type supported by the system.",
|
||||||
"good_practices_about_admin_password": "You are now about to define a new administration password. The password should be at least 8 characters - though it is good practice to use longer password (i.e. a passphrase) and/or to use various kind of characters (uppercase, lowercase, digits and special characters).",
|
"good_practices_about_admin_password": "You are now about to define a new administration password. The password should be at-least 8 characters—though it is good practice to use a longer password (i.e. a passphrase) and/or to use a variation of characters (uppercase, lowercase, digits and special characters).",
|
||||||
"good_practices_about_user_password": "You are now about to define a new user password. The password should be at least 8 characters - though it is good practice to use longer password (i.e. a passphrase) and/or to use various kind of characters (uppercase, lowercase, digits and special characters).",
|
"good_practices_about_user_password": "You are now about to define a new user password. The password should be at least 8 characters—though it is good practice to use longer password (i.e. a passphrase) and/or to a variation of characters (uppercase, lowercase, digits and special characters).",
|
||||||
"group_already_exist": "Group {group} already exist",
|
"group_already_exist": "Group {group} already exists",
|
||||||
"group_already_exist_on_system": "Group {group} already exists in the system group",
|
"group_already_exist_on_system": "Group {group} already exists in the system groups",
|
||||||
"group_created": "Group '{group}' successfully created",
|
"group_created": "Group '{group}' created",
|
||||||
"group_creation_failed": "Failed to create group {group}: {error}",
|
"group_creation_failed": "Could not create the group '{group}': {error}",
|
||||||
"group_cannot_edit_all_users": "The group 'all_users' cannot be edited manually. It is a special group meant to contain all users registered in YunoHost",
|
"group_cannot_edit_all_users": "The group 'all_users' cannot be edited manually. It is a special group meant to contain all users registered in YunoHost",
|
||||||
"group_cannot_edit_visitors": "The group 'visitors' cannot be edited manually. It is a special group representing anonymous visitors",
|
"group_cannot_edit_visitors": "The group 'visitors' cannot be edited manually. It is a special group representing anonymous visitors",
|
||||||
"group_cannot_edit_primary_group": "The group '{group}' cannot be edited manually. It is the primary group meant to contain only one specific user.",
|
"group_cannot_edit_primary_group": "The group '{group}' cannot be edited manually. It is the primary group meant to contain only one specific user.",
|
||||||
"group_cannot_be_edited": "The group {group} cannot be edited manually.",
|
"group_cannot_be_edited": "The group {group} cannot be edited manually.",
|
||||||
"group_cannot_be_deleted": "The group {group} cannot be deleted manually.",
|
"group_cannot_be_deleted": "The group {group} cannot be deleted manually.",
|
||||||
"group_deleted": "Group '{group}' deleted",
|
"group_deleted": "Group '{group}' deleted",
|
||||||
"group_deletion_failed": "Failed to delete group {group}: {error}",
|
"group_deletion_failed": "Could not delete the group '{group}': {error}",
|
||||||
"group_unknown": "Group {group} unknown",
|
"group_unknown": "The group '{group:s}' is unknown",
|
||||||
"group_updated": "Group '{group}' updated",
|
"group_updated": "Group '{group}' updated",
|
||||||
"group_update_failed": "Failed to update group {group}: {error}",
|
"group_update_failed": "Could not update the group '{group}': {error}",
|
||||||
"group_user_already_in_group": "User {user} is already in group {group}",
|
"group_user_already_in_group": "User {user} is already in group {group}",
|
||||||
"group_user_not_in_group": "User {user} is not in group {group}",
|
"group_user_not_in_group": "User {user} is not in group {group}",
|
||||||
"hook_exec_failed": "Script execution failed: {path:s}",
|
"hook_exec_failed": "Could not run script: {path:s}",
|
||||||
"hook_exec_not_terminated": "Script execution did not finish properly: {path:s}",
|
"hook_exec_not_terminated": "Script did not finish properly: {path:s}",
|
||||||
"hook_json_return_error": "Failed to read return from hook {path:s}. Error: {msg:s}. Raw content: {raw_content}",
|
"hook_json_return_error": "Could not read return from hook {path:s}. Error: {msg:s}. Raw content: {raw_content}",
|
||||||
"hook_list_by_invalid": "Invalid property to list hook by",
|
"hook_list_by_invalid": "This property can not be used to list hooks",
|
||||||
"hook_name_unknown": "Unknown hook name '{name:s}'",
|
"hook_name_unknown": "Unknown hook name '{name:s}'",
|
||||||
"installation_complete": "Installation complete",
|
"installation_complete": "Installation complete",
|
||||||
"installation_failed": "Installation failed",
|
"installation_failed": "Something went wrong with the installation",
|
||||||
"invalid_url_format": "Invalid URL format",
|
|
||||||
"ip6tables_unavailable": "You cannot play with ip6tables here. You are either in a container or your kernel does not support it",
|
"ip6tables_unavailable": "You cannot play with ip6tables here. You are either in a container or your kernel does not support it",
|
||||||
"iptables_unavailable": "You cannot play with iptables here. You are either in a container or your kernel does not support it",
|
"iptables_unavailable": "You cannot play with iptables here. You are either in a container or your kernel does not support it",
|
||||||
"log_corrupted_md_file": "The yaml metadata file associated with logs is corrupted: '{md_file}\nError: {error}'",
|
"log_corrupted_md_file": "The YAML metadata file associated with logs is damaged: '{md_file}\nError: {error}'",
|
||||||
"log_category_404": "The log category '{category}' does not exist",
|
"log_category_404": "The log category '{category}' does not exist",
|
||||||
"log_link_to_log": "Full log of this operation: '<a href=\"#/tools/logs/{name}\" style=\"text-decoration:underline\">{desc}</a>'",
|
"log_link_to_log": "Full log of this operation: '<a href=\"#/tools/logs/{name}\" style=\"text-decoration:underline\">{desc}</a>'",
|
||||||
"log_help_to_get_log": "To view the log of the operation '{desc}', use the command 'yunohost log display {name}'",
|
"log_help_to_get_log": "To view the log of the operation '{desc}', use the command 'yunohost log display {name}'",
|
||||||
"log_link_to_failed_log": "The operation '{desc}' has failed! To get help, please <a href=\"#/tools/logs/{name}\">provide the full log of this operation by clicking here</a>",
|
"log_link_to_failed_log": "Could not complete the operation '{desc}'. Please provide the full log of this operation by <a href=\"#/tools/logs/{name}\">clicking here</a> to get help",
|
||||||
"log_help_to_get_failed_log": "The operation '{desc}' has failed! To get help, please share the full log of this operation using the command 'yunohost log display {name} --share'",
|
"log_help_to_get_failed_log": "The operation '{desc}' could not be completed. Please share the full log of this operation using the command 'yunohost log display {name} --share' to get help",
|
||||||
"log_does_exists": "There is not operation log with the name '{log}', use 'yunohost log list to see all available operation logs'",
|
"log_does_exists": "There is not operation log with the name '{log}', use 'yunohost log list' to see all available operation logs",
|
||||||
"log_operation_unit_unclosed_properly": "Operation unit has not been closed properly",
|
"log_operation_unit_unclosed_properly": "Operation unit has not been closed properly",
|
||||||
"log_app_fetchlist": "Add an application list",
|
"log_app_fetchlist": "Add an application list",
|
||||||
"log_app_removelist": "Remove an application list",
|
"log_app_removelist": "Remove an application list",
|
||||||
"log_app_change_url": "Change the url of '{}' application",
|
"log_app_change_url": "Change the URL of '{}' application",
|
||||||
"log_app_install": "Install '{}' application",
|
"log_app_install": "Install the '{}' application",
|
||||||
"log_app_remove": "Remove '{}' application",
|
"log_app_remove": "Remove the '{}' application",
|
||||||
"log_app_upgrade": "Upgrade '{}' application",
|
"log_app_upgrade": "Upgrade the '{}' application",
|
||||||
"log_app_makedefault": "Make '{}' as default application",
|
"log_app_makedefault": "Make '{}' the default application",
|
||||||
"log_available_on_yunopaste": "This log is now available via {url}",
|
"log_available_on_yunopaste": "This log is now available via {url}",
|
||||||
"log_backup_restore_system": "Restore system from a backup archive",
|
"log_backup_restore_system": "Restore system from a backup archive",
|
||||||
"log_backup_restore_app": "Restore '{}' from a backup archive",
|
"log_backup_restore_app": "Restore '{}' from a backup archive",
|
||||||
|
@ -275,8 +264,8 @@
|
||||||
"log_domain_add": "Add '{}' domain into system configuration",
|
"log_domain_add": "Add '{}' domain into system configuration",
|
||||||
"log_domain_remove": "Remove '{}' domain from system configuration",
|
"log_domain_remove": "Remove '{}' domain from system configuration",
|
||||||
"log_dyndns_subscribe": "Subscribe to a YunoHost subdomain '{}'",
|
"log_dyndns_subscribe": "Subscribe to a YunoHost subdomain '{}'",
|
||||||
"log_dyndns_update": "Update the ip associated with your YunoHost subdomain '{}'",
|
"log_dyndns_update": "Update the IP associated with your YunoHost subdomain '{}'",
|
||||||
"log_letsencrypt_cert_install": "Install Let's encrypt certificate on '{}' domain",
|
"log_letsencrypt_cert_install": "Install a Let's encrypt certificate on '{}' domain",
|
||||||
"log_permission_create": "Create permission '{}'",
|
"log_permission_create": "Create permission '{}'",
|
||||||
"log_permission_delete": "Delete permission '{}'",
|
"log_permission_delete": "Delete permission '{}'",
|
||||||
"log_permission_urls": "Update urls related to permission '{}'",
|
"log_permission_urls": "Update urls related to permission '{}'",
|
||||||
|
@ -288,105 +277,105 @@
|
||||||
"log_user_group_create": "Create '{}' group",
|
"log_user_group_create": "Create '{}' group",
|
||||||
"log_user_group_delete": "Delete '{}' group",
|
"log_user_group_delete": "Delete '{}' group",
|
||||||
"log_user_group_update": "Update '{}' group",
|
"log_user_group_update": "Update '{}' group",
|
||||||
"log_user_update": "Update information of '{}' user",
|
"log_user_update": "Update user info of '{}'",
|
||||||
"log_user_permission_update": "Update accesses for permission '{}'",
|
"log_user_permission_update": "Update accesses for permission '{}'",
|
||||||
"log_user_permission_reset": "Reset permission '{}'",
|
"log_user_permission_reset": "Reset permission '{}'",
|
||||||
"log_tools_maindomain": "Make '{}' as main domain",
|
"log_tools_maindomain": "Make '{}' the main domain",
|
||||||
"log_tools_migrations_migrate_forward": "Migrate forward",
|
"log_tools_migrations_migrate_forward": "Migrate forward",
|
||||||
"log_tools_postinstall": "Postinstall your YunoHost server",
|
"log_tools_postinstall": "Postinstall your YunoHost server",
|
||||||
"log_tools_upgrade": "Upgrade system packages",
|
"log_tools_upgrade": "Upgrade system packages",
|
||||||
"log_tools_shutdown": "Shutdown your server",
|
"log_tools_shutdown": "Shutdown your server",
|
||||||
"log_tools_reboot": "Reboot your server",
|
"log_tools_reboot": "Reboot your server",
|
||||||
"ldap_init_failed_to_create_admin": "LDAP initialization failed to create admin user",
|
"ldap_init_failed_to_create_admin": "LDAP initialization could not create admin user",
|
||||||
"ldap_initialized": "LDAP has been initialized",
|
"ldap_initialized": "LDAP initialized",
|
||||||
"license_undefined": "undefined",
|
"license_undefined": "undefined",
|
||||||
"mail_alias_remove_failed": "Unable to remove mail alias '{mail:s}'",
|
"mail_alias_remove_failed": "Could not remove e-mail alias '{mail:s}'",
|
||||||
"mail_domain_unknown": "Unknown mail address domain '{domain:s}'",
|
"mail_domain_unknown": "Unknown e-mail address for domain '{domain:s}'",
|
||||||
"mail_forward_remove_failed": "Unable to remove mail forward '{mail:s}'",
|
"mail_forward_remove_failed": "Could not remove e-mail forwarding '{mail:s}'",
|
||||||
"mailbox_disabled": "Mailbox disabled for user {user:s}",
|
"mailbox_disabled": "E-mail turned off for user {user:s}",
|
||||||
"mailbox_used_space_dovecot_down": "Dovecot mailbox service need to be up, if you want to get mailbox used space",
|
"mailbox_used_space_dovecot_down": "The Dovecot mailbox service needs to be up, if you want to fetch used mailbox space",
|
||||||
"mail_unavailable": "This email address is reserved and shall be automatically allocated to the very first user",
|
"mail_unavailable": "This e-mail address is reserved and shall be automatically allocated to the very first user",
|
||||||
"maindomain_change_failed": "Unable to change the main domain",
|
"maindomain_change_failed": "Could not change the main domain",
|
||||||
"maindomain_changed": "The main domain has been changed",
|
"maindomain_changed": "The main domain now changed",
|
||||||
"migrate_tsig_end": "Migration to hmac-sha512 finished",
|
"migrate_tsig_end": "Migration to HMAC-SHA-512 finished",
|
||||||
"migrate_tsig_failed": "Migrating the dyndns domain {domain} to hmac-sha512 failed, rolling back. Error: {error_code} - {error}",
|
"migrate_tsig_failed": "Could not migrate the DynDNS domain '{domain}' to HMAC-SHA-512, rolling back. Error: {error_code}, {error}",
|
||||||
"migrate_tsig_start": "Not secure enough key algorithm detected for TSIG signature of domain '{domain}', initiating migration to the more secure one hmac-sha512",
|
"migrate_tsig_start": "Insufficiently secure key algorithm detected for TSIG signature of the domain '{domain}', initiating migration to the more secure HMAC-SHA-512",
|
||||||
"migrate_tsig_wait": "Let's wait 3min for the dyndns server to take the new key into account…",
|
"migrate_tsig_wait": "Waiting three minutes for the DynDNS server to take the new key into account…",
|
||||||
"migrate_tsig_wait_2": "2min…",
|
"migrate_tsig_wait_2": "2min…",
|
||||||
"migrate_tsig_wait_3": "1min…",
|
"migrate_tsig_wait_3": "1min…",
|
||||||
"migrate_tsig_wait_4": "30 secondes…",
|
"migrate_tsig_wait_4": "30 seconds…",
|
||||||
"migrate_tsig_not_needed": "You do not appear to use a dyndns domain, so no migration is needed!",
|
"migrate_tsig_not_needed": "You do not appear to use a DynDNS domain, so no migration is needed.",
|
||||||
"migration_description_0001_change_cert_group_to_sslcert": "Change certificates group permissions from 'metronome' to 'ssl-cert'",
|
"migration_description_0001_change_cert_group_to_sslcert": "Change certificates group permissions from 'metronome' to 'ssl-cert'",
|
||||||
"migration_description_0002_migrate_to_tsig_sha256": "Improve security of dyndns TSIG by using SHA512 instead of MD5",
|
"migration_description_0002_migrate_to_tsig_sha256": "Improve security of DynDNS TSIG updates by using SHA-512 instead of MD5",
|
||||||
"migration_description_0003_migrate_to_stretch": "Upgrade the system to Debian Stretch and YunoHost 3.0",
|
"migration_description_0003_migrate_to_stretch": "Upgrade the system to Debian Stretch and YunoHost 3.0",
|
||||||
"migration_description_0004_php5_to_php7_pools": "Reconfigure the PHP pools to use PHP 7 instead of 5",
|
"migration_description_0004_php5_to_php7_pools": "Reconfigure the PHP pools to use PHP 7 instead of 5",
|
||||||
"migration_description_0005_postgresql_9p4_to_9p6": "Migrate databases from postgresql 9.4 to 9.6",
|
"migration_description_0005_postgresql_9p4_to_9p6": "Migrate databases from PostgreSQL 9.4 to 9.6",
|
||||||
"migration_description_0006_sync_admin_and_root_passwords": "Synchronize admin and root passwords",
|
"migration_description_0006_sync_admin_and_root_passwords": "Synchronize admin and root passwords",
|
||||||
"migration_description_0007_ssh_conf_managed_by_yunohost_step1": "Let the SSH configuration be managed by YunoHost (step 1, automatic)",
|
"migration_description_0007_ssh_conf_managed_by_yunohost_step1": "Let the SSH configuration be managed by YunoHost (step 1, automatic)",
|
||||||
"migration_description_0008_ssh_conf_managed_by_yunohost_step2": "Let the SSH configuration be managed by YunoHost (step 2, manual)",
|
"migration_description_0008_ssh_conf_managed_by_yunohost_step2": "Let the SSH configuration be managed by YunoHost (step 2, manual)",
|
||||||
"migration_description_0009_decouple_regenconf_from_services": "Decouple the regen-conf mechanism from services",
|
"migration_description_0009_decouple_regenconf_from_services": "Decouple the regen-conf mechanism from services",
|
||||||
"migration_description_0010_migrate_to_apps_json": "Remove deprecated appslists and use the new unified 'apps.json' list instead",
|
"migration_description_0010_migrate_to_apps_json": "Remove deprecated applists and use the new unified 'apps.json' list instead",
|
||||||
"migration_description_0011_setup_group_permission": "Setup user group and setup permission for apps and services",
|
"migration_description_0011_setup_group_permission": "Set up user group and set up permission for apps and services",
|
||||||
"migration_description_0012_postgresql_password_to_md5_authentication": "Force postgresql authentication to use md5 for local connections",
|
"migration_description_0012_postgresql_password_to_md5_authentication": "Force PostgreSQL authentication to use MD5 for local connections",
|
||||||
"migration_0003_start": "Starting migration to Stretch. The logs will be available in {logfile}.",
|
"migration_0003_start": "Starting migration to Stretch. The logs will be available in {logfile}.",
|
||||||
"migration_0003_patching_sources_list": "Patching the sources.lists…",
|
"migration_0003_patching_sources_list": "Patching the sources.lists…",
|
||||||
"migration_0003_main_upgrade": "Starting main upgrade…",
|
"migration_0003_main_upgrade": "Starting main upgrade…",
|
||||||
"migration_0003_fail2ban_upgrade": "Starting the fail2ban upgrade…",
|
"migration_0003_fail2ban_upgrade": "Starting the Fail2Ban upgrade…",
|
||||||
"migration_0003_restoring_origin_nginx_conf": "Your file /etc/nginx/nginx.conf was edited somehow. The migration is going to reset back to its original state first… The previous file will be available as {backup_dest}.",
|
"migration_0003_restoring_origin_nginx_conf": "Your file /etc/nginx/nginx.conf was edited somehow. The migration is going to reset to its original state first… The previous file will be available as {backup_dest}.",
|
||||||
"migration_0003_yunohost_upgrade": "Starting the yunohost package upgrade… The migration will end, but the actual upgrade will happen right after. After the operation is complete, you might have to re-log on the webadmin.",
|
"migration_0003_yunohost_upgrade": "Starting the YunoHost package upgrade… The migration will end, but the actual upgrade will happen immediately afterwards. After the operation is complete, you might have to log in on the webadmin page again.",
|
||||||
"migration_0003_not_jessie": "The current debian distribution is not Jessie!",
|
"migration_0003_not_jessie": "The current Debian distribution is not Jessie!",
|
||||||
"migration_0003_system_not_fully_up_to_date": "Your system is not fully up to date. Please perform a regular upgrade before running the migration to stretch.",
|
"migration_0003_system_not_fully_up_to_date": "Your system is not fully up-to-date. Please perform a regular upgrade before running the migration to Stretch.",
|
||||||
"migration_0003_still_on_jessie_after_main_upgrade": "Something wrong happened during the main upgrade: system is still on Jessie!? To investigate the issue, please look at {log}:s…",
|
"migration_0003_still_on_jessie_after_main_upgrade": "Something went wrong during the main upgrade: Is the system still on Jessie‽ To investigate the issue, please look at {log}:s…",
|
||||||
"migration_0003_general_warning": "Please note that this migration is a delicate operation. While the YunoHost team did its best to review and test it, the migration might still break parts of the system or apps.\n\nTherefore, we recommend you to:\n - Perform a backup of any critical data or app. More infos on https://yunohost.org/backup;\n - Be patient after launching the migration: depending on your internet connection and hardware, it might take up to a few hours for everything to upgrade.\n\nAdditionally, the port for SMTP, used by external email clients (like Thunderbird or K9-Mail) was changed from 465 (SSL/TLS) to 587 (STARTTLS). The old port 465 will automatically be closed and the new port 587 will be opened in the firewall. You and your users *will* have to adapt the configuration of your email clients accordingly!",
|
"migration_0003_general_warning": "Please note that this migration is a delicate operation. The YunoHost team did its best to review and test it, but the migration might still break parts of the system or its apps.\n\nTherefore, it is recommended to:\n - Perform a backup of any critical data or app. More info on https://yunohost.org/backup;\n - Be patient after launching the migration: Depending on your Internet connection and hardware, it might take up to a few hours for everything to upgrade.\n\nAdditionally, the port for SMTP, used by external e-mail clients (like Thunderbird or K9-Mail) was changed from 465 (SSL/TLS) to 587 (STARTTLS). The old port (465) will automatically be closed, and the new port (587) will be opened in the firewall. You and your users *will* have to adapt the configuration of your e-mail clients accordingly.",
|
||||||
"migration_0003_problematic_apps_warning": "Please note that the following possibly problematic installed apps were detected. It looks like those were not installed from an applist or are not flagged as 'working'. Consequently, we cannot guarantee that they will still work after the upgrade: {problematic_apps}",
|
"migration_0003_problematic_apps_warning": "Please note that the following possibly problematic installed apps were detected. It looks like those were not installed from an applist, or are not flagged as 'working'. Consequently, it cannot be guaranteed that they will still work after the upgrade: {problematic_apps}",
|
||||||
"migration_0003_modified_files": "Please note that the following files were found to be manually modified and might be overwritten at the end of the upgrade: {manually_modified_files}",
|
"migration_0003_modified_files": "Please note that the following files were found to be manually modified and might be overwritten following the upgrade: {manually_modified_files}",
|
||||||
"migration_0005_postgresql_94_not_installed": "Postgresql was not installed on your system. Nothing to do!",
|
"migration_0005_postgresql_94_not_installed": "PostgreSQL was not installed on your system. Nothing to do.",
|
||||||
"migration_0005_postgresql_96_not_installed": "Postgresql 9.4 has been found to be installed, but not postgresql 9.6!? Something weird might have happened on your system:(…",
|
"migration_0005_postgresql_96_not_installed": "PostgreSQL 9.4 is installed, but not postgresql 9.6‽ Something weird might have happened on your system:(…",
|
||||||
"migration_0005_not_enough_space": "Not enough space is available in {path} to run the migration right now:(.",
|
"migration_0005_not_enough_space": "Make sufficient space available in {path} to run the migration.",
|
||||||
"migration_0006_disclaimer": "YunoHost now expects admin and root passwords to be synchronized. By running this migration, your root password is going to be replaced by the admin password.",
|
"migration_0006_disclaimer": "YunoHost now expects admin and root passwords to be synchronized. By running this migration, your root password is going to be replaced by the admin password.",
|
||||||
"migration_0007_cancelled": "YunoHost has failed to improve the way your SSH conf is managed.",
|
"migration_0007_cancelled": "YunoHost has failed to improve the way your SSH conf is managed.",
|
||||||
"migration_0007_cannot_restart": "SSH can't be restarted after trying to cancel migration number 6.",
|
"migration_0007_cannot_restart": "SSH can't be restarted after trying to cancel migration number 6.",
|
||||||
"migration_0008_general_disclaimer": "To improve the security of your server, it is recommended to let YunoHost manage the SSH configuration. Your current SSH configuration differs from the recommended configuration. If you let YunoHost reconfigure it, the way you connect to your server through SSH will change in the following way:",
|
"migration_0008_general_disclaimer": "To improve the security of your server, it is recommended to let YunoHost manage the SSH configuration. Your current SSH setup differs from the recommendation. If you let YunoHost reconfigure it, the way you connect to your server through SSH will change thusly:",
|
||||||
"migration_0008_port": " - you will have to connect using port 22 instead of your current custom SSH port. Feel free to reconfigure it;",
|
"migration_0008_port": "• You will have to connect using port 22 instead of your current custom SSH port. Feel free to reconfigure it;",
|
||||||
"migration_0008_root": " - you will not be able to connect as root through SSH. Instead you should use the admin user;",
|
"migration_0008_root": "• You will not be able to connect as root through SSH. Instead you should use the admin user;",
|
||||||
"migration_0008_dsa": " - the DSA key will be disabled. Hence, you might need to invalidate a spooky warning from your SSH client, and recheck the fingerprint of your server;",
|
"migration_0008_dsa": "• The DSA key will be turned off. Hence, you might need to invalidate a spooky warning from your SSH client, and recheck the fingerprint of your server;",
|
||||||
"migration_0008_warning": "If you understand those warnings and agree to let YunoHost override your current configuration, run the migration. Otherwise, you can also skip the migration - though it is not recommended.",
|
"migration_0008_warning": "If you understand those warnings and agree to let YunoHost override your current configuration, run the migration. Otherwise, you can also skip the migration - though it is not recommended.",
|
||||||
"migration_0008_no_warning": "No major risk has been indentified about overriding your SSH configuration - but we can't be absolutely sure ;)! If you agree to let YunoHost override your current configuration, run the migration. Otherwise, you can also skip the migration - though it is not recommended.",
|
"migration_0008_no_warning": "No major risk indentified concerning overriding your SSH configuration—one can however not be absolutely sure ;)! Run the migration to override it. Otherwise, you can also skip the migration - though it is not recommended.",
|
||||||
"migration_0009_not_needed": "This migration already happened somehow ? Skipping.",
|
"migration_0009_not_needed": "This migration already happened somehow… (?) Skipping.",
|
||||||
"migration_0011_backup_before_migration": "Creating a backup of LDAP database and apps settings prior to the actual migration.",
|
"migration_0011_backup_before_migration": "Creating a backup of LDAP database and apps settings prior to the actual migration.",
|
||||||
"migration_0011_can_not_backup_before_migration": "The backup of the system before the migration failed. Migration failed. Error: {error:s}",
|
"migration_0011_can_not_backup_before_migration": "The backup of the system before the migration failed. Migration failed. Error: {error:s}",
|
||||||
"migration_0011_create_group": "Creating a group for each user...",
|
"migration_0011_create_group": "Creating a group for each user…",
|
||||||
"migration_0011_done": "Migration successful. You are now able to manage groups of users.",
|
"migration_0011_done": "Migration successful. You are now able to manage usergroups.",
|
||||||
"migration_0011_LDAP_config_dirty": "It look like that you customized your LDAP configuration. For this migration the LDAP configuration need to be updated.\nYou need to save your actual configuration, reintialize the original configuration by the command 'yunohost tools regen-conf -f' and after retry the migration",
|
"migration_0011_LDAP_config_dirty": "It look like that you customized your LDAP configuration. For this migration the LDAP configuration needs to be updated.\nYou need to save your current configuration, reintialize the original configuration by running 'yunohost tools regen-conf -f' and retry the migration",
|
||||||
"migration_0011_LDAP_update_failed": "LDAP update failed. Error: {error:s}",
|
"migration_0011_LDAP_update_failed": "Could not update LDAP. Error: {error:s}",
|
||||||
"migration_0011_migrate_permission": "Migrating permissions from apps settings to LDAP...",
|
"migration_0011_migrate_permission": "Migrating permissions from apps settings to LDAP…",
|
||||||
"migration_0011_migration_failed_trying_to_rollback": "Migration failed ... trying to rollback the system.",
|
"migration_0011_migration_failed_trying_to_rollback": "Migration failed… trying to roll back the system.",
|
||||||
"migration_0011_rollback_success": "Rollback succeeded.",
|
"migration_0011_rollback_success": "System rolled back.",
|
||||||
"migration_0011_update_LDAP_database": "Updating LDAP database...",
|
"migration_0011_update_LDAP_database": "Updating LDAP database…",
|
||||||
"migration_0011_update_LDAP_schema": "Updating LDAP schema...",
|
"migration_0011_update_LDAP_schema": "Updating LDAP schema…",
|
||||||
"migration_0011_failed_to_remove_stale_object": "Failed to remove stale object {dn}: {error}",
|
"migration_0011_failed_to_remove_stale_object": "Failed to remove stale object {dn}: {error}",
|
||||||
"migrations_already_ran": "Those migrations have already been ran: {ids}",
|
"migrations_already_ran": "Those migrations are already done: {ids}",
|
||||||
"migrations_cant_reach_migration_file": "Can't access migrations files at path %s",
|
"migrations_cant_reach_migration_file": "Could not access migrations files at path %s",
|
||||||
"migrations_dependencies_not_satisfied": "Can't run migration {id} because first you need to run these migrations: {dependencies_id}",
|
"migrations_dependencies_not_satisfied": "Cannot run migration {id} because first you need to run these migrations: {dependencies_id}",
|
||||||
"migrations_failed_to_load_migration": "Failed to load migration {id} : {error}",
|
"migrations_failed_to_load_migration": "Could not load migration {id}: {error}",
|
||||||
"migrations_exclusive_options": "--auto, --skip, and --force-rerun are exclusive options.",
|
"migrations_exclusive_options": "'--auto', '--skip', and '--force-rerun' are mutually exclusive options.",
|
||||||
"migrations_list_conflict_pending_done": "You cannot use both --previous and --done at the same time.",
|
"migrations_list_conflict_pending_done": "You cannot use both '--previous' and '--done' at the same time.",
|
||||||
"migrations_loading_migration": "Loading migration {id}…",
|
"migrations_loading_migration": "Loading migration {id}…",
|
||||||
"migrations_migration_has_failed": "Migration {id} has failed, aborting. Error: {exception}",
|
"migrations_migration_has_failed": "Migration {id} did not complete, aborting. Error: {exception}",
|
||||||
"migrations_must_provide_explicit_targets": "You must provide explicit targets when using --skip or --force-rerun",
|
"migrations_must_provide_explicit_targets": "You must provide explicit targets when using '--skip' or '--force-rerun'",
|
||||||
"migrations_need_to_accept_disclaimer": "To run the migration {id}, your must accept the following disclaimer:\n---\n{disclaimer}\n---\nIf you accept to run the migration, please re-run the command with the option --accept-disclaimer.",
|
"migrations_need_to_accept_disclaimer": "To run the migration {id}, your must accept the following disclaimer:\n---\n{disclaimer}\n---\nIf you accept to run the migration, please re-run the command with the option '--accept-disclaimer'.",
|
||||||
"migrations_no_migrations_to_run": "No migrations to run",
|
"migrations_no_migrations_to_run": "No migrations to run",
|
||||||
"migrations_no_such_migration": "No such migration called {id}",
|
"migrations_no_such_migration": "There is no migration called {id}",
|
||||||
"migrations_not_pending_cant_skip": "Those migrations are not pending so cannot be skipped: {ids}",
|
"migrations_not_pending_cant_skip": "Those migrations are not pending, so cannot be skipped: {ids}",
|
||||||
"migrations_pending_cant_rerun": "Those migrations are still pending so cannot be reran: {ids}",
|
"migrations_pending_cant_rerun": "Those migrations are still pending, so cannot be run again: {ids}",
|
||||||
"migrations_running_forward": "Running migration {id}…",
|
"migrations_running_forward": "Running migration {id}…",
|
||||||
"migrations_skip_migration": "Skipping migration {id}…",
|
"migrations_skip_migration": "Skipping migration {id}…",
|
||||||
"migrations_success_forward": "Successfully ran migration {id}!",
|
"migrations_success_forward": "Migration {id} completed",
|
||||||
"migrations_to_be_ran_manually": "Migration {id} has to be ran manually. Please go to Tools > Migrations on the webadmin, or run `yunohost tools migrations migrate`.",
|
"migrations_to_be_ran_manually": "Migration {id} has to be run manually. Please go to Tools → Migrations on the webadmin page, or run `yunohost tools migrations migrate`.",
|
||||||
"monitor_disabled": "The server monitoring has been disabled",
|
"monitor_disabled": "Server monitoring now turned off",
|
||||||
"monitor_enabled": "The server monitoring has been enabled",
|
"monitor_enabled": "Server monitoring now turned on",
|
||||||
"monitor_glances_con_failed": "Unable to connect to Glances server",
|
"monitor_glances_con_failed": "Could not connect to Glances server",
|
||||||
"monitor_not_enabled": "Server monitoring is not enabled",
|
"monitor_not_enabled": "Server monitoring is off",
|
||||||
"monitor_period_invalid": "Invalid time period",
|
"monitor_period_invalid": "Invalid time period",
|
||||||
"monitor_stats_file_not_found": "Statistics file not found",
|
"monitor_stats_file_not_found": "Statistics file not found",
|
||||||
"monitor_stats_no_update": "No monitoring statistics to update",
|
"monitor_stats_no_update": "No monitoring statistics to update",
|
||||||
|
@ -394,185 +383,177 @@
|
||||||
"mountpoint_unknown": "Unknown mountpoint",
|
"mountpoint_unknown": "Unknown mountpoint",
|
||||||
"mysql_db_creation_failed": "MySQL database creation failed",
|
"mysql_db_creation_failed": "MySQL database creation failed",
|
||||||
"mysql_db_init_failed": "MySQL database init failed",
|
"mysql_db_init_failed": "MySQL database init failed",
|
||||||
"mysql_db_initialized": "The MySQL database has been initialized",
|
"mysql_db_initialized": "The MySQL database now initialized",
|
||||||
"network_check_mx_ko": "DNS MX record is not set",
|
"network_check_mx_ko": "DNS MX record is not set",
|
||||||
"network_check_smtp_ko": "Outbound mail (SMTP port 25) seems to be blocked by your network",
|
"network_check_smtp_ko": "Outbound e-mail (SMTP port 25) seems to be blocked by your network",
|
||||||
"network_check_smtp_ok": "Outbound mail (SMTP port 25) is not blocked",
|
"network_check_smtp_ok": "Outbound e-mail (SMTP port 25) is not blocked",
|
||||||
"new_domain_required": "You must provide the new main domain",
|
"no_internet_connection": "Server not connected to the Internet",
|
||||||
"no_appslist_found": "No app list found",
|
"not_enough_disk_space": "Not enough free space on '{path:s}'",
|
||||||
"no_internet_connection": "Server is not connected to the Internet",
|
"operation_interrupted": "The operation was manually interrupted?",
|
||||||
"no_ipv6_connectivity": "IPv6 connectivity is not available",
|
|
||||||
"no_restore_script": "No restore script found for the app '{app:s}'",
|
|
||||||
"not_enough_disk_space": "Not enough free disk space on '{path:s}'",
|
|
||||||
"package_not_installed": "Package '{pkgname}' is not installed",
|
"package_not_installed": "Package '{pkgname}' is not installed",
|
||||||
"package_unexpected_error": "An unexpected error occurred processing the package '{pkgname}'",
|
"package_unexpected_error": "An unexpected error occurred processing the package '{pkgname}'",
|
||||||
"package_unknown": "Unknown package '{pkgname}'",
|
"package_unknown": "Unknown package '{pkgname}'",
|
||||||
"packages_upgrade_critical_later": "Critical packages ({packages:s}) will be upgraded later",
|
"packages_upgrade_failed": "Could not upgrade all the packages",
|
||||||
"packages_upgrade_failed": "Unable to upgrade all of the packages",
|
"password_listed": "This password is among the most used password in the world. Please choose something more unique.",
|
||||||
"password_listed": "This password is among the most used password in the world. Please choose something a bit more unique.",
|
"password_too_simple_1": "The password needs to be at least 8 characters long",
|
||||||
"password_too_simple_1": "Password needs to be at least 8 characters long",
|
"password_too_simple_2": "The password needs to be at least 8 characters long and contain a digit, upper and lower characters",
|
||||||
"password_too_simple_2": "Password needs to be at least 8 characters long and contains digit, upper and lower characters",
|
"password_too_simple_3": "The password needs to be at least 8 characters long and contain a digit, upper, lower and special characters",
|
||||||
"password_too_simple_3": "Password needs to be at least 8 characters long and contains digit, upper, lower and special characters",
|
"password_too_simple_4": "The password needs to be at least 12 characters long and contain a digit, upper, lower and special characters",
|
||||||
"password_too_simple_4": "Password needs to be at least 12 characters long and contains digit, upper, lower and special characters",
|
"pattern_backup_archive_name": "Must be a valid filename with max 30 characters, alphanumeric and -_. characters only",
|
||||||
"path_removal_failed": "Unable to remove path {:s}",
|
|
||||||
"pattern_backup_archive_name": "Must be a valid filename with max 30 characters, and alphanumeric and -_. characters only",
|
|
||||||
"pattern_domain": "Must be a valid domain name (e.g. my-domain.org)",
|
"pattern_domain": "Must be a valid domain name (e.g. my-domain.org)",
|
||||||
"pattern_email": "Must be a valid email address (e.g. someone@domain.org)",
|
"pattern_email": "Must be a valid email address (e.g. someone@domain.org)",
|
||||||
"pattern_firstname": "Must be a valid first name",
|
"pattern_firstname": "Must be a valid first name",
|
||||||
"pattern_lastname": "Must be a valid last name",
|
"pattern_lastname": "Must be a valid last name",
|
||||||
"pattern_listname": "Must be alphanumeric and underscore characters only",
|
"pattern_listname": "Must be alphanumeric and underscore characters only",
|
||||||
"pattern_mailbox_quota": "Must be a size with b/k/M/G/T suffix or 0 to disable the quota",
|
"pattern_mailbox_quota": "Must be a size with b/k/M/G/T suffix or 0 to not have a quota",
|
||||||
"pattern_password": "Must be at least 3 characters long",
|
"pattern_password": "Must be at least 3 characters long",
|
||||||
"pattern_port": "Must be a valid port number (i.e. 0-65535)",
|
"pattern_port": "Must be a valid port number (i.e. 0-65535)",
|
||||||
"pattern_port_or_range": "Must be a valid port number (i.e. 0-65535) or range of ports (e.g. 100:200)",
|
"pattern_port_or_range": "Must be a valid port number (i.e. 0-65535) or range of ports (e.g. 100:200)",
|
||||||
"pattern_positive_number": "Must be a positive number",
|
"pattern_positive_number": "Must be a positive number",
|
||||||
"pattern_username": "Must be lower-case alphanumeric and underscore characters only",
|
"pattern_username": "Must be lower-case alphanumeric and underscore characters only",
|
||||||
"pattern_password_app": "Sorry, passwords should not contain the following characters: {forbidden_chars}",
|
"pattern_password_app": "Sorry, passwords can not contain the following characters: {forbidden_chars}",
|
||||||
"permission_already_allowed": "Group '{group}' already has permission '{permission}' enabled'",
|
"permission_already_allowed": "Group '{group}' already has permission '{permission}' enabled'",
|
||||||
"permission_already_disallowed": "Group '{group}' already has permission '{permission}' disabled'",
|
"permission_already_disallowed": "Group '{group}' already has permission '{permission}' disabled'",
|
||||||
"permission_already_exist": "Permission '{permission}' already exists",
|
"permission_already_exist": "Permission '{permission}' already exists",
|
||||||
"permission_cannot_remove_main": "Removing a main permission is not allowed",
|
"permission_cannot_remove_main": "Removing a main permission is not allowed",
|
||||||
"permission_created": "Permission '{permission}' created",
|
"permission_created": "Permission '{permission:s}' created",
|
||||||
"permission_creation_failed": "Failed to create permission '{permission}': {error}",
|
"permission_creation_failed": "Could not create permission '{permission}': {error}",
|
||||||
"permission_deleted": "Permission '{permission}' deleted",
|
"permission_deleted": "Permission '{permission:s}' deleted",
|
||||||
"permission_deletion_failed": "Failed to delete permission '{permission}': {error}",
|
"permission_deletion_failed": "Could not delete permission '{permission}': {error}",
|
||||||
"permission_not_found": "Permission '{permission}' does not seem to exist ?",
|
"permission_not_found": "Permission '{permission:s}' not found",
|
||||||
"permission_update_failed": "Failed to update permission '{permission}' : {error}",
|
"permission_update_failed": "Could not update permission '{permission}' : {error}",
|
||||||
"permission_updated": "Permission '{permission}' updated",
|
"permission_updated": "Permission '{permission:s}' updated",
|
||||||
"permission_update_nothing_to_do": "No permissions to update",
|
"permission_update_nothing_to_do": "No permissions to update",
|
||||||
"port_already_closed": "Port {port:d} is already closed for {ip_version:s} connections",
|
"port_already_closed": "Port {port:d} is already closed for {ip_version:s} connections",
|
||||||
"port_already_opened": "Port {port:d} is already opened for {ip_version:s} connections",
|
"port_already_opened": "Port {port:d} is already opened for {ip_version:s} connections",
|
||||||
"port_available": "Port {port:d} is available",
|
"port_available": "Port {port:d} is available",
|
||||||
"port_unavailable": "Port {port:d} is not available",
|
"port_unavailable": "Port {port:d} is not available",
|
||||||
"recommend_to_add_first_user": "The post-install is finished but YunoHost needs at least one user to work correctly, you should add one using 'yunohost user create <username>' or the admin interface.",
|
"recommend_to_add_first_user": "The post-install is finished, but YunoHost needs at least one user to work correctly, you should add one using 'yunohost user create <username>' or do it from the admin interface.",
|
||||||
"regenconf_file_backed_up": "The configuration file '{conf}' has been backed up to '{backup}'",
|
"regenconf_file_backed_up": "Configuration file '{conf}' backed up to '{backup}'",
|
||||||
"regenconf_file_copy_failed": "Unable to copy the new configuration file '{new}' to '{conf}'",
|
"regenconf_file_copy_failed": "Could not copy the new configuration file '{new}' to '{conf}'",
|
||||||
"regenconf_file_kept_back": "The configuration file '{conf}' is expected to be deleted by regen-conf (category {category}) but has been kept back.",
|
"regenconf_file_kept_back": "The configuration file '{conf}' is expected to be deleted by regen-conf (category {category}) but was kept back.",
|
||||||
"regenconf_file_manually_modified": "The configuration file '{conf}' has been manually modified and will not be updated",
|
"regenconf_file_manually_modified": "The configuration file '{conf}' has been manually modified and will not be updated",
|
||||||
"regenconf_file_manually_removed": "The configuration file '{conf}' has been manually removed and will not be created",
|
"regenconf_file_manually_removed": "The configuration file '{conf}' was removed manually, and will not be created",
|
||||||
"regenconf_file_remove_failed": "Unable to remove the configuration file '{conf}'",
|
"regenconf_file_remove_failed": "Could not remove the configuration file '{conf}'",
|
||||||
"regenconf_file_removed": "The configuration file '{conf}' has been removed",
|
"regenconf_file_removed": "Configuration file '{conf}' removed",
|
||||||
"regenconf_file_updated": "The configuration file '{conf}' has been updated",
|
"regenconf_file_updated": "Configuration file '{conf}' updated",
|
||||||
"regenconf_now_managed_by_yunohost": "The configuration file '{conf}' is now managed by YunoHost (category {category}).",
|
"regenconf_now_managed_by_yunohost": "The configuration file '{conf}' is now managed by YunoHost (category {category}).",
|
||||||
"regenconf_up_to_date": "The configuration is already up-to-date for category '{category}'",
|
"regenconf_up_to_date": "The configuration is already up-to-date for category '{category}'",
|
||||||
"regenconf_updated": "The configuration has been updated for category '{category}'",
|
"regenconf_updated": "Configuration for category '{category}' updated",
|
||||||
"regenconf_would_be_updated": "The configuration would have been updated for category '{category}'",
|
"regenconf_would_be_updated": "The configuration would have been updated for category '{category}'",
|
||||||
"regenconf_dry_pending_applying": "Checking pending configuration which would have been applied for category '{category}'…",
|
"regenconf_dry_pending_applying": "Checking pending configuration which would have been applied for category '{category}'…",
|
||||||
"regenconf_failed": "Unable to regenerate the configuration for category(s): {categories}",
|
"regenconf_failed": "Could not regenerate the configuration for category(s): {categories}",
|
||||||
"regenconf_pending_applying": "Applying pending configuration for category '{category}'…",
|
"regenconf_pending_applying": "Applying pending configuration for category '{category}'…",
|
||||||
"restore_action_required": "You must specify something to restore",
|
"restore_already_installed_app": "An app with the ID '{app:s}' is already installed",
|
||||||
"restore_already_installed_app": "An app is already installed with the id '{app:s}'",
|
"restore_app_failed": "Could not restore the app '{app:s}'",
|
||||||
"restore_app_failed": "Unable to restore the app '{app:s}'",
|
"restore_cleaning_failed": "Could not clean up the temporary restoration directory",
|
||||||
"restore_cleaning_failed": "Unable to clean-up the temporary restoration directory",
|
"restore_complete": "Restored",
|
||||||
"restore_complete": "Restore complete",
|
|
||||||
"restore_confirm_yunohost_installed": "Do you really want to restore an already installed system? [{answers:s}]",
|
"restore_confirm_yunohost_installed": "Do you really want to restore an already installed system? [{answers:s}]",
|
||||||
"restore_extracting": "Extracting needed files from the archive…",
|
"restore_extracting": "Extracting needed files from the archive…",
|
||||||
"restore_failed": "Unable to restore the system",
|
"restore_failed": "Could not restore system",
|
||||||
"restore_hook_unavailable": "Restoration script for '{part:s}' not available on your system and not in the archive either",
|
"restore_hook_unavailable": "The restoration script for '{part:s}' not available on your system and not in the archive either",
|
||||||
"restore_may_be_not_enough_disk_space": "Your system seems not to have enough disk space (freespace: {free_space:d} B, needed space: {needed_space:d} B, security margin: {margin:d} B)",
|
"restore_may_be_not_enough_disk_space": "Your system seems does not have enough space (free: {free_space:d} B, needed space: {needed_space:d} B, security margin: {margin:d} B)",
|
||||||
"restore_mounting_archive": "Mounting archive into '{path:s}'",
|
"restore_not_enough_disk_space": "Not enough space (space: {free_space:d} B, needed space: {needed_space:d} B, security margin: {margin:d} B)",
|
||||||
"restore_not_enough_disk_space": "Not enough disk space (freespace: {free_space:d} B, needed space: {needed_space:d} B, security margin: {margin:d} B)",
|
"restore_nothings_done": "Nothing was restored",
|
||||||
"restore_nothings_done": "Nothing has been restored",
|
"restore_removing_tmp_dir_failed": "Could not remove an old temporary directory",
|
||||||
"restore_removing_tmp_dir_failed": "Unable to remove an old temporary directory",
|
"restore_running_app_script": "Restoring the app '{app:s}'…",
|
||||||
"restore_running_app_script": "Running restore script of app '{app:s}'…",
|
|
||||||
"restore_running_hooks": "Running restoration hooks…",
|
"restore_running_hooks": "Running restoration hooks…",
|
||||||
"restore_system_part_failed": "Unable to restore the '{part:s}' system part",
|
"restore_system_part_failed": "Could not restore the '{part:s}' system part",
|
||||||
"root_password_desynchronized": "The admin password has been changed, but YunoHost was unable to propagate this on the root password!",
|
"root_password_desynchronized": "The admin password was changed, but YunoHost could not propagate this to the root password!",
|
||||||
"root_password_replaced_by_admin_password": "Your root password have been replaced by your admin password.",
|
"root_password_replaced_by_admin_password": "Your root password have been replaced by your admin password.",
|
||||||
"server_shutdown": "The server will shutdown",
|
"server_shutdown": "The server will shut down",
|
||||||
"server_shutdown_confirm": "The server will shutdown immediatly, are you sure? [{answers:s}]",
|
"server_shutdown_confirm": "The server will shutdown immediatly, are you sure? [{answers:s}]",
|
||||||
"server_reboot": "The server will reboot",
|
"server_reboot": "The server will reboot",
|
||||||
"server_reboot_confirm": "The server will reboot immediatly, are you sure? [{answers:s}]",
|
"server_reboot_confirm": "The server will reboot immediatly, are you sure? [{answers:s}]",
|
||||||
"service_add_failed": "Unable to add service '{service:s}'",
|
"service_add_failed": "Could not add the service '{service:s}'",
|
||||||
"service_added": "The service '{service:s}' has been added",
|
"service_added": "The service '{service:s}' added",
|
||||||
"service_already_started": "Service '{service:s}' has already been started",
|
"service_already_started": "The service '{service:s}' has already been started",
|
||||||
"service_already_stopped": "Service '{service:s}' has already been stopped",
|
"service_already_stopped": "The service '{service:s}' has already been stopped",
|
||||||
"service_cmd_exec_failed": "Unable to execute command '{command:s}'",
|
"service_cmd_exec_failed": "Could not execute the command '{command:s}'",
|
||||||
"service_description_avahi-daemon": "allows to reach your server using yunohost.local on your local network",
|
"service_description_avahi-daemon": "Allows you to reach your server using 'yunohost.local' in your local network",
|
||||||
"service_description_dnsmasq": "handles domain name resolution (DNS)",
|
"service_description_dnsmasq": "Handles domain name resolution (DNS)",
|
||||||
"service_description_dovecot": "allows e-mail client to access/fetch email (via IMAP and POP3)",
|
"service_description_dovecot": "Allows e-mail clients to access/fetch email (via IMAP and POP3)",
|
||||||
"service_description_fail2ban": "protects against bruteforce and other kind of attacks from the Internet",
|
"service_description_fail2ban": "Protects against brute-force and other kinds of attacks from the Internet",
|
||||||
"service_description_glances": "monitors system information on your server",
|
"service_description_glances": "Monitors system info on your server",
|
||||||
"service_description_metronome": "manage XMPP instant messaging accounts",
|
"service_description_metronome": "Manage XMPP instant messaging accounts",
|
||||||
"service_description_mysql": "stores applications data (SQL database)",
|
"service_description_mysql": "Stores applications data (SQL database)",
|
||||||
"service_description_nginx": "serves or provides access to all the websites hosted on your server",
|
"service_description_nginx": "Serves or provides access to all the websites hosted on your server",
|
||||||
"service_description_nslcd": "handles YunoHost user shell connection",
|
"service_description_nslcd": "Handles YunoHost user shell connection",
|
||||||
"service_description_php7.0-fpm": "runs applications written in PHP with nginx",
|
"service_description_php7.0-fpm": "Runs applications written in PHP with NGINX",
|
||||||
"service_description_postfix": "used to send and receive emails",
|
"service_description_postfix": "Used to send and receive e-mails",
|
||||||
"service_description_redis-server": "a specialized database used for rapid data access, task queue and communication between programs",
|
"service_description_redis-server": "A specialized database used for rapid data access, task queue, and communication between programs",
|
||||||
"service_description_rmilter": "checks various parameters in emails",
|
"service_description_rmilter": "Checks various parameters in e-mails",
|
||||||
"service_description_rspamd": "filters spam, and other email-related features",
|
"service_description_rspamd": "Filters spam, and other e-mail related features",
|
||||||
"service_description_slapd": "stores users, domains and related information",
|
"service_description_slapd": "Stores users, domains and related info",
|
||||||
"service_description_ssh": "allows you to connect remotely to your server via a terminal (SSH protocol)",
|
"service_description_ssh": "Allows you to connect remotely to your server via a terminal (SSH protocol)",
|
||||||
"service_description_yunohost-api": "manages interactions between the YunoHost web interface and the system",
|
"service_description_yunohost-api": "Manages interactions between the YunoHost web interface and the system",
|
||||||
"service_description_yunohost-firewall": "manages open and close connexion ports to services",
|
"service_description_yunohost-firewall": "Manages open and close connexion ports to services",
|
||||||
"service_disable_failed": "Unable to disable service '{service:s}'\n\nRecent service logs:{logs:s}",
|
"service_disable_failed": "Could not turn off the service '{service:s}'\n\nRecent service logs:{logs:s}",
|
||||||
"service_disabled": "The service '{service:s}' has been disabled",
|
"service_disabled": "'{service:s}' service turned off",
|
||||||
"service_enable_failed": "Unable to enable service '{service:s}'\n\nRecent service logs:{logs:s}",
|
"service_enable_failed": "Could not turn on the service '{service:s}'\n\nRecent service logs:{logs:s}",
|
||||||
"service_enabled": "The service '{service:s}' has been enabled",
|
"service_enabled": "'{service:s}' service turned off",
|
||||||
"service_no_log": "No log to display for service '{service:s}'",
|
"service_no_log": "No log to display for service '{service:s}'",
|
||||||
"service_regen_conf_is_deprecated": "'yunohost service regen-conf' is deprecated! Please use 'yunohost tools regen-conf' instead.",
|
"service_regen_conf_is_deprecated": "'yunohost service regen-conf' is deprecated! Please use 'yunohost tools regen-conf' instead.",
|
||||||
"service_remove_failed": "Unable to remove service '{service:s}'",
|
"service_remove_failed": "Could not remove the service '{service:s}'",
|
||||||
"service_removed": "The service '{service:s}' has been removed",
|
"service_removed": "'{service:s}' service removed",
|
||||||
"service_reload_failed": "Unable to reload service '{service:s}'\n\nRecent service logs:{logs:s}",
|
"service_reload_failed": "Could not reload the service '{service:s}'\n\nRecent service logs:{logs:s}",
|
||||||
"service_reloaded": "The service '{service:s}' has been reloaded",
|
"service_reloaded": "'{service:s}' service reloaded",
|
||||||
"service_restart_failed": "Unable to restart service '{service:s}'\n\nRecent service logs:{logs:s}",
|
"service_restart_failed": "Could not restart the service '{service:s}'\n\nRecent service logs:{logs:s}",
|
||||||
"service_restarted": "The service '{service:s}' has been restarted",
|
"service_restarted": "'{service:s}' service restarted",
|
||||||
"service_reload_or_restart_failed": "Unable to reload or restart service '{service:s}'\n\nRecent service logs:{logs:s}",
|
"service_reload_or_restart_failed": "Could not reload or restart the service '{service:s}'\n\nRecent service logs:{logs:s}",
|
||||||
"service_reloaded_or_restarted": "The service '{service:s}' has been reloaded or restarted",
|
"service_reloaded_or_restarted": "'{service:s}' service reloaded or restarted",
|
||||||
"service_start_failed": "Unable to start service '{service:s}'\n\nRecent service logs:{logs:s}",
|
"service_start_failed": "Could not start the service '{service:s}'\n\nRecent service logs:{logs:s}",
|
||||||
"service_started": "The service '{service:s}' has been started",
|
"service_started": "'{service:s}' service started",
|
||||||
"service_status_failed": "Unable to determine status of service '{service:s}'",
|
"service_stop_failed": "Could not stop the service '{service:s}'\n\nRecent service logs:{logs:s}",
|
||||||
"service_stop_failed": "Unable to stop service '{service:s}'\n\nRecent service logs:{logs:s}",
|
"service_stopped": "'{service:s}' service stopped",
|
||||||
"service_stopped": "The service '{service:s}' has been stopped",
|
|
||||||
"service_unknown": "Unknown service '{service:s}'",
|
"service_unknown": "Unknown service '{service:s}'",
|
||||||
"ssowat_conf_generated": "The SSOwat configuration has been generated",
|
"ssowat_conf_generated": "SSOwat configuration generated",
|
||||||
"ssowat_conf_updated": "The SSOwat configuration has been updated",
|
"ssowat_conf_updated": "SSOwat configuration updated",
|
||||||
"ssowat_persistent_conf_read_error": "Error while reading SSOwat persistent configuration: {error:s}. Edit /etc/ssowat/conf.json.persistent file to fix the JSON syntax",
|
"ssowat_persistent_conf_read_error": "Could not read persistent SSOwat configuration: {error:s}. Edit /etc/ssowat/conf.json.persistent file to fix the JSON syntax",
|
||||||
"ssowat_persistent_conf_write_error": "Error while saving SSOwat persistent configuration: {error:s}. Edit /etc/ssowat/conf.json.persistent file to fix the JSON syntax",
|
"ssowat_persistent_conf_write_error": "Could not save persistent SSOwat configuration: {error:s}. Edit /etc/ssowat/conf.json.persistent file to fix the JSON syntax",
|
||||||
"system_upgraded": "The system has been upgraded",
|
"system_upgraded": "System upgraded",
|
||||||
"system_username_exists": "Username already exists in the system users",
|
"system_username_exists": "Username already exists in the list of system users",
|
||||||
"this_action_broke_dpkg": "This action broke dpkg/apt (the system package managers)... You can try to solve this issue by connecting through SSH and running `sudo dpkg --configure -a`.",
|
"this_action_broke_dpkg": "This action broke dpkg/APT (the system package managers)… You can try to solve this issue by connecting through SSH and running `sudo dpkg --configure -a`.",
|
||||||
"tools_update_failed_to_app_fetchlist": "Failed to update YunoHost's applists because: {error}",
|
"tools_update_failed_to_app_fetchlist": "Could not update YunoHost's applists because: {error}",
|
||||||
"tools_upgrade_at_least_one": "Please specify --apps OR --system",
|
"tools_upgrade_at_least_one": "Please specify '--apps', or '--system'",
|
||||||
"tools_upgrade_cant_both": "Cannot upgrade both system and apps at the same time",
|
"tools_upgrade_cant_both": "Cannot upgrade both system and apps at the same time",
|
||||||
"tools_upgrade_cant_hold_critical_packages": "Unable to hold critical packages ...",
|
"tools_upgrade_cant_hold_critical_packages": "Could not hold critical packages…",
|
||||||
"tools_upgrade_cant_unhold_critical_packages": "Unable to unhold critical packages ...",
|
"tools_upgrade_cant_unhold_critical_packages": "Could not to unhold critical packages…",
|
||||||
"tools_upgrade_regular_packages": "Now upgrading 'regular' (non-yunohost-related) packages ...",
|
"tools_upgrade_regular_packages": "Now upgrading 'regular' (non-yunohost-related) packages…",
|
||||||
"tools_upgrade_regular_packages_failed": "Unable to upgrade packages: {packages_list}",
|
"tools_upgrade_regular_packages_failed": "Could not upgrade packages: {packages_list}",
|
||||||
"tools_upgrade_special_packages": "Now upgrading 'special' (yunohost-related) packages ...",
|
"tools_upgrade_special_packages": "Now upgrading 'special' (yunohost-related) packages…",
|
||||||
"tools_upgrade_special_packages_explanation": "This action will end but the actual special upgrade will continue in background. Please don't start any other action on your server in the next ~10 minutes (depending on your hardware speed). Once it's done, you may have to re-log on the webadmin. The upgrade log will be available in Tools > Log (in the webadmin) or through 'yunohost log list' (in command line).",
|
"tools_upgrade_special_packages_explanation": "This action will end, but the actual special upgrade will continue in background. Please don't start any other action on your server in the next ~10 minutes (depending on your hardware speed). Once it i done, you may have to log in on the webadmin page again. The upgrade log will be available in Tools → Log (on the webadmin page) or through 'yunohost log list' (from the command line).",
|
||||||
"tools_upgrade_special_packages_completed": "YunoHost package upgrade completed !\nPress [Enter] to get the command line back",
|
"tools_upgrade_special_packages_completed": "YunoHost package upgrade completed.\nPress [Enter] to get the command line back",
|
||||||
"unbackup_app": "App '{app:s}' will not be saved",
|
"unbackup_app": "App '{app:s}' will not be saved",
|
||||||
"unexpected_error": "An unexpected error occured: {error}",
|
"unexpected_error": "Something unexpected went wrong: {error}",
|
||||||
"unit_unknown": "Unknown unit '{unit:s}'",
|
"unit_unknown": "Unknown unit '{unit:s}'",
|
||||||
"unlimit": "No quota",
|
"unlimit": "No quota",
|
||||||
"unrestore_app": "App '{app:s}' will not be restored",
|
"unrestore_app": "App '{app:s}' will not be restored",
|
||||||
"update_apt_cache_failed": "Unable to update the cache of APT (Debian's package manager). Here is a dump of the sources.list lines which might help to identify problematic lines : \n{sourceslist}",
|
"update_apt_cache_failed": "Could not to update the cache of APT (Debian's package manager). Here is a dump of the sources.list lines, which might help identify problematic lines: \n{sourceslist}",
|
||||||
"update_apt_cache_warning": "Some errors happened while updating the cache of APT (Debian's package manager). Here is a dump of the sources.list lines which might help to identify problematic lines : \n{sourceslist}",
|
"update_apt_cache_warning": "Something went wrong while updating the cache of APT (Debian's package manager). Here is a dump of the sources.list lines, which might help identify problematic lines: \n{sourceslist}",
|
||||||
"updating_apt_cache": "Fetching available upgrades for system packages…",
|
"updating_apt_cache": "Fetching available upgrades for system packages…",
|
||||||
"updating_app_lists": "Fetching available upgrades for applications…",
|
"updating_app_lists": "Fetching available upgrades for applications…",
|
||||||
"upgrade_complete": "Upgrade complete",
|
"upgrade_complete": "Upgrade complete",
|
||||||
"upgrading_packages": "Upgrading packages…",
|
"upgrading_packages": "Upgrading packages…",
|
||||||
"upnp_dev_not_found": "No UPnP device found",
|
"upnp_dev_not_found": "No UPnP device found",
|
||||||
"upnp_disabled": "UPnP has been disabled",
|
"upnp_disabled": "UPnP turned off",
|
||||||
"upnp_enabled": "UPnP has been enabled",
|
"upnp_enabled": "UPnP turned on",
|
||||||
"upnp_port_open_failed": "Unable to open UPnP ports",
|
"upnp_port_open_failed": "Could not open port via UPnP",
|
||||||
"user_already_exists": "User {user} already exists",
|
"user_already_exists": "User {user} already exists",
|
||||||
"user_created": "The user has been created",
|
"user_created": "User created",
|
||||||
"user_creation_failed": "Unable to create user {user}: {error}",
|
"user_creation_failed": "Could not create user {user}: {error}",
|
||||||
"user_deleted": "The user has been deleted",
|
"user_deleted": "User deleted",
|
||||||
"user_deletion_failed": "Unable to delete user {user}: {error}",
|
"user_deletion_failed": "Could not delete user {user}: {error}",
|
||||||
"user_home_creation_failed": "Unable to create user home folder",
|
"user_home_creation_failed": "Could not create 'home' folder for user",
|
||||||
"user_info_failed": "Unable to retrieve user information",
|
"user_info_failed": "Could not retrieve user info",
|
||||||
"user_unknown": "Unknown user: {user:s}",
|
"user_unknown": "Unknown user: {user:s}",
|
||||||
"user_update_failed": "Unable to update user {user}: {error}",
|
"user_update_failed": "Could not update user {user}: {error}",
|
||||||
"user_updated": "The user has been updated",
|
"user_updated": "User info changed",
|
||||||
"users_available": "Available users:",
|
"users_available": "Available users:",
|
||||||
"yunohost_already_installed": "YunoHost is already installed",
|
"yunohost_already_installed": "YunoHost is already installed",
|
||||||
"yunohost_ca_creation_failed": "Unable to create certificate authority",
|
"yunohost_ca_creation_failed": "Could not create certificate authority",
|
||||||
"yunohost_ca_creation_success": "The local certification authority has been created.",
|
"yunohost_ca_creation_success": "Local certification authority created.",
|
||||||
"yunohost_configured": "YunoHost has been configured",
|
"yunohost_configured": "YunoHost now configured",
|
||||||
"yunohost_installing": "Installing YunoHost…",
|
"yunohost_installing": "Installing YunoHost…",
|
||||||
"yunohost_not_installed": "YunoHost is not or not correctly installed. Please execute 'yunohost tools postinstall'"
|
"yunohost_not_installed": "YunoHost is incorrectly or not correctly installed. Please run 'yunohost tools postinstall'"
|
||||||
}
|
}
|
||||||
|
|
157
locales/eo.json
157
locales/eo.json
|
@ -1,43 +1,138 @@
|
||||||
{
|
{
|
||||||
"admin_password_change_failed": "Malebla ŝanĝi pasvorton",
|
"admin_password_change_failed": "Ne eblas ŝanĝi pasvorton",
|
||||||
"admin_password_changed": "Pasvorto de la estro estas ŝanĝita",
|
"admin_password_changed": "La pasvorto de administrado ŝanĝiĝis",
|
||||||
"app_already_installed": "{app:s} estas jam instalita",
|
"app_already_installed": "{app:s} estas jam instalita",
|
||||||
"app_already_up_to_date": "{app:s} estas ĝisdata",
|
"app_already_up_to_date": "{app:s} estas jam ĝisdata",
|
||||||
"app_argument_required": "Parametro {name:s} estas bezonata",
|
"app_argument_required": "Parametro {name:s} estas bezonata",
|
||||||
"app_change_url_identical_domains": "Malnovaj kaj novaj domajno/URL estas la sama ('{domain:s}{path:s}'), nenio fareblas.",
|
"app_change_url_identical_domains": "Malnovaj kaj novaj domajno/URL estas la sama ('{domain:s}{path:s}'), nenio fareblas.",
|
||||||
"app_change_url_success": "URL de appo {app:s} ŝanĝita al {domain:s}{path:s}",
|
"app_change_url_success": "{app:s} URL nun estas {domain:s} {path:s}",
|
||||||
"app_extraction_failed": "Malebla malkompaktigi instaldosierojn",
|
"app_extraction_failed": "Ne povis ĉerpi la instalajn dosierojn",
|
||||||
"app_id_invalid": "Nevalida apo id",
|
"app_id_invalid": "Nevalida apo ID",
|
||||||
"app_incompatible": "Apo {app} ne estas kongrua kun via YunoHost versio",
|
"app_incompatible": "Apo {app} ne estas kongrua kun via YunoHost versio",
|
||||||
"app_install_files_invalid": "Nevalidaj instaldosieroj",
|
"app_install_files_invalid": "Ĉi tiuj dosieroj ne povas esti instalitaj",
|
||||||
"app_location_already_used": "Apo {app} jam estas instalita al tiu loco ({path})",
|
"app_location_already_used": "La app '{app}' jam estas instalita en ({path})",
|
||||||
"user_updated": "Uzanto estas ĝisdatita",
|
"user_updated": "Uzantinformoj ŝanĝis",
|
||||||
"users_available": "Uzantoj disponeblaj :",
|
"users_available": "Uzantoj disponeblaj :",
|
||||||
"yunohost_already_installed": "YunoHost estas jam instalita",
|
"yunohost_already_installed": "YunoHost estas jam instalita",
|
||||||
"yunohost_ca_creation_failed": "Ne eblas krei atestan aŭtoritaton",
|
"yunohost_ca_creation_failed": "Ne povis krei atestan aŭtoritaton",
|
||||||
"yunohost_ca_creation_success": "Loka atesta aŭtoritato estas kreita.",
|
"yunohost_ca_creation_success": "Loka atestila aŭtoritato kreiĝis.",
|
||||||
"yunohost_installing": "Instalante YunoHost…",
|
"yunohost_installing": "Instalante YunoHost…",
|
||||||
"service_description_glances": "monitoras sisteminformojn de via servilo",
|
"service_description_glances": "Monitoras sistemajn informojn en via servilo",
|
||||||
"service_description_metronome": "mastrumas XMPP tujmesaĝilon kontojn",
|
"service_description_metronome": "Mastrumas XMPP tujmesaĝilon kontojn",
|
||||||
"service_description_mysql": "stokas aplikaĵojn datojn (SQL datumbazo)",
|
"service_description_mysql": "Stokas aplikaĵojn datojn (SQL datumbazo)",
|
||||||
"service_description_nginx": "servas aŭ permesas atingi ĉiujn retejojn gastigita sur via servilo",
|
"service_description_nginx": "Servas aŭ permesas atingi ĉiujn retejojn gastigita sur via servilo",
|
||||||
"service_description_nslcd": "mastrumas Yunohost uzantojn konektojn per komanda linio",
|
"service_description_nslcd": "Mastrumas Yunohost uzantojn konektojn per komanda linio",
|
||||||
"service_description_php7.0-fpm": "rulas aplikaĵojn skibita en PHP kun nginx",
|
"service_description_php7.0-fpm": "Rulas aplikaĵojn skibita en PHP kun nginx",
|
||||||
"service_description_postfix": "uzita por sendi kaj ricevi retpoŝtojn",
|
"service_description_postfix": "Uzita por sendi kaj ricevi retpoŝtojn",
|
||||||
"service_description_redis-server": "specialita datumbazo uzita por rapida datumo atingo, atendovicoj kaj komunikadoj inter programoj",
|
"service_description_redis-server": "Specialita datumbazo uzita por rapida datumo atingo, atendovicoj kaj komunikadoj inter programoj",
|
||||||
"service_description_rmilter": "kontrolas diversajn parametrojn en retpoŝtoj",
|
"service_description_rmilter": "Kontrolas diversajn parametrojn en retpoŝtoj",
|
||||||
"service_description_rspamd": "filtras trudmesaĝojn, kaj aliaj funkcioj rilate al retpoŝto",
|
"service_description_rspamd": "Filtras trudmesaĝojn, kaj aliaj funkcioj rilate al retpoŝto",
|
||||||
"service_description_slapd": "stokas uzantojn, domajnojn kaj rilatajn informojn",
|
"service_description_slapd": "Stokas uzantojn, domajnojn kaj rilatajn informojn",
|
||||||
"service_description_ssh": "permesas al vi konekti al via servilo kun fora terminalo (SSH protokolo)",
|
"service_description_ssh": "Permesas al vi konekti al via servilo kun fora terminalo (SSH protokolo)",
|
||||||
"service_description_yunohost-api": "mastrumas interagojn inter la YunoHost retinterfaco kaj la sistemo",
|
"service_description_yunohost-api": "Mastrumas interagojn inter la YunoHost retinterfaco kaj la sistemo",
|
||||||
"service_description_yunohost-firewall": "mastrumas malfermitajn kaj fermitajn konektejojn al servoj",
|
"service_description_yunohost-firewall": "Mastrumas malfermitajn kaj fermitajn konektejojn al servoj",
|
||||||
"service_disable_failed": "Neebla malaktivigi servon '{service:s}'\n\nFreŝaj protokoloj de la servo : {logs:s}",
|
"service_disable_failed": "Ne povis malŝalti la servon '{service:s}'\n\nFreŝaj protokoloj de la servo : {logs:s}",
|
||||||
"service_disabled": "Servo '{service:s}' estas malaktivigita",
|
"service_disabled": "'{service: s}' servo malŝaltita",
|
||||||
"action_invalid": "Nevalida ago « {action:s} »",
|
"action_invalid": "Nevalida ago « {action:s} »",
|
||||||
"admin_password": "Pasvorto de la estro",
|
"admin_password": "Pasvorto de la estro",
|
||||||
"admin_password_too_long": "Bonvolu elekti pasvorton pli mallonga ol 127 signoj",
|
"admin_password_too_long": "Bonvolu elekti pasvorton pli mallonga ol 127 signoj",
|
||||||
"already_up_to_date": "Neniu estas farenda! Ĉiu jam estas ĝisdata!",
|
"already_up_to_date": "Nenio por fari. Ĉio estas jam ĝisdatigita.",
|
||||||
"app_argument_choice_invalid": "Nevalida elekto por argumento « {name:s} », ĝi devas esti unu el {choices:s}",
|
"app_argument_choice_invalid": "Uzu unu el ĉi tiuj elektoj '{choices:s}' por la argumento '{name:s}'",
|
||||||
"app_argument_invalid": "Nevalida valoro por argumento « {name:s} » : {error:s}",
|
"app_argument_invalid": "Elektu validan valoron por la argumento '{name:s}': {error:s}",
|
||||||
"app_change_url_failed_nginx_reload": "Reŝargi nginx malsuksesis. Jen la eligo de « nginx -t » :\n{nginx_errors:s}"
|
"app_change_url_failed_nginx_reload": "Ne eblis reŝarĝi NGINX. Jen la eligo de 'nginx -t':\n{nginx_errors:s}",
|
||||||
|
"appslist_url_already_tracked": "Estas jam registrita aplika listo kun la URL {url:s}.",
|
||||||
|
"ask_new_admin_password": "Nova administrada pasvorto",
|
||||||
|
"app_action_broke_system": "Ĉi tiu ago ŝajne rompis ĉi tiujn gravajn servojn: {services}",
|
||||||
|
"app_unsupported_remote_type": "Malkontrolita fora speco uzita por la apliko",
|
||||||
|
"backup_archive_system_part_not_available": "Sistemo parto '{part:s}' ne haveblas en ĉi tiu rezervo",
|
||||||
|
"apps_permission_not_found": "Neniu permeso trovita por la instalitaj programoj",
|
||||||
|
"apps_permission_restoration_failed": "Donu la rajtigan permeson '{permission:s}' por restarigi {app:s}",
|
||||||
|
"backup_abstract_method": "Ĉi tiu rezerva metodo ankoraŭ efektiviĝis",
|
||||||
|
"apps_already_up_to_date": "Ĉiuj aplikoj estas jam ĝisdatigitaj",
|
||||||
|
"backup_borg_not_implemented": "La kopia metodo de Borg ankoraŭ ne estas efektivigita",
|
||||||
|
"app_upgrade_stopped": "La ĝisdatigo de ĉiuj aplikoj estis ĉesigita por eviti eblajn damaĝojn ĉar la antaŭa apliko ne sukcesis ĝisdatigi",
|
||||||
|
"app_location_unavailable": "Ĉi tiu URL aŭ ne haveblas, aŭ konfliktas kun la jam instalita (j) apliko (j):\n{apps:s}",
|
||||||
|
"backup_archive_app_not_found": "Ne povis trovi la programon '{app:s}' en la rezerva ar archiveivo",
|
||||||
|
"backup_actually_backuping": "Krei rezervan ar archiveivon el la kolektitaj dosieroj …",
|
||||||
|
"backup_method_borg_finished": "Sekurkopio en Borg finiĝis",
|
||||||
|
"appslist_removed": "{appslist:s} aplika listo forigita",
|
||||||
|
"app_change_url_no_script": "Ĉi tiu apliko '{app_name:s}' ankoraŭ ne subtenas URL-modifon. Eble vi devus altgradigi ĝin.",
|
||||||
|
"app_start_install": "Instalanta aplikon {app} …",
|
||||||
|
"backup_created": "Sekurkopio kreita",
|
||||||
|
"app_make_default_location_already_used": "Ne povas igi la aplikon '{app}' defaŭlta sur la domajno, {domain} jam uziĝas de la alia app '{other_app}'",
|
||||||
|
"backup_method_copy_finished": "Rezerva kopio finis",
|
||||||
|
"app_not_properly_removed": "{app:s} ne estis ĝuste forigita",
|
||||||
|
"backup_archive_broken_link": "Ne povis aliri la rezervan ar archiveivon (rompita ligilo al {path:s})",
|
||||||
|
"app_requirements_checking": "Kontrolante postulatajn pakaĵojn por {app} …",
|
||||||
|
"app_not_installed": "Ne povis trovi la aplikon '{app:s}' en la listo de instalitaj programoj: {all_apps}",
|
||||||
|
"app_location_install_failed": "Ne eblas instali la aplikon tie ĉar ĝi konfliktas kun la '{other_app}' jam instalita en '{other_path}'",
|
||||||
|
"ask_new_path": "Nova vojo",
|
||||||
|
"backup_custom_mount_error": "Propra rezerva metodo ne povis preterpasi la paŝon 'monto'",
|
||||||
|
"app_upgrade_app_name": "Nun ĝisdatiganta {app} …",
|
||||||
|
"app_manifest_invalid": "Io misas pri la aplika manifesto: {error}",
|
||||||
|
"backup_cleaning_failed": "Ne povis purigi la provizoran rezervan dosierujon",
|
||||||
|
"backup_invalid_archive": "Ĉi tio ne estas rezerva ar archiveivo",
|
||||||
|
"ask_current_admin_password": "Pasvorto pri aktuala administrado",
|
||||||
|
"backup_creation_failed": "Ne povis krei la rezervan ar archiveivon",
|
||||||
|
"backup_hook_unknown": "La rezerva hoko '{hoko:s}' estas nekonata",
|
||||||
|
"backup_custom_backup_error": "Propra rezerva metodo ne povis preterpasi la paŝon \"sekurkopio\"",
|
||||||
|
"ask_main_domain": "Ĉefa domajno",
|
||||||
|
"backup_method_tar_finished": "TAR-rezerva ar archiveivo kreita",
|
||||||
|
"appslist_unknown": "Aplika listo {appslist:s} nekonata.",
|
||||||
|
"ask_list_to_remove": "Listo por forigi",
|
||||||
|
"backup_cant_mount_uncompress_archive": "Ne povis munti la nekompresitan ar archiveivon kiel protektita kontraŭ skribo",
|
||||||
|
"appslist_retrieve_bad_format": "Ne povis legi la elprenitan liston {appslist:s}",
|
||||||
|
"appslist_corrupted_json": "Ne povis ŝarĝi la aplikajn listojn. Ĝi aspektas kiel {filename:s} estas damaĝita.",
|
||||||
|
"app_action_cannot_be_ran_because_required_services_down": "Ĉi tiu app postulas iujn servojn, kiuj nuntempe malleviĝas. Antaŭ ol daŭrigi, vi provu rekomenci la jenajn servojn (kaj eventuale esploru kial ili malsukcesas): {services}",
|
||||||
|
"backup_copying_to_organize_the_archive": "Kopiante {size:s} MB por organizi la ar archiveivon",
|
||||||
|
"backup_output_directory_forbidden": "Elektu malsaman elirejan dosierujon. Sekurkopioj ne povas esti kreitaj en sub-dosierujoj / bin, / boot, / dev, / ktp, / lib, / root, / run, / sbin, / sys, / usr, / var aŭ /home/yunohost.backup/archives",
|
||||||
|
"appslist_could_not_migrate": "Ne povis migri la liston de aplikoj {appslist:s}! Ne eblis analizi la URL ... La malnova cron-laboro konserviĝis en {bkp_file:s}.",
|
||||||
|
"app_requirements_failed": "Certaines exigences ne sont pas remplies pour {app}: {error}",
|
||||||
|
"backup_no_uncompress_archive_dir": "Ne ekzistas tia nekompremita arkiva dosierujo",
|
||||||
|
"password_too_simple_1": "Pasvorto devas esti almenaŭ 8 signojn longa",
|
||||||
|
"app_upgrade_failed": "Ne povis ĝisdatigi {app:s}",
|
||||||
|
"app_upgrade_several_apps": "La sekvaj apliko estos altgradigitaj: {apps}",
|
||||||
|
"backup_archive_open_failed": "Ne povis malfermi la rezervan ar archiveivon",
|
||||||
|
"ask_lastname": "Familia nomo",
|
||||||
|
"app_start_backup": "Kolekti dosierojn por esti subtenata por {app} …",
|
||||||
|
"backup_archive_name_exists": "Rezerva arkivo kun ĉi tiu nomo jam ekzistas.",
|
||||||
|
"backup_applying_method_tar": "Krei la rezervan TAR-ar archiveivon …",
|
||||||
|
"backup_method_custom_finished": "Propra rezerva metodo '{metodo:s}' finiĝis",
|
||||||
|
"appslist_retrieve_error": "Ne eblas retrovi la forajn aplikajn listojn {appslist:s}: {eraro:s}",
|
||||||
|
"app_already_installed_cant_change_url": "Ĉi tiu app estas jam instalita. La URL ne povas esti ŝanĝita nur per ĉi tiu funkcio. Rigardu \"app changeurl\" se ĝi haveblas.",
|
||||||
|
"app_not_correctly_installed": "{app:s} ŝajnas esti malĝuste instalita",
|
||||||
|
"app_removed": "{app:s} forigita",
|
||||||
|
"backup_delete_error": "Ne povis forigi '{path: s}'",
|
||||||
|
"app_package_need_update": "La pakaĵo {app} devas esti ĝisdatigita por sekvi YunoHost-ŝanĝojn",
|
||||||
|
"backup_nothings_done": "Nenio por ŝpari",
|
||||||
|
"backup_applying_method_custom": "Nomante la kutiman rezervan metodon '{metodo:s}' …",
|
||||||
|
"appslist_fetched": "Ĝisdatigita aplika listo {appslist:s} elprenita",
|
||||||
|
"backup_app_failed": "Ne eblis rezervi la programon '{app:s}'",
|
||||||
|
"app_upgrade_some_app_failed": "Iuj aplikoj ne povis esti altgradigitaj",
|
||||||
|
"app_start_remove": "Forigo de apliko {app} …",
|
||||||
|
"backup_output_directory_not_empty": "Vi devas elekti malplenan eligitan dosierujon",
|
||||||
|
"backup_archive_writing_error": "Ne povis aldoni la dosierojn '{source:s}' (nomitaj en la ar theivo '{dest:s}') por esti rezervitaj en la kunpremita arkivo '{archive:s}'",
|
||||||
|
"ask_email": "Retpoŝta adreso",
|
||||||
|
"app_start_restore": "Restarigi aplikon {app} …",
|
||||||
|
"backup_applying_method_copy": "Kopiante ĉiujn dosierojn al sekurkopio …",
|
||||||
|
"backup_couldnt_bind": "Ne povis ligi {src:s} al {dest:s}.",
|
||||||
|
"ask_password": "Pasvorto",
|
||||||
|
"app_requirements_unmeet": "Postuloj ne estas renkontitaj por {app}, la pakaĵo {pkgname} ({version}) devas esti {spec}",
|
||||||
|
"ask_firstname": "Antaŭnomo",
|
||||||
|
"backup_ask_for_copying_if_needed": "Iuj dosieroj ne povus esti pretigitaj por sekurkopio uzante la metodon, kiu evitas portempe malŝpari spacon en la sistemo. Por plenumi la sekurkopion, {size:s} MB estos provizore. Ĉu vi konsentas?",
|
||||||
|
"backup_mount_archive_for_restore": "Preparante arkivon por restarigo …",
|
||||||
|
"appslist_migrating": "Migra aplika listo {appslist:s} …",
|
||||||
|
"backup_csv_creation_failed": "Ne povis krei la CSV-dosieron bezonatan por restarigo",
|
||||||
|
"backup_archive_name_unknown": "Nekonata loka rezerva ar archiveivo nomata '{name:s}'",
|
||||||
|
"backup_applying_method_borg": "Sendado de ĉiuj dosieroj al sekurkopio en borg-rezerva deponejo …",
|
||||||
|
"app_sources_fetch_failed": "Ne povis akiri fontajn dosierojn, ĉu la URL estas ĝusta?",
|
||||||
|
"appslist_name_already_tracked": "Registrita aplika listo kun nomo {name:s} jam ekzistas.",
|
||||||
|
"ask_new_domain": "Nova domajno",
|
||||||
|
"app_unknown": "Nekonata apliko",
|
||||||
|
"app_not_upgraded": "La aplikaĵo '{failed_app}' ne ĝisdatigis, kaj pro tio la sekvaj ĝisdatigoj de aplikoj estis nuligitaj: {apps}",
|
||||||
|
"aborting": "Aborti.",
|
||||||
|
"ask_path": "Pado",
|
||||||
|
"app_upgraded": "{app:s} altgradigita",
|
||||||
|
"backup_deleted": "Rezerva forigita",
|
||||||
|
"backup_csv_addition_failed": "Ne povis aldoni dosierojn al sekurkopio en la CSV-dosiero"
|
||||||
}
|
}
|
||||||
|
|
679
locales/es.json
679
locales/es.json
|
@ -2,36 +2,36 @@
|
||||||
"action_invalid": "Acción no válida '{action:s} 1'",
|
"action_invalid": "Acción no válida '{action:s} 1'",
|
||||||
"admin_password": "Contraseña administrativa",
|
"admin_password": "Contraseña administrativa",
|
||||||
"admin_password_change_failed": "No se puede cambiar la contraseña",
|
"admin_password_change_failed": "No se puede cambiar la contraseña",
|
||||||
"admin_password_changed": "La contraseña administrativa ha sido cambiada",
|
"admin_password_changed": "La contraseña de administración ha sido cambiada",
|
||||||
"app_already_installed": "{app:s} 2 ya está instalada",
|
"app_already_installed": "{app:s} ya está instalada",
|
||||||
"app_argument_choice_invalid": "Opción no válida para el argumento '{name:s} 3', deber una de {choices:s} 4",
|
"app_argument_choice_invalid": "Use una de estas opciones «{choices:s}» para el argumento «{name:s}»",
|
||||||
"app_argument_invalid": "Valor no válido para el argumento '{name:s} 5': {error:s} 6",
|
"app_argument_invalid": "Elija un valor válido para el argumento «{name:s}»: {error:s}",
|
||||||
"app_argument_required": "Se requiere el argumento '{name:s} 7'",
|
"app_argument_required": "Se requiere el argumento '{name:s} 7'",
|
||||||
"app_extraction_failed": "No se pudieron extraer los archivos de instalación",
|
"app_extraction_failed": "No se pudieron extraer los archivos de instalación",
|
||||||
"app_id_invalid": "Id de la aplicación no válida",
|
"app_id_invalid": "ID de la aplicación no válida",
|
||||||
"app_incompatible": "La aplicación {app} no es compatible con su versión de YunoHost",
|
"app_incompatible": "La aplicación {app} no es compatible con su versión de YunoHost",
|
||||||
"app_install_files_invalid": "Los archivos de instalación no son válidos",
|
"app_install_files_invalid": "Estos archivos no se pueden instalar",
|
||||||
"app_location_already_used": "La aplicación {app} ya está instalada en esta localización ({path})",
|
"app_location_already_used": "La aplicación «{app}» ya está instalada en ({path})",
|
||||||
"app_location_install_failed": "No se puede instalar la aplicación en esta localización porque entra en conflicto con la aplicación '{other_app}' ya instalada en '{other_path}'",
|
"app_location_install_failed": "No se puede instalar la aplicación ahí porque entra en conflicto con la aplicación «{other_app}» ya instalada en «{other_path}»",
|
||||||
"app_manifest_invalid": "El manifiesto de la aplicación no es válido: {error}",
|
"app_manifest_invalid": "Algo va mal con el manifiesto de la aplicación: {error}",
|
||||||
"app_no_upgrade": "No hay aplicaciones para actualizar",
|
"app_no_upgrade": "Todas las aplicaciones están ya actualizadas",
|
||||||
"app_not_correctly_installed": "La aplicación {app:s} 8 parece estar incorrectamente instalada",
|
"app_not_correctly_installed": "La aplicación {app:s} 8 parece estar incorrectamente instalada",
|
||||||
"app_not_installed": "{app:s} 9 no está instalada",
|
"app_not_installed": "No se pudo encontrar la aplicación «{app:s}» en la lista de aplicaciones instaladas: {all_apps}",
|
||||||
"app_not_properly_removed": "La {app:s} 0 no ha sido desinstalada correctamente",
|
"app_not_properly_removed": "La {app:s} 0 no ha sido desinstalada correctamente",
|
||||||
"app_package_need_update": "El paquete de la aplicación {app} necesita ser actualizada debido a los cambios en YunoHost",
|
"app_package_need_update": "El paquete de la aplicación {app} necesita ser actualizada debido a los cambios en YunoHost",
|
||||||
"app_recent_version_required": "{:s} requiere una versión más reciente de moulinette ",
|
"app_recent_version_required": "{:s} requiere una versión más reciente de moulinette ",
|
||||||
"app_removed": "{app:s} ha sido eliminada",
|
"app_removed": "Eliminado {app:s}",
|
||||||
"app_requirements_checking": "Comprobando los paquetes requeridos por {app}...",
|
"app_requirements_checking": "Comprobando los paquetes necesarios para {app}…",
|
||||||
"app_requirements_failed": "No se cumplen los requisitos para {app}: {error}",
|
"app_requirements_failed": "No se cumplen algunos requisitos para {app}: {error}",
|
||||||
"app_requirements_unmeet": "No se cumplen los requisitos para {app}, el paquete {pkgname} ({version}) debe ser {spec}",
|
"app_requirements_unmeet": "No se cumplen los requisitos para {app}, el paquete {pkgname} ({version}) debe ser {spec}",
|
||||||
"app_sources_fetch_failed": "No se pudieron descargar los archivos del código fuente",
|
"app_sources_fetch_failed": "No se pudieron obtener los archivos con el código fuente, ¿es el URL correcto?",
|
||||||
"app_unknown": "Aplicación desconocida",
|
"app_unknown": "Aplicación desconocida",
|
||||||
"app_unsupported_remote_type": "Tipo remoto no soportado por la aplicación",
|
"app_unsupported_remote_type": "Tipo remoto no soportado por la aplicación",
|
||||||
"app_upgrade_failed": "No se pudo actualizar la aplicación {app:s}",
|
"app_upgrade_failed": "No se pudo actualizar {app:s}",
|
||||||
"app_upgraded": "{app:s} ha sido actualizada",
|
"app_upgraded": "Actualizado {app:s}",
|
||||||
"appslist_fetched": "La lista de aplicaciones {appslist:s} ha sido descargada",
|
"appslist_fetched": "Obtenida lista de aplicaciones {appslist:s} actualizada",
|
||||||
"appslist_removed": "La lista de aplicaciones {appslist:s} ha sido eliminada",
|
"appslist_removed": "Eliminada la lista de aplicaciones {appslist:s}",
|
||||||
"appslist_retrieve_error": "No se pudo recuperar la lista remota de aplicaciones {appslist:s} : {error:s}",
|
"appslist_retrieve_error": "No se puede recuperar la lista remota de aplicaciones {appslist:s}: {error:s}",
|
||||||
"appslist_unknown": "Lista de aplicaciones {appslist:s} desconocida.",
|
"appslist_unknown": "Lista de aplicaciones {appslist:s} desconocida.",
|
||||||
"ask_current_admin_password": "Contraseña administrativa actual",
|
"ask_current_admin_password": "Contraseña administrativa actual",
|
||||||
"ask_email": "Dirección de correo electrónico",
|
"ask_email": "Dirección de correo electrónico",
|
||||||
|
@ -42,43 +42,43 @@
|
||||||
"ask_new_admin_password": "Nueva contraseña administrativa",
|
"ask_new_admin_password": "Nueva contraseña administrativa",
|
||||||
"ask_password": "Contraseña",
|
"ask_password": "Contraseña",
|
||||||
"backup_action_required": "Debe especificar algo que guardar",
|
"backup_action_required": "Debe especificar algo que guardar",
|
||||||
"backup_app_failed": "No es posible realizar la copia de seguridad de la aplicación '{app:s}'",
|
"backup_app_failed": "No se pudo respaldar la aplicación «{app:s}»",
|
||||||
"backup_archive_app_not_found": "La aplicación '{app:s}' no ha sido encontrada en la copia de seguridad",
|
"backup_archive_app_not_found": "No se pudo encontrar la aplicación «{app:s}» en el archivo de respaldo",
|
||||||
"backup_archive_hook_not_exec": "El hook {hook:s} no ha sido ejecutado en esta copia de seguridad",
|
"backup_archive_hook_not_exec": "El hook {hook:s} no ha sido ejecutado en esta copia de seguridad",
|
||||||
"backup_archive_name_exists": "Ya existe una copia de seguridad con ese nombre",
|
"backup_archive_name_exists": "Ya existe un archivo de respaldo con este nombre.",
|
||||||
"backup_archive_name_unknown": "Copia de seguridad local desconocida '{name:s}'",
|
"backup_archive_name_unknown": "Copia de seguridad local desconocida '{name:s}'",
|
||||||
"backup_archive_open_failed": "No se pudo abrir la copia de seguridad",
|
"backup_archive_open_failed": "No se pudo abrir el archivo de respaldo",
|
||||||
"backup_cleaning_failed": "No se puede limpiar el directorio temporal de copias de seguridad",
|
"backup_cleaning_failed": "No se pudo limpiar la carpeta de respaldo temporal",
|
||||||
"backup_created": "Se ha creado la copia de seguridad",
|
"backup_created": "Se ha creado la copia de seguridad",
|
||||||
"backup_creating_archive": "Creando copia de seguridad...",
|
"backup_creating_archive": "Creando el archivo de copia de seguridad…",
|
||||||
"backup_creation_failed": "No se pudo crear la copia de seguridad",
|
"backup_creation_failed": "No se pudo crear el archivo de respaldo",
|
||||||
"backup_delete_error": "No se puede eliminar '{path:s}'",
|
"backup_delete_error": "No se pudo eliminar «{path:s}»",
|
||||||
"backup_deleted": "La copia de seguridad ha sido eliminada",
|
"backup_deleted": "Eliminada la copia de seguridad",
|
||||||
"backup_extracting_archive": "Extrayendo la copia de seguridad...",
|
"backup_extracting_archive": "Extrayendo el archivo de respaldo…",
|
||||||
"backup_hook_unknown": "Hook de copia de seguridad desconocido '{hook:s}'",
|
"backup_hook_unknown": "El gancho «{hook:s}» de la copia de seguridad es desconocido",
|
||||||
"backup_invalid_archive": "La copia de seguridad no es válida",
|
"backup_invalid_archive": "Esto no es un archivo de respaldo",
|
||||||
"backup_nothings_done": "No hay nada que guardar",
|
"backup_nothings_done": "Nada que guardar",
|
||||||
"backup_output_directory_forbidden": "Directorio de salida no permitido. Las copias de seguridad no pueden ser creadas en /bin, /boot, /dev, /etc, /lib, /root, /run, /sbin, /sys, /usr, /var o en los subdirectorios de /home/yunohost.backup/archives",
|
"backup_output_directory_forbidden": "Elija un directorio de salida diferente. No se pueden crear copias de seguridad en las subcarpetas de /bin, /boot, /dev, /etc, /lib, /root, /run, /sbin, /sys, /usr, /var o /home/yunohost.backup/archives",
|
||||||
"backup_output_directory_not_empty": "El directorio de salida no está vacío",
|
"backup_output_directory_not_empty": "Debe elegir un directorio de salida vacío",
|
||||||
"backup_output_directory_required": "Debe proporcionar un directorio de salida para la copia de seguridad",
|
"backup_output_directory_required": "Debe proporcionar un directorio de salida para la copia de seguridad",
|
||||||
"backup_running_app_script": "Ejecutando la script de copia de seguridad de la aplicación '{app:s}'...",
|
"backup_running_app_script": "Ejecutando la script de copia de seguridad de la aplicación '{app:s}'...",
|
||||||
"backup_running_hooks": "Ejecutando los hooks de copia de seguridad...",
|
"backup_running_hooks": "Ejecutando los hooks de copia de seguridad...",
|
||||||
"custom_app_url_required": "Debe proporcionar una URL para actualizar su aplicación personalizada {app:s}",
|
"custom_app_url_required": "Debe proporcionar una URL para actualizar su aplicación personalizada {app:s}",
|
||||||
"custom_appslist_name_required": "Debe proporcionar un nombre para su lista de aplicaciones personalizadas",
|
"custom_appslist_name_required": "Debe proporcionar un nombre para su lista de aplicaciones personalizadas",
|
||||||
"diagnosis_debian_version_error": "No se puede obtener la versión de Debian: {error}",
|
"diagnosis_debian_version_error": "No se pudo obtener la versión de Debian: {error}",
|
||||||
"diagnosis_kernel_version_error": "No se puede obtener la versión del kernel: {error}",
|
"diagnosis_kernel_version_error": "No se pudo obtener la versión del núcleo: {error}",
|
||||||
"diagnosis_monitor_disk_error": "No se pueden monitorizar los discos: {error}",
|
"diagnosis_monitor_disk_error": "No se pudieron monitorizar los discos: {error}",
|
||||||
"diagnosis_monitor_network_error": "No se puede monitorizar la red: {error}",
|
"diagnosis_monitor_network_error": "No se pudo monitorizar la red: {error}",
|
||||||
"diagnosis_monitor_system_error": "No se puede monitorizar el sistema: {error}",
|
"diagnosis_monitor_system_error": "No se pudo monitorizar el sistema: {error}",
|
||||||
"diagnosis_no_apps": "Aplicación no instalada",
|
"diagnosis_no_apps": "Aplicación no instalada",
|
||||||
"dnsmasq_isnt_installed": "Parece que dnsmasq no está instalado, ejecute 'apt-get remove bind9 && apt-get install dnsmasq'",
|
"dnsmasq_isnt_installed": "Parece que dnsmasq no está instalado, ejecute «apt-get remove bind9 && apt-get install it»",
|
||||||
"domain_cert_gen_failed": "No se pudo crear el certificado",
|
"domain_cert_gen_failed": "No se pudo generar el certificado",
|
||||||
"domain_created": "El dominio ha sido creado",
|
"domain_created": "Dominio creado",
|
||||||
"domain_creation_failed": "No se pudo crear el dominio",
|
"domain_creation_failed": "No se pudo crear el dominio",
|
||||||
"domain_deleted": "El dominio ha sido eliminado",
|
"domain_deleted": "Dominio eliminado",
|
||||||
"domain_deletion_failed": "No se pudo borrar el dominio",
|
"domain_deletion_failed": "No se pudo eliminar el dominio",
|
||||||
"domain_dyndns_already_subscribed": "Ya está suscrito a un dominio DynDNS",
|
"domain_dyndns_already_subscribed": "Ya se ha suscrito a un dominio de DynDNS",
|
||||||
"domain_dyndns_invalid": "Dominio no válido para usar con DynDNS",
|
"domain_dyndns_invalid": "Este dominio no se puede usar con DynDNS",
|
||||||
"domain_dyndns_root_unknown": "Dominio raíz de DynDNS desconocido",
|
"domain_dyndns_root_unknown": "Dominio raíz de DynDNS desconocido",
|
||||||
"domain_exists": "El dominio ya existe",
|
"domain_exists": "El dominio ya existe",
|
||||||
"domain_uninstall_app_first": "Una o más aplicaciones están instaladas en este dominio. Debe desinstalarlas antes de eliminar el dominio",
|
"domain_uninstall_app_first": "Una o más aplicaciones están instaladas en este dominio. Debe desinstalarlas antes de eliminar el dominio",
|
||||||
|
@ -86,64 +86,64 @@
|
||||||
"domain_zone_exists": "El archivo de zona del DNS ya existe",
|
"domain_zone_exists": "El archivo de zona del DNS ya existe",
|
||||||
"domain_zone_not_found": "No se ha encontrado el archivo de zona del DNS para el dominio [:s]",
|
"domain_zone_not_found": "No se ha encontrado el archivo de zona del DNS para el dominio [:s]",
|
||||||
"done": "Hecho.",
|
"done": "Hecho.",
|
||||||
"downloading": "Descargando...",
|
"downloading": "Descargando…",
|
||||||
"dyndns_cron_installed": "La tarea cron para DynDNS ha sido instalada",
|
"dyndns_cron_installed": "Creado el trabajo de cron de DynDNS",
|
||||||
"dyndns_cron_remove_failed": "No se pudo eliminar la tarea cron DynDNS",
|
"dyndns_cron_remove_failed": "No se pudo eliminar el trabajo de cron de DynDNS por: {error}",
|
||||||
"dyndns_cron_removed": "La tarea cron DynDNS ha sido eliminada",
|
"dyndns_cron_removed": "Eliminado el trabajo de cron de DynDNS",
|
||||||
"dyndns_ip_update_failed": "No se pudo actualizar la dirección IP en el DynDNS",
|
"dyndns_ip_update_failed": "No se pudo actualizar la dirección IP en DynDNS",
|
||||||
"dyndns_ip_updated": "Su dirección IP ha sido actualizada en el DynDNS",
|
"dyndns_ip_updated": "Actualizada su IP en DynDNS",
|
||||||
"dyndns_key_generating": "Se está generando la clave del DNS. Esto podría tardar unos minutos...",
|
"dyndns_key_generating": "Generando la clave del DNS. Esto podría tardar un rato.",
|
||||||
"dyndns_key_not_found": "No se ha encontrado la clave DNS para el dominio",
|
"dyndns_key_not_found": "No se ha encontrado la clave DNS para el dominio",
|
||||||
"dyndns_no_domain_registered": "Ningún dominio ha sido registrado con DynDNS",
|
"dyndns_no_domain_registered": "Ningún dominio registrado con DynDNS",
|
||||||
"dyndns_registered": "El dominio DynDNS ha sido registrado",
|
"dyndns_registered": "Registrado dominio de DynDNS",
|
||||||
"dyndns_registration_failed": "No se pudo registrar el dominio DynDNS: {error:s}",
|
"dyndns_registration_failed": "No se pudo registrar el dominio de DynDNS: {error:s}",
|
||||||
"dyndns_unavailable": "El dominio {domain:s} no está disponible.",
|
"dyndns_unavailable": "El dominio «{domain:s}» no está disponible.",
|
||||||
"executing_command": "Ejecutando el comando '{command:s}'...",
|
"executing_command": "Ejecutando la orden «{command:s}»…",
|
||||||
"executing_script": "Ejecutando el script '{script:s}'...",
|
"executing_script": "Ejecutando el guión «{script:s}»…",
|
||||||
"extracting": "Extrayendo...",
|
"extracting": "Extrayendo…",
|
||||||
"field_invalid": "Campo no válido '{:s}'",
|
"field_invalid": "Campo no válido '{:s}'",
|
||||||
"firewall_reload_failed": "No se pudo recargar el cortafuegos",
|
"firewall_reload_failed": "No se pudo recargar el cortafuegos",
|
||||||
"firewall_reloaded": "El cortafuegos ha sido recargado",
|
"firewall_reloaded": "Cortafuegos recargado",
|
||||||
"firewall_rules_cmd_failed": "No se pudieron aplicar algunas reglas del cortafuegos. Para más información consulte el registro.",
|
"firewall_rules_cmd_failed": "Algunas órdenes de las reglas del cortafuegos han fallado. Más información en el registro.",
|
||||||
"format_datetime_short": "%d/%m/%Y %I:%M %p",
|
"format_datetime_short": "%d/%m/%Y %I:%M %p",
|
||||||
"hook_argument_missing": "Falta un parámetro '{:s}'",
|
"hook_argument_missing": "Falta un parámetro '{:s}'",
|
||||||
"hook_choice_invalid": "Selección inválida '{:s}'",
|
"hook_choice_invalid": "Selección inválida '{:s}'",
|
||||||
"hook_exec_failed": "No se puede ejecutar el script: {path:s}",
|
"hook_exec_failed": "No se pudo ejecutar el guión: {path:s}",
|
||||||
"hook_exec_not_terminated": "La ejecución del script no ha terminado: {path:s}",
|
"hook_exec_not_terminated": "El guión no terminó correctamente:{path:s}",
|
||||||
"hook_list_by_invalid": "Enumerar los hooks por validez",
|
"hook_list_by_invalid": "Esta propiedad no se puede usar para enumerar ganchos («hooks»)",
|
||||||
"hook_name_unknown": "Nombre de hook desconocido '{name:s}'",
|
"hook_name_unknown": "Nombre de hook desconocido '{name:s}'",
|
||||||
"installation_complete": "Instalación finalizada",
|
"installation_complete": "Instalación finalizada",
|
||||||
"installation_failed": "No se pudo realizar la instalación",
|
"installation_failed": "Algo ha ido mal con la instalación",
|
||||||
"ip6tables_unavailable": "No puede modificar ip6tables aquí. O bien está en un 'container' o su kernel no soporta esta opción",
|
"ip6tables_unavailable": "No puede modificar ip6tables aquí. O bien está en un 'container' o su kernel no soporta esta opción",
|
||||||
"iptables_unavailable": "No puede modificar iptables aquí. O bien está en un 'container' o su kernel no soporta esta opción",
|
"iptables_unavailable": "No puede modificar iptables aquí. O bien está en un 'container' o su kernel no soporta esta opción",
|
||||||
"ldap_initialized": "Se ha inicializado LDAP",
|
"ldap_initialized": "Inicializado LDAP",
|
||||||
"license_undefined": "indefinido",
|
"license_undefined": "indefinido",
|
||||||
"mail_alias_remove_failed": "No se pudo eliminar el alias de correo '{mail:s}'",
|
"mail_alias_remove_failed": "No se pudo eliminar el alias de correo «{mail:s}»",
|
||||||
"mail_domain_unknown": "El dominio de correo '{domain:s}' es desconocido",
|
"mail_domain_unknown": "Dirección de correo desconocida para el dominio «{domain:s}»",
|
||||||
"mail_forward_remove_failed": "No se pudo eliminar el reenvío de correo '{mail:s}'",
|
"mail_forward_remove_failed": "No se pudo eliminar el reenvío de correo «{mail:s}»",
|
||||||
"maindomain_change_failed": "No se pudo cambiar el dominio principal",
|
"maindomain_change_failed": "No se pudo cambiar el dominio principal",
|
||||||
"maindomain_changed": "Se ha cambiado el dominio principal",
|
"maindomain_changed": "El dominio principal ha cambiado",
|
||||||
"monitor_disabled": "La monitorización del sistema ha sido deshabilitada",
|
"monitor_disabled": "Desactivada la monitorización del servidor",
|
||||||
"monitor_enabled": "La monitorización del sistema ha sido habilitada",
|
"monitor_enabled": "Activada la monitorización del servidor",
|
||||||
"monitor_glances_con_failed": "No se pudo conectar al servidor Glances",
|
"monitor_glances_con_failed": "No se pudo conectar al servidor de Glances",
|
||||||
"monitor_not_enabled": "La monitorización del sistema no está habilitada",
|
"monitor_not_enabled": "La monitorización del servidor está apagada",
|
||||||
"monitor_period_invalid": "Período de tiempo no válido",
|
"monitor_period_invalid": "Período de tiempo no válido",
|
||||||
"monitor_stats_file_not_found": "No se pudo encontrar el archivo de estadísticas",
|
"monitor_stats_file_not_found": "No se pudo encontrar el archivo de estadísticas",
|
||||||
"monitor_stats_no_update": "No hay estadísticas de monitorización para actualizar",
|
"monitor_stats_no_update": "No hay estadísticas de monitorización para actualizar",
|
||||||
"monitor_stats_period_unavailable": "No hay estadísticas para el período",
|
"monitor_stats_period_unavailable": "No hay estadísticas para el período",
|
||||||
"mountpoint_unknown": "Punto de montaje desconocido",
|
"mountpoint_unknown": "Punto de montaje desconocido",
|
||||||
"mysql_db_creation_failed": "No se pudo crear la base de datos MySQL",
|
"mysql_db_creation_failed": "Error al crear la base de datos de MySQL",
|
||||||
"mysql_db_init_failed": "No se pudo iniciar la base de datos MySQL",
|
"mysql_db_init_failed": "Error al iniciar la base de datos de MySQL",
|
||||||
"mysql_db_initialized": "La base de datos MySQL ha sido inicializada",
|
"mysql_db_initialized": "Inicializada la base de datos MySQL",
|
||||||
"network_check_mx_ko": "El registro DNS MX no está configurado",
|
"network_check_mx_ko": "El registro DNS MX no está configurado",
|
||||||
"network_check_smtp_ko": "El puerto 25 (SMTP) para el correo saliente parece estar bloqueado por su red",
|
"network_check_smtp_ko": "El correo saliente (SMTP puerto 25) parece estar bloqueado por su red",
|
||||||
"network_check_smtp_ok": "El puerto de salida del correo electrónico (25, SMTP) no está bloqueado",
|
"network_check_smtp_ok": "El correo saliente (SMTP puerto 25) no está bloqueado",
|
||||||
"new_domain_required": "Debe proporcionar el nuevo dominio principal",
|
"new_domain_required": "Debe proporcionar el nuevo dominio principal",
|
||||||
"no_appslist_found": "No se ha encontrado ninguna lista de aplicaciones",
|
"no_appslist_found": "No se ha encontrado ninguna lista de aplicaciones",
|
||||||
"no_internet_connection": "El servidor no está conectado a Internet",
|
"no_internet_connection": "El servidor no está conectado a Internet",
|
||||||
"no_ipv6_connectivity": "La conexión por IPv6 no está disponible",
|
"no_ipv6_connectivity": "La conexión por IPv6 no está disponible",
|
||||||
"no_restore_script": "No se ha encontrado un script de restauración para la aplicación '{app:s}'",
|
"no_restore_script": "No se ha encontrado un script de restauración para la aplicación '{app:s}'",
|
||||||
"not_enough_disk_space": "No hay suficiente espacio en '{path:s}'",
|
"not_enough_disk_space": "No hay espacio libre suficiente en «{path:s}»",
|
||||||
"package_not_installed": "El paquete '{pkgname}' no está instalado",
|
"package_not_installed": "El paquete '{pkgname}' no está instalado",
|
||||||
"package_unexpected_error": "Ha ocurrido un error inesperado procesando el paquete '{pkgname}'",
|
"package_unexpected_error": "Ha ocurrido un error inesperado procesando el paquete '{pkgname}'",
|
||||||
"package_unknown": "Paquete desconocido '{pkgname}'",
|
"package_unknown": "Paquete desconocido '{pkgname}'",
|
||||||
|
@ -151,13 +151,13 @@
|
||||||
"packages_upgrade_critical_later": "Los paquetes críticos ({packages:s}) serán actualizados más tarde",
|
"packages_upgrade_critical_later": "Los paquetes críticos ({packages:s}) serán actualizados más tarde",
|
||||||
"packages_upgrade_failed": "No se pudieron actualizar todos los paquetes",
|
"packages_upgrade_failed": "No se pudieron actualizar todos los paquetes",
|
||||||
"path_removal_failed": "No se pudo eliminar la ruta {:s}",
|
"path_removal_failed": "No se pudo eliminar la ruta {:s}",
|
||||||
"pattern_backup_archive_name": "Debe ser un nombre de archivo válido con un máximo de 30 caracteres, solo se admiten caracteres alfanuméricos, los guiones -_ y el punto",
|
"pattern_backup_archive_name": "Debe ser un nombre de archivo válido con un máximo de 30 caracteres, solo se admiten caracteres alfanuméricos y los caracteres -_. (guiones y punto)",
|
||||||
"pattern_domain": "El nombre de dominio debe ser válido (por ejemplo mi-dominio.org)",
|
"pattern_domain": "El nombre de dominio debe ser válido (por ejemplo mi-dominio.org)",
|
||||||
"pattern_email": "Debe ser una dirección de correo electrónico válida (por ejemplo, alguien@dominio.org)",
|
"pattern_email": "Debe ser una dirección de correo electrónico válida (por ejemplo, alguien@dominio.org)",
|
||||||
"pattern_firstname": "Debe ser un nombre válido",
|
"pattern_firstname": "Debe ser un nombre válido",
|
||||||
"pattern_lastname": "Debe ser un apellido válido",
|
"pattern_lastname": "Debe ser un apellido válido",
|
||||||
"pattern_listname": "Solo se pueden usar caracteres alfanuméricos y el guion bajo",
|
"pattern_listname": "Solo se pueden usar caracteres alfanuméricos y el guion bajo",
|
||||||
"pattern_mailbox_quota": "El tamaño de cuota debe tener uno de los sufijos b/k/M/G/T. Usar 0 para cuota ilimitada",
|
"pattern_mailbox_quota": "Debe ser un tamaño con el sufijo «b/k/M/G/T» o «0» para no tener una cuota",
|
||||||
"pattern_password": "Debe contener al menos 3 caracteres",
|
"pattern_password": "Debe contener al menos 3 caracteres",
|
||||||
"pattern_port": "Debe ser un número de puerto válido (es decir, entre 0-65535)",
|
"pattern_port": "Debe ser un número de puerto válido (es decir, entre 0-65535)",
|
||||||
"pattern_port_or_range": "Debe ser un número de puerto válido (es decir entre 0-65535) o un intervalo de puertos (por ejemplo 100:200)",
|
"pattern_port_or_range": "Debe ser un número de puerto válido (es decir entre 0-65535) o un intervalo de puertos (por ejemplo 100:200)",
|
||||||
|
@ -167,22 +167,22 @@
|
||||||
"port_already_opened": "El puerto {port:d} ya está abierto para las conexiones {ip_version:s}",
|
"port_already_opened": "El puerto {port:d} ya está abierto para las conexiones {ip_version:s}",
|
||||||
"port_available": "El puerto {port:d} está disponible",
|
"port_available": "El puerto {port:d} está disponible",
|
||||||
"port_unavailable": "El puerto {port:d} no está disponible",
|
"port_unavailable": "El puerto {port:d} no está disponible",
|
||||||
"restore_action_required": "Debe especificar algo que restaurar",
|
"restore_action_required": "Debe escoger algo que restaurar",
|
||||||
"restore_already_installed_app": "Una aplicación con la id '{app:s}' ya está instalada",
|
"restore_already_installed_app": "Una aplicación con el ID «{app:s}» ya está instalada",
|
||||||
"restore_app_failed": "No se puede restaurar la aplicación '{app:s}'",
|
"restore_app_failed": "No se pudo restaurar la aplicación «{app:s}»",
|
||||||
"restore_cleaning_failed": "No se puede limpiar el directorio temporal de restauración",
|
"restore_cleaning_failed": "No se pudo limpiar el directorio temporal de restauración",
|
||||||
"restore_complete": "Restauración finalizada",
|
"restore_complete": "Restaurada",
|
||||||
"restore_confirm_yunohost_installed": "¿Realmente desea restaurar un sistema ya instalado? [{answers:s}]",
|
"restore_confirm_yunohost_installed": "¿Realmente desea restaurar un sistema ya instalado? [{answers:s}]",
|
||||||
"restore_failed": "No se pudo restaurar el sistema",
|
"restore_failed": "No se pudo restaurar el sistema",
|
||||||
"restore_hook_unavailable": "El script de restauración '{part:s}' no está disponible en su sistema y tampoco en el archivo",
|
"restore_hook_unavailable": "El guión de restauración para «{part:s}» no está disponible en su sistema y tampoco en el archivo",
|
||||||
"restore_nothings_done": "No se ha restaurado nada",
|
"restore_nothings_done": "No se ha restaurado nada",
|
||||||
"restore_running_app_script": "Ejecutando el script de restauración de la aplicación '{app:s}'...",
|
"restore_running_app_script": "Restaurando la aplicación «{app:s}»…",
|
||||||
"restore_running_hooks": "Ejecutando los hooks de restauración...",
|
"restore_running_hooks": "Ejecutando los ganchos de restauración…",
|
||||||
"service_add_failed": "No se pudo añadir el servicio '{service:s}'",
|
"service_add_failed": "No se pudo añadir el servicio «{service:s}»",
|
||||||
"service_added": "Servicio '{service:s}' ha sido añadido",
|
"service_added": "Añadido el servicio «{service:s}»",
|
||||||
"service_already_started": "El servicio '{service:s}' ya ha sido inicializado",
|
"service_already_started": "El servicio «{service:s}» ya ha sido iniciado",
|
||||||
"service_already_stopped": "El servicio '{service:s}' ya ha sido detenido",
|
"service_already_stopped": "El servicio «{service:s}» ya ha sido detenido",
|
||||||
"service_cmd_exec_failed": "No se pudo ejecutar el comando '{command:s}'",
|
"service_cmd_exec_failed": "No se pudo ejecutar la orden «{command:s}»",
|
||||||
"service_conf_file_backed_up": "Se ha realizado una copia de seguridad del archivo de configuración '{conf}' en '{backup}'",
|
"service_conf_file_backed_up": "Se ha realizado una copia de seguridad del archivo de configuración '{conf}' en '{backup}'",
|
||||||
"service_conf_file_copy_failed": "No se puede copiar el nuevo archivo de configuración '{new}' a {conf}",
|
"service_conf_file_copy_failed": "No se puede copiar el nuevo archivo de configuración '{new}' a {conf}",
|
||||||
"service_conf_file_manually_modified": "El archivo de configuración '{conf}' ha sido modificado manualmente y no será actualizado",
|
"service_conf_file_manually_modified": "El archivo de configuración '{conf}' ha sido modificado manualmente y no será actualizado",
|
||||||
|
@ -194,134 +194,419 @@
|
||||||
"service_conf_up_to_date": "La configuración del servicio '{service}' ya está actualizada",
|
"service_conf_up_to_date": "La configuración del servicio '{service}' ya está actualizada",
|
||||||
"service_conf_updated": "La configuración ha sido actualizada para el servicio '{service}'",
|
"service_conf_updated": "La configuración ha sido actualizada para el servicio '{service}'",
|
||||||
"service_conf_would_be_updated": "La configuración podría haber sido actualizada para el servicio '{service} 1'",
|
"service_conf_would_be_updated": "La configuración podría haber sido actualizada para el servicio '{service} 1'",
|
||||||
"service_disable_failed": "No se pudo deshabilitar el servicio '{service:s}'",
|
"service_disable_failed": "No se pudo desactivar el servicio «{service:s}»\n\nRegistro de servicios recientes:{logs:s}",
|
||||||
"service_disabled": "El servicio '{service:s}' ha sido deshabilitado",
|
"service_disabled": "Desactivado el servicio «{service:s}»",
|
||||||
"service_enable_failed": "No se pudo habilitar el servicio '{service:s}'",
|
"service_enable_failed": "No se pudo activar el servicio «{service:s}»\n\nRegistro de servicios recientes:{logs:s}",
|
||||||
"service_enabled": "El servicio '{service:s}' ha sido habilitado",
|
"service_enabled": "Activado el servicio «{service:s}»",
|
||||||
"service_no_log": "No hay ningún registro para el servicio '{service:s}'",
|
"service_no_log": "No hay ningún registro para el servicio '{service:s}'",
|
||||||
"service_regenconf_dry_pending_applying": "Comprobando configuración pendiente que podría haber sido aplicada al servicio '{service}'...",
|
"service_regenconf_dry_pending_applying": "Comprobando configuración pendiente que podría haber sido aplicada al servicio '{service}'...",
|
||||||
"service_regenconf_failed": "No se puede regenerar la configuración para el servicio(s): {services}",
|
"service_regenconf_failed": "No se puede regenerar la configuración para el servicio(s): {services}",
|
||||||
"service_regenconf_pending_applying": "Aplicando la configuración pendiente para el servicio '{service}'...",
|
"service_regenconf_pending_applying": "Aplicando la configuración pendiente para el servicio '{service}'...",
|
||||||
"service_remove_failed": "No se pudo desinstalar el servicio '{service:s}'",
|
"service_remove_failed": "No se pudo eliminar el servicio «{service:s}»",
|
||||||
"service_removed": "El servicio '{service:s}' ha sido desinstalado",
|
"service_removed": "Eliminado el servicio «{service:s}»",
|
||||||
"service_start_failed": "No se pudo iniciar el servicio '{service:s}'\n\nRegistros de servicio recientes : {logs:s}",
|
"service_start_failed": "No se pudo iniciar el servicio «{service:s}»\n\nRegistro de servicios recientes:{logs:s}",
|
||||||
"service_started": "El servicio '{service:s}' ha sido iniciado",
|
"service_started": "Iniciado el servicio «{service:s}»",
|
||||||
"service_status_failed": "No se pudo determinar el estado del servicio '{service:s}'",
|
"service_status_failed": "No se pudo determinar el estado del servicio «{service:s}»",
|
||||||
"service_stop_failed": "No se pudo detener el servicio '{service:s}'",
|
"service_stop_failed": "No se pudo detener el servicio «{service:s}»\n\nRegistro de servicios recientes:{logs:s}",
|
||||||
"service_stopped": "El servicio '{service:s}' ha sido detenido",
|
"service_stopped": "Detenido el servicio «{service:s}»",
|
||||||
"service_unknown": "Servicio desconocido '{service:s}'",
|
"service_unknown": "Servicio desconocido '{service:s}'",
|
||||||
"ssowat_conf_generated": "Se ha generado la configuración de SSOwat",
|
"ssowat_conf_generated": "Generada la configuración de SSOwat",
|
||||||
"ssowat_conf_updated": "La configuración de SSOwat ha sido actualizada",
|
"ssowat_conf_updated": "Actualizada la configuración de SSOwat",
|
||||||
"system_upgraded": "El sistema ha sido actualizado",
|
"system_upgraded": "Sistema actualizado",
|
||||||
"system_username_exists": "El nombre de usuario ya existe en el sistema",
|
"system_username_exists": "El nombre de usuario ya existe en la lista de usuarios del sistema",
|
||||||
"unbackup_app": "La aplicación '{app:s}' no se guardará",
|
"unbackup_app": "La aplicación '{app:s}' no se guardará",
|
||||||
"unexpected_error": "Ha ocurrido un error inesperado",
|
"unexpected_error": "Algo inesperado salió mal: {error}",
|
||||||
"unit_unknown": "Unidad desconocida '{unit:s}'",
|
"unit_unknown": "Unidad desconocida '{unit:s}'",
|
||||||
"unlimit": "Sin cuota",
|
"unlimit": "Sin cuota",
|
||||||
"unrestore_app": "La aplicación '{app:s}' no será restaurada",
|
"unrestore_app": "La aplicación '{app:s}' no será restaurada",
|
||||||
"update_cache_failed": "No se pudo actualizar la caché de APT",
|
"update_cache_failed": "No se pudo actualizar la caché de APT",
|
||||||
"updating_apt_cache": "Actualizando lista de paquetes disponibles...",
|
"updating_apt_cache": "Obteniendo las actualizaciones disponibles para los paquetes del sistema…",
|
||||||
"upgrade_complete": "Actualización finalizada",
|
"upgrade_complete": "Actualización finalizada",
|
||||||
"upgrading_packages": "Actualizando paquetes...",
|
"upgrading_packages": "Actualizando paquetes…",
|
||||||
"upnp_dev_not_found": "No se encontró ningún dispositivo UPnP",
|
"upnp_dev_not_found": "No se encontró ningún dispositivo UPnP",
|
||||||
"upnp_disabled": "UPnP ha sido deshabilitado",
|
"upnp_disabled": "UPnP desactivado",
|
||||||
"upnp_enabled": "UPnP ha sido habilitado",
|
"upnp_enabled": "UPnP activado",
|
||||||
"upnp_port_open_failed": "No se pudieron abrir puertos por UPnP",
|
"upnp_port_open_failed": "No se pudo abrir el puerto vía UPnP",
|
||||||
"user_created": "El usuario ha sido creado",
|
"user_created": "Usuario creado",
|
||||||
"user_creation_failed": "No se pudo crear el usuario",
|
"user_creation_failed": "No se pudo crear el usuario",
|
||||||
"user_deleted": "El usuario ha sido eliminado",
|
"user_deleted": "Usuario eliminado",
|
||||||
"user_deletion_failed": "No se pudo eliminar el usuario",
|
"user_deletion_failed": "No se pudo eliminar el usuario",
|
||||||
"user_home_creation_failed": "No se puede crear el directorio de usuario 'home'",
|
"user_home_creation_failed": "No se pudo crear la carpeta «home» para el usuario",
|
||||||
"user_info_failed": "No se pudo extraer la información del usuario",
|
"user_info_failed": "No se pudo obtener la información del usuario",
|
||||||
"user_unknown": "Usuario desconocido: {user:s}",
|
"user_unknown": "Usuario desconocido: {user:s}",
|
||||||
"user_update_failed": "No se pudo actualizar el usuario",
|
"user_update_failed": "No se pudo cambiar la información del usuario",
|
||||||
"user_updated": "El usuario ha sido actualizado",
|
"user_updated": "Cambiada la información de usuario",
|
||||||
"yunohost_already_installed": "YunoHost ya está instalado",
|
"yunohost_already_installed": "YunoHost ya está instalado",
|
||||||
"yunohost_ca_creation_failed": "No se pudo crear el certificado de autoridad",
|
"yunohost_ca_creation_failed": "No se pudo crear la autoridad de certificación",
|
||||||
"yunohost_configured": "YunoHost ha sido configurado",
|
"yunohost_configured": "YunoHost está configurado",
|
||||||
"yunohost_installing": "Instalando YunoHost...",
|
"yunohost_installing": "Instalando YunoHost…",
|
||||||
"yunohost_not_installed": "YunoHost no está instalado o ha habido errores en la instalación. Ejecute 'yunohost tools postinstall'",
|
"yunohost_not_installed": "YunoHost no está correctamente instalado. Ejecute «yunohost tools postinstall»",
|
||||||
"ldap_init_failed_to_create_admin": "La inicialización de LDAP falló al crear el usuario administrador",
|
"ldap_init_failed_to_create_admin": "La inicialización de LDAP no pudo crear el usuario «admin»",
|
||||||
"mailbox_used_space_dovecot_down": "El servicio de e-mail Dovecot debe estar funcionando si desea obtener el espacio utilizado por el buzón de correo",
|
"mailbox_used_space_dovecot_down": "El servicio de correo Dovecot debe estar funcionando si desea obtener el espacio usado por el buzón de correo",
|
||||||
"ssowat_persistent_conf_read_error": "Error al leer la configuración persistente de SSOwat: {error:s}. Edite el archivo /etc/ssowat/conf.json.persistent para corregir la sintaxis de JSON",
|
"ssowat_persistent_conf_read_error": "No se pudo leer la configuración persistente de SSOwat: {error:s}. Edite el archivo /etc/ssowat/conf.json.persistent para corregir la sintaxis de JSON",
|
||||||
"ssowat_persistent_conf_write_error": "Error al guardar la configuración persistente de SSOwat: {error:s}. Edite el archivo /etc/ssowat/conf.json.persistent para corregir la sintaxis de JSON",
|
"ssowat_persistent_conf_write_error": "No se pudo guardar la configuración persistente de SSOwat: {error:s}. Edite el archivo /etc/ssowat/conf.json.persistent para corregir la sintaxis de JSON",
|
||||||
"certmanager_attempt_to_replace_valid_cert": "Está intentando sobrescribir un certificado correcto y válido para el dominio {domain:s}! (Use --force para omitir este mensaje)",
|
"certmanager_attempt_to_replace_valid_cert": "Está intentando sobrescribir un certificado correcto y válido para el dominio {domain:s}! (Use --force para omitir este mensaje)",
|
||||||
"certmanager_domain_unknown": "Dominio desconocido {domain:s}",
|
"certmanager_domain_unknown": "Dominio desconocido «{domain:s}»",
|
||||||
"certmanager_domain_cert_not_selfsigned": "El certificado para el dominio {domain:s} no es un certificado autofirmado. ¿Está seguro de que quiere reemplazarlo? (Use --force para omitir este mensaje)",
|
"certmanager_domain_cert_not_selfsigned": "El certificado para el dominio {domain:s} no es un certificado autofirmado. ¿Está seguro de que quiere reemplazarlo? (Use «--force» para hacerlo)",
|
||||||
"certmanager_certificate_fetching_or_enabling_failed": "Parece que al habilitar el nuevo certificado para el dominio {domain:s} ha fallado de alguna manera...",
|
"certmanager_certificate_fetching_or_enabling_failed": "El intento de usar el nuevo certificado para {domain:s} no ha funcionado…",
|
||||||
"certmanager_attempt_to_renew_nonLE_cert": "El certificado para el dominio {domain:s} no ha sido emitido por Let's Encrypt. ¡No se puede renovar automáticamente!",
|
"certmanager_attempt_to_renew_nonLE_cert": "El certificado para el dominio «{domain:s}» no ha sido emitido por Let's Encrypt. ¡No se puede renovar automáticamente!",
|
||||||
"certmanager_attempt_to_renew_valid_cert": "El certificado para el dominio {domain:s} no está a punto de expirar! Utilice --force para omitir este mensaje",
|
"certmanager_attempt_to_renew_valid_cert": "¡El certificado para el dominio «{domain:s}» no está a punto de expirar! (Puede usar --force si sabe lo que está haciendo)",
|
||||||
"certmanager_domain_http_not_working": "Parece que no se puede acceder al dominio {domain:s} a través de HTTP. Compruebe que la configuración del DNS y de nginx es correcta",
|
"certmanager_domain_http_not_working": "Parece que no se puede acceder al dominio {domain:s} a través de HTTP. Compruebe que la configuración del DNS y de NGINX es correcta",
|
||||||
"certmanager_error_no_A_record": "No se ha encontrado un registro DNS 'A' para el dominio {domain:s}. Debe hacer que su nombre de dominio apunte a su máquina para poder instalar un certificado Let's Encrypt. (Si sabe lo que está haciendo, use --no-checks para desactivar esas comprobaciones.)",
|
"certmanager_error_no_A_record": "No se ha encontrado un registro DNS «A» para el dominio {domain:s}. Debe hacer que su nombre de dominio apunte a su máquina para poder instalar un certificado de Let's Encrypt. (Si sabe lo que está haciendo, use «--no-checks» para desactivar esas comprobaciones.)",
|
||||||
"certmanager_domain_dns_ip_differs_from_public_ip": "El registro DNS 'A' para el dominio {domain:s} es diferente de la IP de este servidor. Si recientemente modificó su registro A, espere a que se propague (existen algunos controladores de propagación DNS disponibles en línea). (Si sabe lo que está haciendo, use --no-checks para desactivar esas comprobaciones.)",
|
"certmanager_domain_dns_ip_differs_from_public_ip": "El registro «A» del DNS para el dominio «{domain:s}» es diferente de la IP de este servidor. Si recientemente modificó su registro A, espere a que se propague (existen algunos verificadores de propagación de DNS disponibles en línea). (Si sabe lo que está haciendo, use «--no-checks» para desactivar esas comprobaciones.)",
|
||||||
"certmanager_cannot_read_cert": "Se ha producido un error al intentar abrir el certificado actual para el dominio {domain:s} (archivo: {file:s}), razón: {reason:s}",
|
"certmanager_cannot_read_cert": "Se ha producido un error al intentar abrir el certificado actual para el dominio {domain:s} (archivo: {file:s}), razón: {reason:s}",
|
||||||
"certmanager_cert_install_success_selfsigned": "¡Se ha instalado correctamente un certificado autofirmado para el dominio {domain:s}!",
|
"certmanager_cert_install_success_selfsigned": "Instalado correctamente un certificado autofirmado para el dominio «{domain:s}»",
|
||||||
"certmanager_cert_install_success": "¡Se ha instalado correctamente un certificado Let's Encrypt para el dominio {domain:s}!",
|
"certmanager_cert_install_success": "Instalado correctamente un certificado de Let's Encrypt para el dominio «{domain:s}»",
|
||||||
"certmanager_cert_renew_success": "¡Se ha renovado correctamente el certificado Let's Encrypt para el dominio {domain:s}!",
|
"certmanager_cert_renew_success": "Renovado correctamente el certificado de Let's Encrypt para el dominio «{domain:s}»",
|
||||||
"certmanager_old_letsencrypt_app_detected": "\nYunohost ha detectado que la aplicación 'letsencrypt' está instalada, esto produce conflictos con las nuevas funciones de administración de certificados integradas en Yunohost. Si desea utilizar las nuevas funciones integradas, ejecute los siguientes comandos para migrar su instalación:\n\n Yunohost app remove letsencrypt\n Yunohost domain cert-install\n\nP.D.: esto intentará reinstalar los certificados para todos los dominios con un certificado Let's Encrypt o con un certificado autofirmado",
|
"certmanager_old_letsencrypt_app_detected": "\nYunohost ha detectado que la aplicación 'letsencrypt' está instalada, esto produce conflictos con las nuevas funciones de administración de certificados integradas en Yunohost. Si desea utilizar las nuevas funciones integradas, ejecute los siguientes comandos para migrar su instalación:\n\n Yunohost app remove letsencrypt\n Yunohost domain cert-install\n\nP.D.: esto intentará reinstalar los certificados para todos los dominios con un certificado Let's Encrypt o con un certificado autofirmado",
|
||||||
"certmanager_hit_rate_limit": "Se han emitido demasiados certificados recientemente para el conjunto de dominios {domain:s}. Por favor, inténtelo de nuevo más tarde. Consulte https://letsencrypt.org/docs/rate-limits/ para obtener más detalles",
|
"certmanager_hit_rate_limit": "Se han emitido demasiados certificados recientemente para este conjunto exacto de dominios {domain:s}. Pruebe de nuevo más tarde. Vea para más detalles https://letsencrypt.org/docs/rate-limits/",
|
||||||
"certmanager_cert_signing_failed": "No se pudo firmar el nuevo certificado",
|
"certmanager_cert_signing_failed": "No se pudo firmar el nuevo certificado",
|
||||||
"certmanager_no_cert_file": "No se puede leer el certificado para el dominio {domain:s} (archivo: {file:s})",
|
"certmanager_no_cert_file": "No se pudo leer el certificado para el dominio {domain:s} (archivo: {file:s})",
|
||||||
"certmanager_conflicting_nginx_file": "No se puede preparar el dominio para el desafío ACME: el archivo de configuración nginx {filepath:s} está en conflicto y debe ser eliminado primero",
|
"certmanager_conflicting_nginx_file": "No se pudo preparar el dominio para el desafío ACME: el archivo de configuración de NGINX {filepath:s} está en conflicto y debe ser eliminado primero",
|
||||||
"domain_cannot_remove_main": "No se puede eliminar el dominio principal. Primero debe establecer un nuevo dominio principal",
|
"domain_cannot_remove_main": "No se puede eliminar el dominio principal. Configure uno primero",
|
||||||
"certmanager_self_ca_conf_file_not_found": "No se ha encontrado el archivo de configuración para la autoridad de autofirma (file: {file:s})",
|
"certmanager_self_ca_conf_file_not_found": "No se pudo encontrar el archivo de configuración para la autoridad de autofirma (archivo: {file:s})",
|
||||||
"certmanager_unable_to_parse_self_CA_name": "No se puede procesar el nombre de la autoridad de autofirma (file: {file:s} 1)",
|
"certmanager_unable_to_parse_self_CA_name": "No se pudo procesar el nombre de la autoridad de autofirma (archivo: {file:s})",
|
||||||
"domains_available": "Dominios disponibles:",
|
"domains_available": "Dominios disponibles:",
|
||||||
"backup_archive_broken_link": "Imposible acceder a la copia de seguridad (enlace roto {path:s})",
|
"backup_archive_broken_link": "No se pudo acceder al archivo de respaldo (enlace roto a {path:s})",
|
||||||
"certmanager_domain_not_resolved_locally": "Su servidor Yunohost no consigue resolver el dominio {domain:s}. Esto puede suceder si ha modificado su registro DNS. Si es el caso, espere unas horas hasta que se propague la modificación. Si el problema persiste, considere añadir {domain:s} a /etc/hosts. (Si sabe lo que está haciendo, use --no-checks para deshabilitar estas verificaciones.)",
|
"certmanager_domain_not_resolved_locally": "El dominio {domain:s} no puede ser resuelto desde su servidor de YunoHost. Esto puede suceder si ha modificado su registro DNS recientemente. De ser así, espere unas horas para que se propague. Si el problema continúa, considere añadir {domain:s} a /etc/hosts. (Si sabe lo que está haciendo, use «--no-checks» para desactivar esas comprobaciones.)",
|
||||||
"certmanager_acme_not_configured_for_domain": "El certificado para el dominio {domain:s} no parece instalado correctamente. Ejecute primero cert-install para este dominio.",
|
"certmanager_acme_not_configured_for_domain": "El certificado para el dominio «{domain:s}» no parece que esté instalado correctamente. Ejecute primero «cert-install» para este dominio.",
|
||||||
"certmanager_http_check_timeout": "Plazo expirado, el servidor no ha podido contactarse a si mismo a través de HTTP usando su dirección IP pública (dominio {domain:s} con ip {ip:s}). Puede ser debido a hairpinning o a una mala configuración del cortafuego/router al que está conectado su servidor.",
|
"certmanager_http_check_timeout": "Tiempo de espera agotado cuando el servidor intentaba conectarse consigo mismo a través de HTTP usando una dirección IP pública (dominio «{domain:s}» con IP «{ip:s}»). Puede que esté experimentando un problema de redirección («hairpinning»), o que el cortafuegos o el enrutador de su servidor esté mal configurado.",
|
||||||
"certmanager_couldnt_fetch_intermediate_cert": "Plazo expirado, no se ha podido descargar el certificado intermedio de Let's Encrypt. La instalación/renovación del certificado ha sido cancelada - vuelva a intentarlo más tarde.",
|
"certmanager_couldnt_fetch_intermediate_cert": "Tiempo de espera agotado intentando obtener el certificado intermedio de Let's Encrypt. Cancelada la instalación o renovación del certificado. Vuelva a intentarlo más tarde.",
|
||||||
"appslist_retrieve_bad_format": "El archivo obtenido para la lista de aplicaciones {appslist:s} no es válido",
|
"appslist_retrieve_bad_format": "No se pudo leer la lista de aplicaciones obtenida {appslist:s}",
|
||||||
"domain_hostname_failed": "Error al establecer nuevo nombre de host",
|
"domain_hostname_failed": "No se pudo establecer un nuevo nombre de anfitrión («hostname»). Esto podría causar problemas más tarde (no es seguro... podría ir bien).",
|
||||||
"yunohost_ca_creation_success": "Se ha creado la autoridad de certificación local.",
|
"yunohost_ca_creation_success": "Creada la autoridad de certificación local.",
|
||||||
"app_already_installed_cant_change_url": "Esta aplicación ya está instalada. No se puede cambiar el URL únicamente mediante esta función. Compruebe si está disponible la opción 'app changeurl'.",
|
"app_already_installed_cant_change_url": "Esta aplicación ya está instalada. No se puede cambiar el URL únicamente mediante esta función. Compruebe si está disponible la opción `app changeurl`.",
|
||||||
"app_change_no_change_url_script": "La aplicacion {app_name:s} aún no permite cambiar su URL, es posible que deba actualizarla.",
|
"app_change_no_change_url_script": "La aplicacion {app_name:s} aún no permite cambiar su URL, es posible que deba actualizarla.",
|
||||||
"app_change_url_failed_nginx_reload": "No se pudo recargar nginx. Compruebe la salida de 'nginx -t':\n{nginx_errors:s}",
|
"app_change_url_failed_nginx_reload": "No se pudo recargar NGINX. Esta es la salida de «nginx -t»:\n{nginx_errors:s}",
|
||||||
"app_change_url_identical_domains": "El antiguo y nuevo dominio/url_path son idénticos ('{domain:s} {path:s}'), no se realizarán cambios.",
|
"app_change_url_identical_domains": "El antiguo y nuevo dominio/url_path son idénticos ('{domain:s} {path:s}'), no se realizarán cambios.",
|
||||||
"app_change_url_no_script": "Esta aplicación '{app_name:s}' aún no permite modificar su URL. Quizás debería actualizar la aplicación.",
|
"app_change_url_no_script": "Esta aplicación «{app_name:s}» aún no permite la modificación de URLs. Quizás debería actualizarla.",
|
||||||
"app_change_url_success": "El URL de la aplicación {app:s} ha sido cambiado correctamente a {domain:s} {path:s}",
|
"app_change_url_success": "El URL de la aplicación {app:s} es ahora {domain:s} {path:s}",
|
||||||
"app_location_unavailable": "Este URL no está disponible o está en conflicto con otra aplicación instalada:\n{apps:s}",
|
"app_location_unavailable": "Este URL o no está disponible o está en conflicto con otra(s) aplicación(es) instalada(s):\n{apps:s}",
|
||||||
"app_already_up_to_date": "La aplicación {app:s} ya está actualizada",
|
"app_already_up_to_date": "La aplicación {app:s} ya está actualizada",
|
||||||
"appslist_name_already_tracked": "Ya existe una lista de aplicaciones registrada con el nombre {name:s}.",
|
"appslist_name_already_tracked": "Ya existe una lista de aplicaciones registradas con el nombre {name:s}.",
|
||||||
"appslist_url_already_tracked": "Ya existe una lista de aplicaciones registrada con el URL {url:s}.",
|
"appslist_url_already_tracked": "Ya existe una lista de aplicaciones registradas con el URL {url:s}.",
|
||||||
"appslist_migrating": "Migrando la lista de aplicaciones {appslist:s} ...",
|
"appslist_migrating": "Migrando la lista de aplicaciones {appslist:s}…",
|
||||||
"appslist_could_not_migrate": "No se pudo migrar la lista de aplicaciones {appslist:s}! No se pudo analizar el URL ... El antiguo cronjob se ha mantenido en {bkp_file:s}.",
|
"appslist_could_not_migrate": "¡No se pudo migrar la lista de aplicaciones {appslist:s}! No se pudo analizar el URL… El antiguo trabajo de cron se mantuvo en {bkp_file:s}.",
|
||||||
"appslist_corrupted_json": "No se pudieron cargar las listas de aplicaciones. Parece que {filename:s} está dañado.",
|
"appslist_corrupted_json": "No se pudieron cargar las listas de aplicaciones. Parece que {filename:s} está dañado.",
|
||||||
"invalid_url_format": "Formato de URL no válido",
|
"invalid_url_format": "Algo va mal con el URL",
|
||||||
"app_upgrade_some_app_failed": "No se pudieron actualizar algunas aplicaciones",
|
"app_upgrade_some_app_failed": "No se pudieron actualizar algunas aplicaciones",
|
||||||
"app_make_default_location_already_used": "No puede hacer la aplicación '{app}' por defecto en el dominio {domain} dado que está siendo usado por otra aplicación '{other_app}'",
|
"app_make_default_location_already_used": "No puede hacer que la aplicación «{app}» sea la predeterminada en el dominio, {domain} ya está siendo usado por otra aplicación «{other_app}»",
|
||||||
"app_upgrade_app_name": "Actualizando la aplicación {app}...",
|
"app_upgrade_app_name": "Actualizando ahora {app}…",
|
||||||
"ask_path": "Camino",
|
"ask_path": "Camino",
|
||||||
"backup_abstract_method": "Este método de backup no ha sido implementado aún",
|
"backup_abstract_method": "Este método de respaldo aún no se ha implementado",
|
||||||
"backup_applying_method_borg": "Enviando todos los ficheros al backup en el repositorio borg-backup...",
|
"backup_applying_method_borg": "Enviando todos los archivos para la copia de seguridad al repositorio de borg-backup…",
|
||||||
"backup_applying_method_copy": "Copiado todos los ficheros al backup...",
|
"backup_applying_method_copy": "Copiando todos los archivos a la copia de seguridad…",
|
||||||
"backup_applying_method_custom": "Llamando el método de backup {method:s} ...",
|
"backup_applying_method_custom": "Llamando al método de copia de seguridad personalizado «{method:s}»…",
|
||||||
"backup_applying_method_tar": "Creando el archivo tar de backup...",
|
"backup_applying_method_tar": "Creando el archivo TAR de respaldo…",
|
||||||
"backup_archive_mount_failed": "Fallo en el montado del archivo de backup",
|
"backup_archive_mount_failed": "No se pudo montar el archivo de respaldo",
|
||||||
"backup_archive_system_part_not_available": "La parte del sistema {part:s} no está disponible en este backup",
|
"backup_archive_system_part_not_available": "La parte del sistema «{part:s}» no está disponible en esta copia de seguridad",
|
||||||
"backup_archive_writing_error": "No se pueden añadir archivos de backup en el archivo comprimido",
|
"backup_archive_writing_error": "No se pudieron añadir los archivos «{source:s}» (llamados en el archivo «{dest:s}») para ser respaldados en el archivo comprimido «{archive:s}»",
|
||||||
"backup_ask_for_copying_if_needed": "Algunos ficheros no pudieron ser preparados para hacer backup usando el método que evita el gasto de espacio temporal en el sistema. Para hacer el backup, {size:s} MB deberían ser usados temporalmente. ¿Está de acuerdo?",
|
"backup_ask_for_copying_if_needed": "No se pudieron preparar algunos archivos para la copia de seguridad usando el método que evita desperdiciar espacio temporalmente en el sistema. Para hacer la copia de seguridad, {size:s}MB se usarán temporalmente. ¿Está de acuerdo?",
|
||||||
"backup_borg_not_implemented": "Método de backup Borg no está implementado aún",
|
"backup_borg_not_implemented": "El método de respaldo de Borg aún no ha sido implementado",
|
||||||
"backup_cant_mount_uncompress_archive": "No se puede montar en modo solo lectura el directorio del archivo descomprimido",
|
"backup_cant_mount_uncompress_archive": "No se pudo montar el archivo descomprimido como protegido contra escritura",
|
||||||
"backup_copying_to_organize_the_archive": "Copiando {size:s}MB para organizar el archivo",
|
"backup_copying_to_organize_the_archive": "Copiando {size:s}MB para organizar el archivo",
|
||||||
"backup_couldnt_bind": "No puede enlazar {src:s} con {dest:s}",
|
"backup_couldnt_bind": "No se pudo enlazar {src:s} con {dest:s}.",
|
||||||
"backup_csv_addition_failed": "No puede añadir archivos al backup en el archivo CSV",
|
"backup_csv_addition_failed": "No se pudo añadir archivos para respaldar en el archivo CSV",
|
||||||
"backup_csv_creation_failed": "No se puede crear el archivo CSV necesario para futuras operaciones de restauración",
|
"backup_csv_creation_failed": "No se pudo crear el archivo CSV necesario para la restauración",
|
||||||
"backup_custom_mount_error": "Fracaso del método de copia de seguridad personalizada en la etapa \"mount\"",
|
"backup_custom_mount_error": "El método de respaldo personalizado no pudo superar el paso «mount»",
|
||||||
"backup_custom_need_mount_error": "Fracaso del método de copia de seguridad personalizada en la étapa \"need_mount\"",
|
"backup_custom_need_mount_error": "El método de respaldo personalizado no pudo superar el paso «need_mount»",
|
||||||
"backup_no_uncompress_archive_dir": "El directorio del archivo descomprimido no existe",
|
"backup_no_uncompress_archive_dir": "No existe tal directorio de archivos sin comprimir",
|
||||||
"backup_php5_to_php7_migration_may_fail": "No se ha podido convertir su archivo para soportar php7, la restauración de sus aplicaciones php puede fallar (razón : {error:s})",
|
"backup_php5_to_php7_migration_may_fail": "No se pudo convertir su archivo para que sea compatible con PHP 7, puede que no pueda restaurar sus aplicaciones de PHP (motivo: {error:s})",
|
||||||
"backup_system_part_failed": "No se puede hacer una copia de seguridad de la parte \"{part:s}\" del sistema",
|
"backup_system_part_failed": "No se pudo respaldar la parte del sistema «{part:s}»",
|
||||||
"backup_with_no_backup_script_for_app": "La aplicación {app:s} no tiene script de respaldo. Se ha ignorado.",
|
"backup_with_no_backup_script_for_app": "La aplicación «{app:s}» no tiene un guión de respaldo. Omitiendo.",
|
||||||
"backup_with_no_restore_script_for_app": "La aplicación {app:s} no tiene script de restauración, no podrá restaurar automáticamente la copia de seguridad de esta aplicación.",
|
"backup_with_no_restore_script_for_app": "La aplicación «{app:s}» no tiene un guión de restauración, no podrá restaurar automáticamente la copia de seguridad de esta aplicación.",
|
||||||
"dyndns_could_not_check_provide": "No se pudo verificar si {provider:s} puede ofrecer {domain:s}.",
|
"dyndns_could_not_check_provide": "No se pudo verificar si {provider:s} puede ofrecer {domain:s}.",
|
||||||
"dyndns_domain_not_provided": "El proveedor Dyndns {provider:s} no puede proporcionar el dominio {domain:s}.",
|
"dyndns_domain_not_provided": "El proveedor de DynDNS {provider:s} no puede proporcionar el dominio {domain:s}.",
|
||||||
"experimental_feature": "Cuidado : esta funcionalidad es experimental y no es considerada estable, no debería usarla excepto si sabe lo que hace.",
|
"experimental_feature": "Aviso : esta funcionalidad es experimental y no se considera estable, no debería usarla a menos que sepa lo que está haciendo.",
|
||||||
"good_practices_about_user_password": "Está a punto de establecer una nueva contraseña de usuario. La contraseña debería de ser de al menos 8 caracteres, aunque es una buena práctica usar una contraseña más larga (es decir, una frase de paso) y/o usar varias clases de caracteres (mayúsculas, minúsculas, dígitos y caracteres especiales).",
|
"good_practices_about_user_password": "Está a punto de establecer una nueva contraseña de usuario. La contraseña debería de ser de al menos 8 caracteres, aunque es una buena práctica usar una contraseña más extensa (básicamente una frase) y/o usar caracteres de varias clases (mayúsculas, minúsculas, números y caracteres especiales).",
|
||||||
"password_listed": "Esta contraseña es una de las más usadas en el mundo. Elija algo un poco más único.",
|
"password_listed": "Esta contraseña es una de las más usadas en el mundo. Elija algo más único.",
|
||||||
"password_too_simple_1": "La contraseña debe tener al menos 8 caracteres de longitud",
|
"password_too_simple_1": "La contraseña debe tener al menos 8 caracteres de longitud",
|
||||||
"password_too_simple_2": "La contraseña debe tener al menos 8 caracteres de longitud y contiene dígitos, mayúsculas y minúsculas",
|
"password_too_simple_2": "La contraseña tiene que ser de al menos 8 caracteres de longitud e incluir un número y caracteres en mayúsculas y minúsculas",
|
||||||
"password_too_simple_3": "La contraseña debe tener al menos 8 caracteres de longitud y contiene dígitos, mayúsculas, minúsculas y caracteres especiales",
|
"password_too_simple_3": "La contraseña tiene que ser de al menos 8 caracteres de longitud e incluir un número, mayúsculas, minúsculas y caracteres especiales",
|
||||||
"password_too_simple_4": "La contraseña debe tener al menos 12 caracteres de longitud y contiene dígitos, mayúsculas, minúsculas y caracteres especiales"
|
"password_too_simple_4": "La contraseña tiene que ser de al menos 12 caracteres de longitud e incluir un número, mayúsculas, minúsculas y caracteres especiales",
|
||||||
|
"users_available": "Usuarios disponibles:",
|
||||||
|
"user_not_in_group": "El usuario «{user:s}» no está en el grupo «{group:s}»",
|
||||||
|
"user_already_in_group": "El usuario «{user:}» ya está en el grupo «{group:s}»",
|
||||||
|
"updating_app_lists": "Obteniendo actualizaciones disponibles para las aplicaciones…",
|
||||||
|
"update_apt_cache_warning": "Algo fue mal durante la actualización de la caché de APT (gestor de paquetes de Debian). Aquí tiene un volcado de las líneas de sources.list que podría ayudarle a identificar las líneas problemáticas:\n{sourceslist}",
|
||||||
|
"update_apt_cache_failed": "No se pudo actualizar la caché de APT (gestor de paquetes de Debian). Aquí tiene un volcado de las líneas de sources.list que podría ayudarle a identificar las líneas problemáticas:\n{sourceslist}",
|
||||||
|
"tools_upgrade_special_packages_completed": "Actualización de paquetes de YunoHost completada.\nPulse [Intro] para regresar a la línea de órdenes",
|
||||||
|
"tools_upgrade_special_packages_explanation": "Esta acción terminará pero la actualización especial real continuará en segundo plano. No inicie ninguna otra acción en su servidor en aproximadamente 10 minutos (dependiendo de la velocidad de su hardware). Una vez que esté hecho, podría tener que volver a iniciar sesión en la administración web. El registro de actualización estará disponible en Herramientas → Registro (en la página de administración web) o mediante «yunohost log list» (desde la línea de órdenes).",
|
||||||
|
"tools_upgrade_special_packages": "Actualizando ahora paquetes «especiales» (relacionados con YunoHost)…",
|
||||||
|
"tools_upgrade_regular_packages_failed": "No se pudieron actualizar los paquetes: {packages_list}",
|
||||||
|
"tools_upgrade_regular_packages": "Actualizando ahora paquetes «normales» (no relacionados con YunoHost)…",
|
||||||
|
"tools_upgrade_cant_unhold_critical_packages": "No se pudieron liberar los paquetes críticos…",
|
||||||
|
"tools_upgrade_cant_hold_critical_packages": "No se pudieron retener los paquetes críticos…",
|
||||||
|
"tools_upgrade_cant_both": "No se puede actualizar el sistema y las aplicaciones al mismo tiempo",
|
||||||
|
"tools_upgrade_at_least_one": "Especifique «--apps», o «--system»",
|
||||||
|
"tools_update_failed_to_app_fetchlist": "No se pudo actualizar la lista de aplicaciones de YunoHost porque: {error}",
|
||||||
|
"this_action_broke_dpkg": "Esta acción rompió dpkg/APT(los gestores de paquetes del sistema)… Puede tratar de solucionar este problema conectando mediante SSH y ejecutando `sudo dpkg --configure -a`.",
|
||||||
|
"system_groupname_exists": "El nombre de grupo ya existe en el grupo del sistema",
|
||||||
|
"service_reloaded_or_restarted": "Recargado o reiniciado el servicio «{service:s}»",
|
||||||
|
"service_reload_or_restart_failed": "No se pudo recargar o reiniciar el servicio «{service:s}»\n\nRegistro de servicios recientes:{logs:s}",
|
||||||
|
"service_restarted": "Reiniciado el servicio «{service:s}»",
|
||||||
|
"service_restart_failed": "No se pudo reiniciar el servicio «{service:s}»\n\nRegistro de servicios recientes:{logs:s}",
|
||||||
|
"service_reloaded": "Recargado el servicio «{service:s}»",
|
||||||
|
"service_reload_failed": "No se pudo recargar el servicio «{service:s}»\n\nRegistro de servicios recientes:{logs:s}",
|
||||||
|
"service_regen_conf_is_deprecated": "¡«yunohost service regen-conf» está obsoleto! Use «yunohost tools regen-conf» en su lugar.",
|
||||||
|
"service_description_yunohost-firewall": "Gestiona los puertos de conexiones abiertos y cerrados a los servicios",
|
||||||
|
"service_description_yunohost-api": "Gestiona las interacciones entre la interfaz web de YunoHost y el sistema",
|
||||||
|
"service_description_ssh": "Permite conectar a su servidor remotamente mediante un terminal (protocolo SSH)",
|
||||||
|
"service_description_slapd": "Almacena usuarios, dominios e información relacionada",
|
||||||
|
"service_description_rspamd": "Filtra correo no deseado y otras características relacionadas con el correo",
|
||||||
|
"service_description_rmilter": "Comprueba varios parámetros en el correo",
|
||||||
|
"service_description_redis-server": "Una base de datos especializada usada para el acceso rápido de datos, cola de tareas y comunicación entre programas",
|
||||||
|
"service_description_postfix": "Usado para enviar y recibir correos",
|
||||||
|
"service_description_php7.0-fpm": "Ejecuta aplicaciones escritas en PHP con NGINX",
|
||||||
|
"service_description_nslcd": "Maneja la conexión del intérprete de órdenes («shell») de usuario de YunoHost",
|
||||||
|
"service_description_nginx": "Sirve o proporciona acceso a todos los sitios web alojados en su servidor",
|
||||||
|
"service_description_mysql": "Almacena los datos de las aplicaciones (base de datos SQL)",
|
||||||
|
"service_description_metronome": "Gestionar las cuentas XMPP de mensajería instantánea",
|
||||||
|
"service_description_glances": "Supervisa la información del sistema en su servidor",
|
||||||
|
"service_description_fail2ban": "Protege contra ataques de fuerza bruta y otras clases de ataques desde Internet",
|
||||||
|
"service_description_dovecot": "Permite a los clientes de correo acceder/obtener correo (vía IMAP y POP3)",
|
||||||
|
"service_description_dnsmasq": "Maneja la resolución de nombres de dominio (DNS)",
|
||||||
|
"service_description_avahi-daemon": "Permite acceder a su servidor usando «yunohost.local» en su red local",
|
||||||
|
"server_reboot_confirm": "El servidor se reiniciará inmediatamente ¿está seguro? [{answers:s}]",
|
||||||
|
"server_reboot": "El servidor se reiniciará",
|
||||||
|
"server_shutdown_confirm": "El servidor se apagará inmediatamente ¿está seguro? [{answers:s}]",
|
||||||
|
"server_shutdown": "El servidor se apagará",
|
||||||
|
"root_password_replaced_by_admin_password": "Su contraseña de root ha sido sustituida por su contraseña de administración.",
|
||||||
|
"root_password_desynchronized": "La contraseña de administración ha sido cambiada pero ¡YunoHost no pudo propagar esto a la contraseña de root!",
|
||||||
|
"restore_system_part_failed": "No se pudo restaurar la parte del sistema «{part:s}»",
|
||||||
|
"restore_removing_tmp_dir_failed": "No se pudo eliminar un directorio temporal antiguo",
|
||||||
|
"restore_not_enough_disk_space": "Espacio insuficiente (espacio: {free_space:d} B, espacio necesario: {needed_space:d} B, margen de seguridad: {margin:d} B)",
|
||||||
|
"restore_mounting_archive": "Montando archivo en «{path:s}»",
|
||||||
|
"restore_may_be_not_enough_disk_space": "Parece que su sistema no tiene suficiente espacio (libre: {free_space:d} B, espacio necesario: {needed_space:d} B, margen de seguridad: {margin:d} B)",
|
||||||
|
"restore_extracting": "Extrayendo los archivos necesarios para el archivo…",
|
||||||
|
"regenconf_pending_applying": "Aplicando la configuración pendiente para la categoría «{category}»…",
|
||||||
|
"regenconf_failed": "No se pudo regenerar la configuración para la(s) categoría(s): {categories}",
|
||||||
|
"regenconf_dry_pending_applying": "Comprobando la configuración pendiente que habría sido aplicada para la categoría «{category}»…",
|
||||||
|
"regenconf_would_be_updated": "La configuración habría sido actualizada para la categoría «{category}»",
|
||||||
|
"regenconf_updated": "Actualizada la configuración para la categoría «{category}»",
|
||||||
|
"regenconf_up_to_date": "Ya está actualizada la configuración para la categoría «{category}»",
|
||||||
|
"regenconf_now_managed_by_yunohost": "El archivo de configuración «{conf}» está gestionado ahora por YunoHost (categoría {category}).",
|
||||||
|
"regenconf_file_updated": "Actualizado el archivo de configuración «{conf}»",
|
||||||
|
"regenconf_file_removed": "Eliminado el archivo de configuración «{conf}»",
|
||||||
|
"regenconf_file_remove_failed": "No se pudo eliminar el archivo de configuración «{conf}»",
|
||||||
|
"regenconf_file_manually_removed": "El archivo de configuración «{conf}» ha sido eliminado manualmente y no se creará",
|
||||||
|
"regenconf_file_manually_modified": "El archivo de configuración «{conf}» ha sido modificado manualmente y no será actualizado",
|
||||||
|
"regenconf_file_kept_back": "Se espera que el archivo de configuración «{conf}» sea eliminado por regen-conf (categoría {category}) pero ha sido retenido.",
|
||||||
|
"regenconf_file_copy_failed": "No se pudo copiar el nuevo archivo de configuración «{new}» a «{conf}»",
|
||||||
|
"regenconf_file_backed_up": "Archivo de configuración «{conf}» respaldado en «{backup}»",
|
||||||
|
"remove_user_of_group_not_allowed": "No tiene permiso para eliminar al usuario «{user:s}» en el grupo «{group:s}»",
|
||||||
|
"remove_main_permission_not_allowed": "No se permite eliminar el permiso principal",
|
||||||
|
"recommend_to_add_first_user": "La posinstalación ha terminado pero YunoHost necesita al menos un usuario para funcionar correctamente, debe añadir uno ejecutando «yunohost user create <nombredeusuario>» o usando la interfaz de administración.",
|
||||||
|
"permission_update_nothing_to_do": "No hay permisos para actualizar",
|
||||||
|
"permission_updated": "Actualizado el permiso «{permission:s}» para la aplicación «{app:s}»",
|
||||||
|
"permission_generated": "Actualizada la base de datos de permisos",
|
||||||
|
"permission_update_failed": "No se pudo actualizar el permiso",
|
||||||
|
"permission_name_not_valid": "Elija un nombre de permiso permitido para «{permission:s}",
|
||||||
|
"permission_not_found": "No se encontró el permiso «{permission:s}» para la aplicación «{app:s}»",
|
||||||
|
"permission_deletion_failed": "Falta el permiso «{permission:s}» para eliminar la aplicación «{app:s}»",
|
||||||
|
"permission_deleted": "Eliminado el permiso «{permission:s}» para la aplicación {app:s}",
|
||||||
|
"permission_creation_failed": "No se pudo conceder el permiso",
|
||||||
|
"permission_created": "Creado el permiso «{permission:s}» para la aplicación {app:s}",
|
||||||
|
"permission_already_exist": "El permiso «{permission:s}» para la aplicación {app:s} ya existe",
|
||||||
|
"permission_already_clear": "El permiso «{permission:s}» ya está definido para la aplicación {app:s}",
|
||||||
|
"pattern_password_app": "Las contraseñas no pueden incluir los siguientes caracteres: {forbidden_chars}",
|
||||||
|
"need_define_permission_before": "Redefina los permisos ejecutando «yunohost user permission add -u USUARIO» antes de eliminar un grupo permitido",
|
||||||
|
"migrations_to_be_ran_manually": "La migración {id} hay que ejecutarla manualmente. Vaya a Herramientas → Migraciones en la página web de administración o ejecute `yunohost tools migrations migrate`.",
|
||||||
|
"migrations_success_forward": "Migración {id} completada",
|
||||||
|
"migrations_skip_migration": "Omitiendo migración {id}…",
|
||||||
|
"migrations_running_forward": "Ejecutando migración {id}…",
|
||||||
|
"migrations_pending_cant_rerun": "Esas migraciones están aún pendientes, así que no se pueden volver a ejecutar: {ids}",
|
||||||
|
"migrations_not_pending_cant_skip": "Esas migraciones no están pendientes, así que no pueden ser omitidas: {ids}",
|
||||||
|
"migrations_no_such_migration": "No hay ninguna migración llamada {id}",
|
||||||
|
"migrations_no_migrations_to_run": "No hay migraciones que ejecutar",
|
||||||
|
"migrations_need_to_accept_disclaimer": "Para ejecutar la migración {id} debe aceptar el siguiente descargo de responsabilidad:\n---\n{disclaimer}\n---\nSi acepta ejecutar la migración, vuelva a ejecutar la orden con la opción «--accept-disclaimer».",
|
||||||
|
"migrations_must_provide_explicit_targets": "Necesita proporcionar objetivos explícitos al usar «--skip» or «--force-rerun»",
|
||||||
|
"migrations_migration_has_failed": "La migración {id} no se ha completado, cancelando. Error: {exception}",
|
||||||
|
"migrations_loading_migration": "Cargando migración {id}…",
|
||||||
|
"migrations_list_conflict_pending_done": "No puede usar «--previous» y «--done» al mismo tiempo.",
|
||||||
|
"migrations_exclusive_options": "«--auto», «--skip», and «--force-rerun» son opciones mutuamente excluyentes.",
|
||||||
|
"migrations_failed_to_load_migration": "No se pudo cargar la migración {id}: {error}",
|
||||||
|
"migrations_dependencies_not_satisfied": "No se puede ejecutar la migración {id} porque primero necesita ejecutar estas migraciones: {dependencies_id}",
|
||||||
|
"migrations_cant_reach_migration_file": "No se pudo acceder los archivos de migración en la ruta %s",
|
||||||
|
"migrations_already_ran": "Esas migraciones ya se han realizado: {ids}",
|
||||||
|
"migration_0011_update_LDAP_schema": "Actualizando el esquema de LDAP…",
|
||||||
|
"migration_0011_update_LDAP_database": "Actualizando la base de datos de LDAP…",
|
||||||
|
"migration_0011_rollback_success": "Sistema revertido.",
|
||||||
|
"migration_0011_migration_failed_trying_to_rollback": "Migración fallida… intentando revertir el sistema.",
|
||||||
|
"migration_0011_migrate_permission": "Migrando permisos desde la configuración de las aplicaciones a LDAP…",
|
||||||
|
"migration_0011_LDAP_update_failed": "No se pudo actualizar LDAP. Error: {error:s}",
|
||||||
|
"migration_0011_LDAP_config_dirty": "Parece que ha personalizado la configuración de LDAP. Para esta migración se necesita actualizar la configuración de LDAP.\nNecesita guardar su configuración actual, reiniciar la configuración original ejecutando «yunohost tools regen-conf -f» y reintentar la migración",
|
||||||
|
"migration_0011_done": "Migración correcta. Ahora puede gestionar los grupos de usuarios.",
|
||||||
|
"migration_0011_create_group": "Creando un grupo para cada usuario…",
|
||||||
|
"migration_0011_can_not_backup_before_migration": "No se pudo respaldar el sistema antes de la migración. Error: {error:s}",
|
||||||
|
"migration_0011_backup_before_migration": "Creando un respaldo de la base de datos de LDAP y de la configuración de las aplicaciones antes de la migración real.",
|
||||||
|
"migration_0009_not_needed": "La migración ya ocurrió de algún modo… (?) Omitiendo.",
|
||||||
|
"migration_0008_no_warning": "No se ha detectado ningún riesgo importante con respecto a la anulación de su configuración SSH ¡sin embargo uno nunca puede estar absolutamente seguro ;)! Ejecute la migración para anularla. Por otra parte, puede omitir la migración aunque no esté recomendado.",
|
||||||
|
"migration_0008_warning": "Si entiende esos avisos y permite a YunoHost anular su configuración actual, ejecute la migración. Por otra parte puede omitir la migración, aunque no se recomienda.",
|
||||||
|
"migration_0008_dsa": "• Se desactivará la clave DSA. Así que podría tener que anular un aviso espeluznante de su cliente SSH y volver a comprobar la huella de su servidor;",
|
||||||
|
"migration_0008_root": "• No podrá conectarse como «root» a través de SSH. En su lugar debe usar el usuario «admin»;",
|
||||||
|
"migration_0008_port": "• Tendrá que conectarse usando el puerto 22 en vez de su actual puerto SSH personalizado. No dude en reconfigurarlo;",
|
||||||
|
"migration_0008_general_disclaimer": "Para mejorar la seguridad de su servidor, es recomendable permitir a YunoHost gestionar la configuración de SSH. Su actual configuración de SSH difiere de la recomendación. Si permite a YunoHost reconfigurarla, la manera en la que conecta con su servidor a través de SSH cambiará así:",
|
||||||
|
"migration_0007_cannot_restart": "No se puede reiniciar SSH después de intentar cancelar la migración número 6.",
|
||||||
|
"migration_0007_cancelled": "YunoHost no ha podido mejorar el modo en el que se gestiona su configuración de SSH.",
|
||||||
|
"migration_0006_disclaimer": "YunoHost espera ahora que las contraseñas de «admin» y «root» estén sincronizadas. Al ejecutar esta migración, su contraseña de «root» será reemplazada por la contraseña de administración.",
|
||||||
|
"migration_0005_not_enough_space": "Tenga suficiente espacio libre disponible en {path} para ejecutar la migración.",
|
||||||
|
"migration_0005_postgresql_96_not_installed": "⸘PostgreSQL 9.4 está instalado pero no PostgreSQL 9.6‽ Algo raro podría haber ocurrido en su sistema:(…",
|
||||||
|
"migration_0005_postgresql_94_not_installed": "PostgreSQL no estaba instalado en su sistema. Nada que hacer.",
|
||||||
|
"migration_0003_modified_files": "Tenga en cuenta que se encontró que los siguientes archivos fueron modificados manualmente y podrían ser sobrescritos después de la actualización: {manually_modified_files}",
|
||||||
|
"migration_0003_problematic_apps_warning": "Tenga en cuenta que se detectaron las siguientes aplicaciones instaladas posiblemente problemáticas. Parece que no fueron instaladas desde una lista de aplicaciones o no estaban etiquetadas como «funciona». Así que no hay garantía de que aún funcionen después de la actualización: {problematic_apps}",
|
||||||
|
"migration_0003_general_warning": "Tenga en cuenta que esta migración es una operación delicada. El equipo de YunoHost ha hecho todo lo posible para revisarla y probarla, pero la migración aún podría romper parte del sistema o de sus aplicaciones.\n\nPor lo tanto, se recomienda que:\n - Realice una copia de seguridad de cualquier dato crítico o aplicación. Más información en https://yunohost.org/backup;\n - Tenga paciencia tras iniciar la migración: dependiendo de su conexión a Internet y de su hardware, podría tardar unas cuantas horas hasta que todo se actualice.\n\nAdemás, el puerto para SMTP usado por los clientes de correo externos (como Thunderbird o K9-Mail) cambió de 465 (SSL/TLS) a 587 (STARTTLS). El antiguo puerto (465) se cerrará automáticamente y el nuevo puerto (587) se abrirá en el cortafuegos. Todos los usuarios *tendrán* que adaptar la configuración de sus clientes de correo por lo tanto.",
|
||||||
|
"migration_0003_still_on_jessie_after_main_upgrade": "Algo fue mal durante la actualización principal: ⸘el sistema está aún en Jessie‽ Para investigar el problema, vea {log}:s…",
|
||||||
|
"migration_0003_system_not_fully_up_to_date": "Su sistema no está totalmente actualizado. Realice una actualización normal antes de ejecutar la migración a Stretch.",
|
||||||
|
"migration_0003_not_jessie": "¡La distribución de Debian actual no es Jessie!",
|
||||||
|
"migration_0003_yunohost_upgrade": "Iniciando la actualización del paquete YunoHost… La migración finalizará pero la actualización real ocurrirá inmediatamente después. Después de que la operación esté completada, podría tener que iniciar sesión en la página de administración de nuevo.",
|
||||||
|
"migration_0003_restoring_origin_nginx_conf": "Su archivo /etc/nginx/nginx.conf ha sido editado de algún modo. La migración lo devolverá a su estado original primero… El archivo anterior estará disponible como {backup_dest}.",
|
||||||
|
"migration_0003_fail2ban_upgrade": "Iniciando la actualización de Fail2Ban…",
|
||||||
|
"migration_0003_main_upgrade": "Iniciando la actualización principal…",
|
||||||
|
"migration_0003_patching_sources_list": "Corrigiendo «sources.lists»…",
|
||||||
|
"migration_0003_start": "Iniciando migración a Stretch. El registro estará disponible en {logfile}.",
|
||||||
|
"migration_description_0012_postgresql_password_to_md5_authentication": "Forzar a la autentificación de PostgreSQL a usar MD5 para las conexiones locales",
|
||||||
|
"migration_description_0011_setup_group_permission": "Configurar grupo de usuario y configurar permisos para aplicaciones y servicios",
|
||||||
|
"migration_description_0010_migrate_to_apps_json": "Eliminar las listas de aplicaciones («appslists») obsoletas y usar en su lugar la nueva lista unificada «apps.json»",
|
||||||
|
"migration_description_0009_decouple_regenconf_from_services": "Separar el mecanismo «regen-conf» de los servicios",
|
||||||
|
"migration_description_0008_ssh_conf_managed_by_yunohost_step2": "Permitir que la configuración de SSH la gestione YunoHost (paso 2, manual)",
|
||||||
|
"migration_description_0007_ssh_conf_managed_by_yunohost_step1": "Permitir que la configuración de SSH la gestione YunoHost (paso 1, automático)",
|
||||||
|
"migration_description_0006_sync_admin_and_root_passwords": "Sincronizar las contraseñas de «admin» y «root»",
|
||||||
|
"migration_description_0005_postgresql_9p4_to_9p6": "Migrar las bases de datos de PostgreSQL 9.4 a 9.6",
|
||||||
|
"migration_description_0004_php5_to_php7_pools": "Reconfigurar los «pools» de PHP para usar PHP 7 en vez de 5",
|
||||||
|
"migration_description_0003_migrate_to_stretch": "Actualizar el sistema a Debian Stretch y YunoHost 3.0",
|
||||||
|
"migration_description_0002_migrate_to_tsig_sha256": "Mejore la seguridad de las actualizaciones de TSIG de DynDNS usando SHA-512 en vez de MD5",
|
||||||
|
"migration_description_0001_change_cert_group_to_sslcert": "Cambiar los permisos de grupo de certificados de «metronome» a «ssl-cert»",
|
||||||
|
"migrate_tsig_not_needed": "Parece que no usa un dominio de DynDNS, así que no es necesario migrar.",
|
||||||
|
"migrate_tsig_wait_4": "30 segundos…",
|
||||||
|
"migrate_tsig_wait_3": "1 min. …",
|
||||||
|
"migrate_tsig_wait_2": "2 min. …",
|
||||||
|
"migrate_tsig_wait": "Esperando tres minutos para que el servidor de DynDNS tenga en cuenta la nueva clave…",
|
||||||
|
"migrate_tsig_start": "Detectado algoritmo de clave insuficientemente seguro para la firma TSIG del dominio «{domain}», iniciando migración al más seguro HMAC-SHA-512",
|
||||||
|
"migrate_tsig_failed": "No se pudo migrar el dominio de DynDNS «{domain}» a HMAC-SHA-512, revertiendo. Error: {error_code}, {error}",
|
||||||
|
"migrate_tsig_end": "Terminada la migración a HMAC-SHA-512",
|
||||||
|
"mail_unavailable": "Esta dirección de correo está reservada y será asignada automáticamente al primer usuario",
|
||||||
|
"mailbox_disabled": "Correo desactivado para usuario {user:s}",
|
||||||
|
"log_tools_reboot": "Reiniciar el servidor",
|
||||||
|
"log_tools_shutdown": "Apagar el servidor",
|
||||||
|
"log_tools_upgrade": "Actualizar paquetes del sistema",
|
||||||
|
"log_tools_postinstall": "Posinstalación del servidor YunoHost",
|
||||||
|
"log_tools_migrations_migrate_forward": "Migrar hacia adelante",
|
||||||
|
"log_tools_maindomain": "Convertir «{}» en el dominio principal",
|
||||||
|
"log_user_permission_remove": "Actualizar permiso «{}»",
|
||||||
|
"log_user_permission_add": "Actualizar permiso «{}»",
|
||||||
|
"log_user_update": "Actualizar la información de usuario de «{}»",
|
||||||
|
"log_user_group_update": "Actualizar grupo «{}»",
|
||||||
|
"log_user_group_delete": "Eliminar grupo «{}»",
|
||||||
|
"log_user_group_add": "Añadir grupo «{}»",
|
||||||
|
"log_user_delete": "Eliminar usuario «{}»",
|
||||||
|
"log_user_create": "Añadir usuario «{}»",
|
||||||
|
"log_regen_conf": "Regenerar la configuración del sistema «{}»",
|
||||||
|
"log_letsencrypt_cert_renew": "Renovar el certificado «{}» de Let's encrypt",
|
||||||
|
"log_selfsigned_cert_install": "Instalar certificado autofirmado en el dominio «{}»",
|
||||||
|
"log_permission_update": "Actualizar permiso «{}» para la aplicación «{}»",
|
||||||
|
"log_permission_remove": "Eliminar permiso «{}»",
|
||||||
|
"log_permission_add": "Añadir el permiso «{}» para la aplicación «{}»",
|
||||||
|
"log_letsencrypt_cert_install": "Instalar un certificado de Let's encrypt en el dominio «{}»",
|
||||||
|
"log_dyndns_update": "Actualizar la IP asociada con su subdominio de YunoHost «{}»",
|
||||||
|
"log_dyndns_subscribe": "Subscribirse a un subdomino de YunoHost «{}»",
|
||||||
|
"log_domain_remove": "Eliminar el dominio «{}» de la configuración del sistema",
|
||||||
|
"log_domain_add": "Añadir el dominio «{}» a la configuración del sistema",
|
||||||
|
"log_remove_on_failed_install": "Eliminar «{}» después de una instalación fallida",
|
||||||
|
"log_remove_on_failed_restore": "Eliminar «{}» después de una restauración fallida desde un archivo de respaldo",
|
||||||
|
"log_backup_restore_app": "Restaurar «{}» desde un archivo de respaldo",
|
||||||
|
"log_backup_restore_system": "Restaurar sistema desde un archivo de respaldo",
|
||||||
|
"log_available_on_yunopaste": "Este registro está ahora disponible vía {url}",
|
||||||
|
"log_app_makedefault": "Convertir «{}» en aplicación predeterminada",
|
||||||
|
"log_app_upgrade": "Actualizar la aplicación «{}»",
|
||||||
|
"log_app_remove": "Eliminar la aplicación «{}»",
|
||||||
|
"log_app_install": "Instalar la aplicación «{}»",
|
||||||
|
"log_app_change_url": "Cambiar el URL de la aplicación «{}»",
|
||||||
|
"log_app_removelist": "Eliminar una lista de aplicaciones",
|
||||||
|
"log_app_fetchlist": "Añadir una lista de aplicaciones",
|
||||||
|
"log_app_clearaccess": "Eliminar todos los accesos a «{}»",
|
||||||
|
"log_app_removeaccess": "Eliminar acceso a «{}»",
|
||||||
|
"log_app_addaccess": "Añadir acceso a «{}»",
|
||||||
|
"log_operation_unit_unclosed_properly": "La unidad de operación no se ha cerrado correctamente",
|
||||||
|
"log_does_exists": "No existe ningún registro de actividades con el nombre «{log}», ejecute «yunohost log list» para ver todos los registros de actividades disponibles",
|
||||||
|
"log_help_to_get_failed_log": "No se pudo completar la operación «{desc}». Para obtener ayuda, comparta el registro completo de esta operación ejecutando la orden «yunohost log display {name} --share»",
|
||||||
|
"log_link_to_failed_log": "No se pudo completar la operación «{desc}». Para obtener ayuda, proporcione el registro completo de esta operación <a href=\"#/tools/logs/{name}\">pulsando aquí</a>",
|
||||||
|
"log_help_to_get_log": "Para ver el registro de la operación «{desc}», ejecute la orden «yunohost log display {name}»",
|
||||||
|
"log_link_to_log": "Registro completo de esta operación: «<a href=\"#/tools/logs/{name}\" style=\"text-decoration:underline\">{desc}</a>»",
|
||||||
|
"log_category_404": "La categoría de registro «{category}» no existe",
|
||||||
|
"log_corrupted_md_file": "El archivo de metadatos YAML asociado con el registro está dañado: «{md_file}\nError: {error}»",
|
||||||
|
"hook_json_return_error": "No se pudo leer la respuesta del gancho {path:s}. Error: {msg:s}. Contenido sin procesar: {raw_content}",
|
||||||
|
"group_update_failed": "No se pudo actualizar el grupo «{group}»",
|
||||||
|
"group_updated": "Grupo «{group}» actualizado",
|
||||||
|
"group_unknown": "El grupo «{group:s}» es desconocido",
|
||||||
|
"group_info_failed": "No se pudo mostrar la información del grupo",
|
||||||
|
"group_deletion_not_allowed": "No se puede eliminar el grupo {group:s} manualmente.",
|
||||||
|
"group_deletion_failed": "No se pudo eliminar el grupo «{group}»",
|
||||||
|
"group_deleted": "Eliminado el grupo «{group}»",
|
||||||
|
"group_creation_failed": "No se pudo crear el grupo «{group}»",
|
||||||
|
"group_created": "Creado el grupo «{group}»",
|
||||||
|
"group_name_already_exist": "El grupo {name:s} ya existe",
|
||||||
|
"group_already_disallowed": "El grupo «{group:s}» ya tiene desactivado el permiso «{permission:s}» para la aplicación «{app:s}»",
|
||||||
|
"group_already_allowed": "El grupo «{group:s}» ya tiene activado el permiso «{permission:s}» para la aplicación «{app:s}»",
|
||||||
|
"good_practices_about_admin_password": "Va a establecer una nueva contraseña de administración. La contraseña debería tener al menos 8 caracteres, aunque es una buena práctica usar una contraseña más extensa (básicamente una frase) y/o usar caracteres de varias clases (mayúsculas, minúsculas, números y caracteres especiales).",
|
||||||
|
"global_settings_unknown_type": "Situación imprevista, la configuración {setting:s} parece tener el tipo {unknown_type:s} pero no es un tipo compatible con el sistema.",
|
||||||
|
"global_settings_setting_service_ssh_allow_deprecated_dsa_hostkey": "Permitir el uso de la llave (obsoleta) DSA para la configuración del demonio SSH",
|
||||||
|
"global_settings_unknown_setting_from_settings_file": "Clave desconocida en la configuración: «{setting_key:s}», desechada y guardada en /etc/yunohost/settings-unknown.json",
|
||||||
|
"global_settings_setting_security_postfix_compatibility": "Compromiso entre compatibilidad y seguridad para el servidor Postfix. Afecta al cifrado (y otros aspectos relacionados con la seguridad)",
|
||||||
|
"global_settings_setting_security_ssh_compatibility": "Compromiso entre compatibilidad y seguridad para el servidor SSH. Afecta al cifrado (y otros aspectos relacionados con la seguridad)",
|
||||||
|
"global_settings_setting_security_password_user_strength": "Seguridad de la contraseña de usuario",
|
||||||
|
"global_settings_setting_security_password_admin_strength": "Seguridad de la contraseña del administrador",
|
||||||
|
"global_settings_setting_security_nginx_compatibility": "Compromiso entre compatibilidad y seguridad para el servidor web NGINX. Afecta al cifrado (y otros aspectos relacionados con la seguridad)",
|
||||||
|
"global_settings_setting_example_string": "Ejemplo de opción de cadena",
|
||||||
|
"global_settings_setting_example_int": "Ejemplo de opción «int»",
|
||||||
|
"global_settings_setting_example_enum": "Ejemplo de opción «enum»",
|
||||||
|
"global_settings_setting_example_bool": "Ejemplo de opción booleana",
|
||||||
|
"global_settings_reset_success": "Respaldada la configuración previa en {path:s}",
|
||||||
|
"global_settings_key_doesnt_exists": "La clave «{settings_key:s}» no existe en la configuración global, puede ver todas las claves disponibles ejecutando «yunohost settings list»",
|
||||||
|
"global_settings_cant_write_settings": "No se pudo guardar el archivo de configuración, motivo: {reason:s}",
|
||||||
|
"global_settings_cant_serialize_settings": "No se pudo seriar los datos de configuración, motivo: {reason:s}",
|
||||||
|
"global_settings_cant_open_settings": "No se pudo abrir el archivo de configuración, motivo: {reason:s}",
|
||||||
|
"global_settings_bad_type_for_setting": "Tipo erróneo para la configuración {setting:s}, obtuvo {received_type:s}, esperado {expected_type:s}",
|
||||||
|
"global_settings_bad_choice_for_enum": "Opción errónea para la configuración {setting:s}, obtuvo «{choice:s}» pero las opciones disponibles son: {available_choices:s}",
|
||||||
|
"file_does_not_exist": "El archivo {path:s} no existe.",
|
||||||
|
"error_when_removing_sftpuser_group": "No se pudo eliminar el grupo sftpusers",
|
||||||
|
"edit_permission_with_group_all_users_not_allowed": "No puede editar el permiso para el grupo «all_users», utilice «yunohost user permission clear APLICACIÓN» o «yunohost user permission add APLICACIÓN -u USUARIO».",
|
||||||
|
"edit_group_not_allowed": "No tiene permiso para editar el grupo {group:s}",
|
||||||
|
"dyndns_could_not_check_available": "No se pudo comprobar si {domain:s} está disponible en {provider:s}.",
|
||||||
|
"domain_dyndns_dynette_is_unreachable": "No se pudo conectar a dynette de YunoHost. O su YunoHost no está correctamente conectado a Internet o el servidor dynette está caído. Error: {error}",
|
||||||
|
"domain_dns_conf_is_just_a_recommendation": "Esta orden muestra la configuración *recomendada*. No configura el DNS en realidad. Es su responsabilidad configurar la zona de DNS en su registrador según esta recomendación.",
|
||||||
|
"dpkg_lock_not_available": "Esta orden no se puede ejecutar en este momento porque otro programa parece que está usando el bloqueo de dpkg (el gestor de paquetes del sistema)",
|
||||||
|
"dpkg_is_broken": "No puede hacer esto en este momento porque dpkg/apt (los gestores de paquetes del sistema) parecen estar en un estado roto... Puede tratar de solucionar este problema conectando a través de SSH y ejecutando `sudo dpkg --configure -a`.",
|
||||||
|
"confirm_app_install_thirdparty": "¡AVISO! Instalar aplicaciones de terceros podría comprometer la integridad y seguridad de su sistema. Probablemente NO debería instalarlas salvo que sepa lo que está haciendo. ¿Está dispuesto a correr ese riesgo? [{answers:s}] ",
|
||||||
|
"confirm_app_install_danger": "¡AVISO! Esta aplicación es aún experimental (si no está funcionando expresamente) y ¡es probable que rompa su sistema! Probablemente NO debería instalarla salvo que sepa lo que está haciendo. ¿Está dispuesto a correr ese riesgo? [{answers:s}] ",
|
||||||
|
"confirm_app_install_warning": "Aviso: esta aplicación puede funcionar pero no está bien integrada en YunoHost. Algunas herramientas como la autentificación única y respaldo/restauración podrían no estar disponibles. ¿Instalar de todos modos? [{answers:s}] ",
|
||||||
|
"backup_unable_to_organize_files": "No se pudo usar el método rápido de organización de los archivos en el archivo",
|
||||||
|
"backup_permission": "Permiso de respaldo para la aplicación {app:s}",
|
||||||
|
"backup_output_symlink_dir_broken": "Tiene un enlace simbólico roto en vez del directorio «{path:s}» de su archivo. Puede que tenga una configuración específica para respaldar sus datos en otro sistema de archivos, en este caso probablemente olvidó remontar o conectar su disco duro o clave USB.",
|
||||||
|
"backup_mount_archive_for_restore": "Preparando el archivo para la restauración…",
|
||||||
|
"backup_method_tar_finished": "Creado el archivo TAR de respaldo",
|
||||||
|
"backup_method_custom_finished": "Terminado el método «{method:s}» de respaldo personalizado",
|
||||||
|
"backup_method_copy_finished": "Terminada la copia de seguridad",
|
||||||
|
"backup_method_borg_finished": "Terminado el respaldo en Borg",
|
||||||
|
"backup_custom_backup_error": "El método de respaldo personalizado no pudo superar el paso de «copia de seguridad»",
|
||||||
|
"backup_actually_backuping": "Creando un archivo de respaldo de los archivos obtenidos…",
|
||||||
|
"ask_new_path": "Nueva ruta",
|
||||||
|
"ask_new_domain": "Nuevo dominio",
|
||||||
|
"apps_permission_restoration_failed": "Otorgar el permiso «{permission:s}» para restaurar {app:s}",
|
||||||
|
"apps_permission_not_found": "No se han encontrado permisos para las aplicaciones instaladas",
|
||||||
|
"app_upgrade_several_apps": "Las siguientes aplicaciones se actualizarán: {apps}",
|
||||||
|
"app_start_restore": "Restaurando aplicación {app}…",
|
||||||
|
"app_start_backup": "Obteniendo archivos para el respaldo de {app}…",
|
||||||
|
"app_start_remove": "Eliminando aplicación {app}…",
|
||||||
|
"app_start_install": "Instalando aplicación {app}…",
|
||||||
|
"app_not_upgraded": "Error al actualizar la aplicación «{failed_app}» y como consecuencia se han cancelado las actualizaciones de las siguientes aplicaciones: {apps}",
|
||||||
|
"app_action_cannot_be_ran_because_required_services_down": "Esta aplicación necesita algunos servicios que no están funcionando ahora. Antes de continuar, debería intentar reiniciar los siguientes servicios (y posiblemente investigar por qué no funcionan): {services}",
|
||||||
|
"already_up_to_date": "Nada que hacer. Todo está actualizado.",
|
||||||
|
"admin_password_too_long": "Elija una contraseña de menos de 127 caracteres",
|
||||||
|
"aborting": "Cancelando.",
|
||||||
|
"app_upgrade_stopped": "Se ha detenido la actualización de todas las aplicaciones para prevenir un posible daño porque la aplicación anterior no se pudo actualizar",
|
||||||
|
"app_action_broke_system": "Esta acción parece que ha roto estos importantes servicios: {services}",
|
||||||
|
"operation_interrupted": "¿Ha sido interrumpida la operación manualmente?",
|
||||||
|
"apps_already_up_to_date": "Todas las aplicaciones están ya actualizadas",
|
||||||
|
"dyndns_provider_unreachable": "No se puede conectar con el proveedor de Dyndns {provider}: o su YunoHost no está correctamente conectado a Internet o el servidor de dynette está caído."
|
||||||
}
|
}
|
||||||
|
|
253
locales/fr.json
253
locales/fr.json
|
@ -17,11 +17,11 @@
|
||||||
"app_manifest_invalid": "Manifeste d’application incorrect : {error}",
|
"app_manifest_invalid": "Manifeste d’application incorrect : {error}",
|
||||||
"app_no_upgrade": "Aucune application à mettre à jour",
|
"app_no_upgrade": "Aucune application à mettre à jour",
|
||||||
"app_not_correctly_installed": "{app:s} semble être mal installé",
|
"app_not_correctly_installed": "{app:s} semble être mal installé",
|
||||||
"app_not_installed": "L'application « {app:s} » n’est pas installée. Voici la liste des applications installées: {all_apps}",
|
"app_not_installed": "Nous n’avons pas trouvé l’application « {app:s} » dans la liste des applications installées: {all_apps}",
|
||||||
"app_not_properly_removed": "{app:s} n’a pas été supprimé correctement",
|
"app_not_properly_removed": "{app:s} n’a pas été supprimé correctement",
|
||||||
"app_package_need_update": "Le paquet de l’application {app} doit être mis à jour pour être en adéquation avec les changements de YunoHost",
|
"app_package_need_update": "Le paquet de l’application {app} doit être mis à jour pour être en adéquation avec les changements de YunoHost",
|
||||||
"app_recent_version_required": "{app:s} nécessite une version plus récente de YunoHost",
|
"app_recent_version_required": "{app:s} nécessite une version plus récente de YunoHost",
|
||||||
"app_removed": "{app:s} a été supprimé",
|
"app_removed": "{app:s} supprimé",
|
||||||
"app_requirements_checking": "Vérification des paquets requis pour {app} …",
|
"app_requirements_checking": "Vérification des paquets requis pour {app} …",
|
||||||
"app_requirements_failed": "Impossible de satisfaire les pré-requis pour {app} : {error}",
|
"app_requirements_failed": "Impossible de satisfaire les pré-requis pour {app} : {error}",
|
||||||
"app_requirements_unmeet": "Les pré-requis de {app} ne sont pas satisfaits, le paquet {pkgname} ({version}) doit être {spec}",
|
"app_requirements_unmeet": "Les pré-requis de {app} ne sont pas satisfaits, le paquet {pkgname} ({version}) doit être {spec}",
|
||||||
|
@ -29,8 +29,8 @@
|
||||||
"app_unknown": "Application inconnue",
|
"app_unknown": "Application inconnue",
|
||||||
"app_unsupported_remote_type": "Ce type de commande à distance utilisé pour cette application n'est pas supporté",
|
"app_unsupported_remote_type": "Ce type de commande à distance utilisé pour cette application n'est pas supporté",
|
||||||
"app_upgrade_failed": "Impossible de mettre à jour {app:s}",
|
"app_upgrade_failed": "Impossible de mettre à jour {app:s}",
|
||||||
"app_upgraded": "{app:s} a été mis à jour",
|
"app_upgraded": "{app:s} mis à jour",
|
||||||
"appslist_fetched": "La liste d’applications {appslist:s} a été récupérée",
|
"appslist_fetched": "La liste d’applications {appslist:s} récupérée",
|
||||||
"appslist_removed": "La liste d’applications {appslist:s} a été supprimée",
|
"appslist_removed": "La liste d’applications {appslist:s} a été supprimée",
|
||||||
"appslist_retrieve_error": "Impossible de récupérer la liste d’applications distante {appslist:s} : {error:s}",
|
"appslist_retrieve_error": "Impossible de récupérer la liste d’applications distante {appslist:s} : {error:s}",
|
||||||
"appslist_unknown": "La liste d’applications {appslist:s} est inconnue.",
|
"appslist_unknown": "La liste d’applications {appslist:s} est inconnue.",
|
||||||
|
@ -46,13 +46,13 @@
|
||||||
"backup_app_failed": "Impossible de sauvegarder l’application '{app:s}'",
|
"backup_app_failed": "Impossible de sauvegarder l’application '{app:s}'",
|
||||||
"backup_archive_app_not_found": "L’application '{app:s}' n’a pas été trouvée dans l’archive de la sauvegarde",
|
"backup_archive_app_not_found": "L’application '{app:s}' n’a pas été trouvée dans l’archive de la sauvegarde",
|
||||||
"backup_archive_hook_not_exec": "Le script « {hook:s} » n'a pas été exécuté dans cette sauvegarde",
|
"backup_archive_hook_not_exec": "Le script « {hook:s} » n'a pas été exécuté dans cette sauvegarde",
|
||||||
"backup_archive_name_exists": "Une archive de sauvegarde avec ce nom existe déjà",
|
"backup_archive_name_exists": "Une archive de sauvegarde avec ce nom existe déjà.",
|
||||||
"backup_archive_name_unknown": "L’archive locale de sauvegarde nommée '{name:s}' est inconnue",
|
"backup_archive_name_unknown": "L’archive locale de sauvegarde nommée '{name:s}' est inconnue",
|
||||||
"backup_archive_open_failed": "Impossible d’ouvrir l’archive de sauvegarde",
|
"backup_archive_open_failed": "Impossible d’ouvrir l’archive de la sauvegarde",
|
||||||
"backup_cleaning_failed": "Impossible de nettoyer le dossier temporaire de sauvegarde",
|
"backup_cleaning_failed": "Impossible de nettoyer le dossier temporaire de sauvegarde",
|
||||||
"backup_created": "Sauvegarde terminée",
|
"backup_created": "Sauvegarde terminée",
|
||||||
"backup_creating_archive": "Création de l’archive de sauvegarde …",
|
"backup_creating_archive": "Création de l’archive de sauvegarde …",
|
||||||
"backup_creation_failed": "Impossible de créer la sauvegarde",
|
"backup_creation_failed": "Impossible de créer l'archive de la sauvegarde",
|
||||||
"backup_delete_error": "Impossible de supprimer '{path:s}'",
|
"backup_delete_error": "Impossible de supprimer '{path:s}'",
|
||||||
"backup_deleted": "La sauvegarde a été supprimée",
|
"backup_deleted": "La sauvegarde a été supprimée",
|
||||||
"backup_extracting_archive": "Extraction de l’archive de sauvegarde …",
|
"backup_extracting_archive": "Extraction de l’archive de sauvegarde …",
|
||||||
|
@ -88,15 +88,15 @@
|
||||||
"domain_zone_not_found": "Fichier de zone DNS introuvable pour le domaine {:s}",
|
"domain_zone_not_found": "Fichier de zone DNS introuvable pour le domaine {:s}",
|
||||||
"done": "Terminé",
|
"done": "Terminé",
|
||||||
"downloading": "Téléchargement en cours …",
|
"downloading": "Téléchargement en cours …",
|
||||||
"dyndns_cron_installed": "La tâche cron pour le domaine DynDNS a été installée",
|
"dyndns_cron_installed": "La tâche cron pour le domaine DynDNS a été créée",
|
||||||
"dyndns_cron_remove_failed": "Impossible de supprimer la tâche cron pour le domaine DynDNS",
|
"dyndns_cron_remove_failed": "Impossible de supprimer la tâche cron DynDNS parce que: {error}",
|
||||||
"dyndns_cron_removed": "La tâche cron pour le domaine DynDNS a été enlevée",
|
"dyndns_cron_removed": "La tâche cron pour le domaine DynDNS enlevée",
|
||||||
"dyndns_ip_update_failed": "Impossible de mettre à jour l’adresse IP sur le domaine DynDNS",
|
"dyndns_ip_update_failed": "Impossible de mettre à jour l’adresse IP sur le domaine DynDNS",
|
||||||
"dyndns_ip_updated": "Votre adresse IP a été mise à jour pour le domaine DynDNS",
|
"dyndns_ip_updated": "Mise à jour de votre IP pour le domaine DynDNS",
|
||||||
"dyndns_key_generating": "La clé DNS est en cours de génération, cela peut prendre un certain temps …",
|
"dyndns_key_generating": "Génération de la clé DNS ... , cela peut prendre un certain temps.",
|
||||||
"dyndns_key_not_found": "Clé DNS introuvable pour le domaine",
|
"dyndns_key_not_found": "Clé DNS introuvable pour le domaine",
|
||||||
"dyndns_no_domain_registered": "Aucun domaine n’a été enregistré avec DynDNS",
|
"dyndns_no_domain_registered": "Aucun domaine enregistré avec DynDNS",
|
||||||
"dyndns_registered": "Le domaine DynDNS a été enregistré",
|
"dyndns_registered": "Domaine DynDNS enregistré",
|
||||||
"dyndns_registration_failed": "Impossible d’enregistrer le domaine DynDNS : {error:s}",
|
"dyndns_registration_failed": "Impossible d’enregistrer le domaine DynDNS : {error:s}",
|
||||||
"dyndns_unavailable": "Le domaine {domain:s} est indisponible.",
|
"dyndns_unavailable": "Le domaine {domain:s} est indisponible.",
|
||||||
"executing_command": "Exécution de la commande '{command:s}' …",
|
"executing_command": "Exécution de la commande '{command:s}' …",
|
||||||
|
@ -104,8 +104,8 @@
|
||||||
"extracting": "Extraction en cours …",
|
"extracting": "Extraction en cours …",
|
||||||
"field_invalid": "Champ incorrect : '{:s}'",
|
"field_invalid": "Champ incorrect : '{:s}'",
|
||||||
"firewall_reload_failed": "Impossible de recharger le pare-feu",
|
"firewall_reload_failed": "Impossible de recharger le pare-feu",
|
||||||
"firewall_reloaded": "Le pare-feu a été rechargé",
|
"firewall_reloaded": "Pare-feu rechargé",
|
||||||
"firewall_rules_cmd_failed": "Certaines règles du pare-feu n’ont pas pu être appliquées. Pour plus d’informations, consultez le journal.",
|
"firewall_rules_cmd_failed": "Certaines règles du pare-feu n’ont pas pu être appliquées. Plus d'info dans le journal de log.",
|
||||||
"format_datetime_short": "%d/%m/%Y %H:%M",
|
"format_datetime_short": "%d/%m/%Y %H:%M",
|
||||||
"hook_argument_missing": "Argument manquant : '{:s}'",
|
"hook_argument_missing": "Argument manquant : '{:s}'",
|
||||||
"hook_choice_invalid": "Choix incorrect : '{:s}'",
|
"hook_choice_invalid": "Choix incorrect : '{:s}'",
|
||||||
|
@ -114,16 +114,16 @@
|
||||||
"hook_list_by_invalid": "Propriété invalide pour lister les actions par celle-ci",
|
"hook_list_by_invalid": "Propriété invalide pour lister les actions par celle-ci",
|
||||||
"hook_name_unknown": "Nom de l'action '{name:s}' inconnu",
|
"hook_name_unknown": "Nom de l'action '{name:s}' inconnu",
|
||||||
"installation_complete": "Installation terminée",
|
"installation_complete": "Installation terminée",
|
||||||
"installation_failed": "Échec de l’installation",
|
"installation_failed": "Quelque chose s'est mal passé lors de l'installation",
|
||||||
"ip6tables_unavailable": "Vous ne pouvez pas jouer avec ip6tables ici. Vous êtes soit dans un conteneur, soit votre noyau ne le prend pas en charge",
|
"ip6tables_unavailable": "Vous ne pouvez pas jouer avec ip6tables ici. Vous êtes soit dans un conteneur, soit votre noyau ne le prend pas en charge",
|
||||||
"iptables_unavailable": "Vous ne pouvez pas jouer avec iptables ici. Vous êtes soit dans un conteneur, soit votre noyau ne le prend pas en charge",
|
"iptables_unavailable": "Vous ne pouvez pas jouer avec iptables ici. Vous êtes soit dans un conteneur, soit votre noyau ne le prend pas en charge",
|
||||||
"ldap_initialized": "L’annuaire LDAP a été initialisé",
|
"ldap_initialized": "L’annuaire LDAP initialisé",
|
||||||
"license_undefined": "indéfinie",
|
"license_undefined": "indéfinie",
|
||||||
"mail_alias_remove_failed": "Impossible de supprimer l’alias de courriel '{mail:s}'",
|
"mail_alias_remove_failed": "Impossible de supprimer l’alias de courriel '{mail:s}'",
|
||||||
"mail_domain_unknown": "Le domaine '{domain:s}' pour l'adresse de courriel est inconnu",
|
"mail_domain_unknown": "Le domaine '{domain:s}' pour l'adresse de courriel est inconnu",
|
||||||
"mail_forward_remove_failed": "Impossible de supprimer le courriel de transfert '{mail:s}'",
|
"mail_forward_remove_failed": "Impossible de supprimer le courriel de transfert '{mail:s}'",
|
||||||
"maindomain_change_failed": "Impossible de modifier le domaine principal",
|
"maindomain_change_failed": "Impossible de modifier le domaine principal",
|
||||||
"maindomain_changed": "Le domaine principal a été modifié",
|
"maindomain_changed": "Le domaine principal modifié",
|
||||||
"monitor_disabled": "La supervision du serveur a été désactivé",
|
"monitor_disabled": "La supervision du serveur a été désactivé",
|
||||||
"monitor_enabled": "La supervision du serveur a été activé",
|
"monitor_enabled": "La supervision du serveur a été activé",
|
||||||
"monitor_glances_con_failed": "Impossible de se connecter au serveur Glances",
|
"monitor_glances_con_failed": "Impossible de se connecter au serveur Glances",
|
||||||
|
@ -173,7 +173,7 @@
|
||||||
"restore_already_installed_app": "Une application est déjà installée avec l’identifiant '{app:s}'",
|
"restore_already_installed_app": "Une application est déjà installée avec l’identifiant '{app:s}'",
|
||||||
"restore_app_failed": "Impossible de restaurer l’application '{app:s}'",
|
"restore_app_failed": "Impossible de restaurer l’application '{app:s}'",
|
||||||
"restore_cleaning_failed": "Impossible de nettoyer le dossier temporaire de restauration",
|
"restore_cleaning_failed": "Impossible de nettoyer le dossier temporaire de restauration",
|
||||||
"restore_complete": "Restauration terminée",
|
"restore_complete": "Restauré",
|
||||||
"restore_confirm_yunohost_installed": "Voulez-vous vraiment restaurer un système déjà installé ? [{answers:s}]",
|
"restore_confirm_yunohost_installed": "Voulez-vous vraiment restaurer un système déjà installé ? [{answers:s}]",
|
||||||
"restore_failed": "Impossible de restaurer le système",
|
"restore_failed": "Impossible de restaurer le système",
|
||||||
"restore_hook_unavailable": "Le script de restauration '{part:s}' n’est pas disponible sur votre système, et ne l'est pas non plus dans l’archive",
|
"restore_hook_unavailable": "Le script de restauration '{part:s}' n’est pas disponible sur votre système, et ne l'est pas non plus dans l’archive",
|
||||||
|
@ -182,7 +182,7 @@
|
||||||
"restore_running_hooks": "Exécution des scripts de restauration …",
|
"restore_running_hooks": "Exécution des scripts de restauration …",
|
||||||
"service_add_configuration": "Ajout du fichier de configuration {file:s}",
|
"service_add_configuration": "Ajout du fichier de configuration {file:s}",
|
||||||
"service_add_failed": "Impossible d’ajouter le service '{service:s}'",
|
"service_add_failed": "Impossible d’ajouter le service '{service:s}'",
|
||||||
"service_added": "Le service '{service:s}' a été ajouté",
|
"service_added": "Le service '{service:s}' ajouté",
|
||||||
"service_already_started": "Le service '{service:s}' est déjà démarré",
|
"service_already_started": "Le service '{service:s}' est déjà démarré",
|
||||||
"service_already_stopped": "Le service '{service:s}' est déjà arrêté",
|
"service_already_stopped": "Le service '{service:s}' est déjà arrêté",
|
||||||
"service_cmd_exec_failed": "Impossible d’exécuter la commande '{command:s}'",
|
"service_cmd_exec_failed": "Impossible d’exécuter la commande '{command:s}'",
|
||||||
|
@ -218,9 +218,9 @@
|
||||||
"service_unknown": "Le service '{service:s}' est inconnu",
|
"service_unknown": "Le service '{service:s}' est inconnu",
|
||||||
"services_configured": "La configuration a été générée avec succès",
|
"services_configured": "La configuration a été générée avec succès",
|
||||||
"show_diff": "Voici les différences :\n{diff:s}",
|
"show_diff": "Voici les différences :\n{diff:s}",
|
||||||
"ssowat_conf_generated": "La configuration de SSOwat a été générée",
|
"ssowat_conf_generated": "La configuration de SSOwat générée",
|
||||||
"ssowat_conf_updated": "La configuration de SSOwat a été mise à jour",
|
"ssowat_conf_updated": "La configuration de SSOwat mise à jour",
|
||||||
"system_upgraded": "Le système a été mis à jour",
|
"system_upgraded": "Système mis à jour",
|
||||||
"system_username_exists": "Ce nom d’utilisateur existe déjà dans les utilisateurs système",
|
"system_username_exists": "Ce nom d’utilisateur existe déjà dans les utilisateurs système",
|
||||||
"unbackup_app": "L’application '{app:s}' ne sera pas sauvegardée",
|
"unbackup_app": "L’application '{app:s}' ne sera pas sauvegardée",
|
||||||
"unexpected_error": "Une erreur inattendue est survenue : {error}",
|
"unexpected_error": "Une erreur inattendue est survenue : {error}",
|
||||||
|
@ -232,12 +232,12 @@
|
||||||
"upgrade_complete": "Mise à jour terminée",
|
"upgrade_complete": "Mise à jour terminée",
|
||||||
"upgrading_packages": "Mise à jour des paquets en cours …",
|
"upgrading_packages": "Mise à jour des paquets en cours …",
|
||||||
"upnp_dev_not_found": "Aucun périphérique compatible UPnP n’a été trouvé",
|
"upnp_dev_not_found": "Aucun périphérique compatible UPnP n’a été trouvé",
|
||||||
"upnp_disabled": "UPnP a été désactivé",
|
"upnp_disabled": "UPnP désactivé",
|
||||||
"upnp_enabled": "UPnP a été activé",
|
"upnp_enabled": "UPnP activé",
|
||||||
"upnp_port_open_failed": "Impossible d’ouvrir les ports UPnP",
|
"upnp_port_open_failed": "Impossible d’ouvrir les ports UPnP",
|
||||||
"user_created": "L’utilisateur a été créé",
|
"user_created": "L’utilisateur créé",
|
||||||
"user_creation_failed": "Impossible de créer l’utilisateur",
|
"user_creation_failed": "Impossible de créer l’utilisateur",
|
||||||
"user_deleted": "L’utilisateur a été supprimé",
|
"user_deleted": "L’utilisateur supprimé",
|
||||||
"user_deletion_failed": "Impossible de supprimer l’utilisateur",
|
"user_deletion_failed": "Impossible de supprimer l’utilisateur",
|
||||||
"user_home_creation_failed": "Impossible de créer le dossier personnel de l’utilisateur",
|
"user_home_creation_failed": "Impossible de créer le dossier personnel de l’utilisateur",
|
||||||
"user_info_failed": "Impossible de récupérer les informations de l’utilisateur",
|
"user_info_failed": "Impossible de récupérer les informations de l’utilisateur",
|
||||||
|
@ -246,7 +246,7 @@
|
||||||
"user_updated": "L’utilisateur a été modifié",
|
"user_updated": "L’utilisateur a été modifié",
|
||||||
"yunohost_already_installed": "YunoHost est déjà installé",
|
"yunohost_already_installed": "YunoHost est déjà installé",
|
||||||
"yunohost_ca_creation_failed": "Impossible de créer l’autorité de certification",
|
"yunohost_ca_creation_failed": "Impossible de créer l’autorité de certification",
|
||||||
"yunohost_configured": "YunoHost a été configuré",
|
"yunohost_configured": "YunoHost maintenant configuré",
|
||||||
"yunohost_installing": "L'installation de YunoHost est en cours …",
|
"yunohost_installing": "L'installation de YunoHost est en cours …",
|
||||||
"yunohost_not_installed": "YunoHost n’est pas ou pas correctement installé. Veuillez exécuter 'yunohost tools postinstall'",
|
"yunohost_not_installed": "YunoHost n’est pas ou pas correctement installé. Veuillez exécuter 'yunohost tools postinstall'",
|
||||||
"certmanager_attempt_to_replace_valid_cert": "Vous êtes en train de vouloir remplacer un certificat correct et valide pour le domaine {domain:s} ! (Utilisez --force pour contourner cela)",
|
"certmanager_attempt_to_replace_valid_cert": "Vous êtes en train de vouloir remplacer un certificat correct et valide pour le domaine {domain:s} ! (Utilisez --force pour contourner cela)",
|
||||||
|
@ -259,17 +259,17 @@
|
||||||
"certmanager_error_no_A_record": "Aucun enregistrement DNS 'A' n’a été trouvé pour {domain:s}. Vous devez faire pointer votre nom de domaine vers votre machine pour être en mesure d’installer un certificat Let’s Encrypt ! (Si vous savez ce que vous faites, utilisez --no-checks pour désactiver ces contrôles)",
|
"certmanager_error_no_A_record": "Aucun enregistrement DNS 'A' n’a été trouvé pour {domain:s}. Vous devez faire pointer votre nom de domaine vers votre machine pour être en mesure d’installer un certificat Let’s Encrypt ! (Si vous savez ce que vous faites, utilisez --no-checks pour désactiver ces contrôles)",
|
||||||
"certmanager_domain_dns_ip_differs_from_public_ip": "L’enregistrement DNS 'A' du domaine {domain:s} est différent de l’adresse IP de ce serveur. Si vous avez récemment modifié votre enregistrement 'A', veuillez attendre sa propagation (quelques vérificateur de propagation DNS sont disponibles en ligne). (Si vous savez ce que vous faites, utilisez --no-checks pour désactiver ces contrôles)",
|
"certmanager_domain_dns_ip_differs_from_public_ip": "L’enregistrement DNS 'A' du domaine {domain:s} est différent de l’adresse IP de ce serveur. Si vous avez récemment modifié votre enregistrement 'A', veuillez attendre sa propagation (quelques vérificateur de propagation DNS sont disponibles en ligne). (Si vous savez ce que vous faites, utilisez --no-checks pour désactiver ces contrôles)",
|
||||||
"certmanager_cannot_read_cert": "Quelque chose s’est mal passé lors de la tentative d’ouverture du certificat actuel pour le domaine {domain:s} (fichier : {file:s}), la cause est : {reason:s}",
|
"certmanager_cannot_read_cert": "Quelque chose s’est mal passé lors de la tentative d’ouverture du certificat actuel pour le domaine {domain:s} (fichier : {file:s}), la cause est : {reason:s}",
|
||||||
"certmanager_cert_install_success_selfsigned": "Installation avec succès d’un certificat auto-signé pour le domaine {domain:s} !",
|
"certmanager_cert_install_success_selfsigned": "Le certificat auto-signé est maintenant installé pour le domaine « {domain:s} »",
|
||||||
"certmanager_cert_install_success": "Installation avec succès d’un certificat Let’s Encrypt pour le domaine {domain:s} !",
|
"certmanager_cert_install_success": "Le certificat Let’s Encrypt est maintenant installé pour le domaine « {domain:s} »",
|
||||||
"certmanager_cert_renew_success": "Renouvellement avec succès d’un certificat Let’s Encrypt pour le domaine {domain:s} !",
|
"certmanager_cert_renew_success": "Certificat Let's Encrypt renouvelé pour le domaine '{domain: s}'",
|
||||||
"certmanager_old_letsencrypt_app_detected": "\nYunoHost a détecté que l’application « letsencrypt » est installé, ce qui est en conflit avec les nouvelles fonctionnalités de gestion intégrée de certificats dans YunoHost. Si vous souhaitez utiliser ces nouvelles fonctionnalités intégrées, veuillez lancer les commandes suivantes pour migrer votre installation :\n\n yunohost app remove letsencrypt\n yunohost domain cert-install\n\nN.B. : cela tentera de réinstaller les certificats de tous les domaines avec un certificat Let's Encrypt ou ceux auto-signés",
|
"certmanager_old_letsencrypt_app_detected": "\nYunoHost a détecté que l’application « letsencrypt » est installé, ce qui est en conflit avec les nouvelles fonctionnalités de gestion intégrée de certificats dans YunoHost. Si vous souhaitez utiliser ces nouvelles fonctionnalités intégrées, veuillez lancer les commandes suivantes pour migrer votre installation :\n\n yunohost app remove letsencrypt\n yunohost domain cert-install\n\nN.B. : cela tentera de réinstaller les certificats de tous les domaines avec un certificat Let's Encrypt ou ceux auto-signés",
|
||||||
"certmanager_cert_signing_failed": "La signature du nouveau certificat a échoué",
|
"certmanager_cert_signing_failed": "Impossible de signer le nouveau certificat",
|
||||||
"certmanager_no_cert_file": "Impossible de lire le fichier du certificat pour le domaine {domain:s} (fichier : {file:s})",
|
"certmanager_no_cert_file": "Impossible de lire le fichier du certificat pour le domaine {domain:s} (fichier : {file:s})",
|
||||||
"certmanager_conflicting_nginx_file": "Impossible de préparer le domaine pour le défi ACME : le fichier de configuration Nginx {filepath:s} est en conflit et doit être préalablement retiré",
|
"certmanager_conflicting_nginx_file": "Impossible de préparer le domaine pour le défi ACME : le fichier de configuration NGINX {filepath:s} est en conflit et doit être préalablement retiré",
|
||||||
"certmanager_hit_rate_limit": "Trop de certificats ont déjà été émis récemment pour ce même ensemble de domaines {domain:s}. Veuillez réessayer plus tard. Lisez https://letsencrypt.org/docs/rate-limits/ pour obtenir plus de détails sur les ratios et limitations",
|
"certmanager_hit_rate_limit": "Trop de certificats ont déjà été émis récemment pour ce même ensemble de domaines {domain:s}. Veuillez réessayer plus tard. Lisez https://letsencrypt.org/docs/rate-limits/ pour obtenir plus de détails sur les ratios et limitations",
|
||||||
"ldap_init_failed_to_create_admin": "L’initialisation de l'annuaire LDAP n’a pas réussi à créer l’utilisateur admin",
|
"ldap_init_failed_to_create_admin": "L’initialisation de l'annuaire LDAP n’a pas réussi à créer l’utilisateur admin",
|
||||||
"ssowat_persistent_conf_read_error": "Erreur lors de la lecture de la configuration persistante de SSOwat : {error:s}. Modifiez le fichier /etc/ssowat/conf.json.persistent pour réparer la syntaxe JSON",
|
"ssowat_persistent_conf_read_error": "Impossible de lire la configuration persistante de SSOwat : {error:s}. Modifiez le fichier /etc/ssowat/conf.json.persistent pour réparer la syntaxe JSON",
|
||||||
"ssowat_persistent_conf_write_error": "Erreur lors de la sauvegarde de la configuration persistante de SSOwat : {error:s}. Modifiez le fichier /etc/ssowat/conf.json.persistent pour réparer la syntaxe JSON",
|
"ssowat_persistent_conf_write_error": "Impossible de sauvegarder de la configuration persistante de SSOwat : {error:s}. Modifiez le fichier /etc/ssowat/conf.json.persistent pour réparer la syntaxe JSON",
|
||||||
"domain_cannot_remove_main": "Impossible de supprimer le domaine principal. Définissez d'abord un nouveau domaine principal",
|
"domain_cannot_remove_main": "Impossible de supprimer le domaine principal. Définissez d'abord un nouveau domaine principal",
|
||||||
"certmanager_self_ca_conf_file_not_found": "Le fichier de configuration pour l’autorité du certificat auto-signé est introuvable (fichier : {file:s})",
|
"certmanager_self_ca_conf_file_not_found": "Le fichier de configuration pour l’autorité du certificat auto-signé est introuvable (fichier : {file:s})",
|
||||||
"certmanager_unable_to_parse_self_CA_name": "Impossible d’analyser le nom de l’autorité du certificat auto-signé (fichier : {file:s})",
|
"certmanager_unable_to_parse_self_CA_name": "Impossible d’analyser le nom de l’autorité du certificat auto-signé (fichier : {file:s})",
|
||||||
|
@ -280,14 +280,14 @@
|
||||||
"certmanager_domain_not_resolved_locally": "Le domaine {domain:s} ne peut être résolu depuis votre serveur YunoHost. Cela peut se produire si vous avez récemment modifié votre enregistrement DNS. Si c'est le cas, merci d’attendre quelques heures qu’il se propage. Si le problème persiste, envisager d’ajouter {domain:s} au fichier /etc/hosts. (Si vous savez ce que vous faites, utilisez --no-checks pour désactiver ces vérifications.)",
|
"certmanager_domain_not_resolved_locally": "Le domaine {domain:s} ne peut être résolu depuis votre serveur YunoHost. Cela peut se produire si vous avez récemment modifié votre enregistrement DNS. Si c'est le cas, merci d’attendre quelques heures qu’il se propage. Si le problème persiste, envisager d’ajouter {domain:s} au fichier /etc/hosts. (Si vous savez ce que vous faites, utilisez --no-checks pour désactiver ces vérifications.)",
|
||||||
"certmanager_http_check_timeout": "Expiration du délai lorsque le serveur a essayé de se contacter lui-même via HTTP en utilisant l'adresse IP public {ip:s} du domaine {domain:s}. Vous rencontrez peut-être un problème d’hairpinning ou alors le pare-feu/routeur en amont de votre serveur est mal configuré.",
|
"certmanager_http_check_timeout": "Expiration du délai lorsque le serveur a essayé de se contacter lui-même via HTTP en utilisant l'adresse IP public {ip:s} du domaine {domain:s}. Vous rencontrez peut-être un problème d’hairpinning ou alors le pare-feu/routeur en amont de votre serveur est mal configuré.",
|
||||||
"certmanager_couldnt_fetch_intermediate_cert": "Expiration du délai lors de la tentative de récupération du certificat intermédiaire depuis Let’s Encrypt. L’installation ou le renouvellement du certificat a été annulé. Veuillez réessayer plus tard.",
|
"certmanager_couldnt_fetch_intermediate_cert": "Expiration du délai lors de la tentative de récupération du certificat intermédiaire depuis Let’s Encrypt. L’installation ou le renouvellement du certificat a été annulé. Veuillez réessayer plus tard.",
|
||||||
"appslist_retrieve_bad_format": "Le fichier récupéré pour la liste d’applications {appslist:s} n’est pas valide",
|
"appslist_retrieve_bad_format": "Impossible de lire la liste des applications extraites {appslist: s}",
|
||||||
"domain_hostname_failed": "Échec de l’utilisation d’un nouveau nom d’hôte. Cela pourrait causer des soucis plus tard (mais ce n’est pas sûr… peut-être que ça n’en causera pas).",
|
"domain_hostname_failed": "Échec de l’utilisation d’un nouveau nom d’hôte. Cela pourrait causer des soucis plus tard (peut-être que ça n’en causera pas).",
|
||||||
"yunohost_ca_creation_success": "L’autorité de certification locale a été créée.",
|
"yunohost_ca_creation_success": "L’autorité de certification locale créée.",
|
||||||
"appslist_name_already_tracked": "Il y a déjà une liste d’applications enregistrée avec le nom {name:s}.",
|
"appslist_name_already_tracked": "Il y a déjà une liste d’applications enregistrée avec le nom {name:s} existe déjà.",
|
||||||
"appslist_url_already_tracked": "Il y a déjà une liste d’applications enregistrée avec l’URL {url:s}.",
|
"appslist_url_already_tracked": "Il y a déjà une liste d’applications enregistrée avec l’URL {url:s}.",
|
||||||
"appslist_migrating": "Migration de la liste d’applications {appslist:s} …",
|
"appslist_migrating": "Migration de la liste d’applications {appslist:s} …",
|
||||||
"appslist_could_not_migrate": "Impossible de migrer la liste {appslist:s} ! Impossible d’exploiter l’URL. L’ancienne tâche programmée a été conservée dans {bkp_file:s}.",
|
"appslist_could_not_migrate": "Impossible de migrer la liste {appslist:s} ! Impossible d’exploiter l’URL. L’ancienne tâche programmée a été conservée dans {bkp_file:s}.",
|
||||||
"appslist_corrupted_json": "Impossible de charger la liste d’applications. Il semble que {filename:s} soit corrompu.",
|
"appslist_corrupted_json": "Impossible de charger la liste d’applications. Il semble que {filename:s} soit endommager.",
|
||||||
"app_already_installed_cant_change_url": "Cette application est déjà installée. L’URL ne peut pas être changé simplement par cette fonction. Regardez si cela est disponible avec `app changeurl`.",
|
"app_already_installed_cant_change_url": "Cette application est déjà installée. L’URL ne peut pas être changé simplement par cette fonction. Regardez si cela est disponible avec `app changeurl`.",
|
||||||
"app_change_no_change_url_script": "L’application {app_name:s} ne prend pas encore en charge le changement d’URL, vous pourriez avoir besoin de la mettre à jour.",
|
"app_change_no_change_url_script": "L’application {app_name:s} ne prend pas encore en charge le changement d’URL, vous pourriez avoir besoin de la mettre à jour.",
|
||||||
"app_change_url_failed_nginx_reload": "Le redémarrage de Nginx a échoué. Voici la sortie de 'nginx -t' :\n{nginx_errors:s}",
|
"app_change_url_failed_nginx_reload": "Le redémarrage de Nginx a échoué. Voici la sortie de 'nginx -t' :\n{nginx_errors:s}",
|
||||||
|
@ -297,13 +297,13 @@
|
||||||
"app_location_unavailable": "Cette URL n’est pas disponible ou est en conflit avec une application existante :\n{apps:s}",
|
"app_location_unavailable": "Cette URL n’est pas disponible ou est en conflit avec une application existante :\n{apps:s}",
|
||||||
"app_already_up_to_date": "{app:s} est déjà à jour",
|
"app_already_up_to_date": "{app:s} est déjà à jour",
|
||||||
"invalid_url_format": "Format d’URL non valide",
|
"invalid_url_format": "Format d’URL non valide",
|
||||||
"global_settings_bad_choice_for_enum": "Valeur du paramètre {setting:s} incorrecte. Reçu : {received_type:s}, mais les valeurs possibles sont : {expected_type:s}",
|
"global_settings_bad_choice_for_enum": "Valeur du paramètre {setting:s} incorrecte. Reçu : {choice:s}, mais les valeurs possibles sont : {available_choices:s}",
|
||||||
"global_settings_bad_type_for_setting": "Le type du paramètre {setting:s} est incorrect. Reçu {received_type:s} alors que {expected_type:s} était attendu",
|
"global_settings_bad_type_for_setting": "Le type du paramètre {setting:s} est incorrect. Reçu {received_type:s} alors que {expected_type:s} était attendu",
|
||||||
"global_settings_cant_open_settings": "Échec de l’ouverture du ficher de configurations car : {reason:s}",
|
"global_settings_cant_open_settings": "Échec de l’ouverture du ficher de configurations car : {reason:s}",
|
||||||
"global_settings_cant_serialize_setings": "Échec de sérialisation des données de configurations, cause : {reason:s}",
|
"global_settings_cant_serialize_setings": "Échec de sérialisation des données de configurations, cause : {reason:s}",
|
||||||
"global_settings_cant_write_settings": "Échec d’écriture du fichier de configurations car : {reason:s}",
|
"global_settings_cant_write_settings": "Échec d’écriture du fichier de configurations car : {reason:s}",
|
||||||
"global_settings_key_doesnt_exists": "La clef '{settings_key:s}' n’existe pas dans les configurations générales, vous pouvez voir toutes les clefs disponibles en saisissant 'yunohost settings list'",
|
"global_settings_key_doesnt_exists": "La clef '{settings_key:s}' n’existe pas dans les configurations générales, vous pouvez voir toutes les clefs disponibles en saisissant 'yunohost settings list'",
|
||||||
"global_settings_reset_success": "Super ! Vos configurations précédentes ont été sauvegardées dans {path:s}",
|
"global_settings_reset_success": "Vos configurations précédentes ont été sauvegardées dans {path:s}",
|
||||||
"global_settings_setting_example_bool": "Exemple d’option booléenne",
|
"global_settings_setting_example_bool": "Exemple d’option booléenne",
|
||||||
"global_settings_setting_example_int": "Exemple d’option de type entier",
|
"global_settings_setting_example_int": "Exemple d’option de type entier",
|
||||||
"global_settings_setting_example_string": "Exemple d’option de type chaîne",
|
"global_settings_setting_example_string": "Exemple d’option de type chaîne",
|
||||||
|
@ -312,8 +312,8 @@
|
||||||
"global_settings_unknown_setting_from_settings_file": "Clé inconnue dans les paramètres : '{setting_key:s}', rejet de cette clé et sauvegarde de celle-ci dans /etc/yunohost/unkown_settings.json",
|
"global_settings_unknown_setting_from_settings_file": "Clé inconnue dans les paramètres : '{setting_key:s}', rejet de cette clé et sauvegarde de celle-ci dans /etc/yunohost/unkown_settings.json",
|
||||||
"service_conf_new_managed_file": "Le fichier de configuration « {conf} » est désormais géré par le service {service}.",
|
"service_conf_new_managed_file": "Le fichier de configuration « {conf} » est désormais géré par le service {service}.",
|
||||||
"service_conf_file_kept_back": "Le fichier de configuration '{conf}' devait être supprimé par le service {service} mais a été conservé.",
|
"service_conf_file_kept_back": "Le fichier de configuration '{conf}' devait être supprimé par le service {service} mais a été conservé.",
|
||||||
"backup_abstract_method": "Cette méthode de sauvegarde n’a pas encore été implémentée",
|
"backup_abstract_method": "Cette méthode de sauvegarde reste à implémenter",
|
||||||
"backup_applying_method_tar": "Création de l’archive tar de la sauvegarde …",
|
"backup_applying_method_tar": "Création de l’archive TAR de la sauvegarde…",
|
||||||
"backup_applying_method_copy": "Copie de tous les fichiers à sauvegarder …",
|
"backup_applying_method_copy": "Copie de tous les fichiers à sauvegarder …",
|
||||||
"backup_applying_method_borg": "Envoi de tous les fichiers à sauvegarder dans le répertoire borg-backup…",
|
"backup_applying_method_borg": "Envoi de tous les fichiers à sauvegarder dans le répertoire borg-backup…",
|
||||||
"backup_applying_method_custom": "Appel de la méthode de sauvegarde personnalisée '{method:s}' …",
|
"backup_applying_method_custom": "Appel de la méthode de sauvegarde personnalisée '{method:s}' …",
|
||||||
|
@ -324,20 +324,20 @@
|
||||||
"backup_borg_not_implemented": "La méthode de sauvegarde Borg n’est pas encore implémentée",
|
"backup_borg_not_implemented": "La méthode de sauvegarde Borg n’est pas encore implémentée",
|
||||||
"backup_cant_mount_uncompress_archive": "Impossible de monter en lecture seule le dossier de l’archive décompressée",
|
"backup_cant_mount_uncompress_archive": "Impossible de monter en lecture seule le dossier de l’archive décompressée",
|
||||||
"backup_copying_to_organize_the_archive": "Copie de {size:s} Mo pour organiser l’archive",
|
"backup_copying_to_organize_the_archive": "Copie de {size:s} Mo pour organiser l’archive",
|
||||||
"backup_csv_creation_failed": "Impossible de créer le fichier CSV nécessaire aux opérations futures de restauration",
|
"backup_csv_creation_failed": "Impossible de créer le fichier CSV nécessaire à la restauration",
|
||||||
"backup_csv_addition_failed": "Impossible d’ajouter des fichiers à sauvegarder dans le fichier CSV",
|
"backup_csv_addition_failed": "Impossible d’ajouter des fichiers à sauvegarder dans le fichier CSV",
|
||||||
"backup_custom_need_mount_error": "Échec de la méthode de sauvegarde personnalisée à l’étape 'need_mount'",
|
"backup_custom_need_mount_error": "Échec de la méthode de sauvegarde personnalisée à l’étape 'need_mount'",
|
||||||
"backup_custom_backup_error": "Échec de la méthode de sauvegarde personnalisée à l’étape 'backup'",
|
"backup_custom_backup_error": "Échec de la méthode de sauvegarde personnalisée à l’étape 'backup'",
|
||||||
"backup_custom_mount_error": "Échec de la méthode de sauvegarde personnalisée à l’étape 'mount'",
|
"backup_custom_mount_error": "Échec de la méthode de sauvegarde personnalisée à l’étape 'mount'",
|
||||||
"backup_no_uncompress_archive_dir": "Le dossier de l’archive décompressée n’existe pas",
|
"backup_no_uncompress_archive_dir": "Ce dossier d’archive décompressée n’existe pas",
|
||||||
"backup_method_tar_finished": "L’archive tar de la sauvegarde a été créée",
|
"backup_method_tar_finished": "L’archive TAR de la sauvegarde a été créée",
|
||||||
"backup_method_copy_finished": "La copie de la sauvegarde est terminée",
|
"backup_method_copy_finished": "La copie de la sauvegarde est terminée",
|
||||||
"backup_method_borg_finished": "La sauvegarde dans Borg est terminée",
|
"backup_method_borg_finished": "La sauvegarde dans Borg est terminée",
|
||||||
"backup_method_custom_finished": "La méthode de sauvegarde personnalisée '{method:s}' est terminée",
|
"backup_method_custom_finished": "La méthode de sauvegarde personnalisée '{method:s}' est terminée",
|
||||||
"backup_system_part_failed": "Impossible de sauvegarder la partie '{part:s}' du système",
|
"backup_system_part_failed": "Impossible de sauvegarder la partie '{part:s}' du système",
|
||||||
"backup_unable_to_organize_files": "Impossible d’organiser les fichiers dans l’archive avec la méthode rapide",
|
"backup_unable_to_organize_files": "Impossible d’utiliser la méthode rapide pour organiser les fichiers dans l’archive",
|
||||||
"backup_with_no_backup_script_for_app": "L’application {app:s} n’a pas de script de sauvegarde. Ignorer.",
|
"backup_with_no_backup_script_for_app": "L’application {app:s} n’a pas de script de sauvegarde. Ignorer.",
|
||||||
"backup_with_no_restore_script_for_app": "L’application {app:s} n’a pas de script de restauration, vous ne pourrez pas restaurer automatiquement la sauvegarde de cette application.",
|
"backup_with_no_restore_script_for_app": "L’application « {app:s} » n’a pas de script de restauration, vous ne pourrez pas restaurer automatiquement la sauvegarde de cette application.",
|
||||||
"global_settings_cant_serialize_settings": "Échec de la sérialisation des données de paramétrage car : {reason:s}",
|
"global_settings_cant_serialize_settings": "Échec de la sérialisation des données de paramétrage car : {reason:s}",
|
||||||
"restore_removing_tmp_dir_failed": "Impossible de sauvegarder un ancien dossier temporaire",
|
"restore_removing_tmp_dir_failed": "Impossible de sauvegarder un ancien dossier temporaire",
|
||||||
"restore_extracting": "Extraction des fichiers nécessaires depuis l’archive …",
|
"restore_extracting": "Extraction des fichiers nécessaires depuis l’archive …",
|
||||||
|
@ -350,35 +350,35 @@
|
||||||
"domain_dyndns_dynette_is_unreachable": "Impossible de contacter la dynette YunoHost. Soit YunoHost n’est pas correctement connecté à internet, soit le serveur de dynette est en panne. Erreur : {error}",
|
"domain_dyndns_dynette_is_unreachable": "Impossible de contacter la dynette YunoHost. Soit YunoHost n’est pas correctement connecté à internet, soit le serveur de dynette est en panne. Erreur : {error}",
|
||||||
"migrations_backward": "Migration en arrière.",
|
"migrations_backward": "Migration en arrière.",
|
||||||
"migrations_bad_value_for_target": "Nombre invalide pour le paramètre target, les numéros de migration sont 0 ou {}",
|
"migrations_bad_value_for_target": "Nombre invalide pour le paramètre target, les numéros de migration sont 0 ou {}",
|
||||||
"migrations_cant_reach_migration_file": "Impossible d’accéder aux fichiers de migrations avec le chemin %s",
|
"migrations_cant_reach_migration_file": "Impossible d'accéder aux fichiers de migration sur le chemin% s",
|
||||||
"migrations_current_target": "La cible de migration est {}",
|
"migrations_current_target": "La cible de migration est {}",
|
||||||
"migrations_error_failed_to_load_migration": "ERREUR : échec du chargement de migration {number} {name}",
|
"migrations_error_failed_to_load_migration": "ERREUR : échec du chargement de migration {number} {name}",
|
||||||
"migrations_forward": "Migration en avant",
|
"migrations_forward": "Migration en avant",
|
||||||
"migrations_loading_migration": "Chargement de la migration {number} {name} …",
|
"migrations_loading_migration": "Chargement de la migration {id} …",
|
||||||
"migrations_migration_has_failed": "La migration {number} {name} a échoué avec l’exception {exception} : annulation",
|
"migrations_migration_has_failed": "La migration {id} a échoué avec l’exception {exception} : annulation",
|
||||||
"migrations_no_migrations_to_run": "Aucune migration à lancer",
|
"migrations_no_migrations_to_run": "Aucune migration à lancer",
|
||||||
"migrations_show_currently_running_migration": "Application de la migration {number} {name} …",
|
"migrations_show_currently_running_migration": "Application de la migration {number} {name} …",
|
||||||
"migrations_show_last_migration": "La dernière migration appliquée est {}",
|
"migrations_show_last_migration": "La dernière migration appliquée est {}",
|
||||||
"migrations_skip_migration": "Ignorer et passer la migration {number} {name}…",
|
"migrations_skip_migration": "Ignorer et passer la migration {id}…",
|
||||||
"server_shutdown": "Le serveur va éteindre",
|
"server_shutdown": "Le serveur va éteindre",
|
||||||
"server_shutdown_confirm": "Le serveur va être éteint immédiatement, le voulez-vous vraiment ? [{answers:s}]",
|
"server_shutdown_confirm": "Le serveur va être éteint immédiatement, le voulez-vous vraiment ? [{answers:s}]",
|
||||||
"server_reboot": "Le serveur va redémarrer",
|
"server_reboot": "Le serveur va redémarrer",
|
||||||
"server_reboot_confirm": "Le serveur va redémarrer immédiatement, le voulez-vous vraiment ? [{answers:s}]",
|
"server_reboot_confirm": "Le serveur va redémarrer immédiatement, le voulez-vous vraiment ? [{answers:s}]",
|
||||||
"app_upgrade_some_app_failed": "Impossible de mettre à jour certaines applications",
|
"app_upgrade_some_app_failed": "Certaines applications n’ont pas été mises à jour",
|
||||||
"ask_path": "Chemin",
|
"ask_path": "Chemin",
|
||||||
"dyndns_could_not_check_provide": "Impossible de vérifier si {provider:s} peut fournir {domain:s}.",
|
"dyndns_could_not_check_provide": "Impossible de vérifier si {provider:s} peut fournir {domain:s}.",
|
||||||
"dyndns_domain_not_provided": "Le fournisseur DynDNS {provider:s} ne peut pas fournir le domaine {domain:s}.",
|
"dyndns_domain_not_provided": "Le fournisseur DynDNS {provider:s} ne peut pas fournir le domaine {domain:s}.",
|
||||||
"app_make_default_location_already_used": "Impossible de configurer l’application '{app}' par défaut pour le domaine {domain} car il est déjà utilisé par l'application '{other_app}'",
|
"app_make_default_location_already_used": "Impossible de configurer l’application '{app}' par défaut pour le domaine {domain} car il est déjà utilisé par l'application '{other_app}'",
|
||||||
"app_upgrade_app_name": "Mise à jour de l’application {app} …",
|
"app_upgrade_app_name": "Mise à jour de l’application {app} …",
|
||||||
"backup_output_symlink_dir_broken": "Vous avez un lien symbolique cassé à la place de votre dossier d’archives « {path:s} ». Vous pourriez avoir une configuration personnalisée pour sauvegarder vos données sur un autre système de fichiers, dans ce cas vous avez probablement oublié de monter ou de connecter votre disque dur ou votre clé USB.",
|
"backup_output_symlink_dir_broken": "Vous avez un lien symbolique cassé à la place de votre dossier d’archives « {path:s} ». Vous pourriez avoir une configuration personnalisée pour sauvegarder vos données sur un autre système de fichiers, dans ce cas vous avez probablement oublié de monter ou de connecter votre disque dur ou votre clé USB.",
|
||||||
"migrate_tsig_end": "La migration à hmac-sha512 est terminée",
|
"migrate_tsig_end": "La migration à HMAC-SHA-512 est terminée",
|
||||||
"migrate_tsig_failed": "La migration du domaine DynDNS {domain} à hmac-sha512 a échoué. Annulation des modifications. Erreur : {error_code} - {error}",
|
"migrate_tsig_failed": "La migration du domaine DynDNS {domain} à hmac-sha512 a échoué. Annulation des modifications. Erreur : {error_code} - {error}",
|
||||||
"migrate_tsig_start": "L’algorithme de génération des clefs n’est pas suffisamment sécurisé pour la signature TSIG du domaine '{domain}', lancement de la migration vers hmac-sha512 qui est plus sécurisé",
|
"migrate_tsig_start": "L’algorithme de génération des clefs n’est pas suffisamment sécurisé pour la signature TSIG du domaine '{domain}', lancement de la migration vers HMAC-SHA-512 qui est plus sécurisé",
|
||||||
"migrate_tsig_wait": "Attendre 3 minutes pour que le serveur DynDNS prenne en compte la nouvelle clef …",
|
"migrate_tsig_wait": "Attendre trois minutes pour que le serveur DynDNS prenne en compte la nouvelle clef …",
|
||||||
"migrate_tsig_wait_2": "2 minutes …",
|
"migrate_tsig_wait_2": "2 minutes …",
|
||||||
"migrate_tsig_wait_3": "1 minute …",
|
"migrate_tsig_wait_3": "1 minute …",
|
||||||
"migrate_tsig_wait_4": "30 secondes …",
|
"migrate_tsig_wait_4": "30 secondes …",
|
||||||
"migrate_tsig_not_needed": "Il ne semble pas que vous utilisez un domaine DynDNS, donc aucune migration n’est nécessaire !",
|
"migrate_tsig_not_needed": "Il ne semble pas que vous utilisez un domaine DynDNS, donc aucune migration n’est nécessaire.",
|
||||||
"app_checkurl_is_deprecated": "Packagers /!\\ 'app checkurl' est obsolète ! Utilisez 'app register-url' en remplacement !",
|
"app_checkurl_is_deprecated": "Packagers /!\\ 'app checkurl' est obsolète ! Utilisez 'app register-url' en remplacement !",
|
||||||
"migration_description_0001_change_cert_group_to_sslcert": "Changement des permissions de groupe des certificats de « metronome » à « ssl-cert »",
|
"migration_description_0001_change_cert_group_to_sslcert": "Changement des permissions de groupe des certificats de « metronome » à « ssl-cert »",
|
||||||
"migration_description_0002_migrate_to_tsig_sha256": "Amélioration de la sécurité de DynDNS TSIG en utilisant SHA512 au lieu de MD5",
|
"migration_description_0002_migrate_to_tsig_sha256": "Amélioration de la sécurité de DynDNS TSIG en utilisant SHA512 au lieu de MD5",
|
||||||
|
@ -393,37 +393,37 @@
|
||||||
"migration_0003_not_jessie": "La distribution Debian actuelle n’est pas Jessie !",
|
"migration_0003_not_jessie": "La distribution Debian actuelle n’est pas Jessie !",
|
||||||
"migration_0003_system_not_fully_up_to_date": "Votre système n’est pas complètement à jour. Veuillez mener une mise à jour classique avant de lancer à migration à Stretch.",
|
"migration_0003_system_not_fully_up_to_date": "Votre système n’est pas complètement à jour. Veuillez mener une mise à jour classique avant de lancer à migration à Stretch.",
|
||||||
"migration_0003_still_on_jessie_after_main_upgrade": "Quelque chose s’est mal passé pendant la mise à niveau principale : le système est toujours sur Debian Jessie !? Pour investiguer sur le problème, veuillez regarder les journaux {log}:s …",
|
"migration_0003_still_on_jessie_after_main_upgrade": "Quelque chose s’est mal passé pendant la mise à niveau principale : le système est toujours sur Debian Jessie !? Pour investiguer sur le problème, veuillez regarder les journaux {log}:s …",
|
||||||
"migration_0003_general_warning": "Veuillez noter que cette migration est une opération délicate. Si l’équipe YunoHost a fait de son mieux pour la relire et la tester, la migration pourrait tout de même casser des parties de votre système ou de vos applications.\n\nEn conséquence, nous vous recommandons :\n - de lancer une sauvegarde de vos données ou applications critiques. Plus d’informations sur https://yunohost.org/backup ;\n - d’être patient après avoir lancé la migration : selon votre connexion internet et matériel, cela pourrait prendre jusqu’à quelques heures pour que tout soit à niveau.\n\nEn outre, le port SMTP utilisé par les clients de messagerie externes comme (Thunderbird ou K9-Mail) a été changé de 465 (SSL/TLS) à 587 (STARTTLS). L’ancien port 465 sera automatiquement fermé et le nouveau port 587 sera ouvert dans le pare-feu. Vous et vos utilisateurs *devront* adapter la configuration de vos clients de messagerie en conséquence !",
|
"migration_0003_general_warning": "Veuillez noter que cette migration est une opération délicate. Si l’équipe YunoHost a fait de son mieux pour la relire et la tester, la migration pourrait tout de même casser des parties de votre système ou de vos applications.\n\nEn conséquence, nous vous recommandons :\n - de lancer une sauvegarde de vos données ou applications critiques. Plus d’informations sur https://yunohost.org/backup ;\n - d’être patient après avoir lancé la migration : selon votre connexion internet et matériel, cela pourrait prendre jusqu’à quelques heures pour que tout soit à niveau.\n\nEn outre, le port SMTP utilisé par les clients de messagerie externes comme (Thunderbird ou K9-Mail) a été changé de 465 (SSL/TLS) à 587 (STARTTLS). L’ancien port 465 sera automatiquement fermé et le nouveau port 587 sera ouvert dans le pare-feu. Vous et vos utilisateurs *devront* adapter la configuration de vos clients de messagerie en conséquence.",
|
||||||
"migration_0003_problematic_apps_warning": "Veuillez noter que des applications possiblement problématiques ont été détectées. Il semble qu’elles n’aient pas été installées depuis une liste d’application ou qu’elles ne soit pas marquées comme « fonctionnelles ». En conséquence, nous ne pouvons pas garantir qu’elles fonctionneront après la mise à niveau : {problematic_apps}",
|
"migration_0003_problematic_apps_warning": "Veuillez noter que des applications possiblement problématiques ont été détectées. Il semble qu’elles n’aient pas été installées depuis une liste d’application ou qu’elles ne soit pas marquées comme « fonctionnelles ». En conséquence, nous ne pouvons pas garantir qu’elles fonctionneront après la mise à niveau : {problematic_apps}",
|
||||||
"migration_0003_modified_files": "Veuillez noter que les fichiers suivants ont été détectés comme modifiés manuellement et pourraient être écrasés à la fin de la mise à niveau : {manually_modified_files}",
|
"migration_0003_modified_files": "Veuillez noter que les fichiers suivants ont été détectés comme modifiés manuellement et pourraient être écrasés à la fin de la mise à niveau : {manually_modified_files}",
|
||||||
"migrations_list_conflict_pending_done": "Vous ne pouvez pas utiliser --previous et --done simultanément.",
|
"migrations_list_conflict_pending_done": "Vous ne pouvez pas utiliser --previous et --done simultanément.",
|
||||||
"migrations_to_be_ran_manually": "La migration {number} {name} doit être lancée manuellement. Veuillez aller dans Outils > Migrations dans l’interface admin, ou lancer `yunohost tools migrations migrate`.",
|
"migrations_to_be_ran_manually": "La migration {id} doit être lancée manuellement. Veuillez aller dans Outils > Migrations dans l’interface admin, ou lancer `yunohost tools migrations migrate`.",
|
||||||
"migrations_need_to_accept_disclaimer": "Pour lancer la migration {number} {name}, vous devez accepter cette clause de non-responsabilité :\n---\n{disclaimer}\n---\nSi vous acceptez de lancer la migration, veuillez relancer la commande avec l’option --accept-disclaimer.",
|
"migrations_need_to_accept_disclaimer": "Pour lancer la migration {id}, vous devez accepter cette clause de non-responsabilité :\n---\n{disclaimer}\n---\nSi vous acceptez de lancer la migration, veuillez relancer la commande avec l’option --accept-disclaimer.",
|
||||||
"service_description_avahi-daemon": "permet d’atteindre votre serveur via yunohost.local sur votre réseau local",
|
"service_description_avahi-daemon": "Vous permet d’atteindre votre serveur en utilisant «yunohost.local» sur votre réseau local",
|
||||||
"service_description_dnsmasq": "gère la résolution des noms de domaine (DNS)",
|
"service_description_dnsmasq": "Gère la résolution des noms de domaine (DNS)",
|
||||||
"service_description_dovecot": "permet aux clients de messagerie d’accéder/récupérer les courriels (via IMAP et POP3)",
|
"service_description_dovecot": "Permet aux clients de messagerie d’accéder/récupérer les courriels (via IMAP et POP3)",
|
||||||
"service_description_fail2ban": "protège contre les attaques brute-force et autres types d’attaques venant d’Internet",
|
"service_description_fail2ban": "Protège contre les attaques brute-force et autres types d’attaques venant d’Internet",
|
||||||
"service_description_glances": "surveille les informations système de votre serveur",
|
"service_description_glances": "Surveille les info système de votre serveur",
|
||||||
"service_description_metronome": "gère les comptes de messagerie instantanée XMPP",
|
"service_description_metronome": "Gère les comptes de messagerie instantanée XMPP",
|
||||||
"service_description_mysql": "stocke les données des applications (bases de données SQL)",
|
"service_description_mysql": "Stocke les données des applications (bases de données SQL)",
|
||||||
"service_description_nginx": "sert ou permet l’accès à tous les sites web hébergés sur votre serveur",
|
"service_description_nginx": "Sert ou permet l’accès à tous les sites web hébergés sur votre serveur",
|
||||||
"service_description_nslcd": "gère la connexion en ligne de commande des utilisateurs YunoHost",
|
"service_description_nslcd": "Gère la connexion en ligne de commande des utilisateurs YunoHost",
|
||||||
"service_description_php5-fpm": "exécute des applications écrites en PHP avec nginx",
|
"service_description_php5-fpm": "exécute des applications écrites en PHP avec nginx",
|
||||||
"service_description_postfix": "utilisé pour envoyer et recevoir des courriels",
|
"service_description_postfix": "Utilisé pour envoyer et recevoir des courriels",
|
||||||
"service_description_redis-server": "une base de données spécialisée utilisée pour l’accès rapide aux données, les files d’attentes et la communication entre les programmes",
|
"service_description_redis-server": "Une base de données spécialisée utilisée pour l’accès rapide aux données, les files d’attentes et la communication entre les programmes",
|
||||||
"service_description_rmilter": "vérifie divers paramètres dans les courriels",
|
"service_description_rmilter": "Vérifie divers paramètres dans les courriels",
|
||||||
"service_description_rspamd": "filtre le pourriel, et d’autres fonctionnalités liées au courriel",
|
"service_description_rspamd": "Filtre le pourriel, et d’autres fonctionnalités liées au courriel",
|
||||||
"service_description_slapd": "stocke les utilisateurs, domaines et leurs informations liées",
|
"service_description_slapd": "Stocke les utilisateurs, domaines et leurs informations liées",
|
||||||
"service_description_ssh": "vous permet de vous connecter à distance à votre serveur via un terminal (protocole SSH)",
|
"service_description_ssh": "Vous permet de vous connecter à distance à votre serveur via un terminal (protocole SSH)",
|
||||||
"service_description_yunohost-api": "permet les interactions entre l’interface web de YunoHost et le système",
|
"service_description_yunohost-api": "Permet les interactions entre l’interface web de YunoHost et le système",
|
||||||
"service_description_yunohost-firewall": "gère l'ouverture et la fermeture des ports de connexion aux services",
|
"service_description_yunohost-firewall": "Gère l'ouverture et la fermeture des ports de connexion aux services",
|
||||||
"experimental_feature": "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.",
|
"experimental_feature": "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.",
|
||||||
"log_corrupted_md_file": "Le fichier yaml de métadonnées associé aux logs est corrompu : '{md_file}'\nErreur : {error}",
|
"log_corrupted_md_file": "Le fichier YAML de métadonnées associé aux logs est corrompu : '{md_file}'\nErreur : {error}",
|
||||||
"log_category_404": "Le journal de la catégorie '{category}' n’existe pas",
|
"log_category_404": "Le journal de la catégorie '{category}' n’existe pas",
|
||||||
"log_link_to_log": "Journal historisé complet de cette opération : '<a href=\"#/tools/logs/{name}\" style=\"text-decoration:underline\"> {desc} </a>'",
|
"log_link_to_log": "Journal historisé complet de cette opération : '<a href=\"#/tools/logs/{name}\" style=\"text-decoration:underline\"> {desc} </a>'",
|
||||||
"log_help_to_get_log": "Pour voir le journal historisé de cette opération '{desc}', utilisez la commande 'yunohost log display {name}'",
|
"log_help_to_get_log": "Pour voir le journal historisé de cette opération '{desc}', utilisez la commande 'yunohost log display {name}'",
|
||||||
"log_link_to_failed_log": "L’opération '{desc}' a échouée ! Pour avoir de l’aide, merci <a href=\"#/tools/logs/{name}\"> de fournir le journal historisé complet de l’opération en cliquant ici</a>",
|
"log_link_to_failed_log": "L’opération '{desc}' a échouée ! Pour avoir de l’aide, merci <a href=\"#/tools/logs/{name}\"> cliqué ici</a> pour avoir de l'aide",
|
||||||
"backup_php5_to_php7_migration_may_fail": "Impossible de convertir votre archive pour prendre en charge php7, vos applications php pourraient ne pas être restaurées (reason: {error:s})",
|
"backup_php5_to_php7_migration_may_fail": "Impossible de convertir votre archive pour prendre en charge PHP 7, vous pourriez ne plus pouvoir restaurer vos applications PHP (cause : {error:s})",
|
||||||
"log_help_to_get_failed_log": "L’opération '{desc}' a échouée ! Pour avoir de l’aide, merci de partager le journal historisé de cette opération en utilisant la commande 'yunohost log display {name} --share'",
|
"log_help_to_get_failed_log": "L’opération '{desc}' a échouée ! Pour avoir de l’aide, merci de partager le journal historisé de cette opération en utilisant la commande 'yunohost log display {name} --share'",
|
||||||
"log_does_exists": "Il n’existe pas de journal historisé de l’opération ayant pour nom '{log}', utiliser 'yunohost log list pour voir tous les fichiers de journaux historisés disponibles'",
|
"log_does_exists": "Il n’existe pas de journal historisé de l’opération ayant pour nom '{log}', utiliser 'yunohost log list pour voir tous les fichiers de journaux historisés disponibles'",
|
||||||
"log_operation_unit_unclosed_properly": "L’opération ne s’est pas terminée correctement",
|
"log_operation_unit_unclosed_properly": "L’opération ne s’est pas terminée correctement",
|
||||||
|
@ -462,13 +462,13 @@
|
||||||
"log_tools_shutdown": "Éteindre votre serveur",
|
"log_tools_shutdown": "Éteindre votre serveur",
|
||||||
"log_tools_reboot": "Redémarrer votre serveur",
|
"log_tools_reboot": "Redémarrer votre serveur",
|
||||||
"mail_unavailable": "Cette adresse de courriel est réservée et doit être automatiquement attribuée au tout premier utilisateur",
|
"mail_unavailable": "Cette adresse de courriel est réservée et doit être automatiquement attribuée au tout premier utilisateur",
|
||||||
"migration_description_0004_php5_to_php7_pools": "Reconfiguration des groupes PHP pour utiliser PHP 7 au lieu de PHP 5",
|
"migration_description_0004_php5_to_php7_pools": "Reconfigurez les groupes PHP pour utiliser PHP 7 au lieu de PHP 5",
|
||||||
"migration_description_0005_postgresql_9p4_to_9p6": "Migration des bases de données de PostgreSQL 9.4 vers PostgreSQL 9.6",
|
"migration_description_0005_postgresql_9p4_to_9p6": "Migration des bases de données de PostgreSQL 9.4 vers PostgreSQL 9.6",
|
||||||
"migration_0005_postgresql_94_not_installed": "PostgreSQL n’a pas été installé sur votre système. Rien à faire !",
|
"migration_0005_postgresql_94_not_installed": "PostgreSQL n’a pas été installé sur votre système. Rien à faire !",
|
||||||
"migration_0005_postgresql_96_not_installed": "PostgreSQL 9.4 a été trouvé et installé, mais pas PostgreSQL 9.6 !? Quelque chose d’étrange a dû arriver à votre système… :(",
|
"migration_0005_postgresql_96_not_installed": "PostgreSQL 9.4 a été trouvé et installé, mais pas PostgreSQL 9.6 !? Quelque chose d’étrange a dû arriver à votre système… :(",
|
||||||
"migration_0005_not_enough_space": "Il n’y a pas assez d’espace libre de disponible sur {path} pour lancer maintenant la migration :(.",
|
"migration_0005_not_enough_space": "Laissez suffisamment d'espace disponible dans {chemin} pour exécuter la migration.",
|
||||||
"recommend_to_add_first_user": "La post-installation est terminée mais YunoHost a besoin d’au moins un utilisateur pour fonctionner correctement. Vous devez en ajouter un en utilisant la commande 'yunohost user create $nomdutilisateur' ou bien via l’interface d’administration web.",
|
"recommend_to_add_first_user": "La post-installation est terminée mais YunoHost a besoin d’au moins un utilisateur pour fonctionner correctement. Vous devez en ajouter un en utilisant la commande 'yunohost user create $nomdutilisateur' ou bien via l’interface d’administration web.",
|
||||||
"service_description_php7.0-fpm": "exécute des applications écrites en PHP avec Nginx",
|
"service_description_php7.0-fpm": "Exécute des applications écrites en PHP avec NGINX",
|
||||||
"users_available": "Liste des utilisateurs disponibles :",
|
"users_available": "Liste des utilisateurs disponibles :",
|
||||||
"good_practices_about_admin_password": "Vous êtes maintenant sur le point de définir un nouveau mot de passe d’administration. 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_admin_password": "Vous êtes maintenant sur le point de définir un nouveau mot de passe d’administration. 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 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.",
|
"good_practices_about_user_password": "Vous êtes maintenant sur le point de définir un nouveau mot de passe 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.",
|
||||||
|
@ -481,8 +481,8 @@
|
||||||
"password_too_simple_3": "Le mot de passe doit comporter au moins 8 caractères et contenir des chiffres, des majuscules, des minuscules et des caractères spéciaux",
|
"password_too_simple_3": "Le mot de passe doit comporter au moins 8 caractères et contenir des chiffres, des majuscules, des minuscules et des caractères spéciaux",
|
||||||
"password_too_simple_4": "Le mot de passe doit comporter au moins 12 caractères et contenir des chiffres, des majuscules, des minuscules et des caractères spéciaux",
|
"password_too_simple_4": "Le mot de passe doit comporter au moins 12 caractères et contenir des chiffres, des majuscules, des minuscules et des caractères spéciaux",
|
||||||
"root_password_desynchronized": "Le mot de passe administrateur a été changé, mais YunoHost n’a pas pu le propager au mot de passe root !",
|
"root_password_desynchronized": "Le mot de passe administrateur a été changé, mais YunoHost n’a pas pu le propager au mot de passe root !",
|
||||||
"aborting": "Opération annulée.",
|
"aborting": "Annulation.",
|
||||||
"app_not_upgraded": "Les applications suivantes n'ont pas été mises à jour : {apps}",
|
"app_not_upgraded": "L’application {failed_app} n’a pas été mise à jour et par conséquence les applications suivantes n’ont pas été mises à jour : {apps}",
|
||||||
"app_start_install": "Installation de l'application {app} …",
|
"app_start_install": "Installation de l'application {app} …",
|
||||||
"app_start_remove": "Suppression de l'application {app} …",
|
"app_start_remove": "Suppression de l'application {app} …",
|
||||||
"app_start_backup": "Collecte des fichiers devant être sauvegardés pour {app} …",
|
"app_start_backup": "Collecte des fichiers devant être sauvegardés pour {app} …",
|
||||||
|
@ -507,9 +507,9 @@
|
||||||
"migration_0007_cancelled": "YunoHost n'a pas réussi à améliorer la façon dont est gérée votre configuration SSH.",
|
"migration_0007_cancelled": "YunoHost n'a pas réussi à améliorer la façon dont est gérée votre configuration SSH.",
|
||||||
"migration_0007_cannot_restart": "SSH ne peut pas être redémarré après avoir essayé d'annuler la migration numéro 6.",
|
"migration_0007_cannot_restart": "SSH ne peut pas être redémarré après avoir essayé d'annuler la migration numéro 6.",
|
||||||
"migration_0008_general_disclaimer": "Pour améliorer la sécurité de votre serveur, il est recommandé de laisser YunoHost gérer la configuration SSH. Votre configuration SSH actuelle diffère de la configuration recommandée. Si vous laissez YunoHost la reconfigurer, la façon dont vous vous connectez à votre serveur via SSH changera comme suit :",
|
"migration_0008_general_disclaimer": "Pour améliorer la sécurité de votre serveur, il est recommandé de laisser YunoHost gérer la configuration SSH. Votre configuration SSH actuelle diffère de la configuration recommandée. Si vous laissez YunoHost la reconfigurer, la façon dont vous vous connectez à votre serveur via SSH changera comme suit :",
|
||||||
"migration_0008_port": " - vous devrez vous connecter en utilisant le port 22 au lieu de votre actuel port SSH personnalisé. N'hésitez pas à le reconfigurer ;",
|
"migration_0008_port": "- Vous devrez vous connecter en utilisant le port 22 au lieu de votre actuel port SSH personnalisé. N'hésitez pas à le reconfigurer ;",
|
||||||
"migration_0008_root": " - vous ne pourrez pas vous connecter en tant que root via SSH. Au lieu de cela, vous devrez utiliser l'utilisateur admin ;",
|
"migration_0008_root": "- Vous ne pourrez pas vous connecter en tant que root via SSH. Au lieu de cela, vous devrez utiliser l'utilisateur admin ;",
|
||||||
"migration_0008_dsa": " - la clé DSA sera désactivée. Par conséquent, il se peut que vous ayez besoin d'invalider un avertissement effrayant de votre client SSH afin de revérifier l'empreinte de votre serveur ;",
|
"migration_0008_dsa": "- La clé DSA sera désactivée. Par conséquent, il se peut que vous ayez besoin d'invalider un avertissement effrayant de votre client SSH afin de revérifier l'empreinte de votre serveur ;",
|
||||||
"migration_0008_warning": "Si vous comprenez ces avertissements et que vous acceptez de laisser YunoHost remplacer votre configuration actuelle, exécutez la migration. Sinon, vous pouvez également passer la migration, bien que cela ne soit pas recommandé.",
|
"migration_0008_warning": "Si vous comprenez ces avertissements et que vous acceptez de laisser YunoHost remplacer votre configuration actuelle, exécutez la migration. Sinon, vous pouvez également passer la migration, bien que cela ne soit pas recommandé.",
|
||||||
"migration_0008_no_warning": "Aucun risque majeur n'a été identifié concernant l'écrasement de votre configuration SSH - mais nous ne pouvons pas en être absolument sûrs ;) ! Si vous acceptez de laisser YunoHost remplacer votre configuration actuelle, exécutez la migration. Sinon, vous pouvez également passer la migration, bien que cela ne soit pas recommandé.",
|
"migration_0008_no_warning": "Aucun risque majeur n'a été identifié concernant l'écrasement de votre configuration SSH - mais nous ne pouvons pas en être absolument sûrs ;) ! Si vous acceptez de laisser YunoHost remplacer votre configuration actuelle, exécutez la migration. Sinon, vous pouvez également passer la migration, bien que cela ne soit pas recommandé.",
|
||||||
"migrations_success": "Migration {number} {name} réussie !",
|
"migrations_success": "Migration {number} {name} réussie !",
|
||||||
|
@ -524,7 +524,7 @@
|
||||||
"service_reloaded_or_restarted": "Le service '{service:s}' a été rechargé ou redémarré",
|
"service_reloaded_or_restarted": "Le service '{service:s}' a été rechargé ou redémarré",
|
||||||
"this_action_broke_dpkg": "Cette action a laissé des paquets non configurés par dpkg/apt (les gestionnaires de paquets système). Vous pouvez essayer de résoudre ce problème en vous connectant via SSH et en exécutant `sudo dpkg --configure -a`.",
|
"this_action_broke_dpkg": "Cette action a laissé des paquets non configurés par dpkg/apt (les gestionnaires de paquets système). Vous pouvez essayer de résoudre ce problème en vous connectant via SSH et en exécutant `sudo dpkg --configure -a`.",
|
||||||
"app_action_cannot_be_ran_because_required_services_down": "Cette application requiert certains services qui sont actuellement arrêtés. Avant de continuer, vous devriez essayer de redémarrer les services suivants (et éventuellement rechercher pourquoi ils sont arrêtés) : {services}",
|
"app_action_cannot_be_ran_because_required_services_down": "Cette application requiert certains services qui sont actuellement arrêtés. Avant de continuer, vous devriez essayer de redémarrer les services suivants (et éventuellement rechercher pourquoi ils sont arrêtés) : {services}",
|
||||||
"admin_password_too_long": "Choisissez un mot de passe plus court que 127 caractères",
|
"admin_password_too_long": "Veuillez choisir un mot de passe de moins de 127 caractères",
|
||||||
"log_regen_conf": "Régénérer les configurations du système '{}'",
|
"log_regen_conf": "Régénérer les configurations du système '{}'",
|
||||||
"migration_0009_not_needed": "Cette migration semble avoir déjà été jouée ? On l'ignore.",
|
"migration_0009_not_needed": "Cette migration semble avoir déjà été jouée ? On l'ignore.",
|
||||||
"regenconf_file_backed_up": "Le fichier de configuration '{conf}' a été sauvegardé sous '{backup}'",
|
"regenconf_file_backed_up": "Le fichier de configuration '{conf}' a été sauvegardé sous '{backup}'",
|
||||||
|
@ -549,26 +549,26 @@
|
||||||
"regenconf_failed": "Impossible de régénérer la configuration pour la ou les catégorie(s) : '{categories}'",
|
"regenconf_failed": "Impossible de régénérer la configuration pour la ou les catégorie(s) : '{categories}'",
|
||||||
"regenconf_pending_applying": "Applique la configuration en attente pour la catégorie '{category}' …",
|
"regenconf_pending_applying": "Applique la configuration en attente pour la catégorie '{category}' …",
|
||||||
"service_regen_conf_is_deprecated": "'yunohost service regen-conf' est obsolète ! Veuillez plutôt utiliser 'yunohost tools regen-conf' à la place.",
|
"service_regen_conf_is_deprecated": "'yunohost service regen-conf' est obsolète ! Veuillez plutôt utiliser 'yunohost tools regen-conf' à la place.",
|
||||||
"tools_upgrade_at_least_one": "Veuillez spécifier --apps OU --system",
|
"tools_upgrade_at_least_one": "Veuillez spécifier '--apps' OU '--system'",
|
||||||
"tools_upgrade_cant_both": "Impossible de mettre à niveau le système et les applications en même temps",
|
"tools_upgrade_cant_both": "Impossible de mettre à niveau le système et les applications en même temps",
|
||||||
"tools_upgrade_cant_hold_critical_packages": "Impossibilité de maintenir les paquets critiques...",
|
"tools_upgrade_cant_hold_critical_packages": "Impossibilité de maintenir les paquets critiques…",
|
||||||
"tools_upgrade_regular_packages": "Mise à jour des paquets du système (non liés a YunoHost) ...",
|
"tools_upgrade_regular_packages": "Mise à jour des paquets du système (non liés a YunoHost) …",
|
||||||
"tools_upgrade_regular_packages_failed": "Impossible de mettre à jour les paquets suivants : {packages_list}",
|
"tools_upgrade_regular_packages_failed": "Impossible de mettre à jour les paquets suivants : {packages_list}",
|
||||||
"tools_upgrade_special_packages": "Mise à jour des paquets 'spécifiques' (liés a YunoHost) ...",
|
"tools_upgrade_special_packages": "Mise à jour des paquets 'spécifiques' (liés a YunoHost) …",
|
||||||
"tools_upgrade_special_packages_completed": "La mise à jour des paquets de YunoHost est finie!\nPressez [Entrée] pour revenir à la ligne de commande",
|
"tools_upgrade_special_packages_completed": "La mise à jour des paquets de YunoHost est finie!\nPressez [Entrée] pour revenir à la ligne de commande",
|
||||||
"updating_app_lists": "Récupération des mises à jour des applications disponibles…",
|
"updating_app_lists": "Récupération des mises à jour des applications disponibles…",
|
||||||
"dpkg_lock_not_available": "Cette commande ne peut être lancée maintenant car il semblerai qu'un autre programme utilise déjà le verrou dpkg du gestionnaire de paquets du système",
|
"dpkg_lock_not_available": "Cette commande ne peut être exécutée actuellement car un autre programme semble utiliser le verrou de dpkg (gestionnaire de paquets)",
|
||||||
"tools_upgrade_cant_unhold_critical_packages": "Impossible de dé-marquer les paquets critiques ...",
|
"tools_upgrade_cant_unhold_critical_packages": "Impossible de dé-marquer les paquets critiques …",
|
||||||
"tools_upgrade_special_packages_explanation": "Cette opération prendra fin mais la mise à jour spécifique continuera en arrière-plan. Veuillez ne pas lancer d'autre action sur votre serveur dans les 10 prochaines minutes (en fonction de la vitesse de votre matériel). Une fois que c'est fait, vous devrez peut-être vous reconnecter sur le panel d'administration web. Le journal de la mise à jour sera disponible dans Outils > Log (dans le panel d'administration web) ou dans la liste des journaux YunoHost (en ligne de commande).",
|
"tools_upgrade_special_packages_explanation": "Cette opération prendra fin mais la mise à jour spécifique continuera en arrière-plan. Veuillez ne pas lancer d'autre action sur votre serveur dans les 10 prochaines minutes (en fonction de la vitesse de votre matériel). Une fois que c'est fait, vous devrez peut-être vous reconnecter sur le panel d'administration web. Le journal de la mise à jour sera disponible dans Outils > Log (dans le panel d'administration web) ou dans la liste des journaux YunoHost (en ligne de commande).",
|
||||||
"update_apt_cache_failed": "Impossible de mettre à jour le cache APT (gestionnaire de paquets Debian). Voici un extrait du fichier sources.list qui pourrait vous aider à identifier les lignes problématiques :\n{sourceslist}",
|
"update_apt_cache_failed": "Impossible de mettre à jour le cache APT (gestionnaire de paquets Debian). Voici un extrait du fichier sources.list qui pourrait vous aider à identifier les lignes problématiques :\n{sourceslist}",
|
||||||
"update_apt_cache_warning": "Des erreurs se sont produites lors de la mise à jour du cache APT (gestionnaire de paquets Debian). Voici un extrait des lignes du fichier sources.list qui pourrait vous aider à identifier les lignes problématiques :\n{sourceslist}",
|
"update_apt_cache_warning": "Des erreurs se sont produites lors de la mise à jour du cache APT (gestionnaire de paquets Debian). Voici un extrait des lignes du fichier sources.list qui pourrait vous aider à identifier les lignes problématiques :\n{sourceslist}",
|
||||||
"apps_permission_not_found": "Aucune permission trouvée pour les applications installées",
|
"apps_permission_not_found": "Aucune permission trouvée pour les applications installées",
|
||||||
"apps_permission_restoration_failed": "L'autorisation '{permission:s}' pour la restauration de l'application {app:s} a échoué",
|
"apps_permission_restoration_failed": "L'autorisation '{permission:s}' pour la restauration de l'application {app:s} a échoué",
|
||||||
"backup_permission": "Autorisation de sauvegarde pour l'application {app:s}",
|
"backup_permission": "Permission de sauvegarde pour l'application {app:s}",
|
||||||
"edit_group_not_allowed": "Vous n'êtes pas autorisé à modifier le groupe {group:s}",
|
"edit_group_not_allowed": "Vous n'êtes pas autorisé à modifier le groupe {group:s}",
|
||||||
"error_when_removing_sftpuser_group": "Erreur en essayant de supprimer le groupe sftpusers",
|
"error_when_removing_sftpuser_group": "Vous ne pouvez pas supprimer le groupe sftpusers",
|
||||||
"group_created": "Le groupe '{group}' a créé avec succès",
|
"group_created": "Le groupe '{group}' a été créé",
|
||||||
"group_deleted": "Le groupe '{group}' a été supprimé",
|
"group_deleted": "Suppression du groupe '{group}'",
|
||||||
"group_deletion_not_allowed": "Le groupe {group:s} ne peut pas être supprimé manuellement.",
|
"group_deletion_not_allowed": "Le groupe {group:s} ne peut pas être supprimé manuellement.",
|
||||||
"group_info_failed": "L'information sur le groupe a échoué",
|
"group_info_failed": "L'information sur le groupe a échoué",
|
||||||
"group_unknown": "Le groupe {group:s} est inconnu",
|
"group_unknown": "Le groupe {group:s} est inconnu",
|
||||||
|
@ -579,7 +579,7 @@
|
||||||
"group_name_already_exist": "Le groupe {name:s} existe déjà",
|
"group_name_already_exist": "Le groupe {name:s} existe déjà",
|
||||||
"group_creation_failed": "Échec de la création du groupe '{group}'",
|
"group_creation_failed": "Échec de la création du groupe '{group}'",
|
||||||
"group_deletion_failed": "Échec de la suppression du groupe '{group}'",
|
"group_deletion_failed": "Échec de la suppression du groupe '{group}'",
|
||||||
"edit_permission_with_group_all_users_not_allowed": "Vous n'êtes pas autorisé à modifier les permissions pour le groupe 'all_users', utilisez'yunohost user permission clear APP' ou 'yunohost user permission add APP -u USER'.",
|
"edit_permission_with_group_all_users_not_allowed": "Vous n'êtes pas autorisé à modifier les permissions pour le groupe 'all_users', utilisez 'yunohost user permission clear APP' ou 'yunohost user permission add APP -u USER' à la place.",
|
||||||
"log_permission_add": "Ajouter l'autorisation '{}' pour l'application '{}'",
|
"log_permission_add": "Ajouter l'autorisation '{}' pour l'application '{}'",
|
||||||
"log_permission_remove": "Supprimer l'autorisation '{}'",
|
"log_permission_remove": "Supprimer l'autorisation '{}'",
|
||||||
"log_permission_update": "Mise à jour de l'autorisation '{}' pour l'application '{}'",
|
"log_permission_update": "Mise à jour de l'autorisation '{}' pour l'application '{}'",
|
||||||
|
@ -588,5 +588,52 @@
|
||||||
"log_user_group_update": "Mettre à jour '{}' pour le groupe",
|
"log_user_group_update": "Mettre à jour '{}' pour le groupe",
|
||||||
"log_user_permission_add": "Mettre à jour l'autorisation pour '{}'",
|
"log_user_permission_add": "Mettre à jour l'autorisation pour '{}'",
|
||||||
"log_user_permission_remove": "Mettre à jour l'autorisation pour '{}'",
|
"log_user_permission_remove": "Mettre à jour l'autorisation pour '{}'",
|
||||||
"mailbox_disabled": "La boîte aux lettres est désactivée pour l'utilisateur {user:s}"
|
"mailbox_disabled": "La boîte aux lettres est désactivée pour l'utilisateur {user:s}",
|
||||||
|
"app_action_broke_system": "Cette action semble avoir cassé des services important : {services}",
|
||||||
|
"apps_already_up_to_date": "Toutes les applications sont déjà à jour",
|
||||||
|
"app_upgrade_stopped": "La mise à jour de toutes les applications a été arrêtée afin d’éviter d’éventuels dommages dus à l’échec de la mise à jour de l’application précédente",
|
||||||
|
"migration_0011_create_group": "Créer un groupe pour chaque utilisateur…",
|
||||||
|
"migration_0011_done": "Migration réussie. Vous êtes maintenant en mesure de gérer des groupes d'utilisateurs.",
|
||||||
|
"migrations_must_provide_explicit_targets": "Vous devez fournir des cibles explicites lorsque vous utilisez '--skip' ou '--force-rerun'",
|
||||||
|
"migrations_no_such_migration": "Il n'y a pas de migration appelée {id}",
|
||||||
|
"migrations_pending_cant_rerun": "Ces migrations étant toujours en attente, vous ne pouvez pas les exécuter à nouveau: {ids}",
|
||||||
|
"migration_description_0012_postgresql_password_to_md5_authentication": "Forcer l'authentification PostgreSQL à utiliser MD5 pour les connexions locales",
|
||||||
|
"migrations_exclusive_options": "'auto', '--skip' et '--force-rerun' sont des options mutuellement exclusives.",
|
||||||
|
"migrations_not_pending_cant_skip": "Ces migrations ne sont pas en attente et ne peuvent donc pas être ignorées: {ids}",
|
||||||
|
"migration_0011_can_not_backup_before_migration": "Impossible de sauvegarder le système avant la migration. Erreur: {error: s}",
|
||||||
|
"migration_0011_migrate_permission": "Migration des autorisations des paramètres des applications vers LDAP…",
|
||||||
|
"migration_0011_migration_failed_trying_to_rollback": "La migration a échoué… essayait de restauration du système.",
|
||||||
|
"migration_0011_rollback_success": "Système restauré.",
|
||||||
|
"migration_0011_update_LDAP_database": "Mise à jour de la base de données LDAP…",
|
||||||
|
"system_groupname_exists": "Le nom de groupe existe déjà dans le groupe du systèmes",
|
||||||
|
"tools_update_failed_to_app_fetchlist": "Impossible de mettre à jour les applications de YunoHost car: {error}",
|
||||||
|
"user_already_in_group": "L'utilisateur '{user:}' est déjà dans le groupe '{group: s}'",
|
||||||
|
"user_not_in_group": "L'utilisateur '{user: s}' ne fait pas partie du groupe {group: s}",
|
||||||
|
"migration_0011_backup_before_migration": "Création d'une sauvegarde des paramètres de la base de données LDAP et des applications avant la migration.",
|
||||||
|
"permission_not_found": "Autorisation '{permission: s}' non trouvée pour l'application '{app: s}'",
|
||||||
|
"permission_name_not_valid": "Choisissez un nom d'autorisation autorisé pour '{permission: s}'",
|
||||||
|
"permission_update_failed": "Impossible de mettre à jour la permission",
|
||||||
|
"permission_generated": "Base de données des autorisations mise à jour",
|
||||||
|
"permission_updated": "Permission '{permission: s}' pour l'application '{app: s}' mise à jour",
|
||||||
|
"permission_update_nothing_to_do": "Aucune autorisation pour mettre à jour",
|
||||||
|
"remove_main_permission_not_allowed": "Supprimer l'autorisation principale n'est pas autorisé",
|
||||||
|
"dyndns_provider_unreachable": "Impossible d’atteindre le fournisseur Dyndns {provider}: votre YunoHost n’est pas correctement connecté à Internet ou le serveur Dynette est en panne.",
|
||||||
|
"migration_0011_update_LDAP_schema": "Mise à jour du schéma LDAP…",
|
||||||
|
"migrations_already_ran": "Ces migrations sont déjà effectuées: {ids}",
|
||||||
|
"migrations_dependencies_not_satisfied": "Impossible d'exécuter la migration {id} car vous devez d'abord exécuter ces migrations: {dependencies_id}",
|
||||||
|
"migrations_failed_to_load_migration": "Impossible de charger la migration {id}: {error}",
|
||||||
|
"migrations_running_forward": "Exécution de la migration {id}…",
|
||||||
|
"migrations_success_forward": "Migration {id} terminée",
|
||||||
|
"need_define_permission_before": "Redéfinissez l'autorisation à l'aide de 'yunohost user permission add -u USER' avant de supprimer un groupe autorisé",
|
||||||
|
"operation_interrupted": "L'opération a été interrompue manuellement",
|
||||||
|
"permission_already_clear": "L'autorisation '{permission: s}' est déjà vide pour l'application {app: s}",
|
||||||
|
"permission_already_exist": "L'autorisation '{permission: s}' pour l'application {app: s} existe déjà",
|
||||||
|
"permission_created": "Permission '{permission: s}' pour l'application {app: s} créée",
|
||||||
|
"permission_creation_failed": "Impossible d'accorder la permission",
|
||||||
|
"permission_deleted": "Permission '{permission: s}' pour app {app: s} supprimée",
|
||||||
|
"permission_deletion_failed": "Autorisation manquante '{permission: s}' pour supprimer l'application '{app: s}'",
|
||||||
|
"remove_user_of_group_not_allowed": "Vous n'êtes pas autorisé à supprimer l'utilisateur '{utilisateur: s}' dans le groupe '{groupe: s}'",
|
||||||
|
"migration_description_0011_setup_group_permission": "Configurer le groupe d'utilisateurs et configurer les autorisations pour les applications et les services",
|
||||||
|
"migration_0011_LDAP_config_dirty": "Il semble que vous ayez personnalisé votre configuration LDAP. Pour cette migration, la configuration LDAP doit être mise à jour.\nVous devez enregistrer votre configuration actuelle, réintialiser la configuration d'origine en exécutant 'yunohost tools regen-conf -f', puis réessayer la migration",
|
||||||
|
"migration_0011_LDAP_update_failed": "Impossible de mettre à jour LDAP. Erreur: {error: s}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1 +1,169 @@
|
||||||
{}
|
{
|
||||||
|
"aborting": "Avbryter…",
|
||||||
|
"admin_password": "Administrasjonspassord",
|
||||||
|
"admin_password_change_failed": "Kan ikke endre passord",
|
||||||
|
"admin_password_changed": "Administrasjonspassord endret",
|
||||||
|
"admin_password_too_long": "Velg et passord kortere enn 127 tegn",
|
||||||
|
"app_already_installed": "{app:s} er allerede installert",
|
||||||
|
"app_already_up_to_date": "{app:s} er allerede oppdatert",
|
||||||
|
"app_argument_invalid": "Velg en gydlig verdi for argumentet '{name:s}': {error:s}",
|
||||||
|
"app_argument_required": "Argumentet '{name:s}' er påkrevd",
|
||||||
|
"diagnosis_no_apps": "Inget program installert",
|
||||||
|
"app_id_invalid": "Ugyldig program-ID",
|
||||||
|
"dyndns_cron_remove_failed": "Kunne ikke fjerne cron-jobb for DynDNS: {error}",
|
||||||
|
"dyndns_key_not_found": "Fant ikke DNS-nøkkel for domenet",
|
||||||
|
"app_not_correctly_installed": "{app:s} ser ikke ut til å ha blitt installert på riktig måte",
|
||||||
|
"dyndns_provider_unreachable": "Kunne ikke nå DynDNS-tilbyder {provider}: Enten har du ikke satt opp din YunoHost rett, dynette-tjeneren er nede, eller du mangler nett.",
|
||||||
|
"app_not_properly_removed": "{app:s} har ikke blitt fjernet på riktig måte",
|
||||||
|
"app_package_need_update": "Programmet {app}-pakken må oppdateres for å holde følge med YunoHost sine endringer",
|
||||||
|
"app_removed": "{app:s} fjernet",
|
||||||
|
"app_requirements_checking": "Sjekker påkrevde pakker for {app:s}…",
|
||||||
|
"app_requirements_failed": "Noen krav er ikke oppfylt for {app:s}: {error}",
|
||||||
|
"app_start_install": "Installerer programmet '{app}'…",
|
||||||
|
"action_invalid": "Ugyldig handling '{action:s}'",
|
||||||
|
"app_start_restore": "Gjenoppretter programmet '{app}'…",
|
||||||
|
"backup_created": "Sikkerhetskopi opprettet",
|
||||||
|
"backup_archive_name_exists": "En sikkerhetskopi med dette navnet finnes allerede.",
|
||||||
|
"backup_archive_name_unknown": "Ukjent lokalt sikkerhetskopiarkiv ved navn '{name:s}'",
|
||||||
|
"already_up_to_date": "Ingenting å gjøre. Alt er oppdatert.",
|
||||||
|
"backup_method_copy_finished": "Sikkerhetskopi fullført",
|
||||||
|
"backup_method_tar_finished": "TAR-sikkerhetskopiarkiv opprettet",
|
||||||
|
"app_action_cannot_be_ran_because_required_services_down": "Dette programmet krever noen tjenester som ikke kjører. Før du fortsetter, du bør prøve å starte følgende tjenester på ny (og antagelig undersøke hvorfor de er nede): {services}",
|
||||||
|
"app_already_installed_cant_change_url": "Dette programmet er allerede installert. Nettadressen kan ikke endres kun med denne funksjonen. Ta en titt på `app changeurl` hvis den er tilgjengelig.",
|
||||||
|
"diagnosis_monitor_disk_error": "Kunne ikke holde oppsyn med disker: {error}",
|
||||||
|
"diagnosis_monitor_system_error": "Kunne ikke holde oppsyn med systemet: {error}",
|
||||||
|
"domain_exists": "Domenet finnes allerede",
|
||||||
|
"app_change_url_failed_nginx_reload": "Kunne ikke gjeninnlaste NGINX. Her har du utdataen for 'nginx -t'\n{nginx_errors:s}",
|
||||||
|
"domains_available": "Tilgjengelige domener:",
|
||||||
|
"done": "Ferdig",
|
||||||
|
"downloading": "Laster ned…",
|
||||||
|
"dyndns_could_not_check_provide": "Kunne ikke sjekke om {provider:s} kan tilby {domain:s}.",
|
||||||
|
"dyndns_could_not_check_available": "Kunne ikke sjekke om {domain:s} er tilgjengelig på {provider:s}.",
|
||||||
|
"log_app_removeaccess": "Fjern tilgang til '{}'",
|
||||||
|
"license_undefined": "udefinert",
|
||||||
|
"mail_domain_unknown": "Ukjent e-postadresse for domenet '{domain:s}'",
|
||||||
|
"migrate_tsig_wait_2": "2 min…",
|
||||||
|
"log_remove_on_failed_restore": "Fjern '{}' etter mislykket gjenoppretting fra sikkerhetskopiarkiv",
|
||||||
|
"log_letsencrypt_cert_install": "Installer et Let's Encrypt-sertifikat på '{}'-domenet",
|
||||||
|
"log_permission_update": "Oppdater tilgang '{}' for programmet '{}'",
|
||||||
|
"log_letsencrypt_cert_renew": "Forny '{}'-Let's Encrypt-sertifikat",
|
||||||
|
"log_user_update": "Oppdater brukerinfo for '{}'",
|
||||||
|
"mail_alias_remove_failed": "Kunne ikke fjerne e-postaliaset '{mail:s}'",
|
||||||
|
"app_action_broke_system": "Denne handlingen ser ut til å ha knekt disse viktige tjenestene: {services}",
|
||||||
|
"app_argument_choice_invalid": "Bruk én av disse valgene '{choices:s}' for argumentet '{name:s}'",
|
||||||
|
"app_extraction_failed": "Kunne ikke pakke ut installasjonsfilene",
|
||||||
|
"app_incompatible": "Programmet {app} er ikke kompatibelt med din YunoHost-versjon",
|
||||||
|
"app_install_files_invalid": "Disse filene kan ikke installeres",
|
||||||
|
"app_location_already_used": "Programmet '{app}' er allerede installert i ({path})",
|
||||||
|
"ask_path": "Sti",
|
||||||
|
"backup_abstract_method": "Denne sikkerhetskopimetoden er ikke implementert enda",
|
||||||
|
"backup_actually_backuping": "Oppretter sikkerhetskopiarkiv fra innsamlede filer…",
|
||||||
|
"backup_app_failed": "Kunne ikke sikkerhetskopiere programmet '{app:s}'",
|
||||||
|
"backup_applying_method_tar": "Lager TAR-sikkerhetskopiarkiv…",
|
||||||
|
"backup_archive_app_not_found": "Fant ikke programmet '{app:s}' i sikkerhetskopiarkivet",
|
||||||
|
"backup_archive_open_failed": "Kunne ikke åpne sikkerhetskopiarkivet",
|
||||||
|
"app_start_remove": "Fjerner programmet '{app}'…",
|
||||||
|
"app_start_backup": "Samler inn filer for sikkerhetskopiering for {app}…",
|
||||||
|
"backup_applying_method_copy": "Kopier alle filer til sikkerhetskopi…",
|
||||||
|
"backup_borg_not_implemented": "Borg-sikkerhetskopimetoden er ikke implementert enda",
|
||||||
|
"backup_creation_failed": "Kunne ikke opprette sikkerhetskopiarkiv",
|
||||||
|
"backup_couldnt_bind": "Kunne ikke binde {src:s} til {dest:s}.",
|
||||||
|
"backup_csv_addition_failed": "Kunne ikke legge til filer for sikkerhetskopi inn i CSV-filen",
|
||||||
|
"backup_deleted": "Sikkerhetskopi slettet",
|
||||||
|
"backup_no_uncompress_archive_dir": "Det finnes ingen slik utpakket arkivmappe",
|
||||||
|
"backup_delete_error": "Kunne ikke slette '{path:s}'",
|
||||||
|
"certmanager_domain_unknown": "Ukjent domene '{domain:s}'",
|
||||||
|
"certmanager_cert_signing_failed": "Kunne ikke signere det nye sertifikatet",
|
||||||
|
"diagnosis_debian_version_error": "Kunne ikke hente Debian-versjon: {error}",
|
||||||
|
"diagnosis_kernel_version_error": "Kunne ikke hente kjerneversjon: {error}",
|
||||||
|
"error_when_removing_sftpuser_group": "Kunne ikke fjerne sftpusers-gruppen",
|
||||||
|
"executing_command": "Kjører kommendoen '{command:s}'…",
|
||||||
|
"executing_script": "Kjører skriptet '{script:s}'…",
|
||||||
|
"extracting": "Pakker ut…",
|
||||||
|
"edit_group_not_allowed": "Du tillates ikke å redigere gruppen {group:s}",
|
||||||
|
"log_domain_add": "Legg til '{}'-domenet i systemoppsett",
|
||||||
|
"log_domain_remove": "Fjern '{}'-domenet fra systemoppsett",
|
||||||
|
"log_dyndns_subscribe": "Abonner på YunoHost-underdomenet '{}'",
|
||||||
|
"log_dyndns_update": "Oppdater IP-adressen tilknyttet ditt YunoHost-underdomene '{}'",
|
||||||
|
"migrate_tsig_wait_3": "1 min…",
|
||||||
|
"migrate_tsig_wait_4": "30 sekunder…",
|
||||||
|
"apps_permission_restoration_failed": "Innvilg tilgangen '{permission:s}' for å gjenopprette {app:}",
|
||||||
|
"apps_permission_not_found": "Fant ingen tilgang for de installerte programmene",
|
||||||
|
"backup_invalid_archive": "Dette er ikke et sikkerhetskopiarkiv",
|
||||||
|
"backup_nothings_done": "Ingenting å lagre",
|
||||||
|
"backup_method_borg_finished": "Sikkerhetskopi inn i Borg fullført",
|
||||||
|
"field_invalid": "Ugyldig felt '{:s}'",
|
||||||
|
"firewall_reloaded": "Brannmur gjeninnlastet",
|
||||||
|
"log_app_removelist": "Fjern en programliste",
|
||||||
|
"log_app_change_url": "Endre nettadresse for '{}'-programmet",
|
||||||
|
"log_app_install": "Installer '{}'-programmet",
|
||||||
|
"log_app_remove": "Fjern '{}'-programmet",
|
||||||
|
"log_app_upgrade": "Oppgrader '{}'-programmet",
|
||||||
|
"log_app_makedefault": "Gjør '{}' til forvalgt program",
|
||||||
|
"log_available_on_yunopaste": "Denne loggen er nå tilgjengelig via {url}",
|
||||||
|
"log_tools_maindomain": "Gjør '{}' til hoveddomene",
|
||||||
|
"log_tools_shutdown": "Slå av tjeneren din",
|
||||||
|
"log_tools_reboot": "Utfør omstart av tjeneren din",
|
||||||
|
"apps_already_up_to_date": "Alle programmer allerede oppdatert",
|
||||||
|
"backup_mount_archive_for_restore": "Forbereder arkiv for gjenopprettelse…",
|
||||||
|
"backup_copying_to_organize_the_archive": "Kopierer {size:s} MB for å organisere arkivet",
|
||||||
|
"domain_cannot_remove_main": "Kan ikke fjerne hoveddomene. Sett et først",
|
||||||
|
"domain_cert_gen_failed": "Kunne ikke opprette sertifikat",
|
||||||
|
"domain_created": "Domene opprettet",
|
||||||
|
"domain_creation_failed": "Kunne ikke opprette domene",
|
||||||
|
"domain_dyndns_root_unknown": "Ukjent DynDNS-rotdomene",
|
||||||
|
"domain_unknown": "Ukjent domene",
|
||||||
|
"dyndns_cron_installed": "Opprettet cron-jobb for DynDNS",
|
||||||
|
"dyndns_cron_removed": "Fjernet cron-jobb for DynDNS",
|
||||||
|
"dyndns_ip_update_failed": "Kunne ikke oppdatere IP-adresse til DynDNS",
|
||||||
|
"dyndns_ip_updated": "Oppdaterte din IP på DynDNS",
|
||||||
|
"dyndns_key_generating": "Oppretter DNS-nøkkel… Dette kan ta en stund.",
|
||||||
|
"dyndns_no_domain_registered": "Inget domene registrert med DynDNS",
|
||||||
|
"dyndns_registered": "DynDNS-domene registrert",
|
||||||
|
"global_settings_setting_security_password_admin_strength": "Admin-passordets styrke",
|
||||||
|
"dyndns_registration_failed": "Kunne ikke registrere DynDNS-domene: {error:s}",
|
||||||
|
"global_settings_setting_security_password_user_strength": "Brukerpassordets styrke",
|
||||||
|
"log_app_fetchlist": "Legg til en programliste",
|
||||||
|
"log_backup_restore_app": "Gjenopprett '{}' fra sikkerhetskopiarkiv",
|
||||||
|
"log_remove_on_failed_install": "Fjern '{}' etter mislykket installasjon",
|
||||||
|
"log_permission_add": "Legg til '{}'-tilgangen for programmet '{}'",
|
||||||
|
"log_permission_remove": "Fjern tilgangen '{}'",
|
||||||
|
"log_selfsigned_cert_install": "Installer selvsignert sertifikat på '{}'-domenet",
|
||||||
|
"log_user_delete": "Slett '{}' bruker",
|
||||||
|
"log_user_group_add": "Legg til '{}' gruppe",
|
||||||
|
"log_user_group_delete": "Slett '{}' gruppe",
|
||||||
|
"log_user_group_update": "Oppdater '{}' gruppe",
|
||||||
|
"log_user_permission_add": "Oppdater '{}' tilgang",
|
||||||
|
"log_user_permission_remove": "Oppdater '{}' tilgang",
|
||||||
|
"ldap_init_failed_to_create_admin": "LDAP-igangsettelse kunne ikke opprette admin-bruker",
|
||||||
|
"ldap_initialized": "LDAP-igangsatt",
|
||||||
|
"maindomain_changed": "Hoveddomenet er nå endret",
|
||||||
|
"migration_description_0003_migrate_to_stretch": "Oppgrader systemet til Debian Stretch og YunoHost 3.0",
|
||||||
|
"app_unknown": "Ukjent program",
|
||||||
|
"app_upgrade_app_name": "Oppgraderer {app}…",
|
||||||
|
"app_upgrade_failed": "Kunne ikke oppgradere {app:s}",
|
||||||
|
"app_upgrade_some_app_failed": "Noen programmer kunne ikke oppgraderes",
|
||||||
|
"app_upgraded": "{app:s} oppgradert",
|
||||||
|
"ask_email": "E-postadresse",
|
||||||
|
"ask_firstname": "Fornavn",
|
||||||
|
"ask_lastname": "Etternavn",
|
||||||
|
"ask_list_to_remove": "Liste å fjerne",
|
||||||
|
"ask_main_domain": "Hoveddomene",
|
||||||
|
"ask_new_admin_password": "Nytt administrasjonspassord",
|
||||||
|
"app_upgrade_several_apps": "Følgende programmer vil oppgraderes: {apps}",
|
||||||
|
"appslist_removed": "{appslist:s}-programliste fjernet",
|
||||||
|
"appslist_url_already_tracked": "Dette er allerede en registrert programliste med nettadressen {url:s}.",
|
||||||
|
"ask_current_admin_password": "Nåværende administrasjonspassord",
|
||||||
|
"appslist_unknown": "Programlisten {appslist:s} er ukjent.",
|
||||||
|
"ask_new_domain": "Nytt domene",
|
||||||
|
"ask_new_path": "Ny sti",
|
||||||
|
"ask_password": "Passord",
|
||||||
|
"domain_deleted": "Domene slettet",
|
||||||
|
"domain_deletion_failed": "Kunne ikke slette domene",
|
||||||
|
"domain_dyndns_already_subscribed": "Du har allerede abonnement på et DynDNS-domene",
|
||||||
|
"log_category_404": "Loggkategorien '{category}' finnes ikke",
|
||||||
|
"log_link_to_log": "Full logg for denne operasjonen: '<a href=\"#/tools/logs/{name}\" style=\"text-decoration:underline\">{desc}</a>'",
|
||||||
|
"log_help_to_get_log": "For å vise loggen for operasjonen '{desc}', bruk kommandoen 'yunohost log display {name}'",
|
||||||
|
"log_app_clearaccess": "Fjern all tilgang til '{}'",
|
||||||
|
"log_user_create": "Legg til '{}' bruker"
|
||||||
|
}
|
||||||
|
|
|
@ -157,7 +157,7 @@
|
||||||
"downloading": "Telecargament…",
|
"downloading": "Telecargament…",
|
||||||
"dyndns_could_not_check_provide": "Impossible de verificar se {provider:s} pòt provesir {domain:s}.",
|
"dyndns_could_not_check_provide": "Impossible de verificar se {provider:s} pòt provesir {domain:s}.",
|
||||||
"dyndns_cron_installed": "La tasca cron pel domeni DynDNS es installada",
|
"dyndns_cron_installed": "La tasca cron pel domeni DynDNS es installada",
|
||||||
"dyndns_cron_remove_failed": "Impossible de levar la tasca cron pel domeni DynDNS",
|
"dyndns_cron_remove_failed": "Impossible de levar la tasca cron pel domeni DynDNS a causa de {error}",
|
||||||
"dyndns_cron_removed": "La tasca cron pel domeni DynDNS es levada",
|
"dyndns_cron_removed": "La tasca cron pel domeni DynDNS es levada",
|
||||||
"dyndns_ip_update_failed": "Impossible d’actualizar l’adreça IP sul domeni DynDNS",
|
"dyndns_ip_update_failed": "Impossible d’actualizar l’adreça IP sul domeni DynDNS",
|
||||||
"dyndns_ip_updated": "Vòstra adreça IP es estada actualizada pel domeni DynDNS",
|
"dyndns_ip_updated": "Vòstra adreça IP es estada actualizada pel domeni DynDNS",
|
||||||
|
@ -198,7 +198,7 @@
|
||||||
"migrations_current_target": "La cibla de migracion est {}",
|
"migrations_current_target": "La cibla de migracion est {}",
|
||||||
"migrations_error_failed_to_load_migration": "ERROR : fracàs del cargament de la migracion {number} {name}",
|
"migrations_error_failed_to_load_migration": "ERROR : fracàs del cargament de la migracion {number} {name}",
|
||||||
"migrations_list_conflict_pending_done": "Podètz pas utilizar --previous e --done a l’encòp.",
|
"migrations_list_conflict_pending_done": "Podètz pas utilizar --previous e --done a l’encòp.",
|
||||||
"migrations_loading_migration": "Cargament de la migracion{number} {name}…",
|
"migrations_loading_migration": "Cargament de la migracion {id}…",
|
||||||
"migrations_no_migrations_to_run": "Cap de migracion de lançar",
|
"migrations_no_migrations_to_run": "Cap de migracion de lançar",
|
||||||
"migrations_show_currently_running_migration": "Realizacion de la migracion {number} {name}…",
|
"migrations_show_currently_running_migration": "Realizacion de la migracion {number} {name}…",
|
||||||
"migrations_show_last_migration": "La darrièra migracion realizada es {}",
|
"migrations_show_last_migration": "La darrièra migracion realizada es {}",
|
||||||
|
@ -376,10 +376,10 @@
|
||||||
"migration_0003_general_warning": "Notatz qu’aquesta migracion es una operacion delicata. Encara que la còla YunoHost aguèsse fach çò melhor per la tornar legir e provar, la migracion poiriá copar de parts del sistèma o de las aplicacions.\n\nEn consequéncia, vos recomandam :\n· · · · - de lançar una salvagarda de vòstras donadas o aplicacions criticas. Mai d’informacions a https://yunohost.org/backup ;\n· · · · - d’èsser pacient aprèp aver lançat la migracion : segon vòstra connexion Internet e material, pòt trigar qualques oras per que tot siá mes al nivèl.\n\nEn mai, lo pòrt per SMTP, utilizat pels clients de corrièls extèrns (coma Thunderbird o K9-Mail per exemple) foguèt cambiat de 465 (SSL/TLS) per 587 (STARTTLS). L’ancian pòrt 465 serà automaticament tampat e lo nòu pòrt 587 serà dobèrt dins lo parafuòc. Vosautres e vòstres utilizaires *auretz* d’adaptar la configuracion de vòstre client de corrièl segon aqueles cambiaments !",
|
"migration_0003_general_warning": "Notatz qu’aquesta migracion es una operacion delicata. Encara que la còla YunoHost aguèsse fach çò melhor per la tornar legir e provar, la migracion poiriá copar de parts del sistèma o de las aplicacions.\n\nEn consequéncia, vos recomandam :\n· · · · - de lançar una salvagarda de vòstras donadas o aplicacions criticas. Mai d’informacions a https://yunohost.org/backup ;\n· · · · - d’èsser pacient aprèp aver lançat la migracion : segon vòstra connexion Internet e material, pòt trigar qualques oras per que tot siá mes al nivèl.\n\nEn mai, lo pòrt per SMTP, utilizat pels clients de corrièls extèrns (coma Thunderbird o K9-Mail per exemple) foguèt cambiat de 465 (SSL/TLS) per 587 (STARTTLS). L’ancian pòrt 465 serà automaticament tampat e lo nòu pòrt 587 serà dobèrt dins lo parafuòc. Vosautres e vòstres utilizaires *auretz* d’adaptar la configuracion de vòstre client de corrièl segon aqueles cambiaments !",
|
||||||
"migration_0003_problematic_apps_warning": "Notatz que las aplicacions seguentas, saique problematicas, son estadas desactivadas. Semblan d’aver estadas installadas d’una lista d’aplicacions o que son pas marcadas coma «working ». En consequéncia, podèm pas assegurar que tendràn de foncionar aprèp la mesa a nivèl : {problematic_apps}",
|
"migration_0003_problematic_apps_warning": "Notatz que las aplicacions seguentas, saique problematicas, son estadas desactivadas. Semblan d’aver estadas installadas d’una lista d’aplicacions o que son pas marcadas coma «working ». En consequéncia, podèm pas assegurar que tendràn de foncionar aprèp la mesa a nivèl : {problematic_apps}",
|
||||||
"migrations_bad_value_for_target": "Nombre invalid pel paramètre « target », los numèros de migracion son 0 o {}",
|
"migrations_bad_value_for_target": "Nombre invalid pel paramètre « target », los numèros de migracion son 0 o {}",
|
||||||
"migrations_migration_has_failed": "La migracion {number} {name} a pas capitat amb l’excepcion {exception}, anullacion",
|
"migrations_migration_has_failed": "La migracion {id} a pas capitat, abandon. Error : {exception}",
|
||||||
"migrations_skip_migration": "Passatge de la migracion {number} {name}…",
|
"migrations_skip_migration": "Passatge de la migracion {id}…",
|
||||||
"migrations_to_be_ran_manually": "La migracion {number} {name} deu èsser lançada manualament. Mercés d’anar a Aisinas > Migracion dins l’interfàcia admin, o lançar « yunohost tools migrations migrate ».",
|
"migrations_to_be_ran_manually": "La migracion {id} deu èsser lançada manualament. Mercés d’anar a Aisinas > Migracion dins l’interfàcia admin, o lançar « yunohost tools migrations migrate ».",
|
||||||
"migrations_need_to_accept_disclaimer": "Per lançar la migracion {number} {name} , avètz d’acceptar aquesta clausa de non-responsabilitat :\n---\n{disclaimer}\n---\nS’acceptatz de lançar la migracion, mercés de tornar executar la comanda amb l’opcion accept-disclaimer.",
|
"migrations_need_to_accept_disclaimer": "Per lançar la migracion {id} , avètz d’acceptar aquesta clausa de non-responsabilitat :\n---\n{disclaimer}\n---\nS’acceptatz de lançar la migracion, mercés de tornar executar la comanda amb l’opcion accept-disclaimer.",
|
||||||
"monitor_disabled": "La supervision del servidor es desactivada",
|
"monitor_disabled": "La supervision del servidor es desactivada",
|
||||||
"monitor_enabled": "La supervision del servidor es activada",
|
"monitor_enabled": "La supervision del servidor es activada",
|
||||||
"mysql_db_initialized": "La basa de donadas MySQL es estada inicializada",
|
"mysql_db_initialized": "La basa de donadas MySQL es estada inicializada",
|
||||||
|
@ -453,7 +453,7 @@
|
||||||
"migration_0005_postgresql_94_not_installed": "Postgresql es pas installat sul sistèma. Pas res de far !",
|
"migration_0005_postgresql_94_not_installed": "Postgresql es pas installat sul sistèma. Pas res de far !",
|
||||||
"migration_0005_postgresql_96_not_installed": "Avèm trobat que Postgresql 9.4 es installat, mas cap de version de Postgresql 9.6 pas trobada !? Quicòm d’estranh a degut arribar a vòstre sistèma :( …",
|
"migration_0005_postgresql_96_not_installed": "Avèm trobat que Postgresql 9.4 es installat, mas cap de version de Postgresql 9.6 pas trobada !? Quicòm d’estranh a degut arribar a vòstre sistèma :( …",
|
||||||
"migration_0005_not_enough_space": "I a pas pro d’espaci disponible sus {path} per lançar la migracion d’aquela passa :(.",
|
"migration_0005_not_enough_space": "I a pas pro d’espaci disponible sus {path} per lançar la migracion d’aquela passa :(.",
|
||||||
"recommend_to_add_first_user": "La post installacion es acabada, mas YunoHost fa besonh d’almens un utilizaire per foncionar coma cal. Vos cal n’ajustar un en utilizant la comanda « yunohost user create $username » o ben l’interfàcia d’administracion.",
|
"recommend_to_add_first_user": "La post installacion es acabada, mas YunoHost fa besonh d’almens un utilizaire per foncionar coma cal. Vos cal n’ajustar un en utilizant la comanda « yunohost user create <username>' » o ben l’interfàcia d’administracion.",
|
||||||
"service_description_php7.0-fpm": "executa d’aplicacions escrichas en PHP amb nginx",
|
"service_description_php7.0-fpm": "executa d’aplicacions escrichas en PHP amb nginx",
|
||||||
"users_available": "Lista dels utilizaires disponibles :",
|
"users_available": "Lista dels utilizaires disponibles :",
|
||||||
"good_practices_about_admin_password": "Sètz per definir un nòu senhal per l’administracion. Lo senhal deu almens conténer 8 caractèrs - encara que siá de bon far d’utilizar un senhal mai long qu’aquò (ex. una passafrasa) e/o d’utilizar mantun tipes de caractèrs (majuscula, minuscula, nombre e caractèrs especials).",
|
"good_practices_about_admin_password": "Sètz per definir un nòu senhal per l’administracion. Lo senhal deu almens conténer 8 caractèrs - encara que siá de bon far d’utilizar un senhal mai long qu’aquò (ex. una passafrasa) e/o d’utilizar mantun tipes de caractèrs (majuscula, minuscula, nombre e caractèrs especials).",
|
||||||
|
@ -468,7 +468,7 @@
|
||||||
"password_too_simple_4": "Lo senhal deu conténer almens 12 caractèrs, de nombre, majusculas, minisculas e caractèrs specials",
|
"password_too_simple_4": "Lo senhal deu conténer almens 12 caractèrs, de nombre, majusculas, minisculas e caractèrs specials",
|
||||||
"root_password_desynchronized": "Lo senhal de l’administrator es estat cambiat, mas YunoHost a pas pogut l’espandir al senhal root !",
|
"root_password_desynchronized": "Lo senhal de l’administrator es estat cambiat, mas YunoHost a pas pogut l’espandir al senhal root !",
|
||||||
"aborting": "Interrupcion.",
|
"aborting": "Interrupcion.",
|
||||||
"app_not_upgraded": "Las aplicacions seguentas son pas estadas actualizadas : {apps}",
|
"app_not_upgraded": "L’aplicacion « {failed_app} » a pas reüssit a s’actualizar e coma consequéncia las mesas a jorn de las aplicacions seguentas son estadas anulladas : {apps}",
|
||||||
"app_start_install": "Installacion de l’aplicacion {app}…",
|
"app_start_install": "Installacion de l’aplicacion {app}…",
|
||||||
"app_start_remove": "Supression de l’aplicacion {app}…",
|
"app_start_remove": "Supression de l’aplicacion {app}…",
|
||||||
"app_start_backup": "Recuperacion dels fichièrs de salvagardar per {app}…",
|
"app_start_backup": "Recuperacion dels fichièrs de salvagardar per {app}…",
|
||||||
|
@ -604,5 +604,13 @@
|
||||||
"edit_permission_with_group_all_users_not_allowed": "Podètz pas modificar las permissions del grop « all_users », utilizatz « yunohost user permission clear APP » o « yunohost user permission add APP -u USER ».",
|
"edit_permission_with_group_all_users_not_allowed": "Podètz pas modificar las permissions del grop « all_users », utilizatz « yunohost user permission clear APP » o « yunohost user permission add APP -u USER ».",
|
||||||
"mailbox_disabled": "La bóstia de las letras es desactivada per l’utilizaire {user:s}",
|
"mailbox_disabled": "La bóstia de las letras es desactivada per l’utilizaire {user:s}",
|
||||||
"migration_0011_LDAP_config_dirty": "Sembla qu’avètz modificat manualament la configuracion LDAP. Per far aquesta migracion cal actualizar la configuracion LDAP.\nSalvagardatz la configuracion actuala, reïnicializatz la configuracion originala amb la comanda « yunohost tools regen-conf -f » e tornatz ensajar la migracion",
|
"migration_0011_LDAP_config_dirty": "Sembla qu’avètz modificat manualament la configuracion LDAP. Per far aquesta migracion cal actualizar la configuracion LDAP.\nSalvagardatz la configuracion actuala, reïnicializatz la configuracion originala amb la comanda « yunohost tools regen-conf -f » e tornatz ensajar la migracion",
|
||||||
"need_define_permission_before": "Vos cal tornar definir las permission en utilizant « yunohost user permission add -u USER » abans de suprimir un grop permés"
|
"need_define_permission_before": "Vos cal tornar definir las permission en utilizant « yunohost user permission add -u USER » abans de suprimir un grop permés",
|
||||||
|
"permission_already_clear": "La permission « {permission:s} » ja levada per l’aplicacion {app:s}",
|
||||||
|
"migration_description_0012_postgresql_password_to_md5_authentication": "Forçar l’autentificacion postgresql a utilizar md5 per las connexions localas",
|
||||||
|
"migrations_success_forward": "Migracion {id} corrèctament realizada !",
|
||||||
|
"migrations_running_forward": "Execucion de la migracion {id}…",
|
||||||
|
"migrations_must_provide_explicit_targets": "Devètz fornir una cibla explicita quand utilizatz using --skip o --force-rerun",
|
||||||
|
"migrations_exclusive_options": "--auto, --skip, e --force-rerun son las opcions exclusivas.",
|
||||||
|
"migrations_failed_to_load_migration": "Cargament impossible de la migracion {id} : {error}",
|
||||||
|
"migrations_already_ran": "Aquelas migracions s’executèron ja : {ids}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -542,7 +542,7 @@ def app_change_url(operation_logger, app, domain, path):
|
||||||
raise YunohostError('app_not_installed', app=app, all_apps=_get_all_installed_apps_id())
|
raise YunohostError('app_not_installed', app=app, all_apps=_get_all_installed_apps_id())
|
||||||
|
|
||||||
if not os.path.exists(os.path.join(APPS_SETTING_PATH, app, "scripts", "change_url")):
|
if not os.path.exists(os.path.join(APPS_SETTING_PATH, app, "scripts", "change_url")):
|
||||||
raise YunohostError("app_change_no_change_url_script", app_name=app)
|
raise YunohostError("app_change_url_no_script", app_name=app)
|
||||||
|
|
||||||
old_domain = app_setting(app, "domain")
|
old_domain = app_setting(app, "domain")
|
||||||
old_path = app_setting(app, "path")
|
old_path = app_setting(app, "path")
|
||||||
|
@ -652,19 +652,13 @@ def app_upgrade(app=[], url=None, file=None):
|
||||||
url -- Git url to fetch for upgrade
|
url -- Git url to fetch for upgrade
|
||||||
|
|
||||||
"""
|
"""
|
||||||
if packages.dpkg_is_broken():
|
|
||||||
raise YunohostError("dpkg_is_broken")
|
|
||||||
|
|
||||||
from yunohost.hook import hook_add, hook_remove, hook_exec, hook_callback
|
from yunohost.hook import hook_add, hook_remove, hook_exec, hook_callback
|
||||||
from yunohost.permission import permission_sync_to_user
|
from yunohost.permission import permission_sync_to_user
|
||||||
|
|
||||||
# Retrieve interface
|
|
||||||
is_api = msettings.get('interface') == 'api'
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
app_list()
|
app_list()
|
||||||
except YunohostError:
|
except YunohostError:
|
||||||
raise YunohostError('app_no_upgrade')
|
raise YunohostError('apps_already_up_to_date')
|
||||||
|
|
||||||
not_upgraded_apps = []
|
not_upgraded_apps = []
|
||||||
|
|
||||||
|
@ -685,16 +679,19 @@ def app_upgrade(app=[], url=None, file=None):
|
||||||
raise YunohostError('app_not_installed', app=app, all_apps=_get_all_installed_apps_id())
|
raise YunohostError('app_not_installed', app=app, all_apps=_get_all_installed_apps_id())
|
||||||
|
|
||||||
if len(apps) == 0:
|
if len(apps) == 0:
|
||||||
raise YunohostError('app_no_upgrade')
|
raise YunohostError('apps_already_up_to_date')
|
||||||
if len(apps) > 1:
|
if len(apps) > 1:
|
||||||
logger.info(m18n.n("app_upgrade_several_apps", apps=", ".join(apps)))
|
logger.info(m18n.n("app_upgrade_several_apps", apps=", ".join(apps)))
|
||||||
|
|
||||||
for app_instance_name in apps:
|
for number, app_instance_name in enumerate(apps):
|
||||||
logger.info(m18n.n('app_upgrade_app_name', app=app_instance_name))
|
logger.info(m18n.n('app_upgrade_app_name', app=app_instance_name))
|
||||||
|
|
||||||
app_dict = app_info(app_instance_name, raw=True)
|
app_dict = app_info(app_instance_name, raw=True)
|
||||||
|
|
||||||
if file:
|
if file and isinstance(file, dict):
|
||||||
|
# We use this dirty hack to test chained upgrades in unit/functional tests
|
||||||
|
manifest, extracted_app_folder = _extract_app_from_file(file[app_instance_name])
|
||||||
|
elif file:
|
||||||
manifest, extracted_app_folder = _extract_app_from_file(file)
|
manifest, extracted_app_folder = _extract_app_from_file(file)
|
||||||
elif url:
|
elif url:
|
||||||
manifest, extracted_app_folder = _fetch_app_from_git(url)
|
manifest, extracted_app_folder = _fetch_app_from_git(url)
|
||||||
|
@ -709,7 +706,7 @@ def app_upgrade(app=[], url=None, file=None):
|
||||||
|
|
||||||
# Check requirements
|
# Check requirements
|
||||||
_check_manifest_requirements(manifest, app_instance_name=app_instance_name)
|
_check_manifest_requirements(manifest, app_instance_name=app_instance_name)
|
||||||
_check_services_status_for_app(manifest.get("services", []))
|
_assert_system_is_sane_for_app(manifest, "pre")
|
||||||
|
|
||||||
app_setting_path = APPS_SETTING_PATH + '/' + app_instance_name
|
app_setting_path = APPS_SETTING_PATH + '/' + app_instance_name
|
||||||
|
|
||||||
|
@ -740,48 +737,83 @@ def app_upgrade(app=[], url=None, file=None):
|
||||||
|
|
||||||
# Execute App upgrade script
|
# Execute App upgrade script
|
||||||
os.system('chown -hR admin: %s' % INSTALL_TMP)
|
os.system('chown -hR admin: %s' % INSTALL_TMP)
|
||||||
if hook_exec(extracted_app_folder + '/scripts/upgrade',
|
|
||||||
args=args_list, env=env_dict)[0] != 0:
|
|
||||||
msg = m18n.n('app_upgrade_failed', app=app_instance_name)
|
|
||||||
not_upgraded_apps.append(app_instance_name)
|
|
||||||
logger.error(msg)
|
|
||||||
operation_logger.error(msg)
|
|
||||||
else:
|
|
||||||
now = int(time.time())
|
|
||||||
# TODO: Move install_time away from app_setting
|
|
||||||
app_setting(app_instance_name, 'update_time', now)
|
|
||||||
status['upgraded_at'] = now
|
|
||||||
|
|
||||||
# Clean hooks and add new ones
|
try:
|
||||||
hook_remove(app_instance_name)
|
upgrade_retcode = hook_exec(extracted_app_folder + '/scripts/upgrade',
|
||||||
if 'hooks' in os.listdir(extracted_app_folder):
|
args=args_list, env=env_dict)[0]
|
||||||
for hook in os.listdir(extracted_app_folder + '/hooks'):
|
except (KeyboardInterrupt, EOFError):
|
||||||
hook_add(app_instance_name, extracted_app_folder + '/hooks/' + hook)
|
upgrade_retcode = -1
|
||||||
|
except Exception:
|
||||||
|
import traceback
|
||||||
|
logger.exception(m18n.n('unexpected_error', error=u"\n" + traceback.format_exc()))
|
||||||
|
finally:
|
||||||
|
|
||||||
# Store app status
|
# Did the script succeed ?
|
||||||
with open(app_setting_path + '/status.json', 'w+') as f:
|
if upgrade_retcode == -1:
|
||||||
json.dump(status, f)
|
error_msg = m18n.n('operation_interrupted')
|
||||||
|
operation_logger.error(error_msg)
|
||||||
|
elif upgrade_retcode != 0:
|
||||||
|
error_msg = m18n.n('app_upgrade_failed', app=app_instance_name)
|
||||||
|
operation_logger.error(error_msg)
|
||||||
|
|
||||||
# Replace scripts and manifest and conf (if exists)
|
# Did it broke the system ?
|
||||||
os.system('rm -rf "%s/scripts" "%s/manifest.toml %s/manifest.json %s/conf"' % (app_setting_path, app_setting_path, app_setting_path, app_setting_path))
|
try:
|
||||||
|
broke_the_system = False
|
||||||
|
_assert_system_is_sane_for_app(manifest, "post")
|
||||||
|
except Exception as e:
|
||||||
|
broke_the_system = True
|
||||||
|
error_msg = operation_logger.error(str(e))
|
||||||
|
|
||||||
if os.path.exists(os.path.join(extracted_app_folder, "manifest.json")):
|
# If upgrade failed or broke the system,
|
||||||
os.system('mv "%s/manifest.json" "%s/scripts" %s' % (extracted_app_folder, extracted_app_folder, app_setting_path))
|
# raise an error and interrupt all other pending upgrades
|
||||||
if os.path.exists(os.path.join(extracted_app_folder, "manifest.toml")):
|
if upgrade_retcode != 0 or broke_the_system:
|
||||||
os.system('mv "%s/manifest.toml" "%s/scripts" %s' % (extracted_app_folder, extracted_app_folder, app_setting_path))
|
|
||||||
|
|
||||||
for file_to_copy in ["actions.json", "actions.toml", "config_panel.json", "config_panel.toml", "conf"]:
|
# display this if there are remaining apps
|
||||||
if os.path.exists(os.path.join(extracted_app_folder, file_to_copy)):
|
if apps[number + 1:]:
|
||||||
os.system('cp -R %s/%s %s' % (extracted_app_folder, file_to_copy, app_setting_path))
|
logger.error(m18n.n('app_upgrade_stopped'))
|
||||||
|
not_upgraded_apps = apps[number:]
|
||||||
|
# we don't want to continue upgrading apps here in case that breaks
|
||||||
|
# everything
|
||||||
|
raise YunohostError('app_not_upgraded',
|
||||||
|
failed_app=app_instance_name,
|
||||||
|
apps=', '.join(not_upgraded_apps))
|
||||||
|
else:
|
||||||
|
raise YunohostError(error_msg, raw_msg=True)
|
||||||
|
|
||||||
# So much win
|
# Otherwise we're good and keep going !
|
||||||
logger.success(m18n.n('app_upgraded', app=app_instance_name))
|
else:
|
||||||
|
now = int(time.time())
|
||||||
|
# TODO: Move install_time away from app_setting
|
||||||
|
app_setting(app_instance_name, 'update_time', now)
|
||||||
|
status['upgraded_at'] = now
|
||||||
|
|
||||||
hook_callback('post_app_upgrade', args=args_list, env=env_dict)
|
# Clean hooks and add new ones
|
||||||
operation_logger.success()
|
hook_remove(app_instance_name)
|
||||||
|
if 'hooks' in os.listdir(extracted_app_folder):
|
||||||
|
for hook in os.listdir(extracted_app_folder + '/hooks'):
|
||||||
|
hook_add(app_instance_name, extracted_app_folder + '/hooks/' + hook)
|
||||||
|
|
||||||
if not_upgraded_apps:
|
# Store app status
|
||||||
raise YunohostError('app_not_upgraded', apps=', '.join(not_upgraded_apps))
|
with open(app_setting_path + '/status.json', 'w+') as f:
|
||||||
|
json.dump(status, f)
|
||||||
|
|
||||||
|
# Replace scripts and manifest and conf (if exists)
|
||||||
|
os.system('rm -rf "%s/scripts" "%s/manifest.toml %s/manifest.json %s/conf"' % (app_setting_path, app_setting_path, app_setting_path, app_setting_path))
|
||||||
|
|
||||||
|
if os.path.exists(os.path.join(extracted_app_folder, "manifest.json")):
|
||||||
|
os.system('mv "%s/manifest.json" "%s/scripts" %s' % (extracted_app_folder, extracted_app_folder, app_setting_path))
|
||||||
|
if os.path.exists(os.path.join(extracted_app_folder, "manifest.toml")):
|
||||||
|
os.system('mv "%s/manifest.toml" "%s/scripts" %s' % (extracted_app_folder, extracted_app_folder, app_setting_path))
|
||||||
|
|
||||||
|
for file_to_copy in ["actions.json", "actions.toml", "config_panel.json", "config_panel.toml", "conf"]:
|
||||||
|
if os.path.exists(os.path.join(extracted_app_folder, file_to_copy)):
|
||||||
|
os.system('cp -R %s/%s %s' % (extracted_app_folder, file_to_copy, app_setting_path))
|
||||||
|
|
||||||
|
# So much win
|
||||||
|
logger.success(m18n.n('app_upgraded', app=app_instance_name))
|
||||||
|
|
||||||
|
hook_callback('post_app_upgrade', args=args_list, env=env_dict)
|
||||||
|
operation_logger.success()
|
||||||
|
|
||||||
permission_sync_to_user()
|
permission_sync_to_user()
|
||||||
|
|
||||||
|
@ -800,8 +832,6 @@ def app_install(operation_logger, app, label=None, args=None, no_remove_on_failu
|
||||||
no_remove_on_failure -- Debug option to avoid removing the app on a failed installation
|
no_remove_on_failure -- Debug option to avoid removing the app on a failed installation
|
||||||
force -- Do not ask for confirmation when installing experimental / low-quality apps
|
force -- Do not ask for confirmation when installing experimental / low-quality apps
|
||||||
"""
|
"""
|
||||||
if packages.dpkg_is_broken():
|
|
||||||
raise YunohostError("dpkg_is_broken")
|
|
||||||
|
|
||||||
from yunohost.hook import hook_add, hook_remove, hook_exec, hook_callback
|
from yunohost.hook import hook_add, hook_remove, hook_exec, hook_callback
|
||||||
from yunohost.log import OperationLogger
|
from yunohost.log import OperationLogger
|
||||||
|
@ -825,20 +855,41 @@ def app_install(operation_logger, app, label=None, args=None, no_remove_on_failu
|
||||||
if confirm is None or force or msettings.get('interface') == 'api':
|
if confirm is None or force or msettings.get('interface') == 'api':
|
||||||
return
|
return
|
||||||
|
|
||||||
answer = msignals.prompt(m18n.n('confirm_app_install_' + confirm,
|
if confirm in ["danger", "thirdparty"]:
|
||||||
answers='Y/N'))
|
answer = msignals.prompt(m18n.n('confirm_app_install_' + confirm,
|
||||||
if answer.upper() != "Y":
|
answers='Yes, I understand'),
|
||||||
raise YunohostError("aborting")
|
color="red")
|
||||||
|
if answer != "Yes, I understand":
|
||||||
|
raise YunohostError("aborting")
|
||||||
|
|
||||||
|
else:
|
||||||
|
answer = msignals.prompt(m18n.n('confirm_app_install_' + confirm,
|
||||||
|
answers='Y/N'),
|
||||||
|
color="yellow")
|
||||||
|
if answer.upper() != "Y":
|
||||||
|
raise YunohostError("aborting")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
raw_app_list = app_list(raw=True)
|
raw_app_list = app_list(raw=True)
|
||||||
|
|
||||||
if app in raw_app_list or ('@' in app) or ('http://' in app) or ('https://' in app):
|
if app in raw_app_list or ('@' in app) or ('http://' in app) or ('https://' in app):
|
||||||
|
|
||||||
|
# If we got an app name directly (e.g. just "wordpress"), we gonna test this name
|
||||||
if app in raw_app_list:
|
if app in raw_app_list:
|
||||||
state = raw_app_list[app].get("state", "notworking")
|
app_name_to_test = app
|
||||||
level = raw_app_list[app].get("level", None)
|
# If we got an url like "https://github.com/foo/bar_ynh, we want to
|
||||||
|
# extract "bar" and test if we know this app
|
||||||
|
elif ('http://' in app) or ('https://' in app):
|
||||||
|
app_name_to_test = app.strip("/").split("/")[-1].replace("_ynh","")
|
||||||
|
|
||||||
|
if app_name_to_test in raw_app_list:
|
||||||
|
|
||||||
|
state = raw_app_list[app_name_to_test].get("state", "notworking")
|
||||||
|
level = raw_app_list[app_name_to_test].get("level", None)
|
||||||
confirm = "danger"
|
confirm = "danger"
|
||||||
if state in ["working", "validated"]:
|
if state in ["working", "validated"]:
|
||||||
if isinstance(level, int) and level >= 3:
|
if isinstance(level, int) and level >= 5:
|
||||||
confirm = None
|
confirm = None
|
||||||
elif isinstance(level, int) and level > 0:
|
elif isinstance(level, int) and level > 0:
|
||||||
confirm = "warning"
|
confirm = "warning"
|
||||||
|
@ -863,7 +914,7 @@ def app_install(operation_logger, app, label=None, args=None, no_remove_on_failu
|
||||||
|
|
||||||
# Check requirements
|
# Check requirements
|
||||||
_check_manifest_requirements(manifest, app_id)
|
_check_manifest_requirements(manifest, app_id)
|
||||||
_check_services_status_for_app(manifest.get("services", []))
|
_assert_system_is_sane_for_app(manifest, "pre")
|
||||||
|
|
||||||
# Check if app can be forked
|
# Check if app can be forked
|
||||||
instance_number = _installed_instance_number(app_id, last=True) + 1
|
instance_number = _installed_instance_number(app_id, last=True) + 1
|
||||||
|
@ -883,6 +934,9 @@ def app_install(operation_logger, app, label=None, args=None, no_remove_on_failu
|
||||||
args_list = [ value[0] for value in args_odict.values() ]
|
args_list = [ value[0] for value in args_odict.values() ]
|
||||||
args_list.append(app_instance_name)
|
args_list.append(app_instance_name)
|
||||||
|
|
||||||
|
# Validate domain / path availability for webapps
|
||||||
|
_validate_and_normalize_webpath(manifest, args_odict, extracted_app_folder)
|
||||||
|
|
||||||
# Prepare env. var. to pass to script
|
# Prepare env. var. to pass to script
|
||||||
env_dict = _make_environment_dict(args_odict)
|
env_dict = _make_environment_dict(args_odict)
|
||||||
env_dict["YNH_APP_ID"] = app_id
|
env_dict["YNH_APP_ID"] = app_id
|
||||||
|
@ -955,8 +1009,17 @@ def app_install(operation_logger, app, label=None, args=None, no_remove_on_failu
|
||||||
import traceback
|
import traceback
|
||||||
logger.exception(m18n.n('unexpected_error', error=u"\n" + traceback.format_exc()))
|
logger.exception(m18n.n('unexpected_error', error=u"\n" + traceback.format_exc()))
|
||||||
finally:
|
finally:
|
||||||
|
try:
|
||||||
|
broke_the_system = False
|
||||||
|
_assert_system_is_sane_for_app(manifest, "post")
|
||||||
|
except Exception as e:
|
||||||
|
broke_the_system = True
|
||||||
|
error_msg = operation_logger.error(str(e))
|
||||||
|
|
||||||
if install_retcode != 0:
|
if install_retcode != 0:
|
||||||
error_msg = operation_logger.error(m18n.n('unexpected_error', error='shell command return code: %s' % install_retcode))
|
error_msg = operation_logger.error(m18n.n('unexpected_error', error='shell command return code: %s' % install_retcode))
|
||||||
|
|
||||||
|
if install_retcode != 0 or broke_the_system:
|
||||||
if not no_remove_on_failure:
|
if not no_remove_on_failure:
|
||||||
# Setup environment for remove script
|
# Setup environment for remove script
|
||||||
env_dict_remove = {}
|
env_dict_remove = {}
|
||||||
|
@ -985,7 +1048,12 @@ def app_install(operation_logger, app, label=None, args=None, no_remove_on_failu
|
||||||
logger.warning(msg)
|
logger.warning(msg)
|
||||||
operation_logger_remove.error(msg)
|
operation_logger_remove.error(msg)
|
||||||
else:
|
else:
|
||||||
operation_logger_remove.success()
|
try:
|
||||||
|
_assert_system_is_sane_for_app(manifest, "post")
|
||||||
|
except Exception as e:
|
||||||
|
operation_logger_remove.error(e)
|
||||||
|
else:
|
||||||
|
operation_logger_remove.success()
|
||||||
|
|
||||||
# Clean tmp folders
|
# Clean tmp folders
|
||||||
shutil.rmtree(app_setting_path)
|
shutil.rmtree(app_setting_path)
|
||||||
|
@ -993,9 +1061,6 @@ def app_install(operation_logger, app, label=None, args=None, no_remove_on_failu
|
||||||
|
|
||||||
app_ssowatconf()
|
app_ssowatconf()
|
||||||
|
|
||||||
if packages.dpkg_is_broken():
|
|
||||||
logger.error(m18n.n("this_action_broke_dpkg"))
|
|
||||||
|
|
||||||
if install_retcode == -1:
|
if install_retcode == -1:
|
||||||
msg = m18n.n('operation_interrupted') + " " + error_msg
|
msg = m18n.n('operation_interrupted') + " " + error_msg
|
||||||
raise YunohostError(msg, raw_msg=True)
|
raise YunohostError(msg, raw_msg=True)
|
||||||
|
@ -1066,6 +1131,8 @@ def app_remove(operation_logger, app):
|
||||||
# script might date back from jessie install)
|
# script might date back from jessie install)
|
||||||
_patch_php5(app_setting_path)
|
_patch_php5(app_setting_path)
|
||||||
|
|
||||||
|
manifest = _get_manifest_of_app(app_setting_path)
|
||||||
|
|
||||||
os.system('cp -a %s /tmp/yunohost_remove && chown -hR admin: /tmp/yunohost_remove' % app_setting_path)
|
os.system('cp -a %s /tmp/yunohost_remove && chown -hR admin: /tmp/yunohost_remove' % app_setting_path)
|
||||||
os.system('chown -R admin: /tmp/yunohost_remove')
|
os.system('chown -R admin: /tmp/yunohost_remove')
|
||||||
os.system('chmod -R u+rX /tmp/yunohost_remove')
|
os.system('chmod -R u+rX /tmp/yunohost_remove')
|
||||||
|
@ -1097,9 +1164,7 @@ def app_remove(operation_logger, app):
|
||||||
permission_delete(permission_name, force=True, sync_perm=False)
|
permission_delete(permission_name, force=True, sync_perm=False)
|
||||||
|
|
||||||
permission_sync_to_user()
|
permission_sync_to_user()
|
||||||
|
_assert_system_is_sane_for_app(manifest, "post")
|
||||||
if packages.dpkg_is_broken():
|
|
||||||
raise YunohostError("this_action_broke_dpkg")
|
|
||||||
|
|
||||||
|
|
||||||
def app_addaccess(apps, users=[]):
|
def app_addaccess(apps, users=[]):
|
||||||
|
@ -1117,7 +1182,7 @@ def app_addaccess(apps, users=[]):
|
||||||
|
|
||||||
output = {}
|
output = {}
|
||||||
for app in apps:
|
for app in apps:
|
||||||
permission = user_permission_update(app+".main", add=users)
|
permission = user_permission_update(app+".main", add=users, remove="all_users")
|
||||||
output[app] = permission["corresponding_users"]
|
output[app] = permission["corresponding_users"]
|
||||||
|
|
||||||
return {'allowed_users': output}
|
return {'allowed_users': output}
|
||||||
|
@ -2611,8 +2676,7 @@ def _parse_args_for_action(action, args={}):
|
||||||
def _parse_args_in_yunohost_format(args, action_args):
|
def _parse_args_in_yunohost_format(args, action_args):
|
||||||
"""Parse arguments store in either manifest.json or actions.json
|
"""Parse arguments store in either manifest.json or actions.json
|
||||||
"""
|
"""
|
||||||
from yunohost.domain import (domain_list, _get_maindomain,
|
from yunohost.domain import domain_list, _get_maindomain
|
||||||
_get_conflicting_apps, _normalize_domain_path)
|
|
||||||
from yunohost.user import user_info, user_list
|
from yunohost.user import user_info, user_list
|
||||||
|
|
||||||
args_dict = OrderedDict()
|
args_dict = OrderedDict()
|
||||||
|
@ -2728,13 +2792,18 @@ def _parse_args_in_yunohost_format(args, action_args):
|
||||||
assert_password_is_strong_enough('user', arg_value)
|
assert_password_is_strong_enough('user', arg_value)
|
||||||
args_dict[arg_name] = (arg_value, arg_type)
|
args_dict[arg_name] = (arg_value, arg_type)
|
||||||
|
|
||||||
# END loop over action_args...
|
return args_dict
|
||||||
|
|
||||||
|
|
||||||
|
def _validate_and_normalize_webpath(manifest, args_dict, app_folder):
|
||||||
|
|
||||||
|
from yunohost.domain import _get_conflicting_apps, _normalize_domain_path
|
||||||
|
|
||||||
# If there's only one "domain" and "path", validate that domain/path
|
# If there's only one "domain" and "path", validate that domain/path
|
||||||
# is an available url and normalize the path.
|
# is an available url and normalize the path.
|
||||||
|
|
||||||
domain_args = [ (name, value[0]) for name, value in args_dict.items() if value[1] == "domain" ]
|
domain_args = [(name, value[0]) for name, value in args_dict.items() if value[1] == "domain"]
|
||||||
path_args = [ (name, value[0]) for name, value in args_dict.items() if value[1] == "path" ]
|
path_args = [(name, value[0]) for name, value in args_dict.items() if value[1] == "path"]
|
||||||
|
|
||||||
if len(domain_args) == 1 and len(path_args) == 1:
|
if len(domain_args) == 1 and len(path_args) == 1:
|
||||||
|
|
||||||
|
@ -2760,7 +2829,26 @@ def _parse_args_in_yunohost_format(args, action_args):
|
||||||
# standard path format to deal with no matter what the user inputted)
|
# standard path format to deal with no matter what the user inputted)
|
||||||
args_dict[path_args[0][0]] = (path, "path")
|
args_dict[path_args[0][0]] = (path, "path")
|
||||||
|
|
||||||
return args_dict
|
# This is likely to be a full-domain app...
|
||||||
|
elif len(domain_args) == 1 and len(path_args) == 0:
|
||||||
|
|
||||||
|
# Confirm that this is a full-domain app This should cover most cases
|
||||||
|
# ... though anyway the proper solution is to implement some mechanism
|
||||||
|
# in the manifest for app to declare that they require a full domain
|
||||||
|
# (among other thing) so that we can dynamically check/display this
|
||||||
|
# requirement on the webadmin form and not miserably fail at submit time
|
||||||
|
|
||||||
|
# Full-domain apps typically declare something like path_url="/" or path=/
|
||||||
|
# and use ynh_webpath_register or yunohost_app_checkurl inside the install script
|
||||||
|
install_script_content = open(os.path.join(app_folder, 'scripts/install')).read()
|
||||||
|
|
||||||
|
if re.search(r"\npath(_url)?=[\"']?/[\"']?\n", install_script_content) \
|
||||||
|
and re.search(r"(ynh_webpath_register|yunohost app checkurl)", install_script_content):
|
||||||
|
|
||||||
|
domain = domain_args[0][1]
|
||||||
|
conflicts = _get_conflicting_apps(domain, "/")
|
||||||
|
|
||||||
|
raise YunohostError('app_full_domain_unavailable', domain=domain)
|
||||||
|
|
||||||
|
|
||||||
def _make_environment_dict(args_dict, prefix="APP_ARG_"):
|
def _make_environment_dict(args_dict, prefix="APP_ARG_"):
|
||||||
|
@ -3009,10 +3097,12 @@ def unstable_apps():
|
||||||
return output
|
return output
|
||||||
|
|
||||||
|
|
||||||
def _check_services_status_for_app(services):
|
def _assert_system_is_sane_for_app(manifest, when):
|
||||||
|
|
||||||
logger.debug("Checking that required services are up and running...")
|
logger.debug("Checking that required services are up and running...")
|
||||||
|
|
||||||
|
services = manifest.get("services", [])
|
||||||
|
|
||||||
# Some apps use php-fpm or php5-fpm which is now php7.0-fpm
|
# Some apps use php-fpm or php5-fpm which is now php7.0-fpm
|
||||||
def replace_alias(service):
|
def replace_alias(service):
|
||||||
if service in ["php-fpm", "php5-fpm"]:
|
if service in ["php-fpm", "php5-fpm"]:
|
||||||
|
@ -3027,11 +3117,26 @@ def _check_services_status_for_app(services):
|
||||||
service_filter = ["nginx", "php7.0-fpm", "mysql", "postfix"]
|
service_filter = ["nginx", "php7.0-fpm", "mysql", "postfix"]
|
||||||
services = [str(s) for s in services if s in service_filter]
|
services = [str(s) for s in services if s in service_filter]
|
||||||
|
|
||||||
|
if "nginx" not in services:
|
||||||
|
services = ["nginx"] + services
|
||||||
|
if "fail2ban" not in services:
|
||||||
|
services.append("fail2ban")
|
||||||
|
|
||||||
# List services currently down and raise an exception if any are found
|
# List services currently down and raise an exception if any are found
|
||||||
faulty_services = [s for s in services if service_status(s)["active"] != "active"]
|
faulty_services = [s for s in services if service_status(s)["active"] != "active"]
|
||||||
if faulty_services:
|
if faulty_services:
|
||||||
raise YunohostError('app_action_cannot_be_ran_because_required_services_down',
|
if when == "pre":
|
||||||
services=', '.join(faulty_services))
|
raise YunohostError('app_action_cannot_be_ran_because_required_services_down',
|
||||||
|
services=', '.join(faulty_services))
|
||||||
|
elif when == "post":
|
||||||
|
raise YunohostError('app_action_broke_system',
|
||||||
|
services=', '.join(faulty_services))
|
||||||
|
|
||||||
|
if packages.dpkg_is_broken():
|
||||||
|
if when == "pre":
|
||||||
|
raise YunohostError("dpkg_is_broken")
|
||||||
|
elif when == "post":
|
||||||
|
raise YunohostError("this_action_broke_dpkg")
|
||||||
|
|
||||||
|
|
||||||
def _patch_php5(app_folder):
|
def _patch_php5(app_folder):
|
||||||
|
|
|
@ -1365,7 +1365,7 @@ class RestoreManager():
|
||||||
permission_create(permission_name, urls=permission_infos.get("urls", []))
|
permission_create(permission_name, urls=permission_infos.get("urls", []))
|
||||||
|
|
||||||
if "allowed" not in permission_infos:
|
if "allowed" not in permission_infos:
|
||||||
logger.warning("'allowed' key corresponding to allowed groups for permission %s not found when restoring app %s ... You might need to reconfigure permissions yourself!" % (permission_name, app_instance_name))
|
logger.warning("'allowed' key corresponding to allowed groups for permission %s not found when restoring app %s … You might have to reconfigure permissions yourself." % (permission_name, app_instance_name))
|
||||||
else:
|
else:
|
||||||
should_be_allowed = [g for g in permission_infos["allowed"] if g in existing_groups]
|
should_be_allowed = [g for g in permission_infos["allowed"] if g in existing_groups]
|
||||||
current_allowed = user_permission_list()["permissions"][permission_name]["allowed"]
|
current_allowed = user_permission_list()["permissions"][permission_name]["allowed"]
|
||||||
|
|
|
@ -212,7 +212,7 @@ def dyndns_update(operation_logger, dyn_host="dyndns.yunohost.org", domain=None,
|
||||||
from yunohost.tools import _get_migration_by_name
|
from yunohost.tools import _get_migration_by_name
|
||||||
migration = _get_migration_by_name("migrate_to_tsig_sha256")
|
migration = _get_migration_by_name("migrate_to_tsig_sha256")
|
||||||
try:
|
try:
|
||||||
migration.migrate(dyn_host, domain, key)
|
migration.run(dyn_host, domain, key)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(m18n.n('migrations_migration_has_failed',
|
logger.error(m18n.n('migrations_migration_has_failed',
|
||||||
exception=e,
|
exception=e,
|
||||||
|
|
|
@ -70,7 +70,7 @@ def regen_conf(operation_logger, names=[], with_diff=False, force=False, dry_run
|
||||||
or not os.path.exists(REGEN_CONF_FILE)):
|
or not os.path.exists(REGEN_CONF_FILE)):
|
||||||
from yunohost.tools import _get_migration_by_name
|
from yunohost.tools import _get_migration_by_name
|
||||||
migration = _get_migration_by_name("decouple_regenconf_from_services")
|
migration = _get_migration_by_name("decouple_regenconf_from_services")
|
||||||
migration.migrate()
|
migration.run()
|
||||||
|
|
||||||
result = {}
|
result = {}
|
||||||
|
|
||||||
|
|
|
@ -41,11 +41,11 @@ def pytest_cmdline_main(config):
|
||||||
root_handlers = set(handlers)
|
root_handlers = set(handlers)
|
||||||
|
|
||||||
# Define loggers level
|
# Define loggers level
|
||||||
level = 'INFO'
|
level = 'DEBUG'
|
||||||
if config.option.yunodebug:
|
if config.option.yunodebug:
|
||||||
tty_level = 'DEBUG'
|
tty_level = 'DEBUG'
|
||||||
else:
|
else:
|
||||||
tty_level = 'SUCCESS'
|
tty_level = 'INFO'
|
||||||
|
|
||||||
# Custom logging configuration
|
# Custom logging configuration
|
||||||
logging = {
|
logging = {
|
||||||
|
|
350
src/yunohost/tests/test_apps.py
Normal file
350
src/yunohost/tests/test_apps.py
Normal file
|
@ -0,0 +1,350 @@
|
||||||
|
import glob
|
||||||
|
import os
|
||||||
|
import pytest
|
||||||
|
import shutil
|
||||||
|
import requests
|
||||||
|
|
||||||
|
from moulinette import m18n
|
||||||
|
from moulinette.utils.filesystem import mkdir
|
||||||
|
|
||||||
|
from yunohost.app import app_install, app_remove, app_ssowatconf, _is_installed, app_upgrade
|
||||||
|
from yunohost.domain import _get_maindomain, domain_add, domain_remove, domain_list
|
||||||
|
from yunohost.utils.error import YunohostError
|
||||||
|
from yunohost.tests.test_permission import check_LDAP_db_integrity, check_permission_for_apps
|
||||||
|
|
||||||
|
|
||||||
|
def setup_function(function):
|
||||||
|
|
||||||
|
clean()
|
||||||
|
|
||||||
|
def teardown_function(function):
|
||||||
|
|
||||||
|
clean()
|
||||||
|
|
||||||
|
def clean():
|
||||||
|
|
||||||
|
# Make sure we have a ssowat
|
||||||
|
os.system("mkdir -p /etc/ssowat/")
|
||||||
|
app_ssowatconf()
|
||||||
|
|
||||||
|
# Gotta first remove break yo system
|
||||||
|
# because some remaining stuff might
|
||||||
|
# make the other app_remove crashs ;P
|
||||||
|
if _is_installed("break_yo_system"):
|
||||||
|
app_remove("break_yo_system")
|
||||||
|
|
||||||
|
if _is_installed("legacy_app"):
|
||||||
|
app_remove("legacy_app")
|
||||||
|
|
||||||
|
if _is_installed("full_domain_app"):
|
||||||
|
app_remove("full_domain_app")
|
||||||
|
|
||||||
|
to_remove = []
|
||||||
|
to_remove += glob.glob("/etc/nginx/conf.d/*.d/*legacy*")
|
||||||
|
to_remove += glob.glob("/etc/nginx/conf.d/*.d/*full_domain*")
|
||||||
|
to_remove += glob.glob("/etc/nginx/conf.d/*.d/*break_yo_system*")
|
||||||
|
for filepath in to_remove:
|
||||||
|
os.remove(filepath)
|
||||||
|
|
||||||
|
to_remove = []
|
||||||
|
to_remove += glob.glob("/etc/yunohost/apps/*legacy_app*")
|
||||||
|
to_remove += glob.glob("/etc/yunohost/apps/*full_domain_app*")
|
||||||
|
to_remove += glob.glob("/etc/yunohost/apps/*break_yo_system*")
|
||||||
|
to_remove += glob.glob("/var/www/*legacy*")
|
||||||
|
to_remove += glob.glob("/var/www/*full_domain*")
|
||||||
|
for folderpath in to_remove:
|
||||||
|
shutil.rmtree(folderpath, ignore_errors=True)
|
||||||
|
|
||||||
|
os.system("systemctl reset-failed nginx") # Reset failed quota for service to avoid running into start-limit rate ?
|
||||||
|
os.system("systemctl start nginx")
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(autouse=True)
|
||||||
|
def check_LDAP_db_integrity_call():
|
||||||
|
check_LDAP_db_integrity()
|
||||||
|
yield
|
||||||
|
check_LDAP_db_integrity()
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(autouse=True)
|
||||||
|
def check_permission_for_apps_call():
|
||||||
|
check_permission_for_apps()
|
||||||
|
yield
|
||||||
|
check_permission_for_apps()
|
||||||
|
|
||||||
|
@pytest.fixture(scope="session")
|
||||||
|
def secondary_domain(request):
|
||||||
|
|
||||||
|
if "example.test" not in domain_list()["domains"]:
|
||||||
|
domain_add("example.test")
|
||||||
|
|
||||||
|
def remove_example_domain():
|
||||||
|
domain_remove("example.test")
|
||||||
|
request.addfinalizer(remove_example_domain)
|
||||||
|
|
||||||
|
return "example.test"
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Helpers #
|
||||||
|
#
|
||||||
|
|
||||||
|
def app_expected_files(domain, app):
|
||||||
|
|
||||||
|
yield "/etc/nginx/conf.d/%s.d/%s.conf" % (domain, app)
|
||||||
|
if app.startswith("legacy_app"):
|
||||||
|
yield "/var/www/%s/index.html" % app
|
||||||
|
yield "/etc/yunohost/apps/%s/settings.yml" % app
|
||||||
|
yield "/etc/yunohost/apps/%s/manifest.json" % app
|
||||||
|
yield "/etc/yunohost/apps/%s/scripts/install" % app
|
||||||
|
yield "/etc/yunohost/apps/%s/scripts/remove" % app
|
||||||
|
|
||||||
|
|
||||||
|
def app_is_installed(domain, app):
|
||||||
|
|
||||||
|
return _is_installed(app) and all(os.path.exists(f) for f in app_expected_files(domain, app))
|
||||||
|
|
||||||
|
|
||||||
|
def app_is_not_installed(domain, app):
|
||||||
|
|
||||||
|
return not _is_installed(app) and not all(os.path.exists(f) for f in app_expected_files(domain, app))
|
||||||
|
|
||||||
|
|
||||||
|
def app_is_exposed_on_http(domain, path, message_in_page):
|
||||||
|
|
||||||
|
try:
|
||||||
|
r = requests.get("http://127.0.0.1" + path + "/", headers={"Host": domain}, timeout=10)
|
||||||
|
return r.status_code == 200 and message_in_page in r.text
|
||||||
|
except Exception:
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def install_legacy_app(domain, path):
|
||||||
|
|
||||||
|
app_install("./tests/apps/legacy_app_ynh",
|
||||||
|
args="domain=%s&path=%s" % (domain, path),
|
||||||
|
force=True)
|
||||||
|
|
||||||
|
|
||||||
|
def install_full_domain_app(domain):
|
||||||
|
|
||||||
|
app_install("./tests/apps/full_domain_app_ynh",
|
||||||
|
args="domain=%s" % domain,
|
||||||
|
force=True)
|
||||||
|
|
||||||
|
|
||||||
|
def install_break_yo_system(domain, breakwhat):
|
||||||
|
|
||||||
|
app_install("./tests/apps/break_yo_system_ynh",
|
||||||
|
args="domain=%s&breakwhat=%s" % (domain, breakwhat),
|
||||||
|
force=True)
|
||||||
|
|
||||||
|
|
||||||
|
def test_legacy_app_install_main_domain():
|
||||||
|
|
||||||
|
main_domain = _get_maindomain()
|
||||||
|
|
||||||
|
install_legacy_app(main_domain, "/legacy")
|
||||||
|
|
||||||
|
assert app_is_installed(main_domain, "legacy_app")
|
||||||
|
assert app_is_exposed_on_http(main_domain, "/legacy", "This is a dummy app")
|
||||||
|
|
||||||
|
app_remove("legacy_app")
|
||||||
|
|
||||||
|
assert app_is_not_installed(main_domain, "legacy_app")
|
||||||
|
|
||||||
|
|
||||||
|
def test_legacy_app_install_secondary_domain(secondary_domain):
|
||||||
|
|
||||||
|
install_legacy_app(secondary_domain, "/legacy")
|
||||||
|
|
||||||
|
assert app_is_installed(secondary_domain, "legacy_app")
|
||||||
|
assert app_is_exposed_on_http(secondary_domain, "/legacy", "This is a dummy app")
|
||||||
|
|
||||||
|
app_remove("legacy_app")
|
||||||
|
|
||||||
|
assert app_is_not_installed(secondary_domain, "legacy_app")
|
||||||
|
|
||||||
|
|
||||||
|
def test_legacy_app_install_secondary_domain_on_root(secondary_domain):
|
||||||
|
|
||||||
|
install_legacy_app(secondary_domain, "/")
|
||||||
|
|
||||||
|
assert app_is_installed(secondary_domain, "legacy_app")
|
||||||
|
assert app_is_exposed_on_http(secondary_domain, "/", "This is a dummy app")
|
||||||
|
|
||||||
|
app_remove("legacy_app")
|
||||||
|
|
||||||
|
assert app_is_not_installed(secondary_domain, "legacy_app")
|
||||||
|
|
||||||
|
|
||||||
|
def test_legacy_app_install_private(secondary_domain):
|
||||||
|
|
||||||
|
install_legacy_app(secondary_domain, "/legacy")
|
||||||
|
|
||||||
|
settings = open("/etc/yunohost/apps/legacy_app/settings.yml", "r").read()
|
||||||
|
new_settings = settings.replace("\nunprotected_uris: /", "")
|
||||||
|
assert new_settings != settings
|
||||||
|
open("/etc/yunohost/apps/legacy_app/settings.yml", "w").write(new_settings)
|
||||||
|
app_ssowatconf()
|
||||||
|
|
||||||
|
assert app_is_installed(secondary_domain, "legacy_app")
|
||||||
|
assert not app_is_exposed_on_http(secondary_domain, "/legacy", "This is a dummy app")
|
||||||
|
|
||||||
|
app_remove("legacy_app")
|
||||||
|
|
||||||
|
assert app_is_not_installed(secondary_domain, "legacy_app")
|
||||||
|
|
||||||
|
|
||||||
|
def test_legacy_app_install_unknown_domain():
|
||||||
|
|
||||||
|
with pytest.raises(YunohostError):
|
||||||
|
install_legacy_app("whatever.nope", "/legacy")
|
||||||
|
# TODO check error message
|
||||||
|
|
||||||
|
assert app_is_not_installed("whatever.nope", "legacy_app")
|
||||||
|
|
||||||
|
|
||||||
|
def test_legacy_app_install_multiple_instances(secondary_domain):
|
||||||
|
|
||||||
|
install_legacy_app(secondary_domain, "/foo")
|
||||||
|
install_legacy_app(secondary_domain, "/bar")
|
||||||
|
|
||||||
|
assert app_is_installed(secondary_domain, "legacy_app")
|
||||||
|
assert app_is_exposed_on_http(secondary_domain, "/foo", "This is a dummy app")
|
||||||
|
|
||||||
|
assert app_is_installed(secondary_domain, "legacy_app__2")
|
||||||
|
assert app_is_exposed_on_http(secondary_domain, "/bar", "This is a dummy app")
|
||||||
|
|
||||||
|
app_remove("legacy_app")
|
||||||
|
|
||||||
|
assert app_is_not_installed(secondary_domain, "legacy_app")
|
||||||
|
assert app_is_installed(secondary_domain, "legacy_app__2")
|
||||||
|
|
||||||
|
app_remove("legacy_app__2")
|
||||||
|
|
||||||
|
assert app_is_not_installed(secondary_domain, "legacy_app")
|
||||||
|
assert app_is_not_installed(secondary_domain, "legacy_app__2")
|
||||||
|
|
||||||
|
|
||||||
|
def test_legacy_app_install_path_unavailable(secondary_domain):
|
||||||
|
|
||||||
|
# These will be removed in teardown
|
||||||
|
install_legacy_app(secondary_domain, "/legacy")
|
||||||
|
|
||||||
|
with pytest.raises(YunohostError):
|
||||||
|
install_legacy_app(secondary_domain, "/")
|
||||||
|
# TODO check error message
|
||||||
|
|
||||||
|
assert app_is_installed(secondary_domain, "legacy_app")
|
||||||
|
assert app_is_not_installed(secondary_domain, "legacy_app__2")
|
||||||
|
|
||||||
|
|
||||||
|
def test_legacy_app_install_bad_args():
|
||||||
|
|
||||||
|
with pytest.raises(YunohostError):
|
||||||
|
install_legacy_app("this.domain.does.not.exists", "/legacy")
|
||||||
|
|
||||||
|
|
||||||
|
def test_legacy_app_install_with_nginx_down(secondary_domain):
|
||||||
|
|
||||||
|
os.system("systemctl stop nginx")
|
||||||
|
|
||||||
|
with pytest.raises(YunohostError):
|
||||||
|
install_legacy_app(secondary_domain, "/legacy")
|
||||||
|
|
||||||
|
|
||||||
|
def test_legacy_app_failed_install(secondary_domain):
|
||||||
|
|
||||||
|
# This will conflict with the folder that the app
|
||||||
|
# attempts to create, making the install fail
|
||||||
|
mkdir("/var/www/legacy_app/", 0o750)
|
||||||
|
|
||||||
|
with pytest.raises(YunohostError):
|
||||||
|
install_legacy_app(secondary_domain, "/legacy")
|
||||||
|
# TODO check error message
|
||||||
|
|
||||||
|
assert app_is_not_installed(secondary_domain, "legacy_app")
|
||||||
|
|
||||||
|
|
||||||
|
def test_legacy_app_failed_remove(secondary_domain):
|
||||||
|
|
||||||
|
install_legacy_app(secondary_domain, "/legacy")
|
||||||
|
|
||||||
|
# The remove script runs with set -eu and attempt to remove this
|
||||||
|
# file without -f, so will fail if it's not there ;)
|
||||||
|
os.remove("/etc/nginx/conf.d/%s.d/%s.conf" % (secondary_domain, "legacy_app"))
|
||||||
|
with pytest.raises(YunohostError):
|
||||||
|
app_remove("legacy")
|
||||||
|
|
||||||
|
#
|
||||||
|
# Well here, we hit the classical issue where if an app removal script
|
||||||
|
# fails, so far there's no obvious way to make sure that all files related
|
||||||
|
# to this app got removed ...
|
||||||
|
#
|
||||||
|
assert app_is_not_installed(secondary_domain, "legacy")
|
||||||
|
|
||||||
|
|
||||||
|
def test_full_domain_app(secondary_domain):
|
||||||
|
|
||||||
|
install_full_domain_app(secondary_domain)
|
||||||
|
|
||||||
|
assert app_is_exposed_on_http(secondary_domain, "/", "This is a dummy app")
|
||||||
|
|
||||||
|
|
||||||
|
def test_full_domain_app_with_conflicts(secondary_domain):
|
||||||
|
|
||||||
|
install_legacy_app(secondary_domain, "/legacy")
|
||||||
|
|
||||||
|
# TODO : once #808 is merged, add test that the message raised is 'app_full_domain_unavailable'
|
||||||
|
with pytest.raises(YunohostError):
|
||||||
|
install_full_domain_app(secondary_domain)
|
||||||
|
|
||||||
|
|
||||||
|
def test_systemfuckedup_during_app_install(secondary_domain):
|
||||||
|
|
||||||
|
with pytest.raises(YunohostError):
|
||||||
|
install_break_yo_system(secondary_domain, breakwhat="install")
|
||||||
|
os.system("nginx -t")
|
||||||
|
os.system("systemctl status nginx")
|
||||||
|
|
||||||
|
assert app_is_not_installed(secondary_domain, "break_yo_system")
|
||||||
|
|
||||||
|
|
||||||
|
def test_systemfuckedup_during_app_remove(secondary_domain):
|
||||||
|
|
||||||
|
install_break_yo_system(secondary_domain, breakwhat="remove")
|
||||||
|
|
||||||
|
with pytest.raises(YunohostError):
|
||||||
|
app_remove("break_yo_system")
|
||||||
|
os.system("nginx -t")
|
||||||
|
os.system("systemctl status nginx")
|
||||||
|
|
||||||
|
assert app_is_not_installed(secondary_domain, "break_yo_system")
|
||||||
|
|
||||||
|
|
||||||
|
def test_systemfuckedup_during_app_install_and_remove(secondary_domain):
|
||||||
|
|
||||||
|
with pytest.raises(YunohostError):
|
||||||
|
install_break_yo_system(secondary_domain, breakwhat="everything")
|
||||||
|
|
||||||
|
assert app_is_not_installed(secondary_domain, "break_yo_system")
|
||||||
|
|
||||||
|
|
||||||
|
def test_systemfuckedup_during_app_upgrade(secondary_domain):
|
||||||
|
|
||||||
|
install_break_yo_system(secondary_domain, breakwhat="upgrade")
|
||||||
|
|
||||||
|
with pytest.raises(YunohostError):
|
||||||
|
app_upgrade("break_yo_system", file="./tests/apps/break_yo_system_ynh")
|
||||||
|
|
||||||
|
|
||||||
|
def test_failed_multiple_app_upgrade(secondary_domain):
|
||||||
|
|
||||||
|
install_legacy_app(secondary_domain, "/legacy")
|
||||||
|
install_break_yo_system(secondary_domain, breakwhat="upgrade")
|
||||||
|
|
||||||
|
with pytest.raises(YunohostError):
|
||||||
|
app_upgrade(["break_yo_system", "legacy_app"],
|
||||||
|
file={"break_yo_system": "./tests/apps/break_yo_system_ynh",
|
||||||
|
"legacy": "./tests/apps/legacy_app_ynh"})
|
|
@ -584,10 +584,7 @@ def tools_upgrade(operation_logger, apps=None, system=False):
|
||||||
|
|
||||||
upgradable_apps = [app["id"] for app in _list_upgradable_apps()]
|
upgradable_apps = [app["id"] for app in _list_upgradable_apps()]
|
||||||
|
|
||||||
if not upgradable_apps:
|
if not upgradable_apps or (len(apps) and all(app not in upgradable_apps for app in apps)):
|
||||||
logger.info(m18n.n("app_no_upgrade"))
|
|
||||||
return
|
|
||||||
elif len(apps) and all(app not in upgradable_apps for app in apps):
|
|
||||||
logger.info(m18n.n("apps_already_up_to_date"))
|
logger.info(m18n.n("apps_already_up_to_date"))
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -657,7 +654,7 @@ def tools_upgrade(operation_logger, apps=None, system=False):
|
||||||
)
|
)
|
||||||
returncode = call_async_output(dist_upgrade, callbacks, shell=True)
|
returncode = call_async_output(dist_upgrade, callbacks, shell=True)
|
||||||
if returncode != 0:
|
if returncode != 0:
|
||||||
logger.warning('tools_upgrade_regular_packages_failed',
|
logger.warning(m18n.n('tools_upgrade_regular_packages_failed'),
|
||||||
packages_list=', '.join(noncritical_packages_upgradable))
|
packages_list=', '.join(noncritical_packages_upgradable))
|
||||||
operation_logger.error(m18n.n('packages_upgrade_failed'))
|
operation_logger.error(m18n.n('packages_upgrade_failed'))
|
||||||
raise YunohostError(m18n.n('packages_upgrade_failed'))
|
raise YunohostError(m18n.n('packages_upgrade_failed'))
|
||||||
|
|
|
@ -199,7 +199,7 @@ def user_create(operation_logger, username, firstname, lastname, mail, password,
|
||||||
with open('/etc/ssowat/conf.json.persistent') as json_conf:
|
with open('/etc/ssowat/conf.json.persistent') as json_conf:
|
||||||
ssowat_conf = json.loads(str(json_conf.read()))
|
ssowat_conf = json.loads(str(json_conf.read()))
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
raise YunohostError('ssowat_persistent_conf_read_error', error=e.strerror)
|
raise YunohostError('ssowat_persistent_conf_read_error', error=str(e))
|
||||||
except IOError:
|
except IOError:
|
||||||
ssowat_conf = {}
|
ssowat_conf = {}
|
||||||
|
|
||||||
|
@ -209,7 +209,7 @@ def user_create(operation_logger, username, firstname, lastname, mail, password,
|
||||||
with open('/etc/ssowat/conf.json.persistent', 'w+') as f:
|
with open('/etc/ssowat/conf.json.persistent', 'w+') as f:
|
||||||
json.dump(ssowat_conf, f, sort_keys=True, indent=4)
|
json.dump(ssowat_conf, f, sort_keys=True, indent=4)
|
||||||
except IOError as e:
|
except IOError as e:
|
||||||
raise YunohostError('ssowat_persistent_conf_write_error', error=e.strerror)
|
raise YunohostError('ssowat_persistent_conf_write_error', error=str(e))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
ldap.add('uid=%s,ou=users' % username, attr_dict)
|
ldap.add('uid=%s,ou=users' % username, attr_dict)
|
||||||
|
|
|
@ -5,23 +5,37 @@ import glob
|
||||||
import json
|
import json
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
|
ignore = [ "service_description_",
|
||||||
|
"migration_description_",
|
||||||
|
"global_settings_setting_",
|
||||||
|
"password_too_simple_",
|
||||||
|
"password_listed",
|
||||||
|
"backup_method_",
|
||||||
|
"backup_applying_method_",
|
||||||
|
"confirm_app_install_",
|
||||||
|
"log_",
|
||||||
|
]
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Find used keys in python code #
|
# Find used keys in python code #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
# This regex matches « foo » in patterns like « m18n.n( "foo" »
|
# This regex matches « foo » in patterns like « m18n.n( "foo" »
|
||||||
p = re.compile(r'm18n\.n\(\s*[\"\']([a-zA-Z1-9_]+)[\"\']')
|
p1 = re.compile(r'm18n\.n\(\s*[\"\']([a-zA-Z0-9_]+)[\"\']')
|
||||||
|
p2 = re.compile(r'YunohostError\([\'\"]([a-zA-Z0-9_]+)[\'\"]')
|
||||||
|
|
||||||
python_files = glob.glob("/vagrant/yunohost/src/yunohost/*.py")
|
python_files = glob.glob("../src/yunohost/*.py")
|
||||||
python_files.extend(glob.glob("/vagrant/yunohost/src/yunohost/utils/*.py"))
|
python_files.extend(glob.glob("../src/yunohost/utils/*.py"))
|
||||||
python_files.append("/vagrant/yunohost/bin/yunohost")
|
python_files.extend(glob.glob("../src/yunohost/data_migrations/*.py"))
|
||||||
|
python_files.append("../bin/yunohost")
|
||||||
|
|
||||||
python_keys = set()
|
python_keys = set()
|
||||||
for python_file in python_files:
|
for python_file in python_files:
|
||||||
with open(python_file) as f:
|
content = open(python_file).read()
|
||||||
keys_in_file = p.findall(f.read())
|
for match in p1.findall(content):
|
||||||
for key in keys_in_file:
|
python_keys.add(match)
|
||||||
python_keys.add(key)
|
for match in p2.findall(content):
|
||||||
|
python_keys.add(match)
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Find keys used in actionmap #
|
# Find keys used in actionmap #
|
||||||
|
@ -42,19 +56,20 @@ for _, category in actionmap.items():
|
||||||
actionmap_keys.add(argument["extra"]["password"])
|
actionmap_keys.add(argument["extra"]["password"])
|
||||||
if "ask" in argument["extra"]:
|
if "ask" in argument["extra"]:
|
||||||
actionmap_keys.add(argument["extra"]["ask"])
|
actionmap_keys.add(argument["extra"]["ask"])
|
||||||
|
if "comment" in argument["extra"]:
|
||||||
|
actionmap_keys.add(argument["extra"]["comment"])
|
||||||
if "pattern" in argument["extra"]:
|
if "pattern" in argument["extra"]:
|
||||||
actionmap_keys.add(argument["extra"]["pattern"][1])
|
actionmap_keys.add(argument["extra"]["pattern"][1])
|
||||||
if "help" in argument["extra"]:
|
if "help" in argument["extra"]:
|
||||||
print argument["extra"]["help"]
|
print argument["extra"]["help"]
|
||||||
|
|
||||||
# These keys are used but difficult to parse
|
|
||||||
actionmap_keys.add("admin_password")
|
actionmap_keys.add("admin_password")
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Load en locale json keys #
|
# Load en locale json keys #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
en_locale_file = "/vagrant/yunohost/locales/en.json"
|
en_locale_file = "../locales/en.json"
|
||||||
with open(en_locale_file) as f:
|
with open(en_locale_file) as f:
|
||||||
en_locale_json = json.loads(f.read())
|
en_locale_json = json.loads(f.read())
|
||||||
|
|
||||||
|
@ -72,11 +87,15 @@ keys_defined_but_not_used = en_locale_keys.difference(used_keys)
|
||||||
if len(keys_used_but_not_defined) != 0:
|
if len(keys_used_but_not_defined) != 0:
|
||||||
print "> Error ! Those keys are used in some files but not defined :"
|
print "> Error ! Those keys are used in some files but not defined :"
|
||||||
for key in sorted(keys_used_but_not_defined):
|
for key in sorted(keys_used_but_not_defined):
|
||||||
|
if any(key.startswith(i) for i in ignore):
|
||||||
|
continue
|
||||||
print " - %s" % key
|
print " - %s" % key
|
||||||
|
|
||||||
if len(keys_defined_but_not_used) != 0:
|
if len(keys_defined_but_not_used) != 0:
|
||||||
print "> Warning ! Those keys are defined but seems unused :"
|
print "> Warning ! Those keys are defined but seems unused :"
|
||||||
for key in sorted(keys_defined_but_not_used):
|
for key in sorted(keys_defined_but_not_used):
|
||||||
|
if any(key.startswith(i) for i in ignore):
|
||||||
|
continue
|
||||||
print " - %s" % key
|
print " - %s" % key
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue