mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
Merge branch 'dev' of https://github.com/YunoHost/yunohost into enh-dns-autoconf
This commit is contained in:
commit
c87a7b66e6
58 changed files with 1413 additions and 592 deletions
|
@ -5,6 +5,7 @@ stages:
|
||||||
- tests
|
- tests
|
||||||
- lint
|
- lint
|
||||||
- doc
|
- doc
|
||||||
|
- translation
|
||||||
|
|
||||||
default:
|
default:
|
||||||
tags:
|
tags:
|
||||||
|
@ -12,12 +13,18 @@ default:
|
||||||
# All jobs are interruptible by default
|
# All jobs are interruptible by default
|
||||||
interruptible: true
|
interruptible: true
|
||||||
|
|
||||||
|
# see: https://docs.gitlab.com/ee/ci/yaml/#switch-between-branch-pipelines-and-merge-request-pipelines
|
||||||
|
workflow:
|
||||||
|
rules:
|
||||||
|
- if: $CI_PIPELINE_SOURCE == "merge_request_event" # If we move to gitlab one day
|
||||||
|
- if: $CI_PIPELINE_SOURCE == "external_pull_request_event" # For github PR
|
||||||
|
- if: $CI_COMMIT_TAG # For tags
|
||||||
|
- if: $CI_COMMIT_REF_NAME != $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "push" # If it's not the default branch and if it's a push, then do not trigger a build
|
||||||
|
when: never
|
||||||
|
- when: always
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
YNH_BUILD_DIR: "ynh-build"
|
YNH_BUILD_DIR: "ynh-build"
|
||||||
|
|
||||||
include:
|
include:
|
||||||
- local: .gitlab/ci/build.gitlab-ci.yml
|
- local: .gitlab/ci/*.gitlab-ci.yml
|
||||||
- local: .gitlab/ci/install.gitlab-ci.yml
|
|
||||||
- local: .gitlab/ci/test.gitlab-ci.yml
|
|
||||||
- local: .gitlab/ci/lint.gitlab-ci.yml
|
|
||||||
- local: .gitlab/ci/doc.gitlab-ci.yml
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ generate-helpers-doc:
|
||||||
- cd doc
|
- cd doc
|
||||||
- python3 generate_helper_doc.py
|
- python3 generate_helper_doc.py
|
||||||
- hub clone https://$GITHUB_TOKEN:x-oauth-basic@github.com/YunoHost/doc.git doc_repo
|
- hub clone https://$GITHUB_TOKEN:x-oauth-basic@github.com/YunoHost/doc.git doc_repo
|
||||||
- cp helpers.md doc_repo/pages/02.contribute/04.packaging_apps/11.helpers/packaging_apps_helpers.md
|
- cp helpers.md doc_repo/pages/04.contribute/04.packaging_apps/11.helpers/packaging_apps_helpers.md
|
||||||
- cd doc_repo
|
- cd doc_repo
|
||||||
# replace ${CI_COMMIT_REF_NAME} with ${CI_COMMIT_TAG} ?
|
# replace ${CI_COMMIT_REF_NAME} with ${CI_COMMIT_TAG} ?
|
||||||
- hub checkout -b "${CI_COMMIT_REF_NAME}"
|
- hub checkout -b "${CI_COMMIT_REF_NAME}"
|
||||||
|
|
|
@ -37,6 +37,8 @@ full-tests:
|
||||||
- yunohost tools postinstall -d domain.tld -p the_password --ignore-dyndns --force-diskspace
|
- yunohost tools postinstall -d domain.tld -p the_password --ignore-dyndns --force-diskspace
|
||||||
script:
|
script:
|
||||||
- python3 -m pytest --cov=yunohost tests/ src/yunohost/tests/ --junitxml=report.xml
|
- python3 -m pytest --cov=yunohost tests/ src/yunohost/tests/ --junitxml=report.xml
|
||||||
|
- cd tests
|
||||||
|
- bash test_helpers.sh
|
||||||
needs:
|
needs:
|
||||||
- job: build-yunohost
|
- job: build-yunohost
|
||||||
artifacts: true
|
artifacts: true
|
||||||
|
@ -48,79 +50,134 @@ full-tests:
|
||||||
reports:
|
reports:
|
||||||
junit: report.xml
|
junit: report.xml
|
||||||
|
|
||||||
root-tests:
|
test-i18n-keys:
|
||||||
extends: .test-stage
|
extends: .test-stage
|
||||||
script:
|
script:
|
||||||
- python3 -m pytest tests
|
- python3 -m pytest tests tests/test_i18n_keys.py
|
||||||
|
only:
|
||||||
|
changes:
|
||||||
|
- locales/*
|
||||||
|
|
||||||
|
test-translation-format-consistency:
|
||||||
|
extends: .test-stage
|
||||||
|
script:
|
||||||
|
- python3 -m pytest tests tests/test_translation_format_consistency.py
|
||||||
|
only:
|
||||||
|
changes:
|
||||||
|
- locales/*
|
||||||
|
|
||||||
|
test-actionmap:
|
||||||
|
extends: .test-stage
|
||||||
|
script:
|
||||||
|
- python3 -m pytest tests tests/test_actionmap.py
|
||||||
|
only:
|
||||||
|
changes:
|
||||||
|
- data/actionsmap/*.yml
|
||||||
|
|
||||||
test-helpers:
|
test-helpers:
|
||||||
extends: .test-stage
|
extends: .test-stage
|
||||||
script:
|
script:
|
||||||
- cd tests
|
- cd tests
|
||||||
- bash test_helpers.sh
|
- bash test_helpers.sh
|
||||||
|
only:
|
||||||
|
changes:
|
||||||
|
- data/helpers.d/*
|
||||||
|
|
||||||
test-apps:
|
test-apps:
|
||||||
extends: .test-stage
|
extends: .test-stage
|
||||||
script:
|
script:
|
||||||
- cd src/yunohost
|
- cd src/yunohost
|
||||||
- python3 -m pytest tests/test_apps.py
|
- python3 -m pytest tests/test_apps.py
|
||||||
|
only:
|
||||||
|
changes:
|
||||||
|
- src/yunohost/app.py
|
||||||
|
|
||||||
test-appscatalog:
|
test-appscatalog:
|
||||||
extends: .test-stage
|
extends: .test-stage
|
||||||
script:
|
script:
|
||||||
- cd src/yunohost
|
- cd src/yunohost
|
||||||
- python3 -m pytest tests/test_appscatalog.py
|
- python3 -m pytest tests/test_appscatalog.py
|
||||||
|
only:
|
||||||
|
changes:
|
||||||
|
- src/yunohost/app.py
|
||||||
|
|
||||||
test-appurl:
|
test-appurl:
|
||||||
extends: .test-stage
|
extends: .test-stage
|
||||||
script:
|
script:
|
||||||
- cd src/yunohost
|
- cd src/yunohost
|
||||||
- python3 -m pytest tests/test_appurl.py
|
- python3 -m pytest tests/test_appurl.py
|
||||||
|
only:
|
||||||
|
changes:
|
||||||
|
- src/yunohost/app.py
|
||||||
|
|
||||||
test-apps-arguments-parsing:
|
test-apps-arguments-parsing:
|
||||||
extends: .test-stage
|
extends: .test-stage
|
||||||
script:
|
script:
|
||||||
- cd src/yunohost
|
- cd src/yunohost
|
||||||
- python3 -m pytest tests/test_apps_arguments_parsing.py
|
- python3 -m pytest tests/test_apps_arguments_parsing.py
|
||||||
|
only:
|
||||||
test-backuprestore:
|
changes:
|
||||||
extends: .test-stage
|
- src/yunohost/app.py
|
||||||
script:
|
|
||||||
- cd src/yunohost
|
|
||||||
- python3 -m pytest tests/test_backuprestore.py
|
|
||||||
|
|
||||||
test-changeurl:
|
test-changeurl:
|
||||||
extends: .test-stage
|
extends: .test-stage
|
||||||
script:
|
script:
|
||||||
- cd src/yunohost
|
- cd src/yunohost
|
||||||
- python3 -m pytest tests/test_changeurl.py
|
- python3 -m pytest tests/test_changeurl.py
|
||||||
|
only:
|
||||||
|
changes:
|
||||||
|
- src/yunohost/app.py
|
||||||
|
|
||||||
|
test-backuprestore:
|
||||||
|
extends: .test-stage
|
||||||
|
script:
|
||||||
|
- cd src/yunohost
|
||||||
|
- python3 -m pytest tests/test_backuprestore.py
|
||||||
|
only:
|
||||||
|
changes:
|
||||||
|
- src/yunohost/backup.py
|
||||||
|
|
||||||
test-permission:
|
test-permission:
|
||||||
extends: .test-stage
|
extends: .test-stage
|
||||||
script:
|
script:
|
||||||
- cd src/yunohost
|
- cd src/yunohost
|
||||||
- python3 -m pytest tests/test_permission.py
|
- python3 -m pytest tests/test_permission.py
|
||||||
|
only:
|
||||||
|
changes:
|
||||||
|
- src/yunohost/permission.py
|
||||||
|
|
||||||
test-settings:
|
test-settings:
|
||||||
extends: .test-stage
|
extends: .test-stage
|
||||||
script:
|
script:
|
||||||
- cd src/yunohost
|
- cd src/yunohost
|
||||||
- python3 -m pytest tests/test_settings.py
|
- python3 -m pytest tests/test_settings.py
|
||||||
|
only:
|
||||||
|
changes:
|
||||||
|
- src/yunohost/settings.py
|
||||||
|
|
||||||
test-user-group:
|
test-user-group:
|
||||||
extends: .test-stage
|
extends: .test-stage
|
||||||
script:
|
script:
|
||||||
- cd src/yunohost
|
- cd src/yunohost
|
||||||
- python3 -m pytest tests/test_user-group.py
|
- python3 -m pytest tests/test_user-group.py
|
||||||
|
only:
|
||||||
|
changes:
|
||||||
|
- src/yunohost/user.py
|
||||||
|
|
||||||
test-regenconf:
|
test-regenconf:
|
||||||
extends: .test-stage
|
extends: .test-stage
|
||||||
script:
|
script:
|
||||||
- cd src/yunohost
|
- cd src/yunohost
|
||||||
- python3 -m pytest tests/test_regenconf.py
|
- python3 -m pytest tests/test_regenconf.py
|
||||||
|
only:
|
||||||
|
changes:
|
||||||
|
- src/yunohost/regenconf.py
|
||||||
|
|
||||||
test-service:
|
test-service:
|
||||||
extends: .test-stage
|
extends: .test-stage
|
||||||
script:
|
script:
|
||||||
- cd src/yunohost
|
- cd src/yunohost
|
||||||
- python3 -m pytest tests/test_service.py
|
- python3 -m pytest tests/test_service.py
|
||||||
|
only:
|
||||||
|
changes:
|
||||||
|
- src/yunohost/service.py
|
||||||
|
|
24
.gitlab/ci/translation.gitlab-ci.yml
Normal file
24
.gitlab/ci/translation.gitlab-ci.yml
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
########################################
|
||||||
|
# TRANSLATION
|
||||||
|
########################################
|
||||||
|
|
||||||
|
remove-stale-translated-strings:
|
||||||
|
stage: translation
|
||||||
|
image: "before-install"
|
||||||
|
needs: []
|
||||||
|
before_script:
|
||||||
|
- apt-get update -y && apt-get install git hub -y
|
||||||
|
- git config --global user.email "yunohost@yunohost.org"
|
||||||
|
- git config --global user.name "$GITHUB_USER"
|
||||||
|
script:
|
||||||
|
- cd tests # Maybe move this script location to another folder?
|
||||||
|
# create a local branch that will overwrite distant one
|
||||||
|
- git checkout -b "ci-remove-stale-translated-strings-${CI_COMMIT_REF_NAME}" --no-track
|
||||||
|
- python remove_stale_translated_strings.py
|
||||||
|
- '[ $(git diff | wc -l) != 0 ] || exit 0' # stop if there is nothing to commit
|
||||||
|
- git commit -am "[CI] Remove stale translated strings" || true
|
||||||
|
- git push -f origin "ci-remove-stale-translated-strings-${CI_COMMIT_REF_NAME}":"ci-remove-stale-translated-strings-${CI_COMMIT_REF_NAME}"
|
||||||
|
- hub pull-request -m "[CI] Remove stale translated strings" -b Yunohost:dev -p || true # GITHUB_USER and GITHUB_TOKEN registered here https://gitlab.com/yunohost/yunohost/-/settings/ci_cd
|
||||||
|
only:
|
||||||
|
changes:
|
||||||
|
- locales/*
|
|
@ -66,19 +66,19 @@ then
|
||||||
echo "$LOGO_AND_FINGERPRINTS"
|
echo "$LOGO_AND_FINGERPRINTS"
|
||||||
cat << EOF
|
cat << EOF
|
||||||
===============================================================================
|
===============================================================================
|
||||||
You should now proceed with Yunohost post-installation. This is where you will
|
You should now proceed with YunoHost post-installation. This is where you will
|
||||||
be asked for :
|
be asked for:
|
||||||
- the main domain of your server ;
|
- the main domain of your server;
|
||||||
- the administration password.
|
- the administration password.
|
||||||
|
|
||||||
You can perform this step :
|
You can perform this step:
|
||||||
- from your web browser, by accessing : https://yunohost.local/ or ${local_ip}
|
- from your web browser, by accessing: https://yunohost.local/ or ${local_ip}
|
||||||
- or in this terminal by answering 'yes' to the following question
|
- or in this terminal by answering 'yes' to the following question
|
||||||
|
|
||||||
If this is your first time with YunoHost, it is strongly recommended to take
|
If this is your first time with YunoHost, it is strongly recommended to take
|
||||||
time to read the administator documentation and in particular the sections
|
time to read the administator documentation and in particular the sections
|
||||||
'Finalizing your setup' and 'Getting to know YunoHost'. It is available at
|
'Finalizing your setup' and 'Getting to know YunoHost'. It is available at
|
||||||
the following URL : https://yunohost.org/admindoc
|
the following URL: https://yunohost.org/admindoc
|
||||||
===============================================================================
|
===============================================================================
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
|
|
@ -403,7 +403,7 @@ user:
|
||||||
help: The key to be added
|
help: The key to be added
|
||||||
-c:
|
-c:
|
||||||
full: --comment
|
full: --comment
|
||||||
help: Optionnal comment about the key
|
help: Optional comment about the key
|
||||||
|
|
||||||
### user_ssh_keys_remove()
|
### user_ssh_keys_remove()
|
||||||
remove-key:
|
remove-key:
|
||||||
|
@ -1483,7 +1483,7 @@ tools:
|
||||||
help: Use this if you really want to set a weak password
|
help: Use this if you really want to set a weak password
|
||||||
action: store_true
|
action: store_true
|
||||||
--force-diskspace:
|
--force-diskspace:
|
||||||
help: Use this if you really want to install Yunohost on a setup with less than 10 GB on the root filesystem
|
help: Use this if you really want to install YunoHost on a setup with less than 10 GB on the root filesystem
|
||||||
action: store_true
|
action: store_true
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -207,14 +207,14 @@ ynh_restore () {
|
||||||
# usage: _get_archive_path ORIGIN_PATH
|
# usage: _get_archive_path ORIGIN_PATH
|
||||||
_get_archive_path () {
|
_get_archive_path () {
|
||||||
# For security reasons we use csv python library to read the CSV
|
# For security reasons we use csv python library to read the CSV
|
||||||
python -c "
|
python3 -c "
|
||||||
import sys
|
import sys
|
||||||
import csv
|
import csv
|
||||||
with open(sys.argv[1], 'r') as backup_file:
|
with open(sys.argv[1], 'r') as backup_file:
|
||||||
backup_csv = csv.DictReader(backup_file, fieldnames=['source', 'dest'])
|
backup_csv = csv.DictReader(backup_file, fieldnames=['source', 'dest'])
|
||||||
for row in backup_csv:
|
for row in backup_csv:
|
||||||
if row['source']==sys.argv[2].strip('\"'):
|
if row['source']==sys.argv[2].strip('\"'):
|
||||||
print row['dest']
|
print(row['dest'])
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
raise Exception('Original path for %s not found' % sys.argv[2])
|
raise Exception('Original path for %s not found' % sys.argv[2])
|
||||||
" "${YNH_BACKUP_CSV}" "$1"
|
" "${YNH_BACKUP_CSV}" "$1"
|
||||||
|
|
|
@ -61,7 +61,7 @@
|
||||||
# fail2ban-regex /var/log/YOUR_LOG_FILE_PATH /etc/fail2ban/filter.d/YOUR_APP.conf
|
# fail2ban-regex /var/log/YOUR_LOG_FILE_PATH /etc/fail2ban/filter.d/YOUR_APP.conf
|
||||||
# ```
|
# ```
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.5.0 or higher.
|
# Requires YunoHost version 4.1.0 or higher.
|
||||||
ynh_add_fail2ban_config () {
|
ynh_add_fail2ban_config () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=lrmptv
|
local legacy_args=lrmptv
|
||||||
|
@ -79,7 +79,7 @@ ynh_add_fail2ban_config () {
|
||||||
others_var="${others_var:-}"
|
others_var="${others_var:-}"
|
||||||
use_template="${use_template:-0}"
|
use_template="${use_template:-0}"
|
||||||
|
|
||||||
[[ -z "$others_var" ]] || ynh_print_warn --message="Packagers: using --others_var is unecessary since Yunohost 4.2"
|
[[ -z "$others_var" ]] || ynh_print_warn --message="Packagers: using --others_var is unecessary since YunoHost 4.2"
|
||||||
|
|
||||||
if [ $use_template -ne 1 ]
|
if [ $use_template -ne 1 ]
|
||||||
then
|
then
|
||||||
|
|
|
@ -293,7 +293,7 @@ ynh_script_progression () {
|
||||||
set -o xtrace # set -x
|
set -o xtrace # set -x
|
||||||
}
|
}
|
||||||
|
|
||||||
# Return data to the Yunohost core for later processing
|
# Return data to the YunoHost core for later processing
|
||||||
# (to be used by special hooks like app config panel and core diagnosis)
|
# (to be used by special hooks like app config panel and core diagnosis)
|
||||||
#
|
#
|
||||||
# usage: ynh_return somedata
|
# usage: ynh_return somedata
|
||||||
|
|
|
@ -6,6 +6,8 @@ readonly MEDIA_DIRECTORY=/home/yunohost.multimedia
|
||||||
# Initialize the multimedia directory system
|
# Initialize the multimedia directory system
|
||||||
#
|
#
|
||||||
# usage: ynh_multimedia_build_main_dir
|
# usage: ynh_multimedia_build_main_dir
|
||||||
|
#
|
||||||
|
# Requires YunoHost version 4.2 or higher.
|
||||||
ynh_multimedia_build_main_dir() {
|
ynh_multimedia_build_main_dir() {
|
||||||
|
|
||||||
## Création du groupe multimedia
|
## Création du groupe multimedia
|
||||||
|
@ -55,6 +57,7 @@ ynh_multimedia_build_main_dir() {
|
||||||
#
|
#
|
||||||
# This "directory" will be a symbolic link to a existing directory.
|
# This "directory" will be a symbolic link to a existing directory.
|
||||||
#
|
#
|
||||||
|
# Requires YunoHost version 4.2 or higher.
|
||||||
ynh_multimedia_addfolder() {
|
ynh_multimedia_addfolder() {
|
||||||
|
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
|
@ -83,6 +86,7 @@ ynh_multimedia_addfolder() {
|
||||||
#
|
#
|
||||||
# | arg: -u, --user_name= - The name of the user which gain this access.
|
# | arg: -u, --user_name= - The name of the user which gain this access.
|
||||||
#
|
#
|
||||||
|
# Requires YunoHost version 4.2 or higher.
|
||||||
ynh_multimedia_addaccess () {
|
ynh_multimedia_addaccess () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=u
|
local legacy_args=u
|
||||||
|
|
|
@ -80,7 +80,7 @@ ynh_validate_ip()
|
||||||
|
|
||||||
[ "$family" == "4" ] || [ "$family" == "6" ] || return 1
|
[ "$family" == "4" ] || [ "$family" == "6" ] || return 1
|
||||||
|
|
||||||
python /dev/stdin << EOF
|
python3 /dev/stdin << EOF
|
||||||
import socket
|
import socket
|
||||||
import sys
|
import sys
|
||||||
family = { "4" : socket.AF_INET, "6" : socket.AF_INET6 }
|
family = { "4" : socket.AF_INET, "6" : socket.AF_INET6 }
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
# This allows to enable/disable specific behaviors dependenging on the install
|
# This allows to enable/disable specific behaviors dependenging on the install
|
||||||
# location
|
# location
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.7.2 or higher.
|
# Requires YunoHost version 4.1.0 or higher.
|
||||||
ynh_add_nginx_config () {
|
ynh_add_nginx_config () {
|
||||||
|
|
||||||
local finalnginxconf="/etc/nginx/conf.d/$domain.d/$app.conf"
|
local finalnginxconf="/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
n_version=7.1.0
|
n_version=7.2.2
|
||||||
n_install_dir="/opt/node_n"
|
n_install_dir="/opt/node_n"
|
||||||
node_version_path="$n_install_dir/n/versions/node"
|
node_version_path="$n_install_dir/n/versions/node"
|
||||||
# N_PREFIX is the directory of n, it needs to be loaded as a environment variable.
|
# N_PREFIX is the directory of n, it needs to be loaded as a environment variable.
|
||||||
|
@ -17,7 +17,7 @@ ynh_install_n () {
|
||||||
ynh_print_info --message="Installation of N - Node.js version management"
|
ynh_print_info --message="Installation of N - Node.js version management"
|
||||||
# Build an app.src for n
|
# Build an app.src for n
|
||||||
echo "SOURCE_URL=https://github.com/tj/n/archive/v${n_version}.tar.gz
|
echo "SOURCE_URL=https://github.com/tj/n/archive/v${n_version}.tar.gz
|
||||||
SOURCE_SUM=20100f3bc56648cc414717fb7367fcf0e8229dc59a10b0530ccac90042ee0a74" > "$YNH_APP_BASEDIR/conf/n.src"
|
SOURCE_SUM=9654440b0e7169cf3be5897a563258116b21ec6e7e7e266acc56979d3ebec6a2" > "$YNH_APP_BASEDIR/conf/n.src"
|
||||||
# Download and extract n
|
# Download and extract n
|
||||||
ynh_setup_source --dest_dir="$n_install_dir/git" --source_id=n
|
ynh_setup_source --dest_dir="$n_install_dir/git" --source_id=n
|
||||||
# Install n
|
# Install n
|
||||||
|
@ -92,6 +92,8 @@ ynh_use_nodejs () {
|
||||||
node_PATH="$PATH"
|
node_PATH="$PATH"
|
||||||
# Create an alias to easily load the PATH
|
# Create an alias to easily load the PATH
|
||||||
ynh_node_load_PATH="PATH=$node_PATH"
|
ynh_node_load_PATH="PATH=$node_PATH"
|
||||||
|
# Same var but in lower case to be compatible with ynh_replace_vars...
|
||||||
|
ynh_node_load_path="PATH=$node_PATH"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Install a specific version of nodejs
|
# Install a specific version of nodejs
|
||||||
|
|
|
@ -55,9 +55,7 @@ YNH_PHP_VERSION=${YNH_PHP_VERSION:-$YNH_DEFAULT_PHP_VERSION}
|
||||||
# RAM) but the impact on the proc is lower. The service will be quick to answer as there's always many
|
# RAM) but the impact on the proc is lower. The service will be quick to answer as there's always many
|
||||||
# children ready to answer.
|
# children ready to answer.
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.7.2 or higher.
|
# Requires YunoHost version 4.1.0 or higher.
|
||||||
# Requires YunoHost version 3.5.1 or higher for the argument --phpversion
|
|
||||||
# Requires YunoHost version 3.8.1 or higher for the arguments --use_template, --usage, --footprint, --package and --dedicated_service
|
|
||||||
ynh_add_fpm_config () {
|
ynh_add_fpm_config () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=vtufpd
|
local legacy_args=vtufpd
|
||||||
|
@ -570,6 +568,7 @@ YNH_COMPOSER_VERSION=${YNH_COMPOSER_VERSION:-$YNH_DEFAULT_COMPOSER_VERSION}
|
||||||
# | arg: -w, --workdir - The directory from where the command will be executed. Default $final_path.
|
# | arg: -w, --workdir - The directory from where the command will be executed. Default $final_path.
|
||||||
# | arg: -c, --commands - Commands to execute.
|
# | arg: -c, --commands - Commands to execute.
|
||||||
#
|
#
|
||||||
|
# Requires YunoHost version 4.2 or higher.
|
||||||
ynh_composer_exec () {
|
ynh_composer_exec () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=vwc
|
local legacy_args=vwc
|
||||||
|
@ -595,6 +594,7 @@ ynh_composer_exec () {
|
||||||
# | arg: -a, --install_args - Additional arguments provided to the composer install. Argument --no-dev already include
|
# | arg: -a, --install_args - Additional arguments provided to the composer install. Argument --no-dev already include
|
||||||
# | arg: -c, --composerversion - Composer version to install
|
# | arg: -c, --composerversion - Composer version to install
|
||||||
#
|
#
|
||||||
|
# Requires YunoHost version 4.2 or higher.
|
||||||
ynh_install_composer () {
|
ynh_install_composer () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=vwac
|
local legacy_args=vwac
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
# See the documentation of `ynh_add_config` for a description of the template
|
# See the documentation of `ynh_add_config` for a description of the template
|
||||||
# format and how placeholders are replaced with actual variables.
|
# format and how placeholders are replaced with actual variables.
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.7.11 or higher.
|
# Requires YunoHost version 4.1.0 or higher.
|
||||||
ynh_add_systemd_config () {
|
ynh_add_systemd_config () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=stv
|
local legacy_args=stv
|
||||||
|
@ -25,7 +25,7 @@ ynh_add_systemd_config () {
|
||||||
template="${template:-systemd.service}"
|
template="${template:-systemd.service}"
|
||||||
others_var="${others_var:-}"
|
others_var="${others_var:-}"
|
||||||
|
|
||||||
[[ -z "$others_var" ]] || ynh_print_warn --message="Packagers: using --others_var is unecessary since Yunohost 4.2"
|
[[ -z "$others_var" ]] || ynh_print_warn --message="Packagers: using --others_var is unecessary since YunoHost 4.2"
|
||||||
|
|
||||||
ynh_add_config --template="$YNH_APP_BASEDIR/conf/$template" --destination="/etc/systemd/system/$service.service"
|
ynh_add_config --template="$YNH_APP_BASEDIR/conf/$template" --destination="/etc/systemd/system/$service.service"
|
||||||
|
|
||||||
|
@ -88,6 +88,12 @@ ynh_systemd_action() {
|
||||||
log_path="${log_path:-/var/log/$service_name/$service_name.log}"
|
log_path="${log_path:-/var/log/$service_name/$service_name.log}"
|
||||||
timeout=${timeout:-300}
|
timeout=${timeout:-300}
|
||||||
|
|
||||||
|
# Manage case of service already stopped
|
||||||
|
if [ "$action" == "stop" ] && ! systemctl is-active --quiet $service_name
|
||||||
|
then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
# Start to read the log
|
# Start to read the log
|
||||||
if [[ -n "$line_match" ]]
|
if [[ -n "$line_match" ]]
|
||||||
then
|
then
|
||||||
|
@ -139,11 +145,8 @@ ynh_systemd_action() {
|
||||||
ynh_print_info --message="The service $service_name has correctly executed the action ${action}."
|
ynh_print_info --message="The service $service_name has correctly executed the action ${action}."
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
if [ $i -eq 3 ]; then
|
if [ $i -eq 30 ]; then
|
||||||
echo -n "Please wait, the service $service_name is ${action}ing" >&2
|
echo "(this may take some time)" >&2
|
||||||
fi
|
|
||||||
if [ $i -ge 3 ]; then
|
|
||||||
echo -n "." >&2
|
|
||||||
fi
|
fi
|
||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
YNH_APP_BASEDIR=$([[ "$(basename $0)" =~ ^backup|restore$ ]] && echo '../settings' || echo '..')
|
YNH_APP_BASEDIR=$(realpath $([[ "$(basename $0)" =~ ^backup|restore$ ]] && echo '../settings' || echo '..'))
|
||||||
|
|
||||||
# Handle script crashes / failures
|
# Handle script crashes / failures
|
||||||
#
|
#
|
||||||
|
|
|
@ -11,7 +11,6 @@ backup_dir="${1}/conf/ldap"
|
||||||
|
|
||||||
# Backup the configuration
|
# Backup the configuration
|
||||||
ynh_backup "/etc/ldap/ldap.conf" "${backup_dir}/ldap.conf"
|
ynh_backup "/etc/ldap/ldap.conf" "${backup_dir}/ldap.conf"
|
||||||
ynh_backup "/etc/ldap/slapd.ldif" "${backup_dir}/slapd.ldif"
|
|
||||||
slapcat -b cn=config -l "${backup_dir}/cn=config.master.ldif"
|
slapcat -b cn=config -l "${backup_dir}/cn=config.master.ldif"
|
||||||
|
|
||||||
# Backup the database
|
# Backup the database
|
||||||
|
|
|
@ -4,6 +4,9 @@ set -e
|
||||||
|
|
||||||
tmp_backup_dir_file="/tmp/slapd-backup-dir.txt"
|
tmp_backup_dir_file="/tmp/slapd-backup-dir.txt"
|
||||||
|
|
||||||
|
config="/usr/share/yunohost/templates/slapd/config.ldif"
|
||||||
|
db_init="/usr/share/yunohost/templates/slapd/db_init.ldif"
|
||||||
|
|
||||||
do_init_regen() {
|
do_init_regen() {
|
||||||
if [[ $EUID -ne 0 ]]; then
|
if [[ $EUID -ne 0 ]]; then
|
||||||
echo "You must be root to run this script" 1>&2
|
echo "You must be root to run this script" 1>&2
|
||||||
|
@ -12,16 +15,12 @@ do_init_regen() {
|
||||||
|
|
||||||
do_pre_regen ""
|
do_pre_regen ""
|
||||||
|
|
||||||
systemctl daemon-reload
|
|
||||||
|
|
||||||
systemctl restart slapd
|
|
||||||
|
|
||||||
# Drop current existing slapd data
|
# Drop current existing slapd data
|
||||||
|
|
||||||
rm -rf /var/backups/*.ldapdb
|
rm -rf /var/backups/*.ldapdb
|
||||||
rm -rf /var/backups/slapd-*
|
rm -rf /var/backups/slapd-*
|
||||||
|
|
||||||
debconf-set-selections << EOF
|
debconf-set-selections << EOF
|
||||||
slapd slapd/password1 password yunohost
|
slapd slapd/password1 password yunohost
|
||||||
slapd slapd/password2 password yunohost
|
slapd slapd/password2 password yunohost
|
||||||
slapd slapd/domain string yunohost.org
|
slapd slapd/domain string yunohost.org
|
||||||
|
@ -36,20 +35,38 @@ EOF
|
||||||
|
|
||||||
DEBIAN_FRONTEND=noninteractive dpkg-reconfigure slapd -u
|
DEBIAN_FRONTEND=noninteractive dpkg-reconfigure slapd -u
|
||||||
|
|
||||||
# Regen conf
|
# Enforce permissions
|
||||||
|
|
||||||
_regenerate_slapd_conf
|
|
||||||
|
|
||||||
# Enforce permissions
|
|
||||||
chown root:openldap /etc/ldap/slapd.ldif
|
|
||||||
chown -R openldap:openldap /etc/ldap/schema/
|
chown -R openldap:openldap /etc/ldap/schema/
|
||||||
usermod -aG ssl-cert openldap
|
usermod -aG ssl-cert openldap
|
||||||
|
|
||||||
|
# (Re-)init data according to default ldap entries
|
||||||
|
echo ' Initializing LDAP with YunoHost DB structure'
|
||||||
|
|
||||||
|
rm -rf /etc/ldap/slapd.d
|
||||||
|
mkdir -p /etc/ldap/slapd.d
|
||||||
|
slapadd -F /etc/ldap/slapd.d -b cn=config -l "$config" 2>&1 \
|
||||||
|
| grep -v "none elapsed\|Closing DB" || true
|
||||||
|
chown -R openldap: /etc/ldap/slapd.d
|
||||||
|
|
||||||
|
rm -rf /var/lib/ldap
|
||||||
|
mkdir -p /var/lib/ldap
|
||||||
|
slapadd -F /etc/ldap/slapd.d -b dc=yunohost,dc=org -l "$db_init" 2>&1 \
|
||||||
|
| grep -v "none elapsed\|Closing DB" || true
|
||||||
|
chown -R openldap: /var/lib/ldap
|
||||||
|
|
||||||
|
nscd -i group || true
|
||||||
|
nscd -i passwd || true
|
||||||
|
|
||||||
systemctl restart slapd
|
systemctl restart slapd
|
||||||
|
|
||||||
# (Re-)init data according to ldap_scheme.yaml
|
# We don't use mkhomedir_helper because 'admin' may not be recognized
|
||||||
|
# when this script is ran in a chroot (e.g. ISO install)
|
||||||
yunohost tools shell -c "from yunohost.tools import tools_ldapinit; tools_ldapinit()"
|
# We also refer to admin as uid 1007 for the same reason
|
||||||
|
if [ ! -d /home/admin ]
|
||||||
|
then
|
||||||
|
cp -r /etc/skel /home/admin
|
||||||
|
chown -R 1007:1007 /home/admin
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
_regenerate_slapd_conf() {
|
_regenerate_slapd_conf() {
|
||||||
|
@ -59,7 +76,7 @@ _regenerate_slapd_conf() {
|
||||||
# so we use a temporary directory slapd_new.d
|
# so we use a temporary directory slapd_new.d
|
||||||
rm -Rf /etc/ldap/slapd_new.d
|
rm -Rf /etc/ldap/slapd_new.d
|
||||||
mkdir /etc/ldap/slapd_new.d
|
mkdir /etc/ldap/slapd_new.d
|
||||||
slapadd -n0 -l /etc/ldap/slapd.ldif -F /etc/ldap/slapd_new.d/ 2>&1 \
|
slapadd -b cn=config -l "$config" -F /etc/ldap/slapd_new.d/ 2>&1 \
|
||||||
| grep -v "none elapsed\|Closing DB" || true
|
| grep -v "none elapsed\|Closing DB" || true
|
||||||
# Actual validation (-Q is for quiet, -u is for dry-run)
|
# Actual validation (-Q is for quiet, -u is for dry-run)
|
||||||
slaptest -Q -u -F /etc/ldap/slapd_new.d
|
slaptest -Q -u -F /etc/ldap/slapd_new.d
|
||||||
|
@ -101,7 +118,7 @@ do_pre_regen() {
|
||||||
cd /usr/share/yunohost/templates/slapd
|
cd /usr/share/yunohost/templates/slapd
|
||||||
|
|
||||||
# copy configuration files
|
# copy configuration files
|
||||||
cp -a ldap.conf slapd.ldif "$ldap_dir"
|
cp -a ldap.conf "$ldap_dir"
|
||||||
cp -a sudo.ldif mailserver.ldif permission.ldif "$schema_dir"
|
cp -a sudo.ldif mailserver.ldif permission.ldif "$schema_dir"
|
||||||
|
|
||||||
mkdir -p ${pending_dir}/etc/systemd/system/slapd.service.d/
|
mkdir -p ${pending_dir}/etc/systemd/system/slapd.service.d/
|
||||||
|
@ -117,7 +134,6 @@ do_post_regen() {
|
||||||
echo "Enforce permissions on ldap/slapd directories and certs ..."
|
echo "Enforce permissions on ldap/slapd directories and certs ..."
|
||||||
# penldap user should be in the ssl-cert group to let it access the certificate for TLS
|
# penldap user should be in the ssl-cert group to let it access the certificate for TLS
|
||||||
usermod -aG ssl-cert openldap
|
usermod -aG ssl-cert openldap
|
||||||
chown root:openldap /etc/ldap/slapd.ldif
|
|
||||||
chown -R openldap:openldap /etc/ldap/schema/
|
chown -R openldap:openldap /etc/ldap/schema/
|
||||||
chown -R openldap:openldap /etc/ldap/slapd.d/
|
chown -R openldap:openldap /etc/ldap/slapd.d/
|
||||||
|
|
||||||
|
@ -126,12 +142,28 @@ do_post_regen() {
|
||||||
then
|
then
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
systemctl restart slapd
|
systemctl restart slapd
|
||||||
|
sleep 3
|
||||||
|
fi
|
||||||
|
|
||||||
|
# For some reason, old setups don't have the admins group defined...
|
||||||
|
if ! slapcat | grep -q 'cn=admins,ou=groups,dc=yunohost,dc=org'
|
||||||
|
then
|
||||||
|
slapadd -F /etc/ldap/slapd.d -b dc=yunohost,dc=org <<< \
|
||||||
|
"dn: cn=admins,ou=groups,dc=yunohost,dc=org
|
||||||
|
cn: admins
|
||||||
|
gidNumber: 4001
|
||||||
|
memberUid: admin
|
||||||
|
objectClass: posixGroup
|
||||||
|
objectClass: top"
|
||||||
|
chown -R openldap: /var/lib/ldap
|
||||||
|
systemctl restart slapd
|
||||||
|
nscd -i group
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[ -z "$regen_conf_files" ] && exit 0
|
[ -z "$regen_conf_files" ] && exit 0
|
||||||
|
|
||||||
# regenerate LDAP config directory from slapd.conf
|
# regenerate LDAP config directory from slapd.conf
|
||||||
echo "Regenerate LDAP config directory from slapd.ldif"
|
echo "Regenerate LDAP config directory from config.ldif"
|
||||||
_regenerate_slapd_conf
|
_regenerate_slapd_conf
|
||||||
|
|
||||||
# If there's a backup, re-import its data
|
# If there's a backup, re-import its data
|
||||||
|
@ -180,9 +212,6 @@ case "$1" in
|
||||||
init)
|
init)
|
||||||
do_init_regen
|
do_init_regen
|
||||||
;;
|
;;
|
||||||
apply_config)
|
|
||||||
do_post_regen /etc/ldap/slapd.ldif
|
|
||||||
;;
|
|
||||||
*)
|
*)
|
||||||
echo "hook called with unknown argument \`$1'" >&2
|
echo "hook called with unknown argument \`$1'" >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
|
|
@ -33,7 +33,6 @@ die() {
|
||||||
mv /etc/ldap/slapd.d "$TMPDIR"
|
mv /etc/ldap/slapd.d "$TMPDIR"
|
||||||
mkdir -p /etc/ldap/slapd.d
|
mkdir -p /etc/ldap/slapd.d
|
||||||
cp -a "${backup_dir}/ldap.conf" /etc/ldap/ldap.conf
|
cp -a "${backup_dir}/ldap.conf" /etc/ldap/ldap.conf
|
||||||
cp -a "${backup_dir}/slapd.ldif" /etc/ldap/slapd.ldif
|
|
||||||
# Legacy thing but we need it to force the regen-conf in case of it exist
|
# Legacy thing but we need it to force the regen-conf in case of it exist
|
||||||
[ ! -e "${backup_dir}/slapd.conf" ] \
|
[ ! -e "${backup_dir}/slapd.conf" ] \
|
||||||
|| cp -a "${backup_dir}/slapd.conf" /etc/ldap/slapd.conf
|
|| cp -a "${backup_dir}/slapd.conf" /etc/ldap/slapd.conf
|
||||||
|
|
|
@ -164,12 +164,6 @@
|
||||||
ipv4: false
|
ipv4: false
|
||||||
ipv6: true
|
ipv6: true
|
||||||
domain: false
|
domain: false
|
||||||
- name: SPFBL.net RBL
|
|
||||||
dns_server: dnsbl.spfbl.net
|
|
||||||
website: https://spfbl.net/en/dnsbl/
|
|
||||||
ipv4: true
|
|
||||||
ipv6: true
|
|
||||||
domain: true
|
|
||||||
- name: Suomispam Blacklist
|
- name: Suomispam Blacklist
|
||||||
dns_server: bl.suomispam.net
|
dns_server: bl.suomispam.net
|
||||||
website: http://suomispam.net/
|
website: http://suomispam.net/
|
||||||
|
|
|
@ -1,113 +0,0 @@
|
||||||
parents:
|
|
||||||
ou=users:
|
|
||||||
ou: users
|
|
||||||
objectClass:
|
|
||||||
- organizationalUnit
|
|
||||||
- top
|
|
||||||
|
|
||||||
ou=domains:
|
|
||||||
ou: domains
|
|
||||||
objectClass:
|
|
||||||
- organizationalUnit
|
|
||||||
- top
|
|
||||||
|
|
||||||
ou=apps:
|
|
||||||
ou: apps
|
|
||||||
objectClass:
|
|
||||||
- organizationalUnit
|
|
||||||
- top
|
|
||||||
|
|
||||||
ou=permission:
|
|
||||||
ou: permission
|
|
||||||
objectClass:
|
|
||||||
- organizationalUnit
|
|
||||||
- top
|
|
||||||
|
|
||||||
ou=groups:
|
|
||||||
ou: groups
|
|
||||||
objectClass:
|
|
||||||
- organizationalUnit
|
|
||||||
- top
|
|
||||||
ou=sudo:
|
|
||||||
ou: sudo
|
|
||||||
objectClass:
|
|
||||||
- organizationalUnit
|
|
||||||
- top
|
|
||||||
|
|
||||||
children:
|
|
||||||
cn=admin,ou=sudo:
|
|
||||||
cn: admin
|
|
||||||
sudoUser: admin
|
|
||||||
sudoHost: ALL
|
|
||||||
sudoCommand: ALL
|
|
||||||
sudoOption: "!authenticate"
|
|
||||||
objectClass:
|
|
||||||
- sudoRole
|
|
||||||
- top
|
|
||||||
cn=admins,ou=groups:
|
|
||||||
cn: admins
|
|
||||||
gidNumber: "4001"
|
|
||||||
memberUid: admin
|
|
||||||
objectClass:
|
|
||||||
- posixGroup
|
|
||||||
- top
|
|
||||||
cn=all_users,ou=groups:
|
|
||||||
cn: all_users
|
|
||||||
gidNumber: "4002"
|
|
||||||
objectClass:
|
|
||||||
- posixGroup
|
|
||||||
- groupOfNamesYnh
|
|
||||||
cn=visitors,ou=groups:
|
|
||||||
cn: visitors
|
|
||||||
gidNumber: "4003"
|
|
||||||
objectClass:
|
|
||||||
- posixGroup
|
|
||||||
- groupOfNamesYnh
|
|
||||||
|
|
||||||
depends_children:
|
|
||||||
cn=mail.main,ou=permission:
|
|
||||||
cn: mail.main
|
|
||||||
gidNumber: "5001"
|
|
||||||
objectClass:
|
|
||||||
- posixGroup
|
|
||||||
- permissionYnh
|
|
||||||
groupPermission:
|
|
||||||
- "cn=all_users,ou=groups,dc=yunohost,dc=org"
|
|
||||||
authHeader: "FALSE"
|
|
||||||
label: "E-mail"
|
|
||||||
showTile: "FALSE"
|
|
||||||
isProtected: "TRUE"
|
|
||||||
cn=xmpp.main,ou=permission:
|
|
||||||
cn: xmpp.main
|
|
||||||
gidNumber: "5002"
|
|
||||||
objectClass:
|
|
||||||
- posixGroup
|
|
||||||
- permissionYnh
|
|
||||||
groupPermission:
|
|
||||||
- "cn=all_users,ou=groups,dc=yunohost,dc=org"
|
|
||||||
authHeader: "FALSE"
|
|
||||||
label: "XMPP"
|
|
||||||
showTile: "FALSE"
|
|
||||||
isProtected: "TRUE"
|
|
||||||
cn=ssh.main,ou=permission:
|
|
||||||
cn: ssh.main
|
|
||||||
gidNumber: "5003"
|
|
||||||
objectClass:
|
|
||||||
- posixGroup
|
|
||||||
- permissionYnh
|
|
||||||
groupPermission: []
|
|
||||||
authHeader: "FALSE"
|
|
||||||
label: "SSH"
|
|
||||||
showTile: "FALSE"
|
|
||||||
isProtected: "TRUE"
|
|
||||||
cn=sftp.main,ou=permission:
|
|
||||||
cn: sftp.main
|
|
||||||
gidNumber: "5004"
|
|
||||||
objectClass:
|
|
||||||
- posixGroup
|
|
||||||
- permissionYnh
|
|
||||||
groupPermission: []
|
|
||||||
authHeader: "FALSE"
|
|
||||||
label: "SFTP"
|
|
||||||
showTile: "FALSE"
|
|
||||||
isProtected: "TRUE"
|
|
|
@ -12,9 +12,6 @@ nameserver 80.67.169.12
|
||||||
nameserver 2001:910:800::12
|
nameserver 2001:910:800::12
|
||||||
nameserver 80.67.169.40
|
nameserver 80.67.169.40
|
||||||
nameserver 2001:910:800::40
|
nameserver 2001:910:800::40
|
||||||
# (FR) LDN
|
|
||||||
nameserver 80.67.188.188
|
|
||||||
nameserver 2001:913::8
|
|
||||||
# (FR) ARN
|
# (FR) ARN
|
||||||
nameserver 89.234.141.66
|
nameserver 89.234.141.66
|
||||||
nameserver 2a00:5881:8100:1000::3
|
nameserver 2a00:5881:8100:1000::3
|
||||||
|
@ -23,11 +20,6 @@ nameserver 185.233.100.100
|
||||||
nameserver 2a0c:e300::100
|
nameserver 2a0c:e300::100
|
||||||
nameserver 185.233.100.101
|
nameserver 185.233.100.101
|
||||||
nameserver 2a0c:e300::101
|
nameserver 2a0c:e300::101
|
||||||
# (FR) gozmail / grifon
|
|
||||||
nameserver 80.67.190.200
|
|
||||||
nameserver 2a00:5884:8218::1
|
|
||||||
# (DE) FoeBud / Digital Courage
|
|
||||||
nameserver 85.214.20.141
|
|
||||||
# (DE) CCC Berlin
|
# (DE) CCC Berlin
|
||||||
nameserver 195.160.173.53
|
nameserver 195.160.173.53
|
||||||
# (DE) AS250
|
# (DE) AS250
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
# Values: TEXT
|
# Values: TEXT
|
||||||
#
|
#
|
||||||
failregex = helpers.lua:[0-9]+: authenticate\(\): Connection failed for: .*, client: <HOST>
|
failregex = helpers.lua:[0-9]+: authenticate\(\): Connection failed for: .*, client: <HOST>
|
||||||
^<HOST> -.*\"POST /yunohost/api/login HTTP/1.1\" 401
|
^<HOST> -.*\"POST /yunohost/api/login HTTP/\d.\d\" 401
|
||||||
|
|
||||||
# Option: ignoreregex
|
# Option: ignoreregex
|
||||||
# Notes.: regex to ignore. If this regex matches, the line is ignored.
|
# Notes.: regex to ignore. If this regex matches, the line is ignored.
|
||||||
|
|
|
@ -32,6 +32,7 @@ modules_enabled = {
|
||||||
"private"; -- Private XML storage (for room bookmarks, etc.)
|
"private"; -- Private XML storage (for room bookmarks, etc.)
|
||||||
"vcard"; -- Allow users to set vCards
|
"vcard"; -- Allow users to set vCards
|
||||||
"pep"; -- Allows setting of mood, tune, etc.
|
"pep"; -- Allows setting of mood, tune, etc.
|
||||||
|
"pubsub"; -- Publish-subscribe XEP-0060
|
||||||
"posix"; -- POSIX functionality, sends server to background, enables syslog, etc.
|
"posix"; -- POSIX functionality, sends server to background, enables syslog, etc.
|
||||||
"bidi"; -- Enables Bidirectional Server-to-Server Streams.
|
"bidi"; -- Enables Bidirectional Server-to-Server Streams.
|
||||||
|
|
||||||
|
@ -95,6 +96,10 @@ allow_registration = false
|
||||||
-- Use LDAP storage backend for all stores
|
-- Use LDAP storage backend for all stores
|
||||||
storage = "ldap"
|
storage = "ldap"
|
||||||
|
|
||||||
|
-- stanza optimization
|
||||||
|
csi_config_queue_all_muc_messages_but_mentions = false;
|
||||||
|
|
||||||
|
|
||||||
-- Logging configuration
|
-- Logging configuration
|
||||||
log = {
|
log = {
|
||||||
info = "/var/log/metronome/metronome.log"; -- Change 'info' to 'debug' for verbose logging
|
info = "/var/log/metronome/metronome.log"; -- Change 'info' to 'debug' for verbose logging
|
||||||
|
|
|
@ -89,8 +89,11 @@ mailbox_size_limit = 0
|
||||||
recipient_delimiter = +
|
recipient_delimiter = +
|
||||||
inet_interfaces = all
|
inet_interfaces = all
|
||||||
|
|
||||||
#### Fit to the maximum message size to 30mb, more than allowed by GMail or Yahoo ####
|
#### Fit to the maximum message size to 25mb, more than allowed by GMail or Yahoo ####
|
||||||
message_size_limit = 31457280
|
# /!\ This size is the size of the attachment in base64.
|
||||||
|
# BASE64_SIZE_IN_BYTE = ORIGINAL_SIZE_IN_MEGABYTE * 1,37 *1024*1024 + 980
|
||||||
|
# See https://serverfault.com/questions/346895/postfix-mail-size-counting
|
||||||
|
message_size_limit = 35914708
|
||||||
|
|
||||||
# Virtual Domains Control
|
# Virtual Domains Control
|
||||||
virtual_mailbox_domains = ldap:/etc/postfix/ldap-domains.cf
|
virtual_mailbox_domains = ldap:/etc/postfix/ldap-domains.cf
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# OpenLDAP server configuration for Yunohost
|
# OpenLDAP server configuration for YunoHost
|
||||||
# ------------------------------------------
|
# ------------------------------------------
|
||||||
#
|
#
|
||||||
# Because of the Yunohost's regen-conf mechanism, it is NOT POSSIBLE to
|
# Because of the YunoHost's regen-conf mechanism, it is NOT POSSIBLE to
|
||||||
# edit the config database using an LDAP request.
|
# edit the config database using an LDAP request.
|
||||||
#
|
#
|
||||||
# If you wish to edit the config database, you should edit THIS file
|
# If you wish to edit the config database, you should edit THIS file
|
||||||
|
@ -192,7 +192,7 @@ olcDbMaxSize: 10485760
|
||||||
structuralObjectClass: olcMdbConfig
|
structuralObjectClass: olcMdbConfig
|
||||||
|
|
||||||
#
|
#
|
||||||
# Configure Memberof Overlay (used for Yunohost permission)
|
# Configure Memberof Overlay (used for YunoHost permission)
|
||||||
#
|
#
|
||||||
|
|
||||||
# Link user <-> group
|
# Link user <-> group
|
120
data/templates/slapd/db_init.ldif
Normal file
120
data/templates/slapd/db_init.ldif
Normal file
|
@ -0,0 +1,120 @@
|
||||||
|
dn: dc=yunohost,dc=org
|
||||||
|
objectClass: top
|
||||||
|
objectClass: dcObject
|
||||||
|
objectClass: organization
|
||||||
|
o: yunohost.org
|
||||||
|
dc: yunohost
|
||||||
|
|
||||||
|
dn: cn=admin,ou=sudo,dc=yunohost,dc=org
|
||||||
|
cn: admin
|
||||||
|
objectClass: sudoRole
|
||||||
|
objectClass: top
|
||||||
|
sudoCommand: ALL
|
||||||
|
sudoUser: admin
|
||||||
|
sudoOption: !authenticate
|
||||||
|
sudoHost: ALL
|
||||||
|
|
||||||
|
dn: ou=users,dc=yunohost,dc=org
|
||||||
|
objectClass: organizationalUnit
|
||||||
|
objectClass: top
|
||||||
|
ou: users
|
||||||
|
|
||||||
|
dn: ou=domains,dc=yunohost,dc=org
|
||||||
|
objectClass: organizationalUnit
|
||||||
|
objectClass: top
|
||||||
|
ou: domains
|
||||||
|
|
||||||
|
dn: ou=apps,dc=yunohost,dc=org
|
||||||
|
objectClass: organizationalUnit
|
||||||
|
objectClass: top
|
||||||
|
ou: apps
|
||||||
|
|
||||||
|
dn: ou=permission,dc=yunohost,dc=org
|
||||||
|
objectClass: organizationalUnit
|
||||||
|
objectClass: top
|
||||||
|
ou: permission
|
||||||
|
|
||||||
|
dn: ou=groups,dc=yunohost,dc=org
|
||||||
|
objectClass: organizationalUnit
|
||||||
|
objectClass: top
|
||||||
|
ou: groups
|
||||||
|
|
||||||
|
dn: ou=sudo,dc=yunohost,dc=org
|
||||||
|
objectClass: organizationalUnit
|
||||||
|
objectClass: top
|
||||||
|
ou: sudo
|
||||||
|
|
||||||
|
dn: cn=admin,dc=yunohost,dc=org
|
||||||
|
objectClass: organizationalRole
|
||||||
|
objectClass: posixAccount
|
||||||
|
objectClass: simpleSecurityObject
|
||||||
|
cn: admin
|
||||||
|
uid: admin
|
||||||
|
uidNumber: 1007
|
||||||
|
gidNumber: 1007
|
||||||
|
homeDirectory: /home/admin
|
||||||
|
loginShell: /bin/bash
|
||||||
|
userPassword: yunohost
|
||||||
|
|
||||||
|
dn: cn=admins,ou=groups,dc=yunohost,dc=org
|
||||||
|
objectClass: posixGroup
|
||||||
|
objectClass: top
|
||||||
|
memberUid: admin
|
||||||
|
gidNumber: 4001
|
||||||
|
cn: admins
|
||||||
|
|
||||||
|
dn: cn=all_users,ou=groups,dc=yunohost,dc=org
|
||||||
|
objectClass: posixGroup
|
||||||
|
objectClass: groupOfNamesYnh
|
||||||
|
gidNumber: 4002
|
||||||
|
cn: all_users
|
||||||
|
permission: cn=mail.main,ou=permission,dc=yunohost,dc=org
|
||||||
|
permission: cn=xmpp.main,ou=permission,dc=yunohost,dc=org
|
||||||
|
|
||||||
|
dn: cn=visitors,ou=groups,dc=yunohost,dc=org
|
||||||
|
objectClass: posixGroup
|
||||||
|
objectClass: groupOfNamesYnh
|
||||||
|
gidNumber: 4003
|
||||||
|
cn: visitors
|
||||||
|
|
||||||
|
dn: cn=mail.main,ou=permission,dc=yunohost,dc=org
|
||||||
|
groupPermission: cn=all_users,ou=groups,dc=yunohost,dc=org
|
||||||
|
cn: mail.main
|
||||||
|
objectClass: posixGroup
|
||||||
|
objectClass: permissionYnh
|
||||||
|
isProtected: TRUE
|
||||||
|
label: E-mail
|
||||||
|
gidNumber: 5001
|
||||||
|
showTile: FALSE
|
||||||
|
authHeader: FALSE
|
||||||
|
|
||||||
|
dn: cn=xmpp.main,ou=permission,dc=yunohost,dc=org
|
||||||
|
groupPermission: cn=all_users,ou=groups,dc=yunohost,dc=org
|
||||||
|
cn: xmpp.main
|
||||||
|
objectClass: posixGroup
|
||||||
|
objectClass: permissionYnh
|
||||||
|
isProtected: TRUE
|
||||||
|
label: XMPP
|
||||||
|
gidNumber: 5002
|
||||||
|
showTile: FALSE
|
||||||
|
authHeader: FALSE
|
||||||
|
|
||||||
|
dn: cn=ssh.main,ou=permission,dc=yunohost,dc=org
|
||||||
|
cn: ssh.main
|
||||||
|
objectClass: posixGroup
|
||||||
|
objectClass: permissionYnh
|
||||||
|
isProtected: TRUE
|
||||||
|
label: SSH
|
||||||
|
gidNumber: 5003
|
||||||
|
showTile: FALSE
|
||||||
|
authHeader: FALSE
|
||||||
|
|
||||||
|
dn: cn=sftp.main,ou=permission,dc=yunohost,dc=org
|
||||||
|
cn: sftp.main
|
||||||
|
objectClass: posixGroup
|
||||||
|
objectClass: permissionYnh
|
||||||
|
isProtected: TRUE
|
||||||
|
label: SFTP
|
||||||
|
gidNumber: 5004
|
||||||
|
showTile: FALSE
|
||||||
|
authHeader: FALSE
|
|
@ -1,4 +1,4 @@
|
||||||
# Yunohost schema for group and permission support
|
# YunoHost schema for group and permission support
|
||||||
|
|
||||||
dn: cn=yunohost,cn=schema,cn=config
|
dn: cn=yunohost,cn=schema,cn=config
|
||||||
objectClass: olcSchemaConfig
|
objectClass: olcSchemaConfig
|
||||||
|
@ -6,45 +6,45 @@ cn: yunohost
|
||||||
# ATTRIBUTES
|
# ATTRIBUTES
|
||||||
# For Permission
|
# For Permission
|
||||||
olcAttributeTypes: ( 1.3.6.1.4.1.17953.9.1.1 NAME 'permission'
|
olcAttributeTypes: ( 1.3.6.1.4.1.17953.9.1.1 NAME 'permission'
|
||||||
DESC 'Yunohost permission on user and group side'
|
DESC 'YunoHost permission on user and group side'
|
||||||
SUP distinguishedName )
|
SUP distinguishedName )
|
||||||
olcAttributeTypes: ( 1.3.6.1.4.1.17953.9.1.2 NAME 'groupPermission'
|
olcAttributeTypes: ( 1.3.6.1.4.1.17953.9.1.2 NAME 'groupPermission'
|
||||||
DESC 'Yunohost permission for a group on permission side'
|
DESC 'YunoHost permission for a group on permission side'
|
||||||
SUP distinguishedName )
|
SUP distinguishedName )
|
||||||
olcAttributeTypes: ( 1.3.6.1.4.1.17953.9.1.3 NAME 'inheritPermission'
|
olcAttributeTypes: ( 1.3.6.1.4.1.17953.9.1.3 NAME 'inheritPermission'
|
||||||
DESC 'Yunohost permission for user on permission side'
|
DESC 'YunoHost permission for user on permission side'
|
||||||
SUP distinguishedName )
|
SUP distinguishedName )
|
||||||
olcAttributeTypes: ( 1.3.6.1.4.1.17953.9.1.4 NAME 'URL'
|
olcAttributeTypes: ( 1.3.6.1.4.1.17953.9.1.4 NAME 'URL'
|
||||||
DESC 'Yunohost permission main URL'
|
DESC 'YunoHost permission main URL'
|
||||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} SINGLE-VALUE )
|
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} SINGLE-VALUE )
|
||||||
olcAttributeTypes: ( 1.3.6.1.4.1.17953.9.1.5 NAME 'additionalUrls'
|
olcAttributeTypes: ( 1.3.6.1.4.1.17953.9.1.5 NAME 'additionalUrls'
|
||||||
DESC 'Yunohost permission additionnal URL'
|
DESC 'YunoHost permission additionnal URL'
|
||||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )
|
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )
|
||||||
olcAttributeTypes: ( 1.3.6.1.4.1.17953.9.1.6 NAME 'authHeader'
|
olcAttributeTypes: ( 1.3.6.1.4.1.17953.9.1.6 NAME 'authHeader'
|
||||||
DESC 'Yunohost application, enable authentication header'
|
DESC 'YunoHost application, enable authentication header'
|
||||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
|
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
|
||||||
olcAttributeTypes: ( 1.3.6.1.4.1.17953.9.1.7 NAME 'label'
|
olcAttributeTypes: ( 1.3.6.1.4.1.17953.9.1.7 NAME 'label'
|
||||||
DESC 'Yunohost permission label, also used for the tile name in the SSO'
|
DESC 'YunoHost permission label, also used for the tile name in the SSO'
|
||||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} SINGLE-VALUE )
|
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} SINGLE-VALUE )
|
||||||
olcAttributeTypes: ( 1.3.6.1.4.1.17953.9.1.8 NAME 'showTile'
|
olcAttributeTypes: ( 1.3.6.1.4.1.17953.9.1.8 NAME 'showTile'
|
||||||
DESC 'Yunohost application, show/hide the tile in the SSO for this permission'
|
DESC 'YunoHost application, show/hide the tile in the SSO for this permission'
|
||||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
|
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
|
||||||
olcAttributeTypes: ( 1.3.6.1.4.1.17953.9.1.9 NAME 'isProtected'
|
olcAttributeTypes: ( 1.3.6.1.4.1.17953.9.1.9 NAME 'isProtected'
|
||||||
DESC 'Yunohost application permission protection'
|
DESC 'YunoHost application permission protection'
|
||||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
|
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
|
||||||
# OBJECTCLASS
|
# OBJECTCLASS
|
||||||
# For Applications
|
# For Applications
|
||||||
olcObjectClasses: ( 1.3.6.1.4.1.17953.9.2.1 NAME 'groupOfNamesYnh'
|
olcObjectClasses: ( 1.3.6.1.4.1.17953.9.2.1 NAME 'groupOfNamesYnh'
|
||||||
DESC 'Yunohost user group'
|
DESC 'YunoHost user group'
|
||||||
SUP top AUXILIARY
|
SUP top AUXILIARY
|
||||||
MAY ( member $ businessCategory $ seeAlso $ owner $ ou $ o $ permission ) )
|
MAY ( member $ businessCategory $ seeAlso $ owner $ ou $ o $ permission ) )
|
||||||
olcObjectClasses: ( 1.3.6.1.4.1.17953.9.2.2 NAME 'permissionYnh'
|
olcObjectClasses: ( 1.3.6.1.4.1.17953.9.2.2 NAME 'permissionYnh'
|
||||||
DESC 'a Yunohost application'
|
DESC 'a YunoHost application'
|
||||||
SUP top AUXILIARY
|
SUP top AUXILIARY
|
||||||
MUST ( cn $ authHeader $ label $ showTile $ isProtected )
|
MUST ( cn $ authHeader $ label $ showTile $ isProtected )
|
||||||
MAY ( groupPermission $ inheritPermission $ URL $ additionalUrls ) )
|
MAY ( groupPermission $ inheritPermission $ URL $ additionalUrls ) )
|
||||||
# For User
|
# For User
|
||||||
olcObjectClasses: ( 1.3.6.1.4.1.17953.9.2.3 NAME 'userPermissionYnh'
|
olcObjectClasses: ( 1.3.6.1.4.1.17953.9.2.3 NAME 'userPermissionYnh'
|
||||||
DESC 'a Yunohost application'
|
DESC 'a YunoHost application'
|
||||||
SUP top AUXILIARY
|
SUP top AUXILIARY
|
||||||
MAY ( permission ) )
|
MAY ( permission ) )
|
||||||
|
|
|
@ -90,6 +90,14 @@ Match Group sftp.main,!ssh.main
|
||||||
# Disable .ssh/rc, which could be edited (e.g. from Nextcloud or whatever) by users to execute arbitrary commands even if SSH login is disabled
|
# Disable .ssh/rc, which could be edited (e.g. from Nextcloud or whatever) by users to execute arbitrary commands even if SSH login is disabled
|
||||||
PermitUserRC no
|
PermitUserRC no
|
||||||
|
|
||||||
|
Match Group sftp.app,!ssh.app
|
||||||
|
ForceCommand internal-sftp
|
||||||
|
ChrootDirectory %h
|
||||||
|
AllowTcpForwarding no
|
||||||
|
AllowStreamLocalForwarding no
|
||||||
|
PermitTunnel no
|
||||||
|
PermitUserRC no
|
||||||
|
PasswordAuthentication yes
|
||||||
|
|
||||||
# root login is allowed on local networks
|
# root login is allowed on local networks
|
||||||
# It's meant to be a backup solution in case LDAP is down and
|
# It's meant to be a backup solution in case LDAP is down and
|
||||||
|
|
66
debian/changelog
vendored
66
debian/changelog
vendored
|
@ -1,3 +1,69 @@
|
||||||
|
yunohost (4.2.5.3) stable; urgency=low
|
||||||
|
|
||||||
|
- [fix] doc, helpers: Helper doc auto-generation job (f2886510)
|
||||||
|
- [fix] doc: Manpage generation ([#1237](https://github.com/yunohost/yunohost/pull/1237))
|
||||||
|
- [fix] misc: Yunohost -> YunoHost ([#1235](https://github.com/yunohost/yunohost/pull/1235))
|
||||||
|
- [enh] email: Accept attachment of 25MB instead of 21,8MB ([#1243](https://github.com/yunohost/yunohost/pull/1243))
|
||||||
|
- [fix] helpers: echo -n is pointless in ynh_systemd_action ([#1241](https://github.com/yunohost/yunohost/pull/1241))
|
||||||
|
- [i18n] Translations updated for Chinese (Simplified), French, Galician, German, Italian
|
||||||
|
|
||||||
|
Thanks to all contributors <3 ! (Éric Gaspar, José M, Kay0u, Leandro Noferini, ljf, Meta Meta, Noo Langoo, qwerty287, yahoo~~)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Wed, 02 Jun 2021 20:20:54 +0200
|
||||||
|
|
||||||
|
yunohost (4.2.5.2) stable; urgency=low
|
||||||
|
|
||||||
|
- Fix install in chroot ... *again* (806b7acf)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Mon, 24 May 2021 22:11:02 +0200
|
||||||
|
|
||||||
|
yunohost (4.2.5.1) stable; urgency=low
|
||||||
|
|
||||||
|
- Releasing as stable
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Mon, 24 May 2021 19:36:35 +0200
|
||||||
|
|
||||||
|
yunohost (4.2.5) testing; urgency=low
|
||||||
|
|
||||||
|
- [fix] backup: Also catch tarfile.ReadError as possible archive corruption error (4aaf0154)
|
||||||
|
- [enh] helpers: Update n to version 7.2.2 ([#1224](https://github.com/yunohost/yunohost/pull/1224))
|
||||||
|
- [fix] helpers: Define ynh_node_load_path to be compatible with ynh_replace_vars (06f8c1cc)
|
||||||
|
- [doc] helpers: Add requirements for new helpers (2b0df6c3)
|
||||||
|
- [fix] helpers: Set YNH_APP_BASEDIR as an absolute path ([#1229](https://github.com/yunohost/yunohost/pull/1229), 27300282)
|
||||||
|
- [fix] Tweak yunohost-api systemd config as an attempt to fix the API being down after yunohost upgrades (52e30704)
|
||||||
|
- [fix] python3: encoding issue in nftable migrations (0f10b91f)
|
||||||
|
- [fix] python3: Email on certificate renewing failed ([#1227](https://github.com/yunohost/yunohost/pull/1227))
|
||||||
|
- [fix] permissions: Remove warnings about legacy permission system (now reported in the linter) ([#1228](https://github.com/yunohost/yunohost/pull/1228))
|
||||||
|
- [fix] diagnosis, mail: Remove SPFBL because it triggers false positive ([#1231](https://github.com/yunohost/yunohost/pull/1231))
|
||||||
|
- [fix] diagnosis: DNS diagnosis taking an awful amount of time because of timeout ([#1233](https://github.com/yunohost/yunohost/pull/1233))
|
||||||
|
- [fix] install: Be able to init slapd in a chroot ([#1230](https://github.com/yunohost/yunohost/pull/1230))
|
||||||
|
- [i18n] Translations updated for Catalan, Chinese (Simplified), Czech, French, Galician, German
|
||||||
|
|
||||||
|
Thanks to all contributors <3 ! (Christian Wehrli, Éric Gaspar, José M, ljf, Radek S, Salamandar, Stephan Schneider, xaloc33, yahoo~~)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Mon, 24 May 2021 17:20:47 +0200
|
||||||
|
|
||||||
|
yunohost (4.2.4) stable; urgency=low
|
||||||
|
|
||||||
|
- python3: smtplib's sendmail miserably crashes with encoding issue if accent in mail body (af567c6f)
|
||||||
|
- ssh_config: add conf block for sftp apps (51478d14)
|
||||||
|
- ynh_systemd_action: Fix case where service is already stopped ([#1222](https://github.com/yunohost/yunohost/pull/1222))
|
||||||
|
- [i18n] Translations updated for German, Italian, Occitan
|
||||||
|
- Releasing as stable
|
||||||
|
|
||||||
|
Thanks to all contributors <3 ! (Christian Wehrli, Flavio Cristoforetti, Quentí, yalh76)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Sat, 08 May 2021 15:05:43 +0200
|
||||||
|
|
||||||
|
yunohost (4.2.3.1) testing; urgency=low
|
||||||
|
|
||||||
|
- [fix] Recreate the admins group which for some reason didnt exist on old setups .. (ee83c3f9)
|
||||||
|
- [i18n] Translations updated for French
|
||||||
|
|
||||||
|
Thanks to all contributors <3 ! (Éric G., ppr)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Wed, 28 Apr 2021 17:59:14 +0200
|
||||||
|
|
||||||
yunohost (4.2.3) testing; urgency=low
|
yunohost (4.2.3) testing; urgency=low
|
||||||
|
|
||||||
- Fix a stupid issue where an app's tmp work dir would be deleted during upgrade because of the backup process (50af0393)
|
- Fix a stupid issue where an app's tmp work dir would be deleted during upgrade because of the backup process (50af0393)
|
||||||
|
|
132
debian/yunohost-api.init
vendored
132
debian/yunohost-api.init
vendored
|
@ -1,132 +0,0 @@
|
||||||
#! /bin/sh
|
|
||||||
|
|
||||||
### BEGIN INIT INFO
|
|
||||||
# Provides: yunohost-api
|
|
||||||
# Required-Start: $local_fs $remote_fs $network $syslog
|
|
||||||
# Required-Stop: $local_fs $remote_fs $network $syslog
|
|
||||||
# Default-Start: 2 3 4 5
|
|
||||||
# Default-Stop: 0 1 6
|
|
||||||
# Short-Description: Manage YunoHost API Server
|
|
||||||
# Description: Manage YunoHost API Server
|
|
||||||
### END INIT INFO
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
DESC="YunoHost API Server"
|
|
||||||
NAME="yunohost-api"
|
|
||||||
DAEMON=/usr/bin/$NAME
|
|
||||||
DAEMON_OPTS=""
|
|
||||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
|
||||||
PIDFILE=/var/run/$NAME.pid
|
|
||||||
SCRIPTNAME=/etc/init.d/$NAME
|
|
||||||
LOGFILE=/var/log/$NAME.log
|
|
||||||
|
|
||||||
# Include yunohost-api defaults if available
|
|
||||||
if [ -r /etc/default/yunohost-api ]; then
|
|
||||||
. /etc/default/yunohost-api
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Exit if the package is not installed
|
|
||||||
[ -x "$DAEMON" ] || exit 0
|
|
||||||
|
|
||||||
# Load the VERBOSE setting and other rcS variables
|
|
||||||
. /lib/init/vars.sh
|
|
||||||
|
|
||||||
# Define LSB log_* functions.
|
|
||||||
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
|
|
||||||
# and status_of_proc is working.
|
|
||||||
. /lib/lsb/init-functions
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that starts the daemon/service
|
|
||||||
#
|
|
||||||
do_start()
|
|
||||||
{
|
|
||||||
# Return
|
|
||||||
# 0 if daemon has been started
|
|
||||||
# 1 if daemon was already running
|
|
||||||
# 2 if daemon could not be started
|
|
||||||
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
|
|
||||||
|| return 1
|
|
||||||
start-stop-daemon --start --background --make-pidfile --quiet --no-close \
|
|
||||||
--pidfile $PIDFILE --exec $DAEMON -- \
|
|
||||||
$DAEMON_OPTS >>$LOGFILE 2>&1 \
|
|
||||||
|| return 2
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that stops the daemon/service
|
|
||||||
#
|
|
||||||
do_stop()
|
|
||||||
{
|
|
||||||
# Return
|
|
||||||
# 0 if daemon has been stopped
|
|
||||||
# 1 if daemon was already stopped
|
|
||||||
# 2 if daemon could not be stopped
|
|
||||||
# other if a failure occurred
|
|
||||||
start-stop-daemon --stop --oknodo --pidfile $PIDFILE
|
|
||||||
RETVAL="$?"
|
|
||||||
|
|
||||||
sleep 1
|
|
||||||
return "$RETVAL"
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that sends a SIGHUP to the daemon/service
|
|
||||||
#
|
|
||||||
do_reload() {
|
|
||||||
# Send a SIGHUP to reload the daemon.
|
|
||||||
start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
|
||||||
do_start
|
|
||||||
case "$?" in
|
|
||||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
||||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
|
||||||
do_stop
|
|
||||||
case "$?" in
|
|
||||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
||||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
status)
|
|
||||||
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
|
|
||||||
;;
|
|
||||||
reload)
|
|
||||||
log_daemon_msg "Reloading $DESC" "$NAME"
|
|
||||||
do_reload
|
|
||||||
log_end_msg $?
|
|
||||||
;;
|
|
||||||
restart|force-reload)
|
|
||||||
log_daemon_msg "Restarting $DESC" "$NAME"
|
|
||||||
do_stop
|
|
||||||
case "$?" in
|
|
||||||
0|1)
|
|
||||||
do_start
|
|
||||||
case "$?" in
|
|
||||||
0) log_end_msg 0 ;;
|
|
||||||
1) log_end_msg 1 ;; # Old process is still running
|
|
||||||
*) log_end_msg 1 ;; # Failed to start
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
# Failed to stop
|
|
||||||
log_end_msg 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Usage: $SCRIPTNAME {start|stop|status|restart|reload}" >&2
|
|
||||||
exit 3
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
:
|
|
4
debian/yunohost-api.service
vendored
4
debian/yunohost-api.service
vendored
|
@ -7,9 +7,9 @@ Type=simple
|
||||||
Environment=DAEMON_OPTS=
|
Environment=DAEMON_OPTS=
|
||||||
EnvironmentFile=-/etc/default/yunohost-api
|
EnvironmentFile=-/etc/default/yunohost-api
|
||||||
ExecStart=/usr/bin/yunohost-api $DAEMON_OPTS
|
ExecStart=/usr/bin/yunohost-api $DAEMON_OPTS
|
||||||
ExecReload=/bin/kill -HUP $MAINPID
|
|
||||||
Restart=always
|
Restart=always
|
||||||
RestartSec=1
|
RestartSec=5
|
||||||
|
TimeoutStopSec=30
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
|
|
53
debian/yunohost-firewall.init
vendored
53
debian/yunohost-firewall.init
vendored
|
@ -1,53 +0,0 @@
|
||||||
#! /bin/bash
|
|
||||||
### BEGIN INIT INFO
|
|
||||||
# Provides: yunohost-firewall
|
|
||||||
# Required-Start: $local_fs $remote_fs $network $syslog
|
|
||||||
# Required-Stop: $local_fs $remote_fs $network $syslog
|
|
||||||
# Default-Start: 2 3 4 5
|
|
||||||
# Default-Stop: 0 1 6
|
|
||||||
# Short-Description: Start/stop YunoHost firewall
|
|
||||||
# Description: Start/stop YunoHost firewall
|
|
||||||
### END INIT INFO
|
|
||||||
|
|
||||||
DAEMON=/usr/bin/yunohost
|
|
||||||
DAEMON_OPTS=""
|
|
||||||
|
|
||||||
test -x $DAEMON || exit 0
|
|
||||||
|
|
||||||
. /lib/lsb/init-functions
|
|
||||||
|
|
||||||
logger "YunoHost firewall: Start script executed"
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
logger "YunoHost firewall: Starting"
|
|
||||||
log_daemon_msg "Starting firewall: YunoHost"
|
|
||||||
/usr/bin/yunohost firewall reload
|
|
||||||
log_end_msg $?
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
logger "YunoHost firewall: Stopping"
|
|
||||||
log_daemon_msg "Stopping firewall: YunoHost"
|
|
||||||
/usr/bin/yunohost firewall stop
|
|
||||||
log_end_msg $?
|
|
||||||
;;
|
|
||||||
restart|force-reload)
|
|
||||||
logger "YunoHost firewall: Restarting"
|
|
||||||
log_daemon_msg "Restarting firewall: YunoHost"
|
|
||||||
/usr/bin/yunohost firewall reload
|
|
||||||
log_end_msg $?
|
|
||||||
;;
|
|
||||||
status)
|
|
||||||
logger "YunoHost API: Running"
|
|
||||||
log_daemon_msg "YunoHost API: Running"
|
|
||||||
iptables -L | grep "Chain INPUT (policy DROP)" > /dev/null 2>&1
|
|
||||||
log_end_msg $?
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
logger "YunoHost API: Invalid usage"
|
|
||||||
echo "Usage: /etc/init.d/yunohost-api {start|stop|restart|force-reload|status}" >&2
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
exit 0
|
|
|
@ -7,7 +7,7 @@ routes:
|
||||||
default: '/packaging_apps_helpers'
|
default: '/packaging_apps_helpers'
|
||||||
---
|
---
|
||||||
|
|
||||||
Doc auto-generated by [this script](https://github.com/YunoHost/yunohost/blob/{{ current_commit }}/doc/generate_helper_doc.py) on {{data.date}} (Yunohost version {{data.version}})
|
Doc auto-generated by [this script](https://github.com/YunoHost/yunohost/blob/{{ current_commit }}/doc/generate_helper_doc.py) on {{data.date}} (YunoHost version {{data.version}})
|
||||||
|
|
||||||
{% for category, helpers in data.helpers %}
|
{% for category, helpers in data.helpers %}
|
||||||
### {{ category.upper() }}
|
### {{ category.upper() }}
|
||||||
|
|
|
@ -93,7 +93,7 @@ usage: yunohost {{ name }} {{ '{' }}{{ ",".join(value["actions"].keys()) }}{{ '}
|
||||||
{# each subcategory #}
|
{# each subcategory #}
|
||||||
{% for subcategory_name, subcategory in value.get("subcategories", {}).items() %}
|
{% for subcategory_name, subcategory in value.get("subcategories", {}).items() %}
|
||||||
{% for action, action_value in subcategory["actions"].items() %}
|
{% for action, action_value in subcategory["actions"].items() %}
|
||||||
.SS "yunohost {{ subcategory_name }} {{ name }} {{ action }} \
|
.SS "yunohost {{ name }} {{ subcategory_name }} {{ action }} \
|
||||||
{% for argument_name, argument_value in action_value.get("arguments", {}).items() %}\
|
{% for argument_name, argument_value in action_value.get("arguments", {}).items() %}\
|
||||||
{% set required=(not str(argument_name).startswith("-")) or argument_value.get("extra", {}).get("required", False) %}\
|
{% set required=(not str(argument_name).startswith("-")) or argument_value.get("extra", {}).get("required", False) %}\
|
||||||
{% if not required %}[{% endif %}\
|
{% if not required %}[{% endif %}\
|
||||||
|
|
|
@ -503,7 +503,7 @@
|
||||||
"group_already_exist_on_system_but_removing_it": "El grup {group} ja existeix en els grups del sistema, però YunoHost l'eliminarà...",
|
"group_already_exist_on_system_but_removing_it": "El grup {group} ja existeix en els grups del sistema, però YunoHost l'eliminarà...",
|
||||||
"certmanager_warning_subdomain_dns_record": "El subdomini «{subdomain:s}» no resol a la mateixa adreça IP que «{domain:s}». Algunes funcions no estaran disponibles fins que no s'hagi arreglat i s'hagi regenerat el certificat.",
|
"certmanager_warning_subdomain_dns_record": "El subdomini «{subdomain:s}» no resol a la mateixa adreça IP que «{domain:s}». Algunes funcions no estaran disponibles fins que no s'hagi arreglat i s'hagi regenerat el certificat.",
|
||||||
"domain_cannot_add_xmpp_upload": "No podeu afegir dominis començant per «xmpp-upload.». Aquest tipus de nom està reservat per a la funció de pujada de XMPP integrada a YunoHost.",
|
"domain_cannot_add_xmpp_upload": "No podeu afegir dominis començant per «xmpp-upload.». Aquest tipus de nom està reservat per a la funció de pujada de XMPP integrada a YunoHost.",
|
||||||
"diagnosis_display_tip": "Per veure els problemes que s'han trobat, podeu anar a la secció de Diagnòstic a la pàgina web d'administració, o utilitzar « yunohost diagnostic show --issues » a la línia de comandes.",
|
"diagnosis_display_tip": "Per veure els problemes que s'han trobat, podeu anar a la secció de Diagnòstic a la pàgina web d'administració, o utilitzar « yunohost diagnostic show --issues --human-readable» a la línia de comandes.",
|
||||||
"diagnosis_mail_outgoing_port_25_blocked_relay_vpn": "Alguns proveïdors no permeten desbloquejar el port de sortida 25 perquè no els hi importa la Neutralitat de la Xarxa.<br> - Alguns d'ells ofereixen l'alternativa d'<a href='https://yunohost.org/#/smtp_relay'>utilitzar un relay de servidor de correu electrònic</a> tot i que implica que el relay serà capaç d'espiar el tràfic de correus electrònics.<br>- Una alternativa respectuosa amb la privacitat és utilitzar una VPN *amb una IP pública dedicada* per sortejar aquest tipus de limitació. Vegeu <a href='https://yunohost.org/#/vpn_advantage'>https://yunohost.org/#/vpn_advantage</a><br>- També podeu considerar canviar-vos a <a href='https://yunohost.org/#/isp'>un proveïdor més respectuós de la neutralitat de la xarxa</a>",
|
"diagnosis_mail_outgoing_port_25_blocked_relay_vpn": "Alguns proveïdors no permeten desbloquejar el port de sortida 25 perquè no els hi importa la Neutralitat de la Xarxa.<br> - Alguns d'ells ofereixen l'alternativa d'<a href='https://yunohost.org/#/smtp_relay'>utilitzar un relay de servidor de correu electrònic</a> tot i que implica que el relay serà capaç d'espiar el tràfic de correus electrònics.<br>- Una alternativa respectuosa amb la privacitat és utilitzar una VPN *amb una IP pública dedicada* per sortejar aquest tipus de limitació. Vegeu <a href='https://yunohost.org/#/vpn_advantage'>https://yunohost.org/#/vpn_advantage</a><br>- També podeu considerar canviar-vos a <a href='https://yunohost.org/#/isp'>un proveïdor més respectuós de la neutralitat de la xarxa</a>",
|
||||||
"diagnosis_ip_global": "IP global: <code>{global}</code>",
|
"diagnosis_ip_global": "IP global: <code>{global}</code>",
|
||||||
"diagnosis_ip_local": "IP local: <code>{local}</code>",
|
"diagnosis_ip_local": "IP local: <code>{local}</code>",
|
||||||
|
@ -621,5 +621,9 @@
|
||||||
"diagnosis_basesystem_hardware_model": "El model del servidor és {model}",
|
"diagnosis_basesystem_hardware_model": "El model del servidor és {model}",
|
||||||
"postinstall_low_rootfsspace": "El sistema de fitxers arrel té un total de menys de 10 GB d'espai, el que es preocupant! És molt probable que us quedeu sense espai ràpidament! Es recomana tenir un mínim de 16 GB per al sistema de fitxers arrel. Si voleu instal·lar YunoHost tot i aquest avís, torneu a executar la postinstal·lació amb --force-diskspace",
|
"postinstall_low_rootfsspace": "El sistema de fitxers arrel té un total de menys de 10 GB d'espai, el que es preocupant! És molt probable que us quedeu sense espai ràpidament! Es recomana tenir un mínim de 16 GB per al sistema de fitxers arrel. Si voleu instal·lar YunoHost tot i aquest avís, torneu a executar la postinstal·lació amb --force-diskspace",
|
||||||
"diagnosis_rootfstotalspace_critical": "El sistema de fitxers arrel només té {space} en total i és preocupant! És molt probable que us quedeu sense espai ràpidament! Es recomanar tenir un mínim de 16 GB per al sistema de fitxers arrel.",
|
"diagnosis_rootfstotalspace_critical": "El sistema de fitxers arrel només té {space} en total i és preocupant! És molt probable que us quedeu sense espai ràpidament! Es recomanar tenir un mínim de 16 GB per al sistema de fitxers arrel.",
|
||||||
"diagnosis_rootfstotalspace_warning": "El sistema de fitxers arrel només té {space} en total. Això no hauria de causar cap problema, però haureu de parar atenció ja que us podrieu quedar sense espai ràpidament… Es recomanar tenir un mínim de 16 GB per al sistema de fitxers arrel."
|
"diagnosis_rootfstotalspace_warning": "El sistema de fitxers arrel només té {space} en total. Això no hauria de causar cap problema, però haureu de parar atenció ja que us podrieu quedar sense espai ràpidament… Es recomanar tenir un mínim de 16 GB per al sistema de fitxers arrel.",
|
||||||
}
|
"diagnosis_sshd_config_inconsistent": "Sembla que el port SSH s'ha modificat manualment a /etc/ssh/sshd_config. Des de YunoHost 4.2, hi ha un nou paràmetre global «security.ssh.port» per evitar modificar manualment la configuració.",
|
||||||
|
"diagnosis_sshd_config_insecure": "Sembla que la configuració SSH s'ha modificat manualment, i no es segura ha que no conté la directiva «AllowGroups» o «AllowUsers» per limitar l'accés a usuaris autoritzats.",
|
||||||
|
"backup_create_size_estimation": "L'arxiu tindrà aproximadament {size} de dades.",
|
||||||
|
"app_restore_script_failed": "S'ha produït un error en el script de restauració de l'aplicació"
|
||||||
|
}
|
||||||
|
|
|
@ -3,11 +3,66 @@
|
||||||
"app_already_installed": "{app:s} je již nainstalován/a",
|
"app_already_installed": "{app:s} je již nainstalován/a",
|
||||||
"already_up_to_date": "Neprovedena žádná akce. Vše je již aktuální.",
|
"already_up_to_date": "Neprovedena žádná akce. Vše je již aktuální.",
|
||||||
"admin_password_too_long": "Zvolte prosím heslo kratší než 127 znaků",
|
"admin_password_too_long": "Zvolte prosím heslo kratší než 127 znaků",
|
||||||
"admin_password_changed": "Heslo správce bylo změněno",
|
"admin_password_changed": "Administrační heslo bylo změněno",
|
||||||
"admin_password_change_failed": "Nebylo možné změnit heslo",
|
"admin_password_change_failed": "Nebylo možné změnit heslo",
|
||||||
"admin_password": "Heslo správce",
|
"admin_password": "Administrační heslo",
|
||||||
"additional_urls_already_removed": "Dotatečný odkaz '{url:s}' byl již odebrán u oprávnění '{permission:s}'",
|
"additional_urls_already_removed": "Další URL '{url:s}' již bylo odebráno u oprávnění '{permission:s}'",
|
||||||
"additional_urls_already_added": "Dotatečný odkaz '{url:s}' byl již přidán v dodatečných odkazech pro oprávnění '{permission:s}'",
|
"additional_urls_already_added": "Další URL '{url:s}' již bylo přidáno pro oprávnění '{permission:s}'",
|
||||||
"action_invalid": "Nesprávné akce '{action:s}'",
|
"action_invalid": "Nesprávné akce '{action:s}'",
|
||||||
"aborting": "Přerušení."
|
"aborting": "Zrušeno.",
|
||||||
}
|
"app_change_url_identical_domains": "Stará a nová doména/url_cesta jsou totožné ('{domain:s}{path:s}'), nebudou provedeny žádné změny.",
|
||||||
|
"app_change_url_failed_nginx_reload": "Nepodařilo se znovunačís NGINX. Následuje výpis příkazu 'nginx -t':\n{nginx_errors:s}",
|
||||||
|
"app_argument_invalid": "Vyberte správnou hodnotu pro argument '{name:s}': {error:s}",
|
||||||
|
"app_argument_choice_invalid": "Vyberte jednu z možností '{choices:s}' pro argument'{name:s}'",
|
||||||
|
"app_already_up_to_date": "{app:s} aplikace je/jsou aktuální",
|
||||||
|
"app_already_installed_cant_change_url": "Tato aplikace je již nainstalována. URL nemůže být touto akcí změněna. Zkontrolujte `app changeurl` pokud je dostupné.",
|
||||||
|
"app_action_cannot_be_ran_because_required_services_down": "Pro běh této akce by měli být spuštěné následující služby: {services}. Zkuste je zrestartovat, případně zjistěte, proč neběží.",
|
||||||
|
"app_action_broke_system": "Zdá se, že tato akce rozbila následující důležité služby: {services}",
|
||||||
|
"app_install_script_failed": "Vyskytla se chyba uvnitř instalačního skriptu aplikace",
|
||||||
|
"app_install_failed": "Nelze instalovat {app}: {error}",
|
||||||
|
"app_install_files_invalid": "Tyto soubory nemohou být instalovány",
|
||||||
|
"app_id_invalid": "Neplatné ID aplikace",
|
||||||
|
"app_full_domain_unavailable": "Tato aplikace musí být nainstalována na své vlastní doméně, jiné aplikace tuto doménu již využívají. Můžete použít poddoménu určenou pouze pro tuto aplikaci.",
|
||||||
|
"app_extraction_failed": "Nelze rozbalit instalační soubory",
|
||||||
|
"app_change_url_success": "{app:s} URL je nyní {domain:s}{path:s}",
|
||||||
|
"app_change_url_no_script": "Aplikace '{app_name:s}' nyní nepodporuje URL modifikace. Zkuste ji aktualizovat.",
|
||||||
|
"app_argument_required": "Hodnota'{name:s}' je vyžadována",
|
||||||
|
"app_argument_password_no_default": "Chyba při zpracování obsahu hesla '{name}': z bezpečnostních důvodů nemůže obsahovat výchozí hodnotu",
|
||||||
|
"password_too_simple_4": "Heslo musí být aspoň 12 znaků dlouhé a obsahovat čísla, velká a malá písmena a speciální znaky",
|
||||||
|
"password_too_simple_3": "Heslo musí být aspoň 8 znaků dlouhé a obsahovat čísla, velká a malá písmena a speciální znaky",
|
||||||
|
"password_too_simple_2": "Heslo musí být aspoň 8 znaků dlouhé a obsahovat číslici, velká a malá písmena",
|
||||||
|
"password_listed": "Toto heslo je jedním z nejpoužívanějších na světě. Zvolte si prosím něco jedinečnějšího.",
|
||||||
|
"operation_interrupted": "Operace byla manuálně přerušena?",
|
||||||
|
"group_user_already_in_group": "Uživatel {user} je již ve skupině {group}",
|
||||||
|
"group_update_failed": "Nelze upravit skupinu '{group}': {error}",
|
||||||
|
"group_updated": "Skupina '{group}' upravena",
|
||||||
|
"group_unknown": "Neznámá skupina '{group:s}'",
|
||||||
|
"group_deletion_failed": "Nelze smazat skupinu '{group}': {error}",
|
||||||
|
"group_deleted": "Skupina '{group}' smazána",
|
||||||
|
"group_cannot_be_deleted": "Skupina {group} nemůže být smazána.",
|
||||||
|
"group_cannot_edit_primary_group": "Skupina '{group}' nemůže být upravena. Jde o primární skupinu obsahující pouze jednoho specifického uživatele.",
|
||||||
|
"group_cannot_edit_all_users": "Skupina 'all_users' nemůže být upravena. Jde o speciální skupinu obsahující všechny registrované uživatele na YunoHost",
|
||||||
|
"group_cannot_edit_visitors": "Skupina 'visitors' nemůže být upravena. Jde o speciální skupinu představující anonymní (neregistrované na YunoHost) návštěvníky",
|
||||||
|
"group_creation_failed": "Nelze založit skupinu '{group}': {error}",
|
||||||
|
"group_created": "Skupina '{group}' vytvořena",
|
||||||
|
"group_already_exist_on_system_but_removing_it": "Skupina {group} se již nalézá v systémových skupinách, ale YunoHost ji odstraní...",
|
||||||
|
"group_already_exist_on_system": "Skupina {group} se již nalézá v systémových skupinách",
|
||||||
|
"group_already_exist": "Skupina {group} již existuje",
|
||||||
|
"good_practices_about_user_password": "Nyní zvolte nové heslo uživatele. Heslo by mělo být minimálně 8 znaků dlouhé, avšak je dobrou taktikou jej mít delší (např. použít více slov) a použít kombinaci znaků (velké, malé, čísla a speciální znaky).",
|
||||||
|
"good_practices_about_admin_password": "Nyní zvolte nové administrační heslo. Heslo by mělo být minimálně 8 znaků dlouhé, avšak je dobrou taktikou jej mít delší (např. použít více slov) a použít kombinaci znaků (velké, malé, čísla a speciílní znaky).",
|
||||||
|
"global_settings_unknown_type": "Neočekávaná situace, nastavení {setting:s} deklaruje typ {unknown_type:s} ale toto není systémem podporováno.",
|
||||||
|
"global_settings_setting_backup_compress_tar_archives": "Komprimovat nové zálohy (.tar.gz) namísto nekomprimovaných (.tar). Poznámka: povolení této volby znamená objemově menší soubory záloh, avšak zálohování bude trvat déle a bude více zatěžovat CPU.",
|
||||||
|
"global_settings_setting_smtp_relay_password": "SMTP relay heslo uživatele/hostitele",
|
||||||
|
"global_settings_setting_smtp_relay_user": "SMTP relay uživatelské jméno/účet",
|
||||||
|
"global_settings_setting_smtp_relay_port": "SMTP relay port",
|
||||||
|
"global_settings_setting_smtp_relay_host": "Použít SMTP relay hostitele pro odesílání emailů místo této Yunohost instance. Užitečné v různých situacích: port 25 je blokován vaším ISP nebo VPS poskytovatelem, IP adresa je na blacklistu (např. DUHL), nemůžete nastavit reverzní DNS záznam nebo tento server není přímo připojen do internetu a vy chcete použít jiný server k odesílání emailů.",
|
||||||
|
"global_settings_setting_smtp_allow_ipv6": "Povolit použití IPv6 pro příjem a odesílání emailů",
|
||||||
|
"global_settings_setting_ssowat_panel_overlay_enabled": "Povolit SSOwat překryvný panel",
|
||||||
|
"global_settings_setting_service_ssh_allow_deprecated_dsa_hostkey": "Povolit použití (zastaralého) DSA klíče hostitele pro konfiguraci SSH služby",
|
||||||
|
"global_settings_unknown_setting_from_settings_file": "Neznámý klíč v nastavení: '{setting_key:s}', zrušte jej a uložte v /etc/yunohost/settings-unknown.json",
|
||||||
|
"global_settings_setting_security_ssh_port": "SSH port",
|
||||||
|
"global_settings_setting_security_postfix_compatibility": "Kompromis mezi kompatibilitou a bezpečností Postfix serveru. Ovlivní šifry a další související bezpečnostní nastavení",
|
||||||
|
"global_settings_setting_security_ssh_compatibility": "Kompromis mezi kompatibilitou a bezpečností SSH serveru. Ovlivní šifry a další související bezpečnostní nastavení",
|
||||||
|
"global_settings_setting_security_password_user_strength": "Síla uživatelského hesla",
|
||||||
|
"global_settings_setting_security_password_admin_strength": "Síla administračního hesla"
|
||||||
|
}
|
||||||
|
|
|
@ -69,25 +69,25 @@
|
||||||
"installation_failed": "Etwas ist mit der Installation falsch gelaufen",
|
"installation_failed": "Etwas ist mit der Installation falsch gelaufen",
|
||||||
"ip6tables_unavailable": "ip6tables kann nicht verwendet werden. Du befindest dich entweder in einem Container oder es wird nicht vom Kernel unterstützt",
|
"ip6tables_unavailable": "ip6tables kann nicht verwendet werden. Du befindest dich entweder in einem Container oder es wird nicht vom Kernel unterstützt",
|
||||||
"iptables_unavailable": "iptables kann nicht verwendet werden. Du befindest dich entweder in einem Container oder es wird nicht vom Kernel unterstützt",
|
"iptables_unavailable": "iptables kann nicht verwendet werden. Du befindest dich entweder in einem Container oder es wird nicht vom Kernel unterstützt",
|
||||||
"ldap_initialized": "LDAP wurde initialisiert",
|
"ldap_initialized": "LDAP initialisiert",
|
||||||
"mail_alias_remove_failed": "E-Mail Alias '{mail:s}' konnte nicht entfernt werden",
|
"mail_alias_remove_failed": "Konnte E-Mail-Alias '{mail:s}' nicht entfernen",
|
||||||
"mail_domain_unknown": "Die Domäne '{domain:s}' dieser E-Mail-Adresse ist ungültig. Wähle bitte eine Domäne, welche durch diesen Server verwaltet wird.",
|
"mail_domain_unknown": "Die Domäne '{domain:s}' dieser E-Mail-Adresse ist ungültig. Wähle bitte eine Domäne, welche durch diesen Server verwaltet wird.",
|
||||||
"mail_forward_remove_failed": "Die Weiterleitungs-E-Mail '{mail:s}' konnte nicht gelöscht werden",
|
"mail_forward_remove_failed": "Die Weiterleitungs-E-Mail '{mail:s}' konnte nicht gelöscht werden",
|
||||||
"main_domain_change_failed": "Die Hauptdomain konnte nicht geändert werden",
|
"main_domain_change_failed": "Die Hauptdomain konnte nicht geändert werden",
|
||||||
"main_domain_changed": "Die Hauptdomain wurde geändert",
|
"main_domain_changed": "Die Hauptdomain wurde geändert",
|
||||||
"packages_upgrade_failed": "Es konnten nicht alle Pakete aktualisiert werden",
|
"packages_upgrade_failed": "Konnte nicht alle Pakete aktualisieren",
|
||||||
"pattern_backup_archive_name": "Ein gültiger Dateiname kann nur aus maximal 30 alphanumerischen sowie -_. Zeichen bestehen",
|
"pattern_backup_archive_name": "Muss ein gültiger Dateiname mit maximal 30 alphanumerischen sowie -_. Zeichen sein",
|
||||||
"pattern_domain": "Muss ein gültiger Domainname sein (z.B. meine-domain.org)",
|
"pattern_domain": "Muss ein gültiger Domainname sein (z.B. meine-domain.org)",
|
||||||
"pattern_email": "Muss eine gültige E-Mail Adresse sein (z.B. someone@domain.org)",
|
"pattern_email": "Muss eine gültige E-Mail-Adresse ohne '+' Symbol sein (z.B. someone@example.com)",
|
||||||
"pattern_firstname": "Muss ein gültiger Vorname sein",
|
"pattern_firstname": "Muss ein gültiger Vorname sein",
|
||||||
"pattern_lastname": "Muss ein gültiger Nachname sein",
|
"pattern_lastname": "Muss ein gültiger Nachname sein",
|
||||||
"pattern_mailbox_quota": "Muss eine Größe inkl. b/k/M/G/T Suffix, oder 0 zum deaktivieren sein",
|
"pattern_mailbox_quota": "Muss eine Größe mit b/k/M/G/T Suffix, oder 0 zum deaktivieren sein",
|
||||||
"pattern_password": "Muss mindestens drei Zeichen lang sein",
|
"pattern_password": "Muss mindestens drei Zeichen lang sein",
|
||||||
"pattern_port_or_range": "Muss ein valider Port (z.B. 0-65535) oder ein Bereich (z.B. 100:200) sein",
|
"pattern_port_or_range": "Muss ein valider Port (z.B. 0-65535) oder ein Bereich (z.B. 100:200) sein",
|
||||||
"pattern_username": "Darf nur aus klein geschriebenen alphanumerischen Zeichen und Unterstrichen bestehen",
|
"pattern_username": "Darf nur aus klein geschriebenen alphanumerischen Zeichen und Unterstrichen bestehen",
|
||||||
"port_already_closed": "Der Port {port:d} wurde bereits für {ip_version:s} Verbindungen geschlossen",
|
"port_already_closed": "Der Port {port:d} wurde bereits für {ip_version:s} Verbindungen geschlossen",
|
||||||
"port_already_opened": "Der Port {port:d} wird bereits von {ip_version:s} benutzt",
|
"port_already_opened": "Der Port {port:d} wird bereits von {ip_version:s} benutzt",
|
||||||
"restore_already_installed_app": "Es ist bereits eine App mit der ID '{app:s}' installiet",
|
"restore_already_installed_app": "Eine Applikation mit der ID '{app:s}' ist bereits installiert",
|
||||||
"restore_cleaning_failed": "Das temporäre Dateiverzeichnis für Systemrestaurierung konnte nicht gelöscht werden",
|
"restore_cleaning_failed": "Das temporäre Dateiverzeichnis für Systemrestaurierung konnte nicht gelöscht werden",
|
||||||
"restore_complete": "Vollständig wiederhergestellt",
|
"restore_complete": "Vollständig wiederhergestellt",
|
||||||
"restore_confirm_yunohost_installed": "Möchtest du die Wiederherstellung wirklich starten? [{answers:s}]",
|
"restore_confirm_yunohost_installed": "Möchtest du die Wiederherstellung wirklich starten? [{answers:s}]",
|
||||||
|
@ -101,11 +101,11 @@
|
||||||
"service_already_started": "Der Dienst '{service:s}' läuft bereits",
|
"service_already_started": "Der Dienst '{service:s}' läuft bereits",
|
||||||
"service_already_stopped": "Der Dienst '{service:s}' wurde bereits gestoppt",
|
"service_already_stopped": "Der Dienst '{service:s}' wurde bereits gestoppt",
|
||||||
"service_cmd_exec_failed": "Der Befehl '{command:s}' konnte nicht ausgeführt werden",
|
"service_cmd_exec_failed": "Der Befehl '{command:s}' konnte nicht ausgeführt werden",
|
||||||
"service_disable_failed": "Der Dienst '{service:s}' konnte nicht deaktiviert werden",
|
"service_disable_failed": "Der Start des Dienstes '{service:s}' beim Hochfahren konnte nicht verhindert werden.\n\nKürzlich erstellte Logs des Dienstes: {logs:s}",
|
||||||
"service_disabled": "Der Dienst '{service:s}' wurde erfolgreich deaktiviert",
|
"service_disabled": "Der Dienst '{service:s}' wird beim Hochfahren des Systems nicht mehr gestartet werden.",
|
||||||
"service_enable_failed": "Der Dienst '{service:s}' konnte beim Hochfahren nicht gestartet werden.\n\nKürzlich erstelle Logs des Dienstes: {logs:s}",
|
"service_enable_failed": "Der Dienst '{service:s}' konnte beim Hochfahren nicht gestartet werden.\n\nKürzlich erstellte Logs des Dienstes: {logs:s}",
|
||||||
"service_enabled": "Der Dienst '{service:s}' wird nun beim Hochfahren des Systems automatisch gestartet.",
|
"service_enabled": "Der Dienst '{service:s}' wird nun beim Hochfahren des Systems automatisch gestartet.",
|
||||||
"service_remove_failed": "Der Dienst '{service:s}' konnte nicht entfernt werden",
|
"service_remove_failed": "Konnte den Dienst '{service:s}' nicht entfernen",
|
||||||
"service_removed": "Der Dienst '{service:s}' wurde erfolgreich entfernt",
|
"service_removed": "Der Dienst '{service:s}' wurde erfolgreich entfernt",
|
||||||
"service_start_failed": "Der Dienst '{service:s}' konnte nicht gestartet werden\n\nKürzlich erstellte Logs des Dienstes: {logs:s}",
|
"service_start_failed": "Der Dienst '{service:s}' konnte nicht gestartet werden\n\nKürzlich erstellte Logs des Dienstes: {logs:s}",
|
||||||
"service_started": "Der Dienst '{service:s}' wurde erfolgreich gestartet",
|
"service_started": "Der Dienst '{service:s}' wurde erfolgreich gestartet",
|
||||||
|
@ -140,7 +140,7 @@
|
||||||
"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",
|
||||||
"not_enough_disk_space": "Zu wenig freier Speicherplatz unter '{path:s}' verfügbar",
|
"not_enough_disk_space": "Nicht genügend Speicherplatz auf '{path:s}' frei",
|
||||||
"backup_creation_failed": "Konnte Backup-Archiv nicht erstellen",
|
"backup_creation_failed": "Konnte Backup-Archiv nicht erstellen",
|
||||||
"pattern_positive_number": "Muss eine positive Zahl sein",
|
"pattern_positive_number": "Muss eine positive Zahl sein",
|
||||||
"app_not_correctly_installed": "{app:s} scheint nicht korrekt installiert zu sein",
|
"app_not_correctly_installed": "{app:s} scheint nicht korrekt installiert zu sein",
|
||||||
|
@ -152,7 +152,7 @@
|
||||||
"dyndns_key_not_found": "DNS-Schlüssel für die Domain wurde nicht gefunden",
|
"dyndns_key_not_found": "DNS-Schlüssel für die Domain wurde nicht gefunden",
|
||||||
"dyndns_no_domain_registered": "Keine Domain mit DynDNS registriert",
|
"dyndns_no_domain_registered": "Keine Domain mit DynDNS registriert",
|
||||||
"ldap_init_failed_to_create_admin": "Die LDAP-Initialisierung konnte keinen admin-Benutzer erstellen",
|
"ldap_init_failed_to_create_admin": "Die LDAP-Initialisierung konnte keinen admin-Benutzer erstellen",
|
||||||
"mailbox_used_space_dovecot_down": "Der Dovecot Mailbox Dienst muss gestartet sein, wenn du den von der Mailbox belegten Speicher angezeigen lassen willst",
|
"mailbox_used_space_dovecot_down": "Der Dovecot-Mailbox-Dienst muss aktiv sein, wenn Sie den von der Mailbox belegten Speicher abrufen wollen",
|
||||||
"certmanager_attempt_to_replace_valid_cert": "Du versuchst gerade eine richtiges und gültiges Zertifikat der Domain {domain:s} zu überschreiben! (Benutze --force , um diese Nachricht zu umgehen)",
|
"certmanager_attempt_to_replace_valid_cert": "Du versuchst gerade eine richtiges und gültiges Zertifikat der Domain {domain:s} zu überschreiben! (Benutze --force , um diese Nachricht zu umgehen)",
|
||||||
"certmanager_domain_cert_not_selfsigned": "Das Zertifikat der Domain {domain:s} ist kein selbstsigniertes Zertifikat. Sind Sie sich sicher, dass Sie es ersetzen wollen? (Benutzen Sie dafür '--force')",
|
"certmanager_domain_cert_not_selfsigned": "Das Zertifikat der Domain {domain:s} ist kein selbstsigniertes Zertifikat. Sind Sie sich sicher, dass Sie es ersetzen wollen? (Benutzen Sie dafür '--force')",
|
||||||
"certmanager_certificate_fetching_or_enabling_failed": "Die Aktivierung des neuen Zertifikats für die {domain:s} ist fehlgeschlagen...",
|
"certmanager_certificate_fetching_or_enabling_failed": "Die Aktivierung des neuen Zertifikats für die {domain:s} ist fehlgeschlagen...",
|
||||||
|
@ -162,7 +162,7 @@
|
||||||
"certmanager_domain_dns_ip_differs_from_public_ip": "Der DNS-A-Eintrag der Domain {domain:s} unterscheidet sich von dieser Server-IP. Für weitere Informationen überprüfen Sie bitte die 'DNS records' (basic) Kategorie in der Diagnose. Wenn Sie gerade Ihren A-Eintrag verändert haben, warten Sie bitte etwas, damit die Änderungen wirksam werden (Sie können die DNS-Propagation mittels Website überprüfen) (Wenn Sie wissen was Sie tun, können Sie --no-checks benutzen, um diese Überprüfung zu überspringen.)",
|
"certmanager_domain_dns_ip_differs_from_public_ip": "Der DNS-A-Eintrag der Domain {domain:s} unterscheidet sich von dieser Server-IP. Für weitere Informationen überprüfen Sie bitte die 'DNS records' (basic) Kategorie in der Diagnose. Wenn Sie gerade Ihren A-Eintrag verändert haben, warten Sie bitte etwas, damit die Änderungen wirksam werden (Sie können die DNS-Propagation mittels Website überprüfen) (Wenn Sie wissen was Sie tun, können Sie --no-checks benutzen, um diese Überprüfung zu überspringen.)",
|
||||||
"certmanager_cannot_read_cert": "Es ist ein Fehler aufgetreten, als es versucht wurde das aktuelle Zertifikat für die Domain {domain:s} zu öffnen (Datei: {file:s}), Grund: {reason:s}",
|
"certmanager_cannot_read_cert": "Es ist ein Fehler aufgetreten, als es versucht wurde das aktuelle Zertifikat für die Domain {domain:s} zu öffnen (Datei: {file:s}), Grund: {reason:s}",
|
||||||
"certmanager_cert_install_success_selfsigned": "Ein selbstsigniertes Zertifikat für die Domain {domain:s} wurde erfolgreich installiert",
|
"certmanager_cert_install_success_selfsigned": "Ein selbstsigniertes Zertifikat für die Domain {domain:s} wurde erfolgreich installiert",
|
||||||
"certmanager_cert_install_success": "Für die Domain {domain:s} wurde erfolgreich ein Let's Encrypt Zertifikat installiert!",
|
"certmanager_cert_install_success": "Let's-Encrypt-Zertifikat für die Domäne {domain:s} ist jetzt installiert",
|
||||||
"certmanager_cert_renew_success": "Das Let's Encrypt Zertifikat für die Domain {domain:s} wurde erfolgreich erneuert",
|
"certmanager_cert_renew_success": "Das Let's Encrypt Zertifikat für die Domain {domain:s} wurde erfolgreich erneuert",
|
||||||
"certmanager_hit_rate_limit": "Es wurden innerhalb kurzer Zeit zu viele Zertifikate für dieselbe Domain {domain:s} ausgestellt. Bitte versuchen Sie es später nochmal. Besuchen Sie https://letsencrypt.org/docs/rate-limits/ für mehr Informationen",
|
"certmanager_hit_rate_limit": "Es wurden innerhalb kurzer Zeit zu viele Zertifikate für dieselbe Domain {domain:s} ausgestellt. Bitte versuchen Sie es später nochmal. Besuchen Sie https://letsencrypt.org/docs/rate-limits/ für mehr Informationen",
|
||||||
"certmanager_cert_signing_failed": "Das neue Zertifikat konnte nicht signiert werden",
|
"certmanager_cert_signing_failed": "Das neue Zertifikat konnte nicht signiert werden",
|
||||||
|
@ -194,7 +194,7 @@
|
||||||
"dyndns_could_not_check_provide": "Konnte nicht überprüft, ob {provider:s} die Domain(s) {domain:s} bereitstellen kann.",
|
"dyndns_could_not_check_provide": "Konnte nicht überprüft, ob {provider:s} die Domain(s) {domain:s} bereitstellen kann.",
|
||||||
"domain_dns_conf_is_just_a_recommendation": "Dieser Befehl zeigt Ihnen die * empfohlene * Konfiguration. 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.",
|
"domain_dns_conf_is_just_a_recommendation": "Dieser Befehl zeigt Ihnen die * empfohlene * Konfiguration. 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",
|
"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 Ihres Systems beeinträchtigen. Sie sollten Sie wahrscheinlich NICHT installieren, es sei denn, Sie wiẞen, was Sie tun. Sind Sie bereit, dieses Risiko einzugehen? [{answers:s}]",
|
"confirm_app_install_thirdparty": "WARNUNG! Diese App ist nicht Teil von YunoHosts App-Katalog. Das Installieren von Drittanbieteranwendungen könnte die Sicherheit und Integrität des System beeinträchtigen. Sie sollten wahrscheinlich NICHT fortfahren, es sei denn, Sie wissen, was Sie tun. Es wird KEIN SUPPORT zur Verfügung stehen, wenn die App nicht funktioniert oder das System zerstört... Wenn Sie das Risiko trotzdem eingehen möchten, tippen Sie '{answers:s}'",
|
||||||
"confirm_app_install_danger": "WARNUNG! Diese Anwendung ist noch experimentell (wenn nicht ausdrücklich \"not working\"/\"nicht funktionsfähig\")! Sie sollten sie wahrscheinlich NICHT installieren, es sei denn, Sie wißen, was Sie tun. Es wird keine Unterstützung geleistet, falls diese Anwendung nicht funktioniert oder Ihr System zerstört... Falls Sie bereit bist, dieses Risiko einzugehen, tippe '{answers:s}'",
|
"confirm_app_install_danger": "WARNUNG! Diese Anwendung ist noch experimentell (wenn nicht ausdrücklich \"not working\"/\"nicht funktionsfähig\")! Sie sollten sie wahrscheinlich NICHT installieren, es sei denn, Sie wißen, was Sie tun. Es wird keine Unterstützung geleistet, falls diese Anwendung nicht funktioniert oder Ihr System zerstört... Falls Sie bereit bist, dieses Risiko einzugehen, tippe '{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}] ",
|
"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:s} hat kein Wiederherstellungsskript. Das Backup dieser App kann nicht automatisch wiederhergestellt werden.",
|
"backup_with_no_restore_script_for_app": "{app:s} hat kein Wiederherstellungsskript. Das Backup dieser App kann nicht automatisch wiederhergestellt werden.",
|
||||||
|
@ -313,7 +313,7 @@
|
||||||
"backup_archive_corrupted": "Das Backup-Archiv '{archive}' scheint beschädigt: {error}",
|
"backup_archive_corrupted": "Das Backup-Archiv '{archive}' scheint beschädigt: {error}",
|
||||||
"backup_archive_cant_retrieve_info_json": "Die Informationen für das Archiv '{archive}' konnten nicht geladen werden... Die Datei info.json wurde nicht gefunden (oder ist kein gültiges json).",
|
"backup_archive_cant_retrieve_info_json": "Die Informationen für das Archiv '{archive}' konnten nicht geladen werden... Die Datei info.json wurde nicht gefunden (oder ist kein gültiges json).",
|
||||||
"app_packaging_format_not_supported": "Diese App kann nicht installiert werden da das Paketformat nicht von der YunoHost-Version unterstützt wird. Denken Sie darüber nach das System zu aktualisieren.",
|
"app_packaging_format_not_supported": "Diese App kann nicht installiert werden da das Paketformat nicht von der YunoHost-Version unterstützt wird. Denken Sie darüber nach das System zu aktualisieren.",
|
||||||
"certmanager_domain_not_diagnosed_yet": "Für {domain} gibt es noch keine Diagnose-Resultate. Bitte wiederholen Sie die Diagnose für die Kategorien 'DNS records' und 'Web' im Diagnose-Bereich um zu überprüfen ob die Domain für Let's Encrypt bereit ist. (Oder wenn Sie wissen was Sie tun, verwenden Sie '--no-checks' um diese Überprüfungen abzuschalten.",
|
"certmanager_domain_not_diagnosed_yet": "Für die Domäne {domain} gibt es noch keine Diagnoseresultate. Bitte wiederholen Sie die Diagnose für die Kategorien 'DNS-Einträge' und 'Web' im Diagnose-Bereich um zu überprüfen ob die Domäne für Let's Encrypt bereit ist. (Oder wenn Sie wissen was Sie tun, verwenden Sie '--no-checks' um diese Überprüfungen abzuschalten.",
|
||||||
"migration_0015_patching_sources_list": "sources.lists wird repariert...",
|
"migration_0015_patching_sources_list": "sources.lists wird repariert...",
|
||||||
"migration_0015_start": "Start der Migration auf Buster",
|
"migration_0015_start": "Start der Migration auf Buster",
|
||||||
"migration_description_0015_migrate_to_buster": "Auf Debian Buster und YunoHost 4.x upgraden",
|
"migration_description_0015_migrate_to_buster": "Auf Debian Buster und YunoHost 4.x upgraden",
|
||||||
|
@ -585,5 +585,50 @@
|
||||||
"root_password_desynchronized": "Das Admin-Passwort wurde verändert, aber das root Passwort ist immer noch das alte.",
|
"root_password_desynchronized": "Das Admin-Passwort wurde verändert, aber das root Passwort ist immer noch das alte.",
|
||||||
"regenconf_need_to_explicitly_specify_ssh": "Die SSH-Konfiguration wurde manuell modifiziert, aber Sie müssen explizit die Kategorie 'SSH' mit --force spezifizieren, um die Änderungen tatsächlich anzuwenden.",
|
"regenconf_need_to_explicitly_specify_ssh": "Die SSH-Konfiguration wurde manuell modifiziert, aber Sie müssen explizit die Kategorie 'SSH' mit --force spezifizieren, um die Änderungen tatsächlich anzuwenden.",
|
||||||
"migration_update_LDAP_schema": "Aktualisiere das LDAP-Schema...",
|
"migration_update_LDAP_schema": "Aktualisiere das LDAP-Schema...",
|
||||||
"log_backup_create": "Erstelle ein Backup-Archiv"
|
"log_backup_create": "Erstelle ein Backup-Archiv",
|
||||||
}
|
"diagnosis_sshd_config_inconsistent": "Es sieht aus, als ob der SSH-Port manuell geändert wurde in /etc/ssh/ssh_config. Seit YunoHost 4.2 ist eine neue globale Einstellung 'security.ssh.port' verfügbar um zu verhindern, dass die Konfiguration manuell verändert wird.",
|
||||||
|
"diagnosis_sshd_config_insecure": "Die SSH-Konfiguration wurde scheinbar manuell abgeändert, und ist unsicher, weil sie keine 'AllowGroups'- oder 'AllowUsers' -Direktiven für die Begrenzung des Zugriffs durch autorisierte Benutzer enthält.",
|
||||||
|
"backup_create_size_estimation": "Das Archiv wird etwa {size} an Daten enthalten.",
|
||||||
|
"app_restore_script_failed": "Im Wiederherstellungsskript der Anwendung ist ein Fehler aufgetreten",
|
||||||
|
"app_restore_failed": "Konnte {app:s} nicht wiederherstellen: {error:s}",
|
||||||
|
"migration_ldap_rollback_success": "System-Rollback erfolgreich.",
|
||||||
|
"migration_ldap_migration_failed_trying_to_rollback": "Migrieren war nicht möglich... Versuch, ein Rollback des Systems durchzuführen.",
|
||||||
|
"migration_ldap_backup_before_migration": "Vor der eigentlichen Migration ein Backup der LDAP-Datenbank und der Applikations-Einstellungen erstellen.",
|
||||||
|
"migration_description_0020_ssh_sftp_permissions": "Unterstützung für SSH- und SFTP-Berechtigungen hinzufügen",
|
||||||
|
"global_settings_setting_ssowat_panel_overlay_enabled": "Das SSOwat-Overlay-Panel aktivieren",
|
||||||
|
"global_settings_setting_security_ssh_port": "SSH-Port",
|
||||||
|
"diagnosis_sshd_config_inconsistent_details": "Bitte führen Sie <cmd>yunohost settings set security.ssh.port -v YOUR_SSH_PORT</cmd> aus, um den SSH-Port festzulegen, und prüfen Sie <cmd> yunohost tools regen-conf ssh --dry-run --with-diff</cmd> und <cmd>yunohost tools regen-conf ssh --force</cmd> um Ihre conf auf die YunoHost-Empfehlung zurückzusetzen.",
|
||||||
|
"regex_incompatible_with_tile": "/!\\ Packagers! Für Berechtigung '{permission}' ist show_tile auf 'true' gesetzt und deshalb können Sie keine regex-URL als Hauptdomäne setzen",
|
||||||
|
"permission_cant_add_to_all_users": "Die Berechtigung {permission} konnte nicht allen Benutzern gegeben werden.",
|
||||||
|
"migration_ldap_can_not_backup_before_migration": "Das System-Backup konnte nicht abgeschlossen werden, bevor die Migration fehlschlug. Fehler: {error:s}",
|
||||||
|
"service_description_fail2ban": "Schützt gegen Brute-Force-Angriffe und andere Angriffe aus dem Internet",
|
||||||
|
"service_description_dovecot": "Ermöglicht es E-Mail-Clients auf Konten zuzugreifen (IMAP und POP3)",
|
||||||
|
"service_description_dnsmasq": "Verarbeitet die Auflösung des Domainnamens (DNS)",
|
||||||
|
"service_description_avahi-daemon": "Erlaubt, den Server im lokalen Netz über 'yunohost.local' zu erreichen",
|
||||||
|
"restore_backup_too_old": "Dieses Backup kann nicht wieder hergestellt werden, weil es von einer zu alten YunoHost Version stammt.",
|
||||||
|
"service_description_slapd": "Speichert Benutzer, Domains und verbundene Informationen",
|
||||||
|
"service_description_rspamd": "Spamfilter und andere E-Mail Merkmale",
|
||||||
|
"service_description_redis-server": "Eine spezialisierte Datenbank für den schnellen Datenzugriff, die Aufgabenwarteschlange und die Kommunikation zwischen Programmen",
|
||||||
|
"service_description_postfix": "Wird benutzt, um E-Mails zu senden und zu empfangen",
|
||||||
|
"service_description_nginx": "Stellt Daten aller Websiten auf dem Server bereit",
|
||||||
|
"service_description_mysql": "Apeichert Anwendungsdaten (SQL Datenbank)",
|
||||||
|
"service_description_metronome": "XMPP Sofortnachrichtenkonten verwalten",
|
||||||
|
"service_description_yunohost-firewall": "Verwaltet offene und geschlossene Ports zur Verbindung mit Diensten",
|
||||||
|
"service_description_yunohost-api": "Verwaltet die Interaktionen zwischen der Weboberfläche von YunoHost und dem System",
|
||||||
|
"service_description_ssh": "Ermöglicht die Verbindung zu Ihrem Server über ein Terminal (SSH-Protokoll)",
|
||||||
|
"service_description_php7.3-fpm": "Führt in PHP geschriebene Apps mit NGINX aus",
|
||||||
|
"server_reboot_confirm": "Der Server wird sofort heruntergefahren, sind Sie sicher? [{answers:s}]",
|
||||||
|
"server_reboot": "Der Server wird neu gestartet",
|
||||||
|
"server_shutdown_confirm": "Der Server wird sofort heruntergefahren, sind Sie sicher? [{answers:s}]",
|
||||||
|
"server_shutdown": "Der Server wird heruntergefahren",
|
||||||
|
"root_password_replaced_by_admin_password": "Ihr Root Passwort wurde durch Ihr Admin Passwort ersetzt.",
|
||||||
|
"show_tile_cant_be_enabled_for_regex": "Momentan können Sie 'show_tile' nicht aktivieren, weil die URL für die Berechtigung '{permission}' ein regulärer Ausdruck ist",
|
||||||
|
"show_tile_cant_be_enabled_for_url_not_defined": "Momentan können Sie 'show_tile' nicht aktivieren, weil Sie zuerst eine URL für die Berechtigung '{permission}' definieren müssen",
|
||||||
|
"tools_upgrade_regular_packages_failed": "Konnte für die folgenden Pakete das Upgrade nicht durchführen: {packages_list}",
|
||||||
|
"tools_upgrade_regular_packages": "Momentan werden Upgrades für das System (YunoHost-unabhängige) Pakete durchgeführt…",
|
||||||
|
"tools_upgrade_cant_unhold_critical_packages": "Konnte für die kritischen Pakete das Flag 'hold' nicht aufheben…",
|
||||||
|
"tools_upgrade_cant_hold_critical_packages": "Konnte für die kritischen Pakete das Flag 'hold' nicht setzen…",
|
||||||
|
"tools_upgrade_cant_both": "Kann das Upgrade für das System und die Anwendungen nicht gleichzeitig durchführen",
|
||||||
|
"tools_upgrade_at_least_one": "Bitte geben Sie '--apps' oder '--system' an",
|
||||||
|
"this_action_broke_dpkg": "Diese Aktion hat unkonfigurierte Pakete verursacht, welche durch dpkg/apt (die Paketverwaltungen dieses Systems) zurückgelassen wurden... Sie können versuchen dieses Problem zu lösen, indem Sie 'sudo apt install --fix-broken' und/oder 'sudo dpkg --configure -a' ausführen."
|
||||||
|
}
|
||||||
|
|
|
@ -141,7 +141,7 @@
|
||||||
"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": "Could not parse name of self-signing authority (file: {file:s})",
|
||||||
"confirm_app_install_warning": "Warning: This app 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 app 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 app 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 breaks your system… If you are willing to take that risk anyway, type '{answers:s}'",
|
"confirm_app_install_danger": "DANGER! This app 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 breaks your system… If you are willing to take that risk anyway, type '{answers:s}'",
|
||||||
"confirm_app_install_thirdparty": "DANGER! This app is not part of Yunohost's app catalog. Installing third-party apps 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 breaks your system… If you are willing to take that risk anyway, type '{answers:s}'",
|
"confirm_app_install_thirdparty": "DANGER! This app is not part of YunoHost's app catalog. Installing third-party apps 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 breaks your system… If you are willing to take that risk anyway, type '{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}",
|
||||||
"diagnosis_basesystem_hardware": "Server hardware architecture is {virt} {arch}",
|
"diagnosis_basesystem_hardware": "Server hardware architecture is {virt} {arch}",
|
||||||
"diagnosis_basesystem_hardware_model": "Server model is {model}",
|
"diagnosis_basesystem_hardware_model": "Server model is {model}",
|
||||||
|
@ -152,7 +152,7 @@
|
||||||
"diagnosis_basesystem_ynh_inconsistent_versions": "You are running inconsistent versions of the YunoHost packages... most probably because of a failed or partial upgrade.",
|
"diagnosis_basesystem_ynh_inconsistent_versions": "You are running inconsistent versions of the YunoHost packages... most probably because of a failed or partial upgrade.",
|
||||||
"diagnosis_backports_in_sources_list": "It looks like apt (the package manager) is configured to use the backports repository. Unless you really know what you are doing, we strongly discourage from installing packages from backports, because it's likely to create unstabilities or conflicts on your system.",
|
"diagnosis_backports_in_sources_list": "It looks like apt (the package manager) is configured to use the backports repository. Unless you really know what you are doing, we strongly discourage from installing packages from backports, because it's likely to create unstabilities or conflicts on your system.",
|
||||||
"diagnosis_package_installed_from_sury": "Some system packages should be downgraded",
|
"diagnosis_package_installed_from_sury": "Some system packages should be downgraded",
|
||||||
"diagnosis_package_installed_from_sury_details": "Some packages were inadvertendly installed from a third-party repository called Sury. The Yunohost team improved the strategy that handle these packages, but it's expected that some setups that installed PHP7.3 apps while still on Stretch have some remaining inconsistencies. To fix this situation, you should try running the following command: <cmd>{cmd_to_fix}</cmd>",
|
"diagnosis_package_installed_from_sury_details": "Some packages were inadvertendly installed from a third-party repository called Sury. The YunoHost team improved the strategy that handle these packages, but it's expected that some setups that installed PHP7.3 apps while still on Stretch have some remaining inconsistencies. To fix this situation, you should try running the following command: <cmd>{cmd_to_fix}</cmd>",
|
||||||
"diagnosis_display_tip": "To see the issues found, you can go to the Diagnosis section of the webadmin, or run 'yunohost diagnosis show --issues --human-readable' from the command-line.",
|
"diagnosis_display_tip": "To see the issues found, you can go to the Diagnosis section of the webadmin, or run 'yunohost diagnosis show --issues --human-readable' from the command-line.",
|
||||||
"diagnosis_failed_for_category": "Diagnosis failed for category '{category}': {error}",
|
"diagnosis_failed_for_category": "Diagnosis failed for category '{category}': {error}",
|
||||||
"diagnosis_cache_still_valid": "(Cache still valid for {category} diagnosis. Won't re-diagnose it yet!)",
|
"diagnosis_cache_still_valid": "(Cache still valid for {category} diagnosis. Won't re-diagnose it yet!)",
|
||||||
|
@ -182,7 +182,7 @@
|
||||||
"diagnosis_dns_missing_record": "According to the recommended DNS configuration, you should add a DNS record with the following info.<br>Type: <code>{type}</code><br>Name: <code>{name}</code><br>Value: <code>{value}</code>",
|
"diagnosis_dns_missing_record": "According to the recommended DNS configuration, you should add a DNS record with the following info.<br>Type: <code>{type}</code><br>Name: <code>{name}</code><br>Value: <code>{value}</code>",
|
||||||
"diagnosis_dns_discrepancy": "The following DNS record does not seem to follow the recommended configuration:<br>Type: <code>{type}</code><br>Name: <code>{name}</code><br>Current value: <code>{current}</code><br>Expected value: <code>{value}</code>",
|
"diagnosis_dns_discrepancy": "The following DNS record does not seem to follow the recommended configuration:<br>Type: <code>{type}</code><br>Name: <code>{name}</code><br>Current value: <code>{current}</code><br>Expected value: <code>{value}</code>",
|
||||||
"diagnosis_dns_point_to_doc": "Please check the documentation at <a href='https://yunohost.org/dns_config'>https://yunohost.org/dns_config</a> if you need help about configuring DNS records.",
|
"diagnosis_dns_point_to_doc": "Please check the documentation at <a href='https://yunohost.org/dns_config'>https://yunohost.org/dns_config</a> if you need help about configuring DNS records.",
|
||||||
"diagnosis_dns_try_dyndns_update_force": "This domain's DNS configuration should automatically be managed by Yunohost. If that's not the case, you can try to force an update using <cmd>yunohost dyndns update --force</cmd>.",
|
"diagnosis_dns_try_dyndns_update_force": "This domain's DNS configuration should automatically be managed by YunoHost. If that's not the case, you can try to force an update using <cmd>yunohost dyndns update --force</cmd>.",
|
||||||
"diagnosis_domain_expiration_not_found": "Unable to check the expiration date for some domains",
|
"diagnosis_domain_expiration_not_found": "Unable to check the expiration date for some domains",
|
||||||
"diagnosis_domain_not_found_details": "The domain {domain} doesn't exist in WHOIS database or is expired!",
|
"diagnosis_domain_not_found_details": "The domain {domain} doesn't exist in WHOIS database or is expired!",
|
||||||
"diagnosis_domain_expiration_not_found_details": "The WHOIS information for domain {domain} doesn't seem to contain the information about the expiration date?",
|
"diagnosis_domain_expiration_not_found_details": "The WHOIS information for domain {domain} doesn't seem to contain the information about the expiration date?",
|
||||||
|
@ -271,8 +271,8 @@
|
||||||
"diagnosis_never_ran_yet": "It looks like this server was setup recently and there's no diagnosis report to show yet. You should start by running a full diagnosis, either from the webadmin or using 'yunohost diagnosis run' from the command line.",
|
"diagnosis_never_ran_yet": "It looks like this server was setup recently and there's no diagnosis report to show yet. You should start by running a full diagnosis, either from the webadmin or using 'yunohost diagnosis run' from the command line.",
|
||||||
"diagnosis_processes_killed_by_oom_reaper": "Some processes were recently killed by the system because it ran out of memory. This is typically symptomatic of a lack of memory on the system or of a process that ate up to much memory. Summary of the processes killed:\n{kills_summary}",
|
"diagnosis_processes_killed_by_oom_reaper": "Some processes were recently killed by the system because it ran out of memory. This is typically symptomatic of a lack of memory on the system or of a process that ate up to much memory. Summary of the processes killed:\n{kills_summary}",
|
||||||
"diagnosis_sshd_config_insecure": "The SSH configuration appears to have been manually modified, and is insecure because it contains no 'AllowGroups' or 'AllowUsers' directive to limit access to authorized users.",
|
"diagnosis_sshd_config_insecure": "The SSH configuration appears to have been manually modified, and is insecure because it contains no 'AllowGroups' or 'AllowUsers' directive to limit access to authorized users.",
|
||||||
"diagnosis_sshd_config_inconsistent": "It looks like the SSH port was manually modified in /etc/ssh/sshd_config. Since Yunohost 4.2, a new global setting 'security.ssh.port' is available to avoid manually editing the configuration.",
|
"diagnosis_sshd_config_inconsistent": "It looks like the SSH port was manually modified in /etc/ssh/sshd_config. Since YunoHost 4.2, a new global setting 'security.ssh.port' is available to avoid manually editing the configuration.",
|
||||||
"diagnosis_sshd_config_inconsistent_details": "Please run <cmd>yunohost settings set security.ssh.port -v YOUR_SSH_PORT</cmd> to define the SSH port, and check <cmd>yunohost tools regen-conf ssh --dry-run --with-diff</cmd> and <cmd>yunohost tools regen-conf ssh --force</cmd> to reset your conf to the Yunohost recommendation.",
|
"diagnosis_sshd_config_inconsistent_details": "Please run <cmd>yunohost settings set security.ssh.port -v YOUR_SSH_PORT</cmd> to define the SSH port, and check <cmd>yunohost tools regen-conf ssh --dry-run --with-diff</cmd> and <cmd>yunohost tools regen-conf ssh --force</cmd> to reset your conf to the YunoHost recommendation.",
|
||||||
"domain_cannot_remove_main": "You cannot remove '{domain:s}' since it's the main domain, you first need to set another domain as the main domain using 'yunohost domain main-domain -n <another-domain>'; here is the list of candidate domains: {other_domains:s}",
|
"domain_cannot_remove_main": "You cannot remove '{domain:s}' since it's the main domain, you first need to set another domain as the main domain using 'yunohost domain main-domain -n <another-domain>'; here is the list of candidate domains: {other_domains:s}",
|
||||||
"domain_cannot_add_xmpp_upload": "You cannot add domains starting with 'xmpp-upload.'. This kind of name is reserved for the XMPP upload feature integrated in YunoHost.",
|
"domain_cannot_add_xmpp_upload": "You cannot add domains starting with 'xmpp-upload.'. This kind of name is reserved for the XMPP upload feature integrated in YunoHost.",
|
||||||
"domain_cannot_remove_main_add_new_one": "You cannot remove '{domain:s}' since it's the main domain and your only domain, you need to first add another domain using 'yunohost domain add <another-domain.com>', then set is as the main domain using 'yunohost domain main-domain -n <another-domain.com>' and then you can remove the domain '{domain:s}' using 'yunohost domain remove {domain:s}'.'",
|
"domain_cannot_remove_main_add_new_one": "You cannot remove '{domain:s}' since it's the main domain and your only domain, you need to first add another domain using 'yunohost domain add <another-domain.com>', then set is as the main domain using 'yunohost domain main-domain -n <another-domain.com>' and then you can remove the domain '{domain:s}' using 'yunohost domain remove {domain:s}'.'",
|
||||||
|
@ -362,7 +362,6 @@
|
||||||
"hook_list_by_invalid": "This property can not be used to list hooks",
|
"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 completed",
|
"installation_complete": "Installation completed",
|
||||||
"installation_failed": "Something went wrong with the installation",
|
|
||||||
"invalid_regex": "Invalid regex:'{regex:s}'",
|
"invalid_regex": "Invalid regex:'{regex:s}'",
|
||||||
"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",
|
||||||
|
@ -412,8 +411,6 @@
|
||||||
"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 could not create admin user",
|
|
||||||
"ldap_initialized": "LDAP initialized",
|
|
||||||
"mail_alias_remove_failed": "Could not remove e-mail alias '{mail:s}'",
|
"mail_alias_remove_failed": "Could not remove e-mail alias '{mail:s}'",
|
||||||
"mail_domain_unknown": "Invalid e-mail address for domain '{domain:s}'. Please, use a domain administrated by this server.",
|
"mail_domain_unknown": "Invalid e-mail address for domain '{domain:s}'. Please, use a domain administrated by this server.",
|
||||||
"mail_forward_remove_failed": "Could not remove e-mail forwarding '{mail:s}'",
|
"mail_forward_remove_failed": "Could not remove e-mail forwarding '{mail:s}'",
|
||||||
|
@ -598,7 +595,7 @@
|
||||||
"system_upgraded": "System upgraded",
|
"system_upgraded": "System upgraded",
|
||||||
"system_username_exists": "Username already exists in the list of 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 apt install --fix-broken` and/or `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 apt install --fix-broken` and/or `sudo dpkg --configure -a`.",
|
||||||
"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": "Could not hold critical packages…",
|
"tools_upgrade_cant_hold_critical_packages": "Could not hold critical packages…",
|
||||||
"tools_upgrade_cant_unhold_critical_packages": "Could not unhold critical packages…",
|
"tools_upgrade_cant_unhold_critical_packages": "Could not unhold critical packages…",
|
||||||
|
@ -634,5 +631,5 @@
|
||||||
"yunohost_configured": "YunoHost is now configured",
|
"yunohost_configured": "YunoHost is now configured",
|
||||||
"yunohost_installing": "Installing YunoHost...",
|
"yunohost_installing": "Installing YunoHost...",
|
||||||
"yunohost_not_installed": "YunoHost is not correctly installed. Please run 'yunohost tools postinstall'",
|
"yunohost_not_installed": "YunoHost is not correctly installed. Please run 'yunohost tools postinstall'",
|
||||||
"yunohost_postinstall_end_tip": "The post-install completed! To finalize your setup, please consider:\n - adding a first user through the 'Users' section of the webadmin (or 'yunohost user create <username>' in command-line);\n - diagnose potential issues through the 'Diagnosis' section of the webadmin (or 'yunohost diagnosis run' in command-line);\n - reading the 'Finalizing your setup' and 'Getting to know Yunohost' parts in the admin documentation: https://yunohost.org/admindoc."
|
"yunohost_postinstall_end_tip": "The post-install completed! To finalize your setup, please consider:\n - adding a first user through the 'Users' section of the webadmin (or 'yunohost user create <username>' in command-line);\n - diagnose potential issues through the 'Diagnosis' section of the webadmin (or 'yunohost diagnosis run' in command-line);\n - reading the 'Finalizing your setup' and 'Getting to know YunoHost' parts in the admin documentation: https://yunohost.org/admindoc."
|
||||||
}
|
}
|
||||||
|
|
1
locales/fi.json
Normal file
1
locales/fi.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{}
|
|
@ -98,7 +98,7 @@
|
||||||
"port_already_closed": "Le port {port:d} est déjà fermé pour les connexions {ip_version:s}",
|
"port_already_closed": "Le port {port:d} est déjà fermé pour les connexions {ip_version:s}",
|
||||||
"port_already_opened": "Le port {port:d} est déjà ouvert pour les connexions {ip_version:s}",
|
"port_already_opened": "Le port {port:d} est déjà ouvert pour les connexions {ip_version:s}",
|
||||||
"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}'",
|
||||||
"app_restore_failed": "Impossible de restaurer '{app:s}': {error:s}",
|
"app_restore_failed": "Impossible de restaurer {app:s} : {error: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": "Restauration terminée",
|
||||||
"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}]",
|
||||||
|
@ -305,7 +305,7 @@
|
||||||
"backup_mount_archive_for_restore": "Préparation de l’archive pour restauration...",
|
"backup_mount_archive_for_restore": "Préparation de l’archive pour restauration...",
|
||||||
"confirm_app_install_warning": "Avertissement : cette application peut fonctionner mais n’est pas bien intégrée dans YunoHost. Certaines fonctionnalités telles que l’authentification unique et la sauvegarde/restauration peuvent ne pas être disponibles. L’installer quand même ? [{answers:s}] ",
|
"confirm_app_install_warning": "Avertissement : cette application peut fonctionner mais n’est pas bien intégrée dans YunoHost. Certaines fonctionnalités telles que l’authentification unique et la sauvegarde/restauration peuvent ne pas être disponibles. L’installer quand même ? [{answers:s}] ",
|
||||||
"confirm_app_install_danger": "DANGER ! Cette application est connue pour être encore expérimentale (si elle ne fonctionne pas explicitement) ! Vous ne devriez probablement PAS l’installer à moins de savoir ce que vous faites. AUCUN SUPPORT ne sera fourni si cette application ne fonctionne pas ou casse votre système … Si vous êtes prêt à prendre ce risque de toute façon, tapez '{answers:s}'",
|
"confirm_app_install_danger": "DANGER ! Cette application est connue pour être encore expérimentale (si elle ne fonctionne pas explicitement) ! Vous ne devriez probablement PAS l’installer à moins de savoir ce que vous faites. AUCUN SUPPORT ne sera fourni si cette application ne fonctionne pas ou casse votre système … Si vous êtes prêt à prendre ce risque de toute façon, tapez '{answers:s}'",
|
||||||
"confirm_app_install_thirdparty": "DANGER! Cette application ne fait pas partie du catalogue d'applications de Yunohost. L'installation d'applications tierces peut compromettre l'intégrité et la sécurité de votre système. Vous ne devriez probablement PAS l'installer à moins de savoir ce que vous faites. AUCUN SUPPORT ne sera fourni si cette application ne fonctionne pas ou casse votre système ... Si vous êtes prêt à prendre ce risque de toute façon, tapez '{answers:s}'",
|
"confirm_app_install_thirdparty": "DANGER ! Cette application ne fait pas partie du catalogue d'applications de YunoHost. L'installation d'applications tierces peut compromettre l'intégrité et la sécurité de votre système. Vous ne devriez probablement PAS l'installer à moins de savoir ce que vous faites. AUCUN SUPPORT ne sera fourni si cette application ne fonctionne pas ou casse votre système... Si vous êtes prêt à prendre ce risque de toute façon, tapez '{answers:s}'",
|
||||||
"dpkg_is_broken": "Vous ne pouvez pas faire ça maintenant car dpkg/apt (le gestionnaire de paquets du système) semble avoir laissé des choses non configurées. Vous pouvez essayer de résoudre ce problème en vous connectant via SSH et en exécutant `sudo apt install --fix-broken` et/ou `sudo dpkg --configure -a'.",
|
"dpkg_is_broken": "Vous ne pouvez pas faire ça maintenant car dpkg/apt (le gestionnaire de paquets du système) semble avoir laissé des choses non configurées. Vous pouvez essayer de résoudre ce problème en vous connectant via SSH et en exécutant `sudo apt install --fix-broken` et/ou `sudo dpkg --configure -a'.",
|
||||||
"dyndns_could_not_check_available": "Impossible de vérifier si {domain:s} est disponible chez {provider:s}.",
|
"dyndns_could_not_check_available": "Impossible de vérifier si {domain:s} est disponible chez {provider:s}.",
|
||||||
"file_does_not_exist": "Le fichier dont le chemin est {path:s} n’existe pas.",
|
"file_does_not_exist": "Le fichier dont le chemin est {path:s} n’existe pas.",
|
||||||
|
@ -437,9 +437,9 @@
|
||||||
"diagnosis_found_warnings": "Trouvé {warnings} objet(s) pouvant être amélioré(s) pour {category}.",
|
"diagnosis_found_warnings": "Trouvé {warnings} objet(s) pouvant être amélioré(s) pour {category}.",
|
||||||
"diagnosis_everything_ok": "Tout semble bien pour {category} !",
|
"diagnosis_everything_ok": "Tout semble bien pour {category} !",
|
||||||
"diagnosis_failed": "Échec de la récupération du résultat du diagnostic pour la catégorie '{category}' : {error}",
|
"diagnosis_failed": "Échec de la récupération du résultat du diagnostic pour la catégorie '{category}' : {error}",
|
||||||
"diagnosis_ip_connected_ipv4": "Le serveur est connecté à Internet en IPv4!",
|
"diagnosis_ip_connected_ipv4": "Le serveur est connecté à Internet en IPv4 !",
|
||||||
"diagnosis_ip_no_ipv4": "Le serveur ne dispose pas d’une adresse IPv4.",
|
"diagnosis_ip_no_ipv4": "Le serveur ne dispose pas d’une adresse IPv4.",
|
||||||
"diagnosis_ip_connected_ipv6": "Le serveur est connecté à Internet en IPv6!",
|
"diagnosis_ip_connected_ipv6": "Le serveur est connecté à Internet en IPv6 !",
|
||||||
"diagnosis_ip_no_ipv6": "Le serveur ne dispose pas d’une adresse IPv6.",
|
"diagnosis_ip_no_ipv6": "Le serveur ne dispose pas d’une adresse IPv6.",
|
||||||
"diagnosis_ip_dnsresolution_working": "La résolution de nom de domaine fonctionne !",
|
"diagnosis_ip_dnsresolution_working": "La résolution de nom de domaine fonctionne !",
|
||||||
"diagnosis_ip_broken_dnsresolution": "La résolution du nom de domaine semble interrompue pour une raison quelconque … Un pare-feu bloque-t-il les requêtes DNS ?",
|
"diagnosis_ip_broken_dnsresolution": "La résolution du nom de domaine semble interrompue pour une raison quelconque … Un pare-feu bloque-t-il les requêtes DNS ?",
|
||||||
|
@ -497,7 +497,7 @@
|
||||||
"log_app_action_run": "Lancer l’action de l’application '{}'",
|
"log_app_action_run": "Lancer l’action de l’application '{}'",
|
||||||
"log_app_config_show_panel": "Montrer le panneau de configuration de l’application '{}'",
|
"log_app_config_show_panel": "Montrer le panneau de configuration de l’application '{}'",
|
||||||
"log_app_config_apply": "Appliquer la configuration à l’application '{}'",
|
"log_app_config_apply": "Appliquer la configuration à l’application '{}'",
|
||||||
"diagnosis_never_ran_yet": "Il apparaît que le serveur a été installé récemment et qu’il n’y a pas encore eu de diagnostic. Vous devriez en lancer un depuis le webmin ou en utilisant 'yunohost diagnosis run' depuis la ligne de commande.",
|
"diagnosis_never_ran_yet": "Il apparaît que le serveur a été installé récemment et qu’il n’y a pas encore eu de diagnostic. Vous devriez en lancer un depuis la web-admin ou en utilisant 'yunohost diagnosis run' depuis la ligne de commande.",
|
||||||
"diagnosis_description_web": "Web",
|
"diagnosis_description_web": "Web",
|
||||||
"diagnosis_basesystem_hardware": "L’architecture du serveur est {virt} {arch}",
|
"diagnosis_basesystem_hardware": "L’architecture du serveur est {virt} {arch}",
|
||||||
"group_already_exist_on_system_but_removing_it": "Le groupe {group} est déjà présent dans les groupes du système, mais YunoHost va le supprimer...",
|
"group_already_exist_on_system_but_removing_it": "Le groupe {group} est déjà présent dans les groupes du système, mais YunoHost va le supprimer...",
|
||||||
|
@ -526,7 +526,7 @@
|
||||||
"diagnosis_ip_local": "IP locale : <code>{local}</code>",
|
"diagnosis_ip_local": "IP locale : <code>{local}</code>",
|
||||||
"diagnosis_dns_point_to_doc": "Veuillez consulter la documentation sur <a href='https://yunohost.org/dns_config'>https://yunohost.org/dns_config</a> si vous avez besoin d’aide pour configurer les enregistrements DNS.",
|
"diagnosis_dns_point_to_doc": "Veuillez consulter la documentation sur <a href='https://yunohost.org/dns_config'>https://yunohost.org/dns_config</a> si vous avez besoin d’aide pour configurer les enregistrements DNS.",
|
||||||
"diagnosis_mail_outgoing_port_25_blocked_relay_vpn": "Certains fournisseurs ne vous laisseront pas débloquer le port sortant 25 parce qu’ils ne se soucient pas de la neutralité du Net. <br> - Certains d’entre eux offrent l’alternative d'<a href='https://yunohost.org/#/smtp_relay'>utiliser un serveur de messagerie relai</a> bien que cela implique que le relai sera en mesure d’espionner votre trafic de messagerie. <br> - Une alternative respectueuse de la vie privée consiste à utiliser un VPN *avec une IP publique dédiée* pour contourner ce type de limites. Voir <a href='https://yunohost.org/#/vpn_advantage'>https://yunohost.org/#/vpn_advantage</a> <br> - Vous pouvez également envisager de passer à <a href='https://yunohost.org/#/isp'>un fournisseur plus respectueux de la neutralité du net</a>",
|
"diagnosis_mail_outgoing_port_25_blocked_relay_vpn": "Certains fournisseurs ne vous laisseront pas débloquer le port sortant 25 parce qu’ils ne se soucient pas de la neutralité du Net. <br> - Certains d’entre eux offrent l’alternative d'<a href='https://yunohost.org/#/smtp_relay'>utiliser un serveur de messagerie relai</a> bien que cela implique que le relai sera en mesure d’espionner votre trafic de messagerie. <br> - Une alternative respectueuse de la vie privée consiste à utiliser un VPN *avec une IP publique dédiée* pour contourner ce type de limites. Voir <a href='https://yunohost.org/#/vpn_advantage'>https://yunohost.org/#/vpn_advantage</a> <br> - Vous pouvez également envisager de passer à <a href='https://yunohost.org/#/isp'>un fournisseur plus respectueux de la neutralité du net</a>",
|
||||||
"diagnosis_mail_ehlo_ok": "Le serveur de messagerie SMTP est accessible de l'extérieur et peut donc recevoir des courriels!",
|
"diagnosis_mail_ehlo_ok": "Le serveur de messagerie SMTP est accessible de l'extérieur et peut donc recevoir des courriels !",
|
||||||
"diagnosis_mail_ehlo_unreachable": "Le serveur de messagerie SMTP est inaccessible de l’extérieur en IPv{ipversion}. Il ne pourra pas recevoir des courriels.",
|
"diagnosis_mail_ehlo_unreachable": "Le serveur de messagerie SMTP est inaccessible de l’extérieur en IPv{ipversion}. Il ne pourra pas recevoir des courriels.",
|
||||||
"diagnosis_mail_ehlo_unreachable_details": "Impossible d'ouvrir une connexion sur le port 25 à votre serveur en IPv{ipversion}. Il semble inaccessible. <br> 1. La cause la plus courante de ce problème est que le port 25 <a href='https://yunohost.org/isp_box_config'>n'est pas correctement redirigé vers votre serveur</a>. <br> 2. Vous devez également vous assurer que le service postfix est en cours d'exécution. <br> 3. Sur les configurations plus complexes: assurez-vous qu'aucun pare-feu ou proxy inversé n'interfère.",
|
"diagnosis_mail_ehlo_unreachable_details": "Impossible d'ouvrir une connexion sur le port 25 à votre serveur en IPv{ipversion}. Il semble inaccessible. <br> 1. La cause la plus courante de ce problème est que le port 25 <a href='https://yunohost.org/isp_box_config'>n'est pas correctement redirigé vers votre serveur</a>. <br> 2. Vous devez également vous assurer que le service postfix est en cours d'exécution. <br> 3. Sur les configurations plus complexes: assurez-vous qu'aucun pare-feu ou proxy inversé n'interfère.",
|
||||||
"diagnosis_mail_ehlo_wrong_details": "Le EHLO reçu par le serveur de diagnostique distant en IPv{ipversion} est différent du domaine de votre serveur. <br> EHLO reçu: <code>{wrong_ehlo}</code> <br> Attendu : <code>{right_ehlo}</code> <br> La cause la plus courante ce problème est que le port 25 <a href='https://yunohost.org/isp_box_config'> n’est pas correctement redirigé vers votre serveur </a>. Vous pouvez également vous assurer qu’aucun pare-feu ou proxy inversé n’interfère.",
|
"diagnosis_mail_ehlo_wrong_details": "Le EHLO reçu par le serveur de diagnostique distant en IPv{ipversion} est différent du domaine de votre serveur. <br> EHLO reçu: <code>{wrong_ehlo}</code> <br> Attendu : <code>{right_ehlo}</code> <br> La cause la plus courante ce problème est que le port 25 <a href='https://yunohost.org/isp_box_config'> n’est pas correctement redirigé vers votre serveur </a>. Vous pouvez également vous assurer qu’aucun pare-feu ou proxy inversé n’interfère.",
|
||||||
|
@ -569,7 +569,7 @@
|
||||||
"migration_0015_patching_sources_list": "Mise à jour du fichier sources.lists...",
|
"migration_0015_patching_sources_list": "Mise à jour du fichier sources.lists...",
|
||||||
"migration_0015_start": "Démarrage de la migration vers Buster",
|
"migration_0015_start": "Démarrage de la migration vers Buster",
|
||||||
"migration_description_0015_migrate_to_buster": "Mise à niveau du système vers Debian Buster et YunoHost 4.x",
|
"migration_description_0015_migrate_to_buster": "Mise à niveau du système vers Debian Buster et YunoHost 4.x",
|
||||||
"diagnosis_dns_try_dyndns_update_force": "La configuration DNS de ce domaine devrait être automatiquement gérée par Yunohost. Si ce n'est pas le cas, vous pouvez essayer de forcer une mise à jour en utilisant <cmd>yunohost dyndns update --force</cmd>.",
|
"diagnosis_dns_try_dyndns_update_force": "La configuration DNS de ce domaine devrait être automatiquement gérée par YunoHost. Si ce n'est pas le cas, vous pouvez essayer de forcer une mise à jour en utilisant <cmd>yunohost dyndns update --force</cmd>.",
|
||||||
"app_packaging_format_not_supported": "Cette application ne peut pas être installée car son format n'est pas pris en charge par votre version de YunoHost. Vous devriez probablement envisager de mettre à jour votre système.",
|
"app_packaging_format_not_supported": "Cette application ne peut pas être installée car son format n'est pas pris en charge par votre version de YunoHost. Vous devriez probablement envisager de mettre à jour votre système.",
|
||||||
"migration_0015_weak_certs": "Il a été constaté que les certificats suivants utilisent encore des algorithmes de signature peu robustes et doivent être mis à jour pour être compatibles avec la prochaine version de NGINX : {certs}",
|
"migration_0015_weak_certs": "Il a été constaté que les certificats suivants utilisent encore des algorithmes de signature peu robustes et doivent être mis à jour pour être compatibles avec la prochaine version de NGINX : {certs}",
|
||||||
"global_settings_setting_backup_compress_tar_archives": "Compresser les archives (.tar.gz) au lieu des archives non-compressées lors de la création des backups. N.B. : activer cette option permet d'obtenir des sauvegardes plus légères, mais leur création sera significativement plus longue et plus gourmande en CPU.",
|
"global_settings_setting_backup_compress_tar_archives": "Compresser les archives (.tar.gz) au lieu des archives non-compressées lors de la création des backups. N.B. : activer cette option permet d'obtenir des sauvegardes plus légères, mais leur création sera significativement plus longue et plus gourmande en CPU.",
|
||||||
|
@ -592,7 +592,7 @@
|
||||||
"global_settings_setting_smtp_relay_user": "Relais de compte utilisateur SMTP",
|
"global_settings_setting_smtp_relay_user": "Relais de compte utilisateur SMTP",
|
||||||
"global_settings_setting_smtp_relay_port": "Port relais SMTP",
|
"global_settings_setting_smtp_relay_port": "Port relais SMTP",
|
||||||
"global_settings_setting_smtp_relay_host": "Relais SMTP à utiliser pour envoyer du courrier à la place de cette instance YunoHost. Utile si vous êtes dans l'une de ces situations : votre port 25 est bloqué par votre FAI ou votre fournisseur VPS, vous avez une IP résidentielle répertoriée sur DUHL, vous ne pouvez pas configurer de DNS inversé ou ce serveur n'est pas directement exposé sur Internet et vous voulez en utiliser un autre pour envoyer des mails.",
|
"global_settings_setting_smtp_relay_host": "Relais SMTP à utiliser pour envoyer du courrier à la place de cette instance YunoHost. Utile si vous êtes dans l'une de ces situations : votre port 25 est bloqué par votre FAI ou votre fournisseur VPS, vous avez une IP résidentielle répertoriée sur DUHL, vous ne pouvez pas configurer de DNS inversé ou ce serveur n'est pas directement exposé sur Internet et vous voulez en utiliser un autre pour envoyer des mails.",
|
||||||
"diagnosis_package_installed_from_sury_details": "Certains paquets ont été installés par inadvertance à partir d'un dépôt tiers appelé Sury. L'équipe YunoHost a amélioré la stratégie de gestion de ces paquets, mais on s'attend à ce que certaines configurations qui ont installé des applications PHP7.3 tout en étant toujours sur Stretch présentent des incohérences. Pour résoudre cette situation, vous devez essayer d'exécuter la commande suivante : <cmd> {cmd_to_fix} </cmd>",
|
"diagnosis_package_installed_from_sury_details": "Certains paquets ont été installés par inadvertance à partir d'un dépôt tiers appelé Sury. L'équipe YunoHost a amélioré la stratégie de gestion de ces paquets, mais on s'attend à ce que certaines configurations qui ont installé des applications PHP7.3 tout en étant toujours sur Stretch présentent des incohérences. Pour résoudre cette situation, vous devez essayer d'exécuter la commande suivante : <cmd>{cmd_to_fix}</cmd>",
|
||||||
"app_argument_password_no_default": "Erreur lors de l'analyse de l'argument de mot de passe '{name}' : l'argument de mot de passe ne peut pas avoir de valeur par défaut pour des raisons de sécurité",
|
"app_argument_password_no_default": "Erreur lors de l'analyse de l'argument de mot de passe '{name}' : l'argument de mot de passe ne peut pas avoir de valeur par défaut pour des raisons de sécurité",
|
||||||
"pattern_email_forward": "Il doit s'agir d'une adresse électronique valide, le symbole '+' étant accepté (par exemples : johndoe@exemple.com ou bien johndoe+yunohost@exemple.com)",
|
"pattern_email_forward": "Il doit s'agir d'une adresse électronique valide, le symbole '+' étant accepté (par exemples : johndoe@exemple.com ou bien johndoe+yunohost@exemple.com)",
|
||||||
"global_settings_setting_smtp_relay_password": "Mot de passe du relais de l'hôte SMTP",
|
"global_settings_setting_smtp_relay_password": "Mot de passe du relais de l'hôte SMTP",
|
||||||
|
@ -622,5 +622,21 @@
|
||||||
"postinstall_low_rootfsspace": "Le système de fichiers racine a une taille totale inférieure à 10 GB, ce qui est inquiétant ! Vous allez certainement arriver à court d'espace disque rapidement ! Il est recommandé d'avoir au moins 16 GB pour ce système de fichiers. Si vous voulez installer YunoHost malgré cet avertissement, relancez le postinstall avec --force-diskspace",
|
"postinstall_low_rootfsspace": "Le système de fichiers racine a une taille totale inférieure à 10 GB, ce qui est inquiétant ! Vous allez certainement arriver à court d'espace disque rapidement ! Il est recommandé d'avoir au moins 16 GB pour ce système de fichiers. Si vous voulez installer YunoHost malgré cet avertissement, relancez le postinstall avec --force-diskspace",
|
||||||
"domain_remove_confirm_apps_removal": "Le retrait de ce domaine retirera aussi ces applications :\n{apps}\n\nÊtes vous sûr de vouloir cela ? [{answers}]",
|
"domain_remove_confirm_apps_removal": "Le retrait de ce domaine retirera aussi ces applications :\n{apps}\n\nÊtes vous sûr de vouloir cela ? [{answers}]",
|
||||||
"diagnosis_rootfstotalspace_critical": "Le système de fichiers racine ne fait que {space} ! Vous allez certainement le remplir très rapidement ! Il est recommandé d'avoir au moins 16 GB pour ce système de fichiers.",
|
"diagnosis_rootfstotalspace_critical": "Le système de fichiers racine ne fait que {space} ! Vous allez certainement le remplir très rapidement ! Il est recommandé d'avoir au moins 16 GB pour ce système de fichiers.",
|
||||||
"diagnosis_rootfstotalspace_warning": "Le système de fichiers racine n'est que de {space}. Cela peut suffire, mais faites attention car vous risquez de les remplir rapidement... Il est recommandé d'avoir au moins 16 GB pour ce système de fichiers."
|
"diagnosis_rootfstotalspace_warning": "Le système de fichiers racine n'est que de {space}. Cela peut suffire, mais faites attention car vous risquez de les remplir rapidement... Il est recommandé d'avoir au moins 16 GB pour ce système de fichiers.",
|
||||||
}
|
"app_restore_script_failed": "Une erreur s'est produite dans le script de restauration de l'application",
|
||||||
|
"restore_backup_too_old": "Cette archive de sauvegarde ne peut être restaurée car elle provient d'une version trop ancienne de YunoHost.",
|
||||||
|
"migration_update_LDAP_schema": "Mise à jour du schéma LDAP...",
|
||||||
|
"log_backup_create": "Créer une archive de sauvegarde",
|
||||||
|
"global_settings_setting_ssowat_panel_overlay_enabled": "Activer la superposition du panneau SSOwat",
|
||||||
|
"migration_ldap_rollback_success": "Système rétabli dans son état initial.",
|
||||||
|
"permission_cant_add_to_all_users": "L'autorisation {permission} ne peut pas être ajoutée à tous les utilisateurs.",
|
||||||
|
"migration_ldap_migration_failed_trying_to_rollback": "Impossible de migrer... tentative de restauration du système.",
|
||||||
|
"migration_ldap_can_not_backup_before_migration": "La sauvegarde du système n'a pas pu être terminée avant l'échec de la migration. Erreur : {error : s}",
|
||||||
|
"migration_ldap_backup_before_migration": "Création d'une sauvegarde de la base de données LDAP et des paramètres des applications avant la migration proprement dite.",
|
||||||
|
"migration_description_0020_ssh_sftp_permissions": "Ajouter la prise en charge des autorisations SSH et SFTP",
|
||||||
|
"global_settings_setting_security_ssh_port": "Port SSH",
|
||||||
|
"diagnosis_sshd_config_inconsistent_details": "Veuillez exécuter <cmd>yunohost settings set security.ssh.port -v VOTRE_PORT_SSH</cmd> pour définir le port SSH, et vérifiez <cmd>yunohost tools regen-conf ssh --dry-run --with-diff</cmd> et <cmd>yunohost tools regen-conf ssh --force</cmd> pour réinitialiser votre configuration aux recommandations YunoHost.",
|
||||||
|
"diagnosis_sshd_config_inconsistent": "Il semble que le port SSH a été modifié manuellement dans /etc/ssh/sshd_config. Depuis YunoHost 4.2, un nouveau paramètre global 'security.ssh.port' est disponible pour éviter de modifier manuellement la configuration.",
|
||||||
|
"diagnosis_sshd_config_insecure": "La configuration SSH semble avoir été modifiée manuellement et n'est pas sécurisée car elle ne contient aucune directive 'AllowGroups' ou 'AllowUsers' pour limiter l'accès aux utilisateurs autorisés.",
|
||||||
|
"backup_create_size_estimation": "L'archive contiendra environ {size} de données."
|
||||||
|
}
|
||||||
|
|
120
locales/gl.json
Normal file
120
locales/gl.json
Normal file
|
@ -0,0 +1,120 @@
|
||||||
|
{
|
||||||
|
"password_too_simple_1": "O contrasinal ten que ter 8 caracteres como mínimo",
|
||||||
|
"aborting": "Abortando.",
|
||||||
|
"app_already_up_to_date": "{app:s} xa está actualizada",
|
||||||
|
"app_already_installed_cant_change_url": "Esta app xa está instalada. O URL non pode cambiarse só con esta acción. Miran en `app changeurl` se está dispoñible.",
|
||||||
|
"app_already_installed": "{app:s} xa está instalada",
|
||||||
|
"app_action_broke_system": "Esta acción semella que estragou estos servizos importantes: {services}",
|
||||||
|
"app_action_cannot_be_ran_because_required_services_down": "Estos servizos requeridos deberían estar en execución para realizar esta acción: {services}. Intenta reinicialos para continuar (e tamén intenta saber por que están apagados).",
|
||||||
|
"already_up_to_date": "Nada que facer. Todo está ao día.",
|
||||||
|
"admin_password_too_long": "Elixe un contrasinal menor de 127 caracteres",
|
||||||
|
"admin_password_changed": "Realizado o cambio de contrasinal de administración",
|
||||||
|
"admin_password_change_failed": "Non se puido cambiar o contrasinal",
|
||||||
|
"admin_password": "Contrasinal de administración",
|
||||||
|
"additional_urls_already_removed": "URL adicional '{url:s}' xa foi eliminada das URL adicionais para o permiso '{permission:s}'",
|
||||||
|
"additional_urls_already_added": "URL adicional '{url:s}' xa fora engadida ás URL adicionais para o permiso '{permission:s}'",
|
||||||
|
"action_invalid": "Acción non válida '{action:s}'",
|
||||||
|
"app_change_url_failed_nginx_reload": "Non se recargou NGINX. Aquí tes a saída de 'nginx -t':\n{nginx_errors:s}",
|
||||||
|
"app_argument_required": "Requírese o argumento '{name}'",
|
||||||
|
"app_argument_password_no_default": "Erro ao procesar o argumento do contrasinal '{name}': o argumento do contrasinal non pode ter un valor por defecto por razón de seguridade",
|
||||||
|
"app_argument_invalid": "Elixe un valor válido para o argumento '{name:s}': {error:s}",
|
||||||
|
"app_argument_choice_invalid": "Usa unha destas opcións '{choices:s}' para o argumento '{name:s}'",
|
||||||
|
"backup_archive_writing_error": "Non se puideron engadir os ficheiros '{source:s}' (chamados no arquivo '{dest:s}' para ser copiados dentro do arquivo comprimido '{archive:s}'",
|
||||||
|
"backup_archive_system_part_not_available": "A parte do sistema '{part:s}' non está dispoñible nesta copia",
|
||||||
|
"backup_archive_corrupted": "Semella que o arquivo de copia '{archive}' está estragado : {error}",
|
||||||
|
"backup_archive_cant_retrieve_info_json": "Non se puido cargar a info desde arquivo '{archive}'... O info.json non s puido obter (ou é un json non válido).",
|
||||||
|
"backup_archive_open_failed": "Non se puido abrir o arquivo de copia de apoio",
|
||||||
|
"backup_archive_name_unknown": "Arquivo local de copia de apoio descoñecido con nome '{name:s}'",
|
||||||
|
"backup_archive_name_exists": "Xa existe un arquivo de copia con este nome.",
|
||||||
|
"backup_archive_broken_link": "Non se puido acceder ao arquivo da copia (ligazón rota a {path:s})",
|
||||||
|
"backup_archive_app_not_found": "Non se atopa {app:s} no arquivo da copia",
|
||||||
|
"backup_applying_method_tar": "Creando o arquivo TAR da copia...",
|
||||||
|
"backup_applying_method_custom": "Chamando polo método de copia de apoio personalizado '{method:s}'...",
|
||||||
|
"backup_applying_method_copy": "Copiando tódolos ficheiros necesarios...",
|
||||||
|
"backup_app_failed": "Non se fixo copia de {app:s}",
|
||||||
|
"backup_actually_backuping": "Creando o arquivo de copia cos ficheiros recollidos...",
|
||||||
|
"backup_abstract_method": "Este método de copia de apoio aínda non foi implementado",
|
||||||
|
"ask_password": "Contrasinal",
|
||||||
|
"ask_new_path": "Nova ruta",
|
||||||
|
"ask_new_domain": "Novo dominio",
|
||||||
|
"ask_new_admin_password": "Novo contrasinal de administración",
|
||||||
|
"ask_main_domain": "Dominio principal",
|
||||||
|
"ask_lastname": "Apelido",
|
||||||
|
"ask_firstname": "Nome",
|
||||||
|
"ask_user_domain": "Dominio a utilizar como enderezo de email e conta XMPP da usuaria",
|
||||||
|
"apps_catalog_update_success": "O catálogo de aplicacións foi actualizado!",
|
||||||
|
"apps_catalog_obsolete_cache": "A caché do catálogo de apps está baleiro ou obsoleto.",
|
||||||
|
"apps_catalog_failed_to_download": "Non se puido descargar o catálogo de apps {apps_catalog}: {error}",
|
||||||
|
"apps_catalog_updating": "Actualizando o catálogo de aplicacións…",
|
||||||
|
"apps_catalog_init_success": "Sistema do catálogo de apps iniciado!",
|
||||||
|
"apps_already_up_to_date": "Xa tes tódalas apps ao día",
|
||||||
|
"app_packaging_format_not_supported": "Esta app non se pode instalar porque o formato de empaquetado non está soportado pola túa versión de YunoHost. Deberías considerar actualizar o teu sistema.",
|
||||||
|
"app_upgraded": "{app:s} actualizadas",
|
||||||
|
"app_upgrade_some_app_failed": "Algunhas apps non se puideron actualizar",
|
||||||
|
"app_upgrade_script_failed": "Houbo un fallo interno no script de actualización da app",
|
||||||
|
"app_upgrade_failed": "Non se actualizou {app:s}: {error}",
|
||||||
|
"app_upgrade_app_name": "Actualizando {app}...",
|
||||||
|
"app_upgrade_several_apps": "Vanse actualizar as seguintes apps: {apps}",
|
||||||
|
"app_unsupported_remote_type": "Tipo remoto non soportado para a app",
|
||||||
|
"app_unknown": "App descoñecida",
|
||||||
|
"app_start_restore": "Restaurando {app}...",
|
||||||
|
"app_start_backup": "Xuntando os ficheiros para a copia de apoio de {app}...",
|
||||||
|
"app_start_remove": "Eliminando {app}...",
|
||||||
|
"app_start_install": "Instalando {app}...",
|
||||||
|
"app_sources_fetch_failed": "Non se puideron obter os ficheiros fonte, é o URL correcto?",
|
||||||
|
"app_restore_script_failed": "Houbo un erro interno do script de restablecemento da app",
|
||||||
|
"app_restore_failed": "Non se puido restablecer {app:s}: {error:s}",
|
||||||
|
"app_remove_after_failed_install": "Eliminando a app debido ao fallo na instalación...",
|
||||||
|
"app_requirements_unmeet": "Non se cumpren os requerimentos de {app}, o paquete {pkgname} ({version}) debe ser {spec}",
|
||||||
|
"app_requirements_checking": "Comprobando os paquetes requeridos por {app}...",
|
||||||
|
"app_removed": "{app:s} eliminada",
|
||||||
|
"app_not_properly_removed": "{app:s} non se eliminou de xeito correcto",
|
||||||
|
"app_not_installed": "Non se puido atopar {app:s} na lista de apps instaladas: {all_apps}",
|
||||||
|
"app_not_correctly_installed": "{app:s} semella que non está instalada correctamente",
|
||||||
|
"app_not_upgraded": "Fallou a actualización da app '{failed_app}', como consecuencia as actualizacións das seguintes apps foron canceladas: {apps}",
|
||||||
|
"app_manifest_install_ask_is_public": "Debería esta app estar exposta ante visitantes anónimas?",
|
||||||
|
"app_manifest_install_ask_admin": "Elixe unha usuaria administradora para esta app",
|
||||||
|
"app_manifest_install_ask_password": "Elixe un contrasinal de administración para esta app",
|
||||||
|
"app_manifest_install_ask_path": "Elixe a ruta onde queres instalar esta app",
|
||||||
|
"app_manifest_install_ask_domain": "Elixe o dominio onde queres instalar esta app",
|
||||||
|
"app_manifest_invalid": "Hai algún erro no manifesto da app: {error}",
|
||||||
|
"app_location_unavailable": "Este URL ou ben non está dispoñible ou entra en conflito cunha app(s) xa instalada:\n{apps:s}",
|
||||||
|
"app_label_deprecated": "Este comando está anticuado! Utiliza o novo comando 'yunohost user permission update' para xestionar a etiqueta da app.",
|
||||||
|
"app_make_default_location_already_used": "Non se puido establecer a '{app}' como app por defecto no dominio, '{domain}' xa está utilizado por '{other_app}'",
|
||||||
|
"app_install_script_failed": "Houbo un fallo interno do script de instalación da app",
|
||||||
|
"app_install_failed": "Non se pode instalar {app}: {error}",
|
||||||
|
"app_install_files_invalid": "Non se poden instalar estos ficheiros",
|
||||||
|
"app_id_invalid": "ID da app non válido",
|
||||||
|
"app_full_domain_unavailable": "Lamentámolo, esta app ten que ser instalada nun dominio propio, pero xa tes outras apps instaladas no dominio '{domain}'. Podes usar un subdominio dedicado para esta app.",
|
||||||
|
"app_extraction_failed": "Non se puideron extraer os ficheiros de instalación",
|
||||||
|
"app_change_url_success": "A URL de {app:s} agora é {domain:s}{path:s}",
|
||||||
|
"app_change_url_no_script": "A app '{app_name:s}' non soporta o cambio de URL. Pode que debas actualizala.",
|
||||||
|
"app_change_url_identical_domains": "O antigo e o novo dominio/url_path son idénticos ('{domain:s}{path:s}'), nada que facer.",
|
||||||
|
"backup_deleted": "Copia de apoio eliminada",
|
||||||
|
"backup_delete_error": "Non se eliminou '{path:s}'",
|
||||||
|
"backup_custom_mount_error": "O método personalizado de copia non superou o paso 'mount'",
|
||||||
|
"backup_custom_backup_error": "O método personalizado da copia non superou o paso 'backup'",
|
||||||
|
"backup_csv_creation_failed": "Non se creou o ficheiro CSV necesario para restablecer a copia",
|
||||||
|
"backup_csv_addition_failed": "Non se engadiron os ficheiros a copiar ao ficheiro CSV",
|
||||||
|
"backup_creation_failed": "Non se puido crear o arquivo de copia de apoio",
|
||||||
|
"backup_create_size_estimation": "O arquivo vai conter arredor de {size} de datos.",
|
||||||
|
"backup_created": "Copia de apoio creada",
|
||||||
|
"backup_couldnt_bind": "Non se puido ligar {src:s} a {dest:s}.",
|
||||||
|
"backup_copying_to_organize_the_archive": "Copiando {size:s}MB para organizar o arquivo",
|
||||||
|
"backup_cleaning_failed": "Non se puido baleirar o cartafol temporal para a copia",
|
||||||
|
"backup_cant_mount_uncompress_archive": "Non se puido montar o arquivo sen comprimir porque está protexido contra escritura",
|
||||||
|
"backup_ask_for_copying_if_needed": "Queres realizar a copia de apoio utilizando temporalmente {size:s}MB? (Faise deste xeito porque algúns ficheiros non hai xeito de preparalos usando unha forma máis eficiente).",
|
||||||
|
"backup_running_hooks": "Executando os ganchos da copia...",
|
||||||
|
"backup_permission": "Permiso de copia para {app:s}",
|
||||||
|
"backup_output_symlink_dir_broken": "O directorio de arquivo '{path:s}' é unha ligazón simbólica rota. Pode ser que esqueceses re/montar ou conectar o medio de almacenaxe ao que apunta.",
|
||||||
|
"backup_output_directory_required": "Debes proporcionar un directorio de saída para a copia",
|
||||||
|
"backup_output_directory_not_empty": "Debes elexir un directorio de saída baleiro",
|
||||||
|
"backup_output_directory_forbidden": "Elixe un directorio de saída diferente. As copias non poden crearse en /bin, /boot, /dev, /etc, /lib, /root, /sbin, /sys, /usr, /var ou subcartafoles de /home/yunohost.backup/archives",
|
||||||
|
"backup_nothings_done": "Nada que gardar",
|
||||||
|
"backup_no_uncompress_archive_dir": "Non hai tal directorio do arquivo descomprimido",
|
||||||
|
"backup_mount_archive_for_restore": "Preparando o arquivo para restauración...",
|
||||||
|
"backup_method_tar_finished": "Creouse o arquivo de copia TAR",
|
||||||
|
"backup_method_custom_finished": "O método de copia personalizado '{method:s}' rematou",
|
||||||
|
"backup_method_copy_finished": "Rematou o copiado dos ficheiros",
|
||||||
|
"backup_hook_unknown": "O gancho da copia '{hook:s}' é descoñecido"
|
||||||
|
}
|
|
@ -140,8 +140,8 @@
|
||||||
"updating_apt_cache": "Recupero degli aggiornamenti disponibili per i pacchetti di sistema...",
|
"updating_apt_cache": "Recupero degli aggiornamenti disponibili per i pacchetti di sistema...",
|
||||||
"upgrade_complete": "Aggiornamento completo",
|
"upgrade_complete": "Aggiornamento completo",
|
||||||
"upnp_dev_not_found": "Nessuno supporto UPnP trovato",
|
"upnp_dev_not_found": "Nessuno supporto UPnP trovato",
|
||||||
"upnp_disabled": "UPnP è stato disattivato",
|
"upnp_disabled": "UPnP è disattivato",
|
||||||
"upnp_enabled": "UPnP è stato attivato",
|
"upnp_enabled": "UPnP è attivato",
|
||||||
"upnp_port_open_failed": "Impossibile aprire le porte attraverso UPnP",
|
"upnp_port_open_failed": "Impossibile aprire le porte attraverso UPnP",
|
||||||
"user_created": "Utente creato",
|
"user_created": "Utente creato",
|
||||||
"user_creation_failed": "Impossibile creare l'utente {user}: {error}",
|
"user_creation_failed": "Impossibile creare l'utente {user}: {error}",
|
||||||
|
@ -225,7 +225,7 @@
|
||||||
"certmanager_unable_to_parse_self_CA_name": "Impossibile analizzare il nome dell'autorità di auto-firma (file: {file:s})",
|
"certmanager_unable_to_parse_self_CA_name": "Impossibile analizzare il nome dell'autorità di auto-firma (file: {file:s})",
|
||||||
"confirm_app_install_warning": "Attenzione: Questa applicazione potrebbe funzionare, ma non è ben integrata in YunoHost. Alcune funzionalità come il single sign-on e il backup/ripristino potrebbero non essere disponibili. Installare comunque? [{answers:s}] ",
|
"confirm_app_install_warning": "Attenzione: Questa applicazione potrebbe funzionare, ma non è ben integrata in YunoHost. Alcune funzionalità come il single sign-on e il backup/ripristino potrebbero non essere disponibili. Installare comunque? [{answers:s}] ",
|
||||||
"confirm_app_install_danger": "ATTENZIONE! Questa applicazione è ancora sperimentale (se non esplicitamente dichiarata non funzionante)! Probabilmente NON dovresti installarla a meno che tu non sappia cosa stai facendo. NESSUN SUPPORTO verrà dato se quest'app non funziona o se rompe il tuo sistema... Se comunque accetti di prenderti questo rischio,digita '{answers:s}'",
|
"confirm_app_install_danger": "ATTENZIONE! Questa applicazione è ancora sperimentale (se non esplicitamente dichiarata non funzionante)! Probabilmente NON dovresti installarla a meno che tu non sappia cosa stai facendo. NESSUN SUPPORTO verrà dato se quest'app non funziona o se rompe il tuo sistema... Se comunque accetti di prenderti questo rischio,digita '{answers:s}'",
|
||||||
"confirm_app_install_thirdparty": "PERICOLO! Quest'applicazione non fa parte del catalogo Yunohost. Installando app di terze parti potresti compromettere l'integrita e la sicurezza del tuo sistema. Probabilmente NON dovresti installarla a meno che tu non sappia cosa stai facendo. NESSUN SUPPORTO verrà dato se quest'app non funziona o se rompe il tuo sistema... Se comunque accetti di prenderti questo rischio, digita '{answers:s}'",
|
"confirm_app_install_thirdparty": "PERICOLO! Quest'applicazione non fa parte del catalogo YunoHost. Installando app di terze parti potresti compromettere l'integrita e la sicurezza del tuo sistema. Probabilmente NON dovresti installarla a meno che tu non sappia cosa stai facendo. NESSUN SUPPORTO verrà dato se quest'app non funziona o se rompe il tuo sistema... Se comunque accetti di prenderti questo rischio, digita '{answers:s}'",
|
||||||
"dpkg_is_broken": "Non puoi eseguire questo ora perchè dpkg/APT (i gestori di pacchetti del sistema) sembrano essere in stato danneggiato... Puoi provare a risolvere il problema connettendoti via SSH ed eseguire `sudo apt install --fix-broken` e/o `sudo dpkg --configure -a`.",
|
"dpkg_is_broken": "Non puoi eseguire questo ora perchè dpkg/APT (i gestori di pacchetti del sistema) sembrano essere in stato danneggiato... Puoi provare a risolvere il problema connettendoti via SSH ed eseguire `sudo apt install --fix-broken` e/o `sudo dpkg --configure -a`.",
|
||||||
"domain_cannot_remove_main": "Non puoi rimuovere '{domain:s}' essendo il dominio principale, prima devi impostare un nuovo dominio principale con il comando 'yunohost domain main-domain -n <altro-dominio>'; ecco la lista dei domini candidati: {other_domains:s}",
|
"domain_cannot_remove_main": "Non puoi rimuovere '{domain:s}' essendo il dominio principale, prima devi impostare un nuovo dominio principale con il comando 'yunohost domain main-domain -n <altro-dominio>'; ecco la lista dei domini candidati: {other_domains:s}",
|
||||||
"domain_dns_conf_is_just_a_recommendation": "Questo comando ti mostra la configurazione *raccomandata*. Non ti imposta la configurazione DNS al tuo posto. È tua responsabilità configurare la tua zona DNS nel tuo registrar in accordo con queste raccomandazioni.",
|
"domain_dns_conf_is_just_a_recommendation": "Questo comando ti mostra la configurazione *raccomandata*. Non ti imposta la configurazione DNS al tuo posto. È tua responsabilità configurare la tua zona DNS nel tuo registrar in accordo con queste raccomandazioni.",
|
||||||
|
@ -249,7 +249,7 @@
|
||||||
"global_settings_unknown_setting_from_settings_file": "Chiave sconosciuta nelle impostazioni: '{setting_key:s}', scartata e salvata in /etc/yunohost/settings-unknown.json",
|
"global_settings_unknown_setting_from_settings_file": "Chiave sconosciuta nelle impostazioni: '{setting_key:s}', scartata e salvata in /etc/yunohost/settings-unknown.json",
|
||||||
"global_settings_setting_service_ssh_allow_deprecated_dsa_hostkey": "Consenti l'uso del hostkey DSA (deprecato) per la configurazione del demone SSH",
|
"global_settings_setting_service_ssh_allow_deprecated_dsa_hostkey": "Consenti l'uso del hostkey DSA (deprecato) per la configurazione del demone SSH",
|
||||||
"global_settings_unknown_type": "Situazione inaspettata, l'impostazione {setting:s} sembra essere di tipo {unknown_type:s} ma non è un tipo supportato dal sistema.",
|
"global_settings_unknown_type": "Situazione inaspettata, l'impostazione {setting:s} sembra essere di tipo {unknown_type:s} ma non è un tipo supportato dal sistema.",
|
||||||
"good_practices_about_admin_password": "Stai per definire una nuova password di amministratore. La password deve essere almeno di 8 caratteri - anche se è buona pratica utilizzare password più lunghe (es. una frase, una serie di parole) e/o utilizzare vari tipi di caratteri (maiuscole, minuscole, numeri e simboli).",
|
"good_practices_about_admin_password": "Stai per impostare una nuova password di amministratore. La password deve essere almeno di 8 caratteri - anche se è buona pratica utilizzare password più lunghe (es. una frase, una serie di parole) e/o utilizzare vari tipi di caratteri (maiuscole, minuscole, numeri e simboli).",
|
||||||
"log_corrupted_md_file": "Il file dei metadati YAML associato con i registri è danneggiato: '{md_file}'\nErrore: {error}",
|
"log_corrupted_md_file": "Il file dei metadati YAML associato con i registri è danneggiato: '{md_file}'\nErrore: {error}",
|
||||||
"log_link_to_log": "Registro completo di questa operazione: '<a href=\"#/tools/logs/{name}\" style=\"text-decoration:underline\">{desc}</a>'",
|
"log_link_to_log": "Registro completo di questa operazione: '<a href=\"#/tools/logs/{name}\" style=\"text-decoration:underline\">{desc}</a>'",
|
||||||
"log_help_to_get_log": "Per vedere il registro dell'operazione '{desc}', usa il comando 'yunohost log show {name}{name}'",
|
"log_help_to_get_log": "Per vedere il registro dell'operazione '{desc}', usa il comando 'yunohost log show {name}{name}'",
|
||||||
|
@ -331,7 +331,7 @@
|
||||||
"diagnosis_domain_expiration_not_found_details": "Le informazioni WHOIS per il dominio {domain} non sembrano contenere la data di scadenza, giusto?",
|
"diagnosis_domain_expiration_not_found_details": "Le informazioni WHOIS per il dominio {domain} non sembrano contenere la data di scadenza, giusto?",
|
||||||
"diagnosis_domain_not_found_details": "Il dominio {domain} non esiste nel database WHOIS o è scaduto!",
|
"diagnosis_domain_not_found_details": "Il dominio {domain} non esiste nel database WHOIS o è scaduto!",
|
||||||
"diagnosis_domain_expiration_not_found": "Non riesco a controllare la data di scadenza di alcuni domini",
|
"diagnosis_domain_expiration_not_found": "Non riesco a controllare la data di scadenza di alcuni domini",
|
||||||
"diagnosis_dns_try_dyndns_update_force": "La configurazione DNS di questo dominio dovrebbe essere gestita automaticamente da Yunohost. Se non avviene, puoi provare a forzare un aggiornamento usando il comando <cmd>yunohost dyndns update --force</cmd>.",
|
"diagnosis_dns_try_dyndns_update_force": "La configurazione DNS di questo dominio dovrebbe essere gestita automaticamente da YunoHost. Se non avviene, puoi provare a forzare un aggiornamento usando il comando <cmd>yunohost dyndns update --force</cmd>.",
|
||||||
"diagnosis_dns_point_to_doc": "Controlla la documentazione a <a href='https://yunohost.org/dns_config'>https://yunohost.org/dns_config</a> se hai bisogno di aiuto nel configurare i record DNS.",
|
"diagnosis_dns_point_to_doc": "Controlla la documentazione a <a href='https://yunohost.org/dns_config'>https://yunohost.org/dns_config</a> se hai bisogno di aiuto nel configurare i record DNS.",
|
||||||
"diagnosis_dns_discrepancy": "Il record DNS non sembra seguire la configurazione DNS raccomandata:<br>Type: <code>{type}</code><br>Name: <code>{name}</code><br>Current value: <code>{current}</value><br>Expected value: <code>{value}</value>",
|
"diagnosis_dns_discrepancy": "Il record DNS non sembra seguire la configurazione DNS raccomandata:<br>Type: <code>{type}</code><br>Name: <code>{name}</code><br>Current value: <code>{current}</value><br>Expected value: <code>{value}</value>",
|
||||||
"diagnosis_dns_missing_record": "Stando alla configurazione DNS raccomandata, dovresti aggiungere un record DNS con le seguenti informazioni.<br>Type: <code>{type}</code><br>Name: <code>{name}</code><br>Value: <code>{value}</value>",
|
"diagnosis_dns_missing_record": "Stando alla configurazione DNS raccomandata, dovresti aggiungere un record DNS con le seguenti informazioni.<br>Type: <code>{type}</code><br>Name: <code>{name}</code><br>Value: <code>{value}</value>",
|
||||||
|
@ -361,7 +361,7 @@
|
||||||
"diagnosis_cache_still_valid": "(La cache della diagnosi di {category} è ancora valida. Non la ricontrollo di nuovo per ora!)",
|
"diagnosis_cache_still_valid": "(La cache della diagnosi di {category} è ancora valida. Non la ricontrollo di nuovo per ora!)",
|
||||||
"diagnosis_failed_for_category": "Diagnosi fallita per la categoria '{category}:{error}",
|
"diagnosis_failed_for_category": "Diagnosi fallita per la categoria '{category}:{error}",
|
||||||
"diagnosis_display_tip": "Per vedere i problemi rilevati, puoi andare alla sezione Diagnosi del amministratore, o eseguire 'yunohost diagnosis show --issues --human-readable' dalla riga di comando.",
|
"diagnosis_display_tip": "Per vedere i problemi rilevati, puoi andare alla sezione Diagnosi del amministratore, o eseguire 'yunohost diagnosis show --issues --human-readable' dalla riga di comando.",
|
||||||
"diagnosis_package_installed_from_sury_details": "Alcuni pacchetti sono stati inavvertitamente installati da un repository di terze parti chiamato Sury. Il team di Yunohost ha migliorato la gestione di tali pacchetti, ma ci si aspetta che alcuni setup di app PHP7.3 abbiano delle incompatibilità anche se sono ancora in Stretch. Per sistemare questa situazione, dovresti provare a lanciare il seguente comando: <cmd>{cmd_to_fix}</cmd>",
|
"diagnosis_package_installed_from_sury_details": "Alcuni pacchetti sono stati inavvertitamente installati da un repository di terze parti chiamato Sury. Il team di YunoHost ha migliorato la gestione di tali pacchetti, ma ci si aspetta che alcuni setup di app PHP7.3 abbiano delle incompatibilità anche se sono ancora in Stretch. Per sistemare questa situazione, dovresti provare a lanciare il seguente comando: <cmd>{cmd_to_fix}</cmd>",
|
||||||
"diagnosis_package_installed_from_sury": "Alcuni pacchetti di sistema dovrebbero fare il downgrade",
|
"diagnosis_package_installed_from_sury": "Alcuni pacchetti di sistema dovrebbero fare il downgrade",
|
||||||
"diagnosis_mail_ehlo_bad_answer": "Un servizio diverso da SMTP ha risposto sulla porta 25 su IPv{ipversion}",
|
"diagnosis_mail_ehlo_bad_answer": "Un servizio diverso da SMTP ha risposto sulla porta 25 su IPv{ipversion}",
|
||||||
"diagnosis_mail_ehlo_unreachable_details": "Impossibile aprire una connessione sulla porta 25 sul tuo server su IPv{ipversion}. Sembra irraggiungibile.<br>1. La causa più probabile di questo problema è la porta 25 <a href='https://yunohost.org/isp_box_config'>non correttamente inoltrata al tuo server</a>.<br>2. Dovresti esser sicuro che il servizio postfix sia attivo.<br>3. Su setup complessi: assicuratu che nessun firewall o reverse-proxy stia interferendo.",
|
"diagnosis_mail_ehlo_unreachable_details": "Impossibile aprire una connessione sulla porta 25 sul tuo server su IPv{ipversion}. Sembra irraggiungibile.<br>1. La causa più probabile di questo problema è la porta 25 <a href='https://yunohost.org/isp_box_config'>non correttamente inoltrata al tuo server</a>.<br>2. Dovresti esser sicuro che il servizio postfix sia attivo.<br>3. Su setup complessi: assicuratu che nessun firewall o reverse-proxy stia interferendo.",
|
||||||
|
@ -394,7 +394,7 @@
|
||||||
"diagnosis_mail_fcrdns_different_from_ehlo_domain_details": "DNS invero corrente: <code>{rdns_domain}</code><br>Valore atteso: <code>{ehlo_domain}</code>",
|
"diagnosis_mail_fcrdns_different_from_ehlo_domain_details": "DNS invero corrente: <code>{rdns_domain}</code><br>Valore atteso: <code>{ehlo_domain}</code>",
|
||||||
"diagnosis_mail_fcrdns_different_from_ehlo_domain": "Il DNS inverso non è correttamente configurato su IPv{ipversion}. Alcune email potrebbero non essere spedite o segnalate come SPAM.",
|
"diagnosis_mail_fcrdns_different_from_ehlo_domain": "Il DNS inverso non è correttamente configurato su IPv{ipversion}. Alcune email potrebbero non essere spedite o segnalate come SPAM.",
|
||||||
"diagnosis_mail_fcrdns_nok_alternatives_6": "Alcuni provider non permettono di configurare un DNS inverso (o non è configurato bene...). Se il tuo DNS inverso è correttamente configurato per IPv4, puoi provare a disabilitare l'utilizzo di IPv6 durante l'invio mail eseguendo <cmd>yunohost settings set smtp.allow_ipv6 -v off</cmd>. NB: se esegui il comando non sarà più possibile inviare o ricevere email da i pochi IPv6-only server mail esistenti.",
|
"diagnosis_mail_fcrdns_nok_alternatives_6": "Alcuni provider non permettono di configurare un DNS inverso (o non è configurato bene...). Se il tuo DNS inverso è correttamente configurato per IPv4, puoi provare a disabilitare l'utilizzo di IPv6 durante l'invio mail eseguendo <cmd>yunohost settings set smtp.allow_ipv6 -v off</cmd>. NB: se esegui il comando non sarà più possibile inviare o ricevere email da i pochi IPv6-only server mail esistenti.",
|
||||||
"yunohost_postinstall_end_tip": "La post-installazione è completata! Per rifinire il tuo setup, considera di:\n\t- aggiungere il primo utente nella sezione 'Utenti' del webadmin (o eseguendo da terminale 'yunohost user create <username>');\n\t- eseguire una diagnosi alla ricerca di problemi nella sezione 'Diagnosi' del webadmin (o eseguendo da terminale 'yunohost diagnosis run');\n\t- leggere 'Finalizing your setup' e 'Getting to know Yunohost' nella documentazione admin: https://yunohost.org/admindoc.",
|
"yunohost_postinstall_end_tip": "La post-installazione è completata! Per rifinire il tuo setup, considera di:\n\t- aggiungere il primo utente nella sezione 'Utenti' del webadmin (o eseguendo da terminale 'yunohost user create <username>');\n\t- eseguire una diagnosi alla ricerca di problemi nella sezione 'Diagnosi' del webadmin (o eseguendo da terminale 'yunohost diagnosis run');\n\t- leggere 'Finalizing your setup' e 'Getting to know YunoHost' nella documentazione admin: https://yunohost.org/admindoc.",
|
||||||
"user_already_exists": "L'utente '{user}' esiste già",
|
"user_already_exists": "L'utente '{user}' esiste già",
|
||||||
"update_apt_cache_warning": "Qualcosa è andato storto mentre eseguivo l'aggiornamento della cache APT (package manager di Debian). Ecco il dump di sources.list, che potrebbe aiutare ad identificare le linee problematiche:\n{sourceslist}",
|
"update_apt_cache_warning": "Qualcosa è andato storto mentre eseguivo l'aggiornamento della cache APT (package manager di Debian). Ecco il dump di sources.list, che potrebbe aiutare ad identificare le linee problematiche:\n{sourceslist}",
|
||||||
"update_apt_cache_failed": "Impossibile aggiornare la cache di APT (package manager di Debian). Ecco il dump di sources.list, che potrebbe aiutare ad identificare le linee problematiche:\n{sourceslist}",
|
"update_apt_cache_failed": "Impossibile aggiornare la cache di APT (package manager di Debian). Ecco il dump di sources.list, che potrebbe aiutare ad identificare le linee problematiche:\n{sourceslist}",
|
||||||
|
@ -407,7 +407,7 @@
|
||||||
"tools_upgrade_cant_unhold_critical_packages": "Impossibile annullare il blocco dei pacchetti critici/importanti…",
|
"tools_upgrade_cant_unhold_critical_packages": "Impossibile annullare il blocco dei pacchetti critici/importanti…",
|
||||||
"tools_upgrade_cant_hold_critical_packages": "Impossibile bloccare i pacchetti critici/importanti…",
|
"tools_upgrade_cant_hold_critical_packages": "Impossibile bloccare i pacchetti critici/importanti…",
|
||||||
"tools_upgrade_cant_both": "Impossibile aggiornare sia il sistema e le app nello stesso momento",
|
"tools_upgrade_cant_both": "Impossibile aggiornare sia il sistema e le app nello stesso momento",
|
||||||
"tools_upgrade_at_least_one": "Specifica '--apps', o '--system'",
|
"tools_upgrade_at_least_one": "Specifica 'apps', o 'system'",
|
||||||
"show_tile_cant_be_enabled_for_regex": "Non puoi abilitare 'show_tile' in questo momento, perché l'URL del permesso '{permission}' è una regex",
|
"show_tile_cant_be_enabled_for_regex": "Non puoi abilitare 'show_tile' in questo momento, perché l'URL del permesso '{permission}' è una regex",
|
||||||
"show_tile_cant_be_enabled_for_url_not_defined": "Non puoi abilitare 'show_tile' in questo momento, devi prima definire un URL per il permesso '{permission}'",
|
"show_tile_cant_be_enabled_for_url_not_defined": "Non puoi abilitare 'show_tile' in questo momento, devi prima definire un URL per il permesso '{permission}'",
|
||||||
"service_reloaded_or_restarted": "Il servizio '{service:s}' è stato ricaricato o riavviato",
|
"service_reloaded_or_restarted": "Il servizio '{service:s}' è stato ricaricato o riavviato",
|
||||||
|
@ -622,5 +622,21 @@
|
||||||
"postinstall_low_rootfsspace": "La radice del filesystem ha uno spazio totale inferiore ai 10 GB, ed è piuttosto preoccupante! Consumerai tutta la memoria molto velocemente! Raccomandiamo di avere almeno 16 GB per la radice del filesystem. Se vuoi installare YunoHost ignorando questo avviso, esegui nuovamente il postinstall con l'argomento --force-diskspace",
|
"postinstall_low_rootfsspace": "La radice del filesystem ha uno spazio totale inferiore ai 10 GB, ed è piuttosto preoccupante! Consumerai tutta la memoria molto velocemente! Raccomandiamo di avere almeno 16 GB per la radice del filesystem. Se vuoi installare YunoHost ignorando questo avviso, esegui nuovamente il postinstall con l'argomento --force-diskspace",
|
||||||
"domain_remove_confirm_apps_removal": "Rimuovere questo dominio rimuoverà anche le seguenti applicazioni:\n{apps}\n\nSei sicuro di voler continuare? [{answers}]",
|
"domain_remove_confirm_apps_removal": "Rimuovere questo dominio rimuoverà anche le seguenti applicazioni:\n{apps}\n\nSei sicuro di voler continuare? [{answers}]",
|
||||||
"diagnosis_rootfstotalspace_critical": "La radice del filesystem ha un totale di solo {space}, ed è piuttosto preoccupante! Probabilmente consumerai tutta la memoria molto velocemente! Raccomandiamo di avere almeno 16 GB per la radice del filesystem.",
|
"diagnosis_rootfstotalspace_critical": "La radice del filesystem ha un totale di solo {space}, ed è piuttosto preoccupante! Probabilmente consumerai tutta la memoria molto velocemente! Raccomandiamo di avere almeno 16 GB per la radice del filesystem.",
|
||||||
"diagnosis_rootfstotalspace_warning": "La radice del filesystem ha un totale di solo {space}. Potrebbe non essere un problema, ma stai attento perché potresti consumare tutta la memoria velocemente... Raccomandiamo di avere almeno 16 GB per la radice del filesystem."
|
"diagnosis_rootfstotalspace_warning": "La radice del filesystem ha un totale di solo {space}. Potrebbe non essere un problema, ma stai attento perché potresti consumare tutta la memoria velocemente... Raccomandiamo di avere almeno 16 GB per la radice del filesystem.",
|
||||||
}
|
"restore_backup_too_old": "Questo archivio backup non può essere ripristinato perché è stato generato da una versione troppo vecchia di YunoHost.",
|
||||||
|
"permission_cant_add_to_all_users": "Il permesso {permission} non può essere aggiunto a tutto gli utenti.",
|
||||||
|
"migration_update_LDAP_schema": "Aggiorno lo schema LDAP...",
|
||||||
|
"migration_ldap_rollback_success": "Sistema ripristinato allo stato precedente.",
|
||||||
|
"migration_ldap_migration_failed_trying_to_rollback": "Impossibile migrare... provo a ripristinare il sistema.",
|
||||||
|
"migration_ldap_can_not_backup_before_migration": "Il backup del sistema non è stato completato prima che la migrazione fallisse. Errore: {error:s}",
|
||||||
|
"migration_ldap_backup_before_migration": "Sto generando il backup del database LDAP e delle impostazioni delle app prima di effettuare la migrazione.",
|
||||||
|
"migration_description_0020_ssh_sftp_permissions": "Aggiungi il supporto ai permessi SSH e SFTP",
|
||||||
|
"log_backup_create": "Crea un archivio backup",
|
||||||
|
"global_settings_setting_ssowat_panel_overlay_enabled": "Abilita il pannello sovrapposto SSOwat",
|
||||||
|
"global_settings_setting_security_ssh_port": "Porta SSH",
|
||||||
|
"diagnosis_sshd_config_inconsistent_details": "Esegui <cmd>yunohost settings set security.ssh.port -v PORTA_SSH</cmd> per definire la porta SSH, e controlla con <cmd>yunohost tools regen-conf ssh --dry-run --with-diff</cmd>, poi <cmd>yunohost tools regen-conf ssh --force</cmd> per resettare la tua configurazione con le raccomandazioni YunoHost.",
|
||||||
|
"diagnosis_sshd_config_inconsistent": "Sembra che la porta SSH sia stata modificata manualmente in /etc/ssh/sshd_config: A partire da YunoHost 4.2, una nuova configurazione globale 'security.ssh.port' è disponibile per evitare di modificare manualmente la configurazione.",
|
||||||
|
"diagnosis_sshd_config_insecure": "Sembra che la configurazione SSH sia stata modificata manualmente, ed non è sicuro dato che non contiene le direttive 'AllowGroups' o 'Allowusers' che limitano l'accesso agli utenti autorizzati.",
|
||||||
|
"backup_create_size_estimation": "L'archivio conterrà circa {size} di dati.",
|
||||||
|
"app_restore_script_failed": "C'è stato un errore all'interno dello script di recupero"
|
||||||
|
}
|
||||||
|
|
|
@ -472,8 +472,8 @@
|
||||||
"diagnosis_services_bad_status_tip": "Podètz ensajar de <a href='#/services/{service}'>reaviar lo servici</a>, e se non fonciona pas, podètz agachar <a href='#/services/{service}'>los jornals de servici a la pagina web d’administracion</a>(en linha de comanda podètz utilizar <cmd>yunohost service restart {service}</cmd> e <cmd>yunohost service log {service}</cmd>).",
|
"diagnosis_services_bad_status_tip": "Podètz ensajar de <a href='#/services/{service}'>reaviar lo servici</a>, e se non fonciona pas, podètz agachar <a href='#/services/{service}'>los jornals de servici a la pagina web d’administracion</a>(en linha de comanda podètz utilizar <cmd>yunohost service restart {service}</cmd> e <cmd>yunohost service log {service}</cmd>).",
|
||||||
"diagnosis_http_connection_error": "Error de connexion : connexion impossibla al domeni demandat, benlèu qu’es pas accessible.",
|
"diagnosis_http_connection_error": "Error de connexion : connexion impossibla al domeni demandat, benlèu qu’es pas accessible.",
|
||||||
"group_user_already_in_group": "L’utilizaire {user} es ja dins lo grop « {group} »",
|
"group_user_already_in_group": "L’utilizaire {user} es ja dins lo grop « {group} »",
|
||||||
"diagnosis_ip_broken_resolvconf": "La resolucion del nom de domeni sembla copada sul servidor, poiriá èsser ligada al fait que /etc/resolv.conf manda pas a 127.0.0.1.",
|
"diagnosis_ip_broken_resolvconf": "La resolucion del nom de domeni sembla copada sul servidor, poiriá èsser ligada al fait que <code>/etc/resolv.conf</code> manda pas a <code>127.0.0.1</code>.",
|
||||||
"diagnosis_ip_weird_resolvconf": "La resolucion del nom de domeni sembla foncionar, mas siatz prudent en utilizant un fichièr /etc/resolv.con personalizat.",
|
"diagnosis_ip_weird_resolvconf": "La resolucion del nom de domeni sembla foncionar, mas sembla qu’utiilizatz un fichièr <code>/etc/resolv.conf</code> personalizat.",
|
||||||
"diagnosis_diskusage_verylow": "Lo lòc d’emmagazinatge <code>{mountpoint}</code> (sul periferic <code>{device}</code>) a solament {free} ({free_percent}%). Deuriatz considerar de liberar un pauc d’espaci.",
|
"diagnosis_diskusage_verylow": "Lo lòc d’emmagazinatge <code>{mountpoint}</code> (sul periferic <code>{device}</code>) a solament {free} ({free_percent}%). Deuriatz considerar de liberar un pauc d’espaci.",
|
||||||
"global_settings_setting_pop3_enabled": "Activar lo protocòl POP3 pel servidor de corrièr",
|
"global_settings_setting_pop3_enabled": "Activar lo protocòl POP3 pel servidor de corrièr",
|
||||||
"diagnosis_diskusage_ok": "Lo lòc d’emmagazinatge <code>{mountpoint}</code> (sul periferic <code>{device}</code>) a encara {free} ({free_percent}%) de liure !",
|
"diagnosis_diskusage_ok": "Lo lòc d’emmagazinatge <code>{mountpoint}</code> (sul periferic <code>{device}</code>) a encara {free} ({free_percent}%) de liure !",
|
||||||
|
@ -513,5 +513,13 @@
|
||||||
"log_app_action_run": "Executar l’accion de l’aplicacion « {} »",
|
"log_app_action_run": "Executar l’accion de l’aplicacion « {} »",
|
||||||
"diagnosis_basesystem_hardware_model": "Lo modèl del servidor es {model}",
|
"diagnosis_basesystem_hardware_model": "Lo modèl del servidor es {model}",
|
||||||
"backup_archive_cant_retrieve_info_json": "Obtencion impossibla de las informacions de l’archiu « {archive} »... Se pòt pas recuperar lo fichièr info.json (o es pas un fichièr json valid).",
|
"backup_archive_cant_retrieve_info_json": "Obtencion impossibla de las informacions de l’archiu « {archive} »... Se pòt pas recuperar lo fichièr info.json (o es pas un fichièr json valid).",
|
||||||
"app_packaging_format_not_supported": "Se pòt pas installar aquesta aplicacion pr’amor que son format es pas pres en carga per vòstra version de YunoHost. Deuriatz considerar actualizar lo sistèma."
|
"app_packaging_format_not_supported": "Se pòt pas installar aquesta aplicacion pr’amor que son format es pas pres en carga per vòstra version de YunoHost. Deuriatz considerar actualizar lo sistèma.",
|
||||||
}
|
"diagnosis_mail_fcrdns_ok": "Vòstre DNS inverse es corrèctament configurat !",
|
||||||
|
"diagnosis_mail_outgoing_port_25_ok": "Lo servidor de messatge SMTP pòt enviar de corrièls (lo pòrt 25 es pas blocat).",
|
||||||
|
"diagnosis_domain_expiration_warning": "D’unes domenis expiraràn lèu !",
|
||||||
|
"diagnosis_domain_expiration_success": "Vòstres domenis son enregistrats e expiraràn pas lèu.",
|
||||||
|
"diagnosis_domain_not_found_details": "Lo domeni {domain} existís pas a la basa de donadas WHOIS o a expirat !",
|
||||||
|
"diagnosis_domain_expiration_not_found": "Impossible de verificar la data d’expiracion d’unes domenis",
|
||||||
|
"backup_create_size_estimation": "L’archiu contendrà apr’aquí {size} de donadas.",
|
||||||
|
"app_restore_script_failed": "Una error s’es producha a l’interior del script de restauracion de l’aplicacion"
|
||||||
|
}
|
||||||
|
|
|
@ -9,8 +9,630 @@
|
||||||
"app_unknown": "未知应用",
|
"app_unknown": "未知应用",
|
||||||
"admin_password_changed": "管理密码已更改",
|
"admin_password_changed": "管理密码已更改",
|
||||||
"aborting": "正在放弃。",
|
"aborting": "正在放弃。",
|
||||||
"admin_password": "管理密码",
|
"admin_password": "管理员密码",
|
||||||
"app_start_restore": "正在恢复{app}……",
|
"app_start_restore": "正在恢复{app}……",
|
||||||
"action_invalid": "无效操作 '{action:s}'",
|
"action_invalid": "无效操作 '{action:s}'",
|
||||||
"ask_lastname": "姓"
|
"ask_lastname": "姓",
|
||||||
}
|
"diagnosis_everything_ok": "{category}一切看起来不错!",
|
||||||
|
"diagnosis_found_warnings": "找到{warnings}项,可能需要{category}进行改进。",
|
||||||
|
"diagnosis_found_errors_and_warnings": "发现与{category}相关的{errors}个重要问题(和{warnings}警告)!",
|
||||||
|
"diagnosis_found_errors": "发现与{category}相关的{errors}个重要问题!",
|
||||||
|
"diagnosis_ignored_issues": "(+ {nb_ignored} 个被忽略的问题)",
|
||||||
|
"diagnosis_cant_run_because_of_dep": "存在与{dep}相关的重要问题时,无法对{category}进行诊断。",
|
||||||
|
"diagnosis_cache_still_valid": "(高速缓存对于{category}诊断仍然有效。暂时不会对其进行重新诊断!)",
|
||||||
|
"diagnosis_failed_for_category": "诊断类别 '{category}'失败: {error}",
|
||||||
|
"diagnosis_display_tip": "要查看发现的问题,您可以转到Webadmin的“诊断”部分,或从命令行运行'yunohost diagnosis show --issues --human-readable'。",
|
||||||
|
"diagnosis_package_installed_from_sury": "一些系统软件包应降级",
|
||||||
|
"diagnosis_backports_in_sources_list": "看起来apt(程序包管理器)已配置为使用backports存储库。 除非您真的知道自己在做什么,否则我们强烈建议您不要从backports安装软件包,因为这很可能在您的系统上造成不稳定或冲突。",
|
||||||
|
"diagnosis_basesystem_ynh_inconsistent_versions": "您运行的YunoHost软件包版本不一致,很可能是由于升级失败或部分升级造成的。",
|
||||||
|
"diagnosis_basesystem_ynh_main_version": "服务器正在运行YunoHost {main_version} ({repo})",
|
||||||
|
"diagnosis_basesystem_ynh_single_version": "{package} 版本: {version} ({repo})",
|
||||||
|
"diagnosis_basesystem_kernel": "服务器正在运行Linux kernel {kernel_version}",
|
||||||
|
"diagnosis_basesystem_host": "服务器正在运行Debian {debian_version}",
|
||||||
|
"diagnosis_basesystem_hardware_model": "服务器型号为 {model}",
|
||||||
|
"diagnosis_basesystem_hardware": "服务器硬件架构为{virt} {arch}",
|
||||||
|
"custom_app_url_required": "您必须提供URL才能升级自定义应用 {app:s}",
|
||||||
|
"confirm_app_install_thirdparty": "危险! 该应用程序不是YunoHost的应用程序目录的一部分。 安装第三方应用程序可能会损害系统的完整性和安全性。 除非您知道自己在做什么,否则可能不应该安装它, 如果此应用无法运行或无法正常使用系统,将不会提供任何支持。如果您仍然愿意承担此风险,请输入'{answers:s}'",
|
||||||
|
"confirm_app_install_danger": "危险! 已知此应用仍处于实验阶段(如果未明确无法正常运行)! 除非您知道自己在做什么,否则可能不应该安装它。 如果此应用无法运行或无法正常使用系统,将不会提供任何支持。如果您仍然愿意承担此风险,请输入'{answers:s}'",
|
||||||
|
"confirm_app_install_warning": "警告:此应用程序可能可以运行,但未与YunoHost很好地集成。某些功能(例如单点登录和备份/还原)可能不可用, 仍要安装吗? [{answers:s}] ",
|
||||||
|
"certmanager_unable_to_parse_self_CA_name": "无法解析自签名授权的名称 (file: {file:s})",
|
||||||
|
"certmanager_self_ca_conf_file_not_found": "找不到用于自签名授权的配置文件(file: {file:s})",
|
||||||
|
"certmanager_no_cert_file": "无法读取域{domain:s}的证书文件(file: {file:s})",
|
||||||
|
"certmanager_hit_rate_limit": "最近已经为此域{domain:s}颁发了太多的证书。请稍后再试。有关更多详细信息,请参见https://letsencrypt.org/docs/rate-limits/",
|
||||||
|
"certmanager_warning_subdomain_dns_record": "子域'{subdomain:s}' 不能解析为与 '{domain:s}'相同的IP地址, 在修复此问题并重新生成证书之前,某些功能将不可用。",
|
||||||
|
"certmanager_domain_http_not_working": "域 {domain:s}似乎无法通过HTTP访问。请检查诊断中的“网络”类别以获取更多信息。(如果您知道自己在做什么,请使用“ --no-checks”关闭这些检查。)",
|
||||||
|
"certmanager_domain_dns_ip_differs_from_public_ip": "域'{domain:s}' 的DNS记录与此服务器的IP不同。请检查诊断中的“ DNS记录”(基本)类别,以获取更多信息。 如果您最近修改了A记录,请等待它传播(某些DNS传播检查器可在线获得)。 (如果您知道自己在做什么,请使用“ --no-checks”关闭这些检查。)",
|
||||||
|
"certmanager_domain_cert_not_selfsigned": "域 {domain:s} 的证书不是自签名的, 您确定要更换它吗?(使用“ --force”这样做。)",
|
||||||
|
"certmanager_domain_not_diagnosed_yet": "尚无域{domain} 的诊断结果。请在诊断部分中针对“ DNS记录”和“ Web”类别重新运行诊断,以检查该域是否已准备好安装“Let's Encrypt”证书。(或者,如果您知道自己在做什么,请使用“ --no-checks”关闭这些检查。)",
|
||||||
|
"certmanager_certificate_fetching_or_enabling_failed": "尝试将新证书用于 {domain:s}无效...",
|
||||||
|
"certmanager_cert_signing_failed": "无法签署新证书",
|
||||||
|
"certmanager_cert_install_success_selfsigned": "为域 '{domain:s}'安装了自签名证书",
|
||||||
|
"certmanager_cert_renew_success": "为域 '{domain:s}'续订“Let's Encrypt”证书",
|
||||||
|
"certmanager_cert_install_success": "为域'{domain:s}'安装“Let's Encrypt”证书",
|
||||||
|
"certmanager_cannot_read_cert": "尝试为域 {domain:s}(file: {file:s})打开当前证书时发生错误,原因: {reason:s}",
|
||||||
|
"certmanager_attempt_to_replace_valid_cert": "您正在尝试覆盖域{domain:s}的有效证书!(使用--force绕过)",
|
||||||
|
"certmanager_attempt_to_renew_valid_cert": "域'{domain:s}'的证书不会过期!(如果知道自己在做什么,则可以使用--force)",
|
||||||
|
"certmanager_attempt_to_renew_nonLE_cert": "“Let's Encrypt”未颁发域'{domain:s}'的证书,无法自动续订!",
|
||||||
|
"certmanager_acme_not_configured_for_domain": "目前无法针对{domain}运行ACME挑战,因为其nginx conf缺少相应的代码段...请使用“yunohost tools regen-conf nginx --dry-run --with-diff”确保您的nginx配置是最新的。",
|
||||||
|
"backup_with_no_restore_script_for_app": "{app:s} 没有还原脚本,您将无法自动还原该应用程序的备份。",
|
||||||
|
"backup_with_no_backup_script_for_app": "应用'{app:s}'没有备份脚本。无视。",
|
||||||
|
"backup_unable_to_organize_files": "无法使用快速方法来组织档案中的文件",
|
||||||
|
"backup_system_part_failed": "无法备份'{part:s}'系统部分",
|
||||||
|
"backup_running_hooks": "正在运行备份挂钩...",
|
||||||
|
"backup_permission": "{app:s}的备份权限",
|
||||||
|
"backup_output_symlink_dir_broken": "您的存档目录'{path:s}' 是断开的符号链接。 也许您忘记了重新安装/装入或插入它指向的存储介质。",
|
||||||
|
"backup_output_directory_required": "您必须提供备份的输出目录",
|
||||||
|
"backup_output_directory_not_empty": "您应该选择一个空的输出目录",
|
||||||
|
"backup_output_directory_forbidden": "选择一个不同的输出目录。无法在/bin, /boot, /dev, /etc, /lib, /root, /run, /sbin, /sys, /usr, /var或/home/yunohost.backup/archives子文件夹中创建备份",
|
||||||
|
"backup_nothings_done": "没什么可保存的",
|
||||||
|
"backup_no_uncompress_archive_dir": "没有这样的未压缩存档目录",
|
||||||
|
"backup_mount_archive_for_restore": "正在准备存档以进行恢复...",
|
||||||
|
"backup_method_tar_finished": "TAR备份存档已创建",
|
||||||
|
"backup_method_custom_finished": "自定义备份方法'{method:s}' 已完成",
|
||||||
|
"backup_method_copy_finished": "备份副本已完成",
|
||||||
|
"backup_hook_unknown": "备用挂钩'{hook:s}'未知",
|
||||||
|
"backup_deleted": "备份已删除",
|
||||||
|
"backup_delete_error": "无法删除'{path:s}'",
|
||||||
|
"backup_custom_mount_error": "自定义备份方法无法通过“挂载”步骤",
|
||||||
|
"backup_custom_backup_error": "自定义备份方法无法通过“备份”步骤",
|
||||||
|
"backup_csv_creation_failed": "无法创建还原所需的CSV文件",
|
||||||
|
"backup_csv_addition_failed": "无法将文件添加到CSV文件中进行备份",
|
||||||
|
"backup_creation_failed": "无法创建备份存档",
|
||||||
|
"backup_create_size_estimation": "归档文件将包含约{size}个数据。",
|
||||||
|
"backup_couldnt_bind": "无法将 {src:s} 绑定到{dest:s}.",
|
||||||
|
"backup_copying_to_organize_the_archive": "复制{size:s} MB来整理档案",
|
||||||
|
"backup_cleaning_failed": "无法清理临时备份文件夹",
|
||||||
|
"backup_cant_mount_uncompress_archive": "无法将未压缩的归档文件挂载为写保护",
|
||||||
|
"backup_ask_for_copying_if_needed": "您是否要临时使用{size:s} MB进行备份?(由于无法使用更有效的方法准备某些文件,因此使用这种方式。)",
|
||||||
|
"backup_archive_writing_error": "无法将要备份的文件'{source:s}'(在归档文'{dest:s}'中命名)添加到压缩归档文件 '{archive:s}'s}”中",
|
||||||
|
"backup_archive_system_part_not_available": "该备份中系统部分'{part:s}'不可用",
|
||||||
|
"backup_archive_corrupted": "备份存档'{archive}' 似乎已损坏 : {error}",
|
||||||
|
"backup_archive_cant_retrieve_info_json": "无法加载档案'{archive}'的信息...无法检索到info.json(或者它不是有效的json)。",
|
||||||
|
"backup_archive_open_failed": "无法打开备份档案",
|
||||||
|
"backup_archive_name_unknown": "未知的本地备份档案名为'{name:s}'",
|
||||||
|
"backup_archive_name_exists": "具有该名称的备份存档已经存在。",
|
||||||
|
"backup_archive_broken_link": "无法访问备份存档(指向{path:s}的链接断开)",
|
||||||
|
"backup_archive_app_not_found": "在备份档案中找不到 {app:s}",
|
||||||
|
"backup_applying_method_tar": "创建备份TAR存档...",
|
||||||
|
"backup_applying_method_custom": "调用自定义备份方法'{method:s}'...",
|
||||||
|
"backup_applying_method_copy": "正在将所有文件复制到备份...",
|
||||||
|
"backup_app_failed": "无法备份{app:s}",
|
||||||
|
"backup_actually_backuping": "根据收集的文件创建备份档案...",
|
||||||
|
"backup_abstract_method": "此备份方法尚未实现",
|
||||||
|
"ask_password": "密码",
|
||||||
|
"ask_new_path": "新路径",
|
||||||
|
"ask_new_domain": "新域名",
|
||||||
|
"ask_new_admin_password": "新的管理密码",
|
||||||
|
"ask_main_domain": "主域",
|
||||||
|
"ask_firstname": "名",
|
||||||
|
"ask_user_domain": "用户的电子邮件地址和XMPP帐户要使用的域",
|
||||||
|
"apps_catalog_update_success": "应用程序目录已更新!",
|
||||||
|
"apps_catalog_obsolete_cache": "应用程序目录缓存为空或已过时。",
|
||||||
|
"apps_catalog_failed_to_download": "无法下载{apps_catalog} 应用目录: {error}",
|
||||||
|
"apps_catalog_updating": "正在更新应用程序目录…",
|
||||||
|
"apps_catalog_init_success": "应用目录系统已初始化!",
|
||||||
|
"apps_already_up_to_date": "所有应用程序都是最新的",
|
||||||
|
"app_packaging_format_not_supported": "无法安装此应用,因为您的YunoHost版本不支持其打包格式。 您应该考虑升级系统。",
|
||||||
|
"app_upgraded": "{app:s}upgraded",
|
||||||
|
"app_upgrade_some_app_failed": "某些应用无法升级",
|
||||||
|
"app_upgrade_script_failed": "应用升级脚本内部发生错误",
|
||||||
|
"app_upgrade_app_name": "现在升级{app} ...",
|
||||||
|
"app_upgrade_several_apps": "以下应用将被升级: {apps}",
|
||||||
|
"app_unsupported_remote_type": "应用程序使用的远程类型不受支持",
|
||||||
|
"app_start_backup": "正在收集要备份的文件,用于{app} ...",
|
||||||
|
"app_start_install": "{app}安装中...",
|
||||||
|
"app_sources_fetch_failed": "无法获取源文件,URL是否正确?",
|
||||||
|
"app_restore_script_failed": "应用还原脚本内部发生错误",
|
||||||
|
"app_restore_failed": "无法还原 {app:s}: {error:s}",
|
||||||
|
"app_remove_after_failed_install": "安装失败后删除应用程序...",
|
||||||
|
"app_requirements_unmeet": "{app}不符合要求,软件包{pkgname}({version}) 必须为{spec}",
|
||||||
|
"app_requirements_checking": "正在检查{app}所需的软件包...",
|
||||||
|
"app_removed": "{app:s} 已删除",
|
||||||
|
"app_not_properly_removed": "{app:s} 未正确删除",
|
||||||
|
"app_not_correctly_installed": "{app:s} 似乎安装不正确",
|
||||||
|
"app_not_upgraded": "应用程序'{failed_app}'升级失败,因此以下应用程序的升级已被取消: {apps}",
|
||||||
|
"app_manifest_install_ask_is_public": "该应用是否应该向匿名访问者公开?",
|
||||||
|
"app_manifest_install_ask_admin": "选择此应用的管理员用户",
|
||||||
|
"app_manifest_install_ask_password": "选择此应用的管理密码",
|
||||||
|
"additional_urls_already_removed": "权限'{permission:s}'的其他URL中已经删除了附加URL'{url:s}'",
|
||||||
|
"app_manifest_install_ask_path": "选择安装此应用的路径",
|
||||||
|
"app_manifest_install_ask_domain": "选择应安装此应用程序的域",
|
||||||
|
"app_manifest_invalid": "应用清单错误: {error}",
|
||||||
|
"app_location_unavailable": "该URL不可用,或与已安装的应用冲突:\n{apps:s}",
|
||||||
|
"app_label_deprecated": "不推荐使用此命令!请使用新命令 'yunohost user permission update'来管理应用标签。",
|
||||||
|
"app_make_default_location_already_used": "无法将'{app}' 设置为域上的默认应用,'{other_app}'已在使用'{domain}'",
|
||||||
|
"app_install_script_failed": "应用安装脚本内发生错误",
|
||||||
|
"app_install_failed": "无法安装 {app}: {error}",
|
||||||
|
"app_install_files_invalid": "这些文件无法安装",
|
||||||
|
"additional_urls_already_added": "附加URL '{url:s}' 已添加到权限'{permission:s}'的附加URL中",
|
||||||
|
"app_full_domain_unavailable": "抱歉,此应用必须安装在其自己的域中,但其他应用已安装在域“ {domain}”上。 您可以改用专用于此应用程序的子域。",
|
||||||
|
"app_extraction_failed": "无法解压缩安装文件",
|
||||||
|
"app_change_url_success": "{app:s} URL现在为 {domain:s}{path:s}",
|
||||||
|
"app_change_url_no_script": "应用程序'{app_name:s}'尚不支持URL修改. 也许您应该升级它。",
|
||||||
|
"app_change_url_identical_domains": "新旧domain / url_path是相同的('{domain:s}{path:s}'),无需执行任何操作。",
|
||||||
|
"app_change_url_failed_nginx_reload": "无法重新加载NGINX. 这是'nginx -t'的输出:\n{nginx_errors:s}",
|
||||||
|
"app_argument_required": "参数'{name:s}'为必填项",
|
||||||
|
"app_argument_password_no_default": "解析密码参数'{name}'时出错:出于安全原因,密码参数不能具有默认值",
|
||||||
|
"app_argument_invalid": "为参数'{name:s}'选择一个有效值: {error:s}",
|
||||||
|
"app_argument_choice_invalid": "对参数'{name:s}'使用以下选项之一'{choices:s}'",
|
||||||
|
"app_already_up_to_date": "{app:s} 已经是最新的",
|
||||||
|
"app_already_installed": "{app:s}已安装",
|
||||||
|
"app_action_broke_system": "该操作似乎破坏了以下重要服务:{services}",
|
||||||
|
"app_action_cannot_be_ran_because_required_services_down": "这些必需的服务应该正在运行以执行以下操作:{services},尝试重新启动它们以继续操作(考虑调查为什么它们出现故障)。",
|
||||||
|
"already_up_to_date": "无事可做。一切都已经是最新的了。",
|
||||||
|
"postinstall_low_rootfsspace": "根文件系统的总空间小于10 GB,这非常令人担忧!您可能很快就会用完磁盘空间!建议根文件系统至少有16GB, 如果尽管出现此警告仍要安装YunoHost,请使用--force-diskspace重新运行postinstall",
|
||||||
|
"port_already_opened": "{ip_version:s}个连接的端口 {port:d} 已打开",
|
||||||
|
"port_already_closed": "{ip_version:s}个连接的端口 {port:d} 已关闭",
|
||||||
|
"permission_require_account": "权限{permission}只对有账户的用户有意义,因此不能对访客启用。",
|
||||||
|
"permission_protected": "权限{permission}是受保护的。你不能向/从这个权限添加或删除访问者组。",
|
||||||
|
"permission_updated": "权限 '{permission:s}' 已更新",
|
||||||
|
"permission_update_failed": "无法更新权限 '{permission}': {error}",
|
||||||
|
"permission_not_found": "找不到权限'{permission:s}'",
|
||||||
|
"permission_deletion_failed": "无法删除权限 '{permission}': {error}",
|
||||||
|
"permission_deleted": "权限'{permission:s}' 已删除",
|
||||||
|
"permission_cant_add_to_all_users": "权限{permission}不能添加到所有用户。",
|
||||||
|
"regenconf_file_copy_failed": "无法将新的配置文件'{new}' 复制到'{conf}'",
|
||||||
|
"regenconf_file_backed_up": "将配置文件 '{conf}' 备份到 '{backup}'",
|
||||||
|
"regenconf_failed": "无法重新生成类别的配置: {categories}",
|
||||||
|
"regenconf_dry_pending_applying": "正在检查将应用于类别 '{category}'的待定配置…",
|
||||||
|
"regenconf_would_be_updated": "配置已更新为类别 '{category}'",
|
||||||
|
"regenconf_updated": "配置已针对'{category}'进行了更新",
|
||||||
|
"regenconf_now_managed_by_yunohost": "现在,配置文件'{conf}'由YunoHost(类别{category})管理。",
|
||||||
|
"regenconf_file_updated": "配置文件'{conf}' 已更新",
|
||||||
|
"regenconf_file_removed": "配置文件 '{conf}'已删除",
|
||||||
|
"regenconf_file_remove_failed": "无法删除配置文件 '{conf}'",
|
||||||
|
"regenconf_file_manually_removed": "配置文件'{conf}' 已手动删除,因此不会创建",
|
||||||
|
"regenconf_file_manually_modified": "配置文件'{conf}' 已被手动修改,不会被更新",
|
||||||
|
"regenconf_need_to_explicitly_specify_ssh": "ssh配置已被手动修改,但是您需要使用--force明确指定类别“ ssh”才能实际应用更改。",
|
||||||
|
"restore_nothings_done": "什么都没有恢复",
|
||||||
|
"restore_may_be_not_enough_disk_space": "您的系统似乎没有足够的空间(可用空间: {free_space:d} B,所需空间: {needed_space:d} B,安全系数: {margin:d} B)",
|
||||||
|
"restore_hook_unavailable": "'{part:s}'的恢复脚本在您的系统上和归档文件中均不可用",
|
||||||
|
"restore_failed": "无法还原系统",
|
||||||
|
"restore_extracting": "正在从存档中提取所需文件…",
|
||||||
|
"restore_confirm_yunohost_installed": "您真的要还原已经安装的系统吗? [{answers:s}]",
|
||||||
|
"restore_complete": "恢复完成",
|
||||||
|
"restore_cleaning_failed": "无法清理临时还原目录",
|
||||||
|
"restore_backup_too_old": "无法还原此备份存档,因为它来自过旧的YunoHost版本。",
|
||||||
|
"restore_already_installed_apps": "以下应用已安装,因此无法还原: {apps}",
|
||||||
|
"restore_already_installed_app": "已安装ID为'{app:s}' 的应用",
|
||||||
|
"regex_with_only_domain": "您不能将正则表达式用于域,而只能用于路径",
|
||||||
|
"regex_incompatible_with_tile": "/!\\ 打包者!权限“ {permission}”的show_tile设置为“ true”,因此您不能将正则表达式URL定义为主URL",
|
||||||
|
"service_cmd_exec_failed": "无法执行命令'{command:s}'",
|
||||||
|
"service_already_stopped": "服务'{service:s}'已被停止",
|
||||||
|
"service_already_started": "服务'{service:s}' 已在运行",
|
||||||
|
"service_added": "服务 '{service:s}'已添加",
|
||||||
|
"service_add_failed": "无法添加服务 '{service:s}'",
|
||||||
|
"server_reboot_confirm": "服务器会立即重启,确定吗? [{answers:s}]",
|
||||||
|
"server_reboot": "服务器将重新启动",
|
||||||
|
"server_shutdown_confirm": "服务器会立即关闭,确定吗?[{answers:s}]",
|
||||||
|
"server_shutdown": "服务器将关闭",
|
||||||
|
"root_password_replaced_by_admin_password": "您的root密码已替换为您的管理员密码。",
|
||||||
|
"root_password_desynchronized": "管理员密码已更改,但是YunoHost无法将此密码传播到root密码!",
|
||||||
|
"restore_system_part_failed": "无法还原 '{part:s}'系统部分",
|
||||||
|
"restore_running_hooks": "运行修复挂钩…",
|
||||||
|
"restore_running_app_script": "正在还原应用'{app:s}'…",
|
||||||
|
"restore_removing_tmp_dir_failed": "无法删除旧的临时目录",
|
||||||
|
"service_description_yunohost-firewall": "管理打开和关闭服务的连接端口",
|
||||||
|
"service_description_yunohost-api": "管理YunoHost Web界面与系统之间的交互",
|
||||||
|
"service_description_ssh": "允许您通过终端(SSH协议)远程连接到服务器",
|
||||||
|
"service_description_slapd": "存储用户、域名和相关信息",
|
||||||
|
"service_description_rspamd": "过滤垃圾邮件和其他与电子邮件相关的功能",
|
||||||
|
"service_description_redis-server": "用于快速数据访问,任务队列和程序之间通信的专用数据库",
|
||||||
|
"service_description_postfix": "用于发送和接收电子邮件",
|
||||||
|
"service_description_php7.3-fpm": "使用NGINX运行用PHP编写的应用程序",
|
||||||
|
"service_description_nginx": "为你的服务器上托管的所有网站提供服务或访问",
|
||||||
|
"service_description_mysql": "存储应用程序数据(SQL数据库)",
|
||||||
|
"service_description_metronome": "管理XMPP即时消息传递帐户",
|
||||||
|
"service_description_fail2ban": "防止来自互联网的暴力攻击和其他类型的攻击",
|
||||||
|
"service_description_dovecot": "允许电子邮件客户端访问/获取电子邮件(通过IMAP和POP3)",
|
||||||
|
"service_description_dnsmasq": "处理域名解析(DNS)",
|
||||||
|
"service_description_avahi-daemon": "允许您使用本地网络中的“ yunohost.local”访问服务器",
|
||||||
|
"service_started": "服务 '{service:s}' 已启动",
|
||||||
|
"service_start_failed": "无法启动服务 '{service:s}'\n\n最近的服务日志:{logs:s}",
|
||||||
|
"service_reloaded_or_restarted": "服务'{service:s}'已重新加载或重新启动",
|
||||||
|
"service_reload_or_restart_failed": "无法重新加载或重新启动服务'{service:s}'\n\n最近的服务日志:{logs:s}",
|
||||||
|
"service_restarted": "服务'{service:s}' 已重新启动",
|
||||||
|
"service_restart_failed": "无法重新启动服务 '{service:s}'\n\n最近的服务日志:{logs:s}",
|
||||||
|
"service_reloaded": "服务 '{service:s}' 已重新加载",
|
||||||
|
"service_reload_failed": "无法重新加载服务'{service:s}'\n\n最近的服务日志:{logs:s}",
|
||||||
|
"service_removed": "服务 '{service:s}' 已删除",
|
||||||
|
"service_remove_failed": "无法删除服务'{service:s}'",
|
||||||
|
"service_regen_conf_is_deprecated": "不建议使用'yunohost service regen-conf' ! 请改用'yunohost tools regen-conf'。",
|
||||||
|
"service_enabled": "现在,服务'{service:s}' 将在系统引导过程中自动启动。",
|
||||||
|
"service_enable_failed": "无法使服务 '{service:s}'在启动时自动启动。\n\n最近的服务日志:{logs:s}",
|
||||||
|
"service_disabled": "系统启动时,服务 '{service:s}' 将不再启动。",
|
||||||
|
"service_disable_failed": "服务'{service:s}'在启动时无法启动。\n\n最近的服务日志:{logs:s}",
|
||||||
|
"tools_upgrade_regular_packages": "现在正在升级 'regular' (与yunohost无关)的软件包…",
|
||||||
|
"tools_upgrade_cant_unhold_critical_packages": "无法解压关键软件包…",
|
||||||
|
"tools_upgrade_cant_hold_critical_packages": "无法保存重要软件包…",
|
||||||
|
"tools_upgrade_cant_both": "无法同时升级系统和应用程序",
|
||||||
|
"tools_upgrade_at_least_one": "请指定'apps', 或 'system'",
|
||||||
|
"this_action_broke_dpkg": "此操作破坏了dpkg / APT(系统软件包管理器)...您可以尝试通过SSH连接并运行`sudo apt install --fix-broken`和/或`sudo dpkg --configure -a`来解决此问题。",
|
||||||
|
"system_username_exists": "用户名已存在于系统用户列表中",
|
||||||
|
"system_upgraded": "系统升级",
|
||||||
|
"ssowat_conf_updated": "SSOwat配置已更新",
|
||||||
|
"ssowat_conf_generated": "SSOwat配置已重新生成",
|
||||||
|
"show_tile_cant_be_enabled_for_regex": "你不能启用'show_tile',因为权限'{permission}'的URL是一个重合词",
|
||||||
|
"show_tile_cant_be_enabled_for_url_not_defined": "您现在无法启用 'show_tile' ,因为您必须先为权限'{permission}'定义一个URL",
|
||||||
|
"service_unknown": "未知服务 '{service:s}'",
|
||||||
|
"service_stopped": "服务'{service:s}' 已停止",
|
||||||
|
"service_stop_failed": "无法停止服务'{service:s}'\n\n最近的服务日志:{logs:s}",
|
||||||
|
"upnp_dev_not_found": "找不到UPnP设备",
|
||||||
|
"upgrading_packages": "升级程序包...",
|
||||||
|
"upgrade_complete": "升级完成",
|
||||||
|
"updating_apt_cache": "正在获取系统软件包的可用升级...",
|
||||||
|
"update_apt_cache_warning": "更新APT缓存(Debian的软件包管理器)时出了点问题。这是sources.list行的转储,这可能有助于确定有问题的行:\n{sourceslist}",
|
||||||
|
"update_apt_cache_failed": "无法更新APT的缓存(Debian的软件包管理器)。这是sources.list行的转储,这可能有助于确定有问题的行:\n{sourceslist}",
|
||||||
|
"unrestore_app": "{app:s} 将不会恢复",
|
||||||
|
"unlimit": "没有配额",
|
||||||
|
"unknown_main_domain_path": "'{app}'的域或路径未知。您需要指定一个域和一个路径,以便能够指定用于许可的URL。",
|
||||||
|
"unexpected_error": "出乎意料的错误: {error}",
|
||||||
|
"unbackup_app": "{app:s} 将不会保存",
|
||||||
|
"tools_upgrade_special_packages_completed": "YunoHost软件包升级完成。\n按[Enter]返回命令行",
|
||||||
|
"tools_upgrade_special_packages_explanation": "特殊升级将在后台继续。请在接下来的10分钟内(取决于硬件速度)在服务器上不要执行任何其他操作。此后,您可能必须重新登录Webadmin。升级日志将在“工具”→“日志”(在Webadmin中)或使用'yunohost log list'(从命令行)中可用。",
|
||||||
|
"tools_upgrade_special_packages": "现在正在升级'special'(与yunohost相关的)程序包…",
|
||||||
|
"tools_upgrade_regular_packages_failed": "无法升级软件包: {packages_list}",
|
||||||
|
"yunohost_installing": "正在安装YunoHost ...",
|
||||||
|
"yunohost_configured": "现在已配置YunoHost",
|
||||||
|
"yunohost_already_installed": "YunoHost已经安装",
|
||||||
|
"user_updated": "用户信息已更改",
|
||||||
|
"user_update_failed": "无法更新用户{user}: {error}",
|
||||||
|
"user_unknown": "未知用户: {user:s}",
|
||||||
|
"user_home_creation_failed": "无法为用户创建'home'文件夹",
|
||||||
|
"user_deletion_failed": "无法删除用户 {user}: {error}",
|
||||||
|
"user_deleted": "用户已删除",
|
||||||
|
"user_creation_failed": "无法创建用户 {user}: {error}",
|
||||||
|
"user_created": "用户创建",
|
||||||
|
"user_already_exists": "用户'{user}' 已存在",
|
||||||
|
"upnp_port_open_failed": "无法通过UPnP打开端口",
|
||||||
|
"upnp_enabled": "UPnP已启用",
|
||||||
|
"upnp_disabled": "UPnP已禁用",
|
||||||
|
"yunohost_not_installed": "YunoHost没有正确安装,请运行 'yunohost tools postinstall'",
|
||||||
|
"yunohost_postinstall_end_tip": "后期安装完成! 为了最终完成你的设置,请考虑:\n -通过webadmin的“用户”部分添加第一个用户(或在命令行中'yunohost user create <username>' );\n -通过网络管理员的“诊断”部分(或命令行中的'yunohost diagnosis run')诊断潜在问题;\n -阅读管理文档中的“完成安装设置”和“了解YunoHost”部分: https://yunohost.org/admindoc.",
|
||||||
|
"operation_interrupted": "该操作是否被手动中断?",
|
||||||
|
"invalid_regex": "无效的正则表达式:'{regex:s}'",
|
||||||
|
"installation_failed": "安装出现问题",
|
||||||
|
"installation_complete": "安装完成",
|
||||||
|
"hook_name_unknown": "未知的钩子名称 '{name:s}'",
|
||||||
|
"hook_list_by_invalid": "此属性不能用于列出钩子",
|
||||||
|
"hook_json_return_error": "无法读取来自钩子 {path:s}的返回,错误: {msg:s}。原始内容: {raw_content}",
|
||||||
|
"hook_exec_not_terminated": "脚本未正确完成: {path:s}",
|
||||||
|
"hook_exec_failed": "无法运行脚本: {path:s}",
|
||||||
|
"group_user_not_in_group": "用户{user}不在组{group}中",
|
||||||
|
"group_user_already_in_group": "用户{user}已在组{group}中",
|
||||||
|
"group_update_failed": "无法更新群组'{group}': {error}",
|
||||||
|
"group_updated": "群组 '{group}' 已更新",
|
||||||
|
"group_unknown": "群组 '{group:s}' 未知",
|
||||||
|
"group_deletion_failed": "无法删除群组'{group}': {error}",
|
||||||
|
"group_deleted": "群组'{group}' 已删除",
|
||||||
|
"group_cannot_be_deleted": "无法手动删除组{group}。",
|
||||||
|
"group_cannot_edit_primary_group": "不能手动编辑 '{group}' 组。它是旨在仅包含一个特定用户的主要组。",
|
||||||
|
"group_cannot_edit_visitors": "组“访客”不能手动编辑。这是一个代表匿名访问者的特殊小组",
|
||||||
|
"group_cannot_edit_all_users": "组“ all_users”不能手动编辑。这是一个特殊的组,旨在包含所有在YunoHost中注册的用户",
|
||||||
|
"group_creation_failed": "无法创建组'{group}': {error}",
|
||||||
|
"group_created": "创建了 '{group}'组",
|
||||||
|
"group_already_exist_on_system_but_removing_it": "系统组中已经存在组{group},但是YunoHost会将其删除...",
|
||||||
|
"group_already_exist_on_system": "系统组中已经存在组{group}",
|
||||||
|
"group_already_exist": "群组{group}已经存在",
|
||||||
|
"good_practices_about_admin_password": "现在,您将设置一个新的管理员密码。 密码至少应包含8个字符。并且出于安全考虑建议使用较长的密码同时尽可能使用各种字符(大写,小写,数字和特殊字符)。",
|
||||||
|
"global_settings_unknown_type": "意外的情况,设置{setting:s}似乎具有类型 {unknown_type:s} ,但是系统不支持该类型。",
|
||||||
|
"global_settings_setting_backup_compress_tar_archives": "创建新备份时,请压缩档案(.tar.gz) ,而不要压缩未压缩的档案(.tar)。注意:启用此选项意味着创建较小的备份存档,但是初始备份过程将明显更长且占用大量CPU。",
|
||||||
|
"global_settings_setting_smtp_relay_password": "SMTP中继主机密码",
|
||||||
|
"global_settings_setting_smtp_relay_user": "SMTP中继用户帐户",
|
||||||
|
"global_settings_setting_smtp_relay_port": "SMTP中继端口",
|
||||||
|
"global_settings_setting_smtp_allow_ipv6": "允许使用IPv6接收和发送邮件",
|
||||||
|
"global_settings_setting_ssowat_panel_overlay_enabled": "启用SSOwat面板覆盖",
|
||||||
|
"global_settings_setting_service_ssh_allow_deprecated_dsa_hostkey": "允许使用DSA主机密钥进行SSH守护程序配置(不建议使用)",
|
||||||
|
"global_settings_unknown_setting_from_settings_file": "设置中的未知密钥:'{setting_key:s}',将其丢弃并保存在/etc/yunohost/settings-unknown.json中",
|
||||||
|
"global_settings_setting_security_ssh_port": "SSH端口",
|
||||||
|
"global_settings_setting_security_postfix_compatibility": "Postfix服务器的兼容性与安全性的权衡。影响密码(以及其他与安全性有关的方面)",
|
||||||
|
"global_settings_setting_security_ssh_compatibility": "SSH服务器的兼容性与安全性的权衡。影响密码(以及其他与安全性有关的方面)",
|
||||||
|
"global_settings_setting_security_password_user_strength": "用户密码强度",
|
||||||
|
"global_settings_setting_security_password_admin_strength": "管理员密码强度",
|
||||||
|
"global_settings_setting_security_nginx_compatibility": "Web服务器NGINX的兼容性与安全性的权衡,影响密码(以及其他与安全性有关的方面)",
|
||||||
|
"global_settings_setting_pop3_enabled": "为邮件服务器启用POP3协议",
|
||||||
|
"global_settings_reset_success": "以前的设置现在已经备份到{path:s}",
|
||||||
|
"global_settings_key_doesnt_exists": "全局设置中不存在键'{settings_key:s}',您可以通过运行 'yunohost settings list'来查看所有可用键",
|
||||||
|
"global_settings_cant_write_settings": "无法保存设置文件,原因: {reason:s}",
|
||||||
|
"global_settings_cant_serialize_settings": "无法序列化设置数据,原因: {reason:s}",
|
||||||
|
"global_settings_cant_open_settings": "无法打开设置文件,原因: {reason:s}",
|
||||||
|
"global_settings_bad_type_for_setting": "设置 {setting:s},的类型错误,已收到{received_type:s},预期{expected_type:s}",
|
||||||
|
"global_settings_bad_choice_for_enum": "设置 {setting:s}的错误选择,收到了 '{choice:s}',但可用的选择有: {available_choices:s}",
|
||||||
|
"firewall_rules_cmd_failed": "某些防火墙规则命令失败。日志中的更多信息。",
|
||||||
|
"firewall_reloaded": "重新加载防火墙",
|
||||||
|
"firewall_reload_failed": "无法重新加载防火墙",
|
||||||
|
"file_does_not_exist": "文件{path:s} 不存在。",
|
||||||
|
"field_invalid": "无效的字段'{:s}'",
|
||||||
|
"experimental_feature": "警告:此功能是实验性的,不稳定,请不要使用它,除非您知道自己在做什么。",
|
||||||
|
"extracting": "提取中...",
|
||||||
|
"dyndns_unavailable": "域'{domain:s}' 不可用。",
|
||||||
|
"dyndns_domain_not_provided": "DynDNS提供者 {provider:s} 无法提供域 {domain:s}。",
|
||||||
|
"dyndns_registration_failed": "无法注册DynDNS域: {error:s}",
|
||||||
|
"dyndns_registered": "DynDNS域已注册",
|
||||||
|
"dyndns_provider_unreachable": "无法联系DynDNS提供者 {provider}: 您的YunoHost未正确连接到Internet或dynette服务器已关闭。",
|
||||||
|
"dyndns_no_domain_registered": "没有在DynDNS中注册的域",
|
||||||
|
"dyndns_key_not_found": "找不到该域的DNS密钥",
|
||||||
|
"dyndns_key_generating": "正在生成DNS密钥...可能需要一段时间。",
|
||||||
|
"dyndns_ip_updated": "在DynDNS上更新了您的IP",
|
||||||
|
"dyndns_ip_update_failed": "无法将IP地址更新到DynDNS",
|
||||||
|
"dyndns_could_not_check_available": "无法检查{provider:s}上是否可用 {domain:s}。",
|
||||||
|
"dyndns_could_not_check_provide": "无法检查{provider:s}是否可以提供 {domain:s}.",
|
||||||
|
"dpkg_lock_not_available": "该命令现在无法运行,因为另一个程序似乎正在使用dpkg锁(系统软件包管理器)",
|
||||||
|
"dpkg_is_broken": "您现在不能执行此操作,因为dpkg / APT(系统软件包管理器)似乎处于损坏状态……您可以尝试通过SSH连接并运行sudo apt install --fix-broken和/或 sudo dpkg --configure-a 来解决此问题.",
|
||||||
|
"downloading": "下载中…",
|
||||||
|
"done": "完成",
|
||||||
|
"domains_available": "可用域:",
|
||||||
|
"domain_unknown": "未知网域",
|
||||||
|
"domain_name_unknown": "域'{domain}'未知",
|
||||||
|
"domain_uninstall_app_first": "这些应用程序仍安装在您的域中:\n{apps}\n\n请先使用 'yunohost app remove the_app_id' 将其卸载,或使用 'yunohost app change-url the_app_id'将其移至另一个域,然后再继续删除域",
|
||||||
|
"domain_remove_confirm_apps_removal": "删除该域将删除这些应用程序:\n{apps}\n\n您确定要这样做吗? [{answers}]",
|
||||||
|
"domain_hostname_failed": "无法设置新的主机名。稍后可能会引起问题(可能没问题)。",
|
||||||
|
"domain_exists": "该域已存在",
|
||||||
|
"domain_dyndns_root_unknown": "未知的DynDNS根域",
|
||||||
|
"domain_dyndns_already_subscribed": "您已经订阅了DynDNS域",
|
||||||
|
"domain_dns_conf_is_just_a_recommendation": "本页向你展示了*推荐的*配置。它并*不*为你配置DNS。你有责任根据该建议在你的DNS注册商处配置你的DNS区域。",
|
||||||
|
"domain_deletion_failed": "无法删除域 {domain}: {error}",
|
||||||
|
"domain_deleted": "域已删除",
|
||||||
|
"domain_creation_failed": "无法创建域 {domain}: {error}",
|
||||||
|
"domain_created": "域已创建",
|
||||||
|
"domain_cert_gen_failed": "无法生成证书",
|
||||||
|
"diagnosis_sshd_config_inconsistent": "看起来SSH端口是在/etc/ssh/sshd_config中手动修改, 从YunoHost 4.2开始,可以使用新的全局设置“ security.ssh.port”来避免手动编辑配置。",
|
||||||
|
"diagnosis_sshd_config_insecure": "SSH配置似乎已被手动修改,并且是不安全的,因为它不包含“ AllowGroups”或“ AllowUsers”指令以限制对授权用户的访问。",
|
||||||
|
"diagnosis_processes_killed_by_oom_reaper": "该系统最近杀死了某些进程,因为内存不足。这通常是系统内存不足或进程占用大量内存的征兆。 杀死进程的摘要:\n{kills_summary}",
|
||||||
|
"diagnosis_never_ran_yet": "看来这台服务器是最近安装的,还没有诊断报告可以显示。您应该首先从Web管理员运行完整的诊断,或者从命令行使用'yunohost diagnosis run' 。",
|
||||||
|
"diagnosis_unknown_categories": "以下类别是未知的: {categories}",
|
||||||
|
"diagnosis_http_nginx_conf_not_up_to_date_details": "要解决这种情况,请使用<cmd>yunohost tools regen-conf nginx --dry-run --with-diff</cmd>,如果还可以,请使用<cmd>yunohost tools regen-conf nginx --force</cmd>应用更改。",
|
||||||
|
"diagnosis_http_nginx_conf_not_up_to_date": "该域的nginx配置似乎已被手动修改,并阻止YunoHost诊断它是否可以在HTTP上访问。",
|
||||||
|
"diagnosis_http_partially_unreachable": "尽管域{domain}可以在 IPv{failed}中工作,但它似乎无法通过HTTP从外部网络通过HTTP到达IPv{passed}。",
|
||||||
|
"diagnosis_mail_outgoing_port_25_blocked_details": "您应该首先尝试在Internet路由器界面或主机提供商界面中取消阻止传出端口25。(某些托管服务提供商可能会要求您为此发送支持请求)。",
|
||||||
|
"diagnosis_mail_outgoing_port_25_blocked": "由于传出端口25在IPv{ipversion}中被阻止,因此SMTP邮件服务器无法向其他服务器发送电子邮件。",
|
||||||
|
"diagnosis_mail_outgoing_port_25_ok": "SMTP邮件服务器能够发送电子邮件(未阻止出站端口25)。",
|
||||||
|
"diagnosis_swap_tip": "请注意,如果服务器在SD卡或SSD存储器上托管交换,则可能会大大缩短设备的预期寿命。",
|
||||||
|
"diagnosis_swap_ok": "系统有{total}个交换!",
|
||||||
|
"diagnosis_swap_notsomuch": "系统只有{total}个交换。您应该考虑至少使用{recommended},以避免系统内存不足的情况。",
|
||||||
|
"diagnosis_swap_none": "系统根本没有交换分区。您应该考虑至少添加{recommended}交换,以避免系统内存不足的情况。",
|
||||||
|
"diagnosis_http_unreachable": "网域{domain}从本地网络外通过HTTP无法访问。",
|
||||||
|
"diagnosis_http_connection_error": "连接错误:无法连接到请求的域,很可能无法访问。",
|
||||||
|
"diagnosis_http_ok": "域{domain}可以通过HTTP从本地网络外部访问。",
|
||||||
|
"diagnosis_http_could_not_diagnose_details": "错误: {error}",
|
||||||
|
"diagnosis_http_could_not_diagnose": "无法诊断域是否可以从IPv{ipversion}中从外部访问。",
|
||||||
|
"diagnosis_http_hairpinning_issue_details": "这可能是由于您的ISP 光猫/路由器。因此,使用域名或全局IP时,来自本地网络外部的人员将能够按预期访问您的服务器,但无法访问来自本地网络内部的人员(可能与您一样)。您可以通过查看<a href='https://yunohost.org/dns_local_network'> https://yunohost.org/dns_local_network </a>来改善这种情况",
|
||||||
|
"diagnosis_http_hairpinning_issue": "您的本地网络似乎没有启用NAT回环功能。",
|
||||||
|
"diagnosis_ports_forwarding_tip": "要解决此问题,您很可能需要按照<a href='https://yunohost.org/isp_box_config'> https://yunohost.org/isp_box_config </a>中的说明,在Internet路由器上配置端口转发",
|
||||||
|
"diagnosis_ports_needed_by": "{category}功能(服务{service})需要公开此端口",
|
||||||
|
"diagnosis_ports_ok": "可以从外部访问端口{port}。",
|
||||||
|
"diagnosis_ports_partially_unreachable": "无法从外部通过IPv{failed}访问端口{port}。",
|
||||||
|
"diagnosis_ports_unreachable": "无法从外部访问端口{port}。",
|
||||||
|
"diagnosis_ports_could_not_diagnose_details": "错误: {error}",
|
||||||
|
"diagnosis_ports_could_not_diagnose": "无法诊断端口在IPv{ipversion}中是否可以从外部访问。",
|
||||||
|
"diagnosis_description_regenconf": "系统配置",
|
||||||
|
"diagnosis_description_mail": "电子邮件",
|
||||||
|
"diagnosis_description_web": "网页",
|
||||||
|
"diagnosis_description_ports": "开放端口",
|
||||||
|
"diagnosis_description_systemresources": "系统资源",
|
||||||
|
"diagnosis_description_services": "服务状态检查",
|
||||||
|
"diagnosis_description_dnsrecords": "DNS记录",
|
||||||
|
"diagnosis_description_ip": "互联网连接",
|
||||||
|
"diagnosis_description_basesystem": "基本系统",
|
||||||
|
"diagnosis_security_vulnerable_to_meltdown_details": "要解决此问题,您应该升级系统并重新启动以加载新的Linux内核(如果无法使用,请与您的服务器提供商联系)。有关更多信息,请参见https://meltdownattack.com/。",
|
||||||
|
"diagnosis_security_vulnerable_to_meltdown": "你似乎容易受到Meltdown关键安全漏洞的影响",
|
||||||
|
"diagnosis_regenconf_manually_modified": "配置文件 <code>{file}</code> 似乎已被手动修改。",
|
||||||
|
"diagnosis_regenconf_allgood": "所有配置文件均符合建议的配置!",
|
||||||
|
"diagnosis_mail_queue_too_big": "邮件队列中的待处理电子邮件过多({nb_pending} emails)",
|
||||||
|
"diagnosis_mail_queue_unavailable_details": "错误: {error}",
|
||||||
|
"diagnosis_mail_queue_unavailable": "无法查询队列中待处理电子邮件的数量",
|
||||||
|
"diagnosis_mail_queue_ok": "邮件队列中有{nb_pending} 个待处理的电子邮件",
|
||||||
|
"diagnosis_mail_blacklist_website": "确定列出的原因并加以修复后,请随时在{blacklist_website}上要求删除您的IP或域名",
|
||||||
|
"diagnosis_mail_blacklist_reason": "黑名单的原因是: {reason}",
|
||||||
|
"diagnosis_mail_blacklist_listed_by": "您的IP或域<code>{item}</code> 已在{blacklist_name}上列入黑名单",
|
||||||
|
"diagnosis_mail_blacklist_ok": "该服务器使用的IP和域似乎未列入黑名单",
|
||||||
|
"diagnosis_mail_fcrdns_different_from_ehlo_domain_details": "当前反向DNS值为: <code>{rdns_domain}</code><br> 期待值:<code>{ehlo_domain}</code>",
|
||||||
|
"diagnosis_mail_fcrdns_different_from_ehlo_domain": "反向DNS未在 IPv{ipversion}中正确配置。某些电子邮件可能无法传递或可能被标记为垃圾邮件。",
|
||||||
|
"diagnosis_mail_fcrdns_nok_details": "您应该首先尝试在Internet路由器界面或托管服务提供商界面中使用<code>{ehlo_domain}</code>配置反向DNS。(某些托管服务提供商可能会要求您为此发送支持票)。",
|
||||||
|
"diagnosis_mail_fcrdns_dns_missing": "IPv{ipversion}中未定义反向DNS。某些电子邮件可能无法传递或可能被标记为垃圾邮件。",
|
||||||
|
"diagnosis_mail_fcrdns_ok": "您的反向DNS已正确配置!",
|
||||||
|
"diagnosis_mail_ehlo_could_not_diagnose_details": "错误: {error}",
|
||||||
|
"diagnosis_mail_ehlo_could_not_diagnose": "无法诊断Postfix邮件服务器是否可以从IPv{ipversion}中从外部访问。",
|
||||||
|
"diagnosis_mail_ehlo_wrong": "不同的SMTP邮件服务器在IPv{ipversion}上进行应答。您的服务器可能无法接收电子邮件。",
|
||||||
|
"diagnosis_mail_ehlo_bad_answer_details": "这可能是由于其他计算机而不是您的服务器在应答。",
|
||||||
|
"diagnosis_mail_ehlo_bad_answer": "一个非SMTP服务在IPv{ipversion}的25端口应答",
|
||||||
|
"diagnosis_mail_ehlo_unreachable": "SMTP邮件服务器在IPv{ipversion}上无法从外部访问。它将无法接收电子邮件。",
|
||||||
|
"diagnosis_mail_ehlo_ok": "SMTP邮件服务器可以从外部访问,因此可以接收电子邮件!",
|
||||||
|
"diagnosis_services_bad_status": "服务{service}为 {status} :(",
|
||||||
|
"diagnosis_services_conf_broken": "服务{service}的配置已损坏!",
|
||||||
|
"diagnosis_services_running": "服务{service}正在运行!",
|
||||||
|
"diagnosis_domain_expires_in": "{domain}在{days}天后到期。",
|
||||||
|
"diagnosis_domain_expiration_error": "有些域很快就会过期!",
|
||||||
|
"diagnosis_domain_expiration_warning": "一些域即将过期!",
|
||||||
|
"diagnosis_domain_expiration_success": "您的域已注册,并且不会很快过期。",
|
||||||
|
"diagnosis_domain_expiration_not_found_details": "域{domain}的WHOIS信息似乎不包含有关到期日期的信息?",
|
||||||
|
"diagnosis_domain_not_found_details": "域{domain}在WHOIS数据库中不存在或已过期!",
|
||||||
|
"diagnosis_domain_expiration_not_found": "无法检查某些域的到期日期",
|
||||||
|
"diagnosis_dns_missing_record": "根据建议的DNS配置,您应该添加带有以下信息的DNS记录。<br>类型:<code>{type}</code><br>名称:<code>{name}</code><br>值:<code>{value}</code>",
|
||||||
|
"diagnosis_dns_bad_conf": "域{domain}(类别{category})的某些DNS记录丢失或不正确",
|
||||||
|
"diagnosis_dns_good_conf": "已为域{domain}(类别{category})正确配置了DNS记录",
|
||||||
|
"diagnosis_ip_weird_resolvconf_details": "文件<code> /etc/resolv.conf </code>应该是指向<code> /etc/resolvconf/run/resolv.conf </code>本身的符号链接,指向<code> 127.0.0.1 </code> (dnsmasq)。如果要手动配置DNS解析器,请编辑<code> /etc/resolv.dnsmasq.conf</code>。",
|
||||||
|
"diagnosis_ip_weird_resolvconf": "DNS解析似乎可以正常工作,但是您似乎正在使用自定义的<code> /etc/resolv.conf </code>。",
|
||||||
|
"diagnosis_ip_broken_resolvconf": "域名解析在您的服务器上似乎已损坏,这似乎与<code> /etc/resolv.conf </code>有关,但未指向<code> 127.0.0.1 </code>。",
|
||||||
|
"diagnosis_ip_broken_dnsresolution": "域名解析似乎由于某种原因而被破坏...防火墙是否阻止了DNS请求?",
|
||||||
|
"diagnosis_ip_dnsresolution_working": "域名解析正常!",
|
||||||
|
"diagnosis_ip_not_connected_at_all": "服务器似乎根本没有连接到Internet?",
|
||||||
|
"diagnosis_ip_local": "本地IP:<code>{local}</code>",
|
||||||
|
"diagnosis_ip_global": "全局IP:<code> {global}</code>",
|
||||||
|
"diagnosis_ip_no_ipv6_tip": "正常运行的IPv6并不是服务器正常运行所必需的,但是对于整个Internet的健康而言,则更好。通常,IPv6应该由系统或您的提供商自动配置(如果可用)。否则,您可能需要按照此处的文档中的说明手动配置一些内容:<a href='https://yunohost.org/#/ipv6'> https://yunohost.org/#/ipv6</a>。如果您无法启用IPv6或对您来说太过困难,也可以安全地忽略此警告。",
|
||||||
|
"diagnosis_ip_no_ipv6": "服务器没有可用的IPv6。",
|
||||||
|
"diagnosis_ip_connected_ipv6": "服务器通过IPv6连接到Internet!",
|
||||||
|
"diagnosis_ip_no_ipv4": "服务器没有可用的IPv4。",
|
||||||
|
"diagnosis_ip_connected_ipv4": "服务器通过IPv4连接到Internet!",
|
||||||
|
"diagnosis_no_cache": "尚无类别 '{category}'的诊断缓存",
|
||||||
|
"diagnosis_failed": "无法获取类别 '{category}'的诊断结果: {error}",
|
||||||
|
"diagnosis_package_installed_from_sury_details": "一些软件包被无意中从一个名为Sury的第三方仓库安装。YunoHost团队改进了处理这些软件包的策略,但预计一些安装了PHP7.3应用程序的设置在仍然使用Stretch的情况下还有一些不一致的地方。为了解决这种情况,你应该尝试运行以下命令:<cmd>{cmd_to_fix}</cmd>",
|
||||||
|
"app_not_installed": "在已安装的应用列表中找不到 {app:s}:{all_apps}",
|
||||||
|
"app_already_installed_cant_change_url": "这个应用程序已经被安装。URL不能仅仅通过这个函数来改变。在`app changeurl`中检查是否可用。",
|
||||||
|
"restore_not_enough_disk_space": "没有足够的空间(空间: {free_space:d} B,需要的空间: {needed_space:d} B,安全系数: {margin:d} B)",
|
||||||
|
"regenconf_pending_applying": "正在为类别'{category}'应用挂起的配置..",
|
||||||
|
"regenconf_up_to_date": "类别'{category}'的配置已经是最新的",
|
||||||
|
"regenconf_file_kept_back": "配置文件'{conf}'预计将被regen-conf(类别{category})删除,但被保留了下来。",
|
||||||
|
"good_practices_about_user_password": "现在,您将设置一个新的管理员密码。 密码至少应包含8个字符。并且出于安全考虑建议使用较长的密码同时尽可能使用各种字符(大写,小写,数字和特殊字符)",
|
||||||
|
"global_settings_setting_smtp_relay_host": "使用SMTP中继主机来代替这个YunoHost实例发送邮件。如果你有以下情况,就很有用:你的25端口被你的ISP或VPS提供商封锁,你有一个住宅IP列在DUHL上,你不能配置反向DNS,或者这个服务器没有直接暴露在互联网上,你想使用其他服务器来发送邮件。",
|
||||||
|
"domain_cannot_remove_main_add_new_one": "你不能删除'{domain:s}',因为它是主域和你唯一的域,你需要先用'yunohost domain add <another-domain.com>'添加另一个域,然后用'yunohost domain main-domain -n <another-domain.com>'设置为主域,然后你可以用'yunohost domain remove {domain:s}'删除域",
|
||||||
|
"domain_cannot_add_xmpp_upload": "你不能添加以'xmpp-upload.'开头的域名。这种名称是为YunoHost中集成的XMPP上传功能保留的。",
|
||||||
|
"domain_cannot_remove_main": "你不能删除'{domain:s}',因为它是主域,你首先需要用'yunohost domain main-domain -n <another-domain>'设置另一个域作为主域;这里是候选域的列表: {other_domains:s}",
|
||||||
|
"diagnosis_sshd_config_inconsistent_details": "请运行<cmd>yunohost settings set security.ssh.port -v YOUR_SSH_PORT</cmd>来定义SSH端口,并检查<cmd>yunohost tools regen-conf ssh --dry-run --with-diff</cmd>和<cmd>yunohost tools regen-conf ssh --force</cmd>将您的配置重置为YunoHost建议。",
|
||||||
|
"diagnosis_http_bad_status_code": "它看起来像另一台机器(也许是你的互联网路由器)回答,而不是你的服务器。<br>1。这个问题最常见的原因是80端口(和443端口)<a href='https://yunohost.org/isp_box_config'>没有正确转发到您的服务器</a>。<br>2.在更复杂的设置中:确保没有防火墙或反向代理的干扰。",
|
||||||
|
"diagnosis_http_timeout": "当试图从外部联系你的服务器时,出现了超时。它似乎是不可达的。<br>1. 这个问题最常见的原因是80端口(和443端口)<a href='https://yunohost.org/isp_box_config'>没有正确转发到你的服务器</a>。<br>2.你还应该确保nginx服务正在运行<br>3.对于更复杂的设置:确保没有防火墙或反向代理的干扰。",
|
||||||
|
"diagnosis_rootfstotalspace_critical": "根文件系统总共只有{space},这很令人担忧!您可能很快就会用完磁盘空间!建议根文件系统至少有16 GB。",
|
||||||
|
"diagnosis_rootfstotalspace_warning": "根文件系统总共只有{space}。这可能没问题,但要小心,因为最终您可能很快会用完磁盘空间...建议根文件系统至少有16 GB。",
|
||||||
|
"diagnosis_regenconf_manually_modified_details": "如果你知道自己在做什么的话,这可能是可以的! YunoHost会自动停止更新这个文件... 但是请注意,YunoHost的升级可能包含重要的推荐变化。如果你想,你可以用<cmd>yunohost tools regen-conf {category} --dry-run --with-diff</cmd>检查差异,然后用<cmd>yunohost tools regen-conf {category} --force</cmd>强制设置为推荐配置",
|
||||||
|
"diagnosis_mail_fcrdns_nok_alternatives_6": "有些供应商不会让你配置你的反向DNS(或者他们的功能可能被破坏......)。如果你的反向DNS正确配置为IPv4,你可以尝试在发送邮件时禁用IPv6,方法是运<cmd>yunohost settings set smtp.allow_ipv6 -v off</cmd>。注意:这应视为最后一个解决方案因为这意味着你将无法从少数只使用IPv6的服务器发送或接收电子邮件。",
|
||||||
|
"diagnosis_mail_fcrdns_nok_alternatives_4": "有些供应商不会让你配置你的反向DNS(或者他们的功能可能被破坏......)。如果您因此而遇到问题,请考虑以下解决方案:<br>- 一些ISP提供了<a href='https://yunohost.org/#/smtp_relay'>使用邮件服务器中转</a>的选择,尽管这意味着中转将能够监视您的电子邮件流量。<br>- 一个有利于隐私的选择是使用VPN*与专用公共IP*来绕过这类限制。见<a href='https://yunohost.org/#/vpn_advantage'>https://yunohost.org/#/vpn_advantage</a><br>- 或者可以<a href='https://yunohost.org/#/isp'>切换到另一个供应商</a>",
|
||||||
|
"diagnosis_mail_ehlo_wrong_details": "远程诊断器在IPv{ipversion}中收到的EHLO与你的服务器的域名不同。<br>收到的EHLO: <code>{wrong_ehlo}</code><br>预期的: <code>{right_ehlo}</code><br>这个问题最常见的原因是端口25<a href='https://yunohost.org/isp_box_config'>没有正确转发到你的服务器</a>。另外,请确保没有防火墙或反向代理的干扰。",
|
||||||
|
"diagnosis_mail_ehlo_unreachable_details": "在IPv{ipversion}中无法打开与您服务器的25端口连接。它似乎是不可达的。<br>1. 这个问题最常见的原因是端口25<a href='https://yunohost.org/isp_box_config'>没有正确转发到你的服务器</a>。<br>2.你还应该确保postfix服务正在运行。<br>3.在更复杂的设置中:确保没有防火墙或反向代理的干扰。",
|
||||||
|
"diagnosis_mail_outgoing_port_25_blocked_relay_vpn": "一些供应商不会让你解除对出站端口25的封锁,因为他们不关心网络中立性。<br>- 其中一些供应商提供了<a href='https://yunohost.org/#/smtp_relay'>使用邮件服务器中继</a>的替代方案,尽管这意味着中继将能够监视你的电子邮件流量。<br>- 一个有利于隐私的替代方案是使用VPN*,用一个专用的公共IP*绕过这种限制。见<a href='https://yunohost.org/#/vpn_advantage'>https://yunohost.org/#/vpn_advantage</a><br>- 你也可以考虑切换到<a href='https://yunohost.org/#/isp'>一个更有利于网络中立的供应商</a>",
|
||||||
|
"diagnosis_ram_ok": "系统在{total}中仍然有 {available} ({available_percent}%) RAM可用。",
|
||||||
|
"diagnosis_ram_low": "系统有 {available} ({available_percent}%) RAM可用(共{total}个)可用。小心。",
|
||||||
|
"diagnosis_ram_verylow": "系统只有 {available} ({available_percent}%) 内存可用! (在{total}中)",
|
||||||
|
"diagnosis_diskusage_ok": "存储器<code>{mountpoint}</code>(在设备<code>{device}</code>上)仍有 {free} ({free_percent}%) 空间(在{total}中)!",
|
||||||
|
"diagnosis_diskusage_low": "存储器<code>{mountpoint}</code>(在设备<code>{device}</code>上)只有{free} ({free_percent}%) 的空间。({free_percent}%)的剩余空间(在{total}中)。要小心。",
|
||||||
|
"diagnosis_diskusage_verylow": "存储器<code>{mountpoint}</code>(在设备<code>{device}</code>上)仅剩余{free} ({free_percent}%) (剩余{total})个空间。您应该真正考虑清理一些空间!",
|
||||||
|
"diagnosis_services_bad_status_tip": "你可以尝试<a href='#/services/{service}'>重新启动服务</a>,如果没有效果,可以看看webadmin中的<a href='#/services/{service}'>服务日志</a>(从命令行,你可以用<cmd>yunohost service restart {service}</cmd>和<cmd>yunohost service log {service}</cmd>)来做。",
|
||||||
|
"diagnosis_dns_try_dyndns_update_force": "该域的DNS配置应由YunoHost自动管理,如果不是这种情况,您可以尝试使用 <cmd>yunohost dyndns update --force</cmd>强制进行更新。",
|
||||||
|
"diagnosis_dns_point_to_doc": "如果您需要有关配置DNS记录的帮助,请查看<a href='https://yunohost.org/dns_config'> https://yunohost.org/dns_config </a>上的文档。",
|
||||||
|
"diagnosis_dns_discrepancy": "以下DNS记录似乎未遵循建议的配置:<br>类型: <code>{type}</code><br>名称: <code>{name}</code><br>代码> 当前值: <code>{current}期望值: <code>{value}</code>",
|
||||||
|
"log_backup_create": "创建备份档案",
|
||||||
|
"log_available_on_yunopaste": "现在可以通过{url}使用此日志",
|
||||||
|
"log_app_config_apply": "将配置应用于 '{}' 应用",
|
||||||
|
"log_app_config_show_panel": "显示 '{}' 应用的配置面板",
|
||||||
|
"log_app_action_run": "运行 '{}' 应用的操作",
|
||||||
|
"log_app_makedefault": "将 '{}' 设为默认应用",
|
||||||
|
"log_app_upgrade": "升级 '{}' 应用",
|
||||||
|
"log_app_remove": "删除 '{}' 应用",
|
||||||
|
"log_app_install": "安装 '{}' 应用",
|
||||||
|
"log_app_change_url": "更改'{}'应用的网址",
|
||||||
|
"log_operation_unit_unclosed_properly": "操作单元未正确关闭",
|
||||||
|
"log_does_exists": "没有名称为'{log}'的操作日志,请使用 'yunohost log list' 查看所有可用的操作日志",
|
||||||
|
"log_help_to_get_failed_log": "操作'{desc}'无法完成。请使用命令'yunohost log share {name}' 共享此操作的完整日志以获取帮助",
|
||||||
|
"log_link_to_failed_log": "无法完成操作 '{desc}'。请通过<a href=\"#/tools/logs/{name}\">单击此处</a>提供此操作的完整日志以获取帮助",
|
||||||
|
"log_help_to_get_log": "要查看操作'{desc}'的日志,请使用命令'yunohost log show {name}{name}'",
|
||||||
|
"log_link_to_log": "此操作的完整日志: '<a href=\"#/tools/logs/{name}\" style=\"text-decoration:underline\">{desc}</a>'",
|
||||||
|
"log_corrupted_md_file": "与日志关联的YAML元数据文件已损坏: '{md_file}\n错误: {error}'",
|
||||||
|
"iptables_unavailable": "你不能在这里使用iptables。你要么在一个容器中,要么你的内核不支持它",
|
||||||
|
"ip6tables_unavailable": "你不能在这里使用ip6tables。你要么在一个容器中,要么你的内核不支持它",
|
||||||
|
"log_regen_conf": "重新生成系统配置'{}'",
|
||||||
|
"log_letsencrypt_cert_renew": "续订'{}'的“Let's Encrypt”证书",
|
||||||
|
"log_selfsigned_cert_install": "在 '{}'域上安装自签名证书",
|
||||||
|
"log_permission_url": "更新与权限'{}'相关的网址",
|
||||||
|
"log_permission_delete": "删除权限'{}'",
|
||||||
|
"log_permission_create": "创建权限'{}'",
|
||||||
|
"log_letsencrypt_cert_install": "在'{}'域上安装“Let's Encrypt”证书",
|
||||||
|
"log_dyndns_update": "更新与您的YunoHost子域'{}'关联的IP",
|
||||||
|
"log_dyndns_subscribe": "订阅YunoHost子域'{}'",
|
||||||
|
"log_domain_remove": "从系统配置中删除 '{}' 域",
|
||||||
|
"log_domain_add": "将 '{}'域添加到系统配置中",
|
||||||
|
"log_remove_on_failed_install": "安装失败后删除 '{}'",
|
||||||
|
"log_remove_on_failed_restore": "从备份存档还原失败后,删除 '{}'",
|
||||||
|
"log_backup_restore_app": "从备份存档还原 '{}'",
|
||||||
|
"log_backup_restore_system": "从备份档案还原系统",
|
||||||
|
"permission_currently_allowed_for_all_users": "这个权限目前除了授予其他组以外,还授予所有用户。你可能想删除'all_users'权限或删除目前授予它的其他组。",
|
||||||
|
"permission_creation_failed": "无法创建权限'{permission}': {error}",
|
||||||
|
"permission_created": "权限'{permission:s}'已创建",
|
||||||
|
"permission_cannot_remove_main": "不允许删除主要权限",
|
||||||
|
"permission_already_up_to_date": "权限没有被更新,因为添加/删除请求已经符合当前状态。",
|
||||||
|
"permission_already_exist": "权限 '{permission}'已存在",
|
||||||
|
"permission_already_disallowed": "群组'{group}'已禁用权限'{permission}'",
|
||||||
|
"permission_already_allowed": "群组 '{group}' 已启用权限'{permission}'",
|
||||||
|
"pattern_password_app": "抱歉,密码不能包含以下字符: {forbidden_chars}",
|
||||||
|
"pattern_username": "只能为小写字母数字和下划线字符",
|
||||||
|
"pattern_positive_number": "必须为正数",
|
||||||
|
"pattern_port_or_range": "必须是有效的端口号(即0-65535)或端口范围(例如100:200)",
|
||||||
|
"pattern_password": "必须至少3个字符长",
|
||||||
|
"pattern_mailbox_quota": "必须为带b/k/M/G/T 后缀的大小或0,才能没有配额",
|
||||||
|
"pattern_lastname": "必须是有效的姓氏",
|
||||||
|
"pattern_firstname": "必须是有效的名字",
|
||||||
|
"pattern_email": "必须是有效的电子邮件地址,没有'+'符号(例如someone @ example.com)",
|
||||||
|
"pattern_email_forward": "必须是有效的电子邮件地址,接受 '+' 符号(例如someone + tag @ example.com)",
|
||||||
|
"pattern_domain": "必须是有效的域名(例如my-domain.org)",
|
||||||
|
"pattern_backup_archive_name": "必须是一个有效的文件名,最多30个字符,只有-_.和字母数字",
|
||||||
|
"password_too_simple_4": "密码长度至少为12个字符,并且包含数字,大写,小写和特殊字符",
|
||||||
|
"password_too_simple_3": "密码长度至少为8个字符,并且包含数字,大写,小写和特殊字符",
|
||||||
|
"password_too_simple_2": "密码长度至少为8个字符,并且包含数字,大写和小写字符",
|
||||||
|
"password_listed": "该密码是世界上最常用的密码之一。 请选择一些更独特的东西。",
|
||||||
|
"packages_upgrade_failed": "无法升级所有软件包",
|
||||||
|
"invalid_number": "必须是数字",
|
||||||
|
"not_enough_disk_space": "'{path:s}'上的可用空间不足",
|
||||||
|
"migrations_to_be_ran_manually": "迁移{id}必须手动运行。请转到webadmin页面上的工具→迁移,或运行`yunohost tools migrations run`。",
|
||||||
|
"migrations_success_forward": "迁移 {id} 已完成",
|
||||||
|
"migrations_skip_migration": "正在跳过迁移{id}...",
|
||||||
|
"migrations_running_forward": "正在运行迁移{id}...",
|
||||||
|
"migrations_pending_cant_rerun": "这些迁移仍处于待处理状态,因此无法再次运行: {ids}",
|
||||||
|
"migrations_not_pending_cant_skip": "这些迁移没有待处理,因此不能跳过: {ids}",
|
||||||
|
"migrations_no_such_migration": "没有称为 '{id}'的迁移",
|
||||||
|
"migrations_no_migrations_to_run": "无需迁移即可运行",
|
||||||
|
"migrations_need_to_accept_disclaimer": "要运行迁移{id},您必须接受以下免责声明:\n---\n{disclaimer}\n---\n如果您接受并继续运行迁移,请使用选项'--accept-disclaimer'重新运行该命令。",
|
||||||
|
"migrations_must_provide_explicit_targets": "使用'--skip'或'--force-rerun'时必须提供明确的目标",
|
||||||
|
"migrations_migration_has_failed": "迁移{id}尚未完成,正在中止。错误: {exception}",
|
||||||
|
"migrations_loading_migration": "正在加载迁移{id}...",
|
||||||
|
"migrations_list_conflict_pending_done": "您不能同时使用'--previous' 和'--done'。",
|
||||||
|
"migrations_exclusive_options": "'--auto', '--skip',和'--force-rerun'是互斥的选项。",
|
||||||
|
"migrations_failed_to_load_migration": "无法加载迁移{id}: {error}",
|
||||||
|
"migrations_dependencies_not_satisfied": "在迁移{id}之前运行以下迁移: '{dependencies_id}'。",
|
||||||
|
"migrations_cant_reach_migration_file": "无法访问路径'%s'处的迁移文件",
|
||||||
|
"migrations_already_ran": "这些迁移已经完成: {ids}",
|
||||||
|
"migration_0019_slapd_config_will_be_overwritten": "好像您手动编辑了slapd配置。对于此关键迁移,YunoHost需要强制更新slapd配置。原始文件将备份在{conf_backup_folder}中。",
|
||||||
|
"migration_0019_add_new_attributes_in_ldap": "在LDAP数据库中添加权限的新属性",
|
||||||
|
"migration_0018_failed_to_reset_legacy_rules": "无法重置旧版iptables规则: {error}",
|
||||||
|
"migration_0018_failed_to_migrate_iptables_rules": "无法将旧的iptables规则迁移到nftables: {error}",
|
||||||
|
"migration_0017_not_enough_space": "在{path}中提供足够的空间来运行迁移。",
|
||||||
|
"migration_0017_postgresql_11_not_installed": "已安装PostgreSQL 9.6,但未安装PostgreSQL11?您的系统上可能发生了一些奇怪的事情:(...",
|
||||||
|
"migration_0017_postgresql_96_not_installed": "PostgreSQL未安装在您的系统上。无事可做。",
|
||||||
|
"migration_0015_weak_certs": "发现以下证书仍然使用弱签名算法,并且必须升级以与下一版本的nginx兼容: {certs}",
|
||||||
|
"migration_0015_cleaning_up": "清理不再有用的缓存和软件包...",
|
||||||
|
"migration_0015_specific_upgrade": "开始升级需要独立升级的系统软件包...",
|
||||||
|
"migration_0015_modified_files": "请注意,发现以下文件是手动修改的,并且在升级后可能会被覆盖: {manually_modified_files}",
|
||||||
|
"migration_0015_problematic_apps_warning": "请注意,已检测到以下可能有问题的已安装应用程序。看起来好像那些不是从YunoHost应用程序目录中安装的,或者没有标记为“正在运行”。因此,不能保证它们在升级后仍然可以使用: {problematic_apps}",
|
||||||
|
"migration_0015_general_warning": "请注意,此迁移是一项微妙的操作。YunoHost团队竭尽全力对其进行检查和测试,但迁移仍可能会破坏系统或其应用程序的某些部分。\n\n因此,建议:\n -对任何关键数据或应用程序执行备份。有关更多信息,请访问https://yunohost.org/backup;\n -启动迁移后要耐心:根据您的Internet连接和硬件,升级所有内容最多可能需要几个小时。",
|
||||||
|
"migration_0015_system_not_fully_up_to_date": "您的系统不是最新的。请先执行常规升级,然后再运行向Buster的迁移。",
|
||||||
|
"migration_0015_not_enough_free_space": "/var/中的可用空间非常低!您应该至少有1GB的可用空间来运行此迁移。",
|
||||||
|
"migration_0015_not_stretch": "当前的Debian发行版不是Stretch!",
|
||||||
|
"migration_0015_yunohost_upgrade": "正在启动YunoHost核心升级...",
|
||||||
|
"migration_0015_still_on_stretch_after_main_upgrade": "在主要升级期间出了点问题,系统似乎仍在Debian Stretch上",
|
||||||
|
"migration_0015_main_upgrade": "正在开始主要升级...",
|
||||||
|
"migration_0015_patching_sources_list": "修补sources.lists ...",
|
||||||
|
"migration_0015_start": "开始迁移至Buster",
|
||||||
|
"migration_update_LDAP_schema": "正在更新LDAP模式...",
|
||||||
|
"migration_ldap_rollback_success": "系统回滚。",
|
||||||
|
"migration_ldap_migration_failed_trying_to_rollback": "无法迁移...试图回滚系统。",
|
||||||
|
"migration_ldap_can_not_backup_before_migration": "迁移失败之前,无法完成系统的备份。错误: {error:s}",
|
||||||
|
"migration_ldap_backup_before_migration": "在实际迁移之前,请创建LDAP数据库和应用程序设置的备份。",
|
||||||
|
"migration_description_0020_ssh_sftp_permissions": "添加SSH和SFTP权限支持",
|
||||||
|
"migration_description_0019_extend_permissions_features": "扩展/修改应用程序的权限管理系统",
|
||||||
|
"migration_description_0018_xtable_to_nftable": "将旧的网络流量规则迁移到新的nftable系统",
|
||||||
|
"migration_description_0017_postgresql_9p6_to_11": "将数据库从PostgreSQL 9.6迁移到11",
|
||||||
|
"migration_description_0016_php70_to_php73_pools": "将php7.0-fpm'pool'conf文件迁移到php7.3",
|
||||||
|
"migration_description_0015_migrate_to_buster": "将系统升级到Debian Buster和YunoHost 4.x",
|
||||||
|
"migrating_legacy_permission_settings": "正在迁移旧版权限设置...",
|
||||||
|
"main_domain_changed": "主域已更改",
|
||||||
|
"main_domain_change_failed": "无法更改主域",
|
||||||
|
"mail_unavailable": "该电子邮件地址是保留的,并且将自动分配给第一个用户",
|
||||||
|
"mailbox_used_space_dovecot_down": "如果要获取使用过的邮箱空间,则必须启动Dovecot邮箱服务",
|
||||||
|
"mailbox_disabled": "用户{user:s}的电子邮件已关闭",
|
||||||
|
"mail_forward_remove_failed": "无法删除电子邮件转发'{mail:s}'",
|
||||||
|
"mail_domain_unknown": "域'{domain:s}'的电子邮件地址无效。请使用本服务器管理的域。",
|
||||||
|
"mail_alias_remove_failed": "无法删除电子邮件别名'{mail:s}'",
|
||||||
|
"ldap_initialized": "LDAP已初始化",
|
||||||
|
"ldap_init_failed_to_create_admin": "LDAP初始化无法创建管理员用户",
|
||||||
|
"log_tools_reboot": "重新启动服务器",
|
||||||
|
"log_tools_shutdown": "关闭服务器",
|
||||||
|
"log_tools_upgrade": "升级系统软件包",
|
||||||
|
"log_tools_postinstall": "安装好你的YunoHost服务器后",
|
||||||
|
"log_tools_migrations_migrate_forward": "运行迁移",
|
||||||
|
"log_domain_main_domain": "将 '{}' 设为主要域",
|
||||||
|
"log_user_permission_reset": "重置权限'{}'",
|
||||||
|
"log_user_permission_update": "更新权限'{}'的访问权限",
|
||||||
|
"log_user_update": "更新用户'{}'的信息",
|
||||||
|
"log_user_group_update": "更新组'{}'",
|
||||||
|
"log_user_group_delete": "删除组'{}'",
|
||||||
|
"log_user_group_create": "创建组'{}'",
|
||||||
|
"log_user_delete": "删除用户'{}'",
|
||||||
|
"log_user_create": "添加用户'{}'"
|
||||||
|
}
|
||||||
|
|
|
@ -1269,10 +1269,6 @@ def app_addaccess(apps, users=[]):
|
||||||
"""
|
"""
|
||||||
from yunohost.permission import user_permission_update
|
from yunohost.permission import user_permission_update
|
||||||
|
|
||||||
logger.warning(
|
|
||||||
"/!\\ Packagers ! This app is using the legacy permission system. Please use the new helpers ynh_permission_{create,url,update,delete} and the 'visitors' group to manage permissions."
|
|
||||||
)
|
|
||||||
|
|
||||||
output = {}
|
output = {}
|
||||||
for app in apps:
|
for app in apps:
|
||||||
permission = user_permission_update(
|
permission = user_permission_update(
|
||||||
|
@ -1294,10 +1290,6 @@ def app_removeaccess(apps, users=[]):
|
||||||
"""
|
"""
|
||||||
from yunohost.permission import user_permission_update
|
from yunohost.permission import user_permission_update
|
||||||
|
|
||||||
logger.warning(
|
|
||||||
"/!\\ Packagers ! This app is using the legacy permission system. Please use the new helpers ynh_permission_{create,url,update,delete} and the 'visitors' group to manage permissions."
|
|
||||||
)
|
|
||||||
|
|
||||||
output = {}
|
output = {}
|
||||||
for app in apps:
|
for app in apps:
|
||||||
permission = user_permission_update(app + ".main", remove=users)
|
permission = user_permission_update(app + ".main", remove=users)
|
||||||
|
@ -1316,10 +1308,6 @@ def app_clearaccess(apps):
|
||||||
"""
|
"""
|
||||||
from yunohost.permission import user_permission_reset
|
from yunohost.permission import user_permission_reset
|
||||||
|
|
||||||
logger.warning(
|
|
||||||
"/!\\ Packagers ! This app is using the legacy permission system. Please use the new helpers ynh_permission_{create,url,update,delete} and the 'visitors' group to manage permissions."
|
|
||||||
)
|
|
||||||
|
|
||||||
output = {}
|
output = {}
|
||||||
for app in apps:
|
for app in apps:
|
||||||
permission = user_permission_reset(app + ".main")
|
permission = user_permission_reset(app + ".main")
|
||||||
|
@ -1447,9 +1435,6 @@ def app_setting(app, key, value=None, delete=False):
|
||||||
|
|
||||||
# SET
|
# SET
|
||||||
else:
|
else:
|
||||||
logger.warning(
|
|
||||||
"/!\\ Packagers! This app is still using the skipped/protected/unprotected_uris/regex settings which are now obsolete and deprecated... Instead, you should use the new helpers 'ynh_permission_{create,urls,update,delete}' and the 'visitors' group to initialize the public/private access. Check out the documentation at the bottom of yunohost.org/groups_and_permissions to learn how to use the new permission mechanism."
|
|
||||||
)
|
|
||||||
|
|
||||||
urls = value
|
urls = value
|
||||||
# If the request is about the root of the app (/), ( = the vast majority of cases)
|
# If the request is about the root of the app (/), ( = the vast majority of cases)
|
||||||
|
|
|
@ -2017,7 +2017,7 @@ class TarBackupMethod(BackupMethod):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
files_in_archive = tar.getnames()
|
files_in_archive = tar.getnames()
|
||||||
except IOError as e:
|
except (IOError, EOFError, tarfile.ReadError) as e:
|
||||||
raise YunohostError(
|
raise YunohostError(
|
||||||
"backup_archive_corrupted", archive=self._archive_file, error=str(e)
|
"backup_archive_corrupted", archive=self._archive_file, error=str(e)
|
||||||
)
|
)
|
||||||
|
@ -2493,7 +2493,7 @@ def backup_info(name, with_details=False, human_readable=False):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
files_in_archive = tar.getnames()
|
files_in_archive = tar.getnames()
|
||||||
except (IOError, EOFError) as e:
|
except (IOError, EOFError, tarfile.ReadError) as e:
|
||||||
raise YunohostError(
|
raise YunohostError(
|
||||||
"backup_archive_corrupted", archive=archive_file, error=str(e)
|
"backup_archive_corrupted", archive=archive_file, error=str(e)
|
||||||
)
|
)
|
||||||
|
@ -2658,7 +2658,7 @@ def _recursive_umount(directory):
|
||||||
points_to_umount = [
|
points_to_umount = [
|
||||||
line.split(" ")[2]
|
line.split(" ")[2]
|
||||||
for line in mount_lines
|
for line in mount_lines
|
||||||
if len(line) >= 3 and line.split(" ")[2].startswith(directory)
|
if len(line) >= 3 and line.split(" ")[2].startswith(os.path.realpath(directory))
|
||||||
]
|
]
|
||||||
|
|
||||||
everything_went_fine = True
|
everything_went_fine = True
|
||||||
|
|
|
@ -499,7 +499,7 @@ Subject: %s
|
||||||
import smtplib
|
import smtplib
|
||||||
|
|
||||||
smtp = smtplib.SMTP("localhost")
|
smtp = smtplib.SMTP("localhost")
|
||||||
smtp.sendmail(from_, [to_], message)
|
smtp.sendmail(from_, [to_], message.encode("utf-8"))
|
||||||
smtp.quit()
|
smtp.quit()
|
||||||
|
|
||||||
|
|
||||||
|
@ -949,11 +949,6 @@ def _name_self_CA():
|
||||||
|
|
||||||
|
|
||||||
def _tail(n, file_path):
|
def _tail(n, file_path):
|
||||||
stdin, stdout = os.popen2("tail -n %s '%s'" % (n, file_path))
|
from moulinette.utils.process import check_output
|
||||||
|
|
||||||
stdin.close()
|
return check_output(f"tail -n {n} '{file_path}'")
|
||||||
|
|
||||||
lines = stdout.readlines()
|
|
||||||
stdout.close()
|
|
||||||
|
|
||||||
return "".join(lines)
|
|
||||||
|
|
|
@ -78,5 +78,5 @@ class MyMigration(Migration):
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
out = out.strip().split("\n")
|
out = out.strip().split(b"\n")
|
||||||
return (returncode, out, err)
|
return (returncode, out, err)
|
||||||
|
|
|
@ -122,5 +122,5 @@ class MyMigration(Migration):
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
out = out.strip().split("\n")
|
out = out.strip().split(b"\n")
|
||||||
return (returncode, out, err)
|
return (returncode, out, err)
|
||||||
|
|
|
@ -3,7 +3,6 @@ import os
|
||||||
|
|
||||||
from moulinette import m18n
|
from moulinette import m18n
|
||||||
from moulinette.utils.log import getActionLogger
|
from moulinette.utils.log import getActionLogger
|
||||||
from moulinette.utils.filesystem import read_yaml
|
|
||||||
|
|
||||||
from yunohost.tools import Migration
|
from yunohost.tools import Migration
|
||||||
from yunohost.permission import user_permission_update, permission_sync_to_user
|
from yunohost.permission import user_permission_update, permission_sync_to_user
|
||||||
|
@ -37,20 +36,34 @@ class MyMigration(Migration):
|
||||||
existing_perms = [perm["cn"][0] for perm in existing_perms_raw]
|
existing_perms = [perm["cn"][0] for perm in existing_perms_raw]
|
||||||
|
|
||||||
# Add SSH and SFTP permissions
|
# Add SSH and SFTP permissions
|
||||||
ldap_map = read_yaml(
|
|
||||||
"/usr/share/yunohost/yunohost-config/moulinette/ldap_scheme.yml"
|
|
||||||
)
|
|
||||||
|
|
||||||
if "sftp.main" not in existing_perms:
|
if "sftp.main" not in existing_perms:
|
||||||
ldap.add(
|
ldap.add(
|
||||||
"cn=sftp.main,ou=permission",
|
"cn=sftp.main,ou=permission",
|
||||||
ldap_map["depends_children"]["cn=sftp.main,ou=permission"],
|
{
|
||||||
|
"cn": "sftp.main",
|
||||||
|
"gidNumber": "5004",
|
||||||
|
"objectClass": ["posixGroup", "permissionYnh"],
|
||||||
|
"groupPermission": [],
|
||||||
|
"authHeader": "FALSE",
|
||||||
|
"label": "SFTP",
|
||||||
|
"showTile": "FALSE",
|
||||||
|
"isProtected": "TRUE",
|
||||||
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
if "ssh.main" not in existing_perms:
|
if "ssh.main" not in existing_perms:
|
||||||
ldap.add(
|
ldap.add(
|
||||||
"cn=ssh.main,ou=permission",
|
"cn=ssh.main,ou=permission",
|
||||||
ldap_map["depends_children"]["cn=ssh.main,ou=permission"],
|
{
|
||||||
|
"cn": "ssh.main",
|
||||||
|
"gidNumber": "5003",
|
||||||
|
"objectClass": ["posixGroup", "permissionYnh"],
|
||||||
|
"groupPermission": [],
|
||||||
|
"authHeader": "FALSE",
|
||||||
|
"label": "SSH",
|
||||||
|
"showTile": "FALSE",
|
||||||
|
"isProtected": "TRUE",
|
||||||
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
# Add a bash terminal to each users
|
# Add a bash terminal to each users
|
||||||
|
|
|
@ -712,5 +712,5 @@ Subject: %s
|
||||||
import smtplib
|
import smtplib
|
||||||
|
|
||||||
smtp = smtplib.SMTP("localhost")
|
smtp = smtplib.SMTP("localhost")
|
||||||
smtp.sendmail(from_, [to_], message)
|
smtp.sendmail(from_, [to_], message.encode("utf-8"))
|
||||||
smtp.quit()
|
smtp.quit()
|
||||||
|
|
|
@ -415,7 +415,7 @@ class RedactingFormatter(Formatter):
|
||||||
# (the secret part being at least 3 chars to avoid catching some lines like just "db_pwd=")
|
# (the secret part being at least 3 chars to avoid catching some lines like just "db_pwd=")
|
||||||
# Some names like "key" or "manifest_key" are ignored, used in helpers like ynh_app_setting_set or ynh_read_manifest
|
# Some names like "key" or "manifest_key" are ignored, used in helpers like ynh_app_setting_set or ynh_read_manifest
|
||||||
match = re.search(
|
match = re.search(
|
||||||
r"(pwd|pass|password|passphrase|secret\w*|\w+key|token)=(\S{3,})$",
|
r"(pwd|pass|password|passphrase|secret\w*|\w+key|token|PASSPHRASE)=(\S{3,})$",
|
||||||
record.strip(),
|
record.strip(),
|
||||||
)
|
)
|
||||||
if (
|
if (
|
||||||
|
|
|
@ -25,9 +25,7 @@
|
||||||
"""
|
"""
|
||||||
import re
|
import re
|
||||||
import os
|
import os
|
||||||
import yaml
|
|
||||||
import subprocess
|
import subprocess
|
||||||
import pwd
|
|
||||||
import time
|
import time
|
||||||
from importlib import import_module
|
from importlib import import_module
|
||||||
from packaging import version
|
from packaging import version
|
||||||
|
@ -67,79 +65,6 @@ def tools_versions():
|
||||||
return ynh_packages_version()
|
return ynh_packages_version()
|
||||||
|
|
||||||
|
|
||||||
def tools_ldapinit():
|
|
||||||
"""
|
|
||||||
YunoHost LDAP initialization
|
|
||||||
"""
|
|
||||||
|
|
||||||
with open("/usr/share/yunohost/yunohost-config/moulinette/ldap_scheme.yml") as f:
|
|
||||||
ldap_map = yaml.load(f)
|
|
||||||
|
|
||||||
from yunohost.utils.ldap import _get_ldap_interface
|
|
||||||
|
|
||||||
ldap = _get_ldap_interface()
|
|
||||||
|
|
||||||
for rdn, attr_dict in ldap_map["parents"].items():
|
|
||||||
try:
|
|
||||||
ldap.add(rdn, attr_dict)
|
|
||||||
except Exception as e:
|
|
||||||
logger.warn(
|
|
||||||
"Error when trying to inject '%s' -> '%s' into ldap: %s"
|
|
||||||
% (rdn, attr_dict, e)
|
|
||||||
)
|
|
||||||
|
|
||||||
for rdn, attr_dict in ldap_map["children"].items():
|
|
||||||
try:
|
|
||||||
ldap.add(rdn, attr_dict)
|
|
||||||
except Exception as e:
|
|
||||||
logger.warn(
|
|
||||||
"Error when trying to inject '%s' -> '%s' into ldap: %s"
|
|
||||||
% (rdn, attr_dict, e)
|
|
||||||
)
|
|
||||||
|
|
||||||
for rdn, attr_dict in ldap_map["depends_children"].items():
|
|
||||||
try:
|
|
||||||
ldap.add(rdn, attr_dict)
|
|
||||||
except Exception as e:
|
|
||||||
logger.warn(
|
|
||||||
"Error when trying to inject '%s' -> '%s' into ldap: %s"
|
|
||||||
% (rdn, attr_dict, e)
|
|
||||||
)
|
|
||||||
|
|
||||||
admin_dict = {
|
|
||||||
"cn": ["admin"],
|
|
||||||
"uid": ["admin"],
|
|
||||||
"description": ["LDAP Administrator"],
|
|
||||||
"gidNumber": ["1007"],
|
|
||||||
"uidNumber": ["1007"],
|
|
||||||
"homeDirectory": ["/home/admin"],
|
|
||||||
"loginShell": ["/bin/bash"],
|
|
||||||
"objectClass": ["organizationalRole", "posixAccount", "simpleSecurityObject"],
|
|
||||||
"userPassword": ["yunohost"],
|
|
||||||
}
|
|
||||||
|
|
||||||
ldap.update("cn=admin", admin_dict)
|
|
||||||
|
|
||||||
# Force nscd to refresh cache to take admin creation into account
|
|
||||||
subprocess.call(["nscd", "-i", "passwd"])
|
|
||||||
|
|
||||||
# Check admin actually exists now
|
|
||||||
try:
|
|
||||||
pwd.getpwnam("admin")
|
|
||||||
except KeyError:
|
|
||||||
logger.error(m18n.n("ldap_init_failed_to_create_admin"))
|
|
||||||
raise YunohostError("installation_failed")
|
|
||||||
|
|
||||||
try:
|
|
||||||
# Attempt to create user home folder
|
|
||||||
subprocess.check_call(["mkhomedir_helper", "admin"])
|
|
||||||
except subprocess.CalledProcessError:
|
|
||||||
if not os.path.isdir("/home/{0}".format("admin")):
|
|
||||||
logger.warning(m18n.n("user_home_creation_failed"), exc_info=1)
|
|
||||||
|
|
||||||
logger.success(m18n.n("ldap_initialized"))
|
|
||||||
|
|
||||||
|
|
||||||
def tools_adminpw(new_password, check_strength=True):
|
def tools_adminpw(new_password, check_strength=True):
|
||||||
"""
|
"""
|
||||||
Change admin password
|
Change admin password
|
||||||
|
@ -169,12 +94,10 @@ def tools_adminpw(new_password, check_strength=True):
|
||||||
try:
|
try:
|
||||||
ldap.update(
|
ldap.update(
|
||||||
"cn=admin",
|
"cn=admin",
|
||||||
{
|
{"userPassword": [new_hash]},
|
||||||
"userPassword": [new_hash],
|
|
||||||
},
|
|
||||||
)
|
)
|
||||||
except Exception:
|
except Exception as e:
|
||||||
logger.error("unable to change admin password")
|
logger.error("unable to change admin password : %s" % e)
|
||||||
raise YunohostError("admin_password_change_failed")
|
raise YunohostError("admin_password_change_failed")
|
||||||
else:
|
else:
|
||||||
# Write as root password
|
# Write as root password
|
||||||
|
@ -352,7 +275,7 @@ def tools_postinstall(
|
||||||
domain_add(domain, dyndns)
|
domain_add(domain, dyndns)
|
||||||
domain_main_domain(domain)
|
domain_main_domain(domain)
|
||||||
|
|
||||||
# Change LDAP admin password
|
# Update LDAP admin and create home dir
|
||||||
tools_adminpw(password, check_strength=not force_password)
|
tools_adminpw(password, check_strength=not force_password)
|
||||||
|
|
||||||
# Enable UPnP silently and reload firewall
|
# Enable UPnP silently and reload firewall
|
||||||
|
@ -588,7 +511,7 @@ def tools_upgrade(
|
||||||
# Actually start the upgrades
|
# Actually start the upgrades
|
||||||
|
|
||||||
try:
|
try:
|
||||||
app_upgrade(app=apps)
|
app_upgrade(app=upgradable_apps)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warning("unable to upgrade apps: %s" % str(e))
|
logger.warning("unable to upgrade apps: %s" % str(e))
|
||||||
logger.error(m18n.n("app_upgrade_some_app_failed"))
|
logger.error(m18n.n("app_upgrade_some_app_failed"))
|
||||||
|
|
|
@ -235,5 +235,5 @@ def translate_legacy_rules_in_ssowant_conf_json_persistent():
|
||||||
write_to_json(persistent_file_name, persistent, sort_keys=True, indent=4)
|
write_to_json(persistent_file_name, persistent, sort_keys=True, indent=4)
|
||||||
|
|
||||||
logger.warning(
|
logger.warning(
|
||||||
"Yunohost automatically translated some legacy rules in /etc/ssowat/conf.json.persistent to match the new permission system"
|
"YunoHost automatically translated some legacy rules in /etc/ssowat/conf.json.persistent to match the new permission system"
|
||||||
)
|
)
|
||||||
|
|
|
@ -169,7 +169,15 @@ def dig(
|
||||||
resolver = dns.resolver.Resolver(configure=False)
|
resolver = dns.resolver.Resolver(configure=False)
|
||||||
resolver.use_edns(0, 0, edns_size)
|
resolver.use_edns(0, 0, edns_size)
|
||||||
resolver.nameservers = resolvers
|
resolver.nameservers = resolvers
|
||||||
resolver.timeout = timeout
|
# resolver.timeout is used to trigger the next DNS query on resolvers list.
|
||||||
|
# In python-dns 1.16, this value is set to 2.0. However, this means that if
|
||||||
|
# the 3 first dns resolvers in list are down, we wait 6 seconds before to
|
||||||
|
# run the DNS query to a DNS resolvers up...
|
||||||
|
# In diagnosis dnsrecords, with 10 domains this means at least 12min, too long.
|
||||||
|
resolver.timeout = 1.0
|
||||||
|
# resolver.lifetime is the timeout for resolver.query()
|
||||||
|
# By default set it to 5 seconds to allow 4 resolvers to be unreachable.
|
||||||
|
resolver.lifetime = timeout
|
||||||
try:
|
try:
|
||||||
answers = resolver.query(qname, rdtype)
|
answers = resolver.query(qname, rdtype)
|
||||||
except (
|
except (
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
_make_dummy_src() {
|
_make_dummy_src() {
|
||||||
echo "test coucou"
|
|
||||||
if [ ! -e $HTTPSERVER_DIR/dummy.tar.gz ]
|
if [ ! -e $HTTPSERVER_DIR/dummy.tar.gz ]
|
||||||
then
|
then
|
||||||
pushd "$HTTPSERVER_DIR"
|
pushd "$HTTPSERVER_DIR"
|
||||||
|
|
|
@ -35,7 +35,7 @@ trap cleanup EXIT SIGINT
|
||||||
HTTPSERVER_DIR=$(mktemp -d)
|
HTTPSERVER_DIR=$(mktemp -d)
|
||||||
HTTPSERVER_PORT=1312
|
HTTPSERVER_PORT=1312
|
||||||
pushd "$HTTPSERVER_DIR" >/dev/null
|
pushd "$HTTPSERVER_DIR" >/dev/null
|
||||||
python -m SimpleHTTPServer $HTTPSERVER_PORT &>/dev/null &
|
python3 -m http.server $HTTPSERVER_PORT --bind 127.0.0.1 &>/dev/null &
|
||||||
HTTPSERVER="$!"
|
HTTPSERVER="$!"
|
||||||
popd >/dev/null
|
popd >/dev/null
|
||||||
|
|
||||||
|
@ -43,7 +43,6 @@ VAR_WWW=$(mktemp -d)/var/www
|
||||||
mkdir -p $VAR_WWW
|
mkdir -p $VAR_WWW
|
||||||
# =========================================================
|
# =========================================================
|
||||||
|
|
||||||
source /usr/share/yunohost/helpers
|
|
||||||
for TEST_SUITE in $(ls test_helpers.d/*)
|
for TEST_SUITE in $(ls test_helpers.d/*)
|
||||||
do
|
do
|
||||||
source $TEST_SUITE
|
source $TEST_SUITE
|
||||||
|
@ -58,11 +57,12 @@ for TEST in $TESTS
|
||||||
do
|
do
|
||||||
log_test $TEST
|
log_test $TEST
|
||||||
cd $(mktemp -d)
|
cd $(mktemp -d)
|
||||||
(app=ynhtest
|
(mkdir conf
|
||||||
YNH_APP_ID=$app
|
|
||||||
mkdir conf
|
|
||||||
mkdir scripts
|
mkdir scripts
|
||||||
cd scripts
|
cd scripts
|
||||||
|
source /usr/share/yunohost/helpers
|
||||||
|
app=ynhtest
|
||||||
|
YNH_APP_ID=$app
|
||||||
set -eux
|
set -eux
|
||||||
$TEST
|
$TEST
|
||||||
) > ./test.log 2>&1
|
) > ./test.log 2>&1
|
||||||
|
|
Loading…
Add table
Reference in a new issue