mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
Merge branch 'dev' into rework-authenticator-system
This commit is contained in:
commit
11325c95cc
144 changed files with 3837 additions and 2927 deletions
|
@ -1,9 +1,11 @@
|
||||||
|
---
|
||||||
stages:
|
stages:
|
||||||
- build
|
- build
|
||||||
- install
|
- install
|
||||||
- tests
|
- tests
|
||||||
- lint
|
- lint
|
||||||
- doc
|
- doc
|
||||||
|
- translation
|
||||||
|
|
||||||
default:
|
default:
|
||||||
tags:
|
tags:
|
||||||
|
@ -11,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
|
|
||||||
|
|
|
@ -12,9 +12,9 @@ generate-helpers-doc:
|
||||||
- git config --global user.name "$GITHUB_USER"
|
- git config --global user.name "$GITHUB_USER"
|
||||||
script:
|
script:
|
||||||
- cd doc
|
- cd doc
|
||||||
- python 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}"
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
########################################
|
########################################
|
||||||
# later we must fix lint and format-check jobs and remove "allow_failure"
|
# later we must fix lint and format-check jobs and remove "allow_failure"
|
||||||
|
|
||||||
|
---
|
||||||
lint37:
|
lint37:
|
||||||
stage: lint
|
stage: lint
|
||||||
image: "before-install"
|
image: "before-install"
|
||||||
|
@ -37,10 +38,12 @@ format-run:
|
||||||
- hub clone --branch ${CI_COMMIT_REF_NAME} "https://$GITHUB_TOKEN:x-oauth-basic@github.com/YunoHost/yunohost.git" github_repo
|
- hub clone --branch ${CI_COMMIT_REF_NAME} "https://$GITHUB_TOKEN:x-oauth-basic@github.com/YunoHost/yunohost.git" github_repo
|
||||||
- cd github_repo
|
- cd github_repo
|
||||||
script:
|
script:
|
||||||
# checkout or create and checkout the branch
|
# create a local branch that will overwrite distant one
|
||||||
- hub checkout "ci-format-${CI_COMMIT_REF_NAME}" || hub checkout -b "ci-format-${CI_COMMIT_REF_NAME}"
|
- git checkout -b "ci-format-${CI_COMMIT_REF_NAME}" --no-track
|
||||||
- tox -e py37-black-run
|
- tox -e py37-black-run
|
||||||
- hub commit -am "[CI] Format code" || true
|
- '[ $(git diff | wc -l) != 0 ] || exit 0' # stop if there is nothing to commit
|
||||||
|
- git commit -am "[CI] Format code" || true
|
||||||
|
- git push -f origin "ci-format-${CI_COMMIT_REF_NAME}":"ci-format-${CI_COMMIT_REF_NAME}"
|
||||||
- hub pull-request -m "[CI] Format code" -b Yunohost:dev -p || true # GITHUB_USER and GITHUB_TOKEN registered here https://gitlab.com/yunohost/yunohost/-/settings/ci_cd
|
- hub pull-request -m "[CI] Format code" -b Yunohost:dev -p || true # GITHUB_USER and GITHUB_TOKEN registered here https://gitlab.com/yunohost/yunohost/-/settings/ci_cd
|
||||||
only:
|
only:
|
||||||
refs:
|
refs:
|
||||||
|
|
|
@ -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,73 +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:
|
||||||
|
extends: .test-stage
|
||||||
|
script:
|
||||||
|
- cd tests
|
||||||
|
- 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
|
||||||
|
- python3 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,7 +66,7 @@ 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.
|
||||||
|
|
|
@ -243,30 +243,6 @@ user:
|
||||||
extra:
|
extra:
|
||||||
pattern: *pattern_groupname
|
pattern: *pattern_groupname
|
||||||
|
|
||||||
### user_group_update()
|
|
||||||
update:
|
|
||||||
action_help: Update group
|
|
||||||
api: PUT /users/groups/<groupname>
|
|
||||||
arguments:
|
|
||||||
groupname:
|
|
||||||
help: Name of the group to be updated
|
|
||||||
extra:
|
|
||||||
pattern: *pattern_groupname
|
|
||||||
-a:
|
|
||||||
full: --add
|
|
||||||
help: User(s) to add in the group
|
|
||||||
nargs: "*"
|
|
||||||
metavar: USERNAME
|
|
||||||
extra:
|
|
||||||
pattern: *pattern_username
|
|
||||||
-r:
|
|
||||||
full: --remove
|
|
||||||
help: User(s) to remove in the group
|
|
||||||
nargs: "*"
|
|
||||||
metavar: USERNAME
|
|
||||||
extra:
|
|
||||||
pattern: *pattern_username
|
|
||||||
|
|
||||||
### user_group_info()
|
### user_group_info()
|
||||||
info:
|
info:
|
||||||
action_help: Get information about a specific group
|
action_help: Get information about a specific group
|
||||||
|
@ -277,6 +253,38 @@ user:
|
||||||
extra:
|
extra:
|
||||||
pattern: *pattern_username
|
pattern: *pattern_username
|
||||||
|
|
||||||
|
### user_group_add()
|
||||||
|
add:
|
||||||
|
action_help: Add users to group
|
||||||
|
api: PUT /users/groups/<groupname>/add/<usernames>
|
||||||
|
arguments:
|
||||||
|
groupname:
|
||||||
|
help: Name of the group to add user(s) to
|
||||||
|
extra:
|
||||||
|
pattern: *pattern_groupname
|
||||||
|
usernames:
|
||||||
|
help: User(s) to add in the group
|
||||||
|
nargs: "*"
|
||||||
|
metavar: USERNAME
|
||||||
|
extra:
|
||||||
|
pattern: *pattern_username
|
||||||
|
|
||||||
|
### user_group_remove()
|
||||||
|
remove:
|
||||||
|
action_help: Remove users from group
|
||||||
|
api: PUT /users/groups/<groupname>/remove/<usernames>
|
||||||
|
arguments:
|
||||||
|
groupname:
|
||||||
|
help: Name of the group to remove user(s) from
|
||||||
|
extra:
|
||||||
|
pattern: *pattern_groupname
|
||||||
|
usernames:
|
||||||
|
help: User(s) to remove from the group
|
||||||
|
nargs: "*"
|
||||||
|
metavar: USERNAME
|
||||||
|
extra:
|
||||||
|
pattern: *pattern_username
|
||||||
|
|
||||||
permission:
|
permission:
|
||||||
subcategory_help: Manage permissions
|
subcategory_help: Manage permissions
|
||||||
actions:
|
actions:
|
||||||
|
@ -286,6 +294,9 @@ user:
|
||||||
action_help: List permissions and corresponding accesses
|
action_help: List permissions and corresponding accesses
|
||||||
api: GET /users/permissions
|
api: GET /users/permissions
|
||||||
arguments:
|
arguments:
|
||||||
|
apps:
|
||||||
|
help: Apps to list permission for (all by default)
|
||||||
|
nargs: "*"
|
||||||
-s:
|
-s:
|
||||||
full: --short
|
full: --short
|
||||||
help: Only list permission names
|
help: Only list permission names
|
||||||
|
@ -310,20 +321,6 @@ user:
|
||||||
arguments:
|
arguments:
|
||||||
permission:
|
permission:
|
||||||
help: Permission to manage (e.g. mail or nextcloud or wordpress.editors) (use "yunohost user permission list" and "yunohost user permission -f" to see all the current permissions)
|
help: Permission to manage (e.g. mail or nextcloud or wordpress.editors) (use "yunohost user permission list" and "yunohost user permission -f" to see all the current permissions)
|
||||||
-a:
|
|
||||||
full: --add
|
|
||||||
help: Group or usernames to grant this permission to
|
|
||||||
nargs: "*"
|
|
||||||
metavar: GROUP_OR_USER
|
|
||||||
extra:
|
|
||||||
pattern: *pattern_username
|
|
||||||
-r:
|
|
||||||
full: --remove
|
|
||||||
help: Group or usernames revoke this permission from
|
|
||||||
nargs: "*"
|
|
||||||
metavar: GROUP_OR_USER
|
|
||||||
extra:
|
|
||||||
pattern: *pattern_username
|
|
||||||
-l:
|
-l:
|
||||||
full: --label
|
full: --label
|
||||||
help: Label for this permission. This label will be shown on the SSO and in the admin
|
help: Label for this permission. This label will be shown on the SSO and in the admin
|
||||||
|
@ -334,10 +331,38 @@ user:
|
||||||
- 'True'
|
- 'True'
|
||||||
- 'False'
|
- 'False'
|
||||||
|
|
||||||
|
## user_permission_add()
|
||||||
|
add:
|
||||||
|
action_help: Grant permission to group or user
|
||||||
|
api: PUT /users/permissions/<permission>/add/<names>
|
||||||
|
arguments:
|
||||||
|
permission:
|
||||||
|
help: Permission to manage (e.g. mail or nextcloud or wordpress.editors) (use "yunohost user permission list" and "yunohost user permission -f" to see all the current permissions)
|
||||||
|
names:
|
||||||
|
help: Group or usernames to grant this permission to
|
||||||
|
nargs: "*"
|
||||||
|
metavar: GROUP_OR_USER
|
||||||
|
extra:
|
||||||
|
pattern: *pattern_username
|
||||||
|
|
||||||
|
## user_permission_remove()
|
||||||
|
remove:
|
||||||
|
action_help: Revoke permission to group or user
|
||||||
|
api: PUT /users/permissions/<permission>/remove/<names>
|
||||||
|
arguments:
|
||||||
|
permission:
|
||||||
|
help: Permission to manage (e.g. mail or nextcloud or wordpress.editors) (use "yunohost user permission list" and "yunohost user permission -f" to see all the current permissions)
|
||||||
|
names:
|
||||||
|
help: Group or usernames to revoke this permission to
|
||||||
|
nargs: "*"
|
||||||
|
metavar: GROUP_OR_USER
|
||||||
|
extra:
|
||||||
|
pattern: *pattern_username
|
||||||
|
|
||||||
## user_permission_reset()
|
## user_permission_reset()
|
||||||
reset:
|
reset:
|
||||||
action_help: Reset allowed groups to the default (all_users) for a given permission
|
action_help: Reset allowed groups to the default (all_users) for a given permission
|
||||||
api: DELETE /users/permissions/<app>
|
api: DELETE /users/permissions/<permission>
|
||||||
arguments:
|
arguments:
|
||||||
permission:
|
permission:
|
||||||
help: Permission to manage (e.g. mail or nextcloud or wordpress.editors) (use "yunohost user permission list" and "yunohost user permission -f" to see all the current permissions)
|
help: Permission to manage (e.g. mail or nextcloud or wordpress.editors) (use "yunohost user permission list" and "yunohost user permission -f" to see all the current permissions)
|
||||||
|
@ -345,25 +370,6 @@ user:
|
||||||
ssh:
|
ssh:
|
||||||
subcategory_help: Manage ssh access
|
subcategory_help: Manage ssh access
|
||||||
actions:
|
actions:
|
||||||
### user_ssh_enable()
|
|
||||||
allow:
|
|
||||||
action_help: Allow the user to uses ssh
|
|
||||||
api: POST /users/ssh/enable
|
|
||||||
arguments:
|
|
||||||
username:
|
|
||||||
help: Username of the user
|
|
||||||
extra:
|
|
||||||
pattern: *pattern_username
|
|
||||||
|
|
||||||
### user_ssh_disable()
|
|
||||||
disallow:
|
|
||||||
action_help: Disallow the user to uses ssh
|
|
||||||
api: POST /users/ssh/disable
|
|
||||||
arguments:
|
|
||||||
username:
|
|
||||||
help: Username of the user
|
|
||||||
extra:
|
|
||||||
pattern: *pattern_username
|
|
||||||
|
|
||||||
### user_ssh_keys_list()
|
### user_ssh_keys_list()
|
||||||
list-keys:
|
list-keys:
|
||||||
|
@ -388,7 +394,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:
|
||||||
|
@ -402,7 +408,6 @@ user:
|
||||||
key:
|
key:
|
||||||
help: The key to be removed
|
help: The key to be removed
|
||||||
|
|
||||||
|
|
||||||
#############################
|
#############################
|
||||||
# Domain #
|
# Domain #
|
||||||
#############################
|
#############################
|
||||||
|
@ -473,7 +478,7 @@ domain:
|
||||||
- maindomain
|
- maindomain
|
||||||
api:
|
api:
|
||||||
- GET /domains/main
|
- GET /domains/main
|
||||||
- PUT /domains/main
|
- PUT /domains/<new_main_domain>/main
|
||||||
arguments:
|
arguments:
|
||||||
-n:
|
-n:
|
||||||
full: --new-main-domain
|
full: --new-main-domain
|
||||||
|
@ -484,7 +489,7 @@ domain:
|
||||||
### certificate_status()
|
### certificate_status()
|
||||||
cert-status:
|
cert-status:
|
||||||
action_help: List status of current certificates (all by default).
|
action_help: List status of current certificates (all by default).
|
||||||
api: GET /domains/cert-status/<domain_list>
|
api: GET /domains/<domain_list>/cert
|
||||||
arguments:
|
arguments:
|
||||||
domain_list:
|
domain_list:
|
||||||
help: Domains to check
|
help: Domains to check
|
||||||
|
@ -496,7 +501,7 @@ domain:
|
||||||
### certificate_install()
|
### certificate_install()
|
||||||
cert-install:
|
cert-install:
|
||||||
action_help: Install Let's Encrypt certificates for given domains (all by default).
|
action_help: Install Let's Encrypt certificates for given domains (all by default).
|
||||||
api: POST /domains/cert-install/<domain_list>
|
api: PUT /domains/<domain_list>/cert
|
||||||
arguments:
|
arguments:
|
||||||
domain_list:
|
domain_list:
|
||||||
help: Domains for which to install the certificates
|
help: Domains for which to install the certificates
|
||||||
|
@ -517,7 +522,7 @@ domain:
|
||||||
### certificate_renew()
|
### certificate_renew()
|
||||||
cert-renew:
|
cert-renew:
|
||||||
action_help: Renew the Let's Encrypt certificates for given domains (all by default).
|
action_help: Renew the Let's Encrypt certificates for given domains (all by default).
|
||||||
api: POST /domains/cert-renew/<domain_list>
|
api: PUT /domains/<domain_list>/cert/renew
|
||||||
arguments:
|
arguments:
|
||||||
domain_list:
|
domain_list:
|
||||||
help: Domains for which to renew the certificates
|
help: Domains for which to renew the certificates
|
||||||
|
@ -538,7 +543,7 @@ domain:
|
||||||
### domain_url_available()
|
### domain_url_available()
|
||||||
url-available:
|
url-available:
|
||||||
action_help: Check availability of a web path
|
action_help: Check availability of a web path
|
||||||
api: GET /domain/urlavailable
|
api: GET /domain/<domain>/urlavailable
|
||||||
arguments:
|
arguments:
|
||||||
domain:
|
domain:
|
||||||
help: The domain for the web path (e.g. your.domain.tld)
|
help: The domain for the web path (e.g. your.domain.tld)
|
||||||
|
@ -547,20 +552,6 @@ domain:
|
||||||
path:
|
path:
|
||||||
help: The path to check (e.g. /coffee)
|
help: The path to check (e.g. /coffee)
|
||||||
|
|
||||||
|
|
||||||
### domain_info()
|
|
||||||
# info:
|
|
||||||
# action_help: Get domain informations
|
|
||||||
# api: GET /domains/<domain>
|
|
||||||
# arguments:
|
|
||||||
# domain:
|
|
||||||
# help: ""
|
|
||||||
# extra:
|
|
||||||
# pattern:
|
|
||||||
# - '^([a-zA-Z0-9]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)(\.[a-zA-Z0-9]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)*(\.[a-zA-Z]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)$'
|
|
||||||
# - "Must be a valid domain name (e.g. my-domain.org)"
|
|
||||||
|
|
||||||
|
|
||||||
#############################
|
#############################
|
||||||
# App #
|
# App #
|
||||||
#############################
|
#############################
|
||||||
|
@ -570,7 +561,7 @@ app:
|
||||||
|
|
||||||
catalog:
|
catalog:
|
||||||
action_help: Show the catalog of installable application
|
action_help: Show the catalog of installable application
|
||||||
api: GET /appscatalog
|
api: GET /apps/catalog
|
||||||
arguments:
|
arguments:
|
||||||
-f:
|
-f:
|
||||||
full: --full
|
full: --full
|
||||||
|
@ -588,6 +579,14 @@ app:
|
||||||
string:
|
string:
|
||||||
help: Return matching app name or description with "string"
|
help: Return matching app name or description with "string"
|
||||||
|
|
||||||
|
### app_manifest()
|
||||||
|
manifest:
|
||||||
|
action_help: Return the manifest of a given app from the catalog, or from a remote git repo
|
||||||
|
api: GET /apps/manifest
|
||||||
|
arguments:
|
||||||
|
app:
|
||||||
|
help: Name, local path or git URL of the app to fetch the manifest of
|
||||||
|
|
||||||
fetchlist:
|
fetchlist:
|
||||||
deprecated: true
|
deprecated: true
|
||||||
|
|
||||||
|
@ -622,7 +621,7 @@ app:
|
||||||
### app_map()
|
### app_map()
|
||||||
map:
|
map:
|
||||||
action_help: Show the mapping between urls and apps
|
action_help: Show the mapping between urls and apps
|
||||||
api: GET /appsmap
|
api: GET /apps/map
|
||||||
arguments:
|
arguments:
|
||||||
-a:
|
-a:
|
||||||
full: --app
|
full: --app
|
||||||
|
@ -659,18 +658,18 @@ app:
|
||||||
help: Do not ask confirmation if the app is not safe to use (low quality, experimental or 3rd party)
|
help: Do not ask confirmation if the app is not safe to use (low quality, experimental or 3rd party)
|
||||||
action: store_true
|
action: store_true
|
||||||
|
|
||||||
### app_remove() TODO: Write help
|
### app_remove()
|
||||||
remove:
|
remove:
|
||||||
action_help: Remove app
|
action_help: Remove app
|
||||||
api: DELETE /apps/<app>
|
api: DELETE /apps/<app>
|
||||||
arguments:
|
arguments:
|
||||||
app:
|
app:
|
||||||
help: App(s) to delete
|
help: App to delete
|
||||||
|
|
||||||
### app_upgrade()
|
### app_upgrade()
|
||||||
upgrade:
|
upgrade:
|
||||||
action_help: Upgrade app
|
action_help: Upgrade app
|
||||||
api: PUT /upgrade/apps
|
api: PUT /apps/<app>/upgrade
|
||||||
arguments:
|
arguments:
|
||||||
app:
|
app:
|
||||||
help: App(s) to upgrade (default all)
|
help: App(s) to upgrade (default all)
|
||||||
|
@ -728,7 +727,6 @@ app:
|
||||||
### app_register_url()
|
### app_register_url()
|
||||||
register-url:
|
register-url:
|
||||||
action_help: Book/register a web path for a given app
|
action_help: Book/register a web path for a given app
|
||||||
api: PUT /tools/registerurl
|
|
||||||
arguments:
|
arguments:
|
||||||
app:
|
app:
|
||||||
help: App which will use the web path
|
help: App which will use the web path
|
||||||
|
@ -752,7 +750,6 @@ app:
|
||||||
### app_ssowatconf()
|
### app_ssowatconf()
|
||||||
ssowatconf:
|
ssowatconf:
|
||||||
action_help: Regenerate SSOwat configuration file
|
action_help: Regenerate SSOwat configuration file
|
||||||
api: PUT /ssowatconf
|
|
||||||
|
|
||||||
### app_change_label()
|
### app_change_label()
|
||||||
change-label:
|
change-label:
|
||||||
|
@ -767,7 +764,6 @@ app:
|
||||||
### app_addaccess() TODO: Write help
|
### app_addaccess() TODO: Write help
|
||||||
addaccess:
|
addaccess:
|
||||||
action_help: Grant access right to users (everyone by default)
|
action_help: Grant access right to users (everyone by default)
|
||||||
api: PUT /access
|
|
||||||
deprecated: true
|
deprecated: true
|
||||||
arguments:
|
arguments:
|
||||||
apps:
|
apps:
|
||||||
|
@ -779,7 +775,6 @@ app:
|
||||||
### app_removeaccess() TODO: Write help
|
### app_removeaccess() TODO: Write help
|
||||||
removeaccess:
|
removeaccess:
|
||||||
action_help: Revoke access right to users (everyone by default)
|
action_help: Revoke access right to users (everyone by default)
|
||||||
api: DELETE /access
|
|
||||||
deprecated: true
|
deprecated: true
|
||||||
arguments:
|
arguments:
|
||||||
apps:
|
apps:
|
||||||
|
@ -791,7 +786,6 @@ app:
|
||||||
### app_clearaccess()
|
### app_clearaccess()
|
||||||
clearaccess:
|
clearaccess:
|
||||||
action_help: Reset access rights for the app
|
action_help: Reset access rights for the app
|
||||||
api: POST /access
|
|
||||||
deprecated: true
|
deprecated: true
|
||||||
arguments:
|
arguments:
|
||||||
apps:
|
apps:
|
||||||
|
@ -839,7 +833,7 @@ app:
|
||||||
### app_config_apply()
|
### app_config_apply()
|
||||||
apply:
|
apply:
|
||||||
action_help: apply the new configuration
|
action_help: apply the new configuration
|
||||||
api: POST /apps/<app>/config
|
api: PUT /apps/<app>/config
|
||||||
arguments:
|
arguments:
|
||||||
app:
|
app:
|
||||||
help: App name
|
help: App name
|
||||||
|
@ -857,7 +851,7 @@ backup:
|
||||||
### backup_create()
|
### backup_create()
|
||||||
create:
|
create:
|
||||||
action_help: Create a backup local archive. If neither --apps or --system are given, this will backup all apps and all system parts. If only --apps if given, this will only backup apps and no system parts. Similarly, if only --system is given, this will only backup system parts and no apps.
|
action_help: Create a backup local archive. If neither --apps or --system are given, this will backup all apps and all system parts. If only --apps if given, this will only backup apps and no system parts. Similarly, if only --system is given, this will only backup system parts and no apps.
|
||||||
api: POST /backup
|
api: POST /backups
|
||||||
arguments:
|
arguments:
|
||||||
-n:
|
-n:
|
||||||
full: --name
|
full: --name
|
||||||
|
@ -881,11 +875,14 @@ backup:
|
||||||
--apps:
|
--apps:
|
||||||
help: List of application names to backup (or all if none given)
|
help: List of application names to backup (or all if none given)
|
||||||
nargs: "*"
|
nargs: "*"
|
||||||
|
--dry-run:
|
||||||
|
help: "'Simulate' the backup and return the size details per item to backup"
|
||||||
|
action: store_true
|
||||||
|
|
||||||
### backup_restore()
|
### backup_restore()
|
||||||
restore:
|
restore:
|
||||||
action_help: Restore from a local backup archive. If neither --apps or --system are given, this will restore all apps and all system parts in the archive. If only --apps if given, this will only restore apps and no system parts. Similarly, if only --system is given, this will only restore system parts and no apps.
|
action_help: Restore from a local backup archive. If neither --apps or --system are given, this will restore all apps and all system parts in the archive. If only --apps if given, this will only restore apps and no system parts. Similarly, if only --system is given, this will only restore system parts and no apps.
|
||||||
api: POST /backup/restore/<name>
|
api: PUT /backups/<name>/restore
|
||||||
arguments:
|
arguments:
|
||||||
name:
|
name:
|
||||||
help: Name of the local backup archive
|
help: Name of the local backup archive
|
||||||
|
@ -902,7 +899,7 @@ backup:
|
||||||
### backup_list()
|
### backup_list()
|
||||||
list:
|
list:
|
||||||
action_help: List available local backup archives
|
action_help: List available local backup archives
|
||||||
api: GET /backup/archives
|
api: GET /backups
|
||||||
arguments:
|
arguments:
|
||||||
-i:
|
-i:
|
||||||
full: --with-info
|
full: --with-info
|
||||||
|
@ -916,7 +913,7 @@ backup:
|
||||||
### backup_info()
|
### backup_info()
|
||||||
info:
|
info:
|
||||||
action_help: Show info about a local backup archive
|
action_help: Show info about a local backup archive
|
||||||
api: GET /backup/archives/<name>
|
api: GET /backups/<name>
|
||||||
arguments:
|
arguments:
|
||||||
name:
|
name:
|
||||||
help: Name of the local backup archive
|
help: Name of the local backup archive
|
||||||
|
@ -932,7 +929,7 @@ backup:
|
||||||
### backup_download()
|
### backup_download()
|
||||||
download:
|
download:
|
||||||
action_help: (API only) Request to download the file
|
action_help: (API only) Request to download the file
|
||||||
api: GET /backup/download/<name>
|
api: GET /backups/<name>/download
|
||||||
arguments:
|
arguments:
|
||||||
name:
|
name:
|
||||||
help: Name of the local backup archive
|
help: Name of the local backup archive
|
||||||
|
@ -940,7 +937,7 @@ backup:
|
||||||
### backup_delete()
|
### backup_delete()
|
||||||
delete:
|
delete:
|
||||||
action_help: Delete a backup archive
|
action_help: Delete a backup archive
|
||||||
api: DELETE /backup/archives/<name>
|
api: DELETE /backups/<name>
|
||||||
arguments:
|
arguments:
|
||||||
name:
|
name:
|
||||||
help: Name of the archive to delete
|
help: Name of the archive to delete
|
||||||
|
@ -1007,7 +1004,6 @@ service:
|
||||||
### service_add()
|
### service_add()
|
||||||
add:
|
add:
|
||||||
action_help: Add a service
|
action_help: Add a service
|
||||||
# api: POST /services
|
|
||||||
arguments:
|
arguments:
|
||||||
name:
|
name:
|
||||||
help: Service name to add
|
help: Service name to add
|
||||||
|
@ -1045,7 +1041,6 @@ service:
|
||||||
### service_remove()
|
### service_remove()
|
||||||
remove:
|
remove:
|
||||||
action_help: Remove a service
|
action_help: Remove a service
|
||||||
# api: DELETE /services
|
|
||||||
arguments:
|
arguments:
|
||||||
name:
|
name:
|
||||||
help: Service name to remove
|
help: Service name to remove
|
||||||
|
@ -1053,7 +1048,7 @@ service:
|
||||||
### service_start()
|
### service_start()
|
||||||
start:
|
start:
|
||||||
action_help: Start one or more services
|
action_help: Start one or more services
|
||||||
api: PUT /services/<names>
|
api: PUT /services/<names>/start
|
||||||
arguments:
|
arguments:
|
||||||
names:
|
names:
|
||||||
help: Service name to start
|
help: Service name to start
|
||||||
|
@ -1063,7 +1058,7 @@ service:
|
||||||
### service_stop()
|
### service_stop()
|
||||||
stop:
|
stop:
|
||||||
action_help: Stop one or more services
|
action_help: Stop one or more services
|
||||||
api: DELETE /services/<names>
|
api: PUT /services/<names>/stop
|
||||||
arguments:
|
arguments:
|
||||||
names:
|
names:
|
||||||
help: Service name to stop
|
help: Service name to stop
|
||||||
|
@ -1111,7 +1106,7 @@ service:
|
||||||
### service_disable()
|
### service_disable()
|
||||||
disable:
|
disable:
|
||||||
action_help: Disable one or more services
|
action_help: Disable one or more services
|
||||||
api: DELETE /services/<names>/enable
|
api: PUT /services/<names>/disable
|
||||||
arguments:
|
arguments:
|
||||||
names:
|
names:
|
||||||
help: Service name to disable
|
help: Service name to disable
|
||||||
|
@ -1146,7 +1141,6 @@ service:
|
||||||
### service_regen_conf()
|
### service_regen_conf()
|
||||||
regen-conf:
|
regen-conf:
|
||||||
action_help: Regenerate the configuration file(s) for a service
|
action_help: Regenerate the configuration file(s) for a service
|
||||||
api: PUT /services/regenconf
|
|
||||||
deprecated_alias:
|
deprecated_alias:
|
||||||
- regenconf
|
- regenconf
|
||||||
arguments:
|
arguments:
|
||||||
|
@ -1198,19 +1192,10 @@ firewall:
|
||||||
help: List forwarded ports with UPnP
|
help: List forwarded ports with UPnP
|
||||||
action: store_true
|
action: store_true
|
||||||
|
|
||||||
### firewall_reload()
|
|
||||||
reload:
|
|
||||||
action_help: Reload all firewall rules
|
|
||||||
api: PUT /firewall
|
|
||||||
arguments:
|
|
||||||
--skip-upnp:
|
|
||||||
help: Do not refresh port forwarding using UPnP
|
|
||||||
action: store_true
|
|
||||||
|
|
||||||
### firewall_allow()
|
### firewall_allow()
|
||||||
allow:
|
allow:
|
||||||
action_help: Allow connections on a port
|
action_help: Allow connections on a port
|
||||||
api: POST /firewall/port
|
api: PUT /firewall/<protocol>/allow/<port>
|
||||||
arguments:
|
arguments:
|
||||||
protocol:
|
protocol:
|
||||||
help: "Protocol type to allow (TCP/UDP/Both)"
|
help: "Protocol type to allow (TCP/UDP/Both)"
|
||||||
|
@ -1240,11 +1225,10 @@ firewall:
|
||||||
help: Do not reload firewall rules
|
help: Do not reload firewall rules
|
||||||
action: store_true
|
action: store_true
|
||||||
|
|
||||||
|
|
||||||
### firewall_disallow()
|
### firewall_disallow()
|
||||||
disallow:
|
disallow:
|
||||||
action_help: Disallow connections on a port
|
action_help: Disallow connections on a port
|
||||||
api: DELETE /firewall/port
|
api: PUT /firewall/<protocol>/disallow/<port>
|
||||||
arguments:
|
arguments:
|
||||||
protocol:
|
protocol:
|
||||||
help: "Protocol type to allow (TCP/UDP/Both)"
|
help: "Protocol type to allow (TCP/UDP/Both)"
|
||||||
|
@ -1272,11 +1256,10 @@ firewall:
|
||||||
help: Do not reload firewall rules
|
help: Do not reload firewall rules
|
||||||
action: store_true
|
action: store_true
|
||||||
|
|
||||||
|
|
||||||
### firewall_upnp()
|
### firewall_upnp()
|
||||||
upnp:
|
upnp:
|
||||||
action_help: Manage port forwarding using UPnP
|
action_help: Manage port forwarding using UPnP
|
||||||
api: GET /firewall/upnp
|
api: PUT /firewall/upnp/<action>
|
||||||
arguments:
|
arguments:
|
||||||
action:
|
action:
|
||||||
choices:
|
choices:
|
||||||
|
@ -1290,10 +1273,19 @@ firewall:
|
||||||
help: Do not refresh port forwarding
|
help: Do not refresh port forwarding
|
||||||
action: store_true
|
action: store_true
|
||||||
|
|
||||||
|
|
||||||
|
### firewall_reload()
|
||||||
|
reload:
|
||||||
|
action_help: Reload all firewall rules
|
||||||
|
arguments:
|
||||||
|
--skip-upnp:
|
||||||
|
help: Do not refresh port forwarding using UPnP
|
||||||
|
action: store_true
|
||||||
|
|
||||||
### firewall_stop()
|
### firewall_stop()
|
||||||
stop:
|
stop:
|
||||||
action_help: Stop iptables and ip6tables
|
action_help: Stop iptables and ip6tables
|
||||||
api: DELETE /firewall
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1307,7 +1299,6 @@ dyndns:
|
||||||
### dyndns_subscribe()
|
### dyndns_subscribe()
|
||||||
subscribe:
|
subscribe:
|
||||||
action_help: Subscribe to a DynDNS service
|
action_help: Subscribe to a DynDNS service
|
||||||
api: POST /dyndns
|
|
||||||
arguments:
|
arguments:
|
||||||
--subscribe-host:
|
--subscribe-host:
|
||||||
help: Dynette HTTP API to subscribe to
|
help: Dynette HTTP API to subscribe to
|
||||||
|
@ -1324,7 +1315,6 @@ dyndns:
|
||||||
### dyndns_update()
|
### dyndns_update()
|
||||||
update:
|
update:
|
||||||
action_help: Update IP on DynDNS platform
|
action_help: Update IP on DynDNS platform
|
||||||
api: PUT /dyndns
|
|
||||||
arguments:
|
arguments:
|
||||||
--dyn-host:
|
--dyn-host:
|
||||||
help: Dynette DNS server to inform
|
help: Dynette DNS server to inform
|
||||||
|
@ -1421,32 +1411,47 @@ 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
|
||||||
|
|
||||||
|
|
||||||
### tools_update()
|
### tools_update()
|
||||||
update:
|
update:
|
||||||
action_help: YunoHost update
|
action_help: YunoHost update
|
||||||
api: PUT /update
|
api: PUT /update/<target>
|
||||||
arguments:
|
arguments:
|
||||||
|
target:
|
||||||
|
help: What to update, "apps" (application catalog) or "system" (fetch available package upgrades, equivalent to apt update), "all" for both
|
||||||
|
choices:
|
||||||
|
- apps
|
||||||
|
- system
|
||||||
|
- all
|
||||||
|
nargs: "?"
|
||||||
|
metavar: TARGET
|
||||||
|
default: all
|
||||||
--apps:
|
--apps:
|
||||||
help: Fetch the application list to check which apps can be upgraded
|
help: (Deprecated, see first positional arg) Fetch the application list to check which apps can be upgraded
|
||||||
action: store_true
|
action: store_true
|
||||||
--system:
|
--system:
|
||||||
help: Fetch available system packages upgrades (equivalent to apt update)
|
help: (Deprecated, see first positional arg) Fetch available system packages upgrades (equivalent to apt update)
|
||||||
action: store_true
|
action: store_true
|
||||||
|
|
||||||
### tools_upgrade()
|
### tools_upgrade()
|
||||||
upgrade:
|
upgrade:
|
||||||
action_help: YunoHost upgrade
|
action_help: YunoHost upgrade
|
||||||
api: PUT /upgrade
|
api: PUT /upgrade/<target>
|
||||||
arguments:
|
arguments:
|
||||||
|
target:
|
||||||
|
help: What to upgrade, either "apps" (all apps) or "system" (all system packages)
|
||||||
|
choices:
|
||||||
|
- apps
|
||||||
|
- system
|
||||||
|
nargs: "?"
|
||||||
--apps:
|
--apps:
|
||||||
help: List of apps to upgrade (all by default)
|
help: (Deprecated, see first positional arg) Upgrade all applications
|
||||||
nargs: "*"
|
action: store_true
|
||||||
--system:
|
--system:
|
||||||
help: Upgrade only the system packages
|
help: (Deprecated, see first positional arg) Upgrade only the system packages
|
||||||
action: store_true
|
action: store_true
|
||||||
|
|
||||||
### tools_shell()
|
### tools_shell()
|
||||||
|
@ -1480,7 +1485,9 @@ tools:
|
||||||
### tools_regen_conf()
|
### tools_regen_conf()
|
||||||
regen-conf:
|
regen-conf:
|
||||||
action_help: Regenerate the configuration file(s)
|
action_help: Regenerate the configuration file(s)
|
||||||
api: PUT /tools/regenconf
|
api:
|
||||||
|
- PUT /regenconf
|
||||||
|
- PUT /regenconf/<names>
|
||||||
arguments:
|
arguments:
|
||||||
names:
|
names:
|
||||||
help: Categories to regenerate configuration of (all by default)
|
help: Categories to regenerate configuration of (all by default)
|
||||||
|
@ -1529,7 +1536,9 @@ tools:
|
||||||
### tools_migrations_run()
|
### tools_migrations_run()
|
||||||
run:
|
run:
|
||||||
action_help: Run migrations
|
action_help: Run migrations
|
||||||
api: POST /migrations/run
|
api:
|
||||||
|
- PUT /migrations
|
||||||
|
- PUT /migrations/<targets>
|
||||||
deprecated_alias:
|
deprecated_alias:
|
||||||
- migrate
|
- migrate
|
||||||
arguments:
|
arguments:
|
||||||
|
@ -1552,7 +1561,6 @@ tools:
|
||||||
### tools_migrations_state()
|
### tools_migrations_state()
|
||||||
state:
|
state:
|
||||||
action_help: Show current migrations state
|
action_help: Show current migrations state
|
||||||
api: GET /migrations/state
|
|
||||||
|
|
||||||
|
|
||||||
#############################
|
#############################
|
||||||
|
@ -1581,7 +1589,6 @@ hook:
|
||||||
### hook_info()
|
### hook_info()
|
||||||
info:
|
info:
|
||||||
action_help: Get information about a given hook
|
action_help: Get information about a given hook
|
||||||
api: GET /hooks/<action>/<name>
|
|
||||||
arguments:
|
arguments:
|
||||||
action:
|
action:
|
||||||
help: Action name
|
help: Action name
|
||||||
|
@ -1611,7 +1618,6 @@ hook:
|
||||||
### hook_callback()
|
### hook_callback()
|
||||||
callback:
|
callback:
|
||||||
action_help: Execute all scripts binded to an action
|
action_help: Execute all scripts binded to an action
|
||||||
api: POST /hooks/<action>
|
|
||||||
arguments:
|
arguments:
|
||||||
action:
|
action:
|
||||||
help: Action name
|
help: Action name
|
||||||
|
@ -1707,7 +1713,7 @@ log:
|
||||||
### log_share()
|
### log_share()
|
||||||
share:
|
share:
|
||||||
action_help: Share the full log on yunopaste (alias to show --share)
|
action_help: Share the full log on yunopaste (alias to show --share)
|
||||||
api: GET /logs/share
|
api: GET /logs/<path>/share
|
||||||
arguments:
|
arguments:
|
||||||
path:
|
path:
|
||||||
help: Log file to share
|
help: Log file to share
|
||||||
|
@ -1722,11 +1728,11 @@ diagnosis:
|
||||||
|
|
||||||
list:
|
list:
|
||||||
action_help: List diagnosis categories
|
action_help: List diagnosis categories
|
||||||
api: GET /diagnosis/list
|
api: GET /diagnosis/categories
|
||||||
|
|
||||||
show:
|
show:
|
||||||
action_help: Show most recents diagnosis results
|
action_help: Show most recents diagnosis results
|
||||||
api: GET /diagnosis/show
|
api: GET /diagnosis
|
||||||
arguments:
|
arguments:
|
||||||
categories:
|
categories:
|
||||||
help: Diagnosis categories to display (all by default)
|
help: Diagnosis categories to display (all by default)
|
||||||
|
@ -1744,9 +1750,20 @@ diagnosis:
|
||||||
help: Show a human-readable output
|
help: Show a human-readable output
|
||||||
action: store_true
|
action: store_true
|
||||||
|
|
||||||
|
get:
|
||||||
|
action_help: Low-level command to fetch raw data and status about a specific diagnosis test
|
||||||
|
api: GET /diagnosis/<category>
|
||||||
|
arguments:
|
||||||
|
category:
|
||||||
|
help: Diagnosis category to fetch results from
|
||||||
|
item:
|
||||||
|
help: "List of criteria describing the test. Must correspond exactly to the 'meta' infos in 'yunohost diagnosis show'"
|
||||||
|
metavar: CRITERIA
|
||||||
|
nargs: "*"
|
||||||
|
|
||||||
run:
|
run:
|
||||||
action_help: Run diagnosis
|
action_help: Run diagnosis
|
||||||
api: POST /diagnosis/run
|
api: PUT /diagnosis/run
|
||||||
arguments:
|
arguments:
|
||||||
categories:
|
categories:
|
||||||
help: Diagnosis categories to run (all by default)
|
help: Diagnosis categories to run (all by default)
|
||||||
|
@ -1763,27 +1780,21 @@ diagnosis:
|
||||||
|
|
||||||
ignore:
|
ignore:
|
||||||
action_help: Configure some diagnosis results to be ignored and therefore not considered as actual issues
|
action_help: Configure some diagnosis results to be ignored and therefore not considered as actual issues
|
||||||
api: POST /diagnosis/ignore
|
api: PUT /diagnosis/ignore
|
||||||
arguments:
|
arguments:
|
||||||
--add-filter:
|
--filter:
|
||||||
help: "Add a filter. The first element should be a diagnosis category, and other criterias can be provided using the infos from the 'meta' sections in 'yunohost diagnosis show'. For example: 'dnsrecords domain=yolo.test category=xmpp'"
|
help: "Add a filter. The first element should be a diagnosis category, and other criterias can be provided using the infos from the 'meta' sections in 'yunohost diagnosis show'. For example: 'dnsrecords domain=yolo.test category=xmpp'"
|
||||||
nargs: "*"
|
nargs: "*"
|
||||||
metavar: CRITERIA
|
metavar: CRITERIA
|
||||||
--remove-filter:
|
|
||||||
help: Remove a filter (it should be an existing filter as listed with --list)
|
|
||||||
nargs: "*"
|
|
||||||
metavar: CRITERIA
|
|
||||||
--list:
|
--list:
|
||||||
help: List active ignore filters
|
help: List active ignore filters
|
||||||
action: store_true
|
action: store_true
|
||||||
|
|
||||||
get:
|
unignore:
|
||||||
action_help: Low-level command to fetch raw data and status about a specific diagnosis test
|
action_help: Configure some diagnosis results to be unignored and therefore considered as actual issues
|
||||||
api: GET /diagnosis/item/<category>
|
api: PUT /diagnosis/unignore
|
||||||
arguments:
|
arguments:
|
||||||
category:
|
--filter:
|
||||||
help: Diagnosis category to fetch results from
|
help: Remove a filter (it should be an existing filter as listed with --list)
|
||||||
item:
|
|
||||||
help: "List of criteria describing the test. Must correspond exactly to the 'meta' infos in 'yunohost diagnosis show'"
|
|
||||||
metavar: CRITERIA
|
|
||||||
nargs: "*"
|
nargs: "*"
|
||||||
|
metavar: CRITERIA
|
||||||
|
|
|
@ -47,10 +47,11 @@ ynh_wait_dpkg_free() {
|
||||||
|
|
||||||
# Check either a package is installed or not
|
# Check either a package is installed or not
|
||||||
#
|
#
|
||||||
# example: ynh_package_is_installed --package=yunohost && echo "ok"
|
# example: ynh_package_is_installed --package=yunohost && echo "installed"
|
||||||
#
|
#
|
||||||
# usage: ynh_package_is_installed --package=name
|
# usage: ynh_package_is_installed --package=name
|
||||||
# | arg: -p, --package= - the package name to check
|
# | arg: -p, --package= - the package name to check
|
||||||
|
# | ret: 0 if the package is installed, 1 else.
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.2.4 or higher.
|
# Requires YunoHost version 2.2.4 or higher.
|
||||||
ynh_package_is_installed() {
|
ynh_package_is_installed() {
|
||||||
|
@ -216,7 +217,8 @@ ynh_package_install_from_equivs () {
|
||||||
# example : ynh_install_app_dependencies dep1 dep2 "dep3|dep4|dep5"
|
# example : ynh_install_app_dependencies dep1 dep2 "dep3|dep4|dep5"
|
||||||
#
|
#
|
||||||
# usage: ynh_install_app_dependencies dep [dep [...]]
|
# usage: ynh_install_app_dependencies dep [dep [...]]
|
||||||
# | arg: dep - the package name to install in dependence. Writing "dep3|dep4|dep5" can be used to specify alternatives. For example : dep1 dep2 "dep3|dep4|dep5" will require to install dep1 and dep 2 and (dep3 or dep4 or dep5).
|
# | arg: dep - the package name to install in dependence.
|
||||||
|
# | arg: "dep1|dep2|…" - You can specify alternatives. It will require to install (dep1 or dep2, etc).
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_install_app_dependencies () {
|
ynh_install_app_dependencies () {
|
||||||
|
@ -224,13 +226,10 @@ ynh_install_app_dependencies () {
|
||||||
# Add a comma for each space between packages. But not add a comma if the space separate a version specification. (See below)
|
# Add a comma for each space between packages. But not add a comma if the space separate a version specification. (See below)
|
||||||
dependencies="$(echo "$dependencies" | sed 's/\([^\<=\>]\)\ \([^(]\)/\1, \2/g')"
|
dependencies="$(echo "$dependencies" | sed 's/\([^\<=\>]\)\ \([^(]\)/\1, \2/g')"
|
||||||
local dependencies=${dependencies//|/ | }
|
local dependencies=${dependencies//|/ | }
|
||||||
local manifest_path="../manifest.json"
|
local manifest_path="$YNH_APP_BASEDIR/manifest.json"
|
||||||
if [ ! -e "$manifest_path" ]; then
|
|
||||||
manifest_path="../settings/manifest.json" # Into the restore script, the manifest is not at the same place
|
|
||||||
fi
|
|
||||||
|
|
||||||
local version=$(grep '\"version\": ' "$manifest_path" | cut --delimiter='"' --fields=4) # Retrieve the version number in the manifest file.
|
local version=$(jq -r '.version' "$manifest_path")
|
||||||
if [ ${#version} -eq 0 ]; then
|
if [ -z "${version}" ] || [ "$version" == "null" ]; then
|
||||||
version="1.0"
|
version="1.0"
|
||||||
fi
|
fi
|
||||||
local dep_app=${app//_/-} # Replace all '_' by '-'
|
local dep_app=${app//_/-} # Replace all '_' by '-'
|
||||||
|
|
|
@ -13,13 +13,13 @@ CAN_BIND=${CAN_BIND:-1}
|
||||||
#
|
#
|
||||||
# This helper can be used both in a system backup hook, and in an app backup script
|
# This helper can be used both in a system backup hook, and in an app backup script
|
||||||
#
|
#
|
||||||
# Details: ynh_backup writes SRC and the relative DEST into a CSV file. And it
|
# `ynh_backup` writes `src_path` and the relative `dest_path` into a CSV file, and it
|
||||||
# creates the parent destination directory
|
# creates the parent destination directory
|
||||||
#
|
#
|
||||||
# If DEST is ended by a slash it complete this path with the basename of SRC.
|
# If `dest_path` is ended by a slash it complete this path with the basename of `src_path`.
|
||||||
#
|
|
||||||
# Example in the context of a wordpress app
|
|
||||||
#
|
#
|
||||||
|
# Example in the context of a wordpress app :
|
||||||
|
# ```
|
||||||
# ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf"
|
# ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||||
# # => This line will be added into CSV file
|
# # => This line will be added into CSV file
|
||||||
# # "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/etc/nginx/conf.d/$domain.d/$app.conf"
|
# # "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||||
|
@ -40,26 +40,28 @@ CAN_BIND=${CAN_BIND:-1}
|
||||||
# ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "/conf/"
|
# ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "/conf/"
|
||||||
# # => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/$app.conf"
|
# # => "/etc/nginx/conf.d/$domain.d/$app.conf","apps/wordpress/conf/$app.conf"
|
||||||
#
|
#
|
||||||
|
# ```
|
||||||
#
|
#
|
||||||
# How to use --is_big:
|
# How to use `--is_big`:
|
||||||
# --is_big is used to specify that this part of the backup can be quite huge.
|
#
|
||||||
|
# `--is_big` is used to specify that this part of the backup can be quite huge.
|
||||||
# So, you don't want that your package does backup that part during ynh_backup_before_upgrade.
|
# So, you don't want that your package does backup that part during ynh_backup_before_upgrade.
|
||||||
# In the same way, an user may doesn't want to backup this big part of the app for
|
# In the same way, an user may doesn't want to backup this big part of the app for
|
||||||
# each of his backup. And so handle that part differently.
|
# each of his backup. And so handle that part differently.
|
||||||
#
|
#
|
||||||
# As this part of your backup may not be done, your restore script has to handle it.
|
# As this part of your backup may not be done, your restore script has to handle it.
|
||||||
# In your restore script, use --not_mandatory with ynh_restore_file
|
# In your restore script, use `--not_mandatory` with `ynh_restore_file`
|
||||||
# As well in your remove script, you should not remove those data ! Or an user may end up with
|
# As well in your remove script, you should not remove those data ! Or an user may end up with
|
||||||
# a failed upgrade restoring an app without data anymore !
|
# a failed upgrade restoring an app without data anymore !
|
||||||
#
|
#
|
||||||
# To have the benefit of --is_big while doing a backup, you can whether set the environement
|
# To have the benefit of `--is_big` while doing a backup, you can whether set the environement
|
||||||
# variable BACKUP_CORE_ONLY to 1 (BACKUP_CORE_ONLY=1) before the backup command. It will affect
|
# variable `BACKUP_CORE_ONLY` to 1 (`BACKUP_CORE_ONLY=1`) before the backup command. It will affect
|
||||||
# only that backup command.
|
# only that backup command.
|
||||||
# Or set the config do_not_backup_data to 1 into the settings.yml of the app. This will affect
|
# Or set the config `do_not_backup_data` to 1 into the `settings.yml` of the app. This will affect
|
||||||
# all backups for this app until the setting is removed.
|
# all backups for this app until the setting is removed.
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.4.0 or higher.
|
# Requires YunoHost version 2.4.0 or higher.
|
||||||
# Requires YunoHost version 3.5.0 or higher for the argument --not_mandatory
|
# Requires YunoHost version 3.5.0 or higher for the argument `--not_mandatory`
|
||||||
ynh_backup() {
|
ynh_backup() {
|
||||||
# TODO find a way to avoid injection by file strange naming !
|
# TODO find a way to avoid injection by file strange naming !
|
||||||
|
|
||||||
|
@ -205,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"
|
||||||
|
@ -221,26 +223,25 @@ with open(sys.argv[1], 'r') as backup_file:
|
||||||
|
|
||||||
# Restore a file or a directory
|
# Restore a file or a directory
|
||||||
#
|
#
|
||||||
# Use the registered path in backup_list by ynh_backup to restore the file at
|
|
||||||
# the right place.
|
|
||||||
#
|
|
||||||
# usage: ynh_restore_file --origin_path=origin_path [--dest_path=dest_path] [--not_mandatory]
|
# usage: ynh_restore_file --origin_path=origin_path [--dest_path=dest_path] [--not_mandatory]
|
||||||
# | arg: -o, --origin_path= - Path where was located the file or the directory before to be backuped or relative path to $YNH_CWD where it is located in the backup archive
|
# | arg: -o, --origin_path= - Path where was located the file or the directory before to be backuped or relative path to $YNH_CWD where it is located in the backup archive
|
||||||
# | arg: -d, --dest_path= - Path where restore the file or the dir, if unspecified, the destination will be ORIGIN_PATH or if the ORIGIN_PATH doesn't exist in the archive, the destination will be searched into backup.csv
|
# | arg: -d, --dest_path= - Path where restore the file or the dir. If unspecified, the destination will be `ORIGIN_PATH` or if the `ORIGIN_PATH` doesn't exist in the archive, the destination will be searched into `backup.csv`
|
||||||
# | arg: -m, --not_mandatory - Indicate that if the file is missing, the restore process can ignore it.
|
# | arg: -m, --not_mandatory - Indicate that if the file is missing, the restore process can ignore it.
|
||||||
#
|
#
|
||||||
|
# Use the registered path in backup_list by ynh_backup to restore the file at the right place.
|
||||||
|
#
|
||||||
# examples:
|
# examples:
|
||||||
# ynh_restore_file "/etc/nginx/conf.d/$domain.d/$app.conf"
|
# ynh_restore_file -o "/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||||
# # You can also use relative paths:
|
# # You can also use relative paths:
|
||||||
# ynh_restore_file "conf/nginx.conf"
|
# ynh_restore_file -o "conf/nginx.conf"
|
||||||
#
|
#
|
||||||
# If DEST_PATH already exists and is lighter than 500 Mo, a backup will be made in
|
# If `DEST_PATH` already exists and is lighter than 500 Mo, a backup will be made in
|
||||||
# /home/yunohost.conf/backup/. Otherwise, the existing file is removed.
|
# `/home/yunohost.conf/backup/`. Otherwise, the existing file is removed.
|
||||||
#
|
#
|
||||||
# if apps/wordpress/etc/nginx/conf.d/$domain.d/$app.conf exists, restore it into
|
# if `apps/$app/etc/nginx/conf.d/$domain.d/$app.conf` exists, restore it into
|
||||||
# /etc/nginx/conf.d/$domain.d/$app.conf
|
# `/etc/nginx/conf.d/$domain.d/$app.conf`
|
||||||
# if no, search for a match in the csv (eg: conf/nginx.conf) and restore it into
|
# if no, search for a match in the csv (eg: conf/nginx.conf) and restore it into
|
||||||
# /etc/nginx/conf.d/$domain.d/$app.conf
|
# `/etc/nginx/conf.d/$domain.d/$app.conf`
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
# Requires YunoHost version 3.5.0 or higher for the argument --not_mandatory
|
# Requires YunoHost version 3.5.0 or higher for the argument --not_mandatory
|
||||||
|
@ -346,13 +347,13 @@ ynh_store_file_checksum () {
|
||||||
|
|
||||||
# Verify the checksum and backup the file if it's different
|
# Verify the checksum and backup the file if it's different
|
||||||
#
|
#
|
||||||
# This helper is primarily meant to allow to easily backup personalised/manually
|
|
||||||
# modified config files.
|
|
||||||
#
|
|
||||||
# usage: ynh_backup_if_checksum_is_different --file=file
|
# usage: ynh_backup_if_checksum_is_different --file=file
|
||||||
# | arg: -f, --file= - The file on which the checksum test will be perfomed.
|
# | arg: -f, --file= - The file on which the checksum test will be perfomed.
|
||||||
# | ret: the name of a backup file, or nothing
|
# | ret: the name of a backup file, or nothing
|
||||||
#
|
#
|
||||||
|
# This helper is primarily meant to allow to easily backup personalised/manually
|
||||||
|
# modified config files.
|
||||||
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_backup_if_checksum_is_different () {
|
ynh_backup_if_checksum_is_different () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
|
@ -410,12 +411,16 @@ ynh_backup_archive_exists () {
|
||||||
|
|
||||||
# Make a backup in case of failed upgrade
|
# Make a backup in case of failed upgrade
|
||||||
#
|
#
|
||||||
# usage:
|
# usage: ynh_backup_before_upgrade
|
||||||
|
#
|
||||||
|
# Usage in a package script:
|
||||||
|
# ```
|
||||||
# ynh_backup_before_upgrade
|
# ynh_backup_before_upgrade
|
||||||
# ynh_clean_setup () {
|
# ynh_clean_setup () {
|
||||||
# ynh_restore_upgradebackup
|
# ynh_restore_upgradebackup
|
||||||
# }
|
# }
|
||||||
# ynh_abort_if_errors
|
# ynh_abort_if_errors
|
||||||
|
# ```
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.7.2 or higher.
|
# Requires YunoHost version 2.7.2 or higher.
|
||||||
ynh_backup_before_upgrade () {
|
ynh_backup_before_upgrade () {
|
||||||
|
@ -459,12 +464,16 @@ ynh_backup_before_upgrade () {
|
||||||
|
|
||||||
# Restore a previous backup if the upgrade process failed
|
# Restore a previous backup if the upgrade process failed
|
||||||
#
|
#
|
||||||
# usage:
|
# usage: ynh_restore_upgradebackup
|
||||||
|
#
|
||||||
|
# Usage in a package script:
|
||||||
|
# ```
|
||||||
# ynh_backup_before_upgrade
|
# ynh_backup_before_upgrade
|
||||||
# ynh_clean_setup () {
|
# ynh_clean_setup () {
|
||||||
# ynh_restore_upgradebackup
|
# ynh_restore_upgradebackup
|
||||||
# }
|
# }
|
||||||
# ynh_abort_if_errors
|
# ynh_abort_if_errors
|
||||||
|
# ```
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.7.2 or higher.
|
# Requires YunoHost version 2.7.2 or higher.
|
||||||
ynh_restore_upgradebackup () {
|
ynh_restore_upgradebackup () {
|
||||||
|
|
|
@ -12,15 +12,14 @@
|
||||||
#
|
#
|
||||||
# usage 2: ynh_add_fail2ban_config --use_template [--others_var="list of others variables to replace"]
|
# usage 2: ynh_add_fail2ban_config --use_template [--others_var="list of others variables to replace"]
|
||||||
# | arg: -t, --use_template - Use this helper in template mode
|
# | arg: -t, --use_template - Use this helper in template mode
|
||||||
# | arg: -v, --others_var= - List of others variables to replace separeted by a space
|
# | arg: -v, --others_var= - List of others variables to replace separeted by a space for example : 'var_1 var_2 ...'
|
||||||
# | for example : 'var_1 var_2 ...'
|
|
||||||
#
|
#
|
||||||
# This will use a template in ../conf/f2b_jail.conf and ../conf/f2b_filter.conf
|
# This will use a template in `../conf/f2b_jail.conf` and `../conf/f2b_filter.conf`
|
||||||
# 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.
|
||||||
#
|
#
|
||||||
# Generally your template will look like that by example (for synapse):
|
# Generally your template will look like that by example (for synapse):
|
||||||
#
|
# ```
|
||||||
# f2b_jail.conf:
|
# f2b_jail.conf:
|
||||||
# [__APP__]
|
# [__APP__]
|
||||||
# enabled = true
|
# enabled = true
|
||||||
|
@ -28,7 +27,8 @@
|
||||||
# filter = __APP__
|
# filter = __APP__
|
||||||
# logpath = /var/log/__APP__/logfile.log
|
# logpath = /var/log/__APP__/logfile.log
|
||||||
# maxretry = 3
|
# maxretry = 3
|
||||||
#
|
# ```
|
||||||
|
# ```
|
||||||
# f2b_filter.conf:
|
# f2b_filter.conf:
|
||||||
# [INCLUDES]
|
# [INCLUDES]
|
||||||
# before = common.conf
|
# before = common.conf
|
||||||
|
@ -41,14 +41,15 @@
|
||||||
# failregex = ^%(__synapse_start_line)s INFO \- POST\-(\d+)\- <HOST> \- \d+ \- Received request\: POST /_matrix/client/r0/login\??<SKIPLINES>%(__synapse_start_line)s INFO \- POST\-\1\- Got login request with identifier: \{u'type': u'm.id.user', u'user'\: u'(.+?)'\}, medium\: None, address: None, user\: u'\5'<SKIPLINES>%(__synapse_start_line)s WARNING \- \- (Attempted to login as @\5\:.+ but they do not exist|Failed password login for user @\5\:.+)$
|
# failregex = ^%(__synapse_start_line)s INFO \- POST\-(\d+)\- <HOST> \- \d+ \- Received request\: POST /_matrix/client/r0/login\??<SKIPLINES>%(__synapse_start_line)s INFO \- POST\-\1\- Got login request with identifier: \{u'type': u'm.id.user', u'user'\: u'(.+?)'\}, medium\: None, address: None, user\: u'\5'<SKIPLINES>%(__synapse_start_line)s WARNING \- \- (Attempted to login as @\5\:.+ but they do not exist|Failed password login for user @\5\:.+)$
|
||||||
#
|
#
|
||||||
# ignoreregex =
|
# ignoreregex =
|
||||||
|
# ```
|
||||||
#
|
#
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# Note about the "failregex" option:
|
# Note about the "failregex" option:
|
||||||
# regex to match the password failure messages in the logfile. The
|
#
|
||||||
# host must be matched by a group named "host". The tag "<HOST>" can
|
# regex to match the password failure messages in the logfile. The host must be
|
||||||
# be used for standard IP/hostname matching and is only an alias for
|
# matched by a group named "`host`". The tag "`<HOST>`" can be used for standard
|
||||||
# (?:::f{4,6}:)?(?P<host>[\w\-.^_]+)
|
# IP/hostname matching and is only an alias for `(?:::f{4,6}:)?(?P<host>[\w\-.^_]+)`
|
||||||
#
|
#
|
||||||
# You can find some more explainations about how to make a regex here :
|
# You can find some more explainations about how to make a regex here :
|
||||||
# https://www.fail2ban.org/wiki/index.php/MANUAL_0_8#Filters
|
# https://www.fail2ban.org/wiki/index.php/MANUAL_0_8#Filters
|
||||||
|
@ -56,9 +57,11 @@
|
||||||
# Note that the logfile need to exist before to call this helper !!
|
# Note that the logfile need to exist before to call this helper !!
|
||||||
#
|
#
|
||||||
# To validate your regex you can test with this command:
|
# To validate your regex you can test with this command:
|
||||||
|
# ```
|
||||||
# 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
|
||||||
|
@ -76,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
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
# | arg: -t, --total - Count total RAM+swap
|
# | arg: -t, --total - Count total RAM+swap
|
||||||
# | arg: -s, --ignore_swap - Ignore swap, consider only real RAM
|
# | arg: -s, --ignore_swap - Ignore swap, consider only real RAM
|
||||||
# | arg: -o, --only_swap - Ignore real RAM, consider only swap
|
# | arg: -o, --only_swap - Ignore real RAM, consider only swap
|
||||||
# | ret: the amount of free ram
|
# | ret: the amount of free ram, in MB (MegaBytes)
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.8.1 or higher.
|
# Requires YunoHost version 3.8.1 or higher.
|
||||||
ynh_get_ram () {
|
ynh_get_ram () {
|
||||||
|
@ -70,13 +70,13 @@ ynh_get_ram () {
|
||||||
|
|
||||||
# Return 0 or 1 depending if the system has a given amount of RAM+swap free or total
|
# Return 0 or 1 depending if the system has a given amount of RAM+swap free or total
|
||||||
#
|
#
|
||||||
# usage: ynh_require_ram --required=RAM required in Mb [--free|--total] [--ignore_swap|--only_swap]
|
# usage: ynh_require_ram --required=RAM [--free|--total] [--ignore_swap|--only_swap]
|
||||||
# | arg: -r, --required= - The amount to require, in Mb
|
# | arg: -r, --required= - The amount to require, in MB
|
||||||
# | arg: -f, --free - Count free RAM+swap
|
# | arg: -f, --free - Count free RAM+swap
|
||||||
# | arg: -t, --total - Count total RAM+swap
|
# | arg: -t, --total - Count total RAM+swap
|
||||||
# | arg: -s, --ignore_swap - Ignore swap, consider only real RAM
|
# | arg: -s, --ignore_swap - Ignore swap, consider only real RAM
|
||||||
# | arg: -o, --only_swap - Ignore real RAM, consider only swap
|
# | arg: -o, --only_swap - Ignore real RAM, consider only swap
|
||||||
# | exit: Return 1 if the ram is under the requirement, 0 otherwise.
|
# | ret: 1 if the ram is under the requirement, 0 otherwise.
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.8.1 or higher.
|
# Requires YunoHost version 3.8.1 or higher.
|
||||||
ynh_require_ram () {
|
ynh_require_ram () {
|
||||||
|
|
|
@ -102,8 +102,7 @@ ynh_print_err () {
|
||||||
|
|
||||||
# Execute a command and print the result as an error
|
# Execute a command and print the result as an error
|
||||||
#
|
#
|
||||||
# usage: ynh_exec_err your_command
|
# usage: ynh_exec_err "your_command [ | other_command ]"
|
||||||
# usage: ynh_exec_err "your_command | other_command"
|
|
||||||
# | arg: command - command to execute
|
# | arg: command - command to execute
|
||||||
#
|
#
|
||||||
# When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.
|
# When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.
|
||||||
|
@ -117,8 +116,7 @@ ynh_exec_err () {
|
||||||
|
|
||||||
# Execute a command and print the result as a warning
|
# Execute a command and print the result as a warning
|
||||||
#
|
#
|
||||||
# usage: ynh_exec_warn your_command
|
# usage: ynh_exec_warn "your_command [ | other_command ]"
|
||||||
# usage: ynh_exec_warn "your_command | other_command"
|
|
||||||
# | arg: command - command to execute
|
# | arg: command - command to execute
|
||||||
#
|
#
|
||||||
# When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.
|
# When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.
|
||||||
|
@ -132,8 +130,7 @@ ynh_exec_warn () {
|
||||||
|
|
||||||
# Execute a command and force the result to be printed on stdout
|
# Execute a command and force the result to be printed on stdout
|
||||||
#
|
#
|
||||||
# usage: ynh_exec_warn_less your_command
|
# usage: ynh_exec_warn_less "your_command [ | other_command ]"
|
||||||
# usage: ynh_exec_warn_less "your_command | other_command"
|
|
||||||
# | arg: command - command to execute
|
# | arg: command - command to execute
|
||||||
#
|
#
|
||||||
# When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.
|
# When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.
|
||||||
|
@ -147,8 +144,7 @@ ynh_exec_warn_less () {
|
||||||
|
|
||||||
# Execute a command and redirect stdout in /dev/null
|
# Execute a command and redirect stdout in /dev/null
|
||||||
#
|
#
|
||||||
# usage: ynh_exec_quiet your_command
|
# usage: ynh_exec_quiet "your_command [ | other_command ]"
|
||||||
# usage: ynh_exec_quiet "your_command | other_command"
|
|
||||||
# | arg: command - command to execute
|
# | arg: command - command to execute
|
||||||
#
|
#
|
||||||
# When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.
|
# When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.
|
||||||
|
@ -162,8 +158,7 @@ ynh_exec_quiet () {
|
||||||
|
|
||||||
# Execute a command and redirect stdout and stderr in /dev/null
|
# Execute a command and redirect stdout and stderr in /dev/null
|
||||||
#
|
#
|
||||||
# usage: ynh_exec_fully_quiet your_command
|
# usage: ynh_exec_fully_quiet "your_command [ | other_command ]"
|
||||||
# usage: ynh_exec_fully_quiet "your_command | other_command"
|
|
||||||
# | arg: command - command to execute
|
# | arg: command - command to execute
|
||||||
#
|
#
|
||||||
# When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.
|
# When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.
|
||||||
|
@ -298,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
|
||||||
|
@ -363,8 +358,7 @@ ynh_debug () {
|
||||||
|
|
||||||
# Execute a command and print the result as debug
|
# Execute a command and print the result as debug
|
||||||
#
|
#
|
||||||
# usage: ynh_debug_exec your_command
|
# usage: ynh_debug_exec "your_command [ | other_command ]"
|
||||||
# usage: ynh_debug_exec "your_command | other_command"
|
|
||||||
# | arg: command - command to execute
|
# | arg: command - command to execute
|
||||||
#
|
#
|
||||||
# When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.
|
# When using pipes, double quotes are required - otherwise, this helper will run the first command, and the whole output will be sent through the next pipe.
|
||||||
|
|
|
@ -7,16 +7,14 @@
|
||||||
# | arg: -n, --nonappend - (optional) Replace the config file instead of appending this new config.
|
# | arg: -n, --nonappend - (optional) Replace the config file instead of appending this new config.
|
||||||
# | arg: -u, --specific_user= - run logrotate as the specified user and group. If not specified logrotate is runned as root.
|
# | arg: -u, --specific_user= - run logrotate as the specified user and group. If not specified logrotate is runned as root.
|
||||||
#
|
#
|
||||||
# If no --logfile is provided, /var/log/${app} will be used as default.
|
# If no `--logfile` is provided, `/var/log/$app` will be used as default.
|
||||||
# logfile can be just a directory, or a full path to a logfile :
|
# `logfile` can point to a directory or a file.
|
||||||
# /parentdir/logdir
|
|
||||||
# /parentdir/logdir/logfile.log
|
|
||||||
#
|
#
|
||||||
# It's possible to use this helper multiple times, each config will be added to
|
# It's possible to use this helper multiple times, each config will be added to
|
||||||
# the same logrotate config file. Unless you use the option --non-append
|
# the same logrotate config file. Unless you use the option `--non-append`
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
# Requires YunoHost version 3.2.0 or higher for the argument --specific_user
|
# Requires YunoHost version 3.2.0 or higher for the argument `--specific_user`
|
||||||
ynh_use_logrotate () {
|
ynh_use_logrotate () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=lnuya
|
local legacy_args=lnuya
|
||||||
|
|
|
@ -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
|
||||||
|
@ -47,12 +49,15 @@ ynh_multimedia_build_main_dir() {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Add a directory in yunohost.multimedia
|
# Add a directory in yunohost.multimedia
|
||||||
# This "directory" will be a symbolic link to a existing directory.
|
|
||||||
#
|
#
|
||||||
# usage: ynh_multimedia_addfolder "Source directory" "Destination directory"
|
# usage: ynh_multimedia_addfolder --source_dir="source_dir" --dest_dir="dest_dir"
|
||||||
#
|
#
|
||||||
# | arg: -s, --source_dir= - Source directory - The real directory which contains your medias.
|
# | arg: -s, --source_dir= - Source directory - The real directory which contains your medias.
|
||||||
# | arg: -d, --dest_dir= - Destination directory - The name and the place of the symbolic link, relative to "/home/yunohost.multimedia"
|
# | arg: -d, --dest_dir= - Destination directory - The name and the place of the symbolic link, relative to "/home/yunohost.multimedia"
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
@ -80,6 +85,8 @@ ynh_multimedia_addfolder() {
|
||||||
# usage: ynh_multimedia_addaccess user_name
|
# usage: ynh_multimedia_addaccess user_name
|
||||||
#
|
#
|
||||||
# | 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
|
||||||
|
|
|
@ -2,14 +2,15 @@
|
||||||
|
|
||||||
# Open a connection as a user
|
# Open a connection as a user
|
||||||
#
|
#
|
||||||
# example: ynh_mysql_connect_as --user="user" --password="pass" <<< "UPDATE ...;"
|
|
||||||
# example: ynh_mysql_connect_as --user="user" --password="pass" < /path/to/file.sql
|
|
||||||
#
|
|
||||||
# usage: ynh_mysql_connect_as --user=user --password=password [--database=database]
|
# usage: ynh_mysql_connect_as --user=user --password=password [--database=database]
|
||||||
# | arg: -u, --user= - the user name to connect as
|
# | arg: -u, --user= - the user name to connect as
|
||||||
# | arg: -p, --password= - the user password
|
# | arg: -p, --password= - the user password
|
||||||
# | arg: -d, --database= - the database to connect to
|
# | arg: -d, --database= - the database to connect to
|
||||||
#
|
#
|
||||||
|
# examples:
|
||||||
|
# ynh_mysql_connect_as --user="user" --password="pass" <<< "UPDATE ...;"
|
||||||
|
# ynh_mysql_connect_as --user="user" --password="pass" < /path/to/file.sql
|
||||||
|
#
|
||||||
# Requires YunoHost version 2.2.4 or higher.
|
# Requires YunoHost version 2.2.4 or higher.
|
||||||
ynh_mysql_connect_as() {
|
ynh_mysql_connect_as() {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
|
@ -120,11 +121,11 @@ ynh_mysql_drop_db() {
|
||||||
|
|
||||||
# Dump a database
|
# Dump a database
|
||||||
#
|
#
|
||||||
# example: ynh_mysql_dump_db --database=roundcube > ./dump.sql
|
|
||||||
#
|
|
||||||
# usage: ynh_mysql_dump_db --database=database
|
# usage: ynh_mysql_dump_db --database=database
|
||||||
# | arg: -d, --database= - the database name to dump
|
# | arg: -d, --database= - the database name to dump
|
||||||
# | ret: the mysqldump output
|
# | ret: The mysqldump output
|
||||||
|
#
|
||||||
|
# example: ynh_mysql_dump_db --database=roundcube > ./dump.sql
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.2.4 or higher.
|
# Requires YunoHost version 2.2.4 or higher.
|
||||||
ynh_mysql_dump_db() {
|
ynh_mysql_dump_db() {
|
||||||
|
@ -156,7 +157,7 @@ ynh_mysql_create_user() {
|
||||||
#
|
#
|
||||||
# usage: ynh_mysql_user_exists --user=user
|
# usage: ynh_mysql_user_exists --user=user
|
||||||
# | arg: -u, --user= - the user for which to check existence
|
# | arg: -u, --user= - the user for which to check existence
|
||||||
# | exit: Return 1 if the user doesn't exist, 0 otherwise.
|
# | ret: 0 if the user exists, 1 otherwise.
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.2.4 or higher.
|
# Requires YunoHost version 2.2.4 or higher.
|
||||||
ynh_mysql_user_exists()
|
ynh_mysql_user_exists()
|
||||||
|
@ -195,8 +196,8 @@ ynh_mysql_drop_user() {
|
||||||
# | arg: -n, --db_name= - Name of the database
|
# | arg: -n, --db_name= - Name of the database
|
||||||
# | arg: -p, --db_pwd= - Password of the database. If not provided, a password will be generated
|
# | arg: -p, --db_pwd= - Password of the database. If not provided, a password will be generated
|
||||||
#
|
#
|
||||||
# After executing this helper, the password of the created database will be available in $db_pwd
|
# After executing this helper, the password of the created database will be available in `$db_pwd`
|
||||||
# It will also be stored as "mysqlpwd" into the app settings.
|
# It will also be stored as "`mysqlpwd`" into the app settings.
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_mysql_setup_db () {
|
ynh_mysql_setup_db () {
|
||||||
|
|
|
@ -2,12 +2,12 @@
|
||||||
|
|
||||||
# Find a free port and return it
|
# Find a free port and return it
|
||||||
#
|
#
|
||||||
# example: port=$(ynh_find_port --port=8080)
|
|
||||||
#
|
|
||||||
# usage: ynh_find_port --port=begin_port
|
# usage: ynh_find_port --port=begin_port
|
||||||
# | arg: -p, --port= - port to start to search
|
# | arg: -p, --port= - port to start to search
|
||||||
# | ret: the port number
|
# | ret: the port number
|
||||||
#
|
#
|
||||||
|
# example: port=$(ynh_find_port --port=8080)
|
||||||
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_find_port () {
|
ynh_find_port () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
|
@ -20,18 +20,18 @@ ynh_find_port () {
|
||||||
test -n "$port" || ynh_die --message="The argument of ynh_find_port must be a valid port."
|
test -n "$port" || ynh_die --message="The argument of ynh_find_port must be a valid port."
|
||||||
while ! ynh_port_available --port=$port
|
while ! ynh_port_available --port=$port
|
||||||
do
|
do
|
||||||
port=$((port+1)) # Else, pass to next port
|
port=$((port+1))
|
||||||
done
|
done
|
||||||
echo $port
|
echo $port
|
||||||
}
|
}
|
||||||
|
|
||||||
# Test if a port is available
|
# Test if a port is available
|
||||||
#
|
#
|
||||||
# example: ynh_port_available --port=1234 || ynh_die --message="Port 1234 is needs to be available for this app"
|
|
||||||
#
|
|
||||||
# usage: ynh_find_port --port=XYZ
|
# usage: ynh_find_port --port=XYZ
|
||||||
# | arg: -p, --port= - port to check
|
# | arg: -p, --port= - port to check
|
||||||
# | exit: Return 1 if the port is already used by another process.
|
# | ret: 0 if the port is available, 1 if it is already used by another process.
|
||||||
|
#
|
||||||
|
# example: ynh_port_available --port=1234 || ynh_die --message="Port 1234 is needs to be available for this app"
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.8.0 or higher.
|
# Requires YunoHost version 3.8.0 or higher.
|
||||||
ynh_port_available () {
|
ynh_port_available () {
|
||||||
|
@ -42,7 +42,12 @@ ynh_port_available () {
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
if ss --numeric --listening --tcp --udp | awk '{print$5}' | grep --quiet --extended-regexp ":$port$" # Check if the port is free
|
# Check if the port is free
|
||||||
|
if ss --numeric --listening --tcp --udp | awk '{print$5}' | grep --quiet --extended-regexp ":$port$"
|
||||||
|
then
|
||||||
|
return 1
|
||||||
|
# This is to cover (most) case where an app is using a port yet ain't currently using it for some reason (typically service ain't up)
|
||||||
|
elif grep -q "port: '$port'" /etc/yunohost/apps/*/settings.yml
|
||||||
then
|
then
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
|
@ -75,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 }
|
||||||
|
@ -89,12 +94,12 @@ EOF
|
||||||
|
|
||||||
# Validate an IPv4 address
|
# Validate an IPv4 address
|
||||||
#
|
#
|
||||||
# example: ynh_validate_ip4 111.222.333.444
|
|
||||||
#
|
|
||||||
# usage: ynh_validate_ip4 --ip_address=ip_address
|
# usage: ynh_validate_ip4 --ip_address=ip_address
|
||||||
# | arg: -i, --ip_address= - the ipv4 address to check
|
# | arg: -i, --ip_address= - the ipv4 address to check
|
||||||
# | ret: 0 for valid ipv4 addresses, 1 otherwise
|
# | ret: 0 for valid ipv4 addresses, 1 otherwise
|
||||||
#
|
#
|
||||||
|
# example: ynh_validate_ip4 111.222.333.444
|
||||||
|
#
|
||||||
# Requires YunoHost version 2.2.4 or higher.
|
# Requires YunoHost version 2.2.4 or higher.
|
||||||
ynh_validate_ip4()
|
ynh_validate_ip4()
|
||||||
{
|
{
|
||||||
|
@ -111,12 +116,12 @@ ynh_validate_ip4()
|
||||||
|
|
||||||
# Validate an IPv6 address
|
# Validate an IPv6 address
|
||||||
#
|
#
|
||||||
# example: ynh_validate_ip6 2000:dead:beef::1
|
|
||||||
#
|
|
||||||
# usage: ynh_validate_ip6 --ip_address=ip_address
|
# usage: ynh_validate_ip6 --ip_address=ip_address
|
||||||
# | arg: -i, --ip_address= - the ipv6 address to check
|
# | arg: -i, --ip_address= - the ipv6 address to check
|
||||||
# | ret: 0 for valid ipv6 addresses, 1 otherwise
|
# | ret: 0 for valid ipv6 addresses, 1 otherwise
|
||||||
#
|
#
|
||||||
|
# example: ynh_validate_ip6 2000:dead:beef::1
|
||||||
|
#
|
||||||
# Requires YunoHost version 2.2.4 or higher.
|
# Requires YunoHost version 2.2.4 or higher.
|
||||||
ynh_validate_ip6()
|
ynh_validate_ip6()
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,18 +4,18 @@
|
||||||
#
|
#
|
||||||
# usage: ynh_add_nginx_config
|
# usage: ynh_add_nginx_config
|
||||||
#
|
#
|
||||||
# This will use a template in ../conf/nginx.conf
|
# This will use a template in `../conf/nginx.conf`
|
||||||
# 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.
|
||||||
#
|
#
|
||||||
# Additionally, ynh_add_nginx_config will replace:
|
# Additionally, ynh_add_nginx_config will replace:
|
||||||
# - #sub_path_only by empty string if path_url is not '/'
|
# - `#sub_path_only` by empty string if `path_url` is not `'/'`
|
||||||
# - #root_path_only by empty string if path_url *is* '/'
|
# - `#root_path_only` by empty string if `path_url` *is* `'/'`
|
||||||
#
|
#
|
||||||
# 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.0.2
|
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=fa80a8685f0fb1b4187fc0a1228b44f0ea2f244e063fe8f443b8913ea595af89" > "$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
|
||||||
|
@ -27,11 +27,14 @@ SOURCE_SUM=fa80a8685f0fb1b4187fc0a1228b44f0ea2f244e063fe8f443b8913ea595af89" > "
|
||||||
|
|
||||||
# Load the version of node for an app, and set variables.
|
# Load the version of node for an app, and set variables.
|
||||||
#
|
#
|
||||||
# ynh_use_nodejs has to be used in any app scripts before using node for the first time.
|
# usage: ynh_use_nodejs
|
||||||
|
#
|
||||||
|
# `ynh_use_nodejs` has to be used in any app scripts before using node for the first time.
|
||||||
# This helper will provide alias and variables to use in your scripts.
|
# This helper will provide alias and variables to use in your scripts.
|
||||||
#
|
#
|
||||||
# To use npm or node, use the alias `ynh_npm` and `ynh_node`
|
# To use npm or node, use the alias `ynh_npm` and `ynh_node`.
|
||||||
# Those alias will use the correct version installed for the app
|
#
|
||||||
|
# Those alias will use the correct version installed for the app.
|
||||||
# For example: use `ynh_npm install` instead of `npm install`
|
# For example: use `ynh_npm install` instead of `npm install`
|
||||||
#
|
#
|
||||||
# With `sudo` or `ynh_exec_as`, use instead the fallback variables `$ynh_npm` and `$ynh_node`
|
# With `sudo` or `ynh_exec_as`, use instead the fallback variables `$ynh_npm` and `$ynh_node`
|
||||||
|
@ -39,7 +42,7 @@ SOURCE_SUM=fa80a8685f0fb1b4187fc0a1228b44f0ea2f244e063fe8f443b8913ea595af89" > "
|
||||||
# Exemple: `ynh_exec_as $app $ynh_node_load_PATH $ynh_npm install`
|
# Exemple: `ynh_exec_as $app $ynh_node_load_PATH $ynh_npm install`
|
||||||
#
|
#
|
||||||
# $PATH contains the path of the requested version of node.
|
# $PATH contains the path of the requested version of node.
|
||||||
# However, $PATH is duplicated into $node_PATH to outlast any manipulation of $PATH
|
# However, $PATH is duplicated into $node_PATH to outlast any manipulation of `$PATH`
|
||||||
# You can use the variable `$ynh_node_load_PATH` to quickly load your node version
|
# You can use the variable `$ynh_node_load_PATH` to quickly load your node version
|
||||||
# in $PATH for an usage into a separate script.
|
# in $PATH for an usage into a separate script.
|
||||||
# Exemple: $ynh_node_load_PATH $final_path/script_that_use_npm.sh`
|
# Exemple: $ynh_node_load_PATH $final_path/script_that_use_npm.sh`
|
||||||
|
@ -47,13 +50,17 @@ SOURCE_SUM=fa80a8685f0fb1b4187fc0a1228b44f0ea2f244e063fe8f443b8913ea595af89" > "
|
||||||
#
|
#
|
||||||
# Finally, to start a nodejs service with the correct version, 2 solutions
|
# Finally, to start a nodejs service with the correct version, 2 solutions
|
||||||
# Either the app is dependent of node or npm, but does not called it directly.
|
# Either the app is dependent of node or npm, but does not called it directly.
|
||||||
# In such situation, you need to load PATH
|
# In such situation, you need to load PATH :
|
||||||
# `Environment="__NODE_ENV_PATH__"`
|
# ```
|
||||||
# `ExecStart=__FINALPATH__/my_app`
|
# Environment="__NODE_ENV_PATH__"
|
||||||
# You will replace __NODE_ENV_PATH__ with $ynh_node_load_PATH
|
# ExecStart=__FINALPATH__/my_app
|
||||||
|
# ```
|
||||||
|
# You will replace __NODE_ENV_PATH__ with $ynh_node_load_PATH.
|
||||||
#
|
#
|
||||||
# Or node start the app directly, then you don't need to load the PATH variable
|
# Or node start the app directly, then you don't need to load the PATH variable
|
||||||
# `ExecStart=__YNH_NODE__ my_app run`
|
# ```
|
||||||
|
# ExecStart=__YNH_NODE__ my_app run
|
||||||
|
# ```
|
||||||
# You will replace __YNH_NODE__ with $ynh_node
|
# You will replace __YNH_NODE__ with $ynh_node
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
@ -61,8 +68,6 @@ SOURCE_SUM=fa80a8685f0fb1b4187fc0a1228b44f0ea2f244e063fe8f443b8913ea595af89" > "
|
||||||
# - $nodejs_path: The absolute path to node binaries for the chosen version.
|
# - $nodejs_path: The absolute path to node binaries for the chosen version.
|
||||||
# - $nodejs_version: Just the version number of node for this app. Stored as 'nodejs_version' in settings.yml.
|
# - $nodejs_version: Just the version number of node for this app. Stored as 'nodejs_version' in settings.yml.
|
||||||
#
|
#
|
||||||
# usage: ynh_use_nodejs
|
|
||||||
#
|
|
||||||
# Requires YunoHost version 2.7.12 or higher.
|
# Requires YunoHost version 2.7.12 or higher.
|
||||||
ynh_use_nodejs () {
|
ynh_use_nodejs () {
|
||||||
nodejs_version=$(ynh_app_setting_get --app=$app --key=nodejs_version)
|
nodejs_version=$(ynh_app_setting_get --app=$app --key=nodejs_version)
|
||||||
|
@ -87,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
|
||||||
|
@ -96,10 +103,10 @@ ynh_use_nodejs () {
|
||||||
# usage: ynh_install_nodejs --nodejs_version=nodejs_version
|
# usage: ynh_install_nodejs --nodejs_version=nodejs_version
|
||||||
# | arg: -n, --nodejs_version= - Version of node to install. When possible, your should prefer to use major version number (e.g. 8 instead of 8.10.0). The crontab will then handle the update of minor versions when needed.
|
# | arg: -n, --nodejs_version= - Version of node to install. When possible, your should prefer to use major version number (e.g. 8 instead of 8.10.0). The crontab will then handle the update of minor versions when needed.
|
||||||
#
|
#
|
||||||
# n (Node version management) uses the PATH variable to store the path of the version of node it is going to use.
|
# `n` (Node version management) uses the `PATH` variable to store the path of the version of node it is going to use.
|
||||||
# That's how it changes the version
|
# That's how it changes the version
|
||||||
#
|
#
|
||||||
# Refer to ynh_use_nodejs for more information about available commands and variables
|
# Refer to `ynh_use_nodejs` for more information about available commands and variables
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.7.12 or higher.
|
# Requires YunoHost version 2.7.12 or higher.
|
||||||
ynh_install_nodejs () {
|
ynh_install_nodejs () {
|
||||||
|
@ -176,12 +183,12 @@ ynh_install_nodejs () {
|
||||||
|
|
||||||
# Remove the version of node used by the app.
|
# Remove the version of node used by the app.
|
||||||
#
|
#
|
||||||
# This helper will check if another app uses the same version of node,
|
|
||||||
# if not, this version of node will be removed.
|
|
||||||
# If no other app uses node, n will be also removed.
|
|
||||||
#
|
|
||||||
# usage: ynh_remove_nodejs
|
# usage: ynh_remove_nodejs
|
||||||
#
|
#
|
||||||
|
# This helper will check if another app uses the same version of node.
|
||||||
|
# - If not, this version of node will be removed.
|
||||||
|
# - If no other app uses node, n will be also removed.
|
||||||
|
#
|
||||||
# Requires YunoHost version 2.7.12 or higher.
|
# Requires YunoHost version 2.7.12 or higher.
|
||||||
ynh_remove_nodejs () {
|
ynh_remove_nodejs () {
|
||||||
nodejs_version=$(ynh_app_setting_get --app=$app --key=nodejs_version)
|
nodejs_version=$(ynh_app_setting_get --app=$app --key=nodejs_version)
|
||||||
|
|
|
@ -2,15 +2,17 @@
|
||||||
|
|
||||||
# Create a new permission for the app
|
# Create a new permission for the app
|
||||||
#
|
#
|
||||||
# example 1: ynh_permission_create --permission=admin --url=/admin --additional_urls=domain.tld/admin /superadmin --allowed=alice bob \
|
# Example 1: `ynh_permission_create --permission=admin --url=/admin --additional_urls=domain.tld/admin /superadmin --allowed=alice bob \
|
||||||
# --label="My app admin" --show_tile=true
|
# --label="My app admin" --show_tile=true`
|
||||||
#
|
#
|
||||||
# This example will create a new permission permission with this following effect:
|
# This example will create a new permission permission with this following effect:
|
||||||
# - A tile named "My app admin" in the SSO will be available for the users alice and bob. This tile will point to the relative url '/admin'.
|
# - A tile named "My app admin" in the SSO will be available for the users alice and bob. This tile will point to the relative url '/admin'.
|
||||||
# - Only the user alice and bob will have the access to theses following url: /admin, domain.tld/admin, /superadmin
|
# - Only the user alice and bob will have the access to theses following url: /admin, domain.tld/admin, /superadmin
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# example 2: ynh_permission_create --permission=api --url=domain.tld/api --auth_header=false --allowed=visitors \
|
# Example 2:
|
||||||
|
#
|
||||||
|
# ynh_permission_create --permission=api --url=domain.tld/api --auth_header=false --allowed=visitors \
|
||||||
# --label="MyApp API" --protected=true
|
# --label="MyApp API" --protected=true
|
||||||
#
|
#
|
||||||
# This example will create a new protected permission. So the admin won't be able to add/remove the visitors group of this permission.
|
# This example will create a new protected permission. So the admin won't be able to add/remove the visitors group of this permission.
|
||||||
|
@ -180,7 +182,7 @@ ynh_permission_exists() {
|
||||||
local permission
|
local permission
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
yunohost user permission list --output-as json --quiet \
|
yunohost user permission list "$app" --output-as json --quiet \
|
||||||
| jq -e --arg perm "$app.$permission" '.permissions[$perm]' >/dev/null
|
| jq -e --arg perm "$app.$permission" '.permissions[$perm]' >/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
@ -287,6 +285,12 @@ ynh_remove_fpm_config () {
|
||||||
fpm_service="php$YNH_DEFAULT_PHP_VERSION-fpm"
|
fpm_service="php$YNH_DEFAULT_PHP_VERSION-fpm"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
ynh_secure_remove --file="$fpm_config_dir/pool.d/$app.conf"
|
||||||
|
if [ -e $fpm_config_dir/conf.d/20-$app.ini ]
|
||||||
|
then
|
||||||
|
ynh_secure_remove --file="$fpm_config_dir/conf.d/20-$app.ini"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ $dedicated_service -eq 1 ]
|
if [ $dedicated_service -eq 1 ]
|
||||||
then
|
then
|
||||||
# Remove the dedicated service PHP-FPM service for the app
|
# Remove the dedicated service PHP-FPM service for the app
|
||||||
|
@ -299,12 +303,6 @@ ynh_remove_fpm_config () {
|
||||||
ynh_systemd_action --service_name=$fpm_service --action=reload
|
ynh_systemd_action --service_name=$fpm_service --action=reload
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ynh_secure_remove --file="$fpm_config_dir/pool.d/$app.conf"
|
|
||||||
if [ -e $fpm_config_dir/conf.d/20-$app.ini ]
|
|
||||||
then
|
|
||||||
ynh_secure_remove --file="$fpm_config_dir/conf.d/20-$app.ini"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If the PHP version used is not the default version for YunoHost
|
# If the PHP version used is not the default version for YunoHost
|
||||||
if [ "$phpversion" != "$YNH_DEFAULT_PHP_VERSION" ]
|
if [ "$phpversion" != "$YNH_DEFAULT_PHP_VERSION" ]
|
||||||
then
|
then
|
||||||
|
@ -569,6 +567,8 @@ YNH_COMPOSER_VERSION=${YNH_COMPOSER_VERSION:-$YNH_DEFAULT_COMPOSER_VERSION}
|
||||||
# | arg: -v, --phpversion - PHP version to use with composer
|
# | arg: -v, --phpversion - PHP version to use with composer
|
||||||
# | 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
|
||||||
|
@ -593,6 +593,8 @@ ynh_composer_exec () {
|
||||||
# | 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: -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
|
||||||
|
|
|
@ -5,15 +5,15 @@ PSQL_VERSION=11
|
||||||
|
|
||||||
# Open a connection as a user
|
# Open a connection as a user
|
||||||
#
|
#
|
||||||
# examples:
|
|
||||||
# ynh_psql_connect_as 'user' 'pass' <<< "UPDATE ...;"
|
|
||||||
# ynh_psql_connect_as 'user' 'pass' < /path/to/file.sql
|
|
||||||
#
|
|
||||||
# usage: ynh_psql_connect_as --user=user --password=password [--database=database]
|
# usage: ynh_psql_connect_as --user=user --password=password [--database=database]
|
||||||
# | arg: -u, --user= - the user name to connect as
|
# | arg: -u, --user= - the user name to connect as
|
||||||
# | arg: -p, --password= - the user password
|
# | arg: -p, --password= - the user password
|
||||||
# | arg: -d, --database= - the database to connect to
|
# | arg: -d, --database= - the database to connect to
|
||||||
#
|
#
|
||||||
|
# examples:
|
||||||
|
# ynh_psql_connect_as 'user' 'pass' <<< "UPDATE ...;"
|
||||||
|
# ynh_psql_connect_as 'user' 'pass' < /path/to/file.sql
|
||||||
|
#
|
||||||
# Requires YunoHost version 3.5.0 or higher.
|
# Requires YunoHost version 3.5.0 or higher.
|
||||||
ynh_psql_connect_as() {
|
ynh_psql_connect_as() {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
|
@ -127,12 +127,12 @@ ynh_psql_drop_db() {
|
||||||
|
|
||||||
# Dump a database
|
# Dump a database
|
||||||
#
|
#
|
||||||
# example: ynh_psql_dump_db 'roundcube' > ./dump.sql
|
|
||||||
#
|
|
||||||
# usage: ynh_psql_dump_db --database=database
|
# usage: ynh_psql_dump_db --database=database
|
||||||
# | arg: -d, --database= - the database name to dump
|
# | arg: -d, --database= - the database name to dump
|
||||||
# | ret: the psqldump output
|
# | ret: the psqldump output
|
||||||
#
|
#
|
||||||
|
# example: ynh_psql_dump_db 'roundcube' > ./dump.sql
|
||||||
|
#
|
||||||
# Requires YunoHost version 3.5.0 or higher.
|
# Requires YunoHost version 3.5.0 or higher.
|
||||||
ynh_psql_dump_db() {
|
ynh_psql_dump_db() {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
|
@ -286,11 +286,12 @@ ynh_psql_remove_db() {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Create a master password and set up global settings
|
# Create a master password and set up global settings
|
||||||
# It also make sure that postgresql is installed and running
|
|
||||||
# Please always call this script in install and restore scripts
|
|
||||||
#
|
#
|
||||||
# usage: ynh_psql_test_if_first_run
|
# usage: ynh_psql_test_if_first_run
|
||||||
#
|
#
|
||||||
|
# It also make sure that postgresql is installed and running
|
||||||
|
# Please always call this script in install and restore scripts
|
||||||
|
#
|
||||||
# Requires YunoHost version 2.7.13 or higher.
|
# Requires YunoHost version 2.7.13 or higher.
|
||||||
ynh_psql_test_if_first_run() {
|
ynh_psql_test_if_first_run() {
|
||||||
|
|
||||||
|
|
|
@ -108,12 +108,12 @@ EOF
|
||||||
|
|
||||||
# Check availability of a web path
|
# Check availability of a web path
|
||||||
#
|
#
|
||||||
# example: ynh_webpath_available --domain=some.domain.tld --path_url=/coffee
|
|
||||||
#
|
|
||||||
# usage: ynh_webpath_available --domain=domain --path_url=path
|
# usage: ynh_webpath_available --domain=domain --path_url=path
|
||||||
# | arg: -d, --domain= - the domain/host of the url
|
# | arg: -d, --domain= - the domain/host of the url
|
||||||
# | arg: -p, --path_url= - the web path to check the availability of
|
# | arg: -p, --path_url= - the web path to check the availability of
|
||||||
#
|
#
|
||||||
|
# example: ynh_webpath_available --domain=some.domain.tld --path_url=/coffee
|
||||||
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_webpath_available () {
|
ynh_webpath_available () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
|
@ -129,13 +129,13 @@ ynh_webpath_available () {
|
||||||
|
|
||||||
# Register/book a web path for an app
|
# Register/book a web path for an app
|
||||||
#
|
#
|
||||||
# example: ynh_webpath_register --app=wordpress --domain=some.domain.tld --path_url=/coffee
|
|
||||||
#
|
|
||||||
# usage: ynh_webpath_register --app=app --domain=domain --path_url=path
|
# usage: ynh_webpath_register --app=app --domain=domain --path_url=path
|
||||||
# | arg: -a, --app= - the app for which the domain should be registered
|
# | arg: -a, --app= - the app for which the domain should be registered
|
||||||
# | arg: -d, --domain= - the domain/host of the web path
|
# | arg: -d, --domain= - the domain/host of the web path
|
||||||
# | arg: -p, --path_url= - the web path to be registered
|
# | arg: -p, --path_url= - the web path to be registered
|
||||||
#
|
#
|
||||||
|
# example: ynh_webpath_register --app=wordpress --domain=some.domain.tld --path_url=/coffee
|
||||||
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_webpath_register () {
|
ynh_webpath_register () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
|
|
|
@ -2,12 +2,12 @@
|
||||||
|
|
||||||
# Generate a random string
|
# Generate a random string
|
||||||
#
|
#
|
||||||
# example: pwd=$(ynh_string_random --length=8)
|
|
||||||
#
|
|
||||||
# usage: ynh_string_random [--length=string_length]
|
# usage: ynh_string_random [--length=string_length]
|
||||||
# | arg: -l, --length= - the string length to generate (default: 24)
|
# | arg: -l, --length= - the string length to generate (default: 24)
|
||||||
# | ret: the generated string
|
# | ret: the generated string
|
||||||
#
|
#
|
||||||
|
# example: pwd=$(ynh_string_random --length=8)
|
||||||
|
#
|
||||||
# Requires YunoHost version 2.2.4 or higher.
|
# Requires YunoHost version 2.2.4 or higher.
|
||||||
ynh_string_random() {
|
ynh_string_random() {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
|
@ -30,9 +30,8 @@ ynh_string_random() {
|
||||||
# | arg: -r, --replace_string= - String that will replace matches
|
# | arg: -r, --replace_string= - String that will replace matches
|
||||||
# | arg: -f, --target_file= - File in which the string will be replaced.
|
# | arg: -f, --target_file= - File in which the string will be replaced.
|
||||||
#
|
#
|
||||||
# As this helper is based on sed command, regular expressions and
|
# As this helper is based on sed command, regular expressions and references to
|
||||||
# references to sub-expressions can be used
|
# sub-expressions can be used (see sed manual page for more information)
|
||||||
# (see sed manual page for more information)
|
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_replace_string () {
|
ynh_replace_string () {
|
||||||
|
@ -86,14 +85,15 @@ ynh_replace_special_string () {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Sanitize a string intended to be the name of a database
|
# Sanitize a string intended to be the name of a database
|
||||||
# (More specifically : replace - and . by _)
|
|
||||||
#
|
|
||||||
# example: dbname=$(ynh_sanitize_dbid $app)
|
|
||||||
#
|
#
|
||||||
# usage: ynh_sanitize_dbid --db_name=name
|
# usage: ynh_sanitize_dbid --db_name=name
|
||||||
# | arg: -n, --db_name= - name to correct/sanitize
|
# | arg: -n, --db_name= - name to correct/sanitize
|
||||||
# | ret: the corrected name
|
# | ret: the corrected name
|
||||||
#
|
#
|
||||||
|
# example: dbname=$(ynh_sanitize_dbid $app)
|
||||||
|
#
|
||||||
|
# Underscorify the string (replace - and . by _)
|
||||||
|
#
|
||||||
# Requires YunoHost version 2.2.4 or higher.
|
# Requires YunoHost version 2.2.4 or higher.
|
||||||
ynh_sanitize_dbid () {
|
ynh_sanitize_dbid () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
|
|
|
@ -3,14 +3,15 @@
|
||||||
# Create a dedicated systemd config
|
# Create a dedicated systemd config
|
||||||
#
|
#
|
||||||
# usage: ynh_add_systemd_config [--service=service] [--template=template]
|
# usage: ynh_add_systemd_config [--service=service] [--template=template]
|
||||||
# | arg: -s, --service= - Service name (optionnal, $app by default)
|
# | arg: -s, --service= - Service name (optionnal, `$app` by default)
|
||||||
# | arg: -t, --template= - Name of template file (optionnal, this is 'systemd' by default, meaning ./conf/systemd.service will be used as template)
|
# | arg: -t, --template= - Name of template file (optionnal, this is 'systemd' by default, meaning `../conf/systemd.service` will be used as template)
|
||||||
#
|
#
|
||||||
# This will use the template ../conf/<templatename>.service
|
# This will use the template `../conf/<templatename>.service`.
|
||||||
# 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
|
||||||
|
@ -24,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"
|
||||||
|
|
||||||
|
@ -60,10 +61,10 @@ ynh_remove_systemd_config () {
|
||||||
# Start (or other actions) a service, print a log in case of failure and optionnaly wait until the service is completely started
|
# Start (or other actions) a service, print a log in case of failure and optionnaly wait until the service is completely started
|
||||||
#
|
#
|
||||||
# usage: ynh_systemd_action [--service_name=service_name] [--action=action] [ [--line_match="line to match"] [--log_path=log_path] [--timeout=300] [--length=20] ]
|
# usage: ynh_systemd_action [--service_name=service_name] [--action=action] [ [--line_match="line to match"] [--log_path=log_path] [--timeout=300] [--length=20] ]
|
||||||
# | arg: -n, --service_name= - Name of the service to start. Default : $app
|
# | arg: -n, --service_name= - Name of the service to start. Default : `$app`
|
||||||
# | arg: -a, --action= - Action to perform with systemctl. Default: start
|
# | arg: -a, --action= - Action to perform with systemctl. Default: start
|
||||||
# | arg: -l, --line_match= - Line to match - The line to find in the log to attest the service have finished to boot. If not defined it don't wait until the service is completely started.
|
# | arg: -l, --line_match= - Line to match - The line to find in the log to attest the service have finished to boot. If not defined it don't wait until the service is completely started.
|
||||||
# | arg: -p, --log_path= - Log file - Path to the log file. Default : /var/log/$app/$app.log
|
# | arg: -p, --log_path= - Log file - Path to the log file. Default : `/var/log/$app/$app.log`
|
||||||
# | arg: -t, --timeout= - Timeout - The maximum time to wait before ending the watching. Default : 300 seconds.
|
# | arg: -t, --timeout= - Timeout - The maximum time to wait before ending the watching. Default : 300 seconds.
|
||||||
# | arg: -e, --length= - Length of the error log : Default : 20
|
# | arg: -e, --length= - Length of the error log : Default : 20
|
||||||
#
|
#
|
||||||
|
@ -87,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
|
||||||
|
@ -138,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
|
||||||
|
@ -171,14 +175,13 @@ ynh_systemd_action() {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.5.0 or higher.
|
# Requires YunoHost version 3.5.0 or higher.
|
||||||
ynh_clean_check_starting () {
|
ynh_clean_check_starting () {
|
||||||
if [ -n "$pid_tail" ]
|
if [ -n "${pid_tail:-}" ]
|
||||||
then
|
then
|
||||||
# Stop the execution of tail.
|
# Stop the execution of tail.
|
||||||
kill -SIGTERM $pid_tail 2>&1
|
kill -SIGTERM $pid_tail 2>&1
|
||||||
fi
|
fi
|
||||||
if [ -n "$templog" ]
|
if [ -n "${templog:-}" ]
|
||||||
then
|
then
|
||||||
ynh_secure_remove --file="$templog" 2>&1
|
ynh_secure_remove --file="$templog" 2>&1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
# Check if a YunoHost user exists
|
# Check if a YunoHost user exists
|
||||||
#
|
#
|
||||||
# example: ynh_user_exists 'toto' || exit 1
|
|
||||||
#
|
|
||||||
# usage: ynh_user_exists --username=username
|
# usage: ynh_user_exists --username=username
|
||||||
# | arg: -u, --username= - the username to check
|
# | arg: -u, --username= - the username to check
|
||||||
# | exit: Return 1 if the user doesn't exist, 0 otherwise
|
# | ret: 0 if the user exists, 1 otherwise.
|
||||||
|
#
|
||||||
|
# example: ynh_user_exists 'toto' || echo "User does not exist"
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.2.4 or higher.
|
# Requires YunoHost version 2.2.4 or higher.
|
||||||
ynh_user_exists() {
|
ynh_user_exists() {
|
||||||
|
@ -22,12 +22,12 @@ ynh_user_exists() {
|
||||||
|
|
||||||
# Retrieve a YunoHost user information
|
# Retrieve a YunoHost user information
|
||||||
#
|
#
|
||||||
# example: mail=$(ynh_user_get_info 'toto' 'mail')
|
|
||||||
#
|
|
||||||
# usage: ynh_user_get_info --username=username --key=key
|
# usage: ynh_user_get_info --username=username --key=key
|
||||||
# | arg: -u, --username= - the username to retrieve info from
|
# | arg: -u, --username= - the username to retrieve info from
|
||||||
# | arg: -k, --key= - the key to retrieve
|
# | arg: -k, --key= - the key to retrieve
|
||||||
# | ret: string - the key's value
|
# | ret: the value associate to that key
|
||||||
|
#
|
||||||
|
# example: mail=$(ynh_user_get_info 'toto' 'mail')
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.2.4 or higher.
|
# Requires YunoHost version 2.2.4 or higher.
|
||||||
ynh_user_get_info() {
|
ynh_user_get_info() {
|
||||||
|
@ -44,10 +44,10 @@ ynh_user_get_info() {
|
||||||
|
|
||||||
# Get the list of YunoHost users
|
# Get the list of YunoHost users
|
||||||
#
|
#
|
||||||
# example: for u in $(ynh_user_list); do ...
|
|
||||||
#
|
|
||||||
# usage: ynh_user_list
|
# usage: ynh_user_list
|
||||||
# | ret: string - one username per line
|
# | ret: one username per line as strings
|
||||||
|
#
|
||||||
|
# example: for u in $(ynh_user_list); do ... ; done
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.4.0 or higher.
|
# Requires YunoHost version 2.4.0 or higher.
|
||||||
ynh_user_list() {
|
ynh_user_list() {
|
||||||
|
@ -58,7 +58,7 @@ ynh_user_list() {
|
||||||
#
|
#
|
||||||
# usage: ynh_system_user_exists --username=username
|
# usage: ynh_system_user_exists --username=username
|
||||||
# | arg: -u, --username= - the username to check
|
# | arg: -u, --username= - the username to check
|
||||||
# | exit: Return 1 if the user doesn't exist, 0 otherwise
|
# | ret: 0 if the user exists, 1 otherwise.
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.2.4 or higher.
|
# Requires YunoHost version 2.2.4 or higher.
|
||||||
ynh_system_user_exists() {
|
ynh_system_user_exists() {
|
||||||
|
@ -76,7 +76,7 @@ ynh_system_user_exists() {
|
||||||
#
|
#
|
||||||
# usage: ynh_system_group_exists --group=group
|
# usage: ynh_system_group_exists --group=group
|
||||||
# | arg: -g, --group= - the group to check
|
# | arg: -g, --group= - the group to check
|
||||||
# | exit: Return 1 if the group doesn't exist, 0 otherwise
|
# | ret: 0 if the group exists, 1 otherwise.
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.5.0.2 or higher.
|
# Requires YunoHost version 3.5.0.2 or higher.
|
||||||
ynh_system_group_exists() {
|
ynh_system_group_exists() {
|
||||||
|
@ -92,29 +92,36 @@ ynh_system_group_exists() {
|
||||||
|
|
||||||
# Create a system user
|
# Create a system user
|
||||||
#
|
#
|
||||||
# examples:
|
# usage: ynh_system_user_create --username=user_name [--home_dir=home_dir] [--use_shell] [--groups="group1 group2"]
|
||||||
# # Create a nextcloud user with no home directory and /usr/sbin/nologin login shell (hence no login capability)
|
|
||||||
# ynh_system_user_create --username=nextcloud
|
|
||||||
# # Create a discourse user using /var/www/discourse as home directory and the default login shell
|
|
||||||
# ynh_system_user_create --username=discourse --home_dir=/var/www/discourse --use_shell
|
|
||||||
#
|
|
||||||
# usage: ynh_system_user_create --username=user_name [--home_dir=home_dir] [--use_shell]
|
|
||||||
# | arg: -u, --username= - Name of the system user that will be create
|
# | arg: -u, --username= - Name of the system user that will be create
|
||||||
# | arg: -h, --home_dir= - Path of the home dir for the user. Usually the final path of the app. If this argument is omitted, the user will be created without home
|
# | arg: -h, --home_dir= - Path of the home dir for the user. Usually the final path of the app. If this argument is omitted, the user will be created without home
|
||||||
# | arg: -s, --use_shell - Create a user using the default login shell if present. If this argument is omitted, the user will be created with /usr/sbin/nologin shell
|
# | arg: -s, --use_shell - Create a user using the default login shell if present. If this argument is omitted, the user will be created with /usr/sbin/nologin shell
|
||||||
|
# | arg: -g, --groups - Add the user to system groups. Typically meant to add the user to the ssh.app / sftp.app group (e.g. for borgserver, my_webapp)
|
||||||
|
#
|
||||||
|
# Create a nextcloud user with no home directory and /usr/sbin/nologin login shell (hence no login capability) :
|
||||||
|
# ```
|
||||||
|
# ynh_system_user_create --username=nextcloud
|
||||||
|
# ```
|
||||||
|
# Create a discourse user using /var/www/discourse as home directory and the default login shell :
|
||||||
|
# ```
|
||||||
|
# ynh_system_user_create --username=discourse --home_dir=/var/www/discourse --use_shell
|
||||||
|
# ```
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_system_user_create () {
|
ynh_system_user_create () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=uhs
|
local legacy_args=uhs
|
||||||
local -A args_array=( [u]=username= [h]=home_dir= [s]=use_shell )
|
local -A args_array=( [u]=username= [h]=home_dir= [s]=use_shell [g]=groups= )
|
||||||
local username
|
local username
|
||||||
local home_dir
|
local home_dir
|
||||||
local use_shell
|
local use_shell
|
||||||
|
local groups
|
||||||
|
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
use_shell="${use_shell:-0}"
|
use_shell="${use_shell:-0}"
|
||||||
home_dir="${home_dir:-}"
|
home_dir="${home_dir:-}"
|
||||||
|
groups="${groups:-}"
|
||||||
|
|
||||||
if ! ynh_system_user_exists "$username" # Check if the user exists on the system
|
if ! ynh_system_user_exists "$username" # Check if the user exists on the system
|
||||||
then # If the user doesn't exist
|
then # If the user doesn't exist
|
||||||
|
@ -132,6 +139,12 @@ ynh_system_user_create () {
|
||||||
fi
|
fi
|
||||||
useradd $user_home_dir --system --user-group $username $shell || ynh_die --message="Unable to create $username system account"
|
useradd $user_home_dir --system --user-group $username $shell || ynh_die --message="Unable to create $username system account"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
local group
|
||||||
|
for group in $groups
|
||||||
|
do
|
||||||
|
usermod -a -G "$group" "$username"
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# Delete a system user
|
# Delete a system user
|
||||||
|
|
|
@ -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
|
||||||
#
|
#
|
||||||
|
@ -21,6 +21,9 @@ YNH_APP_BASEDIR=$([[ "$(basename $0)" =~ ^backup|restore$ ]] && echo '../setting
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_exit_properly () {
|
ynh_exit_properly () {
|
||||||
local exit_code=$?
|
local exit_code=$?
|
||||||
|
|
||||||
|
rm -rf "/var/cache/yunohost/download/"
|
||||||
|
|
||||||
if [ "$exit_code" -eq 0 ]; then
|
if [ "$exit_code" -eq 0 ]; then
|
||||||
exit 0 # Exit without error if the script ended correctly
|
exit 0 # Exit without error if the script ended correctly
|
||||||
fi
|
fi
|
||||||
|
@ -48,9 +51,8 @@ ynh_exit_properly () {
|
||||||
# usage: ynh_abort_if_errors
|
# usage: ynh_abort_if_errors
|
||||||
#
|
#
|
||||||
# This configure the rest of the script execution such that, if an error occurs
|
# This configure the rest of the script execution such that, if an error occurs
|
||||||
# or if an empty variable is used, the execution of the script stops
|
# or if an empty variable is used, the execution of the script stops immediately
|
||||||
# immediately and a call to `ynh_clean_setup` is triggered if it has been
|
# and a call to `ynh_clean_setup` is triggered if it has been defined by your script.
|
||||||
# defined by your script.
|
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_abort_if_errors () {
|
ynh_abort_if_errors () {
|
||||||
|
@ -61,58 +63,53 @@ ynh_abort_if_errors () {
|
||||||
|
|
||||||
# Download, check integrity, uncompress and patch the source from app.src
|
# Download, check integrity, uncompress and patch the source from app.src
|
||||||
#
|
#
|
||||||
# usage: ynh_setup_source --dest_dir=dest_dir [--source_id=source_id]
|
# usage: ynh_setup_source --dest_dir=dest_dir [--source_id=source_id] [--keep="file1 file2"]
|
||||||
# | arg: -d, --dest_dir= - Directory where to setup sources
|
# | arg: -d, --dest_dir= - Directory where to setup sources
|
||||||
# | arg: -s, --source_id= - Name of the app, if the package contains more than one app
|
# | arg: -s, --source_id= - Name of the source, defaults to `app`
|
||||||
|
# | arg: -k, --keep= - Space-separated list of files/folders that will be backup/restored in $dest_dir, such as a config file you don't want to overwrite. For example 'conf.json secrets.json logs/'
|
||||||
#
|
#
|
||||||
# The file conf/app.src need to contains:
|
# This helper will read `conf/${source_id}.src`, download and install the sources.
|
||||||
#
|
#
|
||||||
|
# The src file need to contains:
|
||||||
|
# ```
|
||||||
# SOURCE_URL=Address to download the app archive
|
# SOURCE_URL=Address to download the app archive
|
||||||
# SOURCE_SUM=Control sum
|
# SOURCE_SUM=Control sum
|
||||||
# # (Optional) Program to check the integrity (sha256sum, md5sum...)
|
# # (Optional) Program to check the integrity (sha256sum, md5sum...). Default: sha256
|
||||||
# # default: sha256
|
|
||||||
# SOURCE_SUM_PRG=sha256
|
# SOURCE_SUM_PRG=sha256
|
||||||
# # (Optional) Archive format
|
# # (Optional) Archive format. Default: tar.gz
|
||||||
# # default: tar.gz
|
|
||||||
# SOURCE_FORMAT=tar.gz
|
# SOURCE_FORMAT=tar.gz
|
||||||
# # (Optional) Put false if sources are directly in the archive root
|
# # (Optional) Put false if sources are directly in the archive root. Default: true
|
||||||
# # default: true
|
# # Instead of true, SOURCE_IN_SUBDIR could be the number of sub directories to remove.
|
||||||
# # Instead of true, SOURCE_IN_SUBDIR could be the number of sub directories
|
|
||||||
# # to remove.
|
|
||||||
# SOURCE_IN_SUBDIR=false
|
# SOURCE_IN_SUBDIR=false
|
||||||
# # (Optionnal) Name of the local archive (offline setup support)
|
# # (Optionnal) Name of the local archive (offline setup support). Default: ${src_id}.${src_format}
|
||||||
# # default: ${src_id}.${src_format}
|
|
||||||
# SOURCE_FILENAME=example.tar.gz
|
# SOURCE_FILENAME=example.tar.gz
|
||||||
# # (Optional) If it set as false don't extract the source.
|
# # (Optional) If it set as false don't extract the source. Default: true
|
||||||
# # (Useful to get a debian package or a python wheel.)
|
# # (Useful to get a debian package or a python wheel.)
|
||||||
# # default: true
|
|
||||||
# SOURCE_EXTRACT=(true|false)
|
# SOURCE_EXTRACT=(true|false)
|
||||||
|
# ```
|
||||||
#
|
#
|
||||||
# Details:
|
# The helper will:
|
||||||
# This helper downloads sources from SOURCE_URL if there is no local source
|
# - Check if there is a local source archive in `/opt/yunohost-apps-src/$APP_ID/$SOURCE_FILENAME`
|
||||||
# archive in /opt/yunohost-apps-src/APP_ID/SOURCE_FILENAME
|
# - Download `$SOURCE_URL` if there is no local archive
|
||||||
#
|
# - Check the integrity with `$SOURCE_SUM_PRG -c --status`
|
||||||
# Next, it checks the integrity with "SOURCE_SUM_PRG -c --status" command.
|
# - Uncompress the archive to `$dest_dir`.
|
||||||
#
|
# - If `$SOURCE_IN_SUBDIR` is true, the first level directory of the archive will be removed.
|
||||||
# If it's ok, the source archive will be uncompressed in $dest_dir. If the
|
# - If `$SOURCE_IN_SUBDIR` is a numeric value, the N first level directories will be removed.
|
||||||
# SOURCE_IN_SUBDIR is true, the first level directory of the archive will be
|
# - Patches named `sources/patches/${src_id}-*.patch` will be applied to `$dest_dir`
|
||||||
# removed.
|
# - Extra files in `sources/extra_files/$src_id` will be copied to dest_dir
|
||||||
# If SOURCE_IN_SUBDIR is a numeric value, 2 for example, the 2 first level
|
|
||||||
# directories will be removed
|
|
||||||
#
|
|
||||||
# Finally, patches named sources/patches/${src_id}-*.patch and extra files in
|
|
||||||
# sources/extra_files/$src_id will be applied to dest_dir
|
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_setup_source () {
|
ynh_setup_source () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=ds
|
local legacy_args=dsk
|
||||||
local -A args_array=( [d]=dest_dir= [s]=source_id= )
|
local -A args_array=( [d]=dest_dir= [s]=source_id= [k]=keep= )
|
||||||
local dest_dir
|
local dest_dir
|
||||||
local source_id
|
local source_id
|
||||||
|
local keep
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
source_id="${source_id:-app}" # If the argument is not given, source_id equals "app"
|
source_id="${source_id:-app}"
|
||||||
|
keep="${keep:-}"
|
||||||
|
|
||||||
local src_file_path="$YNH_APP_BASEDIR/conf/${source_id}.src"
|
local src_file_path="$YNH_APP_BASEDIR/conf/${source_id}.src"
|
||||||
|
|
||||||
|
@ -136,8 +133,13 @@ ynh_setup_source () {
|
||||||
src_filename="${source_id}.${src_format}"
|
src_filename="${source_id}.${src_format}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# (Unused?) mecanism where one can have the file in a special local cache to not have to download it...
|
# (Unused?) mecanism where one can have the file in a special local cache to not have to download it...
|
||||||
local local_src="/opt/yunohost-apps-src/${YNH_APP_ID}/${src_filename}"
|
local local_src="/opt/yunohost-apps-src/${YNH_APP_ID}/${src_filename}"
|
||||||
|
|
||||||
|
mkdir -p /var/cache/yunohost/download/${YNH_APP_ID}/
|
||||||
|
src_filename="/var/cache/yunohost/download/${YNH_APP_ID}/${src_filename}"
|
||||||
|
|
||||||
if test -e "$local_src"
|
if test -e "$local_src"
|
||||||
then
|
then
|
||||||
cp $local_src $src_filename
|
cp $local_src $src_filename
|
||||||
|
@ -157,9 +159,32 @@ ynh_setup_source () {
|
||||||
echo "${src_sum} ${src_filename}" | ${src_sumprg} --check --status \
|
echo "${src_sum} ${src_filename}" | ${src_sumprg} --check --status \
|
||||||
|| ynh_die --message="Corrupt source"
|
|| ynh_die --message="Corrupt source"
|
||||||
|
|
||||||
|
# Keep files to be backup/restored at the end of the helper
|
||||||
|
# Assuming $dest_dir already exists
|
||||||
|
rm -rf /var/cache/yunohost/files_to_keep_during_setup_source/
|
||||||
|
if [ -n "$keep" ] && [ -e "$dest_dir" ]
|
||||||
|
then
|
||||||
|
local keep_dir=/var/cache/yunohost/files_to_keep_during_setup_source/${YNH_APP_ID}
|
||||||
|
mkdir -p $keep_dir
|
||||||
|
local stuff_to_keep
|
||||||
|
for stuff_to_keep in $keep
|
||||||
|
do
|
||||||
|
if [ -e "$dest_dir/$stuff_to_keep" ]
|
||||||
|
then
|
||||||
|
mkdir --parents "$(dirname "$keep_dir/$stuff_to_keep")"
|
||||||
|
cp --archive "$dest_dir/$stuff_to_keep" "$keep_dir/$stuff_to_keep"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
# Extract source into the app dir
|
# Extract source into the app dir
|
||||||
mkdir --parents "$dest_dir"
|
mkdir --parents "$dest_dir"
|
||||||
|
|
||||||
|
if [ -n "${final_path:-}" ] && [ "$dest_dir" == "$final_path" ]
|
||||||
|
then
|
||||||
|
_ynh_apply_default_permissions $dest_dir
|
||||||
|
fi
|
||||||
|
|
||||||
if ! "$src_extract"
|
if ! "$src_extract"
|
||||||
then
|
then
|
||||||
mv $src_filename $dest_dir
|
mv $src_filename $dest_dir
|
||||||
|
@ -176,6 +201,7 @@ ynh_setup_source () {
|
||||||
else
|
else
|
||||||
unzip -quo $src_filename -d "$dest_dir"
|
unzip -quo $src_filename -d "$dest_dir"
|
||||||
fi
|
fi
|
||||||
|
ynh_secure_remove --file="$src_filename"
|
||||||
else
|
else
|
||||||
local strip=""
|
local strip=""
|
||||||
if [ "$src_in_subdir" != "false" ]
|
if [ "$src_in_subdir" != "false" ]
|
||||||
|
@ -194,37 +220,60 @@ ynh_setup_source () {
|
||||||
else
|
else
|
||||||
ynh_die --message="Archive format unrecognized."
|
ynh_die --message="Archive format unrecognized."
|
||||||
fi
|
fi
|
||||||
|
ynh_secure_remove --file="$src_filename"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Apply patches
|
# Apply patches
|
||||||
if (( $(find $YNH_CWD/../sources/patches/ -type f -name "${source_id}-*.patch" 2> /dev/null | wc --lines) > "0" ))
|
if [ -d "$YNH_APP_BASEDIR/sources/patches/" ]
|
||||||
|
then
|
||||||
|
local patches_folder=$(realpath $YNH_APP_BASEDIR/sources/patches/)
|
||||||
|
if (( $(find $patches_folder -type f -name "${source_id}-*.patch" 2> /dev/null | wc --lines) > "0" ))
|
||||||
then
|
then
|
||||||
(cd "$dest_dir"
|
(cd "$dest_dir"
|
||||||
for p in $YNH_CWD/../sources/patches/${source_id}-*.patch
|
for p in $patches_folder/${source_id}-*.patch
|
||||||
do
|
do
|
||||||
|
echo $p
|
||||||
patch --strip=1 < $p
|
patch --strip=1 < $p
|
||||||
done) || ynh_die --message="Unable to apply patches"
|
done) || ynh_die --message="Unable to apply patches"
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Add supplementary files
|
# Add supplementary files
|
||||||
if test -e "$YNH_CWD/../sources/extra_files/${source_id}"; then
|
if test -e "$YNH_APP_BASEDIR/sources/extra_files/${source_id}"; then
|
||||||
cp --archive $YNH_CWD/../sources/extra_files/$source_id/. "$dest_dir"
|
cp --archive $YNH_APP_BASEDIR/sources/extra_files/$source_id/. "$dest_dir"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Keep files to be backup/restored at the end of the helper
|
||||||
|
# Assuming $dest_dir already exists
|
||||||
|
if [ -n "$keep" ]
|
||||||
|
then
|
||||||
|
local keep_dir=/var/cache/yunohost/files_to_keep_during_setup_source/${YNH_APP_ID}
|
||||||
|
local stuff_to_keep
|
||||||
|
for stuff_to_keep in $keep
|
||||||
|
do
|
||||||
|
if [ -e "$keep_dir/$stuff_to_keep" ]
|
||||||
|
then
|
||||||
|
mkdir --parents "$(dirname "$dest_dir/$stuff_to_keep")"
|
||||||
|
cp --archive "$keep_dir/$stuff_to_keep" "$dest_dir/$stuff_to_keep"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
rm -rf /var/cache/yunohost/files_to_keep_during_setup_source/
|
||||||
}
|
}
|
||||||
|
|
||||||
# Curl abstraction to help with POST requests to local pages (such as installation forms)
|
# Curl abstraction to help with POST requests to local pages (such as installation forms)
|
||||||
#
|
#
|
||||||
# example: ynh_local_curl "/install.php?installButton" "foo=$var1" "bar=$var2"
|
|
||||||
#
|
|
||||||
# usage: ynh_local_curl "page_uri" "key1=value1" "key2=value2" ...
|
# usage: ynh_local_curl "page_uri" "key1=value1" "key2=value2" ...
|
||||||
# | arg: page_uri - Path (relative to $path_url) of the page where POST data will be sent
|
# | arg: page_uri - Path (relative to `$path_url`) of the page where POST data will be sent
|
||||||
# | arg: key1=value1 - (Optionnal) POST key and corresponding value
|
# | arg: key1=value1 - (Optionnal) POST key and corresponding value
|
||||||
# | arg: key2=value2 - (Optionnal) Another POST key and corresponding value
|
# | arg: key2=value2 - (Optionnal) Another POST key and corresponding value
|
||||||
# | arg: ... - (Optionnal) More POST keys and values
|
# | arg: ... - (Optionnal) More POST keys and values
|
||||||
#
|
#
|
||||||
|
# example: ynh_local_curl "/install.php?installButton" "foo=$var1" "bar=$var2"
|
||||||
|
#
|
||||||
# For multiple calls, cookies are persisted between each call for the same app
|
# For multiple calls, cookies are persisted between each call for the same app
|
||||||
#
|
#
|
||||||
# $domain and $path_url should be defined externally (and correspond to the domain.tld and the /path (of the app?))
|
# `$domain` and `$path_url` should be defined externally (and correspond to the domain.tld and the /path (of the app?))
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_local_curl () {
|
ynh_local_curl () {
|
||||||
|
@ -265,20 +314,22 @@ ynh_local_curl () {
|
||||||
|
|
||||||
# Create a dedicated config file from a template
|
# Create a dedicated config file from a template
|
||||||
#
|
#
|
||||||
|
# usage: ynh_add_config --template="template" --destination="destination"
|
||||||
|
# | arg: -t, --template= - Template config file to use
|
||||||
|
# | arg: -d, --destination= - Destination of the config file
|
||||||
|
#
|
||||||
# examples:
|
# examples:
|
||||||
# ynh_add_config --template=".env" --destination="$final_path/.env"
|
# ynh_add_config --template=".env" --destination="$final_path/.env"
|
||||||
# ynh_add_config --template="../conf/.env" --destination="$final_path/.env"
|
# ynh_add_config --template="../conf/.env" --destination="$final_path/.env"
|
||||||
# ynh_add_config --template="/etc/nginx/sites-available/default" --destination="etc/nginx/sites-available/mydomain.conf"
|
# ynh_add_config --template="/etc/nginx/sites-available/default" --destination="etc/nginx/sites-available/mydomain.conf"
|
||||||
#
|
#
|
||||||
# usage: ynh_add_config --template="template" --destination="destination"
|
|
||||||
# | arg: -t, --template= - Template config file to use
|
|
||||||
# | arg: -d, --destination= - Destination of the config file
|
|
||||||
#
|
|
||||||
# The template can be by default the name of a file in the conf directory
|
# The template can be by default the name of a file in the conf directory
|
||||||
# of a YunoHost Package, a relative path or an absolute path
|
# of a YunoHost Package, a relative path or an absolute path.
|
||||||
# The helper will use the template $template to generate a config file
|
#
|
||||||
# $destination by replacing the following keywords with global variables
|
# The helper will use the template `template` to generate a config file
|
||||||
|
# `destination` by replacing the following keywords with global variables
|
||||||
# that should be defined before calling this helper :
|
# that should be defined before calling this helper :
|
||||||
|
# ```
|
||||||
# __PATH__ by $path_url
|
# __PATH__ by $path_url
|
||||||
# __NAME__ by $app
|
# __NAME__ by $app
|
||||||
# __NAMETOCHANGE__ by $app
|
# __NAMETOCHANGE__ by $app
|
||||||
|
@ -286,15 +337,18 @@ ynh_local_curl () {
|
||||||
# __FINALPATH__ by $final_path
|
# __FINALPATH__ by $final_path
|
||||||
# __PHPVERSION__ by $YNH_PHP_VERSION
|
# __PHPVERSION__ by $YNH_PHP_VERSION
|
||||||
# __YNH_NODE_LOAD_PATH__ by $ynh_node_load_PATH
|
# __YNH_NODE_LOAD_PATH__ by $ynh_node_load_PATH
|
||||||
#
|
# ```
|
||||||
# And any dynamic variables that should be defined before calling this helper like:
|
# And any dynamic variables that should be defined before calling this helper like:
|
||||||
|
# ```
|
||||||
# __DOMAIN__ by $domain
|
# __DOMAIN__ by $domain
|
||||||
# __APP__ by $app
|
# __APP__ by $app
|
||||||
# __VAR_1__ by $var_1
|
# __VAR_1__ by $var_1
|
||||||
# __VAR_2__ by $var_2
|
# __VAR_2__ by $var_2
|
||||||
|
# ```
|
||||||
#
|
#
|
||||||
# The helper will verify the checksum and backup the destination file
|
# The helper will verify the checksum and backup the destination file
|
||||||
# if it's different before applying the new template.
|
# if it's different before applying the new template.
|
||||||
|
#
|
||||||
# And it will calculate and store the destination file checksum
|
# And it will calculate and store the destination file checksum
|
||||||
# into the app settings when configuration is done.
|
# into the app settings when configuration is done.
|
||||||
#
|
#
|
||||||
|
@ -319,8 +373,17 @@ ynh_add_config () {
|
||||||
|
|
||||||
ynh_backup_if_checksum_is_different --file="$destination"
|
ynh_backup_if_checksum_is_different --file="$destination"
|
||||||
|
|
||||||
|
# Make sure to set the permissions before we copy the file
|
||||||
|
# This is to cover a case where an attacker could have
|
||||||
|
# created a file beforehand to have control over it
|
||||||
|
# (cp won't overwrite ownership / modes by default...)
|
||||||
|
touch $destination
|
||||||
|
chown root:root $destination
|
||||||
|
chmod 640 $destination
|
||||||
|
|
||||||
cp -f "$template_path" "$destination"
|
cp -f "$template_path" "$destination"
|
||||||
chown root: "$destination"
|
|
||||||
|
_ynh_apply_default_permissions $destination
|
||||||
|
|
||||||
ynh_replace_vars --file="$destination"
|
ynh_replace_vars --file="$destination"
|
||||||
|
|
||||||
|
@ -553,22 +616,23 @@ ynh_read_manifest () {
|
||||||
|
|
||||||
if [ ! -e "$manifest" ]; then
|
if [ ! -e "$manifest" ]; then
|
||||||
# If the manifest isn't found, try the common place for backup and restore script.
|
# If the manifest isn't found, try the common place for backup and restore script.
|
||||||
manifest="../settings/manifest.json"
|
manifest="$YNH_APP_BASEDIR/manifest.json"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
jq ".$manifest_key" "$manifest" --raw-output
|
jq ".$manifest_key" "$manifest" --raw-output
|
||||||
}
|
}
|
||||||
|
|
||||||
# Read the upstream version from the manifest, or from the env variable $YNH_APP_MANIFEST_VERSION if not given
|
# Read the upstream version from the manifest or `$YNH_APP_MANIFEST_VERSION`
|
||||||
#
|
#
|
||||||
# usage: ynh_app_upstream_version [--manifest="manifest.json"]
|
# usage: ynh_app_upstream_version [--manifest="manifest.json"]
|
||||||
# | arg: -m, --manifest= - Path of the manifest to read
|
# | arg: -m, --manifest= - Path of the manifest to read
|
||||||
# | ret: the version number of the upstream app
|
# | ret: the version number of the upstream app
|
||||||
#
|
#
|
||||||
# The version number in the manifest is defined by <upstreamversion>~ynh<packageversion>
|
# If the `manifest` is not specified, the envvar `$YNH_APP_MANIFEST_VERSION` will be used.
|
||||||
# For example : 4.3-2~ynh3
|
#
|
||||||
# This include the number before ~ynh
|
# The version number in the manifest is defined by `<upstreamversion>~ynh<packageversion>`.
|
||||||
# In the last example it return 4.3-2
|
#
|
||||||
|
# For example, if the manifest contains `4.3-2~ynh3` the function will return `4.3-2`
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.5.0 or higher.
|
# Requires YunoHost version 3.5.0 or higher.
|
||||||
ynh_app_upstream_version () {
|
ynh_app_upstream_version () {
|
||||||
|
@ -596,10 +660,9 @@ ynh_app_upstream_version () {
|
||||||
# | arg: -m, --manifest= - Path of the manifest to read
|
# | arg: -m, --manifest= - Path of the manifest to read
|
||||||
# | ret: the version number of the package
|
# | ret: the version number of the package
|
||||||
#
|
#
|
||||||
# The version number in the manifest is defined by <upstreamversion>~ynh<packageversion>
|
# The version number in the manifest is defined by `<upstreamversion>~ynh<packageversion>`.
|
||||||
# For example : 4.3-2~ynh3
|
#
|
||||||
# This include the number after ~ynh
|
# For example, if the manifest contains `4.3-2~ynh3` the function will return `3`
|
||||||
# In the last example it return 3
|
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.5.0 or higher.
|
# Requires YunoHost version 3.5.0 or higher.
|
||||||
ynh_app_package_version () {
|
ynh_app_package_version () {
|
||||||
|
@ -616,18 +679,16 @@ ynh_app_package_version () {
|
||||||
|
|
||||||
# Checks the app version to upgrade with the existing app version and returns:
|
# Checks the app version to upgrade with the existing app version and returns:
|
||||||
#
|
#
|
||||||
# - UPGRADE_PACKAGE if only the YunoHost package has changed
|
# usage: ynh_check_app_version_changed
|
||||||
# - UPGRADE_APP otherwise
|
# | ret: `UPGRADE_APP` if the upstream version changed, `UPGRADE_PACKAGE` otherwise.
|
||||||
#
|
#
|
||||||
# This helper should be used to avoid an upgrade of an app, or the upstream part
|
# This helper should be used to avoid an upgrade of an app, or the upstream part
|
||||||
# of it, when it's not needed
|
# of it, when it's not needed
|
||||||
#
|
#
|
||||||
# To force an upgrade, even if the package is up to date,
|
# You can force an upgrade, even if the package is up to date, with the `--force` (or `-F`) argument :
|
||||||
# you have to use the parameter --force (or -F).
|
# ```
|
||||||
# example: sudo yunohost app upgrade MyApp --force
|
# sudo yunohost app upgrade <appname> --force
|
||||||
#
|
# ```
|
||||||
# usage: ynh_check_app_version_changed
|
|
||||||
#
|
|
||||||
# Requires YunoHost version 3.5.0 or higher.
|
# Requires YunoHost version 3.5.0 or higher.
|
||||||
ynh_check_app_version_changed () {
|
ynh_check_app_version_changed () {
|
||||||
local return_value=${YNH_APP_UPGRADE_TYPE}
|
local return_value=${YNH_APP_UPGRADE_TYPE}
|
||||||
|
@ -641,24 +702,23 @@ ynh_check_app_version_changed () {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Compare the current package version against another version given as an argument.
|
# Compare the current package version against another version given as an argument.
|
||||||
# This is really useful when we need to do some actions only for some old package versions.
|
#
|
||||||
|
# usage: ynh_compare_current_package_version --comparison (lt|le|eq|ne|ge|gt) --version <X~ynhY>
|
||||||
|
# | arg: --comparison - Comparison type. Could be : `lt` (lower than), `le` (lower or equal), `eq` (equal), `ne` (not equal), `ge` (greater or equal), `gt` (greater than)
|
||||||
|
# | arg: --version - The version to compare. Need to be a version in the yunohost package version type (like `2.3.1~ynh4`)
|
||||||
|
# | ret: 0 if the evaluation is true, 1 if false.
|
||||||
#
|
#
|
||||||
# example: ynh_compare_current_package_version --comparison lt --version 2.3.2~ynh1
|
# example: ynh_compare_current_package_version --comparison lt --version 2.3.2~ynh1
|
||||||
# This example will check if the installed version is lower than (lt) the version 2.3.2~ynh1
|
|
||||||
#
|
#
|
||||||
# Generally you might probably use it as follow in the upgrade script
|
# This helper is usually used when we need to do some actions only for some old package versions.
|
||||||
#
|
#
|
||||||
|
# Generally you might probably use it as follow in the upgrade script :
|
||||||
|
# ```
|
||||||
# if ynh_compare_current_package_version --comparison lt --version 2.3.2~ynh1
|
# if ynh_compare_current_package_version --comparison lt --version 2.3.2~ynh1
|
||||||
# then
|
# then
|
||||||
# # Do something that is needed for the package version older than 2.3.2~ynh1
|
# # Do something that is needed for the package version older than 2.3.2~ynh1
|
||||||
# fi
|
# fi
|
||||||
#
|
# ```
|
||||||
# usage: ynh_compare_current_package_version --comparison lt|le|eq|ne|ge|gt
|
|
||||||
# | arg: --comparison - Comparison type. Could be : lt (lower than), le (lower or equal),
|
|
||||||
# | eq (equal), ne (not equal), ge (greater or equal), gt (greater than)
|
|
||||||
# | arg: --version - The version to compare. Need to be a version in the yunohost package version type (like 2.3.1~ynh4)
|
|
||||||
#
|
|
||||||
# Return 0 if the evaluation is true. 1 if false.
|
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.8.0 or higher.
|
# Requires YunoHost version 3.8.0 or higher.
|
||||||
ynh_compare_current_package_version() {
|
ynh_compare_current_package_version() {
|
||||||
|
@ -679,9 +739,43 @@ ynh_compare_current_package_version() {
|
||||||
|
|
||||||
# Check validity of the comparator
|
# Check validity of the comparator
|
||||||
if [[ ! $comparison =~ (lt|le|eq|ne|ge|gt) ]]; then
|
if [[ ! $comparison =~ (lt|le|eq|ne|ge|gt) ]]; then
|
||||||
ynh_die --message="Invialid comparator must be : lt, le, eq, ne, ge, gt"
|
ynh_die --message="Invalid comparator must be : lt, le, eq, ne, ge, gt"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Return the return value of dpkg --compare-versions
|
# Return the return value of dpkg --compare-versions
|
||||||
dpkg --compare-versions $current_version $comparison $version
|
dpkg --compare-versions $current_version $comparison $version
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Check if we should enforce sane default permissions (= disable rwx for 'others')
|
||||||
|
# on file/folders handled with ynh_setup_source and ynh_add_config
|
||||||
|
#
|
||||||
|
# [internal]
|
||||||
|
#
|
||||||
|
# Having a file others-readable or a folder others-executable(=enterable)
|
||||||
|
# is a security risk comparable to "chmod 777"
|
||||||
|
#
|
||||||
|
# Configuration files may contain secrets. Or even just being able to enter a
|
||||||
|
# folder may allow an attacker to do nasty stuff (maybe a file or subfolder has
|
||||||
|
# some write permission enabled for 'other' and the attacker may edit the
|
||||||
|
# content or create files as leverage for priviledge escalation ...)
|
||||||
|
#
|
||||||
|
# The sane default should be to set ownership to $app:$app.
|
||||||
|
# In specific case, you may want to set the ownership to $app:www-data
|
||||||
|
# for example if nginx needs access to static files.
|
||||||
|
#
|
||||||
|
_ynh_apply_default_permissions() {
|
||||||
|
local target=$1
|
||||||
|
|
||||||
|
local ynh_requirement=$(jq -r '.requirements.yunohost' $YNH_APP_BASEDIR/manifest.json | tr -d '>= ')
|
||||||
|
|
||||||
|
if [ -z "$ynh_requirement" ] || [ "$ynh_requirement" == "null" ] || dpkg --compare-versions $ynh_requirement ge 4.2
|
||||||
|
then
|
||||||
|
chmod o-rwx $target
|
||||||
|
chmod g-w $target
|
||||||
|
chown -R root:root $target
|
||||||
|
if ynh_system_user_exists $app
|
||||||
|
then
|
||||||
|
chown $app:$app $target
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
1
data/hooks/backup/05-conf_ldap
Executable file → Normal file
1
data/hooks/backup/05-conf_ldap
Executable file → Normal file
|
@ -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
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Exit hook on subcommand error or unset variable
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
# Source YNH helpers
|
|
||||||
source /usr/share/yunohost/helpers
|
|
||||||
|
|
||||||
# Backup destination
|
|
||||||
backup_dir="${1}/conf/ssh"
|
|
||||||
|
|
||||||
# Backup the configuration
|
|
||||||
if [ -d /etc/ssh/ ]; then
|
|
||||||
ynh_backup "/etc/ssh" "$backup_dir"
|
|
||||||
else
|
|
||||||
echo "SSH is not installed"
|
|
||||||
fi
|
|
|
@ -1,13 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Exit hook on subcommand error or unset variable
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
# Source YNH helpers
|
|
||||||
source /usr/share/yunohost/helpers
|
|
||||||
|
|
||||||
# Backup destination
|
|
||||||
backup_dir="${1}/conf/ssowat"
|
|
||||||
|
|
||||||
# Backup the configuration
|
|
||||||
ynh_backup "/etc/ssowat" "$backup_dir"
|
|
0
data/hooks/backup/17-data_home
Executable file → Normal file
0
data/hooks/backup/17-data_home
Executable file → Normal file
|
@ -1,13 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Exit hook on subcommand error or unset variable
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
# Source YNH helpers
|
|
||||||
source /usr/share/yunohost/helpers
|
|
||||||
|
|
||||||
# Backup destination
|
|
||||||
backup_dir="${1}/conf/ynh/firewall"
|
|
||||||
|
|
||||||
# Backup the configuration
|
|
||||||
ynh_backup "/etc/yunohost/firewall.yml" "${backup_dir}/firewall.yml"
|
|
17
data/hooks/backup/20-conf_ynh_settings
Normal file
17
data/hooks/backup/20-conf_ynh_settings
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Exit hook on subcommand error or unset variable
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
# Source YNH helpers
|
||||||
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
|
# Backup destination
|
||||||
|
backup_dir="${1}/conf/ynh"
|
||||||
|
|
||||||
|
# Backup the configuration
|
||||||
|
ynh_backup "/etc/yunohost/firewall.yml" "${backup_dir}/firewall.yml"
|
||||||
|
ynh_backup "/etc/yunohost/current_host" "${backup_dir}/current_host"
|
||||||
|
[ ! -e "/etc/yunohost/settings.json" ] || ynh_backup "/etc/yunohost/settings.json" "${backup_dir}/settings.json"
|
||||||
|
[ ! -d "/etc/yunohost/dyndns" ] || ynh_backup "/etc/yunohost/dyndns" "${backup_dir}/dyndns"
|
||||||
|
[ ! -d "/etc/dkim" ] || ynh_backup "/etc/dkim" "${backup_dir}/dkim"
|
0
data/hooks/backup/21-conf_ynh_certs
Executable file → Normal file
0
data/hooks/backup/21-conf_ynh_certs
Executable file → Normal file
|
@ -1,9 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
source /usr/share/yunohost/helpers
|
|
||||||
ynh_abort_if_errors
|
|
||||||
YNH_CWD="${YNH_BACKUP_DIR%/}/conf/dkim"
|
|
||||||
mkdir -p "$YNH_CWD"
|
|
||||||
cd "$YNH_CWD"
|
|
||||||
|
|
||||||
ynh_backup --src_path="/etc/dkim"
|
|
0
data/hooks/backup/23-data_mail
Executable file → Normal file
0
data/hooks/backup/23-data_mail
Executable file → Normal file
|
@ -1,14 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Exit hook on subcommand error or unset variable
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
# Source YNH helpers
|
|
||||||
source /usr/share/yunohost/helpers
|
|
||||||
|
|
||||||
# Backup destination
|
|
||||||
backup_dir="${1}/conf/xmpp"
|
|
||||||
|
|
||||||
# Backup the configuration
|
|
||||||
ynh_backup /etc/metronome "${backup_dir}/etc"
|
|
||||||
ynh_backup /var/lib/metronome "${backup_dir}/var"
|
|
13
data/hooks/backup/27-data_xmpp
Normal file
13
data/hooks/backup/27-data_xmpp
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Exit hook on subcommand error or unset variable
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
# Source YNH helpers
|
||||||
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
|
# Backup destination
|
||||||
|
backup_dir="${1}/data/xmpp"
|
||||||
|
|
||||||
|
ynh_backup /var/lib/metronome "${backup_dir}/var_lib_metronome"
|
||||||
|
ynh_backup /var/xmpp-upload/ "${backup_dir}/var_xmpp-upload"
|
|
@ -1,13 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Exit hook on subcommand error or unset variable
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
# Source YNH helpers
|
|
||||||
source /usr/share/yunohost/helpers
|
|
||||||
|
|
||||||
# Backup destination
|
|
||||||
backup_dir="${1}/conf/nginx"
|
|
||||||
|
|
||||||
# Backup the configuration
|
|
||||||
ynh_backup "/etc/nginx/conf.d" "$backup_dir"
|
|
|
@ -1,15 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Exit hook on subcommand error or unset variable
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
# Source YNH helpers
|
|
||||||
source /usr/share/yunohost/helpers
|
|
||||||
|
|
||||||
# Backup destination
|
|
||||||
backup_dir="${1}/conf/cron"
|
|
||||||
|
|
||||||
# Backup the configuration
|
|
||||||
for f in $(ls -1B /etc/cron.d/yunohost* 2> /dev/null); do
|
|
||||||
ynh_backup "$f" "${backup_dir}/${f##*/}"
|
|
||||||
done
|
|
|
@ -1,13 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Exit hook on subcommand error or unset variable
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
# Source YNH helpers
|
|
||||||
source /usr/share/yunohost/helpers
|
|
||||||
|
|
||||||
# Backup destination
|
|
||||||
backup_dir="${1}/conf/ynh"
|
|
||||||
|
|
||||||
# Backup the configuration
|
|
||||||
ynh_backup "/etc/yunohost/current_host" "${backup_dir}/current_host"
|
|
|
@ -1,10 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
source /usr/share/yunohost/helpers
|
|
||||||
ynh_abort_if_errors
|
|
||||||
YNH_CWD="${YNH_BACKUP_DIR%/}/conf/ynh/dyndns"
|
|
||||||
mkdir -p $YNH_CWD
|
|
||||||
cd "$YNH_CWD"
|
|
||||||
|
|
||||||
# Backup the configuration
|
|
||||||
ynh_exec_warn_less ynh_backup --src_path="/etc/yunohost/dyndns" --not_mandatory
|
|
18
data/hooks/backup/50-conf_manually_modified_files
Normal file
18
data/hooks/backup/50-conf_manually_modified_files
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
source /usr/share/yunohost/helpers
|
||||||
|
ynh_abort_if_errors
|
||||||
|
YNH_CWD="${YNH_BACKUP_DIR%/}/conf/manually_modified_files"
|
||||||
|
mkdir -p "$YNH_CWD"
|
||||||
|
cd "$YNH_CWD"
|
||||||
|
|
||||||
|
yunohost tools shell -c "from yunohost.regenconf import manually_modified_files; print('\n'.join(manually_modified_files()))" > ./manually_modified_files_list
|
||||||
|
|
||||||
|
ynh_backup --src_path="./manually_modified_files_list"
|
||||||
|
|
||||||
|
for file in $(cat ./manually_modified_files_list)
|
||||||
|
do
|
||||||
|
ynh_backup --src_path="$file"
|
||||||
|
done
|
||||||
|
|
||||||
|
ynh_backup --src_path="/etc/ssowat/conf.json.persistent"
|
|
@ -50,6 +50,8 @@ do_init_regen() {
|
||||||
chown root:root /etc/ssowat/conf.json.persistent
|
chown root:root /etc/ssowat/conf.json.persistent
|
||||||
|
|
||||||
mkdir -p /var/cache/yunohost/repo
|
mkdir -p /var/cache/yunohost/repo
|
||||||
|
chown root:root /var/cache/yunohost
|
||||||
|
chmod 700 /var/cache/yunohost
|
||||||
}
|
}
|
||||||
|
|
||||||
do_pre_regen() {
|
do_pre_regen() {
|
||||||
|
@ -77,13 +79,27 @@ do_pre_regen() {
|
||||||
cp services.yml /etc/yunohost/services.yml
|
cp services.yml /etc/yunohost/services.yml
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
mkdir -p $pending_dir/etc/cron.d/
|
||||||
|
mkdir -p $pending_dir/etc/cron.daily/
|
||||||
|
|
||||||
# add cron job for diagnosis to be ran at 7h and 19h + a random delay between
|
# add cron job for diagnosis to be ran at 7h and 19h + a random delay between
|
||||||
# 0 and 20min, meant to avoid every instances running their diagnosis at
|
# 0 and 20min, meant to avoid every instances running their diagnosis at
|
||||||
# exactly the same time, which may overload the diagnosis server.
|
# exactly the same time, which may overload the diagnosis server.
|
||||||
mkdir -p $pending_dir/etc/cron.d/
|
|
||||||
cat > $pending_dir/etc/cron.d/yunohost-diagnosis << EOF
|
cat > $pending_dir/etc/cron.d/yunohost-diagnosis << EOF
|
||||||
SHELL=/bin/bash
|
SHELL=/bin/bash
|
||||||
0 7,19 * * * root : YunoHost Automatic Diagnosis; sleep \$((RANDOM\\%1200)); yunohost diagnosis run --email > /dev/null 2>/dev/null || echo "Running the automatic diagnosis failed miserably"
|
0 7,19 * * * root : YunoHost Automatic Diagnosis; sleep \$((RANDOM\\%1200)); yunohost diagnosis run --email > /dev/null 2>/dev/null || echo "Running the automatic diagnosis failed miserably"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Cron job that upgrade the app list everyday
|
||||||
|
cat > $pending_dir/etc/cron.daily/yunohost-fetch-apps-catalog << EOF
|
||||||
|
#!/bin/bash
|
||||||
|
(sleep \$((RANDOM%3600)); yunohost tools update --apps > /dev/null) &
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Cron job that renew lets encrypt certificates if there's any that needs renewal
|
||||||
|
cat > $pending_dir/etc/cron.daily/yunohost-certificate-renew << EOF
|
||||||
|
#!/bin/bash
|
||||||
|
yunohost domain cert-renew --email
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# If we subscribed to a dyndns domain, add the corresponding cron
|
# If we subscribed to a dyndns domain, add the corresponding cron
|
||||||
|
@ -128,6 +144,12 @@ do_post_regen() {
|
||||||
# Enfore permissions #
|
# Enfore permissions #
|
||||||
######################
|
######################
|
||||||
|
|
||||||
|
chmod 750 /home/admin
|
||||||
|
chmod 750 /home/yunohost.conf
|
||||||
|
chmod 750 /home/yunohost.backup
|
||||||
|
chmod 750 /home/yunohost.backup/archives
|
||||||
|
chown root:root /home/yunohost.conf
|
||||||
|
chown admin:root /home/yunohost.backup
|
||||||
chown admin:root /home/yunohost.backup/archives
|
chown admin:root /home/yunohost.backup/archives
|
||||||
|
|
||||||
# Certs
|
# Certs
|
||||||
|
@ -137,6 +159,26 @@ do_post_regen() {
|
||||||
find /etc/yunohost/certs/ -type f -exec chmod 640 {} \;
|
find /etc/yunohost/certs/ -type f -exec chmod 640 {} \;
|
||||||
find /etc/yunohost/certs/ -type d -exec chmod 750 {} \;
|
find /etc/yunohost/certs/ -type d -exec chmod 750 {} \;
|
||||||
|
|
||||||
|
find /etc/cron.*/yunohost-* -type f -exec chmod 755 {} \;
|
||||||
|
find /etc/cron.d/yunohost-* -type f -exec chmod 644 {} \;
|
||||||
|
find /etc/cron.*/yunohost-* -type f -exec chown root:root {} \;
|
||||||
|
|
||||||
|
chown root:root /var/cache/yunohost
|
||||||
|
chmod 700 /var/cache/yunohost
|
||||||
|
chown root:root /var/cache/moulinette
|
||||||
|
chmod 700 /var/cache/moulinette
|
||||||
|
|
||||||
|
setfacl -m g:all_users:--- /var/www
|
||||||
|
setfacl -m g:all_users:--- /var/log/nginx
|
||||||
|
setfacl -m g:all_users:--- /etc/yunohost
|
||||||
|
setfacl -m g:all_users:--- /etc/ssowat
|
||||||
|
|
||||||
|
for USER in $(yunohost user list --quiet --output-as json | jq -r '.users | .[] | .username')
|
||||||
|
do
|
||||||
|
[ ! -e "/home/$USER" ] || setfacl -m g:all_users:--- /home/$USER
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
# Misc configuration / state files
|
# Misc configuration / state files
|
||||||
chown root:root $(ls /etc/yunohost/{*.yml,*.yaml,*.json,mysql,psql} 2>/dev/null)
|
chown root:root $(ls /etc/yunohost/{*.yml,*.yaml,*.json,mysql,psql} 2>/dev/null)
|
||||||
chmod 600 $(ls /etc/yunohost/{*.yml,*.yaml,*.json,mysql,psql} 2>/dev/null)
|
chmod 600 $(ls /etc/yunohost/{*.yml,*.yaml,*.json,mysql,psql} 2>/dev/null)
|
||||||
|
@ -145,6 +187,10 @@ do_post_regen() {
|
||||||
[[ ! -e /etc/yunohost/hooks.d ]] || (chown root /etc/yunohost/hooks.d && chmod 700 /etc/yunohost/hooks.d)
|
[[ ! -e /etc/yunohost/hooks.d ]] || (chown root /etc/yunohost/hooks.d && chmod 700 /etc/yunohost/hooks.d)
|
||||||
[[ ! -e /etc/yunohost/apps ]] || (chown root /etc/yunohost/apps && chmod 700 /etc/yunohost/apps)
|
[[ ! -e /etc/yunohost/apps ]] || (chown root /etc/yunohost/apps && chmod 700 /etc/yunohost/apps)
|
||||||
|
|
||||||
|
# Create ssh.app and sftp.app groups if they don't exist yet
|
||||||
|
grep -q '^ssh.app:' /etc/group || groupadd ssh.app
|
||||||
|
grep -q '^sftp.app:' /etc/group || groupadd sftp.app
|
||||||
|
|
||||||
# Propagates changes in systemd service config overrides
|
# Propagates changes in systemd service config overrides
|
||||||
[[ ! "$regen_conf_files" =~ "ntp.service.d/ynh-override.conf" ]] || { systemctl daemon-reload; systemctl restart ntp; }
|
[[ ! "$regen_conf_files" =~ "ntp.service.d/ynh-override.conf" ]] || { systemctl daemon-reload; systemctl restart ntp; }
|
||||||
[[ ! "$regen_conf_files" =~ "nftables.service.d/ynh-override.conf" ]] || systemctl daemon-reload
|
[[ ! "$regen_conf_files" =~ "nftables.service.d/ynh-override.conf" ]] || systemctl daemon-reload
|
||||||
|
|
|
@ -25,7 +25,7 @@ do_pre_regen() {
|
||||||
|
|
||||||
# Support different strategy for security configurations
|
# Support different strategy for security configurations
|
||||||
export compatibility="$(yunohost settings get 'security.ssh.compatibility')"
|
export compatibility="$(yunohost settings get 'security.ssh.compatibility')"
|
||||||
|
export port="$(yunohost settings get 'security.ssh.port')"
|
||||||
export ssh_keys
|
export ssh_keys
|
||||||
export ipv6_enabled
|
export ipv6_enabled
|
||||||
ynh_render_template "sshd_config" "${pending_dir}/etc/ssh/sshd_config"
|
ynh_render_template "sshd_config" "${pending_dir}/etc/ssh/sshd_config"
|
||||||
|
|
|
@ -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,10 +15,6 @@ 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
|
||||||
|
@ -36,20 +35,38 @@ EOF
|
||||||
|
|
||||||
DEBIAN_FRONTEND=noninteractive dpkg-reconfigure slapd -u
|
DEBIAN_FRONTEND=noninteractive dpkg-reconfigure slapd -u
|
||||||
|
|
||||||
# Regen conf
|
|
||||||
|
|
||||||
_regenerate_slapd_conf
|
|
||||||
|
|
||||||
# Enforce permissions
|
# 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
|
||||||
|
@ -147,7 +179,7 @@ do_post_regen() {
|
||||||
su openldap -s "/bin/bash" -c "/usr/sbin/slapindex"
|
su openldap -s "/bin/bash" -c "/usr/sbin/slapindex"
|
||||||
|
|
||||||
echo "Reloading slapd"
|
echo "Reloading slapd"
|
||||||
service slapd force-reload
|
systemctl force-reload slapd
|
||||||
|
|
||||||
# on slow hardware/vm this regen conf would exit before the admin user that
|
# on slow hardware/vm this regen conf would exit before the admin user that
|
||||||
# is stored in ldap is available because ldap seems to slow to restart
|
# is stored in ldap is available because ldap seems to slow to restart
|
||||||
|
@ -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
|
||||||
|
|
|
@ -52,11 +52,14 @@ do_post_regen() {
|
||||||
mkdir -p "/var/lib/metronome/${domain//./%2e}/pep"
|
mkdir -p "/var/lib/metronome/${domain//./%2e}/pep"
|
||||||
# http_upload directory must be writable by metronome and readable by nginx
|
# http_upload directory must be writable by metronome and readable by nginx
|
||||||
mkdir -p "/var/xmpp-upload/${domain}/upload"
|
mkdir -p "/var/xmpp-upload/${domain}/upload"
|
||||||
|
# sgid bit allows that file created in that dir will be owned by www-data
|
||||||
|
# despite the fact that metronome ain't in the www-data group
|
||||||
chmod g+s "/var/xmpp-upload/${domain}/upload"
|
chmod g+s "/var/xmpp-upload/${domain}/upload"
|
||||||
chown -R metronome:www-data "/var/xmpp-upload/${domain}"
|
|
||||||
done
|
done
|
||||||
|
|
||||||
# fix some permissions
|
# fix some permissions
|
||||||
|
[ ! -e '/var/xmpp-upload' ] || chown -R metronome:www-data "/var/xmpp-upload/"
|
||||||
|
[ ! -e '/var/xmpp-upload' ] || chmod 750 "/var/xmpp-upload/"
|
||||||
|
|
||||||
# metronome should be in ssl-cert group to let it access SSL certificates
|
# metronome should be in ssl-cert group to let it access SSL certificates
|
||||||
usermod -aG ssl-cert metronome
|
usermod -aG ssl-cert metronome
|
||||||
|
@ -64,7 +67,7 @@ do_post_regen() {
|
||||||
chown -R metronome: /etc/metronome/conf.d/
|
chown -R metronome: /etc/metronome/conf.d/
|
||||||
|
|
||||||
[[ -z "$regen_conf_files" ]] \
|
[[ -z "$regen_conf_files" ]] \
|
||||||
|| service metronome restart
|
|| systemctl restart metronome
|
||||||
}
|
}
|
||||||
|
|
||||||
FORCE=${2:-0}
|
FORCE=${2:-0}
|
||||||
|
|
|
@ -47,6 +47,12 @@ do_pre_regen() {
|
||||||
|
|
||||||
# install / update plain conf files
|
# install / update plain conf files
|
||||||
cp plain/* "$nginx_conf_dir"
|
cp plain/* "$nginx_conf_dir"
|
||||||
|
# remove the panel overlay if this is specified in settings
|
||||||
|
panel_overlay=$(yunohost settings get 'ssowat.panel_overlay.enabled')
|
||||||
|
if [ "$panel_overlay" == "false" ] || [ "$panel_overlay" == "False" ]
|
||||||
|
then
|
||||||
|
echo "#" > "${nginx_conf_dir}/yunohost_panel.conf.inc"
|
||||||
|
fi
|
||||||
|
|
||||||
# retrieve variables
|
# retrieve variables
|
||||||
main_domain=$(cat /etc/yunohost/current_host)
|
main_domain=$(cat /etc/yunohost/current_host)
|
||||||
|
|
|
@ -76,7 +76,7 @@ do_post_regen() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[[ -z "$regen_conf_files" ]] \
|
[[ -z "$regen_conf_files" ]] \
|
||||||
|| { service postfix restart && service postsrsd restart; }
|
|| { systemctl restart postfix && systemctl restart postsrsd; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,10 @@ do_post_regen() {
|
||||||
|
|
||||||
# create vmail user
|
# create vmail user
|
||||||
id vmail > /dev/null 2>&1 \
|
id vmail > /dev/null 2>&1 \
|
||||||
|| adduser --system --ingroup mail --uid 500 vmail
|
|| adduser --system --ingroup mail --uid 500 vmail --home /var/vmail --no-create-home
|
||||||
|
|
||||||
|
# Delete legacy home for vmail that existed in the past but was empty, poluting /home/
|
||||||
|
[ ! -e /home/vmail ] || rmdir --ignore-fail-on-non-empty /home/vmail
|
||||||
|
|
||||||
# fix permissions
|
# fix permissions
|
||||||
chown -R vmail:mail /etc/dovecot/global_script
|
chown -R vmail:mail /etc/dovecot/global_script
|
||||||
|
@ -57,7 +60,7 @@ do_post_regen() {
|
||||||
chown -R vmail:mail /etc/dovecot/global_script
|
chown -R vmail:mail /etc/dovecot/global_script
|
||||||
}
|
}
|
||||||
|
|
||||||
service dovecot restart
|
systemctl restart dovecot
|
||||||
}
|
}
|
||||||
|
|
||||||
FORCE=${2:-0}
|
FORCE=${2:-0}
|
||||||
|
|
|
@ -37,7 +37,7 @@ do_post_regen() {
|
||||||
# This is a trick to check if we're able to use mysql without password
|
# This is a trick to check if we're able to use mysql without password
|
||||||
# Expect instances installed in stretch to already have unix_socket
|
# Expect instances installed in stretch to already have unix_socket
|
||||||
#configured, but not old instances from the jessie/wheezy era
|
#configured, but not old instances from the jessie/wheezy era
|
||||||
if ! echo "" | mysql
|
if ! echo "" | mysql 2>/dev/null
|
||||||
then
|
then
|
||||||
password="$(cat /etc/yunohost/mysql)"
|
password="$(cat /etc/yunohost/mysql)"
|
||||||
# Enable plugin unix_socket for root on localhost
|
# Enable plugin unix_socket for root on localhost
|
||||||
|
@ -45,7 +45,7 @@ do_post_regen() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If now we're able to login without password, drop the mysql password
|
# If now we're able to login without password, drop the mysql password
|
||||||
if echo "" | mysql
|
if echo "" | mysql 2>/dev/null
|
||||||
then
|
then
|
||||||
rm /etc/yunohost/mysql
|
rm /etc/yunohost/mysql
|
||||||
else
|
else
|
||||||
|
@ -66,7 +66,7 @@ do_post_regen() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[[ -z "$regen_conf_files" ]] \
|
[[ -z "$regen_conf_files" ]] \
|
||||||
|| service mysql restart
|
|| systemctl restart mysql
|
||||||
}
|
}
|
||||||
|
|
||||||
FORCE=${2:-0}
|
FORCE=${2:-0}
|
||||||
|
|
|
@ -15,7 +15,7 @@ do_post_regen() {
|
||||||
regen_conf_files=$1
|
regen_conf_files=$1
|
||||||
|
|
||||||
[[ -z "$regen_conf_files" ]] \
|
[[ -z "$regen_conf_files" ]] \
|
||||||
|| service avahi-daemon restart
|
|| systemctl restart avahi-daemon
|
||||||
}
|
}
|
||||||
|
|
||||||
FORCE=${2:-0}
|
FORCE=${2:-0}
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
. /usr/share/yunohost/helpers
|
||||||
|
|
||||||
do_pre_regen() {
|
do_pre_regen() {
|
||||||
pending_dir=$1
|
pending_dir=$1
|
||||||
|
|
||||||
|
@ -13,14 +15,16 @@ do_pre_regen() {
|
||||||
|
|
||||||
cp yunohost.conf "${fail2ban_dir}/filter.d/yunohost.conf"
|
cp yunohost.conf "${fail2ban_dir}/filter.d/yunohost.conf"
|
||||||
cp jail.conf "${fail2ban_dir}/jail.conf"
|
cp jail.conf "${fail2ban_dir}/jail.conf"
|
||||||
cp yunohost-jails.conf "${fail2ban_dir}/jail.d/"
|
|
||||||
|
export ssh_port="$(yunohost settings get 'security.ssh.port')"
|
||||||
|
ynh_render_template "yunohost-jails.conf" "${fail2ban_dir}/jail.d/yunohost-jails.conf"
|
||||||
}
|
}
|
||||||
|
|
||||||
do_post_regen() {
|
do_post_regen() {
|
||||||
regen_conf_files=$1
|
regen_conf_files=$1
|
||||||
|
|
||||||
[[ -z "$regen_conf_files" ]] \
|
[[ -z "$regen_conf_files" ]] \
|
||||||
|| service fail2ban restart
|
|| systemctl reload fail2ban
|
||||||
}
|
}
|
||||||
|
|
||||||
FORCE=${2:-0}
|
FORCE=${2:-0}
|
||||||
|
|
|
@ -43,7 +43,7 @@ class PortsDiagnoser(Diagnoser):
|
||||||
for ipversion in ipversions:
|
for ipversion in ipversions:
|
||||||
try:
|
try:
|
||||||
r = Diagnoser.remote_diagnosis(
|
r = Diagnoser.remote_diagnosis(
|
||||||
"check-ports", data={"ports": ports.keys()}, ipversion=ipversion
|
"check-ports", data={"ports": list(ports)}, ipversion=ipversion
|
||||||
)
|
)
|
||||||
results[ipversion] = r["ports"]
|
results[ipversion] = r["ports"]
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
|
@ -77,7 +77,9 @@ class SystemResourcesDiagnoser(Diagnoser):
|
||||||
|
|
||||||
# Ignore /dev/loop stuff which are ~virtual partitions ? (e.g. mounted to /snap/)
|
# Ignore /dev/loop stuff which are ~virtual partitions ? (e.g. mounted to /snap/)
|
||||||
disk_partitions = [
|
disk_partitions = [
|
||||||
d for d in disk_partitions if not d.device.startswith("/dev/loop")
|
d
|
||||||
|
for d in disk_partitions
|
||||||
|
if d.mountpoint in ["/", "/var"] or not d.device.startswith("/dev/loop")
|
||||||
]
|
]
|
||||||
|
|
||||||
for disk_partition in disk_partitions:
|
for disk_partition in disk_partitions:
|
||||||
|
@ -139,7 +141,7 @@ class SystemResourcesDiagnoser(Diagnoser):
|
||||||
status="ERROR",
|
status="ERROR",
|
||||||
summary="diagnosis_rootfstotalspace_critical",
|
summary="diagnosis_rootfstotalspace_critical",
|
||||||
)
|
)
|
||||||
if main_space < 14 * GB:
|
elif main_space < 14 * GB:
|
||||||
yield dict(
|
yield dict(
|
||||||
meta={"test": "rootfstotalspace"},
|
meta={"test": "rootfstotalspace"},
|
||||||
data={"space": human_size(main_space)},
|
data={"space": human_size(main_space)},
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
import re
|
||||||
|
|
||||||
|
from yunohost.settings import settings_get
|
||||||
from yunohost.diagnosis import Diagnoser
|
from yunohost.diagnosis import Diagnoser
|
||||||
from yunohost.regenconf import _get_regenconf_infos, _calculate_hash
|
from yunohost.regenconf import _get_regenconf_infos, _calculate_hash
|
||||||
|
from moulinette.utils.filesystem import read_file
|
||||||
|
|
||||||
|
|
||||||
class RegenconfDiagnoser(Diagnoser):
|
class RegenconfDiagnoser(Diagnoser):
|
||||||
|
@ -35,6 +38,32 @@ class RegenconfDiagnoser(Diagnoser):
|
||||||
details=["diagnosis_regenconf_manually_modified_details"],
|
details=["diagnosis_regenconf_manually_modified_details"],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if (
|
||||||
|
any(f["path"] == "/etc/ssh/sshd_config" for f in regenconf_modified_files)
|
||||||
|
and os.system(
|
||||||
|
"grep -q '^ *AllowGroups\\|^ *AllowUsers' /etc/ssh/sshd_config"
|
||||||
|
)
|
||||||
|
!= 0
|
||||||
|
):
|
||||||
|
yield dict(
|
||||||
|
meta={"test": "sshd_config_insecure"},
|
||||||
|
status="ERROR",
|
||||||
|
summary="diagnosis_sshd_config_insecure",
|
||||||
|
)
|
||||||
|
|
||||||
|
# Check consistency between actual ssh port in sshd_config vs. setting
|
||||||
|
ssh_port_setting = settings_get("security.ssh.port")
|
||||||
|
ssh_port_line = re.findall(
|
||||||
|
r"\bPort *([0-9]{2,5})\b", read_file("/etc/ssh/sshd_config")
|
||||||
|
)
|
||||||
|
if len(ssh_port_line) == 1 and int(ssh_port_line[0]) != ssh_port_setting:
|
||||||
|
yield dict(
|
||||||
|
meta={"test": "sshd_config_port_inconsistency"},
|
||||||
|
status="WARNING",
|
||||||
|
summary="diagnosis_sshd_config_inconsistent",
|
||||||
|
details=["diagnosis_sshd_config_inconsistent_details"],
|
||||||
|
)
|
||||||
|
|
||||||
def manually_modified_files(self):
|
def manually_modified_files(self):
|
||||||
|
|
||||||
for category, infos in _get_regenconf_infos().items():
|
for category, infos in _get_regenconf_infos().items():
|
||||||
|
|
|
@ -1,15 +1,8 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
backup_dir="${1}/conf/ldap"
|
backup_dir="${1}/conf/ldap"
|
||||||
|
|
||||||
if [[ $EUID -ne 0 ]]; then
|
systemctl stop slapd
|
||||||
|
|
||||||
# We need to execute this script as root, since the ldap
|
|
||||||
# service will be shut down during the operation (and sudo
|
|
||||||
# won't be available)
|
|
||||||
/bin/bash $(readlink -f $0) $1
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
service slapd stop || true
|
|
||||||
|
|
||||||
# Create a directory for backup
|
# Create a directory for backup
|
||||||
TMPDIR="/tmp/$(date +%s)"
|
TMPDIR="/tmp/$(date +%s)"
|
||||||
|
@ -28,7 +21,7 @@ else
|
||||||
mv "${TMPDIR}/ldap" /var/lib/ldap)
|
mv "${TMPDIR}/ldap" /var/lib/ldap)
|
||||||
chown -R openldap: /etc/ldap/slapd.d /var/lib/ldap
|
chown -R openldap: /etc/ldap/slapd.d /var/lib/ldap
|
||||||
|
|
||||||
service slapd start
|
systemctl start slapd
|
||||||
rm -rf "$TMPDIR"
|
rm -rf "$TMPDIR"
|
||||||
|
|
||||||
# Print an error message and exit
|
# Print an error message and exit
|
||||||
|
@ -40,9 +33,9 @@ else
|
||||||
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
|
||||||
cp -a "${backup_dir}/slapd.conf" /etc/ldap/slapd.conf
|
[ ! -e "${backup_dir}/slapd.conf" ] \
|
||||||
|
|| cp -a "${backup_dir}/slapd.conf" /etc/ldap/slapd.conf
|
||||||
slapadd -F /etc/ldap/slapd.d -b cn=config \
|
slapadd -F /etc/ldap/slapd.d -b cn=config \
|
||||||
-l "${backup_dir}/cn=config.master.ldif" \
|
-l "${backup_dir}/cn=config.master.ldif" \
|
||||||
|| die 1 "Unable to restore LDAP configuration"
|
|| die 1 "Unable to restore LDAP configuration"
|
||||||
|
@ -56,6 +49,5 @@ else
|
||||||
|| die 2 "Unable to restore LDAP database"
|
|| die 2 "Unable to restore LDAP database"
|
||||||
chown -R openldap: /var/lib/ldap
|
chown -R openldap: /var/lib/ldap
|
||||||
|
|
||||||
service slapd start
|
systemctl start slapd
|
||||||
rm -rf "$TMPDIR"
|
rm -rf "$TMPDIR"
|
||||||
fi
|
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
backup_dir="$1/conf/ssh"
|
|
||||||
|
|
||||||
if [ -d /etc/ssh/ ]; then
|
|
||||||
cp -a $backup_dir/. /etc/ssh
|
|
||||||
service ssh restart
|
|
||||||
else
|
|
||||||
echo "SSH is not installed"
|
|
||||||
fi
|
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
backup_dir="$1/conf/ssowat"
|
|
||||||
|
|
||||||
cp -a $backup_dir/. /etc/ssowat
|
|
|
@ -1,4 +0,0 @@
|
||||||
backup_dir="$1/conf/ynh/firewall"
|
|
||||||
|
|
||||||
cp -a $backup_dir/. /etc/yunohost
|
|
||||||
yunohost firewall reload
|
|
7
data/hooks/restore/20-conf_ynh_settings
Normal file
7
data/hooks/restore/20-conf_ynh_settings
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
backup_dir="$1/conf/ynh"
|
||||||
|
|
||||||
|
cp -a "${backup_dir}/current_host" /etc/yunohost/current_host
|
||||||
|
cp -a "${backup_dir}/firewall.yml" /etc/yunohost/firewall.yml
|
||||||
|
[ ! -e "${backup_dir}/settings.json" ] || cp -a "${backup_dir}/settings.json" "/etc/yunohost/settings.json"
|
||||||
|
[ ! -d "${backup_dir}/dyndns" ] || cp -raT "${backup_dir}/dyndns" "/etc/yunohost/dyndns"
|
||||||
|
[ ! -d "${backup_dir}/dkim" ] || cp -raT "${backup_dir}/dkim" "/etc/dkim"
|
|
@ -3,5 +3,3 @@ backup_dir="$1/conf/ynh/certs"
|
||||||
mkdir -p /etc/yunohost/certs/
|
mkdir -p /etc/yunohost/certs/
|
||||||
|
|
||||||
cp -a $backup_dir/. /etc/yunohost/certs/
|
cp -a $backup_dir/. /etc/yunohost/certs/
|
||||||
service nginx reload
|
|
||||||
service metronome reload
|
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
backup_dir="$1/conf/dkim"
|
|
||||||
|
|
||||||
cp -a $backup_dir/etc/dkim/. /etc/dkim
|
|
||||||
|
|
||||||
chown -R root:root /etc/dkim
|
|
||||||
chown _rspamd:root /etc/dkim
|
|
||||||
chown _rspamd:root /etc/dkim/*.mail.key
|
|
|
@ -2,7 +2,3 @@ backup_dir="$1/data/mail"
|
||||||
|
|
||||||
cp -a $backup_dir/. /var/mail/ || echo 'No mail found'
|
cp -a $backup_dir/. /var/mail/ || echo 'No mail found'
|
||||||
chown -R vmail:mail /var/mail/
|
chown -R vmail:mail /var/mail/
|
||||||
|
|
||||||
# Restart services to use migrated certs
|
|
||||||
service postfix restart
|
|
||||||
service dovecot restart
|
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
backup_dir="$1/conf/xmpp"
|
|
||||||
|
|
||||||
cp -a $backup_dir/etc/. /etc/metronome
|
|
||||||
cp -a $backup_dir/var/. /var/lib/metronome
|
|
||||||
|
|
||||||
# Restart to apply new conf and certs
|
|
||||||
service metronome restart
|
|
4
data/hooks/restore/27-data_xmpp
Normal file
4
data/hooks/restore/27-data_xmpp
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
backup_dir="$1/data/xmpp"
|
||||||
|
|
||||||
|
cp -a $backup_dir/var_lib_metronome/. /var/lib/metronome
|
||||||
|
cp -a $backup_dir/var_xmpp-upload/. /var/xmpp-upload
|
|
@ -1,7 +0,0 @@
|
||||||
backup_dir="$1/conf/nginx"
|
|
||||||
|
|
||||||
# Copy all conf except apps specific conf located in DOMAIN.d
|
|
||||||
find $backup_dir/ -mindepth 1 -maxdepth 1 -name '*.d' -or -exec cp -a {} /etc/nginx/conf.d/ \;
|
|
||||||
|
|
||||||
# Restart to use new conf and certs
|
|
||||||
service nginx restart
|
|
|
@ -1,6 +0,0 @@
|
||||||
backup_dir="$1/conf/cron"
|
|
||||||
|
|
||||||
cp -a $backup_dir/. /etc/cron.d
|
|
||||||
|
|
||||||
# Restart just in case
|
|
||||||
service cron restart
|
|
|
@ -1,3 +0,0 @@
|
||||||
backup_dir="$1/conf/ynh"
|
|
||||||
|
|
||||||
cp -a "${backup_dir}/current_host" /etc/yunohost/current_host
|
|
|
@ -1,9 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
source /usr/share/yunohost/helpers
|
|
||||||
ynh_abort_if_errors
|
|
||||||
YNH_CWD="${YNH_BACKUP_DIR%/}/conf/ynh/dyndns"
|
|
||||||
cd "$YNH_CWD"
|
|
||||||
|
|
||||||
# Restore file if exists
|
|
||||||
ynh_restore_file --origin_path="/etc/yunohost/dyndns" --not_mandatory
|
|
13
data/hooks/restore/50-conf_manually_modified_files
Normal file
13
data/hooks/restore/50-conf_manually_modified_files
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
source /usr/share/yunohost/helpers
|
||||||
|
ynh_abort_if_errors
|
||||||
|
YNH_CWD="${YNH_BACKUP_DIR%/}/conf/manually_modified_files"
|
||||||
|
cd "$YNH_CWD"
|
||||||
|
|
||||||
|
for file in $(cat ./manually_modified_files_list)
|
||||||
|
do
|
||||||
|
ynh_restore_file --origin_path="$file" --not_mandatory
|
||||||
|
done
|
||||||
|
|
||||||
|
ynh_restore_file --origin_path="/etc/ssowat/conf.json.persistent" --not_mandatory
|
|
@ -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,91 +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"
|
|
|
@ -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
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
[sshd]
|
[sshd]
|
||||||
|
port = {{ssh_port}}
|
||||||
enabled = true
|
enabled = true
|
||||||
|
|
||||||
[nginx-http-auth]
|
[nginx-http-auth]
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -6,6 +6,6 @@ location /yunohost/admin/ {
|
||||||
default_type text/html;
|
default_type text/html;
|
||||||
index index.html;
|
index index.html;
|
||||||
|
|
||||||
more_set_headers "Content-Security-Policy: upgrade-insecure-requests; default-src 'self'; connect-src 'self' https://raw.githubusercontent.com https://paste.yunohost.org wss://$host; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-eval'; object-src 'none';";
|
more_set_headers "Content-Security-Policy: upgrade-insecure-requests; default-src 'self'; connect-src 'self' https://paste.yunohost.org wss://$host; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-eval'; object-src 'none'; img-src 'self' data:;";
|
||||||
more_set_headers "Content-Security-Policy-Report-Only:";
|
more_set_headers "Content-Security-Policy-Report-Only:";
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,9 @@ more_set_headers "X-Download-Options : noopen";
|
||||||
more_set_headers "X-Permitted-Cross-Domain-Policies : none";
|
more_set_headers "X-Permitted-Cross-Domain-Policies : none";
|
||||||
more_set_headers "X-Frame-Options : SAMEORIGIN";
|
more_set_headers "X-Frame-Options : SAMEORIGIN";
|
||||||
|
|
||||||
|
# Disable the disaster privacy thing that is FLoC
|
||||||
|
more_set_headers "Permissions-Policy : interest-cohort=()";
|
||||||
|
|
||||||
# Disable gzip to protect against BREACH
|
# Disable gzip to protect against BREACH
|
||||||
# Read https://trac.nginx.org/nginx/ticket/1720 (text/html cannot be disabled!)
|
# Read https://trac.nginx.org/nginx/ticket/1720 (text/html cannot be disabled!)
|
||||||
gzip off;
|
gzip off;
|
||||||
|
|
|
@ -54,7 +54,12 @@ smtpd_tls_loglevel=1
|
||||||
|
|
||||||
# -- TLS for outgoing connections
|
# -- TLS for outgoing connections
|
||||||
# Use TLS if this is supported by the remote SMTP server, otherwise use plaintext.
|
# Use TLS if this is supported by the remote SMTP server, otherwise use plaintext.
|
||||||
|
{% if relay_port == "465" %}
|
||||||
|
smtp_tls_wrappermode = yes
|
||||||
|
smtp_tls_security_level = encrypt
|
||||||
|
{% else %}
|
||||||
smtp_tls_security_level = may
|
smtp_tls_security_level = may
|
||||||
|
{% endif %}
|
||||||
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
|
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
|
||||||
smtp_tls_exclude_ciphers = aNULL, MD5, DES, ADH, RC4, 3DES
|
smtp_tls_exclude_ciphers = aNULL, MD5, DES, ADH, RC4, 3DES
|
||||||
smtp_tls_mandatory_ciphers= high
|
smtp_tls_mandatory_ciphers= high
|
||||||
|
@ -84,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 ) )
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# by YunoHost
|
# by YunoHost
|
||||||
|
|
||||||
Protocol 2
|
Protocol 2
|
||||||
Port 22
|
Port {{ port }}
|
||||||
|
|
||||||
{% if ipv6_enabled == "true" %}ListenAddress ::{% endif %}
|
{% if ipv6_enabled == "true" %}ListenAddress ::{% endif %}
|
||||||
ListenAddress 0.0.0.0
|
ListenAddress 0.0.0.0
|
||||||
|
@ -64,21 +64,40 @@ PrintLastLog yes
|
||||||
ClientAliveInterval 60
|
ClientAliveInterval 60
|
||||||
AcceptEnv LANG LC_*
|
AcceptEnv LANG LC_*
|
||||||
|
|
||||||
|
# Disallow user without ssh or sftp permissions
|
||||||
|
AllowGroups ssh.main sftp.main ssh.app sftp.app admins root
|
||||||
|
|
||||||
|
# Allow users to create tunnels or forwarding
|
||||||
|
AllowTcpForwarding yes
|
||||||
|
AllowStreamLocalForwarding yes
|
||||||
|
PermitTunnel yes
|
||||||
|
PermitUserRC yes
|
||||||
|
|
||||||
# SFTP stuff
|
# SFTP stuff
|
||||||
Subsystem sftp internal-sftp
|
Subsystem sftp internal-sftp
|
||||||
|
|
||||||
# Forbid users from using their account SSH as a VPN (even if SSH login is disabled)
|
# Apply following instructions to user with sftp perm only
|
||||||
|
Match Group sftp.main,!ssh.main
|
||||||
|
ForceCommand internal-sftp
|
||||||
|
# We can't restrict to /home/%u because the chroot base must be owned by root
|
||||||
|
# So we chroot only on /home
|
||||||
|
# See https://serverfault.com/questions/584986/bad-ownership-or-modes-for-chroot-directory-component
|
||||||
|
ChrootDirectory /home
|
||||||
|
# Forbid SFTP users from using their account SSH as a VPN (even if SSH login is disabled)
|
||||||
AllowTcpForwarding no
|
AllowTcpForwarding no
|
||||||
AllowStreamLocalForwarding no
|
AllowStreamLocalForwarding no
|
||||||
|
PermitTunnel no
|
||||||
# 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 User admin,root
|
Match Group sftp.app,!ssh.app
|
||||||
AllowTcpForwarding yes
|
ForceCommand internal-sftp
|
||||||
AllowStreamLocalForwarding yes
|
ChrootDirectory %h
|
||||||
PermitUserRC yes
|
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
|
||||||
|
|
185
debian/changelog
vendored
185
debian/changelog
vendored
|
@ -1,8 +1,187 @@
|
||||||
yunohost (4.2) unstable; urgency=low
|
yunohost (4.2.6) stable; urgency=low
|
||||||
|
|
||||||
- Placeholder for 4.2 to satisfy CI / debian build during dev
|
- [fix] metronome/xmpp: deactivate stanza mention optimization / have quick notification in chat group ([#1164](https://github.com/YunoHost/yunohost/pull/1164))
|
||||||
|
- [enh] metronome/xmpp: activate module pubsub ([#1170](https://github.com/YunoHost/yunohost/pull/1170))
|
||||||
|
- [fix] upgrade: undefined 'apps' variable (923f703e)
|
||||||
|
- [fix] python3: fix string split in postgresql migration (14d4cec8)
|
||||||
|
- [fix] python3: python2 was still used in helpers (bd196c87)
|
||||||
|
- [fix] security: fail2ban rule for yunohost-api login (b837d3da)
|
||||||
|
- [fix] backup: Apply realpath to find mounted points to unmount ([#1239](https://github.com/YunoHost/yunohost/pull/1239))
|
||||||
|
- [mod] dnsmasq: Remove LDN from resolver list (a97fce05)
|
||||||
|
- [fix] logs: redact borg's passphrase (dbe5e51e, c8d4bbf8)
|
||||||
|
- [i18n] Translations updated for Galician, German, Italian
|
||||||
|
- Misc fixes/enh for tests and CI (8a5213c8, e5a03cab, [#1249](https://github.com/YunoHost/yunohost/pull/1249), [#1251](https://github.com/YunoHost/yunohost/pull/1251))
|
||||||
|
|
||||||
-- Alexandre Aubin <alex.aubin@mailoo.org> Wed, 20 Jan 2021 05:19:58 +0100
|
Thanks to all contributors <3 ! (Christian Wehrli, Flavio Cristoforetti, Gabriel, José M, Kay0u, ljf, tofbouf, yalh76)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Fri, 11 Jun 2021 20:12:20 +0200
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
- Fix a stupid issue where an app's tmp work dir would be deleted during upgrade because of the backup process (50af0393)
|
||||||
|
- cli ux: Don't suggest that we can remove multiple apps (4ae72cc3)
|
||||||
|
- ynh_port_available: also check ports used by other apps in settings.yml (381f789f)
|
||||||
|
- ssh: Add ssh.app, sftp.app groups to cover my_webapp and borg needing ssh access ([#1216](https://github.com/yunohost/yunohost/pull/1216))
|
||||||
|
- i18n: Translations updated for German
|
||||||
|
|
||||||
|
Thanks to all contributors <3 ! (Bram, Christian W.)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Mon, 26 Apr 2021 16:29:17 +0200
|
||||||
|
|
||||||
|
yunohost (4.2.2) testing; urgency=low
|
||||||
|
|
||||||
|
- permissions: Add SFTP / SSH permissions ([#606](https://github.com/yunohost/yunohost/pull/606))
|
||||||
|
- refactoring: Uniformize API routes ([#1192](https://github.com/yunohost/yunohost/pull/1192))
|
||||||
|
- settings: New setting to disable the 'YunoHost' panel overlay in apps ([#1071](https://github.com/yunohost/yunohost/pull/1071), 08fbfa2e)
|
||||||
|
- settings: New setting for custom ssh port ([#1209](https://github.com/yunohost/yunohost/pull/1209), 37c0825e, 95999fea)
|
||||||
|
- security: Redact 'passphrase' settings from logs ([#1206](https://github.com/yunohost/yunohost/pull/1206))
|
||||||
|
- security: Sane default permissions for files added using ynh_add_config and ynh_setup_source ([#1188](https://github.com/yunohost/yunohost/pull/1188))
|
||||||
|
- backup: Support having .tar / .tar.gz in the archive name arg of backup_info/restore (00ec7b2f)
|
||||||
|
- backup: Don't backup crons + manage crons from the regenconf ([#1184](https://github.com/yunohost/yunohost/pull/1184))
|
||||||
|
- backup: Drop support for archive restore from prior 3.8 ([#1203](https://github.com/yunohost/yunohost/pull/1203))
|
||||||
|
- backup: Introduce hooks during restore to apply migrations between archive version and current version ([#1203](https://github.com/yunohost/yunohost/pull/1203))
|
||||||
|
- backup: Create a proper operation log for backup_create (fe9f0731)
|
||||||
|
- backup: Improve error management for app restore ([#1191](https://github.com/yunohost/yunohost/pull/1191))
|
||||||
|
- backup: Rework content of system backups ([#1185](https://github.com/yunohost/yunohost/pull/1185))
|
||||||
|
- backup: Add a --dry-run option to backup_create to fetch an estimate of the backup size ([#1205](https://github.com/yunohost/yunohost/pull/1205))
|
||||||
|
- helpers: Add --keep option to ynh_setup_source to keep files that may be overwritten during upgrade ([#1200](https://github.com/yunohost/yunohost/pull/1200))
|
||||||
|
- helpers: Bump 'n' to version 7.1.0 ([#1197](https://github.com/yunohost/yunohost/pull/1197))
|
||||||
|
- mail: Support SMTPS Relay ([#1159](https://github.com/yunohost/yunohost/pull/1159))
|
||||||
|
- nginx: add header to disallow FLoC ([#1211](https://github.com/yunohost/yunohost/pull/1211))
|
||||||
|
- app: Add route to fetch app manifest for custom app installs in a forge-agnostic way ([#1213](https://github.com/yunohost/yunohost/pull/1213))
|
||||||
|
- perf: add optional 'apps' argument to user_permission_list to speed up user_info / user_list (e6312db3)
|
||||||
|
- ux: Add '--human-readable' to recommended command to display diagnosis issues in cli ([#1207](https://github.com/yunohost/yunohost/pull/1207))
|
||||||
|
- Misc enh/fixes, code quality (42f8c9dc, 86f22d1b, 1468073f, b33e7c16, d1f0064b, c3754dd6, 02a30125, aabe5f19, ce9f6b3d, d7786662, f9419c96, c92e495b, 0616d632, 92eb9704, [#1190](https://github.com/yunohost/yunohost/pull/1190), [#1201](https://github.com/yunohost/yunohost/pull/1201), [#1210](https://github.com/yunohost/yunohost/pull/1210), [#1214](https://github.com/yunohost/yunohost/pull/1214), [#1215](https://github.com/yunohost/yunohost/pull/1215))
|
||||||
|
- i18n: Translations updated for French, German
|
||||||
|
|
||||||
|
Thanks to all contributors <3 ! (axolotle, Bram, cyxae, Daniel, Éric G., grenagit, Josué, Kay0u, lapineige, ljf, Scapharnaum)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Sat, 17 Apr 2021 03:45:49 +0200
|
||||||
|
|
||||||
|
yunohost (4.2.1.1) testing; urgency=low
|
||||||
|
|
||||||
|
- [fix] services.py, python3: missing decode() in subprocess output fetch (357c151c)
|
||||||
|
- [fix] log.py: don't inject log_ref if the operation didnt start yet (f878d61f)
|
||||||
|
- [fix] dyndns.py: Missing raw_msg=True (008e9f1d)
|
||||||
|
- [fix] firewall.py: Don't miserably crash when there are port ranges (6fd5f7e8)
|
||||||
|
- [fix] nginx conf: CSP rules for admin was blocking small images used for checkboxes, radio, pacman in the new webadmin (575fab8a)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Sun, 11 Apr 2021 20:15:11 +0200
|
||||||
|
|
||||||
|
yunohost (4.2.1) testing; urgency=low
|
||||||
|
|
||||||
|
- security: Various permissions tweaks to protect from malicious yunohost users (aefc100a, fc26837a)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Sat, 10 Apr 2021 01:08:04 +0200
|
||||||
|
|
||||||
|
yunohost (4.2.0) testing; urgency=low
|
||||||
|
|
||||||
|
- [mod] Python2 -> Python3 ([#1116](https://github.com/yunohost/yunohost/pull/1116), a97a9df3, 1387dff4, b53859db, f5ab4443, f9478b93, dc6033c3)
|
||||||
|
- [mod] refactoring: Drop legacy-way of passing arguments in hook_exec, prevent exposing secrets in command line args ([#1096](https://github.com/yunohost/yunohost/pull/1096))
|
||||||
|
- [mod] refactoring: use regen_conf instead of service_regen_conf in settings.py (9c11fd58)
|
||||||
|
- [mod] refactoring: More consistent local CA management for simpler postinstall ([#1062](https://github.com/yunohost/yunohost/pull/1062))
|
||||||
|
- [mod] refactoring: init folders during .deb install instead of regen conf ([#1063](https://github.com/yunohost/yunohost/pull/1063))
|
||||||
|
- [mod] refactoring: init ldap before the postinstall ([#1064](https://github.com/yunohost/yunohost/pull/1064))
|
||||||
|
- [mod] refactoring: simpler and more consistent logging initialization ([#1119](https://github.com/yunohost/yunohost/pull/1119), 0884a0c1)
|
||||||
|
- [mod] code-quality: add CI job to auto-format code, fix linter errors ([#1142](https://github.com/yunohost/yunohost/pull/1142), [#1161](https://github.com/yunohost/yunohost/pull/1161), 97f26015, [#1162](https://github.com/yunohost/yunohost/pull/1162))
|
||||||
|
- [mod] misc: Prevent the installation of apache2 ... ([#1148](https://github.com/yunohost/yunohost/pull/1148))
|
||||||
|
- [mod] misc: Drop old cache rules for .ms files, not relevant anymore ([#1150](https://github.com/yunohost/yunohost/pull/1150))
|
||||||
|
- [fix] misc: Abort postinstall if /etc/yunohost/apps ain't empty ([#1147](https://github.com/yunohost/yunohost/pull/1147))
|
||||||
|
- [mod] misc: No need for mysql root password anymore ([#912](https://github.com/YunoHost/yunohost/pull/912))
|
||||||
|
- [fix] app operations: wait for services to finish reloading (4a19a60b)
|
||||||
|
- [enh] ux: Improve error semantic such that the webadmin can autoredirect to the proper log view ([#1077](https://github.com/yunohost/yunohost/pull/1077), [#1187](https://github.com/YunoHost/yunohost/pull/1187))
|
||||||
|
- [mod] cli/api: Misc command and routes renaming / aliasing ([#1146](https://github.com/yunohost/yunohost/pull/1146))
|
||||||
|
- [enh] cli: Add a new "yunohost app search" command ([#1070](https://github.com/yunohost/yunohost/pull/1070))
|
||||||
|
- [enh] cli: Add '--remove-apps' (and '--force') options to "yunohost domain remove" ([#1125](https://github.com/yunohost/yunohost/pull/1125))
|
||||||
|
- [enh] diagnosis: Report low total space for rootfs ([#1145](https://github.com/yunohost/yunohost/pull/1145))
|
||||||
|
- [fix] upnp: Handle port closing ([#1154](https://github.com/yunohost/yunohost/pull/1154))
|
||||||
|
- [fix] dyndns: clean old madness, improve update strategy, improve cron management, delete dyndns key upon domain removal ([#1149](https://github.com/yunohost/yunohost/pull/1149))
|
||||||
|
- [enh] helpers: Adding composer helper ([#1090](https://github.com/yunohost/yunohost/pull/1090))
|
||||||
|
- [enh] helpers: Upgrade n to v7.0.2 ([#1178](https://github.com/yunohost/yunohost/pull/1178))
|
||||||
|
- [enh] helpers: Add multimedia helpers and hooks ([#1129](https://github.com/yunohost/yunohost/pull/1129), 47420c62)
|
||||||
|
- [enh] helpers: Normalize conf template handling for nginx, php-fpm, systemd and fail2ban using ynh_add_config ([#1118](https://github.com/yunohost/yunohost/pull/1118))
|
||||||
|
- [fix] helpers, doc: Update template for the new doc (grav) ([#1167](https://github.com/yunohost/yunohost/pull/1167), [#1168](https://github.com/yunohost/yunohost/pull/1168), 59d3e387)
|
||||||
|
- [enh] helpers: Define YNH_APP_BASEDIR to be able to properly point to conf folder depending on the app script we're running ([#1172](https://github.com/yunohost/yunohost/pull/1172))
|
||||||
|
- [enh] helpers: Use jq / output-as json to get info from yunohost commands instead of scraping with grep ([#1160](https://github.com/yunohost/yunohost/pull/1160))
|
||||||
|
- [fix] helpers: Misc fixes/enh (b85d959d, db93b82b, ce04570b, 07f8d6d7)
|
||||||
|
- [fix] helpers: download ynh_setup_source stuff in /var/cache/yunohost to prevent situations where it ends up in /etc/yunohost/apps/ (d98ec6ce)
|
||||||
|
- [i18n] Translations updated for Catalan, Chinese (Simplified), Czech, Dutch, French, German, Italian, Occitan, Polish
|
||||||
|
|
||||||
|
Thanks to all contributors <3 ! (Bram, Christian W., Daniel, Dave, Éric G., Félix P., Flavio C., Kay0u, Krzysztof N., ljf, Mathieu M., Miloš K., MrMorals, Nils V.Z., penguin321, ppr, Quentí, Radek S, Scapharnaum, Sébastien M., xaloc33, yalh76, Yifei D.)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Thu, 25 Mar 2021 01:00:00 +0100
|
||||||
|
|
||||||
|
yunohost (4.1.7.4) stable; urgency=low
|
||||||
|
|
||||||
|
- [fix] sec: Enforce permissions for /home/yunohost.backup and .conf (41b5a123)
|
||||||
|
|
||||||
|
-- Alexandre Aubin <alex.aubin@mailoo.org> Thu, 11 Mar 2021 03:08:10 +0100
|
||||||
|
|
||||||
yunohost (4.1.7.3) stable; urgency=low
|
yunohost (4.1.7.3) stable; urgency=low
|
||||||
|
|
||||||
|
|
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 %}\
|
||||||
|
|
|
@ -20,7 +20,6 @@
|
||||||
"app_upgrade_failed": "تعذرت عملية ترقية {app:s}",
|
"app_upgrade_failed": "تعذرت عملية ترقية {app:s}",
|
||||||
"app_upgrade_some_app_failed": "تعذرت عملية ترقية بعض التطبيقات",
|
"app_upgrade_some_app_failed": "تعذرت عملية ترقية بعض التطبيقات",
|
||||||
"app_upgraded": "تم تحديث التطبيق {app:s}",
|
"app_upgraded": "تم تحديث التطبيق {app:s}",
|
||||||
"ask_email": "عنوان البريد الإلكتروني",
|
|
||||||
"ask_firstname": "الإسم",
|
"ask_firstname": "الإسم",
|
||||||
"ask_lastname": "اللقب",
|
"ask_lastname": "اللقب",
|
||||||
"ask_main_domain": "النطاق الرئيسي",
|
"ask_main_domain": "النطاق الرئيسي",
|
||||||
|
@ -29,7 +28,6 @@
|
||||||
"backup_applying_method_copy": "جارٍ نسخ كافة الملفات إلى النسخة الإحتياطية …",
|
"backup_applying_method_copy": "جارٍ نسخ كافة الملفات إلى النسخة الإحتياطية …",
|
||||||
"backup_applying_method_tar": "جارٍ إنشاء ملف TAR للنسخة الاحتياطية…",
|
"backup_applying_method_tar": "جارٍ إنشاء ملف TAR للنسخة الاحتياطية…",
|
||||||
"backup_created": "تم إنشاء النسخة الإحتياطية",
|
"backup_created": "تم إنشاء النسخة الإحتياطية",
|
||||||
"backup_invalid_archive": "نسخة إحتياطية غير صالحة",
|
|
||||||
"backup_method_copy_finished": "إنتهت عملية النسخ الإحتياطي",
|
"backup_method_copy_finished": "إنتهت عملية النسخ الإحتياطي",
|
||||||
"backup_nothings_done": "ليس هناك أي شيء للحفظ",
|
"backup_nothings_done": "ليس هناك أي شيء للحفظ",
|
||||||
"backup_output_directory_required": "يتوجب عليك تحديد مجلد لتلقي النسخ الإحتياطية",
|
"backup_output_directory_required": "يتوجب عليك تحديد مجلد لتلقي النسخ الإحتياطية",
|
||||||
|
@ -37,7 +35,6 @@
|
||||||
"certmanager_cert_install_success_selfsigned": "نجحت عملية تثبيت الشهادة الموقعة ذاتيا الخاصة بالنطاق {domain:s}",
|
"certmanager_cert_install_success_selfsigned": "نجحت عملية تثبيت الشهادة الموقعة ذاتيا الخاصة بالنطاق {domain:s}",
|
||||||
"certmanager_cert_renew_success": "نجحت عملية تجديد شهادة Let's Encrypt الخاصة باسم النطاق {domain:s} !",
|
"certmanager_cert_renew_success": "نجحت عملية تجديد شهادة Let's Encrypt الخاصة باسم النطاق {domain:s} !",
|
||||||
"certmanager_cert_signing_failed": "فشل إجراء توقيع الشهادة الجديدة",
|
"certmanager_cert_signing_failed": "فشل إجراء توقيع الشهادة الجديدة",
|
||||||
"certmanager_domain_unknown": "النطاق مجهول {domain:s}",
|
|
||||||
"certmanager_no_cert_file": "تعذرت عملية قراءة شهادة نطاق {domain:s} (الملف : {file:s})",
|
"certmanager_no_cert_file": "تعذرت عملية قراءة شهادة نطاق {domain:s} (الملف : {file:s})",
|
||||||
"domain_created": "تم إنشاء النطاق",
|
"domain_created": "تم إنشاء النطاق",
|
||||||
"domain_creation_failed": "تعذرت عملية إنشاء النطاق",
|
"domain_creation_failed": "تعذرت عملية إنشاء النطاق",
|
||||||
|
@ -54,10 +51,6 @@
|
||||||
"installation_complete": "إكتملت عملية التنصيب",
|
"installation_complete": "إكتملت عملية التنصيب",
|
||||||
"main_domain_change_failed": "تعذّر تغيير النطاق الأساسي",
|
"main_domain_change_failed": "تعذّر تغيير النطاق الأساسي",
|
||||||
"main_domain_changed": "تم تغيير النطاق الأساسي",
|
"main_domain_changed": "تم تغيير النطاق الأساسي",
|
||||||
"migrate_tsig_wait": "لننتظر الآن ثلاثة دقائق ريثما يأخذ خادم أسماء النطاقات الديناميكية بعين الاعتبار المفتاح الجديد…",
|
|
||||||
"migrate_tsig_wait_2": "دقيقتين …",
|
|
||||||
"migrate_tsig_wait_3": "دقيقة واحدة …",
|
|
||||||
"migrate_tsig_wait_4": "30 ثانية …",
|
|
||||||
"migrations_skip_migration": "جارٍ تجاهل التهجير {id}…",
|
"migrations_skip_migration": "جارٍ تجاهل التهجير {id}…",
|
||||||
"pattern_domain": "يتوجب أن يكون إسم نطاق صالح (مثل my-domain.org)",
|
"pattern_domain": "يتوجب أن يكون إسم نطاق صالح (مثل my-domain.org)",
|
||||||
"pattern_email": "يتوجب أن يكون عنوان بريد إلكتروني صالح (مثل someone@domain.org)",
|
"pattern_email": "يتوجب أن يكون عنوان بريد إلكتروني صالح (مثل someone@domain.org)",
|
||||||
|
@ -87,24 +80,14 @@
|
||||||
"user_unknown": "المستخدم {user:s} مجهول",
|
"user_unknown": "المستخدم {user:s} مجهول",
|
||||||
"user_update_failed": "لا يمكن تحديث المستخدم",
|
"user_update_failed": "لا يمكن تحديث المستخدم",
|
||||||
"user_updated": "تم تحديث المستخدم",
|
"user_updated": "تم تحديث المستخدم",
|
||||||
"yunohost_ca_creation_failed": "تعذرت عملية إنشاء هيئة الشهادات",
|
|
||||||
"yunohost_ca_creation_success": "تم إنشاء هيئة الشهادات المحلية.",
|
|
||||||
"yunohost_installing": "عملية تنصيب يونوهوست جارية …",
|
"yunohost_installing": "عملية تنصيب يونوهوست جارية …",
|
||||||
"yunohost_not_installed": "إنَّ واي يونوهوست ليس مُنَصَّب أو هو مثبت حاليا بشكل خاطئ. قم بتنفيذ الأمر 'yunohost tools postinstall'",
|
"yunohost_not_installed": "إنَّ واي يونوهوست ليس مُنَصَّب أو هو مثبت حاليا بشكل خاطئ. قم بتنفيذ الأمر 'yunohost tools postinstall'",
|
||||||
"migration_description_0003_migrate_to_stretch": "تحديث النظام إلى ديبيان ستريتش و واي يونوهوست 3.0",
|
|
||||||
"migration_0003_patching_sources_list": "عملية تصحيح ملف المصادر sources.lists جارية…",
|
|
||||||
"migration_0003_main_upgrade": "بداية عملية التحديث الأساسية…",
|
|
||||||
"migration_0003_fail2ban_upgrade": "بداية عملية تحديث Fail2Ban…",
|
|
||||||
"migration_0003_not_jessie": "إن توزيعة ديبيان الحالية تختلف عن جيسي !",
|
|
||||||
"migration_description_0002_migrate_to_tsig_sha256": "يقوم بتحسين أمان TSIG لنظام أسماء النطاقات الديناميكة باستخدام SHA512 بدلًا مِن MD5",
|
|
||||||
"migration_0003_system_not_fully_up_to_date": "إنّ نظامك غير مُحدَّث بعدُ لذا يرجى القيام بتحديث عادي أولا قبل إطلاق إجراء الإنتقال إلى نظام ستريتش.",
|
|
||||||
"migrations_list_conflict_pending_done": "لا يمكنك استخدام --previous و --done معًا على نفس سطر الأوامر.",
|
"migrations_list_conflict_pending_done": "لا يمكنك استخدام --previous و --done معًا على نفس سطر الأوامر.",
|
||||||
"service_description_avahi-daemon": "يسمح لك بالنفاذ إلى خادومك عبر الشبكة المحلية باستخدام yunohost.local",
|
"service_description_avahi-daemon": "يسمح لك بالنفاذ إلى خادومك عبر الشبكة المحلية باستخدام yunohost.local",
|
||||||
"service_description_metronome": "يُدير حسابات الدردشة الفورية XMPP",
|
"service_description_metronome": "يُدير حسابات الدردشة الفورية XMPP",
|
||||||
"service_description_nginx": "يقوم بتوفير النفاذ و السماح بالوصول إلى كافة مواقع الويب المستضافة على خادومك",
|
"service_description_nginx": "يقوم بتوفير النفاذ و السماح بالوصول إلى كافة مواقع الويب المستضافة على خادومك",
|
||||||
"service_description_postfix": "يقوم بإرسال و تلقي الرسائل البريدية الإلكترونية",
|
"service_description_postfix": "يقوم بإرسال و تلقي الرسائل البريدية الإلكترونية",
|
||||||
"service_description_yunohost-api": "يقوم بإدارة التفاعلات ما بين واجهة الويب لواي يونوهوست و النظام",
|
"service_description_yunohost-api": "يقوم بإدارة التفاعلات ما بين واجهة الويب لواي يونوهوست و النظام",
|
||||||
"log_category_404": "فئةالسجل '{category}' لا وجود لها",
|
|
||||||
"log_app_change_url": "تعديل رابط تطبيق '{}'",
|
"log_app_change_url": "تعديل رابط تطبيق '{}'",
|
||||||
"log_app_install": "تنصيب تطبيق '{}'",
|
"log_app_install": "تنصيب تطبيق '{}'",
|
||||||
"log_app_remove": "حذف تطبيق '{}'",
|
"log_app_remove": "حذف تطبيق '{}'",
|
||||||
|
@ -128,12 +111,10 @@
|
||||||
"log_tools_upgrade": "تحديث حُزم ديبيان",
|
"log_tools_upgrade": "تحديث حُزم ديبيان",
|
||||||
"log_tools_shutdown": "إطفاء الخادم",
|
"log_tools_shutdown": "إطفاء الخادم",
|
||||||
"log_tools_reboot": "إعادة تشغيل الخادم",
|
"log_tools_reboot": "إعادة تشغيل الخادم",
|
||||||
"migration_description_0005_postgresql_9p4_to_9p6": "تهجير قواعد البيانات مِن postgresql 9.4 إلى 9.6",
|
|
||||||
"service_description_dnsmasq": "مُكلَّف بتحليل أسماء النطاقات (DNS)",
|
"service_description_dnsmasq": "مُكلَّف بتحليل أسماء النطاقات (DNS)",
|
||||||
"service_description_mysql": "يقوم بتخزين بيانات التطبيقات (قواعد بيانات SQL)",
|
"service_description_mysql": "يقوم بتخزين بيانات التطبيقات (قواعد بيانات SQL)",
|
||||||
"service_description_rspamd": "يقوم بتصفية البريد المزعج و إدارة ميزات أخرى للبريد",
|
"service_description_rspamd": "يقوم بتصفية البريد المزعج و إدارة ميزات أخرى للبريد",
|
||||||
"service_description_yunohost-firewall": "يُدير فتح وإغلاق منافذ الاتصال إلى الخدمات",
|
"service_description_yunohost-firewall": "يُدير فتح وإغلاق منافذ الاتصال إلى الخدمات",
|
||||||
"users_available": "المستخدمون المتوفرون:",
|
|
||||||
"aborting": "إلغاء.",
|
"aborting": "إلغاء.",
|
||||||
"admin_password_too_long": "يرجى اختيار كلمة سرية أقصر مِن 127 حرف",
|
"admin_password_too_long": "يرجى اختيار كلمة سرية أقصر مِن 127 حرف",
|
||||||
"app_not_upgraded": "",
|
"app_not_upgraded": "",
|
||||||
|
@ -146,9 +127,7 @@
|
||||||
"global_settings_setting_security_password_admin_strength": "قوة الكلمة السرية الإدارية",
|
"global_settings_setting_security_password_admin_strength": "قوة الكلمة السرية الإدارية",
|
||||||
"global_settings_setting_security_password_user_strength": "قوة الكلمة السرية للمستخدم",
|
"global_settings_setting_security_password_user_strength": "قوة الكلمة السرية للمستخدم",
|
||||||
"password_too_simple_1": "يجب أن يكون طول الكلمة السرية على الأقل 8 حروف",
|
"password_too_simple_1": "يجب أن يكون طول الكلمة السرية على الأقل 8 حروف",
|
||||||
"service_description_php7.0-fpm": "يُشغّل التطبيقات المكتوبة بلغة الـ PHP على NGINX",
|
|
||||||
"already_up_to_date": "كل شيء على ما يرام. ليس هناك ما يتطلّب تحديثًا.",
|
"already_up_to_date": "كل شيء على ما يرام. ليس هناك ما يتطلّب تحديثًا.",
|
||||||
"service_description_nslcd": "يدير اتصال متسخدمي واي يونوهوست عبر طرفية سطر الأوامر",
|
|
||||||
"service_description_slapd": "يخزّن المستخدمين والنطاقات والمعلومات المتعلقة بها",
|
"service_description_slapd": "يخزّن المستخدمين والنطاقات والمعلومات المتعلقة بها",
|
||||||
"service_reloaded": "تم إعادة تشغيل خدمة '{service:s}'",
|
"service_reloaded": "تم إعادة تشغيل خدمة '{service:s}'",
|
||||||
"service_restarted": "تم إعادة تشغيل خدمة '{service:s}'",
|
"service_restarted": "تم إعادة تشغيل خدمة '{service:s}'",
|
||||||
|
|
113
locales/ca.json
113
locales/ca.json
|
@ -32,7 +32,6 @@
|
||||||
"app_upgrade_failed": "No s'ha pogut actualitzar {app:s}: {error}",
|
"app_upgrade_failed": "No s'ha pogut actualitzar {app:s}: {error}",
|
||||||
"app_upgrade_some_app_failed": "No s'han pogut actualitzar algunes aplicacions",
|
"app_upgrade_some_app_failed": "No s'han pogut actualitzar algunes aplicacions",
|
||||||
"app_upgraded": "S'ha actualitzat {app:s}",
|
"app_upgraded": "S'ha actualitzat {app:s}",
|
||||||
"ask_email": "Adreça de correu electrònic",
|
|
||||||
"ask_firstname": "Nom",
|
"ask_firstname": "Nom",
|
||||||
"ask_lastname": "Cognom",
|
"ask_lastname": "Cognom",
|
||||||
"ask_main_domain": "Domini principal",
|
"ask_main_domain": "Domini principal",
|
||||||
|
@ -40,7 +39,6 @@
|
||||||
"ask_password": "Contrasenya",
|
"ask_password": "Contrasenya",
|
||||||
"backup_abstract_method": "Encara està per implementar aquest mètode de còpia de seguretat",
|
"backup_abstract_method": "Encara està per implementar aquest mètode de còpia de seguretat",
|
||||||
"backup_app_failed": "No s'ha pogut fer la còpia de seguretat de {app:s}",
|
"backup_app_failed": "No s'ha pogut fer la còpia de seguretat de {app:s}",
|
||||||
"backup_applying_method_borg": "Enviant tots els fitxers de la còpia de seguretat al repositori borg-backup...",
|
|
||||||
"backup_applying_method_copy": "Còpia de tots els fitxers a la còpia de seguretat...",
|
"backup_applying_method_copy": "Còpia de tots els fitxers a la còpia de seguretat...",
|
||||||
"backup_applying_method_custom": "Crida del mètode de còpia de seguretat personalitzat \"{method:s}\"...",
|
"backup_applying_method_custom": "Crida del mètode de còpia de seguretat personalitzat \"{method:s}\"...",
|
||||||
"backup_applying_method_tar": "Creació de l'arxiu TAR de la còpia de seguretat...",
|
"backup_applying_method_tar": "Creació de l'arxiu TAR de la còpia de seguretat...",
|
||||||
|
@ -52,7 +50,6 @@
|
||||||
"backup_archive_system_part_not_available": "La part «{part:s}» del sistema no està disponible en aquesta copia de seguretat",
|
"backup_archive_system_part_not_available": "La part «{part:s}» del sistema no està disponible en aquesta copia de seguretat",
|
||||||
"backup_archive_writing_error": "No es poden afegir els arxius «{source:s}» (anomenats en l'arxiu «{dest:s}») a l'arxiu comprimit de la còpia de seguretat «{archive:s}»",
|
"backup_archive_writing_error": "No es poden afegir els arxius «{source:s}» (anomenats en l'arxiu «{dest:s}») a l'arxiu comprimit de la còpia de seguretat «{archive:s}»",
|
||||||
"backup_ask_for_copying_if_needed": "Voleu fer la còpia de seguretat utilitzant {size:s}MB temporalment? (S'utilitza aquest mètode ja que alguns dels fitxers no s'han pogut preparar utilitzar un mètode més eficient.)",
|
"backup_ask_for_copying_if_needed": "Voleu fer la còpia de seguretat utilitzant {size:s}MB temporalment? (S'utilitza aquest mètode ja que alguns dels fitxers no s'han pogut preparar utilitzar un mètode més eficient.)",
|
||||||
"backup_borg_not_implemented": "El mètode de còpia de seguretat Borg encara no està implementat",
|
|
||||||
"backup_cant_mount_uncompress_archive": "No es pot carregar l'arxiu descomprimit com a protegit contra escriptura",
|
"backup_cant_mount_uncompress_archive": "No es pot carregar l'arxiu descomprimit com a protegit contra escriptura",
|
||||||
"backup_cleaning_failed": "No s'ha pogut netejar el directori temporal de la còpia de seguretat",
|
"backup_cleaning_failed": "No s'ha pogut netejar el directori temporal de la còpia de seguretat",
|
||||||
"backup_copying_to_organize_the_archive": "Copiant {size:s}MB per organitzar l'arxiu",
|
"backup_copying_to_organize_the_archive": "Copiant {size:s}MB per organitzar l'arxiu",
|
||||||
|
@ -76,8 +73,6 @@
|
||||||
"backup_delete_error": "No s'ha pogut suprimir «{path:s}»",
|
"backup_delete_error": "No s'ha pogut suprimir «{path:s}»",
|
||||||
"backup_deleted": "S'ha suprimit la còpia de seguretat",
|
"backup_deleted": "S'ha suprimit la còpia de seguretat",
|
||||||
"backup_hook_unknown": "Script de còpia de seguretat «{hook:s}» desconegut",
|
"backup_hook_unknown": "Script de còpia de seguretat «{hook:s}» desconegut",
|
||||||
"backup_invalid_archive": "Aquest no és un arxiu de còpia de seguretat",
|
|
||||||
"backup_method_borg_finished": "La còpia de seguretat a Borg ha acabat",
|
|
||||||
"backup_method_copy_finished": "La còpia de la còpia de seguretat ha acabat",
|
"backup_method_copy_finished": "La còpia de la còpia de seguretat ha acabat",
|
||||||
"backup_method_custom_finished": "El mètode de còpia de seguretat personalitzat \"{method:s}\" ha acabat",
|
"backup_method_custom_finished": "El mètode de còpia de seguretat personalitzat \"{method:s}\" ha acabat",
|
||||||
"backup_method_tar_finished": "S'ha creat l'arxiu de còpia de seguretat TAR",
|
"backup_method_tar_finished": "S'ha creat l'arxiu de còpia de seguretat TAR",
|
||||||
|
@ -94,7 +89,6 @@
|
||||||
"backup_output_directory_not_empty": "Heu d'escollir un directori de sortida buit",
|
"backup_output_directory_not_empty": "Heu d'escollir un directori de sortida buit",
|
||||||
"backup_output_directory_required": "Heu d'especificar un directori de sortida per la còpia de seguretat",
|
"backup_output_directory_required": "Heu d'especificar un directori de sortida per la còpia de seguretat",
|
||||||
"backup_output_symlink_dir_broken": "El directori del arxiu «{path:s}» es un enllaç simbòlic trencat. Pot ser heu oblidat muntar, tornar a muntar o connectar el mitja d'emmagatzematge al que apunta.",
|
"backup_output_symlink_dir_broken": "El directori del arxiu «{path:s}» es un enllaç simbòlic trencat. Pot ser heu oblidat muntar, tornar a muntar o connectar el mitja d'emmagatzematge al que apunta.",
|
||||||
"backup_php5_to_php7_migration_may_fail": "No s'ha pogut convertir l'arxiu per suportar PHP 7, pot ser que no es puguin restaurar les vostres aplicacions PHP (raó: {error:s})",
|
|
||||||
"backup_running_hooks": "Executant els scripts de la còpia de seguretat...",
|
"backup_running_hooks": "Executant els scripts de la còpia de seguretat...",
|
||||||
"backup_system_part_failed": "No s'ha pogut fer la còpia de seguretat de la part \"{part:s}\" del sistema",
|
"backup_system_part_failed": "No s'ha pogut fer la còpia de seguretat de la part \"{part:s}\" del sistema",
|
||||||
"backup_unable_to_organize_files": "No s'ha pogut utilitzar el mètode ràpid per organitzar els fitxers dins de l'arxiu",
|
"backup_unable_to_organize_files": "No s'ha pogut utilitzar el mètode ràpid per organitzar els fitxers dins de l'arxiu",
|
||||||
|
@ -110,15 +104,10 @@
|
||||||
"certmanager_cert_renew_success": "S'ha renovat correctament el certificat Let's Encrypt pel domini «{domain:s}»",
|
"certmanager_cert_renew_success": "S'ha renovat correctament el certificat Let's Encrypt pel domini «{domain:s}»",
|
||||||
"certmanager_cert_signing_failed": "No s'ha pogut firmar el nou certificat",
|
"certmanager_cert_signing_failed": "No s'ha pogut firmar el nou certificat",
|
||||||
"certmanager_certificate_fetching_or_enabling_failed": "Sembla que utilitzar el nou certificat per {domain:s} ha fallat...",
|
"certmanager_certificate_fetching_or_enabling_failed": "Sembla que utilitzar el nou certificat per {domain:s} ha fallat...",
|
||||||
"certmanager_conflicting_nginx_file": "No s'ha pogut preparar el domini per al desafiament ACME: l'arxiu de configuració NGINX {filepath:s} entra en conflicte i s'ha d'eliminar primer",
|
|
||||||
"certmanager_couldnt_fetch_intermediate_cert": "S'ha exhaurit el temps d'esperar al intentar recollir el certificat intermedi des de Let's Encrypt. La instal·lació/renovació del certificat s'ha cancel·lat - torneu a intentar-ho més tard.",
|
|
||||||
"certmanager_domain_cert_not_selfsigned": "El certificat pel domini {domain:s} no és auto-signat Esteu segur de voler canviar-lo? (Utilitzeu «--force» per fer-ho)",
|
"certmanager_domain_cert_not_selfsigned": "El certificat pel domini {domain:s} no és auto-signat Esteu segur de voler canviar-lo? (Utilitzeu «--force» per fer-ho)",
|
||||||
"certmanager_domain_dns_ip_differs_from_public_ip": "Els registres DNS pel domini «{domain:s}» són diferents a l'adreça IP d'aquest servidor. Mireu la categoria «registres DNS» (bàsic) al diagnòstic per a més informació. Si heu modificat recentment el registre A, si us plau espereu a que es propagui (hi ha eines per verificar la propagació disponibles a internet). (Si sabeu el que esteu fent, podeu utilitzar «--no-checks» per desactivar aquestes comprovacions.)",
|
"certmanager_domain_dns_ip_differs_from_public_ip": "Els registres DNS pel domini «{domain:s}» són diferents a l'adreça IP d'aquest servidor. Mireu la categoria «registres DNS» (bàsic) al diagnòstic per a més informació. Si heu modificat recentment el registre A, si us plau espereu a que es propagui (hi ha eines per verificar la propagació disponibles a internet). (Si sabeu el que esteu fent, podeu utilitzar «--no-checks» per desactivar aquestes comprovacions.)",
|
||||||
"certmanager_domain_http_not_working": "El domini {domain:s} sembla que no és accessible via HTTP. Verifiqueu la categoria «Web» en el diagnòstic per a més informació. (Si sabeu el que esteu fent, utilitzeu «--no-checks» per deshabilitar les comprovacions.)",
|
"certmanager_domain_http_not_working": "El domini {domain:s} sembla que no és accessible via HTTP. Verifiqueu la categoria «Web» en el diagnòstic per a més informació. (Si sabeu el que esteu fent, utilitzeu «--no-checks» per deshabilitar les comprovacions.)",
|
||||||
"certmanager_domain_unknown": "Domini desconegut «{domain:s}»",
|
|
||||||
"certmanager_error_no_A_record": "No s'ha trobat cap registre DNS «A» per «{domain:s}». Heu de fer que el vostre nom de domini apunti cap a la vostra màquina per tal de poder instal·lar un certificat Let's Encrypt. (Si sabeu el que esteu fent, podeu utilitzar «--no-checks» per desactivar aquestes comprovacions.)",
|
|
||||||
"certmanager_hit_rate_limit": "S'han emès massa certificats recentment per aquest mateix conjunt de dominis {domain:s}. Si us plau torneu-ho a intentar més tard. Consulteu https://letsencrypt.org/docs/rate-limits/ per obtenir més detalls",
|
"certmanager_hit_rate_limit": "S'han emès massa certificats recentment per aquest mateix conjunt de dominis {domain:s}. Si us plau torneu-ho a intentar més tard. Consulteu https://letsencrypt.org/docs/rate-limits/ per obtenir més detalls",
|
||||||
"certmanager_http_check_timeout": "S'ha exhaurit el temps d'espera quan el servidor ha intentat contactar amb ell mateix via HTTP utilitzant la seva adreça IP pública (domini «{domain:s}» amb IP «{ip:s}»). Pot ser degut a hairpinning o a que el talla focs/router al que està connectat el servidor estan mal configurats.",
|
|
||||||
"certmanager_no_cert_file": "No s'ha pogut llegir l'arxiu del certificat pel domini {domain:s} (fitxer: {file:s})",
|
"certmanager_no_cert_file": "No s'ha pogut llegir l'arxiu del certificat pel domini {domain:s} (fitxer: {file:s})",
|
||||||
"certmanager_self_ca_conf_file_not_found": "No s'ha trobat el fitxer de configuració per l'autoritat del certificat auto-signat (fitxer: {file:s})",
|
"certmanager_self_ca_conf_file_not_found": "No s'ha trobat el fitxer de configuració per l'autoritat del certificat auto-signat (fitxer: {file:s})",
|
||||||
"certmanager_unable_to_parse_self_CA_name": "No s'ha pogut analitzar el nom de l'autoritat del certificat auto-signat (fitxer: {file:s})",
|
"certmanager_unable_to_parse_self_CA_name": "No s'ha pogut analitzar el nom de l'autoritat del certificat auto-signat (fitxer: {file:s})",
|
||||||
|
@ -156,12 +145,7 @@
|
||||||
"dyndns_registration_failed": "No s'ha pogut registrar el domini DynDNS: {error:s}",
|
"dyndns_registration_failed": "No s'ha pogut registrar el domini DynDNS: {error:s}",
|
||||||
"dyndns_domain_not_provided": "El proveïdor de DynDNS {provider:s} no pot oferir el domini {domain:s}.",
|
"dyndns_domain_not_provided": "El proveïdor de DynDNS {provider:s} no pot oferir el domini {domain:s}.",
|
||||||
"dyndns_unavailable": "El domini {domain:s} no està disponible.",
|
"dyndns_unavailable": "El domini {domain:s} no està disponible.",
|
||||||
"executing_command": "Execució de l'ordre « {command:s} »...",
|
|
||||||
"executing_script": "Execució de l'script « {script:s} »...",
|
|
||||||
"extracting": "Extracció en curs...",
|
"extracting": "Extracció en curs...",
|
||||||
"dyndns_cron_installed": "S'ha creat la tasca cron pel DynDNS",
|
|
||||||
"dyndns_cron_remove_failed": "No s'ha pogut eliminar la tasca cron per a DynDNS: {error}",
|
|
||||||
"dyndns_cron_removed": "S'ha eliminat la tasca cron pel DynDNS",
|
|
||||||
"experimental_feature": "Atenció: Aquesta funcionalitat és experimental i no es considera estable, no s'ha d'utilitzar a excepció de saber el que esteu fent.",
|
"experimental_feature": "Atenció: Aquesta funcionalitat és experimental i no es considera estable, no s'ha d'utilitzar a excepció de saber el que esteu fent.",
|
||||||
"field_invalid": "Camp incorrecte « {:s} »",
|
"field_invalid": "Camp incorrecte « {:s} »",
|
||||||
"file_does_not_exist": "El camí {path:s} no existeix.",
|
"file_does_not_exist": "El camí {path:s} no existeix.",
|
||||||
|
@ -175,10 +159,6 @@
|
||||||
"global_settings_cant_write_settings": "No s'ha pogut escriure el fitxer de configuració, raó: {reason:s}",
|
"global_settings_cant_write_settings": "No s'ha pogut escriure el fitxer de configuració, raó: {reason:s}",
|
||||||
"global_settings_key_doesnt_exists": "La clau « {settings_key:s} » no existeix en la configuració global, podeu veure totes les claus disponibles executant « yunohost settings list »",
|
"global_settings_key_doesnt_exists": "La clau « {settings_key:s} » no existeix en la configuració global, podeu veure totes les claus disponibles executant « yunohost settings list »",
|
||||||
"global_settings_reset_success": "S'ha fet una còpia de seguretat de la configuració anterior a {path:s}",
|
"global_settings_reset_success": "S'ha fet una còpia de seguretat de la configuració anterior a {path:s}",
|
||||||
"global_settings_setting_example_bool": "Exemple d'opció booleana",
|
|
||||||
"global_settings_setting_example_enum": "Exemple d'opció de tipus enumeració",
|
|
||||||
"global_settings_setting_example_int": "Exemple d'opció de tipus enter",
|
|
||||||
"global_settings_setting_example_string": "Exemple d'opció de tipus cadena",
|
|
||||||
"global_settings_setting_security_nginx_compatibility": "Solució de compromís entre compatibilitat i seguretat pel servidor web NGINX. Afecta els criptògrafs (i altres aspectes relacionats amb la seguretat)",
|
"global_settings_setting_security_nginx_compatibility": "Solució de compromís entre compatibilitat i seguretat pel servidor web NGINX. Afecta els criptògrafs (i altres aspectes relacionats amb la seguretat)",
|
||||||
"global_settings_setting_security_password_admin_strength": "Robustesa de la contrasenya d'administrador",
|
"global_settings_setting_security_password_admin_strength": "Robustesa de la contrasenya d'administrador",
|
||||||
"global_settings_setting_security_password_user_strength": "Robustesa de la contrasenya de l'usuari",
|
"global_settings_setting_security_password_user_strength": "Robustesa de la contrasenya de l'usuari",
|
||||||
|
@ -193,11 +173,9 @@
|
||||||
"hook_list_by_invalid": "Aquesta propietat no es pot utilitzar per llistar els hooks",
|
"hook_list_by_invalid": "Aquesta propietat no es pot utilitzar per llistar els hooks",
|
||||||
"hook_name_unknown": "Nom de script « {name:s} » desconegut",
|
"hook_name_unknown": "Nom de script « {name:s} » desconegut",
|
||||||
"installation_complete": "Instal·lació completada",
|
"installation_complete": "Instal·lació completada",
|
||||||
"installation_failed": "Ha fallat alguna cosa amb la instal·lació",
|
|
||||||
"ip6tables_unavailable": "No podeu modificar les ip6tables aquí. O bé sou en un contenidor o bé el vostre nucli no és compatible amb aquesta opció",
|
"ip6tables_unavailable": "No podeu modificar les ip6tables aquí. O bé sou en un contenidor o bé el vostre nucli no és compatible amb aquesta opció",
|
||||||
"iptables_unavailable": "No podeu modificar les iptables aquí. O bé sou en un contenidor o bé el vostre nucli no és compatible amb aquesta opció",
|
"iptables_unavailable": "No podeu modificar les iptables aquí. O bé sou en un contenidor o bé el vostre nucli no és compatible amb aquesta opció",
|
||||||
"log_corrupted_md_file": "El fitxer de metadades YAML associat amb els registres està malmès: « {md_file} »\nError: {error}",
|
"log_corrupted_md_file": "El fitxer de metadades YAML associat amb els registres està malmès: « {md_file} »\nError: {error}",
|
||||||
"log_category_404": "La categoria de registres « {category} » no existeix",
|
|
||||||
"log_link_to_log": "El registre complet d'aquesta operació: «<a href=\"#/tools/logs/{name}\" style=\"text-decoration:underline\">{desc}</a>»",
|
"log_link_to_log": "El registre complet d'aquesta operació: «<a href=\"#/tools/logs/{name}\" style=\"text-decoration:underline\">{desc}</a>»",
|
||||||
"log_help_to_get_log": "Per veure el registre de l'operació « {desc} », utilitzeu l'ordre « yunohost log show {name}{name} »",
|
"log_help_to_get_log": "Per veure el registre de l'operació « {desc} », utilitzeu l'ordre « yunohost log show {name}{name} »",
|
||||||
"log_link_to_failed_log": "No s'ha pogut completar l'operació « {desc} ». Per obtenir ajuda, <a href=\"#/tools/logs/{name}\">proveïu el registre complete de l'operació clicant aquí</a>",
|
"log_link_to_failed_log": "No s'ha pogut completar l'operació « {desc} ». Per obtenir ajuda, <a href=\"#/tools/logs/{name}\">proveïu el registre complete de l'operació clicant aquí</a>",
|
||||||
|
@ -234,8 +212,6 @@
|
||||||
"already_up_to_date": "No hi ha res a fer. Tot està actualitzat.",
|
"already_up_to_date": "No hi ha res a fer. Tot està actualitzat.",
|
||||||
"dpkg_lock_not_available": "No es pot utilitzar aquesta comanda en aquest moment ja que sembla que un altre programa està utilitzant el lock de dpkg (el gestor de paquets del sistema)",
|
"dpkg_lock_not_available": "No es pot utilitzar aquesta comanda en aquest moment ja que sembla que un altre programa està utilitzant el lock de dpkg (el gestor de paquets del sistema)",
|
||||||
"global_settings_setting_security_postfix_compatibility": "Solució de compromís entre compatibilitat i seguretat pel servidor Postfix. Afecta els criptògrafs (i altres aspectes relacionats amb la seguretat)",
|
"global_settings_setting_security_postfix_compatibility": "Solució de compromís entre compatibilitat i seguretat pel servidor Postfix. Afecta els criptògrafs (i altres aspectes relacionats amb la seguretat)",
|
||||||
"ldap_init_failed_to_create_admin": "La inicialització de LDAP no ha pogut crear l'usuari admin",
|
|
||||||
"ldap_initialized": "S'ha iniciat LDAP",
|
|
||||||
"mail_alias_remove_failed": "No s'han pogut eliminar els àlies del correu «{mail:s}»",
|
"mail_alias_remove_failed": "No s'han pogut eliminar els àlies del correu «{mail:s}»",
|
||||||
"mail_domain_unknown": "El domini «{domain:s}» de l'adreça de correu no és vàlid. Utilitzeu un domini administrat per aquest servidor.",
|
"mail_domain_unknown": "El domini «{domain:s}» de l'adreça de correu no és vàlid. Utilitzeu un domini administrat per aquest servidor.",
|
||||||
"mail_forward_remove_failed": "No s'han pogut eliminar el reenviament de correu «{mail:s}»",
|
"mail_forward_remove_failed": "No s'han pogut eliminar el reenviament de correu «{mail:s}»",
|
||||||
|
@ -243,49 +219,6 @@
|
||||||
"mail_unavailable": "Aquesta adreça de correu està reservada i ha de ser atribuïda automàticament el primer usuari",
|
"mail_unavailable": "Aquesta adreça de correu està reservada i ha de ser atribuïda automàticament el primer usuari",
|
||||||
"main_domain_change_failed": "No s'ha pogut canviar el domini principal",
|
"main_domain_change_failed": "No s'ha pogut canviar el domini principal",
|
||||||
"main_domain_changed": "S'ha canviat el domini principal",
|
"main_domain_changed": "S'ha canviat el domini principal",
|
||||||
"migrate_tsig_end": "La migració cap a HMAC-SHA-512 s'ha acabat",
|
|
||||||
"migrate_tsig_failed": "Ha fallat la migració del domini DynDNS «{domain}» cap a HMAC-SHA-512, anul·lant les modificacions. Error: {error_code}, {error}",
|
|
||||||
"migrate_tsig_start": "L'algoritme de generació de claus no es prou segur per a la signatura TSIG del domini «{domain}», començant la migració cap a un de més segur HMAC-SHA-512",
|
|
||||||
"migrate_tsig_wait": "Esperant tres minuts per a que el servidor DynDNS tingui en compte la nova clau…",
|
|
||||||
"migrate_tsig_wait_2": "2 minuts…",
|
|
||||||
"migrate_tsig_wait_3": "1 minut…",
|
|
||||||
"migrate_tsig_wait_4": "30 segons…",
|
|
||||||
"migrate_tsig_not_needed": "Sembla que no s'utilitza cap domini DynDNS, no és necessari fer cap migració.",
|
|
||||||
"migration_description_0001_change_cert_group_to_sslcert": "Canvia els permisos del grup dels certificats de «metronome» a «ssl-cert»",
|
|
||||||
"migration_description_0002_migrate_to_tsig_sha256": "Millora la seguretat de DynDNS TSIG utilitzant SHA-512 en lloc de MD5",
|
|
||||||
"migration_description_0003_migrate_to_stretch": "Actualització del sistema a Debian Stretch i YunoHost 3.0",
|
|
||||||
"migration_description_0004_php5_to_php7_pools": "Tornar a configurar els pools PHP per utilitzar PHP 7 en lloc de PHP 5",
|
|
||||||
"migration_description_0005_postgresql_9p4_to_9p6": "Migració de les bases de dades de PostgreSQL 9.4 a 9.6",
|
|
||||||
"migration_description_0006_sync_admin_and_root_passwords": "Sincronitzar les contrasenyes admin i root",
|
|
||||||
"migration_description_0007_ssh_conf_managed_by_yunohost_step1": "La configuració SSH serà gestionada per YunoHost (pas 1, automàtic)",
|
|
||||||
"migration_description_0008_ssh_conf_managed_by_yunohost_step2": "La configuració SSH serà gestionada per YunoHost (pas 2, manual)",
|
|
||||||
"migration_description_0009_decouple_regenconf_from_services": "Desvincula el mecanisme regen-conf dels serveis",
|
|
||||||
"migration_description_0010_migrate_to_apps_json": "Elimina els catàlegs d'aplicacions obsolets i utilitza la nova llista unificada «apps.json» en el seu lloc (obsolet, substituït per la migració 13)",
|
|
||||||
"migration_0003_start": "Ha començat la migració a Stretch. Els registres estaran disponibles a {logfile}.",
|
|
||||||
"migration_0003_patching_sources_list": "Modificant el fitxer sources.lists…",
|
|
||||||
"migration_0003_main_upgrade": "Començant l'actualització principal…",
|
|
||||||
"migration_0003_fail2ban_upgrade": "Començant l'actualització de Fail2Ban…",
|
|
||||||
"migration_0003_restoring_origin_nginx_conf": "El fitxer /etc/nginx/nginx.conf ha estat editat. La migració el tornarà al seu estat original... El fitxer anterior estarà disponible com a {backup_dest}.",
|
|
||||||
"migration_0003_yunohost_upgrade": "Començant l'actualització del paquet YunoHost... La migració acabarà, però l'actualització actual es farà just després. Després de completar aquesta operació, pot ser que us hagueu de tornar a connectar a la web d'administració.",
|
|
||||||
"migration_0003_not_jessie": "La distribució Debian actual no és Jessie!",
|
|
||||||
"migration_0003_system_not_fully_up_to_date": "El vostre sistema no està completament actualitzat. S'ha de fer una actualització normal abans de fer la migració a Stretch.",
|
|
||||||
"migration_0003_still_on_jessie_after_main_upgrade": "Hi ha hagut un problema durant l'actualització principal: El sistema encara està amb Jessie? Per investigar el problema, mireu el registres a {log}:s…",
|
|
||||||
"migration_0003_general_warning": "Tingueu en compte que la migració és una operació delicada. L'equip de YunoHost a fet els possibles per revisar-la i provar-la, però la migració pot provocar errors en parts del sistema o aplicacions.\n\nPer tant, es recomana:\n - Fer una còpia de seguretat de les dades o aplicacions importants. Més informació a https://yunohost.org/backup;\n - Sigueu pacient un cop llençada la migració: en funció de la connexió a internet i el maquinari, pot trigar fins a unes hores per actualitzar-ho tot.\n\nD'altra banda, el port per SMTP, utilitzat per clients de correu externs (com Thunderbird o K9-Mail) ha canviat de 465 (SSL/TLS) a 587 (STARTTLS). L'antic port (465) serà tancat automàticament, i el nou port (587) serà obert en el tallafocs. Tots els usuaris *hauran* d'adaptar la configuració dels clients de correu en acord amb aquests canvis.",
|
|
||||||
"migration_0003_problematic_apps_warning": "Tingueu en compte que s'han detectat les aplicacions, possiblement, problemàtiques següents. Sembla que aquestes no s'han instal·lat des d'un catàleg d'aplicacions, o que no estan marcades com a «working». Per conseqüent, no podem garantir que segueixin funcionant després de l'actualització: {problematic_apps}",
|
|
||||||
"migration_0003_modified_files": "Tingueu en compte que s'han detectat els següents fitxers que han estat modificats manualment i podrien sobreescriure's al final de l'actualització: {manually_modified_files}",
|
|
||||||
"migration_0005_postgresql_94_not_installed": "PostgreSQL no està instal·lat en el sistema. No hi ha res per fer.",
|
|
||||||
"migration_0005_postgresql_96_not_installed": "PostgreSQL 9.4 està instal·lat, però no PostgreSQL 9.6? Alguna cosa estranya a passat en el sistema :( …",
|
|
||||||
"migration_0005_not_enough_space": "Creu espai disponible en {path} per executar la migració.",
|
|
||||||
"migration_0006_disclaimer": "YunoHost esperar que les contrasenyes de admin i root estiguin sincronitzades. Aquesta migració canvia la contrasenya root per la contrasenya admin.",
|
|
||||||
"migration_0007_cancelled": "No s'ha pogut millorar la gestió de la configuració SSH.",
|
|
||||||
"migration_0007_cannot_restart": "No es pot reiniciar SSH després d'haver intentat cancel·lar la migració numero 6.",
|
|
||||||
"migration_0008_general_disclaimer": "Per millorar la seguretat del servidor, es recomana que sigui YunoHost qui gestioni la configuració SSH. La configuració SSH actual és diferent a la configuració recomanada. Si deixeu que YunoHost ho reconfiguri, la manera de connectar-se al servidor mitjançant SSH canviarà de la següent manera:",
|
|
||||||
"migration_0008_port": "• La connexió es farà utilitzant el port 22 en lloc del port SSH personalitzat actual. Es pot reconfigurar;",
|
|
||||||
"migration_0008_root": "• No es podrà connectar com a root a través de SSH. S'haurà d'utilitzar l'usuari admin per fer-ho;",
|
|
||||||
"migration_0008_dsa": "• Es desactivarà la clau DSA. Per tant, es podria haver d'invalidar un missatge esgarrifós del client SSH, i tornar a verificar l'empremta digital del servidor;",
|
|
||||||
"migration_0008_warning": "Si heu entès els avisos i voleu que YunoHost sobreescrigui la configuració actual, comenceu la migració. Sinó, podeu saltar-vos la migració, tot i que no està recomanat.",
|
|
||||||
"migration_0008_no_warning": "Hauria de ser segur sobreescriure la configuració SSH, però no es pot estar del tot segur! Executeu la migració per sobreescriure-la. Sinó, podeu saltar-vos la migració, tot i que no està recomanat.",
|
|
||||||
"migration_0009_not_needed": "Sembla que ja s'ha fet aquesta migració… (?) Ometent.",
|
|
||||||
"migrations_cant_reach_migration_file": "No s'ha pogut accedir als fitxers de migració al camí «%s»",
|
"migrations_cant_reach_migration_file": "No s'ha pogut accedir als fitxers de migració al camí «%s»",
|
||||||
"migrations_list_conflict_pending_done": "No es pot utilitzar «--previous» i «--done» al mateix temps.",
|
"migrations_list_conflict_pending_done": "No es pot utilitzar «--previous» i «--done» al mateix temps.",
|
||||||
"migrations_loading_migration": "Carregant la migració {id}...",
|
"migrations_loading_migration": "Carregant la migració {id}...",
|
||||||
|
@ -294,9 +227,7 @@
|
||||||
"migrations_skip_migration": "Saltant migració {id}...",
|
"migrations_skip_migration": "Saltant migració {id}...",
|
||||||
"migrations_to_be_ran_manually": "La migració {id} s'ha de fer manualment. Aneu a Eines → Migracions a la interfície admin, o executeu «yunohost tools migrations run».",
|
"migrations_to_be_ran_manually": "La migració {id} s'ha de fer manualment. Aneu a Eines → Migracions a la interfície admin, o executeu «yunohost tools migrations run».",
|
||||||
"migrations_need_to_accept_disclaimer": "Per fer la migració {id}, heu d'acceptar aquesta clàusula de no responsabilitat:\n---\n{disclaimer}\n---\nSi accepteu fer la migració, torneu a executar l'ordre amb l'opció «--accept-disclaimer».",
|
"migrations_need_to_accept_disclaimer": "Per fer la migració {id}, heu d'acceptar aquesta clàusula de no responsabilitat:\n---\n{disclaimer}\n---\nSi accepteu fer la migració, torneu a executar l'ordre amb l'opció «--accept-disclaimer».",
|
||||||
"no_internet_connection": "El servidor no està connectat a Internet",
|
|
||||||
"not_enough_disk_space": "No hi ha prou espai en «{path:s}»",
|
"not_enough_disk_space": "No hi ha prou espai en «{path:s}»",
|
||||||
"package_unknown": "Paquet desconegut «{pkgname}»",
|
|
||||||
"packages_upgrade_failed": "No s'han pogut actualitzar tots els paquets",
|
"packages_upgrade_failed": "No s'han pogut actualitzar tots els paquets",
|
||||||
"pattern_backup_archive_name": "Ha de ser un nom d'arxiu vàlid amb un màxim de 30 caràcters, compost per caràcters alfanumèrics i -_. exclusivament",
|
"pattern_backup_archive_name": "Ha de ser un nom d'arxiu vàlid amb un màxim de 30 caràcters, compost per caràcters alfanumèrics i -_. exclusivament",
|
||||||
"pattern_domain": "Ha de ser un nom de domini vàlid (ex.: el-meu-domini.cat)",
|
"pattern_domain": "Ha de ser un nom de domini vàlid (ex.: el-meu-domini.cat)",
|
||||||
|
@ -327,7 +258,7 @@
|
||||||
"regenconf_failed": "No s'ha pogut regenerar la configuració per la/les categoria/es : {categories}",
|
"regenconf_failed": "No s'ha pogut regenerar la configuració per la/les categoria/es : {categories}",
|
||||||
"regenconf_pending_applying": "Aplicació de la configuració pendent per la categoria «{category}»...",
|
"regenconf_pending_applying": "Aplicació de la configuració pendent per la categoria «{category}»...",
|
||||||
"restore_already_installed_app": "Una aplicació amb la ID «{app:s}» ja està instal·lada",
|
"restore_already_installed_app": "Una aplicació amb la ID «{app:s}» ja està instal·lada",
|
||||||
"restore_app_failed": "No s'ha pogut restaurar {app:s}",
|
"app_restore_failed": "No s'ha pogut restaurar {app:s}: {error:s}",
|
||||||
"restore_cleaning_failed": "No s'ha pogut netejar el directori temporal de restauració",
|
"restore_cleaning_failed": "No s'ha pogut netejar el directori temporal de restauració",
|
||||||
"restore_complete": "Restauració completada",
|
"restore_complete": "Restauració completada",
|
||||||
"restore_confirm_yunohost_installed": "Esteu segur de voler restaurar un sistema ja instal·lat? [{answers:s}]",
|
"restore_confirm_yunohost_installed": "Esteu segur de voler restaurar un sistema ja instal·lat? [{answers:s}]",
|
||||||
|
@ -359,8 +290,6 @@
|
||||||
"service_description_metronome": "Gestiona els comptes de missatgeria instantània XMPP",
|
"service_description_metronome": "Gestiona els comptes de missatgeria instantània XMPP",
|
||||||
"service_description_mysql": "Guarda les dades de les aplicacions (base de dades SQL)",
|
"service_description_mysql": "Guarda les dades de les aplicacions (base de dades SQL)",
|
||||||
"service_description_nginx": "Serveix o permet l'accés a totes les pàgines web allotjades en el servidor",
|
"service_description_nginx": "Serveix o permet l'accés a totes les pàgines web allotjades en el servidor",
|
||||||
"service_description_nslcd": "Gestiona les connexions shell dels usuaris YunoHost",
|
|
||||||
"service_description_php7.0-fpm": "Executa les aplicacions escrites en PHP amb NGINX",
|
|
||||||
"service_description_postfix": "Utilitzat per enviar i rebre correus",
|
"service_description_postfix": "Utilitzat per enviar i rebre correus",
|
||||||
"service_description_redis-server": "Una base de dades especialitzada per l'accés ràpid a dades, files d'espera i comunicació entre programes",
|
"service_description_redis-server": "Una base de dades especialitzada per l'accés ràpid a dades, files d'espera i comunicació entre programes",
|
||||||
"service_description_rspamd": "Filtra el correu brossa, i altres funcionalitats relacionades amb el correu",
|
"service_description_rspamd": "Filtra el correu brossa, i altres funcionalitats relacionades amb el correu",
|
||||||
|
@ -421,10 +350,7 @@
|
||||||
"user_unknown": "Usuari desconegut: {user:s}",
|
"user_unknown": "Usuari desconegut: {user:s}",
|
||||||
"user_update_failed": "No s'ha pogut actualitzar l'usuari {user}: {error}",
|
"user_update_failed": "No s'ha pogut actualitzar l'usuari {user}: {error}",
|
||||||
"user_updated": "S'ha canviat la informació de l'usuari",
|
"user_updated": "S'ha canviat la informació de l'usuari",
|
||||||
"users_available": "Usuaris disponibles:",
|
|
||||||
"yunohost_already_installed": "YunoHost ja està instal·lat",
|
"yunohost_already_installed": "YunoHost ja està instal·lat",
|
||||||
"yunohost_ca_creation_failed": "No s'ha pogut crear l'autoritat de certificació",
|
|
||||||
"yunohost_ca_creation_success": "S'ha creat l'autoritat de certificació local.",
|
|
||||||
"yunohost_configured": "YunoHost està configurat",
|
"yunohost_configured": "YunoHost està configurat",
|
||||||
"yunohost_installing": "Instal·lació de YunoHost...",
|
"yunohost_installing": "Instal·lació de YunoHost...",
|
||||||
"yunohost_not_installed": "YunoHost no està instal·lat correctament. Executeu «yunohost tools postinstall»",
|
"yunohost_not_installed": "YunoHost no està instal·lat correctament. Executeu «yunohost tools postinstall»",
|
||||||
|
@ -439,17 +365,6 @@
|
||||||
"log_user_group_delete": "Eliminar grup «{}»",
|
"log_user_group_delete": "Eliminar grup «{}»",
|
||||||
"log_user_group_update": "Actualitzar grup «{}»",
|
"log_user_group_update": "Actualitzar grup «{}»",
|
||||||
"mailbox_disabled": "La bústia de correu està desactivada per al usuari {user:s}",
|
"mailbox_disabled": "La bústia de correu està desactivada per al usuari {user:s}",
|
||||||
"migration_description_0011_setup_group_permission": "Configurar els grups d'usuaris i els permisos per les aplicacions i els serveis",
|
|
||||||
"migration_0011_backup_before_migration": "Creant una còpia de seguretat de la base de dades LDAP i la configuració de les aplicacions abans d'efectuar la migració.",
|
|
||||||
"migration_0011_can_not_backup_before_migration": "No s'ha pogut completar la còpia de seguretat abans de que la migració fallés. Error: {error:s}",
|
|
||||||
"migration_0011_create_group": "Creant un grup per a cada usuari...",
|
|
||||||
"migration_0011_done": "Migració completada. Ja podeu gestionar grups d'usuaris.",
|
|
||||||
"migration_0011_LDAP_update_failed": "No s'ha pogut actualitzar LDAP. Error: {error:s}",
|
|
||||||
"migration_0011_migrate_permission": "Fent la migració dels permisos de la configuració de les aplicacions a LDAP...",
|
|
||||||
"migration_0011_migration_failed_trying_to_rollback": "No s'ha pogut fer la migració… s'intenta tornar el sistema a l'estat anterior.",
|
|
||||||
"migration_0011_rollback_success": "S'ha tornat el sistema a l'estat anterior.",
|
|
||||||
"migration_0011_update_LDAP_database": "Actualitzant la base de dades LDAP...",
|
|
||||||
"migration_0011_update_LDAP_schema": "Actualitzant l'esquema LDAP...",
|
|
||||||
"permission_already_exist": "El permís «{permission:s}» ja existeix",
|
"permission_already_exist": "El permís «{permission:s}» ja existeix",
|
||||||
"permission_created": "S'ha creat el permís «{permission:s}»",
|
"permission_created": "S'ha creat el permís «{permission:s}»",
|
||||||
"permission_creation_failed": "No s'ha pogut crear el permís «{permission}»: {error}",
|
"permission_creation_failed": "No s'ha pogut crear el permís «{permission}»: {error}",
|
||||||
|
@ -458,8 +373,6 @@
|
||||||
"permission_not_found": "No s'ha trobat el permís «{permission:s}»",
|
"permission_not_found": "No s'ha trobat el permís «{permission:s}»",
|
||||||
"permission_update_failed": "No s'ha pogut actualitzar el permís «{permission}»: {error}",
|
"permission_update_failed": "No s'ha pogut actualitzar el permís «{permission}»: {error}",
|
||||||
"permission_updated": "S'ha actualitzat el permís «{permission:s}»",
|
"permission_updated": "S'ha actualitzat el permís «{permission:s}»",
|
||||||
"permission_update_nothing_to_do": "No hi ha cap permís per actualitzar",
|
|
||||||
"migration_description_0012_postgresql_password_to_md5_authentication": "Força l'autenticació PostgreSQL a fer servir MD5 per a les connexions locals",
|
|
||||||
"app_full_domain_unavailable": "Aquesta aplicació ha de ser instal·lada en el seu propi domini, però ja hi ha altres aplicacions instal·lades en el domini «{domain}». Podeu utilitzar un subdomini dedicat a aquesta aplicació.",
|
"app_full_domain_unavailable": "Aquesta aplicació ha de ser instal·lada en el seu propi domini, però ja hi ha altres aplicacions instal·lades en el domini «{domain}». Podeu utilitzar un subdomini dedicat a aquesta aplicació.",
|
||||||
"migrations_not_pending_cant_skip": "Aquestes migracions no estan pendents, així que no poden ser omeses: {ids}",
|
"migrations_not_pending_cant_skip": "Aquestes migracions no estan pendents, així que no poden ser omeses: {ids}",
|
||||||
"app_action_broke_system": "Aquesta acció sembla haver trencat els següents serveis importants: {services}",
|
"app_action_broke_system": "Aquesta acció sembla haver trencat els següents serveis importants: {services}",
|
||||||
|
@ -486,7 +399,6 @@
|
||||||
"group_user_not_in_group": "L'usuari {user} no està en el grup {group}",
|
"group_user_not_in_group": "L'usuari {user} no està en el grup {group}",
|
||||||
"log_permission_create": "Crear el permís «{}»",
|
"log_permission_create": "Crear el permís «{}»",
|
||||||
"log_permission_delete": "Eliminar el permís «{}»",
|
"log_permission_delete": "Eliminar el permís «{}»",
|
||||||
"migration_0011_failed_to_remove_stale_object": "No s'ha pogut eliminar l'objecte obsolet {dn}: {error}",
|
|
||||||
"permission_already_allowed": "El grup «{group}» ja té el permís «{permission}» activat",
|
"permission_already_allowed": "El grup «{group}» ja té el permís «{permission}» activat",
|
||||||
"permission_cannot_remove_main": "No es permet eliminar un permís principal",
|
"permission_cannot_remove_main": "No es permet eliminar un permís principal",
|
||||||
"user_already_exists": "L'usuari «{user}» ja existeix",
|
"user_already_exists": "L'usuari «{user}» ja existeix",
|
||||||
|
@ -496,7 +408,6 @@
|
||||||
"group_cannot_edit_visitors": "El grup «visitors» no es pot editar manualment. És un grup especial que representa els visitants anònims",
|
"group_cannot_edit_visitors": "El grup «visitors» no es pot editar manualment. És un grup especial que representa els visitants anònims",
|
||||||
"group_cannot_edit_primary_group": "El grup «{group}» no es pot editar manualment. És el grup principal destinat a contenir un usuari específic.",
|
"group_cannot_edit_primary_group": "El grup «{group}» no es pot editar manualment. És el grup principal destinat a contenir un usuari específic.",
|
||||||
"log_permission_url": "Actualització de la URL associada al permís «{}»",
|
"log_permission_url": "Actualització de la URL associada al permís «{}»",
|
||||||
"migration_0011_slapd_config_will_be_overwritten": "Sembla que heu modificat manualment la configuració de sldap. Per aquesta migració crítica, YunoHost ha de forçar l'actualització de la configuració sldap. Es farà una còpia de seguretat a {conf_backup_folder}.",
|
|
||||||
"permission_already_up_to_date": "No s'ha actualitzat el permís perquè la petició d'afegir/eliminar ja corresponent a l'estat actual.",
|
"permission_already_up_to_date": "No s'ha actualitzat el permís perquè la petició d'afegir/eliminar ja corresponent a l'estat actual.",
|
||||||
"permission_currently_allowed_for_all_users": "El permís ha el té el grup de tots els usuaris (all_users) a més d'altres grups. Segurament s'hauria de revocar el permís a «all_users» o eliminar els altres grups als que s'ha atribuït.",
|
"permission_currently_allowed_for_all_users": "El permís ha el té el grup de tots els usuaris (all_users) a més d'altres grups. Segurament s'hauria de revocar el permís a «all_users» o eliminar els altres grups als que s'ha atribuït.",
|
||||||
"permission_require_account": "El permís {permission} només té sentit per als usuaris que tenen un compte, i per tant no es pot activar per als visitants.",
|
"permission_require_account": "El permís {permission} només té sentit per als usuaris que tenen un compte, i per tant no es pot activar per als visitants.",
|
||||||
|
@ -513,9 +424,7 @@
|
||||||
"diagnosis_basesystem_kernel": "El servidor funciona amb el nucli de Linux {kernel_version}",
|
"diagnosis_basesystem_kernel": "El servidor funciona amb el nucli de Linux {kernel_version}",
|
||||||
"diagnosis_basesystem_ynh_single_version": "{package} versió: {version}({repo})",
|
"diagnosis_basesystem_ynh_single_version": "{package} versió: {version}({repo})",
|
||||||
"diagnosis_basesystem_ynh_inconsistent_versions": "Esteu utilitzant versions inconsistents dels paquets de YunoHost… probablement a causa d'una actualització fallida o parcial.",
|
"diagnosis_basesystem_ynh_inconsistent_versions": "Esteu utilitzant versions inconsistents dels paquets de YunoHost… probablement a causa d'una actualització fallida o parcial.",
|
||||||
"diagnosis_display_tip_web": "Podeu anar a la secció de Diagnòstics (en la pantalla principal) per veure els errors que s'han trobat.",
|
|
||||||
"diagnosis_failed_for_category": "Ha fallat el diagnòstic per la categoria «{category}»: {error}",
|
"diagnosis_failed_for_category": "Ha fallat el diagnòstic per la categoria «{category}»: {error}",
|
||||||
"diagnosis_display_tip_cli": "Podeu executar «yunohost diagnosis show --issues» per mostrar els errors que s'han trobat.",
|
|
||||||
"diagnosis_cache_still_valid": "(La memòria cau encara és vàlida pel diagnòstic de {category}. No es tornar a diagnosticar de moment!)",
|
"diagnosis_cache_still_valid": "(La memòria cau encara és vàlida pel diagnòstic de {category}. No es tornar a diagnosticar de moment!)",
|
||||||
"diagnosis_cant_run_because_of_dep": "No es pot fer el diagnòstic per {category} mentre hi ha problemes importants relacionats amb {dep}.",
|
"diagnosis_cant_run_because_of_dep": "No es pot fer el diagnòstic per {category} mentre hi ha problemes importants relacionats amb {dep}.",
|
||||||
"diagnosis_ignored_issues": "(+ {nb_ignored} problema(es) ignorat(s))",
|
"diagnosis_ignored_issues": "(+ {nb_ignored} problema(es) ignorat(s))",
|
||||||
|
@ -548,9 +457,6 @@
|
||||||
"diagnosis_swap_ok": "El sistema té {total} de swap!",
|
"diagnosis_swap_ok": "El sistema té {total} de swap!",
|
||||||
"diagnosis_regenconf_allgood": "Tots els fitxers de configuració estan en acord amb la configuració recomanada!",
|
"diagnosis_regenconf_allgood": "Tots els fitxers de configuració estan en acord amb la configuració recomanada!",
|
||||||
"diagnosis_regenconf_manually_modified_details": "No hauria de ser cap problema sempre i quan sapigueu el que esteu fent! YunoHost deixarà d'actualitzar aquest fitxer de manera automàtica… Però tingueu en compte que les actualitzacions de YunoHost podrien tenir canvis recomanats importants. Si voleu podeu mirar les diferències amb <cmd>yunohost tools regen-conf {category} --dry-run --with-diff</cmd> i forçar el restabliment de la configuració recomanada amb <cmd>yunohost tools regen-conf {category} --force</cmd>",
|
"diagnosis_regenconf_manually_modified_details": "No hauria de ser cap problema sempre i quan sapigueu el que esteu fent! YunoHost deixarà d'actualitzar aquest fitxer de manera automàtica… Però tingueu en compte que les actualitzacions de YunoHost podrien tenir canvis recomanats importants. Si voleu podeu mirar les diferències amb <cmd>yunohost tools regen-conf {category} --dry-run --with-diff</cmd> i forçar el restabliment de la configuració recomanada amb <cmd>yunohost tools regen-conf {category} --force</cmd>",
|
||||||
"diagnosis_regenconf_manually_modified_debian": "El fitxer de configuració {file} ha estat modificat manualment respecte al fitxer per defecte de Debian.",
|
|
||||||
"diagnosis_regenconf_manually_modified_debian_details": "No hauria de ser cap problema, però ho haureu de vigilar...",
|
|
||||||
"diagnosis_security_all_good": "No s'ha trobat cap vulnerabilitat de seguretat crítica.",
|
|
||||||
"diagnosis_security_vulnerable_to_meltdown": "Sembla que el sistema és vulnerable a la vulnerabilitat de seguretat crítica Meltdown",
|
"diagnosis_security_vulnerable_to_meltdown": "Sembla que el sistema és vulnerable a la vulnerabilitat de seguretat crítica Meltdown",
|
||||||
"diagnosis_description_basesystem": "Sistema de base",
|
"diagnosis_description_basesystem": "Sistema de base",
|
||||||
"diagnosis_description_ip": "Connectivitat a Internet",
|
"diagnosis_description_ip": "Connectivitat a Internet",
|
||||||
|
@ -559,7 +465,6 @@
|
||||||
"diagnosis_description_systemresources": "Recursos del sistema",
|
"diagnosis_description_systemresources": "Recursos del sistema",
|
||||||
"diagnosis_description_ports": "Exposició dels ports",
|
"diagnosis_description_ports": "Exposició dels ports",
|
||||||
"diagnosis_description_regenconf": "Configuració del sistema",
|
"diagnosis_description_regenconf": "Configuració del sistema",
|
||||||
"diagnosis_description_security": "Verificacions de seguretat",
|
|
||||||
"diagnosis_ports_could_not_diagnose": "No s'ha pogut diagnosticar si els ports són accessibles des de l'exterior.",
|
"diagnosis_ports_could_not_diagnose": "No s'ha pogut diagnosticar si els ports són accessibles des de l'exterior.",
|
||||||
"diagnosis_ports_could_not_diagnose_details": "Error: {error}",
|
"diagnosis_ports_could_not_diagnose_details": "Error: {error}",
|
||||||
"diagnosis_ports_unreachable": "El port {port} no és accessible des de l'exterior.",
|
"diagnosis_ports_unreachable": "El port {port} no és accessible des de l'exterior.",
|
||||||
|
@ -572,10 +477,8 @@
|
||||||
"apps_catalog_failed_to_download": "No s'ha pogut descarregar el catàleg d'aplicacions {apps_catalog}: {error}",
|
"apps_catalog_failed_to_download": "No s'ha pogut descarregar el catàleg d'aplicacions {apps_catalog}: {error}",
|
||||||
"apps_catalog_obsolete_cache": "La memòria cau del catàleg d'aplicacions és buida o obsoleta.",
|
"apps_catalog_obsolete_cache": "La memòria cau del catàleg d'aplicacions és buida o obsoleta.",
|
||||||
"apps_catalog_update_success": "S'ha actualitzat el catàleg d'aplicacions!",
|
"apps_catalog_update_success": "S'ha actualitzat el catàleg d'aplicacions!",
|
||||||
"diagnosis_mail_ougoing_port_25_ok": "El port de sortida 25 no està bloquejat i els correus es poden enviar a altres servidors.",
|
|
||||||
"diagnosis_mail_outgoing_port_25_blocked": "Sembla que el port de sortida 25 està bloquejat. Hauríeu d'intentar desbloquejar-lo al panell de configuració del proveïdor d'accés a internet (o allotjador). Mentrestant, el servidor no podrà enviar correus a altres servidors.",
|
"diagnosis_mail_outgoing_port_25_blocked": "Sembla que el port de sortida 25 està bloquejat. Hauríeu d'intentar desbloquejar-lo al panell de configuració del proveïdor d'accés a internet (o allotjador). Mentrestant, el servidor no podrà enviar correus a altres servidors.",
|
||||||
"diagnosis_description_mail": "Correu electrònic",
|
"diagnosis_description_mail": "Correu electrònic",
|
||||||
"migration_description_0013_futureproof_apps_catalog_system": "Migrar al nou sistema de catàleg d'aplicacions resistent al pas del temps",
|
|
||||||
"app_upgrade_script_failed": "Hi ha hagut un error en el script d'actualització de l'aplicació",
|
"app_upgrade_script_failed": "Hi ha hagut un error en el script d'actualització de l'aplicació",
|
||||||
"diagnosis_services_bad_status_tip": "Podeu intentar <a href='#/services/{service}'>reiniciar el servei</a>, i si no funciona, podeu mirar <a href='#/services/{service}'>els registres a la pàgina web d'administració</a> (des de la línia de comandes, ho podeu fer utilitzant <cmd>yunohost service restart {service}</cmd> i <cmd>yunohost service log {service}</cmd>).",
|
"diagnosis_services_bad_status_tip": "Podeu intentar <a href='#/services/{service}'>reiniciar el servei</a>, i si no funciona, podeu mirar <a href='#/services/{service}'>els registres a la pàgina web d'administració</a> (des de la línia de comandes, ho podeu fer utilitzant <cmd>yunohost service restart {service}</cmd> i <cmd>yunohost service log {service}</cmd>).",
|
||||||
"diagnosis_ports_forwarding_tip": "Per arreglar aquest problema, segurament s'ha de configurar el reenviament de ports en el router tal i com s'explica a <a href='https://yunohost.org/isp_box_config'>https://yunohost.org/isp_box_config</a>",
|
"diagnosis_ports_forwarding_tip": "Per arreglar aquest problema, segurament s'ha de configurar el reenviament de ports en el router tal i com s'explica a <a href='https://yunohost.org/isp_box_config'>https://yunohost.org/isp_box_config</a>",
|
||||||
|
@ -584,7 +487,6 @@
|
||||||
"diagnosis_http_timeout": "S'ha exhaurit el temps d'esperar intentant connectar amb el servidor des de l'exterior.<br>1. La causa més probable per a aquest problema és que el port 80 (i 443) <a href='https://yunohost.org/isp_box_config'>no reenvien correctament cap al vostre servidor</a>.<br>2. També us hauríeu d'assegurar que el servei nginx estigui funcionant<br>3. En configuracions més complexes: assegureu-vos que no hi ha cap tallafoc o reverse-proxy interferint.",
|
"diagnosis_http_timeout": "S'ha exhaurit el temps d'esperar intentant connectar amb el servidor des de l'exterior.<br>1. La causa més probable per a aquest problema és que el port 80 (i 443) <a href='https://yunohost.org/isp_box_config'>no reenvien correctament cap al vostre servidor</a>.<br>2. També us hauríeu d'assegurar que el servei nginx estigui funcionant<br>3. En configuracions més complexes: assegureu-vos que no hi ha cap tallafoc o reverse-proxy interferint.",
|
||||||
"diagnosis_http_connection_error": "Error de connexió: no s'ha pogut connectar amb el domini demanat, segurament és inaccessible.",
|
"diagnosis_http_connection_error": "Error de connexió: no s'ha pogut connectar amb el domini demanat, segurament és inaccessible.",
|
||||||
"yunohost_postinstall_end_tip": "S'ha completat la post-instal·lació. Per acabar la configuració, considereu:\n - afegir un primer usuari a través de la secció «Usuaris» a la pàgina web d'administració (o emprant «yunohost user create <username>» a la línia d'ordres);\n - diagnosticar possibles problemes a través de la secció «Diagnòstics» a la pàgina web d'administració (o emprant «yunohost diagnosis run» a la línia d'ordres);\n - llegir les seccions «Finalizing your setup» i «Getting to know Yunohost» a la documentació per administradors: https://yunohost.org/admindoc.",
|
"yunohost_postinstall_end_tip": "S'ha completat la post-instal·lació. Per acabar la configuració, considereu:\n - afegir un primer usuari a través de la secció «Usuaris» a la pàgina web d'administració (o emprant «yunohost user create <username>» a la línia d'ordres);\n - diagnosticar possibles problemes a través de la secció «Diagnòstics» a la pàgina web d'administració (o emprant «yunohost diagnosis run» a la línia d'ordres);\n - llegir les seccions «Finalizing your setup» i «Getting to know Yunohost» a la documentació per administradors: https://yunohost.org/admindoc.",
|
||||||
"migration_description_0014_remove_app_status_json": "Eliminar els fitxers d'aplicació status.json heretats",
|
|
||||||
"diagnosis_services_running": "El servei {service} s'està executant!",
|
"diagnosis_services_running": "El servei {service} s'està executant!",
|
||||||
"diagnosis_services_conf_broken": "La configuració pel servei {service} està trencada!",
|
"diagnosis_services_conf_broken": "La configuració pel servei {service} està trencada!",
|
||||||
"diagnosis_ports_needed_by": "És necessari exposar aquest port per a les funcions {category} (servei {service})",
|
"diagnosis_ports_needed_by": "És necessari exposar aquest port per a les funcions {category} (servei {service})",
|
||||||
|
@ -594,12 +496,11 @@
|
||||||
"log_app_config_apply": "Afegeix la configuració a l'aplicació «{}»",
|
"log_app_config_apply": "Afegeix la configuració a l'aplicació «{}»",
|
||||||
"diagnosis_never_ran_yet": "Sembla que el servidor s'ha configurat recentment i encara no hi cap informe de diagnòstic per mostrar. S'ha d'executar un diagnòstic complet primer, ja sigui des de la pàgina web d'administració o utilitzant la comanda «yunohost diagnosis run» al terminal.",
|
"diagnosis_never_ran_yet": "Sembla que el servidor s'ha configurat recentment i encara no hi cap informe de diagnòstic per mostrar. S'ha d'executar un diagnòstic complet primer, ja sigui des de la pàgina web d'administració o utilitzant la comanda «yunohost diagnosis run» al terminal.",
|
||||||
"diagnosis_description_web": "Web",
|
"diagnosis_description_web": "Web",
|
||||||
"diagnosis_basesystem_hardware_board": "El model de la targeta del servidor és {model}",
|
|
||||||
"diagnosis_basesystem_hardware": "L'arquitectura del maquinari del servidor és {virt} {arch}",
|
"diagnosis_basesystem_hardware": "L'arquitectura del maquinari del servidor és {virt} {arch}",
|
||||||
"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>",
|
||||||
|
@ -688,10 +589,6 @@
|
||||||
"pattern_email_forward": "Ha de ser una adreça de correu vàlida, s'accepta el símbol «+» (per exemple, algu+etiqueta@exemple.cat)",
|
"pattern_email_forward": "Ha de ser una adreça de correu vàlida, s'accepta el símbol «+» (per exemple, algu+etiqueta@exemple.cat)",
|
||||||
"invalid_number": "Ha de ser una xifra",
|
"invalid_number": "Ha de ser una xifra",
|
||||||
"migration_0019_slapd_config_will_be_overwritten": "Sembla que heu modificat manualment la configuració sldap. Per a aquesta migració crítica, YunoHist necessita forçar l'actualització de la configuració sldap. Es crearà una còpia de seguretat dels fitxers originals a {conf_backup_folder}.",
|
"migration_0019_slapd_config_will_be_overwritten": "Sembla que heu modificat manualment la configuració sldap. Per a aquesta migració crítica, YunoHist necessita forçar l'actualització de la configuració sldap. Es crearà una còpia de seguretat dels fitxers originals a {conf_backup_folder}.",
|
||||||
"migration_0019_rollback_success": "S'ha restaurat el sistema.",
|
|
||||||
"migration_0019_migration_failed_trying_to_rollback": "No s'ha pogut fer la migració... intentant restaurar el sistema.",
|
|
||||||
"migration_0019_can_not_backup_before_migration": "No s'ha pogut completar la còpia de seguretat del sistema abans de que fallés la migració. Error: {error:s}",
|
|
||||||
"migration_0019_backup_before_migration": "Creant una còpia de seguretat de la base de dades LDAP i de la configuració de les aplicacions abans de la migració actual.",
|
|
||||||
"migration_0019_add_new_attributes_in_ldap": "Afegir nous atributs per als permisos en la base de dades LDAP",
|
"migration_0019_add_new_attributes_in_ldap": "Afegir nous atributs per als permisos en la base de dades LDAP",
|
||||||
"migration_description_0019_extend_permissions_features": "Amplia/refés el sistema de gestió dels permisos de l'aplicació",
|
"migration_description_0019_extend_permissions_features": "Amplia/refés el sistema de gestió dels permisos de l'aplicació",
|
||||||
"migrating_legacy_permission_settings": "Migració dels paràmetres de permisos antics...",
|
"migrating_legacy_permission_settings": "Migració dels paràmetres de permisos antics...",
|
||||||
|
@ -717,5 +614,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ó"
|
||||||
}
|
}
|
|
@ -1,3 +1,68 @@
|
||||||
{
|
{
|
||||||
"password_too_simple_1": "Heslo musí být aspoň 8 znaků dlouhé"
|
"password_too_simple_1": "Heslo musí být aspoň 8 znaků dlouhé",
|
||||||
|
"app_already_installed": "{app:s} je již nainstalován/a",
|
||||||
|
"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_changed": "Administrační heslo bylo změněno",
|
||||||
|
"admin_password_change_failed": "Nebylo možné změnit heslo",
|
||||||
|
"admin_password": "Administrační heslo",
|
||||||
|
"additional_urls_already_removed": "Další URL '{url:s}' již bylo odebráno u 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}'",
|
||||||
|
"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"
|
||||||
}
|
}
|
181
locales/de.json
181
locales/de.json
|
@ -17,7 +17,6 @@
|
||||||
"app_unknown": "Unbekannte App",
|
"app_unknown": "Unbekannte App",
|
||||||
"app_upgrade_failed": "{app:s} konnte nicht aktualisiert werden: {error}",
|
"app_upgrade_failed": "{app:s} konnte nicht aktualisiert werden: {error}",
|
||||||
"app_upgraded": "{app:s} aktualisiert",
|
"app_upgraded": "{app:s} aktualisiert",
|
||||||
"ask_email": "E-Mail-Adresse",
|
|
||||||
"ask_firstname": "Vorname",
|
"ask_firstname": "Vorname",
|
||||||
"ask_lastname": "Nachname",
|
"ask_lastname": "Nachname",
|
||||||
"ask_main_domain": "Hauptdomain",
|
"ask_main_domain": "Hauptdomain",
|
||||||
|
@ -33,7 +32,6 @@
|
||||||
"backup_delete_error": "Pfad '{path:s}' konnte nicht gelöscht werden",
|
"backup_delete_error": "Pfad '{path:s}' konnte nicht gelöscht werden",
|
||||||
"backup_deleted": "Backup wurde entfernt",
|
"backup_deleted": "Backup wurde entfernt",
|
||||||
"backup_hook_unknown": "Der Datensicherungshook '{hook:s}' unbekannt",
|
"backup_hook_unknown": "Der Datensicherungshook '{hook:s}' unbekannt",
|
||||||
"backup_invalid_archive": "Dies ist kein Backup-Archiv",
|
|
||||||
"backup_nothings_done": "Keine Änderungen zur Speicherung",
|
"backup_nothings_done": "Keine Änderungen zur Speicherung",
|
||||||
"backup_output_directory_forbidden": "Wähle ein anderes Ausgabeverzeichnis. Datensicherungen können nicht in /bin, /boot, /dev, /etc, /lib, /root, /run, /sbin, /sys, /usr, /var oder in Unterordnern von /home/yunohost.backup/archives erstellt werden",
|
"backup_output_directory_forbidden": "Wähle ein anderes Ausgabeverzeichnis. Datensicherungen können nicht in /bin, /boot, /dev, /etc, /lib, /root, /run, /sbin, /sys, /usr, /var oder in Unterordnern von /home/yunohost.backup/archives erstellt werden",
|
||||||
"backup_output_directory_not_empty": "Der gewählte Ausgabeordner sollte leer sein",
|
"backup_output_directory_not_empty": "Der gewählte Ausgabeordner sollte leer sein",
|
||||||
|
@ -52,17 +50,12 @@
|
||||||
"domain_unknown": "Unbekannte Domain",
|
"domain_unknown": "Unbekannte Domain",
|
||||||
"done": "Erledigt",
|
"done": "Erledigt",
|
||||||
"downloading": "Wird heruntergeladen…",
|
"downloading": "Wird heruntergeladen…",
|
||||||
"dyndns_cron_installed": "DynDNS Cronjob erfolgreich erstellt",
|
|
||||||
"dyndns_cron_remove_failed": "Der DynDNS Cronjob konnte aufgrund dieses Fehlers nicht entfernt werden: {error}",
|
|
||||||
"dyndns_cron_removed": "DynDNS-Cronjob gelöscht",
|
|
||||||
"dyndns_ip_update_failed": "Konnte die IP-Adresse für DynDNS nicht aktualisieren",
|
"dyndns_ip_update_failed": "Konnte die IP-Adresse für DynDNS nicht aktualisieren",
|
||||||
"dyndns_ip_updated": "Aktualisierung Ihrer IP-Adresse bei DynDNS",
|
"dyndns_ip_updated": "Aktualisierung Ihrer IP-Adresse bei DynDNS",
|
||||||
"dyndns_key_generating": "Generierung des DNS-Schlüssels..., das könnte eine Weile dauern.",
|
"dyndns_key_generating": "Generierung des DNS-Schlüssels..., das könnte eine Weile dauern.",
|
||||||
"dyndns_registered": "DynDNS Domain registriert",
|
"dyndns_registered": "DynDNS Domain registriert",
|
||||||
"dyndns_registration_failed": "DynDNS Domain konnte nicht registriert werden: {error:s}",
|
"dyndns_registration_failed": "DynDNS Domain konnte nicht registriert werden: {error:s}",
|
||||||
"dyndns_unavailable": "Die Domäne {domain:s} ist nicht verfügbar.",
|
"dyndns_unavailable": "Die Domäne {domain:s} ist nicht verfügbar.",
|
||||||
"executing_command": "Führe den Behfehl '{command:s}' aus…",
|
|
||||||
"executing_script": "Skript '{script:s}' wird ausgeührt…",
|
|
||||||
"extracting": "Wird entpackt...",
|
"extracting": "Wird entpackt...",
|
||||||
"field_invalid": "Feld '{:s}' ist unbekannt",
|
"field_invalid": "Feld '{:s}' ist unbekannt",
|
||||||
"firewall_reload_failed": "Firewall konnte nicht neu geladen werden",
|
"firewall_reload_failed": "Firewall konnte nicht neu geladen werden",
|
||||||
|
@ -73,36 +66,32 @@
|
||||||
"hook_list_by_invalid": "Dieser Wert kann nicht verwendet werden, um Hooks anzuzeigen",
|
"hook_list_by_invalid": "Dieser Wert kann nicht verwendet werden, um Hooks anzuzeigen",
|
||||||
"hook_name_unknown": "Hook '{name:s}' ist nicht bekannt",
|
"hook_name_unknown": "Hook '{name:s}' ist nicht bekannt",
|
||||||
"installation_complete": "Installation vollständig",
|
"installation_complete": "Installation vollständig",
|
||||||
"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",
|
"mail_alias_remove_failed": "Konnte E-Mail-Alias '{mail:s}' nicht entfernen",
|
||||||
"mail_alias_remove_failed": "E-Mail Alias '{mail:s}' konnte nicht entfernt werden",
|
|
||||||
"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": "Mailweiterleitung '{mail:s}' konnte nicht entfernt 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",
|
||||||
"no_internet_connection": "Der Server ist nicht mit dem Internet verbunden",
|
"packages_upgrade_failed": "Konnte nicht alle Pakete aktualisieren",
|
||||||
"packages_upgrade_failed": "Es konnten nicht alle Pakete aktualisiert werden",
|
"pattern_backup_archive_name": "Muss ein gültiger Dateiname mit maximal 30 alphanumerischen sowie -_. Zeichen sein",
|
||||||
"pattern_backup_archive_name": "Ein gültiger Dateiname kann nur aus maximal 30 alphanumerischen sowie -_. Zeichen bestehen",
|
|
||||||
"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_app_failed": "App '{app:s}' konnte nicht wiederhergestellt werden",
|
"restore_cleaning_failed": "Das temporäre Dateiverzeichnis für Systemrestaurierung konnte nicht gelöscht werden",
|
||||||
"restore_cleaning_failed": "Das temporäre Wiederherstellungsverzeichnis konnte nicht geleert werden",
|
"restore_complete": "Vollständig wiederhergestellt",
|
||||||
"restore_complete": "Wiederherstellung abgeschlossen",
|
|
||||||
"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}]",
|
||||||
"restore_failed": "System kann nicht Wiederhergestellt werden",
|
"restore_failed": "System kann nicht Wiederhergestellt werden",
|
||||||
"restore_hook_unavailable": "Das Wiederherstellungsskript für '{part:s}' steht weder in deinem System noch im Archiv zur Verfügung",
|
"restore_hook_unavailable": "Das Wiederherstellungsskript für '{part:s}' steht weder in deinem System noch im Archiv zur Verfügung",
|
||||||
"restore_nothings_done": "Es wurde nicht wiederhergestellt",
|
"restore_nothings_done": "Nichts wurde wiederhergestellt",
|
||||||
"restore_running_app_script": "Wiederherstellung wird ausfeührt für App '{app:s}'...",
|
"restore_running_app_script": "Wiederherstellung wird ausfeührt für App '{app:s}'...",
|
||||||
"restore_running_hooks": "Wiederherstellung wird gestartet…",
|
"restore_running_hooks": "Wiederherstellung wird gestartet…",
|
||||||
"service_add_failed": "Der Dienst '{service:s}' konnte nicht hinzugefügt werden",
|
"service_add_failed": "Der Dienst '{service:s}' konnte nicht hinzugefügt werden",
|
||||||
|
@ -110,11 +99,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",
|
||||||
|
@ -145,12 +134,11 @@
|
||||||
"user_update_failed": "Benutzer kann nicht aktualisiert werden",
|
"user_update_failed": "Benutzer kann nicht aktualisiert werden",
|
||||||
"user_updated": "Der Benutzer wurde aktualisiert",
|
"user_updated": "Der Benutzer wurde aktualisiert",
|
||||||
"yunohost_already_installed": "YunoHost ist bereits installiert",
|
"yunohost_already_installed": "YunoHost ist bereits installiert",
|
||||||
"yunohost_ca_creation_failed": "Zertifikatsstelle konnte nicht erstellt werden",
|
|
||||||
"yunohost_configured": "YunoHost wurde konfiguriert",
|
"yunohost_configured": "YunoHost wurde konfiguriert",
|
||||||
"yunohost_installing": "YunoHost wird installiert…",
|
"yunohost_installing": "YunoHost wird installiert…",
|
||||||
"yunohost_not_installed": "YunoHost ist nicht oder unvollständig installiert worden. Bitte 'yunohost tools postinstall' ausführen",
|
"yunohost_not_installed": "YunoHost ist nicht oder unvollständig installiert worden. Bitte 'yunohost tools postinstall' ausführen",
|
||||||
"app_not_properly_removed": "{app:s} wurde nicht ordnungsgemäß entfernt",
|
"app_not_properly_removed": "{app:s} wurde nicht ordnungsgemäß entfernt",
|
||||||
"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",
|
||||||
|
@ -161,34 +149,26 @@
|
||||||
"domains_available": "Verfügbare Domains:",
|
"domains_available": "Verfügbare Domains:",
|
||||||
"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",
|
"mailbox_used_space_dovecot_down": "Der Dovecot-Mailbox-Dienst muss aktiv sein, wenn Sie den von der Mailbox belegten Speicher abrufen wollen",
|
||||||
"mailbox_used_space_dovecot_down": "Der Dovecot Mailbox Dienst muss gestartet sein, wenn du den von der Mailbox belegten Speicher angezeigen lassen willst",
|
|
||||||
"package_unknown": "Unbekanntes Paket '{pkgname}'",
|
|
||||||
"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_unknown": "Unbekannte Domain '{domain:s}'",
|
|
||||||
"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...",
|
||||||
"certmanager_attempt_to_renew_nonLE_cert": "Das Zertifikat der Domain '{domain:s}' wurde nicht von Let's Encrypt ausgestellt. Es kann nicht automatisch erneuert werden!",
|
"certmanager_attempt_to_renew_nonLE_cert": "Das Zertifikat der Domain '{domain:s}' wurde nicht von Let's Encrypt ausgestellt. Es kann nicht automatisch erneuert werden!",
|
||||||
"certmanager_attempt_to_renew_valid_cert": "Das Zertifikat der Domain {domain:s} läuft nicht in Kürze ab! (Benutze --force um diese Nachricht zu umgehen)",
|
"certmanager_attempt_to_renew_valid_cert": "Das Zertifikat der Domain {domain:s} läuft nicht in Kürze ab! (Benutze --force um diese Nachricht zu umgehen)",
|
||||||
"certmanager_domain_http_not_working": "Es scheint so, dass die Domain {domain:s} nicht über HTTP erreicht werden kann. Bitte überprüfe, ob deine DNS und nginx Konfiguration in Ordnung ist. (Wenn du weißt was du tust, nutze \"--no-checks\" um die überprüfung zu überspringen.)",
|
"certmanager_domain_http_not_working": "Es scheint so, dass die Domain {domain:s} nicht über HTTP erreicht werden kann. Bitte überprüfe, ob deine DNS und nginx Konfiguration in Ordnung ist. (Wenn du weißt was du tust, nutze \"--no-checks\" um die überprüfung zu überspringen.)",
|
||||||
"certmanager_error_no_A_record": "Kein DNS 'A' Eintrag für die Domain {domain:s} gefunden. Dein Domainname muss auf diese Maschine weitergeleitet werden, um ein Let's Encrypt Zertifikat installieren zu können! (Wenn du weißt was du tust, kannst du --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_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",
|
||||||
"certmanager_no_cert_file": "Die Zertifikatsdatei für die Domain {domain:s} (Datei: {file:s}) konnte nicht gelesen werden",
|
"certmanager_no_cert_file": "Die Zertifikatsdatei für die Domain {domain:s} (Datei: {file:s}) konnte nicht gelesen werden",
|
||||||
"certmanager_conflicting_nginx_file": "Die Domain konnte nicht für die ACME challenge vorbereitet werden: Die nginx Konfigurationsdatei {filepath:s} verursacht Probleme und sollte vorher entfernt werden",
|
|
||||||
"domain_cannot_remove_main": "Die primäre Domain konnten nicht entfernt werden. Lege zuerst einen neue primäre Domain Sie können die Domäne '{domain:s}' nicht entfernen, weil Sie die Hauptdomäne ist. Sie müssen zuerst eine andere Domäne als Hauptdomäne festlegen. Sie können das mit dem Befehl <cmd>'yunohost domain main-domain -n <another-domain></cmd> tun. Hier ist eine Liste der möglichen Domänen: {other_domains:s}",
|
"domain_cannot_remove_main": "Die primäre Domain konnten nicht entfernt werden. Lege zuerst einen neue primäre Domain Sie können die Domäne '{domain:s}' nicht entfernen, weil Sie die Hauptdomäne ist. Sie müssen zuerst eine andere Domäne als Hauptdomäne festlegen. Sie können das mit dem Befehl <cmd>'yunohost domain main-domain -n <another-domain></cmd> tun. Hier ist eine Liste der möglichen Domänen: {other_domains:s}",
|
||||||
"certmanager_self_ca_conf_file_not_found": "Die Konfigurationsdatei der Zertifizierungsstelle für selbstsignierte Zertifikate wurde nicht gefunden (Datei {file:s})",
|
"certmanager_self_ca_conf_file_not_found": "Die Konfigurationsdatei der Zertifizierungsstelle für selbstsignierte Zertifikate wurde nicht gefunden (Datei {file:s})",
|
||||||
"certmanager_acme_not_configured_for_domain": "Die ACME Challenge kann im Moment nicht für {domain} ausgeführt werden, weil in ihrer nginx conf das entsprechende Code-Snippet fehlt... Bitte stellen Sie sicher, dass Ihre nginx-Konfiguration mit 'yunohost tools regen-conf nginx --dry-run --with-diff' auf dem neuesten Stand ist.",
|
"certmanager_acme_not_configured_for_domain": "Die ACME Challenge kann im Moment nicht für {domain} ausgeführt werden, weil in ihrer nginx conf das entsprechende Code-Snippet fehlt... Bitte stellen Sie sicher, dass Ihre nginx-Konfiguration mit 'yunohost tools regen-conf nginx --dry-run --with-diff' auf dem neuesten Stand ist.",
|
||||||
"certmanager_unable_to_parse_self_CA_name": "Der Name der Zertifizierungsstelle für selbstsignierte Zertifikate konnte nicht aufgelöst werden (Datei: {file:s})",
|
"certmanager_unable_to_parse_self_CA_name": "Der Name der Zertifizierungsstelle für selbstsignierte Zertifikate konnte nicht aufgelöst werden (Datei: {file:s})",
|
||||||
"certmanager_http_check_timeout": "Eine Zeitüberschreitung ist aufgetreten, als der Server versuchte sich selbst über HTTP mit der öffentlichen IP (Domain '{domain:s}' mit der IP '{ip:s}') zu erreichen. Möglicherweise ist dafür hairpinning oder eine falsch konfigurierte Firewall/Router deines Servers dafür verantwortlich.",
|
|
||||||
"certmanager_couldnt_fetch_intermediate_cert": "Eine Zeitüberschreitung ist aufgetreten als der Server versuchte die Teilzertifikate von Let's Encrypt zusammenzusetzen. Die Installation/Erneuerung des Zertifikats wurde abgebrochen — bitte versuche es später erneut.",
|
|
||||||
"domain_hostname_failed": "Sie können keinen neuen Hostnamen verwenden. Das kann zukünftige Probleme verursachen (es kann auch sein, dass es funktioniert).",
|
"domain_hostname_failed": "Sie können keinen neuen Hostnamen verwenden. Das kann zukünftige Probleme verursachen (es kann auch sein, dass es funktioniert).",
|
||||||
"yunohost_ca_creation_success": "Die lokale Zertifizierungs-Authorität wurde angelegt.",
|
|
||||||
"app_already_installed_cant_change_url": "Diese Application ist bereits installiert. Die URL kann durch diese Funktion nicht modifiziert werden. Überprüfe ob `app changeurl` verfügbar ist.",
|
"app_already_installed_cant_change_url": "Diese Application ist bereits installiert. Die URL kann durch diese Funktion nicht modifiziert werden. Überprüfe ob `app changeurl` verfügbar ist.",
|
||||||
"app_change_url_failed_nginx_reload": "NGINX konnte nicht neu gestartet werden. Hier ist der Output von 'nginx -t':\n{nginx_errors:s}",
|
"app_change_url_failed_nginx_reload": "NGINX konnte nicht neu gestartet werden. Hier ist der Output von 'nginx -t':\n{nginx_errors:s}",
|
||||||
"app_change_url_identical_domains": "Die alte und neue domain/url_path sind identisch: ('{domain:s} {path:s}'). Es gibt nichts zu tun.",
|
"app_change_url_identical_domains": "Die alte und neue domain/url_path sind identisch: ('{domain:s} {path:s}'). Es gibt nichts zu tun.",
|
||||||
|
@ -202,7 +182,6 @@
|
||||||
"backup_archive_system_part_not_available": "Der System-Teil '{part:s}' ist in diesem Backup nicht enthalten",
|
"backup_archive_system_part_not_available": "Der System-Teil '{part:s}' ist in diesem Backup nicht enthalten",
|
||||||
"backup_archive_writing_error": "Die Dateien '{source:s} (im Ordner '{dest:s}') konnten nicht in das komprimierte Archiv-Backup '{archive:s}' hinzugefügt werden",
|
"backup_archive_writing_error": "Die Dateien '{source:s} (im Ordner '{dest:s}') konnten nicht in das komprimierte Archiv-Backup '{archive:s}' hinzugefügt werden",
|
||||||
"app_change_url_success": "{app:s} URL ist nun {domain:s}{path:s}",
|
"app_change_url_success": "{app:s} URL ist nun {domain:s}{path:s}",
|
||||||
"backup_applying_method_borg": "Sende alle Dateien zur Sicherung ins borg-backup repository...",
|
|
||||||
"global_settings_bad_type_for_setting": "Falscher Typ der Einstellung {setting:s}. Empfangen: {received_type:s}, aber erwarteter Typ: {expected_type:s}",
|
"global_settings_bad_type_for_setting": "Falscher Typ der Einstellung {setting:s}. Empfangen: {received_type:s}, aber erwarteter Typ: {expected_type:s}",
|
||||||
"global_settings_bad_choice_for_enum": "Wert des Einstellungsparameters {setting:s} ungültig. Der Wert den Sie eingegeben haben: '{choice:s}', die gültigen Werte für diese Einstellung: {available_choices:s}",
|
"global_settings_bad_choice_for_enum": "Wert des Einstellungsparameters {setting:s} ungültig. Der Wert den Sie eingegeben haben: '{choice:s}', die gültigen Werte für diese Einstellung: {available_choices:s}",
|
||||||
"file_does_not_exist": "Die Datei {path: s} existiert nicht.",
|
"file_does_not_exist": "Die Datei {path: s} existiert nicht.",
|
||||||
|
@ -212,7 +191,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.",
|
||||||
|
@ -225,12 +204,10 @@
|
||||||
"backup_method_tar_finished": "Tar-Backup-Archiv erstellt",
|
"backup_method_tar_finished": "Tar-Backup-Archiv erstellt",
|
||||||
"backup_method_custom_finished": "Benutzerdefinierte Sicherungsmethode '{method:s}' beendet",
|
"backup_method_custom_finished": "Benutzerdefinierte Sicherungsmethode '{method:s}' beendet",
|
||||||
"backup_method_copy_finished": "Sicherungskopie beendet",
|
"backup_method_copy_finished": "Sicherungskopie beendet",
|
||||||
"backup_method_borg_finished": "Backup in Borg beendet",
|
|
||||||
"backup_custom_mount_error": "Bei der benutzerdefinierten Sicherungsmethode ist beim Arbeitsschritt \"Einhängen/Verbinden\" ein Fehler aufgetreten",
|
"backup_custom_mount_error": "Bei der benutzerdefinierten Sicherungsmethode ist beim Arbeitsschritt \"Einhängen/Verbinden\" ein Fehler aufgetreten",
|
||||||
"backup_custom_backup_error": "Bei der benutzerdefinierten Sicherungsmethode ist beim Arbeitsschritt \"Sicherung\" ein Fehler aufgetreten",
|
"backup_custom_backup_error": "Bei der benutzerdefinierten Sicherungsmethode ist beim Arbeitsschritt \"Sicherung\" ein Fehler aufgetreten",
|
||||||
"backup_csv_creation_failed": "Die zur Wiederherstellung erforderliche CSV-Datei kann nicht erstellt werden",
|
"backup_csv_creation_failed": "Die zur Wiederherstellung erforderliche CSV-Datei kann nicht erstellt werden",
|
||||||
"backup_couldnt_bind": "{src:s} konnte nicht an {dest:s} angebunden werden.",
|
"backup_couldnt_bind": "{src:s} konnte nicht an {dest:s} angebunden werden.",
|
||||||
"backup_borg_not_implemented": "Die Borg-Sicherungsmethode ist noch nicht implementiert",
|
|
||||||
"backup_ask_for_copying_if_needed": "Möchten Sie die Sicherung mit {size:s}MB temporär durchführen? (Dieser Weg wird verwendet, da einige Dateien nicht mit einer effizienteren Methode vorbereitet werden konnten.)",
|
"backup_ask_for_copying_if_needed": "Möchten Sie die Sicherung mit {size:s}MB temporär durchführen? (Dieser Weg wird verwendet, da einige Dateien nicht mit einer effizienteren Methode vorbereitet werden konnten.)",
|
||||||
"backup_actually_backuping": "Erstellt ein Backup-Archiv aus den gesammelten Dateien...",
|
"backup_actually_backuping": "Erstellt ein Backup-Archiv aus den gesammelten Dateien...",
|
||||||
"ask_new_path": "Neuer Pfad",
|
"ask_new_path": "Neuer Pfad",
|
||||||
|
@ -263,19 +240,14 @@
|
||||||
"log_does_exists": "Es gibt kein Operationsprotokoll mit dem Namen'{log}', verwende 'yunohost log list', um alle verfügbaren Operationsprotokolle anzuzeigen",
|
"log_does_exists": "Es gibt kein Operationsprotokoll mit dem Namen'{log}', verwende 'yunohost log list', um alle verfügbaren Operationsprotokolle anzuzeigen",
|
||||||
"log_operation_unit_unclosed_properly": "Die Operationseinheit wurde nicht richtig geschlossen",
|
"log_operation_unit_unclosed_properly": "Die Operationseinheit wurde nicht richtig geschlossen",
|
||||||
"global_settings_setting_security_postfix_compatibility": "Kompatibilität vs. Sicherheitskompromiss für den Postfix-Server. Beeinflusst die Chiffren (und andere sicherheitsrelevante Aspekte)",
|
"global_settings_setting_security_postfix_compatibility": "Kompatibilität vs. Sicherheitskompromiss für den Postfix-Server. Beeinflusst die Chiffren (und andere sicherheitsrelevante Aspekte)",
|
||||||
"log_category_404": "Die Log-Kategorie '{category}' existiert nicht",
|
|
||||||
"global_settings_unknown_type": "Unerwartete Situation, die Einstellung {setting:s} scheint den Typ {unknown_type:s} zu haben, ist aber kein vom System unterstützter Typ.",
|
"global_settings_unknown_type": "Unerwartete Situation, die Einstellung {setting:s} scheint den Typ {unknown_type:s} zu haben, ist aber kein vom System unterstützter Typ.",
|
||||||
"dpkg_is_broken": "Du kannst das gerade nicht tun, weil dpkg/APT (der Systempaketmanager) in einem defekten Zustand zu sein scheint.... Du kannst versuchen, dieses Problem zu lösen, indem du dich über SSH verbindest und `sudo apt install --fix-broken` sowie/oder `sudo dpkg --configure -a` ausführst.",
|
"dpkg_is_broken": "Du kannst das gerade nicht tun, weil dpkg/APT (der Systempaketmanager) in einem defekten Zustand zu sein scheint.... Du kannst versuchen, dieses Problem zu lösen, indem du dich über SSH verbindest und `sudo apt install --fix-broken` sowie/oder `sudo dpkg --configure -a` ausführst.",
|
||||||
"global_settings_unknown_setting_from_settings_file": "Unbekannter Schlüssel in den Einstellungen: '{setting_key:s}', verwerfen und speichern in /etc/yunohost/settings-unknown.json",
|
"global_settings_unknown_setting_from_settings_file": "Unbekannter Schlüssel in den Einstellungen: '{setting_key:s}', verwerfen und speichern in /etc/yunohost/settings-unknown.json",
|
||||||
"log_link_to_log": "Vollständiges Log dieser Operation: '<a href=\"#/tools/logs/{name}\" style=\"text-decoration:underline\">{desc}</a>'",
|
"log_link_to_log": "Vollständiges Log dieser Operation: '<a href=\"#/tools/logs/{name}\" style=\"text-decoration:underline\">{desc}</a>'",
|
||||||
"global_settings_setting_example_bool": "Beispiel einer booleschen Option",
|
|
||||||
"log_help_to_get_log": "Um das Protokoll der Operation '{desc}' anzuzeigen, verwende den Befehl 'yunohost log show {name}{name}'",
|
"log_help_to_get_log": "Um das Protokoll der Operation '{desc}' anzuzeigen, verwende den Befehl 'yunohost log show {name}{name}'",
|
||||||
"global_settings_setting_security_nginx_compatibility": "Kompatibilität vs. Sicherheitskompromiss für den Webserver NGINX. Beeinflusst die Chiffren (und andere sicherheitsrelevante Aspekte)",
|
"global_settings_setting_security_nginx_compatibility": "Kompatibilität vs. Sicherheitskompromiss für den Webserver NGINX. Beeinflusst die Chiffren (und andere sicherheitsrelevante Aspekte)",
|
||||||
"backup_php5_to_php7_migration_may_fail": "Dein Archiv konnte nicht für PHP 7 konvertiert werden, Du kannst deine PHP-Anwendungen möglicherweise nicht wiederherstellen (Grund: {error:s})",
|
|
||||||
"global_settings_setting_service_ssh_allow_deprecated_dsa_hostkey": "Erlaubt die Verwendung eines (veralteten) DSA-Hostkeys für die SSH-Daemon-Konfiguration",
|
"global_settings_setting_service_ssh_allow_deprecated_dsa_hostkey": "Erlaubt die Verwendung eines (veralteten) DSA-Hostkeys für die SSH-Daemon-Konfiguration",
|
||||||
"global_settings_setting_example_string": "Beispiel einer string Option",
|
|
||||||
"log_app_remove": "Entferne die Applikation '{}'",
|
"log_app_remove": "Entferne die Applikation '{}'",
|
||||||
"global_settings_setting_example_int": "Beispiel einer int Option",
|
|
||||||
"global_settings_cant_open_settings": "Einstellungsdatei konnte nicht geöffnet werden, Grund: {reason:s}",
|
"global_settings_cant_open_settings": "Einstellungsdatei konnte nicht geöffnet werden, Grund: {reason:s}",
|
||||||
"global_settings_cant_write_settings": "Einstellungsdatei konnte nicht gespeichert werden, Grund: {reason:s}",
|
"global_settings_cant_write_settings": "Einstellungsdatei konnte nicht gespeichert werden, Grund: {reason:s}",
|
||||||
"log_app_install": "Installiere die Applikation '{}'",
|
"log_app_install": "Installiere die Applikation '{}'",
|
||||||
|
@ -289,7 +261,6 @@
|
||||||
"log_app_change_url": "Ändere die URL der Applikation '{}'",
|
"log_app_change_url": "Ändere die URL der Applikation '{}'",
|
||||||
"global_settings_setting_security_password_user_strength": "Stärke des Benutzerpassworts",
|
"global_settings_setting_security_password_user_strength": "Stärke des Benutzerpassworts",
|
||||||
"good_practices_about_user_password": "Sie sind dabei, ein neues Benutzerpasswort zu definieren. Das Passwort sollte mindestens 8 Zeichen lang sein, obwohl es ratsam ist, ein längeres Passwort (z.B. eine Passphrase) und/oder eine Variation von Zeichen (Groß- und Kleinschreibung, Ziffern und Sonderzeichen) zu verwenden.",
|
"good_practices_about_user_password": "Sie sind dabei, ein neues Benutzerpasswort zu definieren. Das Passwort sollte mindestens 8 Zeichen lang sein, obwohl es ratsam ist, ein längeres Passwort (z.B. eine Passphrase) und/oder eine Variation von Zeichen (Groß- und Kleinschreibung, Ziffern und Sonderzeichen) zu verwenden.",
|
||||||
"global_settings_setting_example_enum": "Beispiel einer enum Option",
|
|
||||||
"log_link_to_failed_log": "Der Vorgang konnte nicht abgeschlossen werden '{desc}'. Bitte gib das vollständige Protokoll dieser Operation mit <a href=\"#/tools/logs/{name}\">Klicken Sie hier</a> an, um Hilfe zu erhalten",
|
"log_link_to_failed_log": "Der Vorgang konnte nicht abgeschlossen werden '{desc}'. Bitte gib das vollständige Protokoll dieser Operation mit <a href=\"#/tools/logs/{name}\">Klicken Sie hier</a> an, um Hilfe zu erhalten",
|
||||||
"backup_cant_mount_uncompress_archive": "Das unkomprimierte Archiv konnte nicht als schreibgeschützt gemountet werden",
|
"backup_cant_mount_uncompress_archive": "Das unkomprimierte Archiv konnte nicht als schreibgeschützt gemountet werden",
|
||||||
"backup_csv_addition_failed": "Es konnten keine Dateien zur Sicherung in die CSV-Datei hinzugefügt werden",
|
"backup_csv_addition_failed": "Es konnten keine Dateien zur Sicherung in die CSV-Datei hinzugefügt werden",
|
||||||
|
@ -307,14 +278,12 @@
|
||||||
"diagnosis_basesystem_ynh_single_version": "{package} Version: {version} ({repo})",
|
"diagnosis_basesystem_ynh_single_version": "{package} Version: {version} ({repo})",
|
||||||
"diagnosis_basesystem_ynh_main_version": "Server läuft YunoHost {main_version} ({repo})",
|
"diagnosis_basesystem_ynh_main_version": "Server läuft YunoHost {main_version} ({repo})",
|
||||||
"diagnosis_basesystem_ynh_inconsistent_versions": "Sie verwenden inkonsistente Versionen der YunoHost-Pakete... wahrscheinlich wegen eines fehlgeschlagenen oder teilweisen Upgrades.",
|
"diagnosis_basesystem_ynh_inconsistent_versions": "Sie verwenden inkonsistente Versionen der YunoHost-Pakete... wahrscheinlich wegen eines fehlgeschlagenen oder teilweisen Upgrades.",
|
||||||
"diagnosis_display_tip_web": "Sie können den Abschnitt Diagnose (im Startbildschirm) aufrufen, um die gefundenen Probleme anzuzeigen.",
|
|
||||||
"apps_catalog_init_success": "App-Katalogsystem initialisiert!",
|
"apps_catalog_init_success": "App-Katalogsystem initialisiert!",
|
||||||
"apps_catalog_updating": "Aktualisierung des Applikationskatalogs…",
|
"apps_catalog_updating": "Aktualisierung des Applikationskatalogs…",
|
||||||
"apps_catalog_failed_to_download": "Der {apps_catalog} App-Katalog kann nicht heruntergeladen werden: {error}",
|
"apps_catalog_failed_to_download": "Der {apps_catalog} App-Katalog kann nicht heruntergeladen werden: {error}",
|
||||||
"apps_catalog_obsolete_cache": "Der Cache des App-Katalogs ist leer oder veraltet.",
|
"apps_catalog_obsolete_cache": "Der Cache des App-Katalogs ist leer oder veraltet.",
|
||||||
"apps_catalog_update_success": "Der Apps-Katalog wurde aktualisiert!",
|
"apps_catalog_update_success": "Der Apps-Katalog wurde aktualisiert!",
|
||||||
"password_too_simple_1": "Das Passwort muss mindestens 8 Zeichen lang sein",
|
"password_too_simple_1": "Das Passwort muss mindestens 8 Zeichen lang sein",
|
||||||
"diagnosis_display_tip_cli": "Sie können 'yunohost diagnosis show --issues' ausführen, um die gefundenen Probleme anzuzeigen.",
|
|
||||||
"diagnosis_everything_ok": "Alles schaut gut aus für {category}!",
|
"diagnosis_everything_ok": "Alles schaut gut aus für {category}!",
|
||||||
"diagnosis_failed": "Kann Diagnose-Ergebnis für die Kategorie '{category}' nicht abrufen: {error}",
|
"diagnosis_failed": "Kann Diagnose-Ergebnis für die Kategorie '{category}' nicht abrufen: {error}",
|
||||||
"diagnosis_ip_connected_ipv4": "Der Server ist mit dem Internet über IPv4 verbunden!",
|
"diagnosis_ip_connected_ipv4": "Der Server ist mit dem Internet über IPv4 verbunden!",
|
||||||
|
@ -333,24 +302,17 @@
|
||||||
"diagnosis_dns_good_conf": "Die DNS-Einträge für die Domäne {domain} (Kategorie {category}) sind korrekt konfiguriert",
|
"diagnosis_dns_good_conf": "Die DNS-Einträge für die Domäne {domain} (Kategorie {category}) sind korrekt konfiguriert",
|
||||||
"diagnosis_ignored_issues": "(+ {nb_ignored} ignorierte(s) Problem(e))",
|
"diagnosis_ignored_issues": "(+ {nb_ignored} ignorierte(s) Problem(e))",
|
||||||
"diagnosis_basesystem_hardware": "Server Hardware Architektur ist {virt} {arch}",
|
"diagnosis_basesystem_hardware": "Server Hardware Architektur ist {virt} {arch}",
|
||||||
"diagnosis_basesystem_hardware_board": "Server Platinen Modell ist {model}",
|
|
||||||
"diagnosis_found_errors": "Habe {errors} erhebliche(s) Problem(e) in Verbindung mit {category} gefunden!",
|
"diagnosis_found_errors": "Habe {errors} erhebliche(s) Problem(e) in Verbindung mit {category} gefunden!",
|
||||||
"diagnosis_found_warnings": "Habe {warnings} Ding(e) gefunden, die verbessert werden könnten für {category}.",
|
"diagnosis_found_warnings": "Habe {warnings} Ding(e) gefunden, die verbessert werden könnten für {category}.",
|
||||||
"diagnosis_ip_dnsresolution_working": "Domänen-Namens-Auflösung funktioniert!",
|
"diagnosis_ip_dnsresolution_working": "Domänen-Namens-Auflösung funktioniert!",
|
||||||
"diagnosis_ip_weird_resolvconf": "DNS Auflösung scheint zu funktionieren, aber seien Sie vorsichtig wenn Sie eine eigene <code>/etc/resolv.conf</code> verwendest.",
|
"diagnosis_ip_weird_resolvconf": "DNS Auflösung scheint zu funktionieren, aber seien Sie vorsichtig wenn Sie Ihren eigenen <code>/etc/resolv.conf</code> verwenden.",
|
||||||
"diagnosis_display_tip": "Um die gefundenen Probleme zu sehen, können Sie zum Diagnose-Bereich des webadmin gehen, oder 'yunohost diagnosis show --issues' in der Kommandozeile ausführen.",
|
"diagnosis_display_tip": "Um die gefundenen Probleme zu sehen, können Sie zum Diagnose-Bereich des webadmin gehen, oder 'yunohost diagnosis show --issues --human-readable' in der Kommandozeile ausführen.",
|
||||||
"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_0011_failed_to_remove_stale_object": "Abgelaufenes Objekt konne nicht entfernt werden. {dn}: {error}",
|
|
||||||
"migration_0011_update_LDAP_schema": "Das LDAP-Schema aktualisieren...",
|
|
||||||
"migration_0011_update_LDAP_database": "Die LDAP-Datenbank aktualisieren...",
|
|
||||||
"migration_0011_migrate_permission": "Berechtigungen der Applikationen von den Einstellungen zu LDAP migrieren...",
|
|
||||||
"migration_0011_LDAP_update_failed": "LDAP konnte nicht aktualisiert werden. Fehler:n{error:s}",
|
|
||||||
"migration_0011_create_group": "Eine Gruppe für jeden Benutzer erstellen…",
|
|
||||||
"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",
|
||||||
"mail_unavailable": "Diese E-Mail Adresse ist reserviert und wird dem ersten Benutzer automatisch zugewiesen",
|
"mail_unavailable": "Diese E-Mail Adresse ist reserviert und wird dem ersten Benutzer automatisch zugewiesen",
|
||||||
"diagnosis_services_conf_broken": "Die Konfiguration für den Dienst {service} ist fehlerhaft!",
|
"diagnosis_services_conf_broken": "Die Konfiguration für den Dienst {service} ist fehlerhaft!",
|
||||||
|
@ -359,7 +321,7 @@
|
||||||
"diagnosis_domain_expiration_error": "Einige Domänen werden SEHR BALD ablaufen!",
|
"diagnosis_domain_expiration_error": "Einige Domänen werden SEHR BALD ablaufen!",
|
||||||
"diagnosis_domain_expiration_success": "Deine Domänen sind registriert und werden in nächster Zeit nicht ablaufen.",
|
"diagnosis_domain_expiration_success": "Deine Domänen sind registriert und werden in nächster Zeit nicht ablaufen.",
|
||||||
"diagnosis_domain_not_found_details": "Die Domäne {domain} existiert nicht in der WHOIS-Datenbank oder sie ist abgelaufen!",
|
"diagnosis_domain_not_found_details": "Die Domäne {domain} existiert nicht in der WHOIS-Datenbank oder sie ist abgelaufen!",
|
||||||
"diagnosis_domain_expiration_not_found": "Konnte die Ablaufdaten für einige Domänen nicht überprüfen.",
|
"diagnosis_domain_expiration_not_found": "Das Ablaufdatum einiger Domains kann nicht überprüft werden",
|
||||||
"diagnosis_dns_try_dyndns_update_force": "Die DNS-Konfiguration dieser Domäne sollte automatisch von Yunohost verwaltet werden. Andernfalls können Sie mittels <cmd>yunohost dyndns update --force</cmd> ein Update erzwingen.",
|
"diagnosis_dns_try_dyndns_update_force": "Die DNS-Konfiguration dieser Domäne sollte automatisch von Yunohost verwaltet werden. Andernfalls können Sie mittels <cmd>yunohost dyndns update --force</cmd> ein Update erzwingen.",
|
||||||
"diagnosis_dns_point_to_doc": "Bitte schauen Sie in die Dokumentation unter <a href='https://yunohost.org/dns_config'>https://yunohost.org/dns_config</a> wenn Sie Hilfe bei der Konfiguration der DNS-Einträge brauchen.",
|
"diagnosis_dns_point_to_doc": "Bitte schauen Sie in die Dokumentation unter <a href='https://yunohost.org/dns_config'>https://yunohost.org/dns_config</a> wenn Sie Hilfe bei der Konfiguration der DNS-Einträge brauchen.",
|
||||||
"diagnosis_dns_discrepancy": "Der folgende DNS-Eintrag scheint nicht den empfohlenen Einstellungen zu entsprechen: <br>Typ: <code>{type}</code><br>Name: <code>{name}</code><br> Aktueller Wert: <code>{current}</code><br> Erwarteter Wert: <code>{value}</code>",
|
"diagnosis_dns_discrepancy": "Der folgende DNS-Eintrag scheint nicht den empfohlenen Einstellungen zu entsprechen: <br>Typ: <code>{type}</code><br>Name: <code>{name}</code><br> Aktueller Wert: <code>{current}</code><br> Erwarteter Wert: <code>{value}</code>",
|
||||||
|
@ -545,11 +507,8 @@
|
||||||
"migration_0015_weak_certs": "Die folgenden Zertifikate verwenden immer noch schwache Signierungsalgorithmen und müssen aktualisiert werden um mit der nächsten Version von nginx kompatibel zu sein: {certs}",
|
"migration_0015_weak_certs": "Die folgenden Zertifikate verwenden immer noch schwache Signierungsalgorithmen und müssen aktualisiert werden um mit der nächsten Version von nginx kompatibel zu sein: {certs}",
|
||||||
"migrations_pending_cant_rerun": "Diese Migrationen sind immer noch anstehend und können deshalb nicht erneut durchgeführt werden: {ids}",
|
"migrations_pending_cant_rerun": "Diese Migrationen sind immer noch anstehend und können deshalb nicht erneut durchgeführt werden: {ids}",
|
||||||
"migration_0019_add_new_attributes_in_ldap": "Hinzufügen neuer Attribute für die Berechtigungen in der LDAP-Datenbank",
|
"migration_0019_add_new_attributes_in_ldap": "Hinzufügen neuer Attribute für die Berechtigungen in der LDAP-Datenbank",
|
||||||
"migration_0019_can_not_backup_before_migration": "Das Backup des Systems konnte nicht abgeschlossen werden bevor die Migration fehlschlug. Fehlermeldung: {error}",
|
|
||||||
"migration_0019_migration_failed_trying_to_rollback": "Konnte nicht migrieren... versuche ein Rollback des Systems.",
|
|
||||||
"migrations_not_pending_cant_skip": "Diese Migrationen sind nicht anstehend und können deshalb nicht übersprungen werden: {ids}",
|
"migrations_not_pending_cant_skip": "Diese Migrationen sind nicht anstehend und können deshalb nicht übersprungen werden: {ids}",
|
||||||
"migration_0018_failed_to_reset_legacy_rules": "Zurücksetzen der veralteten iptables-Regeln fehlgeschlagen: {error}",
|
"migration_0018_failed_to_reset_legacy_rules": "Zurücksetzen der veralteten iptables-Regeln fehlgeschlagen: {error}",
|
||||||
"migration_0019_rollback_success": "Rollback des Systems durchgeführt.",
|
|
||||||
"migration_0019_slapd_config_will_be_overwritten": "Es schaut aus, als ob Sie die slapd-Konfigurationsdatei manuell bearbeitet haben. Für diese kritische Migration muss das Update der slapd-Konfiguration erzwungen werden. Von der Originaldatei wird ein Backup gemacht in {conf_backup_folder}.",
|
"migration_0019_slapd_config_will_be_overwritten": "Es schaut aus, als ob Sie die slapd-Konfigurationsdatei manuell bearbeitet haben. Für diese kritische Migration muss das Update der slapd-Konfiguration erzwungen werden. Von der Originaldatei wird ein Backup gemacht in {conf_backup_folder}.",
|
||||||
"migrations_success_forward": "Migration {id} abgeschlossen",
|
"migrations_success_forward": "Migration {id} abgeschlossen",
|
||||||
"migrations_cant_reach_migration_file": "Die Migrationsdateien konnten nicht aufgerufen werden im Verzeichnis '%s'",
|
"migrations_cant_reach_migration_file": "Die Migrationsdateien konnten nicht aufgerufen werden im Verzeichnis '%s'",
|
||||||
|
@ -565,7 +524,6 @@
|
||||||
"migration_0017_postgresql_11_not_installed": "PostgreSQL 9.6 ist installiert aber nicht postgreSQL 11? Etwas komisches ist Ihrem System zugestossen :(...",
|
"migration_0017_postgresql_11_not_installed": "PostgreSQL 9.6 ist installiert aber nicht postgreSQL 11? Etwas komisches ist Ihrem System zugestossen :(...",
|
||||||
"migration_0017_not_enough_space": "Stellen Siea ausreichend Speicherplatz im Verzeichnis {path} zur Verfügung um die Migration durchzuführen.",
|
"migration_0017_not_enough_space": "Stellen Siea ausreichend Speicherplatz im Verzeichnis {path} zur Verfügung um die Migration durchzuführen.",
|
||||||
"migration_0018_failed_to_migrate_iptables_rules": "Migration der veralteten iptables-Regeln zu nftables fehlgeschlagen: {error}",
|
"migration_0018_failed_to_migrate_iptables_rules": "Migration der veralteten iptables-Regeln zu nftables fehlgeschlagen: {error}",
|
||||||
"migration_0019_backup_before_migration": "Ein Backup der LDAP-Datenbank und der Applikationseinstellungen erstellen vor der Migration.",
|
|
||||||
"migrations_exclusive_options": "'--auto', '--skip' und '--force-rerun' sind Optionen, die sich gegenseitig ausschliessen.",
|
"migrations_exclusive_options": "'--auto', '--skip' und '--force-rerun' sind Optionen, die sich gegenseitig ausschliessen.",
|
||||||
"migrations_no_such_migration": "Es existiert keine Migration genannt '{id}'",
|
"migrations_no_such_migration": "Es existiert keine Migration genannt '{id}'",
|
||||||
"migrations_running_forward": "Durchführen der Migrationen {id}...",
|
"migrations_running_forward": "Durchführen der Migrationen {id}...",
|
||||||
|
@ -574,5 +532,96 @@
|
||||||
"password_listed": "Dieses Passwort gehört zu den meistverwendeten der Welt. Bitte nehmen Sie etwas einzigartigeres.",
|
"password_listed": "Dieses Passwort gehört zu den meistverwendeten der Welt. Bitte nehmen Sie etwas einzigartigeres.",
|
||||||
"operation_interrupted": "Wurde die Operation manuell unterbrochen?",
|
"operation_interrupted": "Wurde die Operation manuell unterbrochen?",
|
||||||
"invalid_number": "Muss eine Zahl sein",
|
"invalid_number": "Muss eine Zahl sein",
|
||||||
"migrations_to_be_ran_manually": "Die Migration {id} muss manuell durchgeführt werden. Bitte gehen Sie zu Werkzeuge → Migrationen auf der Webadmin-Seite oder führen Sie 'yunohost tools migrations run' aus."
|
"migrations_to_be_ran_manually": "Die Migration {id} muss manuell durchgeführt werden. Bitte gehen Sie zu Werkzeuge → Migrationen auf der Webadmin-Seite oder führen Sie 'yunohost tools migrations run' aus.",
|
||||||
|
"permission_already_up_to_date": "Die Berechtigung wurde nicht aktualisiert, weil die Anfragen für Hinzufügen/Entfernen stimmen mit dem aktuellen Status bereits überein",
|
||||||
|
"permission_already_exist": "Berechtigung '{permission}' existiert bereits",
|
||||||
|
"permission_already_disallowed": "Für die Gruppe '{group}' wurde die Berechtigung '{permission}' deaktiviert",
|
||||||
|
"permission_already_allowed": "Die Gruppe '{group}' hat die Berechtigung '{permission}' bereits erhalten",
|
||||||
|
"pattern_password_app": "Entschuldigen Sie bitte! Passwörter dürfen folgende Zeichen nicht enthalten: {forbidden_chars}",
|
||||||
|
"pattern_email_forward": "Es muss sich um eine gültige E-Mail-Adresse handeln. Das Symbol '+' wird akzeptiert (zum Beispiel : maxmuster@beispiel.com oder maxmuster+yunohost@beispiel.com)",
|
||||||
|
"password_too_simple_4": "Dass Passwort muss mindestens 12 Zeichen lang sein und Zahlen, Klein- und Grossbuchstaben und Sonderzeichen enthalten",
|
||||||
|
"password_too_simple_3": "Das Passwort muss mindestens 8 Zeichen lang sein und Zahlen, Klein- und Grossbuchstaben und Sonderzeichen enthalten",
|
||||||
|
"regenconf_file_manually_removed": "Die Konfigurationsdatei '{conf}' wurde manuell gelöscht und wird nicht erstellt",
|
||||||
|
"regenconf_file_manually_modified": "Die Konfigurationsdatei '{conf}' wurde manuell bearbeitet und wird nicht aktualisiert",
|
||||||
|
"regenconf_file_kept_back": "Die Konfigurationsdatei '{conf}' sollte von \"regen-conf\" (Kategorie {category}) gelöscht werden, wurde aber beibehalten.",
|
||||||
|
"regenconf_file_copy_failed": "Die neue Konfigurationsdatei '{new}' kann nicht nach '{conf}' kopiert werden",
|
||||||
|
"regenconf_file_backed_up": "Die Konfigurationsdatei '{conf}' wurde unter '{backup}' gespeichert",
|
||||||
|
"permission_require_account": "Berechtigung {permission} ist nur für Benutzer mit einem Konto sinnvoll und kann daher nicht für Besucher aktiviert werden.",
|
||||||
|
"permission_protected": "Die Berechtigung ist geschützt. Sie können die Besuchergruppe nicht zu dieser Berechtigung hinzufügen oder daraus entfernen.",
|
||||||
|
"permission_updated": "Berechtigung '{permission:s}' aktualisiert",
|
||||||
|
"permission_update_failed": "Die Berechtigung '{permission}' kann nicht aktualisiert werden : {error}",
|
||||||
|
"permission_not_found": "Berechtigung nicht gefunden",
|
||||||
|
"permission_deletion_failed": "Entfernung der Berechtigung nicht möglich '{permission}': {error}",
|
||||||
|
"permission_deleted": "Berechtigung gelöscht",
|
||||||
|
"permission_currently_allowed_for_all_users": "Diese Berechtigung wird derzeit allen Benutzern zusätzlich zu anderen Gruppen erteilt. Möglicherweise möchten Sie entweder die Berechtigung 'all_users' entfernen oder die anderen Gruppen entfernen, für die sie derzeit zulässig sind.",
|
||||||
|
"permission_creation_failed": "Berechtigungserstellung nicht möglich '{permission}' : {error}",
|
||||||
|
"permission_created": "Berechtigung '{permission: s}' erstellt",
|
||||||
|
"permission_cannot_remove_main": "Entfernung einer Hauptberechtigung nicht genehmigt",
|
||||||
|
"regenconf_file_updated": "Konfigurationsdatei '{conf}' aktualisiert",
|
||||||
|
"regenconf_file_removed": "Konfigurationsdatei '{conf}' entfernt",
|
||||||
|
"regenconf_file_remove_failed": "Konnte die Konfigurationsdatei '{conf}' nicht entfernen",
|
||||||
|
"postinstall_low_rootfsspace": "Das Root-Filesystem hat insgesamt weniger als 10GB freien Speicherplatz zur Verfügung, was ziemlich besorgniserregend ist! Sie werden sehr bald keinen freien Speicherplatz mehr haben! Für das Root-Filesystem werden mindestens 16GB empfohlen. Wenn Sie YunoHost trotz dieser Warnung installieren wollen, wiederholen Sie den Befehl mit --force-diskspace",
|
||||||
|
"regenconf_up_to_date": "Die Konfiguration ist bereits aktuell für die Kategorie '{category}'",
|
||||||
|
"regenconf_now_managed_by_yunohost": "Die Konfigurationsdatei '{conf}' wird jetzt von YunoHost (Kategorie {category}) verwaltet.",
|
||||||
|
"regenconf_updated": "Konfiguration aktualisiert für '{category}'",
|
||||||
|
"regenconf_pending_applying": "Wende die anstehende Konfiguration für die Kategorie {category} an...",
|
||||||
|
"regenconf_failed": "Konnte die Konfiguration für die Kategorie(n) {categories} nicht neu erstellen",
|
||||||
|
"regenconf_dry_pending_applying": "Überprüfe die anstehende Konfiguration, welche für die Kategorie {category}' aktualisiert worden wäre…",
|
||||||
|
"regenconf_would_be_updated": "Die Konfiguration wäre für die Kategorie '{category}' aktualisiert worden",
|
||||||
|
"restore_system_part_failed": "Die Systemteile '{part:s}' konnten nicht wiederhergestellt werden",
|
||||||
|
"restore_removing_tmp_dir_failed": "Ein altes, temporäres Directory konnte nicht entfernt werden",
|
||||||
|
"restore_not_enough_disk_space": "Nicht genug Speicher (Speicher: {free_space:d} B, benötigter Speicher: {needed_space:d} B, Sicherheitspuffer: {margin:d} B)",
|
||||||
|
"restore_may_be_not_enough_disk_space": "Dein System scheint nicht genug Speicherplatz zu haben (frei: {free_space:d} B, benötigter Platz: {needed_space:d} B, Sicherheitspuffer: {margin:d} B)",
|
||||||
|
"restore_extracting": "Packe die benötigten Dateien aus dem Archiv aus…",
|
||||||
|
"restore_already_installed_apps": "Folgende Apps können nicht wiederhergestellt werden, weil sie schon installiert sind: {apps}",
|
||||||
|
"regex_with_only_domain": "Du kannst regex nicht als Domain verwenden, sondern nur als Pfad",
|
||||||
|
"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.",
|
||||||
|
"migration_update_LDAP_schema": "Aktualisiere das LDAP-Schema...",
|
||||||
|
"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."
|
||||||
}
|
}
|
|
@ -1,3 +1,4 @@
|
||||||
{
|
{
|
||||||
"password_too_simple_1": "Ο κωδικός πρόσβασης πρέπει να έχει τουλάχιστον 8 χαρακτήρες"
|
"password_too_simple_1": "Ο κωδικός πρόσβασης πρέπει να έχει τουλάχιστον 8 χαρακτήρες",
|
||||||
|
"aborting": "Ματαίωση."
|
||||||
}
|
}
|
|
@ -44,6 +44,8 @@
|
||||||
"app_requirements_checking": "Checking required packages for {app}...",
|
"app_requirements_checking": "Checking required packages for {app}...",
|
||||||
"app_requirements_unmeet": "Requirements are not met for {app}, the package {pkgname} ({version}) must be {spec}",
|
"app_requirements_unmeet": "Requirements are not met for {app}, the package {pkgname} ({version}) must be {spec}",
|
||||||
"app_remove_after_failed_install": "Removing the app following the installation failure...",
|
"app_remove_after_failed_install": "Removing the app following the installation failure...",
|
||||||
|
"app_restore_failed": "Could not restore {app:s}: {error:s}",
|
||||||
|
"app_restore_script_failed": "An error occured inside the app restore script",
|
||||||
"app_sources_fetch_failed": "Could not fetch sources files, is the URL correct?",
|
"app_sources_fetch_failed": "Could not fetch sources files, is the URL correct?",
|
||||||
"app_start_install": "Installing {app}...",
|
"app_start_install": "Installing {app}...",
|
||||||
"app_start_remove": "Removing {app}...",
|
"app_start_remove": "Removing {app}...",
|
||||||
|
@ -93,6 +95,7 @@
|
||||||
"backup_copying_to_organize_the_archive": "Copying {size:s}MB to organize the archive",
|
"backup_copying_to_organize_the_archive": "Copying {size:s}MB to organize the archive",
|
||||||
"backup_couldnt_bind": "Could not bind {src:s} to {dest:s}.",
|
"backup_couldnt_bind": "Could not bind {src:s} to {dest:s}.",
|
||||||
"backup_created": "Backup created",
|
"backup_created": "Backup created",
|
||||||
|
"backup_create_size_estimation": "The archive will contain about {size} of data.",
|
||||||
"backup_creation_failed": "Could not create the backup archive",
|
"backup_creation_failed": "Could not create the backup archive",
|
||||||
"backup_csv_addition_failed": "Could not add files to backup into the CSV file",
|
"backup_csv_addition_failed": "Could not add files to backup into the CSV file",
|
||||||
"backup_csv_creation_failed": "Could not create the CSV file needed for restoration",
|
"backup_csv_creation_failed": "Could not create the CSV file needed for restoration",
|
||||||
|
@ -138,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}",
|
||||||
|
@ -149,8 +152,8 @@
|
||||||
"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' 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!)",
|
||||||
"diagnosis_cant_run_because_of_dep": "Can't run diagnosis for {category} while there are important issues related to {dep}.",
|
"diagnosis_cant_run_because_of_dep": "Can't run diagnosis for {category} while there are important issues related to {dep}.",
|
||||||
|
@ -179,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?",
|
||||||
|
@ -267,6 +270,9 @@
|
||||||
"diagnosis_unknown_categories": "The following categories are unknown: {categories}",
|
"diagnosis_unknown_categories": "The following categories are unknown: {categories}",
|
||||||
"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_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.",
|
||||||
"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}'.'",
|
||||||
|
@ -321,8 +327,10 @@
|
||||||
"global_settings_setting_security_password_user_strength": "User password strength",
|
"global_settings_setting_security_password_user_strength": "User password strength",
|
||||||
"global_settings_setting_security_ssh_compatibility": "Compatibility vs. security tradeoff for the SSH server. Affects the ciphers (and other security-related aspects)",
|
"global_settings_setting_security_ssh_compatibility": "Compatibility vs. security tradeoff for the SSH server. Affects the ciphers (and other security-related aspects)",
|
||||||
"global_settings_setting_security_postfix_compatibility": "Compatibility vs. security tradeoff for the Postfix server. Affects the ciphers (and other security-related aspects)",
|
"global_settings_setting_security_postfix_compatibility": "Compatibility vs. security tradeoff for the Postfix server. Affects the ciphers (and other security-related aspects)",
|
||||||
|
"global_settings_setting_security_ssh_port": "SSH port",
|
||||||
"global_settings_unknown_setting_from_settings_file": "Unknown key in settings: '{setting_key:s}', discard it and save it in /etc/yunohost/settings-unknown.json",
|
"global_settings_unknown_setting_from_settings_file": "Unknown key in settings: '{setting_key:s}', discard it and save it in /etc/yunohost/settings-unknown.json",
|
||||||
"global_settings_setting_service_ssh_allow_deprecated_dsa_hostkey": "Allow the use of (deprecated) DSA hostkey for the SSH daemon configuration",
|
"global_settings_setting_service_ssh_allow_deprecated_dsa_hostkey": "Allow the use of (deprecated) DSA hostkey for the SSH daemon configuration",
|
||||||
|
"global_settings_setting_ssowat_panel_overlay_enabled": "Enable SSOwat panel overlay",
|
||||||
"global_settings_setting_smtp_allow_ipv6": "Allow the use of IPv6 to receive and send mail",
|
"global_settings_setting_smtp_allow_ipv6": "Allow the use of IPv6 to receive and send mail",
|
||||||
"global_settings_setting_smtp_relay_host": "SMTP relay host to use in order to send mail instead of this yunohost instance. Useful if you are in one of this situation: your 25 port is blocked by your ISP or VPS provider, you have a residential IP listed on DUHL, you are not able to configure reverse DNS or this server is not directly exposed on the internet and you want use an other one to send mails.",
|
"global_settings_setting_smtp_relay_host": "SMTP relay host to use in order to send mail instead of this yunohost instance. Useful if you are in one of this situation: your 25 port is blocked by your ISP or VPS provider, you have a residential IP listed on DUHL, you are not able to configure reverse DNS or this server is not directly exposed on the internet and you want use an other one to send mails.",
|
||||||
"global_settings_setting_smtp_relay_port": "SMTP relay port",
|
"global_settings_setting_smtp_relay_port": "SMTP relay port",
|
||||||
|
@ -354,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",
|
||||||
|
@ -376,6 +383,7 @@
|
||||||
"log_app_config_show_panel": "Show the config panel of the '{}' app",
|
"log_app_config_show_panel": "Show the config panel of the '{}' app",
|
||||||
"log_app_config_apply": "Apply config to the '{}' app",
|
"log_app_config_apply": "Apply config to the '{}' app",
|
||||||
"log_available_on_yunopaste": "This log is now available via {url}",
|
"log_available_on_yunopaste": "This log is now available via {url}",
|
||||||
|
"log_backup_create": "Create a backup archive",
|
||||||
"log_backup_restore_system": "Restore system from a backup archive",
|
"log_backup_restore_system": "Restore system from a backup archive",
|
||||||
"log_backup_restore_app": "Restore '{}' from a backup archive",
|
"log_backup_restore_app": "Restore '{}' from a backup archive",
|
||||||
"log_remove_on_failed_restore": "Remove '{}' after a failed restore from a backup archive",
|
"log_remove_on_failed_restore": "Remove '{}' after a failed restore from a backup archive",
|
||||||
|
@ -405,8 +413,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}'",
|
||||||
|
@ -421,12 +427,12 @@
|
||||||
"migration_description_0017_postgresql_9p6_to_11": "Migrate databases from PostgreSQL 9.6 to 11",
|
"migration_description_0017_postgresql_9p6_to_11": "Migrate databases from PostgreSQL 9.6 to 11",
|
||||||
"migration_description_0018_xtable_to_nftable": "Migrate old network traffic rules to the new nftable system",
|
"migration_description_0018_xtable_to_nftable": "Migrate old network traffic rules to the new nftable system",
|
||||||
"migration_description_0019_extend_permissions_features": "Extend/rework the app permission management system",
|
"migration_description_0019_extend_permissions_features": "Extend/rework the app permission management system",
|
||||||
"migration_0011_create_group": "Creating a group for each user...",
|
"migration_description_0020_ssh_sftp_permissions": "Add SSH and SFTP permissions support",
|
||||||
"migration_0011_LDAP_update_failed": "Unable to update LDAP. Error: {error:s}",
|
"migration_ldap_backup_before_migration": "Creating a backup of LDAP database and apps settings prior to the actual migration.",
|
||||||
"migration_0011_migrate_permission": "Migrating permissions from apps settings to LDAP...",
|
"migration_ldap_can_not_backup_before_migration": "The backup of the system could not be completed before the migration failed. Error: {error:s}",
|
||||||
"migration_0011_update_LDAP_database": "Updating LDAP database...",
|
"migration_ldap_migration_failed_trying_to_rollback": "Could not migrate... trying to roll back the system.",
|
||||||
"migration_0011_update_LDAP_schema": "Updating LDAP schema...",
|
"migration_ldap_rollback_success": "System rolled back.",
|
||||||
"migration_0011_failed_to_remove_stale_object": "Unable to remove stale object {dn}: {error}",
|
"migration_update_LDAP_schema": "Updating LDAP schema...",
|
||||||
"migration_0015_start" : "Starting migration to Buster",
|
"migration_0015_start" : "Starting migration to Buster",
|
||||||
"migration_0015_patching_sources_list": "Patching the sources.lists...",
|
"migration_0015_patching_sources_list": "Patching the sources.lists...",
|
||||||
"migration_0015_main_upgrade": "Starting main upgrade...",
|
"migration_0015_main_upgrade": "Starting main upgrade...",
|
||||||
|
@ -447,10 +453,6 @@
|
||||||
"migration_0018_failed_to_migrate_iptables_rules": "Failed to migrate legacy iptables rules to nftables: {error}",
|
"migration_0018_failed_to_migrate_iptables_rules": "Failed to migrate legacy iptables rules to nftables: {error}",
|
||||||
"migration_0018_failed_to_reset_legacy_rules": "Failed to reset legacy iptables rules: {error}",
|
"migration_0018_failed_to_reset_legacy_rules": "Failed to reset legacy iptables rules: {error}",
|
||||||
"migration_0019_add_new_attributes_in_ldap": "Add new attributes for permissions in LDAP database",
|
"migration_0019_add_new_attributes_in_ldap": "Add new attributes for permissions in LDAP database",
|
||||||
"migration_0019_backup_before_migration": "Creating a backup of LDAP database and apps settings prior to the actual migration.",
|
|
||||||
"migration_0019_can_not_backup_before_migration": "The backup of the system could not be completed before the migration failed. Error: {error:s}",
|
|
||||||
"migration_0019_migration_failed_trying_to_rollback": "Could not migrate... trying to roll back the system.",
|
|
||||||
"migration_0019_rollback_success": "System rolled back.",
|
|
||||||
"migration_0019_slapd_config_will_be_overwritten": "It looks like you manually edited the slapd configuration. For this critical migration, YunoHost needs to force the update of the slapd configuration. The original files will be backuped in {conf_backup_folder}.",
|
"migration_0019_slapd_config_will_be_overwritten": "It looks like you manually edited the slapd configuration. For this critical migration, YunoHost needs to force the update of the slapd configuration. The original files will be backuped in {conf_backup_folder}.",
|
||||||
"migrations_already_ran": "Those migrations are already done: {ids}",
|
"migrations_already_ran": "Those migrations are already done: {ids}",
|
||||||
"migrations_cant_reach_migration_file": "Could not access migrations files at the path '%s'",
|
"migrations_cant_reach_migration_file": "Could not access migrations files at the path '%s'",
|
||||||
|
@ -500,6 +502,7 @@
|
||||||
"permission_created": "Permission '{permission:s}' created",
|
"permission_created": "Permission '{permission:s}' created",
|
||||||
"permission_creation_failed": "Could not create permission '{permission}': {error}",
|
"permission_creation_failed": "Could not create permission '{permission}': {error}",
|
||||||
"permission_currently_allowed_for_all_users": "This permission is currently granted to all users in addition to other groups. You probably want to either remove the 'all_users' permission or remove the other groups it is currently granted to.",
|
"permission_currently_allowed_for_all_users": "This permission is currently granted to all users in addition to other groups. You probably want to either remove the 'all_users' permission or remove the other groups it is currently granted to.",
|
||||||
|
"permission_cant_add_to_all_users": "The permission {permission} can not be added to all users.",
|
||||||
"permission_deleted": "Permission '{permission:s}' deleted",
|
"permission_deleted": "Permission '{permission:s}' deleted",
|
||||||
"permission_deletion_failed": "Could not delete permission '{permission}': {error}",
|
"permission_deletion_failed": "Could not delete permission '{permission}': {error}",
|
||||||
"permission_not_found": "Permission '{permission:s}' not found",
|
"permission_not_found": "Permission '{permission:s}' not found",
|
||||||
|
@ -530,7 +533,7 @@
|
||||||
"regex_with_only_domain": "You can't use a regex for domain, only for path",
|
"regex_with_only_domain": "You can't use a regex for domain, only for path",
|
||||||
"restore_already_installed_app": "An app with the ID '{app:s}' is already installed",
|
"restore_already_installed_app": "An app with the ID '{app:s}' is already installed",
|
||||||
"restore_already_installed_apps": "The following apps can't be restored because they are already installed: {apps}",
|
"restore_already_installed_apps": "The following apps can't be restored because they are already installed: {apps}",
|
||||||
"restore_app_failed": "Could not restore {app:s}",
|
"restore_backup_too_old": "This backup archive can not be restored because it comes from a too-old YunoHost version.",
|
||||||
"restore_cleaning_failed": "Could not clean up the temporary restoration directory",
|
"restore_cleaning_failed": "Could not clean up the temporary restoration directory",
|
||||||
"restore_complete": "Restoration completed",
|
"restore_complete": "Restoration completed",
|
||||||
"restore_confirm_yunohost_installed": "Do you really want to restore an already installed system? [{answers:s}]",
|
"restore_confirm_yunohost_installed": "Do you really want to restore an already installed system? [{answers:s}]",
|
||||||
|
@ -595,7 +598,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…",
|
||||||
|
@ -631,5 +634,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."
|
||||||
}
|
}
|
||||||
|
|
103
locales/eo.json
103
locales/eo.json
|
@ -10,16 +10,11 @@
|
||||||
"app_id_invalid": "Nevalida apo ID",
|
"app_id_invalid": "Nevalida apo ID",
|
||||||
"app_install_files_invalid": "Ĉi tiuj dosieroj ne povas esti instalitaj",
|
"app_install_files_invalid": "Ĉi tiuj dosieroj ne povas esti instalitaj",
|
||||||
"user_updated": "Uzantinformoj ŝanĝis",
|
"user_updated": "Uzantinformoj ŝanĝis",
|
||||||
"users_available": "Uzantoj disponeblaj :",
|
|
||||||
"yunohost_already_installed": "YunoHost estas jam instalita",
|
"yunohost_already_installed": "YunoHost estas jam instalita",
|
||||||
"yunohost_ca_creation_failed": "Ne povis krei atestan aŭtoritaton",
|
|
||||||
"yunohost_ca_creation_success": "Loka atestila aŭtoritato kreiĝis.",
|
|
||||||
"yunohost_installing": "Instalante YunoHost…",
|
"yunohost_installing": "Instalante YunoHost…",
|
||||||
"service_description_metronome": "Mastrumas XMPP tujmesaĝilon kontojn",
|
"service_description_metronome": "Mastrumas XMPP tujmesaĝilon kontojn",
|
||||||
"service_description_mysql": "Butikigas datumojn de programoj (SQL datumbazo)",
|
"service_description_mysql": "Butikigas datumojn de programoj (SQL datumbazo)",
|
||||||
"service_description_nginx": "Servas aŭ permesas atingi ĉiujn retejojn gastigita sur via servilo",
|
"service_description_nginx": "Servas aŭ permesas atingi ĉiujn retejojn gastigita sur via servilo",
|
||||||
"service_description_nslcd": "Mastrumas Yunohost uzantojn konektojn per komanda linio",
|
|
||||||
"service_description_php7.0-fpm": "Ekzekutas programojn skribitajn en PHP kun NGINX",
|
|
||||||
"service_description_postfix": "Uzita por sendi kaj ricevi retpoŝtojn",
|
"service_description_postfix": "Uzita por sendi kaj ricevi retpoŝtojn",
|
||||||
"service_description_redis-server": "Specialita datumbazo uzita por rapida datumo atingo, atendovicoj kaj komunikadoj inter programoj",
|
"service_description_redis-server": "Specialita datumbazo uzita por rapida datumo atingo, atendovicoj kaj komunikadoj inter programoj",
|
||||||
"service_description_rspamd": "Filtras trudmesaĝojn, kaj aliaj funkcioj rilate al retpoŝto",
|
"service_description_rspamd": "Filtras trudmesaĝojn, kaj aliaj funkcioj rilate al retpoŝto",
|
||||||
|
@ -42,11 +37,9 @@
|
||||||
"backup_archive_system_part_not_available": "Sistemo parto '{part:s}' ne haveblas en ĉi tiu rezervo",
|
"backup_archive_system_part_not_available": "Sistemo parto '{part:s}' ne haveblas en ĉi tiu rezervo",
|
||||||
"backup_abstract_method": "Ĉi tiu rezerva metodo ankoraŭ efektiviĝis",
|
"backup_abstract_method": "Ĉi tiu rezerva metodo ankoraŭ efektiviĝis",
|
||||||
"apps_already_up_to_date": "Ĉiuj aplikoj estas jam ĝisdatigitaj",
|
"apps_already_up_to_date": "Ĉiuj aplikoj estas jam ĝisdatigitaj",
|
||||||
"backup_borg_not_implemented": "La kopia metodo de Borg ankoraŭ ne estas efektivigita",
|
|
||||||
"app_location_unavailable": "Ĉi tiu URL aŭ ne haveblas, aŭ konfliktas kun la jam instalita (j) apliko (j):\n{apps:s}",
|
"app_location_unavailable": "Ĉi tiu URL aŭ ne haveblas, aŭ konfliktas kun la jam instalita (j) apliko (j):\n{apps:s}",
|
||||||
"backup_archive_app_not_found": "Ne povis trovi la programon '{app:s}' en la rezerva ar archiveivo",
|
"backup_archive_app_not_found": "Ne povis trovi la programon '{app:s}' en la rezerva ar archiveivo",
|
||||||
"backup_actually_backuping": "Krei rezervan ar archiveivon el la kolektitaj dosieroj …",
|
"backup_actually_backuping": "Krei rezervan ar archiveivon el la kolektitaj dosieroj …",
|
||||||
"backup_method_borg_finished": "Sekurkopio en Borg finiĝis",
|
|
||||||
"app_change_url_no_script": "La app '{app_name:s}' ankoraŭ ne subtenas URL-modifon. Eble vi devus altgradigi ĝin.",
|
"app_change_url_no_script": "La app '{app_name:s}' ankoraŭ ne subtenas URL-modifon. Eble vi devus altgradigi ĝin.",
|
||||||
"app_start_install": "Instali la programon '{app}' …",
|
"app_start_install": "Instali la programon '{app}' …",
|
||||||
"backup_created": "Sekurkopio kreita",
|
"backup_created": "Sekurkopio kreita",
|
||||||
|
@ -61,7 +54,6 @@
|
||||||
"app_upgrade_app_name": "Nun ĝisdatiganta {app} …",
|
"app_upgrade_app_name": "Nun ĝisdatiganta {app} …",
|
||||||
"app_manifest_invalid": "Io misas pri la aplika manifesto: {error}",
|
"app_manifest_invalid": "Io misas pri la aplika manifesto: {error}",
|
||||||
"backup_cleaning_failed": "Ne povis purigi la provizoran rezervan dosierujon",
|
"backup_cleaning_failed": "Ne povis purigi la provizoran rezervan dosierujon",
|
||||||
"backup_invalid_archive": "Ĉi tio ne estas rezerva ar archiveivo",
|
|
||||||
"backup_creation_failed": "Ne povis krei la rezervan ar archiveivon",
|
"backup_creation_failed": "Ne povis krei la rezervan ar archiveivon",
|
||||||
"backup_hook_unknown": "La rezerva hoko '{hook:s}' estas nekonata",
|
"backup_hook_unknown": "La rezerva hoko '{hook:s}' estas nekonata",
|
||||||
"backup_custom_backup_error": "Propra rezerva metodo ne povis preterpasi la paŝon \"sekurkopio\"",
|
"backup_custom_backup_error": "Propra rezerva metodo ne povis preterpasi la paŝon \"sekurkopio\"",
|
||||||
|
@ -92,7 +84,6 @@
|
||||||
"app_start_remove": "Forigo de la apliko '{app}' …",
|
"app_start_remove": "Forigo de la apliko '{app}' …",
|
||||||
"backup_output_directory_not_empty": "Vi devas elekti malplenan eligitan dosierujon",
|
"backup_output_directory_not_empty": "Vi devas elekti malplenan eligitan dosierujon",
|
||||||
"backup_archive_writing_error": "Ne povis aldoni la dosierojn '{source:s}' (nomitaj en la ar theivo '{dest:s}') por esti rezervitaj en la kunpremita arkivo '{archive:s}'",
|
"backup_archive_writing_error": "Ne povis aldoni la dosierojn '{source:s}' (nomitaj en la ar theivo '{dest:s}') por esti rezervitaj en la kunpremita arkivo '{archive:s}'",
|
||||||
"ask_email": "Retpoŝta adreso",
|
|
||||||
"app_start_restore": "Restarigi la programon '{app}' …",
|
"app_start_restore": "Restarigi la programon '{app}' …",
|
||||||
"backup_applying_method_copy": "Kopiante ĉiujn dosierojn al sekurkopio …",
|
"backup_applying_method_copy": "Kopiante ĉiujn dosierojn al sekurkopio …",
|
||||||
"backup_couldnt_bind": "Ne povis ligi {src:s} al {dest:s}.",
|
"backup_couldnt_bind": "Ne povis ligi {src:s} al {dest:s}.",
|
||||||
|
@ -103,7 +94,6 @@
|
||||||
"backup_mount_archive_for_restore": "Preparante arkivon por restarigo …",
|
"backup_mount_archive_for_restore": "Preparante arkivon por restarigo …",
|
||||||
"backup_csv_creation_failed": "Ne povis krei la CSV-dosieron bezonatan por restarigo",
|
"backup_csv_creation_failed": "Ne povis krei la CSV-dosieron bezonatan por restarigo",
|
||||||
"backup_archive_name_unknown": "Nekonata loka rezerva ar archiveivo nomata '{name:s}'",
|
"backup_archive_name_unknown": "Nekonata loka rezerva ar archiveivo nomata '{name:s}'",
|
||||||
"backup_applying_method_borg": "Sendado de ĉiuj dosieroj al sekurkopio en borg-rezerva deponejo …",
|
|
||||||
"app_sources_fetch_failed": "Ne povis akiri fontajn dosierojn, ĉu la URL estas ĝusta?",
|
"app_sources_fetch_failed": "Ne povis akiri fontajn dosierojn, ĉu la URL estas ĝusta?",
|
||||||
"ask_new_domain": "Nova domajno",
|
"ask_new_domain": "Nova domajno",
|
||||||
"app_unknown": "Nekonata apliko",
|
"app_unknown": "Nekonata apliko",
|
||||||
|
@ -113,41 +103,27 @@
|
||||||
"backup_deleted": "Rezerva forigita",
|
"backup_deleted": "Rezerva forigita",
|
||||||
"backup_csv_addition_failed": "Ne povis aldoni dosierojn al sekurkopio en la CSV-dosiero",
|
"backup_csv_addition_failed": "Ne povis aldoni dosierojn al sekurkopio en la CSV-dosiero",
|
||||||
"dpkg_lock_not_available": "Ĉi tiu komando ne povas funkcii nun ĉar alia programo uzas la seruron de dpkg (la administrilo de paka sistemo)",
|
"dpkg_lock_not_available": "Ĉi tiu komando ne povas funkcii nun ĉar alia programo uzas la seruron de dpkg (la administrilo de paka sistemo)",
|
||||||
"migration_0003_yunohost_upgrade": "Komencante la ĝisdatigon de la pakaĵo YunoHost ... La migrado finiĝos, sed la efektiva ĝisdatigo okazos tuj poste. Post kiam la operacio finiĝos, vi eble devos ensaluti al la retpaĝo.",
|
|
||||||
"domain_dyndns_root_unknown": "Nekonata radika domajno DynDNS",
|
"domain_dyndns_root_unknown": "Nekonata radika domajno DynDNS",
|
||||||
"field_invalid": "Nevalida kampo '{:s}'",
|
"field_invalid": "Nevalida kampo '{:s}'",
|
||||||
"log_app_makedefault": "Faru '{}' la defaŭlta apliko",
|
"log_app_makedefault": "Faru '{}' la defaŭlta apliko",
|
||||||
"migration_0003_still_on_jessie_after_main_upgrade": "Io okazis malbone dum la ĉefa ĝisdatigo: Ĉu la sistemo ankoraŭ estas en Jessie‽ Por esplori la aferon, bonvolu rigardi {log}:s …",
|
|
||||||
"migration_0011_can_not_backup_before_migration": "La sekurkopio de la sistemo ne povis finiĝi antaŭ ol la migrado malsukcesis. Eraro: {error:s}",
|
|
||||||
"migration_0011_create_group": "Krei grupon por ĉiu uzanto…",
|
|
||||||
"backup_system_part_failed": "Ne eblis sekurkopi la sistemon de '{part:s}'",
|
"backup_system_part_failed": "Ne eblis sekurkopi la sistemon de '{part:s}'",
|
||||||
"global_settings_setting_security_postfix_compatibility": "Kongruo vs sekureca kompromiso por la Postfix-servilo. Afektas la ĉifradojn (kaj aliajn aspektojn pri sekureco)",
|
"global_settings_setting_security_postfix_compatibility": "Kongruo vs sekureca kompromiso por la Postfix-servilo. Afektas la ĉifradojn (kaj aliajn aspektojn pri sekureco)",
|
||||||
"group_unknown": "La grupo '{group:s}' estas nekonata",
|
"group_unknown": "La grupo '{group:s}' estas nekonata",
|
||||||
"mailbox_disabled": "Retpoŝto malŝaltita por uzanto {user:s}",
|
"mailbox_disabled": "Retpoŝto malŝaltita por uzanto {user:s}",
|
||||||
"migration_description_0011_setup_group_permission": "Agordu uzantajn grupojn kaj permesojn por programoj kaj servoj",
|
|
||||||
"migration_0011_backup_before_migration": "Krei sekurkopion de LDAP-datumbazo kaj agordojn antaŭ la efektiva migrado.",
|
|
||||||
"migration_0011_migrate_permission": "Migrado de permesoj de agordoj al aplikoj al LDAP…",
|
|
||||||
"migration_0011_migration_failed_trying_to_rollback": "Ne povis migri ... provante redakti la sistemon.",
|
|
||||||
"migrations_dependencies_not_satisfied": "Rulu ĉi tiujn migradojn: '{dependencies_id}', antaŭ migrado {id}.",
|
"migrations_dependencies_not_satisfied": "Rulu ĉi tiujn migradojn: '{dependencies_id}', antaŭ migrado {id}.",
|
||||||
"migrations_failed_to_load_migration": "Ne povis ŝarĝi migradon {id}: {error}",
|
"migrations_failed_to_load_migration": "Ne povis ŝarĝi migradon {id}: {error}",
|
||||||
"migrations_exclusive_options": "'--auto', '--skip' kaj '--force-rerun' estas reciproke ekskluzivaj ebloj.",
|
"migrations_exclusive_options": "'--auto', '--skip' kaj '--force-rerun' estas reciproke ekskluzivaj ebloj.",
|
||||||
"migrations_must_provide_explicit_targets": "Vi devas provizi eksplicitajn celojn kiam vi uzas '--skip' aŭ '--force-rerun'",
|
"migrations_must_provide_explicit_targets": "Vi devas provizi eksplicitajn celojn kiam vi uzas '--skip' aŭ '--force-rerun'",
|
||||||
"permission_update_failed": "Ne povis ĝisdatigi permeson '{permission}': {error}",
|
"permission_update_failed": "Ne povis ĝisdatigi permeson '{permission}': {error}",
|
||||||
"permission_updated": "Ĝisdatigita \"{permission:s}\" rajtigita",
|
"permission_updated": "Ĝisdatigita \"{permission:s}\" rajtigita",
|
||||||
"permission_update_nothing_to_do": "Neniuj permesoj ĝisdatigi",
|
|
||||||
"tools_upgrade_cant_hold_critical_packages": "Ne povis teni kritikajn pakojn…",
|
"tools_upgrade_cant_hold_critical_packages": "Ne povis teni kritikajn pakojn…",
|
||||||
"upnp_dev_not_found": "Neniu UPnP-aparato trovita",
|
"upnp_dev_not_found": "Neniu UPnP-aparato trovita",
|
||||||
"migration_description_0012_postgresql_password_to_md5_authentication": "Devigu PostgreSQL-aŭtentigon uzi MD5 por lokaj ligoj",
|
|
||||||
"migration_0011_done": "Migrado finiĝis. Vi nun kapablas administri uzantajn grupojn.",
|
|
||||||
"migration_0011_LDAP_update_failed": "Ne povis ĝisdatigi LDAP. Eraro: {error:s}",
|
|
||||||
"pattern_password": "Devas esti almenaŭ 3 signoj longaj",
|
"pattern_password": "Devas esti almenaŭ 3 signoj longaj",
|
||||||
"root_password_desynchronized": "La pasvorta administranto estis ŝanĝita, sed YunoHost ne povis propagandi ĉi tion al la radika pasvorto!",
|
"root_password_desynchronized": "La pasvorta administranto estis ŝanĝita, sed YunoHost ne povis propagandi ĉi tion al la radika pasvorto!",
|
||||||
"service_remove_failed": "Ne povis forigi la servon '{service:s}'",
|
"service_remove_failed": "Ne povis forigi la servon '{service:s}'",
|
||||||
"migration_0003_fail2ban_upgrade": "Komenci la ĝisdatigon Fail2Ban…",
|
|
||||||
"backup_permission": "Rezerva permeso por app {app:s}",
|
"backup_permission": "Rezerva permeso por app {app:s}",
|
||||||
"log_user_group_delete": "Forigi grupon '{}'",
|
"log_user_group_delete": "Forigi grupon '{}'",
|
||||||
"log_user_group_update": "Ĝisdatigi grupon '{}'",
|
"log_user_group_update": "Ĝisdatigi grupon '{}'",
|
||||||
"migration_0005_postgresql_94_not_installed": "PostgreSQL ne estis instalita en via sistemo. Nenio por fari.",
|
|
||||||
"dyndns_provider_unreachable": "Ne povas atingi la provizanton DynDNS {provider}: ĉu via YunoHost ne estas ĝuste konektita al la interreto aŭ la dyneta servilo malŝaltiĝas.",
|
"dyndns_provider_unreachable": "Ne povas atingi la provizanton DynDNS {provider}: ĉu via YunoHost ne estas ĝuste konektita al la interreto aŭ la dyneta servilo malŝaltiĝas.",
|
||||||
"good_practices_about_user_password": "Vi nun estas por difini novan uzantan pasvorton. La pasvorto devas esti almenaŭ 8 signojn - kvankam estas bone praktiki uzi pli longan pasvorton (t.e. pasfrazon) kaj/aŭ variaĵon de signoj (majuskloj, minuskloj, ciferoj kaj specialaj signoj).",
|
"good_practices_about_user_password": "Vi nun estas por difini novan uzantan pasvorton. La pasvorto devas esti almenaŭ 8 signojn - kvankam estas bone praktiki uzi pli longan pasvorton (t.e. pasfrazon) kaj/aŭ variaĵon de signoj (majuskloj, minuskloj, ciferoj kaj specialaj signoj).",
|
||||||
"group_updated": "Ĝisdatigita \"{group}\" grupo",
|
"group_updated": "Ĝisdatigita \"{group}\" grupo",
|
||||||
|
@ -158,17 +134,12 @@
|
||||||
"group_user_already_in_group": "Uzanto {user} jam estas en grupo {group}",
|
"group_user_already_in_group": "Uzanto {user} jam estas en grupo {group}",
|
||||||
"group_user_not_in_group": "Uzanto {user} ne estas en grupo {group}",
|
"group_user_not_in_group": "Uzanto {user} ne estas en grupo {group}",
|
||||||
"installation_complete": "Kompleta instalado",
|
"installation_complete": "Kompleta instalado",
|
||||||
"log_category_404": "La loga kategorio '{category}' ne ekzistas",
|
|
||||||
"log_permission_create": "Krei permeson '{}'",
|
"log_permission_create": "Krei permeson '{}'",
|
||||||
"log_permission_delete": "Forigi permeson '{}'",
|
"log_permission_delete": "Forigi permeson '{}'",
|
||||||
"log_user_group_create": "Krei grupon '{}'",
|
"log_user_group_create": "Krei grupon '{}'",
|
||||||
"log_user_permission_update": "Mise à jour des accès pour la permission '{}'",
|
"log_user_permission_update": "Mise à jour des accès pour la permission '{}'",
|
||||||
"log_user_permission_reset": "Restarigi permeson '{}'",
|
"log_user_permission_reset": "Restarigi permeson '{}'",
|
||||||
"mail_forward_remove_failed": "Ne povis forigi retpoŝton plusendante '{mail:s}'",
|
"mail_forward_remove_failed": "Ne povis forigi retpoŝton plusendante '{mail:s}'",
|
||||||
"migration_0011_rollback_success": "Sistemo ruliĝis reen.",
|
|
||||||
"migration_0011_update_LDAP_database": "Ĝisdatigante LDAP-datumbazon…",
|
|
||||||
"migration_0011_update_LDAP_schema": "Ĝisdatigante LDAP-skemon…",
|
|
||||||
"migration_0011_failed_to_remove_stale_object": "Ne povis forigi neuzatan objekton {dn}: {error}",
|
|
||||||
"migrations_already_ran": "Tiuj migradoj estas jam faritaj: {ids}",
|
"migrations_already_ran": "Tiuj migradoj estas jam faritaj: {ids}",
|
||||||
"migrations_no_such_migration": "Estas neniu migrado nomata '{id}'",
|
"migrations_no_such_migration": "Estas neniu migrado nomata '{id}'",
|
||||||
"permission_already_allowed": "Grupo '{group}' jam havas rajtigitan permeson '{permission}'",
|
"permission_already_allowed": "Grupo '{group}' jam havas rajtigitan permeson '{permission}'",
|
||||||
|
@ -195,7 +166,6 @@
|
||||||
"migrations_not_pending_cant_skip": "Tiuj migradoj ankoraŭ ne estas pritraktataj, do ne eblas preterlasi: {ids}",
|
"migrations_not_pending_cant_skip": "Tiuj migradoj ankoraŭ ne estas pritraktataj, do ne eblas preterlasi: {ids}",
|
||||||
"permission_already_exist": "Permesita '{permission}' jam ekzistas",
|
"permission_already_exist": "Permesita '{permission}' jam ekzistas",
|
||||||
"domain_created": "Domajno kreita",
|
"domain_created": "Domajno kreita",
|
||||||
"migrate_tsig_wait_2": "2 minutoj …",
|
|
||||||
"log_user_create": "Aldonu uzanton '{}'",
|
"log_user_create": "Aldonu uzanton '{}'",
|
||||||
"ip6tables_unavailable": "Vi ne povas ludi kun ip6tabloj ĉi tie. Vi estas en ujo aŭ via kerno ne subtenas ĝin",
|
"ip6tables_unavailable": "Vi ne povas ludi kun ip6tabloj ĉi tie. Vi estas en ujo aŭ via kerno ne subtenas ĝin",
|
||||||
"mail_unavailable": "Ĉi tiu retpoŝta adreso estas rezervita kaj aŭtomate estos atribuita al la unua uzanto",
|
"mail_unavailable": "Ĉi tiu retpoŝta adreso estas rezervita kaj aŭtomate estos atribuita al la unua uzanto",
|
||||||
|
@ -207,23 +177,17 @@
|
||||||
"certmanager_cert_install_success_selfsigned": "Mem-subskribita atestilo nun instalita por la domajno '{domain:s}'",
|
"certmanager_cert_install_success_selfsigned": "Mem-subskribita atestilo nun instalita por la domajno '{domain:s}'",
|
||||||
"global_settings_unknown_setting_from_settings_file": "Nekonata ŝlosilo en agordoj: '{setting_key:s}', forĵetu ĝin kaj konservu ĝin en /etc/yunohost/settings-unknown.json",
|
"global_settings_unknown_setting_from_settings_file": "Nekonata ŝlosilo en agordoj: '{setting_key:s}', forĵetu ĝin kaj konservu ĝin en /etc/yunohost/settings-unknown.json",
|
||||||
"regenconf_file_backed_up": "Agordodosiero '{conf}' estis rezervita al '{backup}'",
|
"regenconf_file_backed_up": "Agordodosiero '{conf}' estis rezervita al '{backup}'",
|
||||||
"migration_0007_cannot_restart": "SSH ne rekomencas post provi nuligi la migradan numeron 6.",
|
|
||||||
"migration_description_0006_sync_admin_and_root_passwords": "Sinkronigu admin kaj radikajn pasvortojn",
|
|
||||||
"iptables_unavailable": "Vi ne povas ludi kun iptables ĉi tie. Vi estas en ujo aŭ via kerno ne subtenas ĝin",
|
"iptables_unavailable": "Vi ne povas ludi kun iptables ĉi tie. Vi estas en ujo aŭ via kerno ne subtenas ĝin",
|
||||||
"global_settings_cant_write_settings": "Ne eblis konservi agordojn, tial: {reason:s}",
|
"global_settings_cant_write_settings": "Ne eblis konservi agordojn, tial: {reason:s}",
|
||||||
"service_added": "La servo '{service:s}' estis aldonita",
|
"service_added": "La servo '{service:s}' estis aldonita",
|
||||||
"upnp_disabled": "UPnP malŝaltis",
|
"upnp_disabled": "UPnP malŝaltis",
|
||||||
"service_started": "Servo '{service:s}' komenciĝis",
|
"service_started": "Servo '{service:s}' komenciĝis",
|
||||||
"port_already_opened": "Haveno {port:d} estas jam malfermita por {ip_version:s} rilatoj",
|
"port_already_opened": "Haveno {port:d} estas jam malfermita por {ip_version:s} rilatoj",
|
||||||
"installation_failed": "Io okazis malbone kun la instalado",
|
|
||||||
"migrate_tsig_wait_3": "1 minuto …",
|
|
||||||
"certmanager_conflicting_nginx_file": "Ne povis prepari domajnon por ACME-defio: la agordo de NGINX {filepath:s} konfliktas kaj unue devas esti forigita",
|
|
||||||
"upgrading_packages": "Ĝisdatigi pakojn…",
|
"upgrading_packages": "Ĝisdatigi pakojn…",
|
||||||
"custom_app_url_required": "Vi devas provizi URL por altgradigi vian kutimon app {app:s}",
|
"custom_app_url_required": "Vi devas provizi URL por altgradigi vian kutimon app {app:s}",
|
||||||
"service_reload_failed": "Ne povis reŝargi la servon '{service:s}'\n\nLastatempaj servaj protokoloj: {logs:s}",
|
"service_reload_failed": "Ne povis reŝargi la servon '{service:s}'\n\nLastatempaj servaj protokoloj: {logs:s}",
|
||||||
"packages_upgrade_failed": "Ne povis ĝisdatigi ĉiujn pakojn",
|
"packages_upgrade_failed": "Ne povis ĝisdatigi ĉiujn pakojn",
|
||||||
"hook_json_return_error": "Ne povis legi revenon de hoko {path:s}. Eraro: {msg:s}. Kruda enhavo: {raw_content}",
|
"hook_json_return_error": "Ne povis legi revenon de hoko {path:s}. Eraro: {msg:s}. Kruda enhavo: {raw_content}",
|
||||||
"dyndns_cron_removed": "DynDNS cron-laboro forigita",
|
|
||||||
"dyndns_key_not_found": "DNS-ŝlosilo ne trovita por la domajno",
|
"dyndns_key_not_found": "DNS-ŝlosilo ne trovita por la domajno",
|
||||||
"tools_upgrade_regular_packages_failed": "Ne povis ĝisdatigi pakojn: {packages_list}",
|
"tools_upgrade_regular_packages_failed": "Ne povis ĝisdatigi pakojn: {packages_list}",
|
||||||
"service_start_failed": "Ne povis komenci la servon '{service:s}'\n\nLastatempaj servaj protokoloj: {logs:s}",
|
"service_start_failed": "Ne povis komenci la servon '{service:s}'\n\nLastatempaj servaj protokoloj: {logs:s}",
|
||||||
|
@ -231,51 +195,36 @@
|
||||||
"system_upgraded": "Sistemo ĝisdatigita",
|
"system_upgraded": "Sistemo ĝisdatigita",
|
||||||
"domain_deleted": "Domajno forigita",
|
"domain_deleted": "Domajno forigita",
|
||||||
"certmanager_acme_not_configured_for_domain": "Atestilo por la domajno '{domain:s}' ne ŝajnas esti ĝuste instalita. Bonvolu ekzekuti 'cert-instali' por ĉi tiu regado unue.",
|
"certmanager_acme_not_configured_for_domain": "Atestilo por la domajno '{domain:s}' ne ŝajnas esti ĝuste instalita. Bonvolu ekzekuti 'cert-instali' por ĉi tiu regado unue.",
|
||||||
"migration_description_0009_decouple_regenconf_from_services": "Malkonstruu la regen-konf-mekanismon de servoj",
|
|
||||||
"user_update_failed": "Ne povis ĝisdatigi uzanton {user}: {error}",
|
"user_update_failed": "Ne povis ĝisdatigi uzanton {user}: {error}",
|
||||||
"migration_description_0008_ssh_conf_managed_by_yunohost_step2": "Lasu la SSH-agordon estu administrata de YunoHost (paŝo 2, manlibro)",
|
|
||||||
"restore_confirm_yunohost_installed": "Ĉu vi vere volas restarigi jam instalitan sistemon? [{answers:s}]",
|
"restore_confirm_yunohost_installed": "Ĉu vi vere volas restarigi jam instalitan sistemon? [{answers:s}]",
|
||||||
"pattern_positive_number": "Devas esti pozitiva nombro",
|
"pattern_positive_number": "Devas esti pozitiva nombro",
|
||||||
"certmanager_error_no_A_record": "Neniu DNS 'A' rekordo trovita por '{domain:s}'. Vi bezonas atentigi vian domajnan nomon al via maŝino por povi instali atestilon Lasu-Ĉifri. (Se vi scias, kion vi faras, uzu '--no-checks' por malŝalti tiujn ĉekojn.)",
|
|
||||||
"update_apt_cache_failed": "Ne eblis ĝisdatigi la kaŝmemoron de APT (paka administranto de Debian). Jen rubujo de la sources.list-linioj, kiuj povus helpi identigi problemajn liniojn:\n{sourceslist}",
|
"update_apt_cache_failed": "Ne eblis ĝisdatigi la kaŝmemoron de APT (paka administranto de Debian). Jen rubujo de la sources.list-linioj, kiuj povus helpi identigi problemajn liniojn:\n{sourceslist}",
|
||||||
"migrations_no_migrations_to_run": "Neniuj migradoj por funkcii",
|
"migrations_no_migrations_to_run": "Neniuj migradoj por funkcii",
|
||||||
"executing_command": "Plenumanta komandon '{command:s}' …",
|
|
||||||
"certmanager_attempt_to_renew_nonLE_cert": "La atestilo por la domajno '{domain:s}' ne estas elsendita de Let's Encrypt. Ne eblas renovigi ĝin aŭtomate!",
|
"certmanager_attempt_to_renew_nonLE_cert": "La atestilo por la domajno '{domain:s}' ne estas elsendita de Let's Encrypt. Ne eblas renovigi ĝin aŭtomate!",
|
||||||
"global_settings_setting_example_bool": "Ekzemplo bulea elekto",
|
|
||||||
"domain_dyndns_already_subscribed": "Vi jam abonis DynDNS-domajnon",
|
"domain_dyndns_already_subscribed": "Vi jam abonis DynDNS-domajnon",
|
||||||
"log_letsencrypt_cert_renew": "Renovigu '{}' Let's Encrypt atestilon",
|
"log_letsencrypt_cert_renew": "Renovigu '{}' Let's Encrypt atestilon",
|
||||||
"migrate_tsig_start": "Detektita ŝlosila algoritmo nesufiĉa por TSIG-subskribo de la domajno '{domain}', komencanta migradon al la pli sekura HMAC-SHA-512",
|
|
||||||
"ldap_init_failed_to_create_admin": "LDAP-iniciato ne povis krei administran uzanton",
|
|
||||||
"backup_output_directory_required": "Vi devas provizi elirejan dosierujon por la sekurkopio",
|
"backup_output_directory_required": "Vi devas provizi elirejan dosierujon por la sekurkopio",
|
||||||
"tools_upgrade_cant_unhold_critical_packages": "Ne povis malŝalti kritikajn pakojn…",
|
"tools_upgrade_cant_unhold_critical_packages": "Ne povis malŝalti kritikajn pakojn…",
|
||||||
"log_link_to_log": "Plena ŝtipo de ĉi tiu operacio: '<a href=\"#/tools/logs/{name}\" style=\"text-decoration:underline\">{desc} </a>'",
|
"log_link_to_log": "Plena ŝtipo de ĉi tiu operacio: '<a href=\"#/tools/logs/{name}\" style=\"text-decoration:underline\">{desc} </a>'",
|
||||||
"global_settings_cant_serialize_settings": "Ne eblis serialigi datumojn pri agordoj, motivo: {reason:s}",
|
"global_settings_cant_serialize_settings": "Ne eblis serialigi datumojn pri agordoj, motivo: {reason:s}",
|
||||||
"backup_running_hooks": "Kurado de apogaj hokoj …",
|
"backup_running_hooks": "Kurado de apogaj hokoj …",
|
||||||
"certmanager_domain_unknown": "Nekonata domajno '{domain:s}'",
|
|
||||||
"unexpected_error": "Io neatendita iris malbone: {error}",
|
"unexpected_error": "Io neatendita iris malbone: {error}",
|
||||||
"password_listed": "Ĉi tiu pasvorto estas inter la plej uzataj pasvortoj en la mondo. Bonvolu elekti ion pli unikan.",
|
"password_listed": "Ĉi tiu pasvorto estas inter la plej uzataj pasvortoj en la mondo. Bonvolu elekti ion pli unikan.",
|
||||||
"migration_description_0007_ssh_conf_managed_by_yunohost_step1": "Lasu la SSH-agordon estu administrata de YunoHost (paŝo 1, aŭtomata)",
|
|
||||||
"migration_0009_not_needed": "Ĉi tiu migrado jam iel okazis ... (?) Saltado.",
|
|
||||||
"ssowat_conf_generated": "SSOwat-agordo generita",
|
"ssowat_conf_generated": "SSOwat-agordo generita",
|
||||||
"migrate_tsig_wait": "Atendante tri minutojn por ke la servilo DynDNS enkalkulu la novan ŝlosilon …",
|
|
||||||
"log_remove_on_failed_restore": "Forigu '{}' post malsukcesa restarigo de rezerva ar archiveivo",
|
"log_remove_on_failed_restore": "Forigu '{}' post malsukcesa restarigo de rezerva ar archiveivo",
|
||||||
"dpkg_is_broken": "Vi ne povas fari ĉi tion nun ĉar dpkg/APT (la administrantoj pri pakaĵaj sistemoj) ŝajnas esti rompita stato ... Vi povas provi solvi ĉi tiun problemon per konekto per SSH kaj funkcianta `sudo dpkg --configure -a`.",
|
"dpkg_is_broken": "Vi ne povas fari ĉi tion nun ĉar dpkg/APT (la administrantoj pri pakaĵaj sistemoj) ŝajnas esti rompita stato ... Vi povas provi solvi ĉi tiun problemon per konekto per SSH kaj funkcianta `sudo dpkg --configure -a`.",
|
||||||
"certmanager_cert_signing_failed": "Ne povis subskribi la novan atestilon",
|
"certmanager_cert_signing_failed": "Ne povis subskribi la novan atestilon",
|
||||||
"migration_description_0003_migrate_to_stretch": "Altgradigu la sistemon al Debian Stretch kaj YunoHost 3.0",
|
|
||||||
"log_tools_upgrade": "Ĝisdatigu sistemajn pakaĵojn",
|
"log_tools_upgrade": "Ĝisdatigu sistemajn pakaĵojn",
|
||||||
"log_available_on_yunopaste": "Ĉi tiu protokolo nun haveblas per {url}",
|
"log_available_on_yunopaste": "Ĉi tiu protokolo nun haveblas per {url}",
|
||||||
"certmanager_http_check_timeout": "Ekdifinita kiam servilo provis kontakti sin per HTTP per publika IP-adreso (domajno '{domain:s}' kun IP '{ip:s}'). Vi eble spertas haŭtoproblemon, aŭ la fajroŝirmilo / enkursigilo antaŭ via servilo miskonfiguras.",
|
|
||||||
"pattern_port_or_range": "Devas esti valida haveno-nombro (t.e. 0-65535) aŭ gamo da havenoj (t.e. 100:200)",
|
"pattern_port_or_range": "Devas esti valida haveno-nombro (t.e. 0-65535) aŭ gamo da havenoj (t.e. 100:200)",
|
||||||
"migrations_loading_migration": "Ŝarĝante migradon {id}…",
|
"migrations_loading_migration": "Ŝarĝante migradon {id}…",
|
||||||
"pattern_mailbox_quota": "Devas esti grandeco kun la sufikso b/k/M/G/T aŭ 0 por ne havi kvoton",
|
"pattern_mailbox_quota": "Devas esti grandeco kun la sufikso b/k/M/G/T aŭ 0 por ne havi kvoton",
|
||||||
"migration_0008_general_disclaimer": "Por plibonigi la sekurecon de via servilo, rekomendas lasi YunoHost administri la SSH-agordon. Via nuna SSH-aranĝo diferencas de la rekomendo. Se vi lasas YunoHost agordi ĝin, la maniero per kiu vi konektas al via servilo per SSH ŝanĝiĝos tiel:",
|
|
||||||
"user_deletion_failed": "Ne povis forigi uzanton {user}: {error}",
|
"user_deletion_failed": "Ne povis forigi uzanton {user}: {error}",
|
||||||
"backup_with_no_backup_script_for_app": "La app '{app:s}' ne havas sekretan skripton. Ignorante.",
|
"backup_with_no_backup_script_for_app": "La app '{app:s}' ne havas sekretan skripton. Ignorante.",
|
||||||
"service_regen_conf_is_deprecated": "'yunohost service regen-conf' malakceptas! Bonvolu uzi anstataŭe 'yunohost tools regen-conf'.",
|
"service_regen_conf_is_deprecated": "'yunohost service regen-conf' malakceptas! Bonvolu uzi anstataŭe 'yunohost tools regen-conf'.",
|
||||||
"global_settings_key_doesnt_exists": "La ŝlosilo '{settings_key:s}' ne ekzistas en la tutmondaj agordoj, vi povas vidi ĉiujn disponeblajn klavojn per uzado de 'yunohost settings list'",
|
"global_settings_key_doesnt_exists": "La ŝlosilo '{settings_key:s}' ne ekzistas en la tutmondaj agordoj, vi povas vidi ĉiujn disponeblajn klavojn per uzado de 'yunohost settings list'",
|
||||||
"dyndns_no_domain_registered": "Neniu domajno registrita ĉe DynDNS",
|
"dyndns_no_domain_registered": "Neniu domajno registrita ĉe DynDNS",
|
||||||
"dyndns_could_not_check_available": "Ne povis kontroli ĉu {domain:s} haveblas sur {provider:s}.",
|
"dyndns_could_not_check_available": "Ne povis kontroli ĉu {domain:s} haveblas sur {provider:s}.",
|
||||||
"global_settings_setting_example_enum": "Ekzemplo enum elekto",
|
|
||||||
"hook_exec_not_terminated": "Skripto ne finiĝis ĝuste: {path:s}",
|
"hook_exec_not_terminated": "Skripto ne finiĝis ĝuste: {path:s}",
|
||||||
"service_stopped": "Servo '{service:s}' ĉesis",
|
"service_stopped": "Servo '{service:s}' ĉesis",
|
||||||
"restore_failed": "Ne povis restarigi sistemon",
|
"restore_failed": "Ne povis restarigi sistemon",
|
||||||
|
@ -290,26 +239,19 @@
|
||||||
"updating_apt_cache": "Akirante haveblajn ĝisdatigojn por sistemaj pakoj…",
|
"updating_apt_cache": "Akirante haveblajn ĝisdatigojn por sistemaj pakoj…",
|
||||||
"tools_upgrade_at_least_one": "Bonvolu specifi '--apps' aŭ '--system'",
|
"tools_upgrade_at_least_one": "Bonvolu specifi '--apps' aŭ '--system'",
|
||||||
"service_already_stopped": "La servo '{service:s}' jam ĉesis",
|
"service_already_stopped": "La servo '{service:s}' jam ĉesis",
|
||||||
"migration_0003_modified_files": "Bonvolu noti, ke la jenaj dosieroj estis trovitaj mane kaj modifitaj kaj povus esti anstataŭigitaj sekve de la ĝisdatigo: {manually_modified_files}",
|
|
||||||
"tools_upgrade_cant_both": "Ne eblas ĝisdatigi ambaŭ sistemon kaj programojn samtempe",
|
"tools_upgrade_cant_both": "Ne eblas ĝisdatigi ambaŭ sistemon kaj programojn samtempe",
|
||||||
"restore_extracting": "Eltirante bezonatajn dosierojn el la ar theivo…",
|
"restore_extracting": "Eltirante bezonatajn dosierojn el la ar theivo…",
|
||||||
"upnp_port_open_failed": "Ne povis malfermi havenon per UPnP",
|
"upnp_port_open_failed": "Ne povis malfermi havenon per UPnP",
|
||||||
"log_app_upgrade": "Ĝisdatigu la aplikon '{}'",
|
"log_app_upgrade": "Ĝisdatigu la aplikon '{}'",
|
||||||
"log_help_to_get_failed_log": "La operacio '{desc}' ne povis finiĝi. Bonvolu dividi la plenan ŝtipon de ĉi tiu operacio per la komando 'yunohost log share {name}' por akiri helpon",
|
"log_help_to_get_failed_log": "La operacio '{desc}' ne povis finiĝi. Bonvolu dividi la plenan ŝtipon de ĉi tiu operacio per la komando 'yunohost log share {name}' por akiri helpon",
|
||||||
"migration_description_0002_migrate_to_tsig_sha256": "Plibonigu sekurecon de DynDNS TSIG-ĝisdatigoj per SHA-512 anstataŭ MD5",
|
|
||||||
"port_already_closed": "Haveno {port:d} estas jam fermita por {ip_version:s} rilatoj",
|
"port_already_closed": "Haveno {port:d} estas jam fermita por {ip_version:s} rilatoj",
|
||||||
"hook_name_unknown": "Nekonata hoko-nomo '{name:s}'",
|
"hook_name_unknown": "Nekonata hoko-nomo '{name:s}'",
|
||||||
"migration_0003_system_not_fully_up_to_date": "Via sistemo ne estas plene ĝisdata. Bonvolu plenumi regulan ĝisdatigon antaŭ ol ruli la migradon al Stretch.",
|
|
||||||
"dyndns_could_not_check_provide": "Ne povis kontroli ĉu {provider:s} povas provizi {domain:s}.",
|
"dyndns_could_not_check_provide": "Ne povis kontroli ĉu {provider:s} povas provizi {domain:s}.",
|
||||||
"dyndns_cron_remove_failed": "Ne povis forigi la cron-laboron DynDNS ĉar: {error}",
|
|
||||||
"restore_nothings_done": "Nenio estis restarigita",
|
"restore_nothings_done": "Nenio estis restarigita",
|
||||||
"log_tools_postinstall": "Afiŝu vian servilon YunoHost",
|
"log_tools_postinstall": "Afiŝu vian servilon YunoHost",
|
||||||
"dyndns_unavailable": "La domajno '{domain:s}' ne haveblas.",
|
"dyndns_unavailable": "La domajno '{domain:s}' ne haveblas.",
|
||||||
"experimental_feature": "Averto: Ĉi tiu funkcio estas eksperimenta kaj ne konsiderata stabila, vi ne uzu ĝin krom se vi scias kion vi faras.",
|
"experimental_feature": "Averto: Ĉi tiu funkcio estas eksperimenta kaj ne konsiderata stabila, vi ne uzu ĝin krom se vi scias kion vi faras.",
|
||||||
"root_password_replaced_by_admin_password": "Via radika pasvorto estis anstataŭigita per via administra pasvorto.",
|
"root_password_replaced_by_admin_password": "Via radika pasvorto estis anstataŭigita per via administra pasvorto.",
|
||||||
"migration_description_0005_postgresql_9p4_to_9p6": "Migru datumbazojn de PostgreSQL 9.4 al 9.6",
|
|
||||||
"migration_0008_root": "• Vi ne povos konekti kiel radiko per SSH. Anstataŭe vi uzu la administran uzanton;",
|
|
||||||
"package_unknown": "Nekonata pako '{pkgname}'",
|
|
||||||
"domain_unknown": "Nekonata domajno",
|
"domain_unknown": "Nekonata domajno",
|
||||||
"global_settings_setting_security_password_user_strength": "Uzanto pasvorta forto",
|
"global_settings_setting_security_password_user_strength": "Uzanto pasvorta forto",
|
||||||
"restore_may_be_not_enough_disk_space": "Via sistemo ne ŝajnas havi sufiĉe da spaco (libera: {free_space:d} B, necesa spaco: {needed_space:d} B, sekureca marĝeno: {margin:d} B)",
|
"restore_may_be_not_enough_disk_space": "Via sistemo ne ŝajnas havi sufiĉe da spaco (libera: {free_space:d} B, necesa spaco: {needed_space:d} B, sekureca marĝeno: {margin:d} B)",
|
||||||
|
@ -323,17 +265,13 @@
|
||||||
"service_description_fail2ban": "Protektas kontraŭ bruta forto kaj aliaj specoj de atakoj de la interreto",
|
"service_description_fail2ban": "Protektas kontraŭ bruta forto kaj aliaj specoj de atakoj de la interreto",
|
||||||
"file_does_not_exist": "La dosiero {path:s} ne ekzistas.",
|
"file_does_not_exist": "La dosiero {path:s} ne ekzistas.",
|
||||||
"yunohost_not_installed": "YunoHost ne estas ĝuste instalita. Bonvolu prilabori 'yunohost tools postinstall'",
|
"yunohost_not_installed": "YunoHost ne estas ĝuste instalita. Bonvolu prilabori 'yunohost tools postinstall'",
|
||||||
"migration_0005_postgresql_96_not_installed": "PostgreSQL 9.4 estas instalita, sed ne postgresql 9.6‽ Io stranga eble okazis en via sistemo :(…",
|
|
||||||
"restore_removing_tmp_dir_failed": "Ne povis forigi malnovan provizoran dosierujon",
|
"restore_removing_tmp_dir_failed": "Ne povis forigi malnovan provizoran dosierujon",
|
||||||
"certmanager_cannot_read_cert": "Io malbona okazis, kiam mi provis malfermi aktualan atestilon por domajno {domain:s} (dosiero: {file:s}), kialo: {reason:s}",
|
"certmanager_cannot_read_cert": "Io malbona okazis, kiam mi provis malfermi aktualan atestilon por domajno {domain:s} (dosiero: {file:s}), kialo: {reason:s}",
|
||||||
"service_removed": "Servo '{service:s}' forigita",
|
"service_removed": "Servo '{service:s}' forigita",
|
||||||
"certmanager_hit_rate_limit": "Tro multaj atestiloj jam eldonitaj por ĉi tiu ĝusta aro de domajnoj {domain:s} antaŭ nelonge. Bonvolu reprovi poste. Vidu https://letsencrypt.org/docs/rate-limits/ por pliaj detaloj",
|
"certmanager_hit_rate_limit": "Tro multaj atestiloj jam eldonitaj por ĉi tiu ĝusta aro de domajnoj {domain:s} antaŭ nelonge. Bonvolu reprovi poste. Vidu https://letsencrypt.org/docs/rate-limits/ por pliaj detaloj",
|
||||||
"migration_0005_not_enough_space": "Disponigu sufiĉan spacon en {path} por ruli la migradon.",
|
|
||||||
"pattern_firstname": "Devas esti valida antaŭnomo",
|
"pattern_firstname": "Devas esti valida antaŭnomo",
|
||||||
"migration_description_0010_migrate_to_apps_json": "Forigu malvalorigitajn katalogajn programojn kaj uzu anstataŭe la novan unuigitan liston de \"apps.json\" (malaktuale anstataŭita per migrado 13)",
|
|
||||||
"domain_cert_gen_failed": "Ne povis generi atestilon",
|
"domain_cert_gen_failed": "Ne povis generi atestilon",
|
||||||
"regenconf_file_kept_back": "La agorda dosiero '{conf}' estas atendita forigi per regen-conf (kategorio {category}), sed ĝi estis konservita.",
|
"regenconf_file_kept_back": "La agorda dosiero '{conf}' estas atendita forigi per regen-conf (kategorio {category}), sed ĝi estis konservita.",
|
||||||
"migrate_tsig_wait_4": "30 sekundoj …",
|
|
||||||
"backup_with_no_restore_script_for_app": "La apliko \"{app:s}\" ne havas restarigan skripton, vi ne povos aŭtomate restarigi la sekurkopion de ĉi tiu apliko.",
|
"backup_with_no_restore_script_for_app": "La apliko \"{app:s}\" ne havas restarigan skripton, vi ne povos aŭtomate restarigi la sekurkopion de ĉi tiu apliko.",
|
||||||
"log_letsencrypt_cert_install": "Instalu atestilon Let's Encrypt sur '{}' regado",
|
"log_letsencrypt_cert_install": "Instalu atestilon Let's Encrypt sur '{}' regado",
|
||||||
"log_dyndns_update": "Ĝisdatigu la IP asociita kun via subdominio YunoHost '{}'",
|
"log_dyndns_update": "Ĝisdatigu la IP asociita kun via subdominio YunoHost '{}'",
|
||||||
|
@ -342,24 +280,19 @@
|
||||||
"log_user_delete": "Forigi uzanton '{}'",
|
"log_user_delete": "Forigi uzanton '{}'",
|
||||||
"dyndns_ip_updated": "Ĝisdatigis vian IP sur DynDNS",
|
"dyndns_ip_updated": "Ĝisdatigis vian IP sur DynDNS",
|
||||||
"regenconf_up_to_date": "La agordo jam estas ĝisdatigita por kategorio '{category}'",
|
"regenconf_up_to_date": "La agordo jam estas ĝisdatigita por kategorio '{category}'",
|
||||||
"migration_0003_patching_sources_list": "Patching the sources.lists …",
|
|
||||||
"global_settings_setting_security_ssh_compatibility": "Kongruo vs sekureca kompromiso por la SSH-servilo. Afektas la ĉifradojn (kaj aliajn aspektojn pri sekureco)",
|
"global_settings_setting_security_ssh_compatibility": "Kongruo vs sekureca kompromiso por la SSH-servilo. Afektas la ĉifradojn (kaj aliajn aspektojn pri sekureco)",
|
||||||
"migrations_need_to_accept_disclaimer": "Por funkciigi la migradon {id}, via devas akcepti la sekvan malakcepton:\n---\n{disclaimer}\n---\nSe vi akceptas funkcii la migradon, bonvolu rekonduki la komandon kun la opcio '--accept-disclaimer'.",
|
"migrations_need_to_accept_disclaimer": "Por funkciigi la migradon {id}, via devas akcepti la sekvan malakcepton:\n---\n{disclaimer}\n---\nSe vi akceptas funkcii la migradon, bonvolu rekonduki la komandon kun la opcio '--accept-disclaimer'.",
|
||||||
"regenconf_file_remove_failed": "Ne povis forigi la agordodosieron '{conf}'",
|
"regenconf_file_remove_failed": "Ne povis forigi la agordodosieron '{conf}'",
|
||||||
"not_enough_disk_space": "Ne sufiĉe libera spaco sur '{path:s}'",
|
"not_enough_disk_space": "Ne sufiĉe libera spaco sur '{path:s}'",
|
||||||
"migration_0006_disclaimer": "YunoHost nun atendas, ke la pasvortoj de admin kaj radiko estos sinkronigitaj. Ĉi tiu migrado anstataŭigas vian radikan pasvorton kun la administran pasvorton.",
|
|
||||||
"dyndns_ip_update_failed": "Ne povis ĝisdatigi IP-adreson al DynDNS",
|
"dyndns_ip_update_failed": "Ne povis ĝisdatigi IP-adreson al DynDNS",
|
||||||
"migration_description_0004_php5_to_php7_pools": "Rekonfigu la PHP-naĝejojn por uzi PHP 7 anstataŭ 5",
|
|
||||||
"ssowat_conf_updated": "SSOwat-agordo ĝisdatigita",
|
"ssowat_conf_updated": "SSOwat-agordo ĝisdatigita",
|
||||||
"log_link_to_failed_log": "Ne povis plenumi la operacion '{desc}'. Bonvolu provizi la plenan protokolon de ĉi tiu operacio per <a href=\"#/tools/logs/{name}\">alklakante ĉi tie </a> por akiri helpon",
|
"log_link_to_failed_log": "Ne povis plenumi la operacion '{desc}'. Bonvolu provizi la plenan protokolon de ĉi tiu operacio per <a href=\"#/tools/logs/{name}\">alklakante ĉi tie </a> por akiri helpon",
|
||||||
"user_home_creation_failed": "Ne povis krei dosierujon \"home\" por uzanto",
|
"user_home_creation_failed": "Ne povis krei dosierujon \"home\" por uzanto",
|
||||||
"pattern_backup_archive_name": "Devas esti valida dosiernomo kun maksimume 30 signoj, alfanombraj kaj -_. signoj nur",
|
"pattern_backup_archive_name": "Devas esti valida dosiernomo kun maksimume 30 signoj, alfanombraj kaj -_. signoj nur",
|
||||||
"restore_cleaning_failed": "Ne eblis purigi la adresaron de provizora restarigo",
|
"restore_cleaning_failed": "Ne eblis purigi la adresaron de provizora restarigo",
|
||||||
"dyndns_registration_failed": "Ne povis registri DynDNS-domajnon: {error:s}",
|
"dyndns_registration_failed": "Ne povis registri DynDNS-domajnon: {error:s}",
|
||||||
"migration_0003_not_jessie": "La nuna Debian-distribuo ne estas Jessie!",
|
|
||||||
"user_unknown": "Nekonata uzanto: {user:s}",
|
"user_unknown": "Nekonata uzanto: {user:s}",
|
||||||
"migrations_to_be_ran_manually": "Migrado {id} devas funkcii permane. Bonvolu iri al Iloj → Migradoj en la retpaĝa paĝo, aŭ kuri `yunohost tools migrations run`.",
|
"migrations_to_be_ran_manually": "Migrado {id} devas funkcii permane. Bonvolu iri al Iloj → Migradoj en la retpaĝa paĝo, aŭ kuri `yunohost tools migrations run`.",
|
||||||
"migration_0008_warning": "Se vi komprenas tiujn avertojn kaj volas ke YunoHost preterlasu vian nunan agordon, faru la migradon. Alie, vi ankaŭ povas salti la migradon, kvankam ĝi ne rekomendas.",
|
|
||||||
"certmanager_cert_renew_success": "Ni Ĉifru atestilon renovigitan por la domajno '{domain:s}'",
|
"certmanager_cert_renew_success": "Ni Ĉifru atestilon renovigitan por la domajno '{domain:s}'",
|
||||||
"global_settings_reset_success": "Antaŭaj agordoj nun estas rezervitaj al {path:s}",
|
"global_settings_reset_success": "Antaŭaj agordoj nun estas rezervitaj al {path:s}",
|
||||||
"pattern_domain": "Devas esti valida domajna nomo (t.e. mia-domino.org)",
|
"pattern_domain": "Devas esti valida domajna nomo (t.e. mia-domino.org)",
|
||||||
|
@ -369,8 +302,6 @@
|
||||||
"regenconf_file_removed": "Agordodosiero '{conf}' forigita",
|
"regenconf_file_removed": "Agordodosiero '{conf}' forigita",
|
||||||
"log_tools_shutdown": "Enŝaltu vian servilon",
|
"log_tools_shutdown": "Enŝaltu vian servilon",
|
||||||
"password_too_simple_3": "La pasvorto bezonas almenaŭ 8 signojn kaj enhavas ciferon, majusklon, pli malaltan kaj specialajn signojn",
|
"password_too_simple_3": "La pasvorto bezonas almenaŭ 8 signojn kaj enhavas ciferon, majusklon, pli malaltan kaj specialajn signojn",
|
||||||
"migration_0003_general_warning": "Bonvolu noti, ke ĉi tiu migrado estas delikata operacio. La teamo de YunoHost faris sian plej bonan revizii kaj testi ĝin, sed la migrado eble ankoraŭ rompos partojn de la sistemo aŭ ĝiaj programoj.\n\nTial oni rekomendas al:\n - Elfari kopion de iuj kritikaj datumoj aŭ app. Pliaj informoj pri https://yunohost.org/backup;\n - Paciencu post lanĉo de la migrado: Depende de via interreta konekto kaj aparataro, eble daŭros kelkaj horoj ĝis ĉio ĝisdatigi.\n\nAldone, la haveno por SMTP, uzata de eksteraj retpoŝtaj klientoj (kiel Thunderbird aŭ K9-Mail) estis ŝanĝita de 465 (SSL / TLS) al 587 (STARTTLS). La malnova haveno (465) aŭtomate fermiĝos, kaj la nova haveno (587) malfermiĝos en la fajrejo. Vi kaj viaj uzantoj * devos adapti la agordon de viaj retpoŝtaj klientoj laŭe.",
|
|
||||||
"global_settings_setting_example_int": "Ekzemple int elekto",
|
|
||||||
"backup_output_symlink_dir_broken": "Via arkiva dosierujo '{path:s}' estas rompita ligilo. Eble vi forgesis restarigi aŭ munti aŭ enŝovi la stokadon, al kiu ĝi notas.",
|
"backup_output_symlink_dir_broken": "Via arkiva dosierujo '{path:s}' estas rompita ligilo. Eble vi forgesis restarigi aŭ munti aŭ enŝovi la stokadon, al kiu ĝi notas.",
|
||||||
"good_practices_about_admin_password": "Vi nun estas por difini novan administran pasvorton. La pasvorto devas esti almenaŭ 8 signojn - kvankam estas bone praktiki uzi pli longan pasvorton (t.e. pasfrazon) kaj/aŭ uzi variaĵon de signoj (majuskloj, minuskloj, ciferoj kaj specialaj signoj).",
|
"good_practices_about_admin_password": "Vi nun estas por difini novan administran pasvorton. La pasvorto devas esti almenaŭ 8 signojn - kvankam estas bone praktiki uzi pli longan pasvorton (t.e. pasfrazon) kaj/aŭ uzi variaĵon de signoj (majuskloj, minuskloj, ciferoj kaj specialaj signoj).",
|
||||||
"certmanager_attempt_to_renew_valid_cert": "La atestilo por la domajno '{domain:s}' ne finiĝos! (Vi eble uzos --force se vi scias kion vi faras)",
|
"certmanager_attempt_to_renew_valid_cert": "La atestilo por la domajno '{domain:s}' ne finiĝos! (Vi eble uzos --force se vi scias kion vi faras)",
|
||||||
|
@ -378,7 +309,6 @@
|
||||||
"regenconf_pending_applying": "Aplikante pritraktata agordo por kategorio '{category}'…",
|
"regenconf_pending_applying": "Aplikante pritraktata agordo por kategorio '{category}'…",
|
||||||
"service_description_dovecot": "Permesas al retpoŝtaj klientoj aliri / serĉi retpoŝton (per IMAP kaj POP3)",
|
"service_description_dovecot": "Permesas al retpoŝtaj klientoj aliri / serĉi retpoŝton (per IMAP kaj POP3)",
|
||||||
"domain_dns_conf_is_just_a_recommendation": "Ĉi tiu komando montras al vi la *rekomenditan* agordon. Ĝi efektive ne agordas la DNS-agordon por vi. Via respondeco agordi vian DNS-zonon en via registristo laŭ ĉi tiu rekomendo.",
|
"domain_dns_conf_is_just_a_recommendation": "Ĉi tiu komando montras al vi la *rekomenditan* agordon. Ĝi efektive ne agordas la DNS-agordon por vi. Via respondeco agordi vian DNS-zonon en via registristo laŭ ĉi tiu rekomendo.",
|
||||||
"backup_php5_to_php7_migration_may_fail": "Ne povis konverti vian ar archiveivon por subteni PHP 7, vi eble ne povas restarigi viajn PHP-programojn (kialo: {error:s})",
|
|
||||||
"log_backup_restore_system": "Restarigi sistemon de rezerva arkivo",
|
"log_backup_restore_system": "Restarigi sistemon de rezerva arkivo",
|
||||||
"log_app_change_url": "Ŝanĝu la URL de la apliko '{}'",
|
"log_app_change_url": "Ŝanĝu la URL de la apliko '{}'",
|
||||||
"service_already_started": "La servo '{service:s}' jam funkcias",
|
"service_already_started": "La servo '{service:s}' jam funkcias",
|
||||||
|
@ -395,16 +325,10 @@
|
||||||
"restore_hook_unavailable": "Restariga skripto por '{part:s}' ne haveblas en via sistemo kaj ankaŭ ne en la ar theivo",
|
"restore_hook_unavailable": "Restariga skripto por '{part:s}' ne haveblas en via sistemo kaj ankaŭ ne en la ar theivo",
|
||||||
"log_dyndns_subscribe": "Aboni al YunoHost-subdominio '{}'",
|
"log_dyndns_subscribe": "Aboni al YunoHost-subdominio '{}'",
|
||||||
"password_too_simple_4": "La pasvorto bezonas almenaŭ 12 signojn kaj enhavas ciferon, majuskle, pli malaltan kaj specialajn signojn",
|
"password_too_simple_4": "La pasvorto bezonas almenaŭ 12 signojn kaj enhavas ciferon, majuskle, pli malaltan kaj specialajn signojn",
|
||||||
"migration_0003_main_upgrade": "Komencanta ĉefa ĝisdatigo …",
|
|
||||||
"regenconf_file_updated": "Agordodosiero '{conf}' ĝisdatigita",
|
"regenconf_file_updated": "Agordodosiero '{conf}' ĝisdatigita",
|
||||||
"log_help_to_get_log": "Por vidi la protokolon de la operacio '{desc}', uzu la komandon 'yunohost log show {name}{name}'",
|
"log_help_to_get_log": "Por vidi la protokolon de la operacio '{desc}', uzu la komandon 'yunohost log show {name}{name}'",
|
||||||
"global_settings_setting_security_nginx_compatibility": "Kongruo vs sekureca kompromiso por la TTT-servilo NGINX. Afektas la ĉifradojn (kaj aliajn aspektojn pri sekureco)",
|
"global_settings_setting_security_nginx_compatibility": "Kongruo vs sekureca kompromiso por la TTT-servilo NGINX. Afektas la ĉifradojn (kaj aliajn aspektojn pri sekureco)",
|
||||||
"no_internet_connection": "La servilo ne estas konektita al la interreto",
|
|
||||||
"migration_0008_dsa": "• La DSA-ŝlosilo estos malŝaltita. Tial vi eble bezonos nuligi spuran averton de via SSH-kliento kaj revizii la fingrospuron de via servilo;",
|
|
||||||
"migration_0003_restoring_origin_nginx_conf": "Fileia dosiero /etc/nginx/nginx.conf estis iel redaktita. La migrado unue restarigos ĝin al sia originala stato ... La antaŭa dosiero estos havebla kiel {backup_dest}.",
|
|
||||||
"migrate_tsig_end": "Migrado al HMAC-SHA-512 finiĝis",
|
|
||||||
"restore_complete": "Restarigita",
|
"restore_complete": "Restarigita",
|
||||||
"certmanager_couldnt_fetch_intermediate_cert": "Ekvilibrigita kiam vi provis ricevi interajn atestilojn de Let's Encrypt. Atestita instalado / renovigo nuligita - bonvolu reprovi poste.",
|
|
||||||
"hook_exec_failed": "Ne povis funkcii skripto: {path:s}",
|
"hook_exec_failed": "Ne povis funkcii skripto: {path:s}",
|
||||||
"global_settings_cant_open_settings": "Ne eblis malfermi agordojn, tial: {reason:s}",
|
"global_settings_cant_open_settings": "Ne eblis malfermi agordojn, tial: {reason:s}",
|
||||||
"user_created": "Uzanto kreita",
|
"user_created": "Uzanto kreita",
|
||||||
|
@ -414,7 +338,6 @@
|
||||||
"update_apt_cache_warning": "Io iris malbone dum la ĝisdatigo de la kaŝmemoro de APT (paka administranto de Debian). Jen rubujo de la sources.list-linioj, kiuj povus helpi identigi problemajn liniojn:\n{sourceslist}",
|
"update_apt_cache_warning": "Io iris malbone dum la ĝisdatigo de la kaŝmemoro de APT (paka administranto de Debian). Jen rubujo de la sources.list-linioj, kiuj povus helpi identigi problemajn liniojn:\n{sourceslist}",
|
||||||
"regenconf_dry_pending_applying": "Kontrolado de pritraktata agordo, kiu estus aplikita por kategorio '{category}'…",
|
"regenconf_dry_pending_applying": "Kontrolado de pritraktata agordo, kiu estus aplikita por kategorio '{category}'…",
|
||||||
"regenconf_file_copy_failed": "Ne povis kopii la novan agordodosieron '{new}' al '{conf}'",
|
"regenconf_file_copy_failed": "Ne povis kopii la novan agordodosieron '{new}' al '{conf}'",
|
||||||
"global_settings_setting_example_string": "Ekzemple korda elekto",
|
|
||||||
"restore_already_installed_app": "App kun la ID '{app:s}' estas jam instalita",
|
"restore_already_installed_app": "App kun la ID '{app:s}' estas jam instalita",
|
||||||
"mail_domain_unknown": "Nevalida retadreso por domajno '{domain:s}'. Bonvolu uzi domajnon administritan de ĉi tiu servilo.",
|
"mail_domain_unknown": "Nevalida retadreso por domajno '{domain:s}'. Bonvolu uzi domajnon administritan de ĉi tiu servilo.",
|
||||||
"migrations_cant_reach_migration_file": "Ne povis aliri migrajn dosierojn ĉe la vojo '% s'",
|
"migrations_cant_reach_migration_file": "Ne povis aliri migrajn dosierojn ĉe la vojo '% s'",
|
||||||
|
@ -422,9 +345,6 @@
|
||||||
"mail_alias_remove_failed": "Ne povis forigi retpoŝton alias '{mail:s}'",
|
"mail_alias_remove_failed": "Ne povis forigi retpoŝton alias '{mail:s}'",
|
||||||
"regenconf_file_manually_removed": "La dosiero de agordo '{conf}' estis forigita permane, kaj ne estos kreita",
|
"regenconf_file_manually_removed": "La dosiero de agordo '{conf}' estis forigita permane, kaj ne estos kreita",
|
||||||
"domain_exists": "La domajno jam ekzistas",
|
"domain_exists": "La domajno jam ekzistas",
|
||||||
"migration_description_0001_change_cert_group_to_sslcert": "Ŝanĝu grupajn permesojn de 'metronomo' al 'ssl-cert'",
|
|
||||||
"ldap_initialized": "LDAP inicializis",
|
|
||||||
"migrate_tsig_not_needed": "Vi ne ŝajnas uzi DynDNS-domajnon, do neniu migrado necesas.",
|
|
||||||
"certmanager_domain_cert_not_selfsigned": "La atestilo por domajno {domain:s} ne estas mem-subskribita. Ĉu vi certas, ke vi volas anstataŭigi ĝin? (Uzu '--force' por fari tion.)",
|
"certmanager_domain_cert_not_selfsigned": "La atestilo por domajno {domain:s} ne estas mem-subskribita. Ĉu vi certas, ke vi volas anstataŭigi ĝin? (Uzu '--force' por fari tion.)",
|
||||||
"certmanager_unable_to_parse_self_CA_name": "Ne povis trapasi nomon de mem-subskribinta aŭtoritato (dosiero: {file:s})",
|
"certmanager_unable_to_parse_self_CA_name": "Ne povis trapasi nomon de mem-subskribinta aŭtoritato (dosiero: {file:s})",
|
||||||
"log_selfsigned_cert_install": "Instalu mem-subskribitan atestilon sur '{}' domajno",
|
"log_selfsigned_cert_install": "Instalu mem-subskribitan atestilon sur '{}' domajno",
|
||||||
|
@ -433,19 +353,16 @@
|
||||||
"global_settings_bad_choice_for_enum": "Malbona elekto por agordo {setting:s}, ricevita '{choice:s}', sed disponeblaj elektoj estas: {available_choices:s}",
|
"global_settings_bad_choice_for_enum": "Malbona elekto por agordo {setting:s}, ricevita '{choice:s}', sed disponeblaj elektoj estas: {available_choices:s}",
|
||||||
"server_shutdown": "La servilo haltos",
|
"server_shutdown": "La servilo haltos",
|
||||||
"log_tools_migrations_migrate_forward": "Kuru migradoj",
|
"log_tools_migrations_migrate_forward": "Kuru migradoj",
|
||||||
"migration_0008_no_warning": "Supersalti vian SSH-agordon estu sekura, kvankam tio ne povas esti promesita! Ekfunkciu la migradon por superregi ĝin. Alie, vi ankaŭ povas salti la migradon, kvankam ĝi ne rekomendas.",
|
|
||||||
"regenconf_now_managed_by_yunohost": "La agorda dosiero '{conf}' nun estas administrata de YunoHost (kategorio {category}).",
|
"regenconf_now_managed_by_yunohost": "La agorda dosiero '{conf}' nun estas administrata de YunoHost (kategorio {category}).",
|
||||||
"server_reboot_confirm": "Ĉu la servilo rekomencos tuj, ĉu vi certas? [{answers:s}]",
|
"server_reboot_confirm": "Ĉu la servilo rekomencos tuj, ĉu vi certas? [{answers:s}]",
|
||||||
"log_app_install": "Instalu la aplikon '{}'",
|
"log_app_install": "Instalu la aplikon '{}'",
|
||||||
"service_description_dnsmasq": "Traktas rezolucion de domajna nomo (DNS)",
|
"service_description_dnsmasq": "Traktas rezolucion de domajna nomo (DNS)",
|
||||||
"global_settings_unknown_type": "Neatendita situacio, la agordo {setting:s} ŝajnas havi la tipon {unknown_type:s} sed ĝi ne estas tipo subtenata de la sistemo.",
|
"global_settings_unknown_type": "Neatendita situacio, la agordo {setting:s} ŝajnas havi la tipon {unknown_type:s} sed ĝi ne estas tipo subtenata de la sistemo.",
|
||||||
"migration_0003_problematic_apps_warning": "Bonvolu noti, ke la sekvaj eventuale problemaj instalitaj programoj estis detektitaj. Ŝajnas, ke tiuj ne estis instalitaj el aplika katalogo aŭ ne estas markitaj kiel \"funkciantaj\". Tial ne eblas garantii, ke ili ankoraŭ funkcios post la ĝisdatigo: {problematic_apps}",
|
|
||||||
"domain_hostname_failed": "Ne povis agordi novan gastigilon. Ĉi tio eble kaŭzos problemon poste (eble bone).",
|
"domain_hostname_failed": "Ne povis agordi novan gastigilon. Ĉi tio eble kaŭzos problemon poste (eble bone).",
|
||||||
"server_reboot": "La servilo rekomenciĝos",
|
"server_reboot": "La servilo rekomenciĝos",
|
||||||
"regenconf_failed": "Ne povis regeneri la agordon por kategorio(j): {categories}",
|
"regenconf_failed": "Ne povis regeneri la agordon por kategorio(j): {categories}",
|
||||||
"domain_uninstall_app_first": "Unu aŭ pluraj programoj estas instalitaj en ĉi tiu domajno. Bonvolu malinstali ilin antaŭ ol daŭrigi la domajnan forigon",
|
"domain_uninstall_app_first": "Unu aŭ pluraj programoj estas instalitaj en ĉi tiu domajno. Bonvolu malinstali ilin antaŭ ol daŭrigi la domajnan forigon",
|
||||||
"service_unknown": "Nekonata servo '{service:s}'",
|
"service_unknown": "Nekonata servo '{service:s}'",
|
||||||
"migration_0003_start": "Komencante migradon al Stretch. La protokoloj haveblos en {logfile}.",
|
|
||||||
"domain_deletion_failed": "Ne eblas forigi domajnon {domain}: {error}",
|
"domain_deletion_failed": "Ne eblas forigi domajnon {domain}: {error}",
|
||||||
"log_user_update": "Ĝisdatigu uzantinformojn de '{}'",
|
"log_user_update": "Ĝisdatigu uzantinformojn de '{}'",
|
||||||
"user_creation_failed": "Ne povis krei uzanton {user}: {error}",
|
"user_creation_failed": "Ne povis krei uzanton {user}: {error}",
|
||||||
|
@ -458,14 +375,10 @@
|
||||||
"dyndns_domain_not_provided": "Provizanto DynDNS {provider:s} ne povas provizi domajnon {domain:s}.",
|
"dyndns_domain_not_provided": "Provizanto DynDNS {provider:s} ne povas provizi domajnon {domain:s}.",
|
||||||
"backup_unable_to_organize_files": "Ne povis uzi la rapidan metodon por organizi dosierojn en la ar archiveivo",
|
"backup_unable_to_organize_files": "Ne povis uzi la rapidan metodon por organizi dosierojn en la ar archiveivo",
|
||||||
"password_too_simple_2": "La pasvorto bezonas almenaŭ 8 signojn kaj enhavas ciferon, majusklojn kaj minusklojn",
|
"password_too_simple_2": "La pasvorto bezonas almenaŭ 8 signojn kaj enhavas ciferon, majusklojn kaj minusklojn",
|
||||||
"executing_script": "Plenumanta skripto '{script:s}' …",
|
|
||||||
"service_cmd_exec_failed": "Ne povis plenumi la komandon '{command:s}'",
|
"service_cmd_exec_failed": "Ne povis plenumi la komandon '{command:s}'",
|
||||||
"migration_0007_cancelled": "Ne povis plibonigi la manieron kiel via SSH-agordo estas administrita.",
|
|
||||||
"migrate_tsig_failed": "Ne povis migri la DynDNS-domajnon '{domain}' al HMAC-SHA-512, ruliĝante. Eraro: {error_code}, {error}",
|
|
||||||
"pattern_lastname": "Devas esti valida familinomo",
|
"pattern_lastname": "Devas esti valida familinomo",
|
||||||
"service_enabled": "La servo '{service:s}' nun aŭtomate komenciĝos dum sistemaj botoj.",
|
"service_enabled": "La servo '{service:s}' nun aŭtomate komenciĝos dum sistemaj botoj.",
|
||||||
"certmanager_no_cert_file": "Ne povis legi la atestan dosieron por la domajno {domain:s} (dosiero: {file:s})",
|
"certmanager_no_cert_file": "Ne povis legi la atestan dosieron por la domajno {domain:s} (dosiero: {file:s})",
|
||||||
"migration_0008_port": "• Vi devos konekti uzante la havenon 22 anstataŭ via nuna kutimo SSH-haveno. Sentu vin libera reconfiguri ĝin;",
|
|
||||||
"domain_creation_failed": "Ne eblas krei domajnon {domain}: {error}",
|
"domain_creation_failed": "Ne eblas krei domajnon {domain}: {error}",
|
||||||
"certmanager_domain_http_not_working": "Ŝajnas ke la domajno {domain:s} ne atingeblas per HTTP. Kontrolu, ke via DNS kaj NGINX-agordo ĝustas",
|
"certmanager_domain_http_not_working": "Ŝajnas ke la domajno {domain:s} ne atingeblas per HTTP. Kontrolu, ke via DNS kaj NGINX-agordo ĝustas",
|
||||||
"domain_cannot_remove_main": "Vi ne povas forigi '{domain:s}' ĉar ĝi estas la ĉefa domajno, vi bezonas unue agordi alian domajnon kiel la ĉefan domajnon per uzado de 'yunohost domain main-domain -n <another-domain>', jen la listo de kandidataj domajnoj. : {other_domains:s}",
|
"domain_cannot_remove_main": "Vi ne povas forigi '{domain:s}' ĉar ĝi estas la ĉefa domajno, vi bezonas unue agordi alian domajnon kiel la ĉefan domajnon per uzado de 'yunohost domain main-domain -n <another-domain>', jen la listo de kandidataj domajnoj. : {other_domains:s}",
|
||||||
|
@ -473,13 +386,12 @@
|
||||||
"log_domain_add": "Aldonu '{}' domajnon en sisteman agordon",
|
"log_domain_add": "Aldonu '{}' domajnon en sisteman agordon",
|
||||||
"global_settings_bad_type_for_setting": "Malbona tipo por agordo {setting:s}, ricevita {received_type:s}, atendata {expected_type:s}",
|
"global_settings_bad_type_for_setting": "Malbona tipo por agordo {setting:s}, ricevita {received_type:s}, atendata {expected_type:s}",
|
||||||
"unlimit": "Neniu kvoto",
|
"unlimit": "Neniu kvoto",
|
||||||
"dyndns_cron_installed": "Kreita laboro DynDNS cron",
|
|
||||||
"system_username_exists": "Uzantnomo jam ekzistas en la listo de uzantoj de sistemo",
|
"system_username_exists": "Uzantnomo jam ekzistas en la listo de uzantoj de sistemo",
|
||||||
"firewall_reloaded": "Fajroŝirmilo reŝarĝis",
|
"firewall_reloaded": "Fajroŝirmilo reŝarĝis",
|
||||||
"service_restarted": "Servo '{service:s}' rekomencis",
|
"service_restarted": "Servo '{service:s}' rekomencis",
|
||||||
"pattern_username": "Devas esti minuskulaj literoj kaj minuskloj nur",
|
"pattern_username": "Devas esti minuskulaj literoj kaj minuskloj nur",
|
||||||
"extracting": "Eltirante…",
|
"extracting": "Eltirante…",
|
||||||
"restore_app_failed": "Ne povis restarigi la programon '{app:s}'",
|
"app_restore_failed": "Ne povis restarigi la programon '{app:s}': {error:s}",
|
||||||
"yunohost_configured": "YunoHost nun estas agordita",
|
"yunohost_configured": "YunoHost nun estas agordita",
|
||||||
"certmanager_self_ca_conf_file_not_found": "Ne povis trovi agorddosieron por mem-subskriba aŭtoritato (dosiero: {file:s})",
|
"certmanager_self_ca_conf_file_not_found": "Ne povis trovi agorddosieron por mem-subskriba aŭtoritato (dosiero: {file:s})",
|
||||||
"log_app_remove": "Forigu la aplikon '{}'",
|
"log_app_remove": "Forigu la aplikon '{}'",
|
||||||
|
@ -487,7 +399,6 @@
|
||||||
"firewall_rules_cmd_failed": "Iuj komandoj pri fajroŝirmilo malsukcesis. Pliaj informoj en ensaluto.",
|
"firewall_rules_cmd_failed": "Iuj komandoj pri fajroŝirmilo malsukcesis. Pliaj informoj en ensaluto.",
|
||||||
"certmanager_certificate_fetching_or_enabling_failed": "Provante uzi la novan atestilon por {domain:s} ne funkciis …",
|
"certmanager_certificate_fetching_or_enabling_failed": "Provante uzi la novan atestilon por {domain:s} ne funkciis …",
|
||||||
"app_full_domain_unavailable": "Bedaŭrinde, ĉi tiu app devas esti instalita sur propra domajno, sed aliaj programoj jam estas instalitaj sur la domajno '{domain}'. Vi povus uzi subdominon dediĉitan al ĉi tiu app anstataŭe.",
|
"app_full_domain_unavailable": "Bedaŭrinde, ĉi tiu app devas esti instalita sur propra domajno, sed aliaj programoj jam estas instalitaj sur la domajno '{domain}'. Vi povus uzi subdominon dediĉitan al ĉi tiu app anstataŭe.",
|
||||||
"migration_0011_slapd_config_will_be_overwritten": "Ŝajnas ke vi permane redaktis la slapd-agordon. Por ĉi tiu kritika migrado, YunoHost bezonas devigi la ĝisdatigon de la slapd-agordo. La originalaj dosieroj estos rezervitaj en {conf_backup_folder}.",
|
|
||||||
"group_cannot_edit_all_users": "La grupo 'all_users' ne povas esti redaktita permane. Ĝi estas speciala grupo celita enhavi ĉiujn uzantojn registritajn en YunoHost",
|
"group_cannot_edit_all_users": "La grupo 'all_users' ne povas esti redaktita permane. Ĝi estas speciala grupo celita enhavi ĉiujn uzantojn registritajn en YunoHost",
|
||||||
"group_cannot_edit_visitors": "La grupo 'vizitantoj' ne povas esti redaktita permane. Ĝi estas speciala grupo reprezentanta anonimajn vizitantojn",
|
"group_cannot_edit_visitors": "La grupo 'vizitantoj' ne povas esti redaktita permane. Ĝi estas speciala grupo reprezentanta anonimajn vizitantojn",
|
||||||
"group_cannot_edit_primary_group": "La grupo '{group}' ne povas esti redaktita permane. Ĝi estas la primara grupo celita enhavi nur unu specifan uzanton.",
|
"group_cannot_edit_primary_group": "La grupo '{group}' ne povas esti redaktita permane. Ĝi estas la primara grupo celita enhavi nur unu specifan uzanton.",
|
||||||
|
@ -507,10 +418,8 @@
|
||||||
"diagnosis_basesystem_ynh_single_version": "{package} versio: {version} ({repo})",
|
"diagnosis_basesystem_ynh_single_version": "{package} versio: {version} ({repo})",
|
||||||
"diagnosis_basesystem_ynh_main_version": "Servilo funkcias YunoHost {main_version} ({repo})",
|
"diagnosis_basesystem_ynh_main_version": "Servilo funkcias YunoHost {main_version} ({repo})",
|
||||||
"diagnosis_basesystem_ynh_inconsistent_versions": "Vi prizorgas malkonsekvencajn versiojn de la YunoHost-pakoj... plej probable pro malsukcesa aŭ parta ĝisdatigo.",
|
"diagnosis_basesystem_ynh_inconsistent_versions": "Vi prizorgas malkonsekvencajn versiojn de la YunoHost-pakoj... plej probable pro malsukcesa aŭ parta ĝisdatigo.",
|
||||||
"diagnosis_display_tip_web": "Vi povas iri al la sekcio Diagnozo (en la hejmekrano) por vidi la trovitajn problemojn.",
|
|
||||||
"diagnosis_cache_still_valid": "(La kaŝmemoro ankoraŭ validas por {category} diagnozo. Vi ankoraŭ ne diagnozas ĝin!)",
|
"diagnosis_cache_still_valid": "(La kaŝmemoro ankoraŭ validas por {category} diagnozo. Vi ankoraŭ ne diagnozas ĝin!)",
|
||||||
"diagnosis_cant_run_because_of_dep": "Ne eblas fari diagnozon por {category} dum estas gravaj problemoj rilataj al {dep}.",
|
"diagnosis_cant_run_because_of_dep": "Ne eblas fari diagnozon por {category} dum estas gravaj problemoj rilataj al {dep}.",
|
||||||
"diagnosis_display_tip_cli": "Vi povas aranĝi 'yunohost diagnosis show --issues' por aperigi la trovitajn problemojn.",
|
|
||||||
"diagnosis_failed_for_category": "Diagnozo malsukcesis por kategorio '{category}': {error}",
|
"diagnosis_failed_for_category": "Diagnozo malsukcesis por kategorio '{category}': {error}",
|
||||||
"app_upgrade_script_failed": "Eraro okazis en la skripto pri ĝisdatiga programo",
|
"app_upgrade_script_failed": "Eraro okazis en la skripto pri ĝisdatiga programo",
|
||||||
"diagnosis_diskusage_verylow": "Stokado <code>{mountpoint}</code> (sur aparato <code> {device} </code>) nur restas {free} ({free_percent}%) spaco restanta (el {total}). Vi vere konsideru purigi iom da spaco !",
|
"diagnosis_diskusage_verylow": "Stokado <code>{mountpoint}</code> (sur aparato <code> {device} </code>) nur restas {free} ({free_percent}%) spaco restanta (el {total}). Vi vere konsideru purigi iom da spaco !",
|
||||||
|
@ -519,7 +428,6 @@
|
||||||
"diagnosis_http_bad_status_code": "Ĝi aspektas kiel alia maŝino (eble via interreta enkursigilo) respondita anstataŭ via servilo.<br>1. La plej ofta kaŭzo por ĉi tiu afero estas, ke la haveno 80 (kaj 443) <a href='https://yunohost.org/isp_box_config'> ne estas ĝuste senditaj al via servilo </a>.<br>2. Pri pli kompleksaj agordoj: certigu, ke neniu fajroŝirmilo aŭ reverso-prokuro ne interbatalas.",
|
"diagnosis_http_bad_status_code": "Ĝi aspektas kiel alia maŝino (eble via interreta enkursigilo) respondita anstataŭ via servilo.<br>1. La plej ofta kaŭzo por ĉi tiu afero estas, ke la haveno 80 (kaj 443) <a href='https://yunohost.org/isp_box_config'> ne estas ĝuste senditaj al via servilo </a>.<br>2. Pri pli kompleksaj agordoj: certigu, ke neniu fajroŝirmilo aŭ reverso-prokuro ne interbatalas.",
|
||||||
"main_domain_changed": "La ĉefa domajno estis ŝanĝita",
|
"main_domain_changed": "La ĉefa domajno estis ŝanĝita",
|
||||||
"yunohost_postinstall_end_tip": "La post-instalado finiĝis! Por fini vian agordon, bonvolu konsideri:\n - aldonado de unua uzanto tra la sekcio 'Uzantoj' de la retadreso (aŭ 'uzanto de yunohost kreu <uzantnomon>' en komandlinio);\n - diagnozi eblajn problemojn per la sekcio 'Diagnozo' de la reteja administrado (aŭ 'diagnoza yunohost-ekzekuto' en komandlinio);\n - legante la partojn 'Finigi vian agordon' kaj 'Ekkoni Yunohost' en la administra dokumentado: https://yunohost.org/admindoc.",
|
"yunohost_postinstall_end_tip": "La post-instalado finiĝis! Por fini vian agordon, bonvolu konsideri:\n - aldonado de unua uzanto tra la sekcio 'Uzantoj' de la retadreso (aŭ 'uzanto de yunohost kreu <uzantnomon>' en komandlinio);\n - diagnozi eblajn problemojn per la sekcio 'Diagnozo' de la reteja administrado (aŭ 'diagnoza yunohost-ekzekuto' en komandlinio);\n - legante la partojn 'Finigi vian agordon' kaj 'Ekkoni Yunohost' en la administra dokumentado: https://yunohost.org/admindoc.",
|
||||||
"migration_description_0014_remove_app_status_json": "Forigi heredajn dosierojn",
|
|
||||||
"diagnosis_ip_connected_ipv4": "La servilo estas konektita al la interreto per IPv4 !",
|
"diagnosis_ip_connected_ipv4": "La servilo estas konektita al la interreto per IPv4 !",
|
||||||
"diagnosis_ip_no_ipv4": "La servilo ne havas funkciantan IPv4.",
|
"diagnosis_ip_no_ipv4": "La servilo ne havas funkciantan IPv4.",
|
||||||
"diagnosis_ip_connected_ipv6": "La servilo estas konektita al la interreto per IPv6 !",
|
"diagnosis_ip_connected_ipv6": "La servilo estas konektita al la interreto per IPv6 !",
|
||||||
|
@ -534,9 +442,6 @@
|
||||||
"diagnosis_swap_none": "La sistemo tute ne havas interŝanĝon. Vi devus pripensi aldoni almenaŭ {recommended} da interŝanĝo por eviti situaciojn en kiuj la sistemo restas sen memoro.",
|
"diagnosis_swap_none": "La sistemo tute ne havas interŝanĝon. Vi devus pripensi aldoni almenaŭ {recommended} da interŝanĝo por eviti situaciojn en kiuj la sistemo restas sen memoro.",
|
||||||
"diagnosis_swap_notsomuch": "La sistemo havas nur {total}-interŝanĝon. Vi konsideru havi almenaŭ {recommended} por eviti situaciojn en kiuj la sistemo restas sen memoro.",
|
"diagnosis_swap_notsomuch": "La sistemo havas nur {total}-interŝanĝon. Vi konsideru havi almenaŭ {recommended} por eviti situaciojn en kiuj la sistemo restas sen memoro.",
|
||||||
"diagnosis_regenconf_manually_modified_details": "Ĉi tio probable estas bona, se vi scias, kion vi faras! YunoHost ĉesigos ĝisdatigi ĉi tiun dosieron aŭtomate ... Sed atentu, ke YunoHost-ĝisdatigoj povus enhavi gravajn rekomendajn ŝanĝojn. Se vi volas, vi povas inspekti la diferencojn per <cmd>yyunohost tools regen-conf {category} --dry-run --with-diff</cmd> kaj devigi la reset al la rekomendita agordo per <cmd>yunohost tools regen-conf {category} --force</cmd>",
|
"diagnosis_regenconf_manually_modified_details": "Ĉi tio probable estas bona, se vi scias, kion vi faras! YunoHost ĉesigos ĝisdatigi ĉi tiun dosieron aŭtomate ... Sed atentu, ke YunoHost-ĝisdatigoj povus enhavi gravajn rekomendajn ŝanĝojn. Se vi volas, vi povas inspekti la diferencojn per <cmd>yyunohost tools regen-conf {category} --dry-run --with-diff</cmd> kaj devigi la reset al la rekomendita agordo per <cmd>yunohost tools regen-conf {category} --force</cmd>",
|
||||||
"diagnosis_regenconf_manually_modified_debian": "Agordodosiero {file} estis modifita permane kompare kun la defaŭlta Debian.",
|
|
||||||
"diagnosis_regenconf_manually_modified_debian_details": "Ĉi tio probable estas bona, sed devas observi ĝin...",
|
|
||||||
"diagnosis_security_all_good": "Neniu kritika sekureca vundebleco estis trovita.",
|
|
||||||
"diagnosis_security_vulnerable_to_meltdown": "Vi ŝajnas vundebla al la kritiko-vundebleco de Meltdown",
|
"diagnosis_security_vulnerable_to_meltdown": "Vi ŝajnas vundebla al la kritiko-vundebleco de Meltdown",
|
||||||
"diagnosis_no_cache": "Neniu diagnoza kaŝmemoro por kategorio '{category}'",
|
"diagnosis_no_cache": "Neniu diagnoza kaŝmemoro por kategorio '{category}'",
|
||||||
"diagnosis_ip_broken_dnsresolution": "Rezolucio pri domajna nomo rompiĝas pro iu kialo... Ĉu fajroŝirmilo blokas DNS-petojn ?",
|
"diagnosis_ip_broken_dnsresolution": "Rezolucio pri domajna nomo rompiĝas pro iu kialo... Ĉu fajroŝirmilo blokas DNS-petojn ?",
|
||||||
|
@ -547,14 +452,12 @@
|
||||||
"diagnosis_services_bad_status": "Servo {service} estas {status} :(",
|
"diagnosis_services_bad_status": "Servo {service} estas {status} :(",
|
||||||
"diagnosis_ram_low": "La sistemo havas {available} ({available_percent}%) RAM forlasita de {total}. Estu zorgema.",
|
"diagnosis_ram_low": "La sistemo havas {available} ({available_percent}%) RAM forlasita de {total}. Estu zorgema.",
|
||||||
"diagnosis_swap_ok": "La sistemo havas {total} da interŝanĝoj!",
|
"diagnosis_swap_ok": "La sistemo havas {total} da interŝanĝoj!",
|
||||||
"diagnosis_mail_ougoing_port_25_ok": "Eliranta haveno 25 ne estas blokita kaj retpoŝto povas esti sendita al aliaj serviloj.",
|
|
||||||
"diagnosis_regenconf_allgood": "Ĉiuj agordaj dosieroj kongruas kun la rekomendita agordo!",
|
"diagnosis_regenconf_allgood": "Ĉiuj agordaj dosieroj kongruas kun la rekomendita agordo!",
|
||||||
"diagnosis_regenconf_manually_modified": "Agordodosiero <code>{file}</code> ŝajnas esti permane modifita.",
|
"diagnosis_regenconf_manually_modified": "Agordodosiero <code>{file}</code> ŝajnas esti permane modifita.",
|
||||||
"diagnosis_description_ip": "Interreta konektebleco",
|
"diagnosis_description_ip": "Interreta konektebleco",
|
||||||
"diagnosis_description_dnsrecords": "Registroj DNS",
|
"diagnosis_description_dnsrecords": "Registroj DNS",
|
||||||
"diagnosis_description_services": "Servo kontrolas staton",
|
"diagnosis_description_services": "Servo kontrolas staton",
|
||||||
"diagnosis_description_systemresources": "Rimedaj sistemoj",
|
"diagnosis_description_systemresources": "Rimedaj sistemoj",
|
||||||
"diagnosis_description_security": "Sekurecaj kontroloj",
|
|
||||||
"diagnosis_ports_could_not_diagnose": "Ne povis diagnozi, ĉu haveblaj havenoj de ekstere.",
|
"diagnosis_ports_could_not_diagnose": "Ne povis diagnozi, ĉu haveblaj havenoj de ekstere.",
|
||||||
"diagnosis_ports_could_not_diagnose_details": "Eraro: {error}",
|
"diagnosis_ports_could_not_diagnose_details": "Eraro: {error}",
|
||||||
"diagnosis_services_bad_status_tip": "Vi povas provi <a href='#/services/{service}'>rekomenci la servon </a>, kaj se ĝi ne funkcias, rigardu <a href='#/services/{service}'>La servaj registroj en reteja</a> (el la komandlinio, vi povas fari tion per <cmd>yunohost service restart {service}</cmd> kaj<cmd>yunohost service log {service}</cmd>).",
|
"diagnosis_services_bad_status_tip": "Vi povas provi <a href='#/services/{service}'>rekomenci la servon </a>, kaj se ĝi ne funkcias, rigardu <a href='#/services/{service}'>La servaj registroj en reteja</a> (el la komandlinio, vi povas fari tion per <cmd>yunohost service restart {service}</cmd> kaj<cmd>yunohost service log {service}</cmd>).",
|
||||||
|
@ -565,7 +468,6 @@
|
||||||
"log_domain_main_domain": "Faru de '{}' la ĉefa domajno",
|
"log_domain_main_domain": "Faru de '{}' la ĉefa domajno",
|
||||||
"diagnosis_http_timeout": "Tempolimigita dum provado kontakti vian servilon de ekstere. Ĝi ŝajnas esti neatingebla.<br>1. La plej ofta kaŭzo por ĉi tiu afero estas, ke la haveno 80 (kaj 443) <a href='https://yunohost.org/isp_box_config'>ne estas ĝuste senditaj al via servilo</a>.<br>2. Vi ankaŭ devas certigi, ke la servo nginx funkcias<br>3. Pri pli kompleksaj agordoj: certigu, ke neniu fajroŝirmilo aŭ reverso-prokuro ne interbatalas.",
|
"diagnosis_http_timeout": "Tempolimigita dum provado kontakti vian servilon de ekstere. Ĝi ŝajnas esti neatingebla.<br>1. La plej ofta kaŭzo por ĉi tiu afero estas, ke la haveno 80 (kaj 443) <a href='https://yunohost.org/isp_box_config'>ne estas ĝuste senditaj al via servilo</a>.<br>2. Vi ankaŭ devas certigi, ke la servo nginx funkcias<br>3. Pri pli kompleksaj agordoj: certigu, ke neniu fajroŝirmilo aŭ reverso-prokuro ne interbatalas.",
|
||||||
"diagnosis_http_connection_error": "Rilata eraro: ne povis konektiĝi al la petita domajno, tre probable ĝi estas neatingebla.",
|
"diagnosis_http_connection_error": "Rilata eraro: ne povis konektiĝi al la petita domajno, tre probable ĝi estas neatingebla.",
|
||||||
"migration_description_0013_futureproof_apps_catalog_system": "Migru al la nova katalogosistemo pri estontecaj programoj",
|
|
||||||
"diagnosis_ignored_issues": "(+ {nb_ignored} ignorataj aferoj))",
|
"diagnosis_ignored_issues": "(+ {nb_ignored} ignorataj aferoj))",
|
||||||
"diagnosis_found_errors": "Trovis {errors} signifa(j) afero(j) rilata al {category}!",
|
"diagnosis_found_errors": "Trovis {errors} signifa(j) afero(j) rilata al {category}!",
|
||||||
"diagnosis_found_errors_and_warnings": "Trovis {errors} signifaj problemo (j) (kaj {warnings} averto) rilataj al {category}!",
|
"diagnosis_found_errors_and_warnings": "Trovis {errors} signifaj problemo (j) (kaj {warnings} averto) rilataj al {category}!",
|
||||||
|
@ -595,14 +497,13 @@
|
||||||
"diagnosis_never_ran_yet": "Ŝajnas, ke ĉi tiu servilo estis instalita antaŭ nelonge kaj estas neniu diagnoza raporto por montri. Vi devas komenci kurante plenan diagnozon, ĉu de la retadministro aŭ uzante 'yunohost diagnosis run' el la komandlinio.",
|
"diagnosis_never_ran_yet": "Ŝajnas, ke ĉi tiu servilo estis instalita antaŭ nelonge kaj estas neniu diagnoza raporto por montri. Vi devas komenci kurante plenan diagnozon, ĉu de la retadministro aŭ uzante 'yunohost diagnosis run' el la komandlinio.",
|
||||||
"certmanager_warning_subdomain_dns_record": "Subdominio '{subdomain:s}' ne solvas al la sama IP-adreso kiel '{domain:s}'. Iuj funkcioj ne estos haveblaj ĝis vi riparos ĉi tion kaj regeneros la atestilon.",
|
"certmanager_warning_subdomain_dns_record": "Subdominio '{subdomain:s}' ne solvas al la sama IP-adreso kiel '{domain:s}'. Iuj funkcioj ne estos haveblaj ĝis vi riparos ĉi tion kaj regeneros la atestilon.",
|
||||||
"diagnosis_basesystem_hardware": "Arkitekturo de servila aparataro estas {virt} {arch}",
|
"diagnosis_basesystem_hardware": "Arkitekturo de servila aparataro estas {virt} {arch}",
|
||||||
"diagnosis_basesystem_hardware_board": "Servilo-tabulo-modelo estas {model}",
|
|
||||||
"diagnosis_description_web": "Reta",
|
"diagnosis_description_web": "Reta",
|
||||||
"domain_cannot_add_xmpp_upload": "Vi ne povas aldoni domajnojn per 'xmpp-upload'. Ĉi tiu speco de nomo estas rezervita por la XMPP-alŝuta funkcio integrita en YunoHost.",
|
"domain_cannot_add_xmpp_upload": "Vi ne povas aldoni domajnojn per 'xmpp-upload'. Ĉi tiu speco de nomo estas rezervita por la XMPP-alŝuta funkcio integrita en YunoHost.",
|
||||||
"group_already_exist_on_system_but_removing_it": "Grupo {group} jam ekzistas en la sistemaj grupoj, sed YunoHost forigos ĝin …",
|
"group_already_exist_on_system_but_removing_it": "Grupo {group} jam ekzistas en la sistemaj grupoj, sed YunoHost forigos ĝin …",
|
||||||
"diagnosis_mail_outgoing_port_25_blocked_relay_vpn": "Iuj provizantoj ne lasos vin malŝlosi elirantan havenon 25 ĉar ili ne zorgas pri Neta Neŭtraleco.<br>- Iuj el ili provizas la alternativon de <a href='https://yunohost.org/#/smtp_relay'>uzante retpoŝtan servilon</a> kvankam ĝi implicas, ke la relajso povos spioni vian retpoŝtan trafikon.<br>- Amika privateco estas uzi VPN * kun dediĉita publika IP * por pretervidi ĉi tiun specon. de limoj. Vidu <a href='https://yunohost.org/#/vpn_avantage'>https://yunohost.org/#/vpn_avantage</a><br>- Vi ankaŭ povas konsideri ŝanĝi al <a href='https://yunohost.org/#/isp'>pli neta neŭtraleco-amika provizanto</a>",
|
"diagnosis_mail_outgoing_port_25_blocked_relay_vpn": "Iuj provizantoj ne lasos vin malŝlosi elirantan havenon 25 ĉar ili ne zorgas pri Neta Neŭtraleco.<br>- Iuj el ili provizas la alternativon de <a href='https://yunohost.org/#/smtp_relay'>uzante retpoŝtan servilon</a> kvankam ĝi implicas, ke la relajso povos spioni vian retpoŝtan trafikon.<br>- Amika privateco estas uzi VPN * kun dediĉita publika IP * por pretervidi ĉi tiun specon. de limoj. Vidu <a href='https://yunohost.org/#/vpn_avantage'>https://yunohost.org/#/vpn_avantage</a><br>- Vi ankaŭ povas konsideri ŝanĝi al <a href='https://yunohost.org/#/isp'>pli neta neŭtraleco-amika provizanto</a>",
|
||||||
"diagnosis_mail_fcrdns_nok_details": "Vi unue provu agordi la inversan DNS kun <code>{ehlo_domain}</code> en via interreta enkursigilo aŭ en via retprovizanta interfaco. (Iuj gastigantaj provizantoj eble postulas, ke vi sendu al ili subtenan bileton por ĉi tio).",
|
"diagnosis_mail_fcrdns_nok_details": "Vi unue provu agordi la inversan DNS kun <code>{ehlo_domain}</code> en via interreta enkursigilo aŭ en via retprovizanta interfaco. (Iuj gastigantaj provizantoj eble postulas, ke vi sendu al ili subtenan bileton por ĉi tio).",
|
||||||
"diagnosis_mail_fcrdns_nok_alternatives_4": "Iuj provizantoj ne lasos vin agordi vian inversan DNS (aŭ ilia funkcio povus esti rompita ...). Se vi spertas problemojn pro tio, konsideru jenajn solvojn:<br>- Iuj ISP provizas la alternativon de <a href='https://yunohost.org/#/smtp_relay'>uzante retpoŝtan servilon</a> kvankam ĝi implicas, ke la relajso povos spioni vian retpoŝtan trafikon.<br>- Interreta privateco estas uzi VPN * kun dediĉita publika IP * por preterpasi ĉi tiajn limojn. Vidu <a href='https://yunohost.org/#/vpn_avantage'>https://yunohost.org/#/vpn_avantage</a><br>- Finfine eblas ankaŭ <a href='https://yunohost.org/#/isp'>ŝanĝo de provizanto</a>",
|
"diagnosis_mail_fcrdns_nok_alternatives_4": "Iuj provizantoj ne lasos vin agordi vian inversan DNS (aŭ ilia funkcio povus esti rompita ...). Se vi spertas problemojn pro tio, konsideru jenajn solvojn:<br>- Iuj ISP provizas la alternativon de <a href='https://yunohost.org/#/smtp_relay'>uzante retpoŝtan servilon</a> kvankam ĝi implicas, ke la relajso povos spioni vian retpoŝtan trafikon.<br>- Interreta privateco estas uzi VPN * kun dediĉita publika IP * por preterpasi ĉi tiajn limojn. Vidu <a href='https://yunohost.org/#/vpn_avantage'>https://yunohost.org/#/vpn_avantage</a><br>- Finfine eblas ankaŭ <a href='https://yunohost.org/#/isp'>ŝanĝo de provizanto</a>",
|
||||||
"diagnosis_display_tip": "Por vidi la trovitajn problemojn, vi povas iri al la sekcio pri Diagnozo de la reteja administrado, aŭ funkcii \"yunohost diagnosis show --issues\" el la komandlinio.",
|
"diagnosis_display_tip": "Por vidi la trovitajn problemojn, vi povas iri al la sekcio pri Diagnozo de la reteja administrado, aŭ funkcii \"yunohost diagnosis show --issues --human-readable\" el la komandlinio.",
|
||||||
"diagnosis_ip_global": "Tutmonda IP: <code>{global} </code>",
|
"diagnosis_ip_global": "Tutmonda IP: <code>{global} </code>",
|
||||||
"diagnosis_ip_local": "Loka IP: <code>{local} </code>",
|
"diagnosis_ip_local": "Loka IP: <code>{local} </code>",
|
||||||
"diagnosis_dns_point_to_doc": "Bonvolu kontroli la dokumentaron ĉe <a href='https://yunohost.org/dns_config'>https://yunohost.org/dns_config</a> se vi bezonas helpon pri agordo de DNS-registroj.",
|
"diagnosis_dns_point_to_doc": "Bonvolu kontroli la dokumentaron ĉe <a href='https://yunohost.org/dns_config'>https://yunohost.org/dns_config</a> se vi bezonas helpon pri agordo de DNS-registroj.",
|
||||||
|
|
106
locales/es.json
106
locales/es.json
|
@ -22,7 +22,6 @@
|
||||||
"app_unsupported_remote_type": "Tipo remoto no soportado por la aplicación",
|
"app_unsupported_remote_type": "Tipo remoto no soportado por la aplicación",
|
||||||
"app_upgrade_failed": "No se pudo actualizar {app:s}: {error}",
|
"app_upgrade_failed": "No se pudo actualizar {app:s}: {error}",
|
||||||
"app_upgraded": "Actualizado {app:s}",
|
"app_upgraded": "Actualizado {app:s}",
|
||||||
"ask_email": "Dirección de correo electrónico",
|
|
||||||
"ask_firstname": "Nombre",
|
"ask_firstname": "Nombre",
|
||||||
"ask_lastname": "Apellido",
|
"ask_lastname": "Apellido",
|
||||||
"ask_main_domain": "Dominio principal",
|
"ask_main_domain": "Dominio principal",
|
||||||
|
@ -39,7 +38,6 @@
|
||||||
"backup_delete_error": "No se pudo eliminar «{path:s}»",
|
"backup_delete_error": "No se pudo eliminar «{path:s}»",
|
||||||
"backup_deleted": "Eliminada la copia de seguridad",
|
"backup_deleted": "Eliminada la copia de seguridad",
|
||||||
"backup_hook_unknown": "El gancho «{hook:s}» de la copia de seguridad es desconocido",
|
"backup_hook_unknown": "El gancho «{hook:s}» de la copia de seguridad es desconocido",
|
||||||
"backup_invalid_archive": "Esto no es un archivo de respaldo",
|
|
||||||
"backup_nothings_done": "Nada que guardar",
|
"backup_nothings_done": "Nada que guardar",
|
||||||
"backup_output_directory_forbidden": "Elija un directorio de salida diferente. Las copias de seguridad no se pueden crear en /bin, /boot, /dev, /etc, /lib, /root, /run, /sbin, /sys, /usr, /var o /home/yunohost.backup/archives subcarpetas",
|
"backup_output_directory_forbidden": "Elija un directorio de salida diferente. Las copias de seguridad no se pueden crear en /bin, /boot, /dev, /etc, /lib, /root, /run, /sbin, /sys, /usr, /var o /home/yunohost.backup/archives subcarpetas",
|
||||||
"backup_output_directory_not_empty": "Debe elegir un directorio de salida vacío",
|
"backup_output_directory_not_empty": "Debe elegir un directorio de salida vacío",
|
||||||
|
@ -58,9 +56,6 @@
|
||||||
"domain_unknown": "Dominio desconocido",
|
"domain_unknown": "Dominio desconocido",
|
||||||
"done": "Hecho.",
|
"done": "Hecho.",
|
||||||
"downloading": "Descargando…",
|
"downloading": "Descargando…",
|
||||||
"dyndns_cron_installed": "Creado el trabajo de cron de DynDNS",
|
|
||||||
"dyndns_cron_remove_failed": "No se pudo eliminar el trabajo de cron de DynDNS por: {error}",
|
|
||||||
"dyndns_cron_removed": "Eliminado el trabajo de cron de DynDNS",
|
|
||||||
"dyndns_ip_update_failed": "No se pudo actualizar la dirección IP en DynDNS",
|
"dyndns_ip_update_failed": "No se pudo actualizar la dirección IP en DynDNS",
|
||||||
"dyndns_ip_updated": "Actualizada su IP en DynDNS",
|
"dyndns_ip_updated": "Actualizada su IP en DynDNS",
|
||||||
"dyndns_key_generating": "Generando la clave del DNS. Esto podría tardar un rato.",
|
"dyndns_key_generating": "Generando la clave del DNS. Esto podría tardar un rato.",
|
||||||
|
@ -69,8 +64,6 @@
|
||||||
"dyndns_registered": "Registrado dominio de DynDNS",
|
"dyndns_registered": "Registrado dominio de DynDNS",
|
||||||
"dyndns_registration_failed": "No se pudo registrar el dominio de DynDNS: {error:s}",
|
"dyndns_registration_failed": "No se pudo registrar el dominio de DynDNS: {error:s}",
|
||||||
"dyndns_unavailable": "El dominio «{domain:s}» no está disponible.",
|
"dyndns_unavailable": "El dominio «{domain:s}» no está disponible.",
|
||||||
"executing_command": "Ejecutando la orden «{command:s}»…",
|
|
||||||
"executing_script": "Ejecutando el guión «{script:s}»…",
|
|
||||||
"extracting": "Extrayendo…",
|
"extracting": "Extrayendo…",
|
||||||
"field_invalid": "Campo no válido '{:s}'",
|
"field_invalid": "Campo no válido '{:s}'",
|
||||||
"firewall_reload_failed": "No se pudo recargar el cortafuegos",
|
"firewall_reload_failed": "No se pudo recargar el cortafuegos",
|
||||||
|
@ -81,18 +74,14 @@
|
||||||
"hook_list_by_invalid": "Esta propiedad no se puede usar para enumerar ganchos («hooks»)",
|
"hook_list_by_invalid": "Esta propiedad no se puede usar para enumerar ganchos («hooks»)",
|
||||||
"hook_name_unknown": "Nombre de hook desconocido '{name:s}'",
|
"hook_name_unknown": "Nombre de hook desconocido '{name:s}'",
|
||||||
"installation_complete": "Instalación finalizada",
|
"installation_complete": "Instalación finalizada",
|
||||||
"installation_failed": "Algo ha ido mal con la instalación",
|
|
||||||
"ip6tables_unavailable": "No puede modificar ip6tables aquí. O bien está en un 'container' o su kernel no soporta esta opción",
|
"ip6tables_unavailable": "No puede modificar ip6tables aquí. O bien está en un 'container' o su kernel no soporta esta opción",
|
||||||
"iptables_unavailable": "No puede modificar iptables aquí. O bien está en un 'container' o su kernel no soporta esta opción",
|
"iptables_unavailable": "No puede modificar iptables aquí. O bien está en un 'container' o su kernel no soporta esta opción",
|
||||||
"ldap_initialized": "Inicializado LDAP",
|
|
||||||
"mail_alias_remove_failed": "No se pudo eliminar el alias de correo «{mail:s}»",
|
"mail_alias_remove_failed": "No se pudo eliminar el alias de correo «{mail:s}»",
|
||||||
"mail_domain_unknown": "Dirección de correo no válida para el dominio «{domain:s}». Use un dominio administrado por este servidor.",
|
"mail_domain_unknown": "Dirección de correo no válida para el dominio «{domain:s}». Use un dominio administrado por este servidor.",
|
||||||
"mail_forward_remove_failed": "No se pudo eliminar el reenvío de correo «{mail:s}»",
|
"mail_forward_remove_failed": "No se pudo eliminar el reenvío de correo «{mail:s}»",
|
||||||
"main_domain_change_failed": "No se pudo cambiar el dominio principal",
|
"main_domain_change_failed": "No se pudo cambiar el dominio principal",
|
||||||
"main_domain_changed": "El dominio principal ha cambiado",
|
"main_domain_changed": "El dominio principal ha cambiado",
|
||||||
"no_internet_connection": "El servidor no está conectado a Internet",
|
|
||||||
"not_enough_disk_space": "No hay espacio libre suficiente en «{path:s}»",
|
"not_enough_disk_space": "No hay espacio libre suficiente en «{path:s}»",
|
||||||
"package_unknown": "Paquete desconocido '{pkgname}'",
|
|
||||||
"packages_upgrade_failed": "No se pudieron actualizar todos los paquetes",
|
"packages_upgrade_failed": "No se pudieron actualizar todos los paquetes",
|
||||||
"pattern_backup_archive_name": "Debe ser un nombre de archivo válido con un máximo de 30 caracteres, solo se admiten caracteres alfanuméricos y los caracteres -_. (guiones y punto)",
|
"pattern_backup_archive_name": "Debe ser un nombre de archivo válido con un máximo de 30 caracteres, solo se admiten caracteres alfanuméricos y los caracteres -_. (guiones y punto)",
|
||||||
"pattern_domain": "El nombre de dominio debe ser válido (por ejemplo mi-dominio.org)",
|
"pattern_domain": "El nombre de dominio debe ser válido (por ejemplo mi-dominio.org)",
|
||||||
|
@ -107,7 +96,7 @@
|
||||||
"port_already_closed": "El puerto {port:d} ya está cerrado para las conexiones {ip_version:s}",
|
"port_already_closed": "El puerto {port:d} ya está cerrado para las conexiones {ip_version:s}",
|
||||||
"port_already_opened": "El puerto {port:d} ya está abierto para las conexiones {ip_version:s}",
|
"port_already_opened": "El puerto {port:d} ya está abierto para las conexiones {ip_version:s}",
|
||||||
"restore_already_installed_app": "Una aplicación con el ID «{app:s}» ya está instalada",
|
"restore_already_installed_app": "Una aplicación con el ID «{app:s}» ya está instalada",
|
||||||
"restore_app_failed": "No se pudo restaurar la aplicación «{app:s}»",
|
"app_restore_failed": "No se pudo restaurar la aplicación «{app:s}»: {error:s}",
|
||||||
"restore_cleaning_failed": "No se pudo limpiar el directorio temporal de restauración",
|
"restore_cleaning_failed": "No se pudo limpiar el directorio temporal de restauración",
|
||||||
"restore_complete": "Restaurada",
|
"restore_complete": "Restaurada",
|
||||||
"restore_confirm_yunohost_installed": "¿Realmente desea restaurar un sistema ya instalado? [{answers:s}]",
|
"restore_confirm_yunohost_installed": "¿Realmente desea restaurar un sistema ya instalado? [{answers:s}]",
|
||||||
|
@ -156,20 +145,16 @@
|
||||||
"user_update_failed": "No se pudo actualizar el usuario {user}: {error}",
|
"user_update_failed": "No se pudo actualizar el usuario {user}: {error}",
|
||||||
"user_updated": "Cambiada la información de usuario",
|
"user_updated": "Cambiada la información de usuario",
|
||||||
"yunohost_already_installed": "YunoHost ya está instalado",
|
"yunohost_already_installed": "YunoHost ya está instalado",
|
||||||
"yunohost_ca_creation_failed": "No se pudo crear la autoridad de certificación",
|
|
||||||
"yunohost_configured": "YunoHost está ahora configurado",
|
"yunohost_configured": "YunoHost está ahora configurado",
|
||||||
"yunohost_installing": "Instalando YunoHost…",
|
"yunohost_installing": "Instalando YunoHost…",
|
||||||
"yunohost_not_installed": "YunoHost no está correctamente instalado. Ejecute «yunohost tools postinstall»",
|
"yunohost_not_installed": "YunoHost no está correctamente instalado. Ejecute «yunohost tools postinstall»",
|
||||||
"ldap_init_failed_to_create_admin": "La inicialización de LDAP no pudo crear el usuario «admin»",
|
|
||||||
"mailbox_used_space_dovecot_down": "El servicio de buzón Dovecot debe estar activo si desea recuperar el espacio usado del buzón",
|
"mailbox_used_space_dovecot_down": "El servicio de buzón Dovecot debe estar activo si desea recuperar el espacio usado del buzón",
|
||||||
"certmanager_attempt_to_replace_valid_cert": "Está intentando sobrescribir un certificado correcto y válido para el dominio {domain:s}! (Use --force para omitir este mensaje)",
|
"certmanager_attempt_to_replace_valid_cert": "Está intentando sobrescribir un certificado correcto y válido para el dominio {domain:s}! (Use --force para omitir este mensaje)",
|
||||||
"certmanager_domain_unknown": "Dominio desconocido «{domain:s}»",
|
|
||||||
"certmanager_domain_cert_not_selfsigned": "El certificado para el dominio {domain:s} no es un certificado autofirmado. ¿Está seguro de que quiere reemplazarlo? (Use «--force» para hacerlo)",
|
"certmanager_domain_cert_not_selfsigned": "El certificado para el dominio {domain:s} no es un certificado autofirmado. ¿Está seguro de que quiere reemplazarlo? (Use «--force» para hacerlo)",
|
||||||
"certmanager_certificate_fetching_or_enabling_failed": "El intento de usar el nuevo certificado para {domain:s} no ha funcionado…",
|
"certmanager_certificate_fetching_or_enabling_failed": "El intento de usar el nuevo certificado para {domain:s} no ha funcionado…",
|
||||||
"certmanager_attempt_to_renew_nonLE_cert": "El certificado para el dominio «{domain:s}» no ha sido emitido por Let's Encrypt. ¡No se puede renovar automáticamente!",
|
"certmanager_attempt_to_renew_nonLE_cert": "El certificado para el dominio «{domain:s}» no ha sido emitido por Let's Encrypt. ¡No se puede renovar automáticamente!",
|
||||||
"certmanager_attempt_to_renew_valid_cert": "¡El certificado para el dominio «{domain:s}» no está a punto de expirar! (Puede usar --force si sabe lo que está haciendo)",
|
"certmanager_attempt_to_renew_valid_cert": "¡El certificado para el dominio «{domain:s}» no está a punto de expirar! (Puede usar --force si sabe lo que está haciendo)",
|
||||||
"certmanager_domain_http_not_working": "Parece que no se puede acceder al dominio {domain:s} a través de HTTP. Por favor compruebe en los diagnósticos la categoría 'Web'para más información. (Si sabe lo que está haciendo, utilice '--no-checks' para no realizar estas comprobaciones.)",
|
"certmanager_domain_http_not_working": "Parece que no se puede acceder al dominio {domain:s} a través de HTTP. Por favor compruebe en los diagnósticos la categoría 'Web'para más información. (Si sabe lo que está haciendo, utilice '--no-checks' para no realizar estas comprobaciones.)",
|
||||||
"certmanager_error_no_A_record": "No se ha encontrado un registro DNS «A» para el dominio {domain:s}. Debe hacer que su nombre de dominio apunte a su máquina para poder instalar un certificado de Let's Encrypt. (Si sabe lo que está haciendo, use «--no-checks» para desactivar esas comprobaciones.)",
|
|
||||||
"certmanager_domain_dns_ip_differs_from_public_ip": "El registro DNS 'A' para el dominio '{domain:s}' es diferente de la IP de este servidor. Por favor comprueba los 'registros DNS' (básicos) la categoría de diagnósticos para mayor información. Si recientemente modificó su registro 'A', espere a que se propague (algunos verificadores de propagación de DNS están disponibles en línea). (Si sabe lo que está haciendo, use '--no-checks' para desactivar esos cheques)",
|
"certmanager_domain_dns_ip_differs_from_public_ip": "El registro DNS 'A' para el dominio '{domain:s}' es diferente de la IP de este servidor. Por favor comprueba los 'registros DNS' (básicos) la categoría de diagnósticos para mayor información. Si recientemente modificó su registro 'A', espere a que se propague (algunos verificadores de propagación de DNS están disponibles en línea). (Si sabe lo que está haciendo, use '--no-checks' para desactivar esos cheques)",
|
||||||
"certmanager_cannot_read_cert": "Se ha producido un error al intentar abrir el certificado actual para el dominio {domain:s} (archivo: {file:s}), razón: {reason:s}",
|
"certmanager_cannot_read_cert": "Se ha producido un error al intentar abrir el certificado actual para el dominio {domain:s} (archivo: {file:s}), razón: {reason:s}",
|
||||||
"certmanager_cert_install_success_selfsigned": "Instalado correctamente un certificado autofirmado para el dominio «{domain:s}»",
|
"certmanager_cert_install_success_selfsigned": "Instalado correctamente un certificado autofirmado para el dominio «{domain:s}»",
|
||||||
|
@ -178,17 +163,13 @@
|
||||||
"certmanager_hit_rate_limit": "Se han emitido demasiados certificados recientemente para este conjunto exacto de dominios {domain:s}. Pruebe de nuevo más tarde. Vea para más detalles https://letsencrypt.org/docs/rate-limits/",
|
"certmanager_hit_rate_limit": "Se han emitido demasiados certificados recientemente para este conjunto exacto de dominios {domain:s}. Pruebe de nuevo más tarde. Vea para más detalles https://letsencrypt.org/docs/rate-limits/",
|
||||||
"certmanager_cert_signing_failed": "No se pudo firmar el nuevo certificado",
|
"certmanager_cert_signing_failed": "No se pudo firmar el nuevo certificado",
|
||||||
"certmanager_no_cert_file": "No se pudo leer el certificado para el dominio {domain:s} (archivo: {file:s})",
|
"certmanager_no_cert_file": "No se pudo leer el certificado para el dominio {domain:s} (archivo: {file:s})",
|
||||||
"certmanager_conflicting_nginx_file": "No se pudo preparar el dominio para el desafío ACME: el archivo de configuración de NGINX {filepath:s} está en conflicto y debe ser eliminado primero",
|
|
||||||
"domain_cannot_remove_main": "No puede eliminar '{domain:s}' ya que es el dominio principal, primero debe configurar otro dominio como el dominio principal usando 'yunohost domain main-domain -n <otro dominio>'; Aquí está la lista de dominios candidatos: {other_domains:s}",
|
"domain_cannot_remove_main": "No puede eliminar '{domain:s}' ya que es el dominio principal, primero debe configurar otro dominio como el dominio principal usando 'yunohost domain main-domain -n <otro dominio>'; Aquí está la lista de dominios candidatos: {other_domains:s}",
|
||||||
"certmanager_self_ca_conf_file_not_found": "No se pudo encontrar el archivo de configuración para la autoridad de autofirma (archivo: {file:s})",
|
"certmanager_self_ca_conf_file_not_found": "No se pudo encontrar el archivo de configuración para la autoridad de autofirma (archivo: {file:s})",
|
||||||
"certmanager_unable_to_parse_self_CA_name": "No se pudo procesar el nombre de la autoridad de autofirma (archivo: {file:s})",
|
"certmanager_unable_to_parse_self_CA_name": "No se pudo procesar el nombre de la autoridad de autofirma (archivo: {file:s})",
|
||||||
"domains_available": "Dominios disponibles:",
|
"domains_available": "Dominios disponibles:",
|
||||||
"backup_archive_broken_link": "No se pudo acceder al archivo de respaldo (enlace roto a {path:s})",
|
"backup_archive_broken_link": "No se pudo acceder al archivo de respaldo (enlace roto a {path:s})",
|
||||||
"certmanager_acme_not_configured_for_domain": "El reto ACME no ha podido ser realizado para {domain} porque su configuración de nginx no tiene el el código correcto... Por favor, asegurate que la configuración de nginx es correcta ejecutando en el terminal `yunohost tools regen-conf nginx --dry-run --with-diff`.",
|
"certmanager_acme_not_configured_for_domain": "El reto ACME no ha podido ser realizado para {domain} porque su configuración de nginx no tiene el el código correcto... Por favor, asegurate que la configuración de nginx es correcta ejecutando en el terminal `yunohost tools regen-conf nginx --dry-run --with-diff`.",
|
||||||
"certmanager_http_check_timeout": "Tiempo de espera agotado cuando el servidor intentaba conectarse consigo mismo a través de HTTP usando una dirección IP pública (dominio «{domain:s}» con IP «{ip:s}»). Puede que esté experimentando un problema de redirección («hairpinning»), o que el cortafuegos o el enrutador de su servidor esté mal configurado.",
|
|
||||||
"certmanager_couldnt_fetch_intermediate_cert": "Tiempo de espera agotado intentando obtener el certificado intermedio de Let's Encrypt. Cancelada la instalación o renovación del certificado. Vuelva a intentarlo más tarde.",
|
|
||||||
"domain_hostname_failed": "No se pudo establecer un nuevo nombre de anfitrión («hostname»). Esto podría causar problemas más tarde (no es seguro... podría ir bien).",
|
"domain_hostname_failed": "No se pudo establecer un nuevo nombre de anfitrión («hostname»). Esto podría causar problemas más tarde (no es seguro... podría ir bien).",
|
||||||
"yunohost_ca_creation_success": "Creada la autoridad de certificación local.",
|
|
||||||
"app_already_installed_cant_change_url": "Esta aplicación ya está instalada. La URL no se puede cambiar solo con esta función. Marque `app changeurl` si está disponible.",
|
"app_already_installed_cant_change_url": "Esta aplicación ya está instalada. La URL no se puede cambiar solo con esta función. Marque `app changeurl` si está disponible.",
|
||||||
"app_change_url_failed_nginx_reload": "No se pudo recargar NGINX. Esta es la salida de «nginx -t»:\n{nginx_errors:s}",
|
"app_change_url_failed_nginx_reload": "No se pudo recargar NGINX. Esta es la salida de «nginx -t»:\n{nginx_errors:s}",
|
||||||
"app_change_url_identical_domains": "El antiguo y nuevo dominio/url_path son idénticos ('{domain:s} {path:s}'), no se realizarán cambios.",
|
"app_change_url_identical_domains": "El antiguo y nuevo dominio/url_path son idénticos ('{domain:s} {path:s}'), no se realizarán cambios.",
|
||||||
|
@ -200,14 +181,12 @@
|
||||||
"app_make_default_location_already_used": "No pudo hacer que la aplicación «{app}» sea la predeterminada en el dominio, «{domain}» ya está siendo usado por la aplicación «{other_app}»",
|
"app_make_default_location_already_used": "No pudo hacer que la aplicación «{app}» sea la predeterminada en el dominio, «{domain}» ya está siendo usado por la aplicación «{other_app}»",
|
||||||
"app_upgrade_app_name": "Ahora actualizando {app}…",
|
"app_upgrade_app_name": "Ahora actualizando {app}…",
|
||||||
"backup_abstract_method": "Este método de respaldo aún no se ha implementado",
|
"backup_abstract_method": "Este método de respaldo aún no se ha implementado",
|
||||||
"backup_applying_method_borg": "Enviando todos los archivos para la copia de seguridad al repositorio de borg-backup…",
|
|
||||||
"backup_applying_method_copy": "Copiando todos los archivos en la copia de respaldo…",
|
"backup_applying_method_copy": "Copiando todos los archivos en la copia de respaldo…",
|
||||||
"backup_applying_method_custom": "Llamando al método de copia de seguridad personalizado «{method:s}»…",
|
"backup_applying_method_custom": "Llamando al método de copia de seguridad personalizado «{method:s}»…",
|
||||||
"backup_applying_method_tar": "Creando el archivo TAR de respaldo…",
|
"backup_applying_method_tar": "Creando el archivo TAR de respaldo…",
|
||||||
"backup_archive_system_part_not_available": "La parte del sistema «{part:s}» no está disponible en esta copia de seguridad",
|
"backup_archive_system_part_not_available": "La parte del sistema «{part:s}» no está disponible en esta copia de seguridad",
|
||||||
"backup_archive_writing_error": "No se pudieron añadir los archivos «{source:s}» (llamados en el archivo «{dest:s}») para ser respaldados en el archivo comprimido «{archive:s}»",
|
"backup_archive_writing_error": "No se pudieron añadir los archivos «{source:s}» (llamados en el archivo «{dest:s}») para ser respaldados en el archivo comprimido «{archive:s}»",
|
||||||
"backup_ask_for_copying_if_needed": "¿Quiere realizar la copia de seguridad usando {size:s}MB temporalmente? (Se usa este modo ya que algunos archivos no se pudieron preparar usando un método más eficiente.)",
|
"backup_ask_for_copying_if_needed": "¿Quiere realizar la copia de seguridad usando {size:s}MB temporalmente? (Se usa este modo ya que algunos archivos no se pudieron preparar usando un método más eficiente.)",
|
||||||
"backup_borg_not_implemented": "El método de respaldo de Borg aún no ha sido implementado",
|
|
||||||
"backup_cant_mount_uncompress_archive": "No se pudo montar el archivo descomprimido como protegido contra escritura",
|
"backup_cant_mount_uncompress_archive": "No se pudo montar el archivo descomprimido como protegido contra escritura",
|
||||||
"backup_copying_to_organize_the_archive": "Copiando {size:s}MB para organizar el archivo",
|
"backup_copying_to_organize_the_archive": "Copiando {size:s}MB para organizar el archivo",
|
||||||
"backup_couldnt_bind": "No se pudo enlazar {src:s} con {dest:s}.",
|
"backup_couldnt_bind": "No se pudo enlazar {src:s} con {dest:s}.",
|
||||||
|
@ -215,7 +194,6 @@
|
||||||
"backup_csv_creation_failed": "No se pudo crear el archivo CSV necesario para la restauración",
|
"backup_csv_creation_failed": "No se pudo crear el archivo CSV necesario para la restauración",
|
||||||
"backup_custom_mount_error": "El método de respaldo personalizado no pudo superar el paso «mount»",
|
"backup_custom_mount_error": "El método de respaldo personalizado no pudo superar el paso «mount»",
|
||||||
"backup_no_uncompress_archive_dir": "No existe tal directorio de archivos sin comprimir",
|
"backup_no_uncompress_archive_dir": "No existe tal directorio de archivos sin comprimir",
|
||||||
"backup_php5_to_php7_migration_may_fail": "No se pudo convertir su archivo para que sea compatible con PHP 7, puede que no pueda restaurar sus aplicaciones de PHP (motivo: {error:s})",
|
|
||||||
"backup_system_part_failed": "No se pudo respaldar la parte del sistema «{part:s}»",
|
"backup_system_part_failed": "No se pudo respaldar la parte del sistema «{part:s}»",
|
||||||
"backup_with_no_backup_script_for_app": "La aplicación «{app:s}» no tiene un guión de respaldo. Omitiendo.",
|
"backup_with_no_backup_script_for_app": "La aplicación «{app:s}» no tiene un guión de respaldo. Omitiendo.",
|
||||||
"backup_with_no_restore_script_for_app": "«{app:s}» no tiene un script de restauración, no podá restaurar automáticamente la copia de seguridad de esta aplicación.",
|
"backup_with_no_restore_script_for_app": "«{app:s}» no tiene un script de restauración, no podá restaurar automáticamente la copia de seguridad de esta aplicación.",
|
||||||
|
@ -228,7 +206,6 @@
|
||||||
"password_too_simple_2": "La contraseña tiene que ser de al menos 8 caracteres de longitud e incluir un número y caracteres en mayúsculas y minúsculas",
|
"password_too_simple_2": "La contraseña tiene que ser de al menos 8 caracteres de longitud e incluir un número y caracteres en mayúsculas y minúsculas",
|
||||||
"password_too_simple_3": "La contraseña tiene que ser de al menos 8 caracteres de longitud e incluir un número, mayúsculas, minúsculas y caracteres especiales",
|
"password_too_simple_3": "La contraseña tiene que ser de al menos 8 caracteres de longitud e incluir un número, mayúsculas, minúsculas y caracteres especiales",
|
||||||
"password_too_simple_4": "La contraseña tiene que ser de al menos 12 caracteres de longitud e incluir un número, mayúsculas, minúsculas y caracteres especiales",
|
"password_too_simple_4": "La contraseña tiene que ser de al menos 12 caracteres de longitud e incluir un número, mayúsculas, minúsculas y caracteres especiales",
|
||||||
"users_available": "Usuarios disponibles:",
|
|
||||||
"update_apt_cache_warning": "Algo fue mal durante la actualización de la caché de APT (gestor de paquetes de Debian). Aquí tiene un volcado de las líneas de sources.list que podría ayudarle a identificar las líneas problemáticas:\n{sourceslist}",
|
"update_apt_cache_warning": "Algo fue mal durante la actualización de la caché de APT (gestor de paquetes de Debian). Aquí tiene un volcado de las líneas de sources.list que podría ayudarle a identificar las líneas problemáticas:\n{sourceslist}",
|
||||||
"update_apt_cache_failed": "No se pudo actualizar la caché de APT (gestor de paquetes de Debian). Aquí tiene un volcado de las líneas de sources.list que podría ayudarle a identificar las líneas problemáticas:\n{sourceslist}",
|
"update_apt_cache_failed": "No se pudo actualizar la caché de APT (gestor de paquetes de Debian). Aquí tiene un volcado de las líneas de sources.list que podría ayudarle a identificar las líneas problemáticas:\n{sourceslist}",
|
||||||
"tools_upgrade_special_packages_completed": "Actualización de paquetes de YunoHost completada.\nPulse [Intro] para regresar a la línea de órdenes",
|
"tools_upgrade_special_packages_completed": "Actualización de paquetes de YunoHost completada.\nPulse [Intro] para regresar a la línea de órdenes",
|
||||||
|
@ -255,8 +232,6 @@
|
||||||
"service_description_rspamd": "Filtra correo no deseado y otras características relacionadas con el correo",
|
"service_description_rspamd": "Filtra correo no deseado y otras características relacionadas con el correo",
|
||||||
"service_description_redis-server": "Una base de datos especializada usada para el acceso rápido de datos, cola de tareas y comunicación entre programas",
|
"service_description_redis-server": "Una base de datos especializada usada para el acceso rápido de datos, cola de tareas y comunicación entre programas",
|
||||||
"service_description_postfix": "Usado para enviar y recibir correos",
|
"service_description_postfix": "Usado para enviar y recibir correos",
|
||||||
"service_description_php7.0-fpm": "Ejecuta aplicaciones escritas en PHP con NGINX",
|
|
||||||
"service_description_nslcd": "Maneja la conexión del intérprete de órdenes («shell») de usuario de YunoHost",
|
|
||||||
"service_description_nginx": "Sirve o proporciona acceso a todos los sitios web alojados en su servidor",
|
"service_description_nginx": "Sirve o proporciona acceso a todos los sitios web alojados en su servidor",
|
||||||
"service_description_mysql": "Almacena los datos de la aplicación (base de datos SQL)",
|
"service_description_mysql": "Almacena los datos de la aplicación (base de datos SQL)",
|
||||||
"service_description_metronome": "Gestionar las cuentas XMPP de mensajería instantánea",
|
"service_description_metronome": "Gestionar las cuentas XMPP de mensajería instantánea",
|
||||||
|
@ -273,7 +248,6 @@
|
||||||
"restore_system_part_failed": "No se pudo restaurar la parte del sistema «{part:s}»",
|
"restore_system_part_failed": "No se pudo restaurar la parte del sistema «{part:s}»",
|
||||||
"restore_removing_tmp_dir_failed": "No se pudo eliminar un directorio temporal antiguo",
|
"restore_removing_tmp_dir_failed": "No se pudo eliminar un directorio temporal antiguo",
|
||||||
"restore_not_enough_disk_space": "Espacio insuficiente (espacio: {free_space:d} B, espacio necesario: {needed_space:d} B, margen de seguridad: {margin:d} B)",
|
"restore_not_enough_disk_space": "Espacio insuficiente (espacio: {free_space:d} B, espacio necesario: {needed_space:d} B, margen de seguridad: {margin:d} B)",
|
||||||
"restore_mounting_archive": "Montando archivo en «{path:s}»",
|
|
||||||
"restore_may_be_not_enough_disk_space": "Parece que su sistema no tiene suficiente espacio libre (libre: {free_space:d} B, espacio necesario: {needed_space:d} B, margen de seguridad: {margin:d} B)",
|
"restore_may_be_not_enough_disk_space": "Parece que su sistema no tiene suficiente espacio libre (libre: {free_space:d} B, espacio necesario: {needed_space:d} B, margen de seguridad: {margin:d} B)",
|
||||||
"restore_extracting": "Extrayendo los archivos necesarios para el archivo…",
|
"restore_extracting": "Extrayendo los archivos necesarios para el archivo…",
|
||||||
"regenconf_pending_applying": "Aplicando la configuración pendiente para la categoría «{category}»…",
|
"regenconf_pending_applying": "Aplicando la configuración pendiente para la categoría «{category}»…",
|
||||||
|
@ -291,11 +265,8 @@
|
||||||
"regenconf_file_kept_back": "Se espera que el archivo de configuración «{conf}» sea eliminado por regen-conf (categoría {category}) pero ha sido retenido.",
|
"regenconf_file_kept_back": "Se espera que el archivo de configuración «{conf}» sea eliminado por regen-conf (categoría {category}) pero ha sido retenido.",
|
||||||
"regenconf_file_copy_failed": "No se pudo copiar el nuevo archivo de configuración «{new}» a «{conf}»",
|
"regenconf_file_copy_failed": "No se pudo copiar el nuevo archivo de configuración «{new}» a «{conf}»",
|
||||||
"regenconf_file_backed_up": "Archivo de configuración «{conf}» respaldado en «{backup}»",
|
"regenconf_file_backed_up": "Archivo de configuración «{conf}» respaldado en «{backup}»",
|
||||||
"permission_update_nothing_to_do": "No hay permisos para actualizar",
|
|
||||||
"permission_updated": "Actualizado el permiso «{permission:s}»",
|
"permission_updated": "Actualizado el permiso «{permission:s}»",
|
||||||
"permission_generated": "Actualizada la base de datos de permisos",
|
|
||||||
"permission_update_failed": "No se pudo actualizar el permiso '{permission}': {error}",
|
"permission_update_failed": "No se pudo actualizar el permiso '{permission}': {error}",
|
||||||
"permission_name_not_valid": "Elija un nombre de permiso permitido para «{permission:s}",
|
|
||||||
"permission_not_found": "No se encontró el permiso «{permission:s}»",
|
"permission_not_found": "No se encontró el permiso «{permission:s}»",
|
||||||
"permission_deletion_failed": "No se pudo eliminar el permiso «{permission}»: {error}",
|
"permission_deletion_failed": "No se pudo eliminar el permiso «{permission}»: {error}",
|
||||||
"permission_deleted": "Eliminado el permiso «{permission:s}»",
|
"permission_deleted": "Eliminado el permiso «{permission:s}»",
|
||||||
|
@ -321,61 +292,6 @@
|
||||||
"migrations_dependencies_not_satisfied": "Ejecutar estas migraciones: «{dependencies_id}» antes de migrar {id}.",
|
"migrations_dependencies_not_satisfied": "Ejecutar estas migraciones: «{dependencies_id}» antes de migrar {id}.",
|
||||||
"migrations_cant_reach_migration_file": "No se pudo acceder a los archivos de migración en la ruta «%s»",
|
"migrations_cant_reach_migration_file": "No se pudo acceder a los archivos de migración en la ruta «%s»",
|
||||||
"migrations_already_ran": "Esas migraciones ya se han realizado: {ids}",
|
"migrations_already_ran": "Esas migraciones ya se han realizado: {ids}",
|
||||||
"migration_0011_update_LDAP_schema": "Actualizando el esquema de LDAP…",
|
|
||||||
"migration_0011_update_LDAP_database": "Actualizando la base de datos de LDAP…",
|
|
||||||
"migration_0011_rollback_success": "Sistema revertido.",
|
|
||||||
"migration_0011_migration_failed_trying_to_rollback": "No se pudo migrar… intentando revertir el sistema.",
|
|
||||||
"migration_0011_migrate_permission": "Migrando permisos desde la configuración de las aplicaciones a LDAP…",
|
|
||||||
"migration_0011_LDAP_update_failed": "No se pudo actualizar LDAP. Error: {error:s}",
|
|
||||||
"migration_0011_done": "Migración finalizada. Ahora puede gestionar los grupos de usuarios.",
|
|
||||||
"migration_0011_create_group": "Creando un grupo para cada usuario…",
|
|
||||||
"migration_0011_can_not_backup_before_migration": "El respaldo del sistema no se pudo completar antes de que la migración fallase. Error: {error:s}",
|
|
||||||
"migration_0011_backup_before_migration": "Creando un respaldo de la base de datos de LDAP y de la configuración de las aplicaciones antes de la migración real.",
|
|
||||||
"migration_0009_not_needed": "La migración ya ocurrió de algún modo… (?) Omitiendo.",
|
|
||||||
"migration_0008_no_warning": "Sobre escribir su configuración SSH debería ser seguro ¡aunque esto no se puede prometer! Ejecute la migración para ignorarla. Por otra parte puede omitir la migración, aunque no se recomienda.",
|
|
||||||
"migration_0008_warning": "Si entiende esos avisos y quiere que YunoHost ignore su configuración actual, ejecute la migración. Por otra parte puede omitir la migración, aunque no se recomienda.",
|
|
||||||
"migration_0008_dsa": "• Se desactivará la clave DSA. Así que podría tener que anular un aviso espeluznante de su cliente SSH y volver a comprobar la huella de su servidor;",
|
|
||||||
"migration_0008_root": "• No podrá conectarse como «root» a través de SSH. En su lugar debe usar el usuario «admin»;",
|
|
||||||
"migration_0008_port": "• Tendrá que conectarse usando el puerto 22 en vez de su actual puerto SSH personalizado. No dude en reconfigurarlo;",
|
|
||||||
"migration_0008_general_disclaimer": "Para mejorar la seguridad de su servidor, es recomendable permitir a YunoHost gestionar la configuración de SSH. Su actual configuración de SSH difiere de la recomendación. Si permite a YunoHost reconfigurarla, la manera en la que conecta con su servidor a través de SSH cambiará así:",
|
|
||||||
"migration_0007_cannot_restart": "No se puede reiniciar SSH después de intentar cancelar la migración número 6.",
|
|
||||||
"migration_0007_cancelled": "No se pudo mejorar el modo en el que se gestiona su configuración de SSH.",
|
|
||||||
"migration_0006_disclaimer": "YunoHost espera ahora que las contraseñas de «admin» y «root» estén sincronizadas. Esta migración reemplaza su contraseña de «root» por la contraseña de «admin».",
|
|
||||||
"migration_0005_not_enough_space": "Tenga suficiente espacio libre disponible en {path} para ejecutar la migración.",
|
|
||||||
"migration_0005_postgresql_96_not_installed": "PostgreSQL 9.4 está instalado pero no PostgreSQL 9.6. Algo raro podría haber ocurrido en su sistema:(…",
|
|
||||||
"migration_0005_postgresql_94_not_installed": "PostgreSQL no estaba instalado en su sistema. Nada que hacer.",
|
|
||||||
"migration_0003_modified_files": "Tenga en cuenta que se encontró que los siguientes archivos fueron modificados manualmente y podrían ser sobrescritos después de la actualización: {manually_modified_files}",
|
|
||||||
"migration_0003_problematic_apps_warning": "Tenga en cuenta que se detectaron las siguientes aplicaciones instaladas posiblemente problemáticas. Parece que no se instalaron desde un catálogo de aplicaciones, o no se marcan como \"en funcionamiento\". En consecuencia, no se puede garantizar que seguirán funcionando después de la actualización: {problematic_apps}",
|
|
||||||
"migration_0003_general_warning": "Tenga en cuenta que esta migración es una operación delicada. El equipo de YunoHost ha hecho todo lo posible para revisarla y probarla, pero la migración aún podría romper parte del sistema o de sus aplicaciones.\n\nPor lo tanto, se recomienda que:\n - Realice una copia de seguridad de cualquier dato crítico o aplicación. Más información en https://yunohost.org/backup;\n - Tenga paciencia tras iniciar la migración: dependiendo de su conexión a Internet y de su hardware, podría tardar unas cuantas horas hasta que todo se actualice.\n\nAdemás, el puerto para SMTP usado por los clientes de correo externos (como Thunderbird o K9-Mail) cambió de 465 (SSL/TLS) a 587 (STARTTLS). El antiguo puerto (465) se cerrará automáticamente y el nuevo puerto (587) se abrirá en el cortafuegos. Todos los usuarios *tendrán* que adaptar la configuración de sus clientes de correo por lo tanto.",
|
|
||||||
"migration_0003_still_on_jessie_after_main_upgrade": "Algo fue mal durante la actualización principal: ⸘el sistema está aún en Jessie‽ Para investigar el problema, vea {log}:s…",
|
|
||||||
"migration_0003_system_not_fully_up_to_date": "Su sistema no está totalmente actualizado. Realice una actualización normal antes de ejecutar la migración a Stretch.",
|
|
||||||
"migration_0003_not_jessie": "¡La distribución de Debian actual no es Jessie!",
|
|
||||||
"migration_0003_yunohost_upgrade": "Iniciando la actualización del paquete YunoHost… la actualización ocurrirá inmediatamente después de que la migración finalizará. Después de que la operación esté completada, podría tener que iniciar sesión en la página de administración de nuevo.",
|
|
||||||
"migration_0003_restoring_origin_nginx_conf": "Su archivo /etc/nginx/nginx.conf ha sido editado. La migración lo devolverá a su estado original… El archivo anterior estará disponible como {backup_dest}.",
|
|
||||||
"migration_0003_fail2ban_upgrade": "Iniciando la actualización de Fail2Ban…",
|
|
||||||
"migration_0003_main_upgrade": "Iniciando la actualización principal…",
|
|
||||||
"migration_0003_patching_sources_list": "Corrigiendo «sources.lists»…",
|
|
||||||
"migration_0003_start": "Iniciando migración a Stretch. El registro estará disponible en {logfile}.",
|
|
||||||
"migration_description_0012_postgresql_password_to_md5_authentication": "Forzar a la autentificación de PostgreSQL a usar MD5 para las conexiones locales",
|
|
||||||
"migration_description_0011_setup_group_permission": "Configurar grupo de usuario y permisos para aplicaciones y servicios",
|
|
||||||
"migration_description_0010_migrate_to_apps_json": "Elimine los catálogos de aplicaciones obsoletas y use la nueva lista unificada de 'apps.json' en su lugar (desactualizada, reemplazada por la migración 13)",
|
|
||||||
"migration_description_0009_decouple_regenconf_from_services": "Separar el mecanismo «regen-conf» de los servicios",
|
|
||||||
"migration_description_0008_ssh_conf_managed_by_yunohost_step2": "Permitir que la configuración de SSH la gestione YunoHost (paso 2, manual)",
|
|
||||||
"migration_description_0007_ssh_conf_managed_by_yunohost_step1": "Permitir que la configuración de SSH la gestione YunoHost (paso 1, automático)",
|
|
||||||
"migration_description_0006_sync_admin_and_root_passwords": "Sincronizar las contraseñas de «admin» y «root»",
|
|
||||||
"migration_description_0005_postgresql_9p4_to_9p6": "Migrar las bases de datos de PostgreSQL 9.4 a 9.6",
|
|
||||||
"migration_description_0004_php5_to_php7_pools": "Reconfigurar los «pools» de PHP para usar PHP 7 en vez de 5",
|
|
||||||
"migration_description_0003_migrate_to_stretch": "Actualizar el sistema a Debian Stretch y YunoHost 3.0",
|
|
||||||
"migration_description_0002_migrate_to_tsig_sha256": "Mejore la seguridad de las actualizaciones de TSIG de DynDNS usando SHA-512 en vez de MD5",
|
|
||||||
"migration_description_0001_change_cert_group_to_sslcert": "Cambiar los permisos de grupo de certificados de «metronome» a «ssl-cert»",
|
|
||||||
"migrate_tsig_not_needed": "Parece que no usa un dominio de DynDNS, así que no es necesario migrar.",
|
|
||||||
"migrate_tsig_wait_4": "30 segundos…",
|
|
||||||
"migrate_tsig_wait_3": "1 min. …",
|
|
||||||
"migrate_tsig_wait_2": "2 min. …",
|
|
||||||
"migrate_tsig_wait": "Esperando tres minutos para que el servidor de DynDNS tenga en cuenta la nueva clave…",
|
|
||||||
"migrate_tsig_start": "Detectado algoritmo de clave insuficientemente seguro para la firma TSIG del dominio «{domain}», iniciando migración al más seguro HMAC-SHA-512",
|
|
||||||
"migrate_tsig_failed": "No se pudo migrar el dominio de DynDNS «{domain}» a HMAC-SHA-512, revertiendo. Error: {error_code}, {error}",
|
|
||||||
"migrate_tsig_end": "Terminada la migración a HMAC-SHA-512",
|
|
||||||
"mail_unavailable": "Esta dirección de correo está reservada y será asignada automáticamente al primer usuario",
|
"mail_unavailable": "Esta dirección de correo está reservada y será asignada automáticamente al primer usuario",
|
||||||
"mailbox_disabled": "Correo desactivado para usuario {user:s}",
|
"mailbox_disabled": "Correo desactivado para usuario {user:s}",
|
||||||
"log_tools_reboot": "Reiniciar el servidor",
|
"log_tools_reboot": "Reiniciar el servidor",
|
||||||
|
@ -412,7 +328,6 @@
|
||||||
"log_link_to_failed_log": "No se pudo completar la operación «{desc}». Para obtener ayuda, proporcione el registro completo de esta operación <a href=\"#/tools/logs/{name}\">pulsando aquí</a>",
|
"log_link_to_failed_log": "No se pudo completar la operación «{desc}». Para obtener ayuda, proporcione el registro completo de esta operación <a href=\"#/tools/logs/{name}\">pulsando aquí</a>",
|
||||||
"log_help_to_get_log": "Para ver el registro de la operación «{desc}», ejecute la orden «yunohost log show {name}{name}»",
|
"log_help_to_get_log": "Para ver el registro de la operación «{desc}», ejecute la orden «yunohost log show {name}{name}»",
|
||||||
"log_link_to_log": "Registro completo de esta operación: «<a href=\"#/tools/logs/{name}\" style=\"text-decoration:underline\">{desc}</a>»",
|
"log_link_to_log": "Registro completo de esta operación: «<a href=\"#/tools/logs/{name}\" style=\"text-decoration:underline\">{desc}</a>»",
|
||||||
"log_category_404": "La categoría de registro «{category}» no existe",
|
|
||||||
"log_corrupted_md_file": "El archivo de metadatos YAML asociado con el registro está dañado: «{md_file}\nError: {error}»",
|
"log_corrupted_md_file": "El archivo de metadatos YAML asociado con el registro está dañado: «{md_file}\nError: {error}»",
|
||||||
"hook_json_return_error": "No se pudo leer la respuesta del gancho {path:s}. Error: {msg:s}. Contenido sin procesar: {raw_content}",
|
"hook_json_return_error": "No se pudo leer la respuesta del gancho {path:s}. Error: {msg:s}. Contenido sin procesar: {raw_content}",
|
||||||
"group_update_failed": "No se pudo actualizar el grupo «{group}»: {error}",
|
"group_update_failed": "No se pudo actualizar el grupo «{group}»: {error}",
|
||||||
|
@ -431,10 +346,6 @@
|
||||||
"global_settings_setting_security_password_user_strength": "Seguridad de la contraseña de usuario",
|
"global_settings_setting_security_password_user_strength": "Seguridad de la contraseña de usuario",
|
||||||
"global_settings_setting_security_password_admin_strength": "Seguridad de la contraseña del administrador",
|
"global_settings_setting_security_password_admin_strength": "Seguridad de la contraseña del administrador",
|
||||||
"global_settings_setting_security_nginx_compatibility": "Compromiso entre compatibilidad y seguridad para el servidor web NGINX. Afecta al cifrado (y otros aspectos relacionados con la seguridad)",
|
"global_settings_setting_security_nginx_compatibility": "Compromiso entre compatibilidad y seguridad para el servidor web NGINX. Afecta al cifrado (y otros aspectos relacionados con la seguridad)",
|
||||||
"global_settings_setting_example_string": "Ejemplo de opción de cadena",
|
|
||||||
"global_settings_setting_example_int": "Ejemplo de opción «int»",
|
|
||||||
"global_settings_setting_example_enum": "Ejemplo de opción «enum»",
|
|
||||||
"global_settings_setting_example_bool": "Ejemplo de opción booleana",
|
|
||||||
"global_settings_reset_success": "Respaldada la configuración previa en {path:s}",
|
"global_settings_reset_success": "Respaldada la configuración previa en {path:s}",
|
||||||
"global_settings_key_doesnt_exists": "La clave «{settings_key:s}» no existe en la configuración global, puede ver todas las claves disponibles ejecutando «yunohost settings list»",
|
"global_settings_key_doesnt_exists": "La clave «{settings_key:s}» no existe en la configuración global, puede ver todas las claves disponibles ejecutando «yunohost settings list»",
|
||||||
"global_settings_cant_write_settings": "No se pudo guardar el archivo de configuración, motivo: {reason:s}",
|
"global_settings_cant_write_settings": "No se pudo guardar el archivo de configuración, motivo: {reason:s}",
|
||||||
|
@ -457,7 +368,6 @@
|
||||||
"backup_method_tar_finished": "Creado el archivo TAR de respaldo",
|
"backup_method_tar_finished": "Creado el archivo TAR de respaldo",
|
||||||
"backup_method_custom_finished": "Terminado el método «{method:s}» de respaldo personalizado",
|
"backup_method_custom_finished": "Terminado el método «{method:s}» de respaldo personalizado",
|
||||||
"backup_method_copy_finished": "Terminada la copia de seguridad",
|
"backup_method_copy_finished": "Terminada la copia de seguridad",
|
||||||
"backup_method_borg_finished": "Terminado el respaldo en Borg",
|
|
||||||
"backup_custom_backup_error": "El método de respaldo personalizado no pudo superar el paso de «copia de seguridad»",
|
"backup_custom_backup_error": "El método de respaldo personalizado no pudo superar el paso de «copia de seguridad»",
|
||||||
"backup_actually_backuping": "Creando un archivo de respaldo de los archivos obtenidos…",
|
"backup_actually_backuping": "Creando un archivo de respaldo de los archivos obtenidos…",
|
||||||
"ask_new_path": "Nueva ruta",
|
"ask_new_path": "Nueva ruta",
|
||||||
|
@ -486,7 +396,6 @@
|
||||||
"log_user_group_create": "Crear grupo «{}»",
|
"log_user_group_create": "Crear grupo «{}»",
|
||||||
"log_user_permission_update": "Actualizar los accesos para el permiso «{}»",
|
"log_user_permission_update": "Actualizar los accesos para el permiso «{}»",
|
||||||
"log_user_permission_reset": "Restablecer permiso «{}»",
|
"log_user_permission_reset": "Restablecer permiso «{}»",
|
||||||
"migration_0011_failed_to_remove_stale_object": "No se pudo eliminar el objeto obsoleto {dn}: {error}",
|
|
||||||
"permission_already_allowed": "El grupo «{group}» ya tiene el permiso «{permission}» activado",
|
"permission_already_allowed": "El grupo «{group}» ya tiene el permiso «{permission}» activado",
|
||||||
"permission_already_disallowed": "El grupo '{group}' ya tiene el permiso '{permission}' deshabilitado",
|
"permission_already_disallowed": "El grupo '{group}' ya tiene el permiso '{permission}' deshabilitado",
|
||||||
"permission_cannot_remove_main": "No está permitido eliminar un permiso principal",
|
"permission_cannot_remove_main": "No está permitido eliminar un permiso principal",
|
||||||
|
@ -498,7 +407,6 @@
|
||||||
"group_cannot_edit_visitors": "El grupo «visitors» no se puede editar manualmente. Es un grupo especial que representa a los visitantes anónimos",
|
"group_cannot_edit_visitors": "El grupo «visitors» no se puede editar manualmente. Es un grupo especial que representa a los visitantes anónimos",
|
||||||
"group_cannot_edit_primary_group": "El grupo «{group}» no se puede editar manualmente. Es el grupo primario destinado a contener solo un usuario específico.",
|
"group_cannot_edit_primary_group": "El grupo «{group}» no se puede editar manualmente. Es el grupo primario destinado a contener solo un usuario específico.",
|
||||||
"log_permission_url": "Actualizar la URL relacionada con el permiso «{}»",
|
"log_permission_url": "Actualizar la URL relacionada con el permiso «{}»",
|
||||||
"migration_0011_slapd_config_will_be_overwritten": "Parece que ha editado manualmente la configuración de slapd. Para esta migración crítica, YunoHost necesita forzar la actualización de la configuración de slapd. Los archivos originales se respaldarán en {conf_backup_folder}.",
|
|
||||||
"permission_already_up_to_date": "El permiso no se ha actualizado porque las peticiones de incorporación o eliminación ya coinciden con el estado actual.",
|
"permission_already_up_to_date": "El permiso no se ha actualizado porque las peticiones de incorporación o eliminación ya coinciden con el estado actual.",
|
||||||
"permission_currently_allowed_for_all_users": "Este permiso se concede actualmente a todos los usuarios además de los otros grupos. Probablemente quiere o eliminar el permiso de «all_users» o eliminar los otros grupos a los que está otorgado actualmente.",
|
"permission_currently_allowed_for_all_users": "Este permiso se concede actualmente a todos los usuarios además de los otros grupos. Probablemente quiere o eliminar el permiso de «all_users» o eliminar los otros grupos a los que está otorgado actualmente.",
|
||||||
"permission_require_account": "El permiso {permission} solo tiene sentido para usuarios con una cuenta y, por lo tanto, no se puede activar para visitantes.",
|
"permission_require_account": "El permiso {permission} solo tiene sentido para usuarios con una cuenta y, por lo tanto, no se puede activar para visitantes.",
|
||||||
|
@ -511,8 +419,6 @@
|
||||||
"diagnosis_failed_for_category": "Error de diagnóstico para la categoría '{category}': {error}",
|
"diagnosis_failed_for_category": "Error de diagnóstico para la categoría '{category}': {error}",
|
||||||
"diagnosis_cache_still_valid": "(Caché aún válida para el diagnóstico de {category}. ¡No se volvera a comprobar de momento!)",
|
"diagnosis_cache_still_valid": "(Caché aún válida para el diagnóstico de {category}. ¡No se volvera a comprobar de momento!)",
|
||||||
"diagnosis_found_errors_and_warnings": "¡Encontrado(s) error(es) significativo(s) {errors} (y aviso(s) {warnings}) relacionado(s) con {category}!",
|
"diagnosis_found_errors_and_warnings": "¡Encontrado(s) error(es) significativo(s) {errors} (y aviso(s) {warnings}) relacionado(s) con {category}!",
|
||||||
"diagnosis_display_tip_web": "Puede ir a la sección de diagnóstico (en la pantalla principal) para ver los problemas encontrados.",
|
|
||||||
"diagnosis_display_tip_cli": "Puede ejecutar «yunohost diagnosis show --issues» para mostrar los problemas encontrados.",
|
|
||||||
"apps_catalog_init_success": "¡Sistema de catálogo de aplicaciones inicializado!",
|
"apps_catalog_init_success": "¡Sistema de catálogo de aplicaciones inicializado!",
|
||||||
"apps_catalog_updating": "Actualizando el catálogo de aplicaciones…",
|
"apps_catalog_updating": "Actualizando el catálogo de aplicaciones…",
|
||||||
"apps_catalog_failed_to_download": "No se puede descargar el catálogo de aplicaciones {apps_catalog}: {error}",
|
"apps_catalog_failed_to_download": "No se puede descargar el catálogo de aplicaciones {apps_catalog}: {error}",
|
||||||
|
@ -553,14 +459,10 @@
|
||||||
"diagnosis_ram_ok": "El sistema aun tiene {available} ({available_percent}%) de RAM de un total de {total}.",
|
"diagnosis_ram_ok": "El sistema aun tiene {available} ({available_percent}%) de RAM de un total de {total}.",
|
||||||
"diagnosis_swap_none": "El sistema no tiene mas espacio de intercambio. Considera agregar por lo menos {recommended} de espacio de intercambio para evitar que el sistema se quede sin memoria.",
|
"diagnosis_swap_none": "El sistema no tiene mas espacio de intercambio. Considera agregar por lo menos {recommended} de espacio de intercambio para evitar que el sistema se quede sin memoria.",
|
||||||
"diagnosis_swap_notsomuch": "Al sistema le queda solamente {total} de espacio de intercambio. Considera agregar al menos {recommended} para evitar que el sistema se quede sin memoria.",
|
"diagnosis_swap_notsomuch": "Al sistema le queda solamente {total} de espacio de intercambio. Considera agregar al menos {recommended} para evitar que el sistema se quede sin memoria.",
|
||||||
"diagnosis_mail_ougoing_port_25_ok": "El puerto de salida 25 no esta bloqueado y los correos electrónicos pueden ser enviados a otros servidores.",
|
|
||||||
"diagnosis_mail_outgoing_port_25_blocked": "El puerto de salida 25 parece estar bloqueado. Intenta desbloquearlo con el panel de configuración de tu proveedor de servicios de Internet (o proveedor de halbergue). Mientras tanto, el servidor no podrá enviar correos electrónicos a otros servidores.",
|
"diagnosis_mail_outgoing_port_25_blocked": "El puerto de salida 25 parece estar bloqueado. Intenta desbloquearlo con el panel de configuración de tu proveedor de servicios de Internet (o proveedor de halbergue). Mientras tanto, el servidor no podrá enviar correos electrónicos a otros servidores.",
|
||||||
"diagnosis_regenconf_allgood": "Todos los archivos de configuración están en linea con la configuración recomendada!",
|
"diagnosis_regenconf_allgood": "Todos los archivos de configuración están en linea con la configuración recomendada!",
|
||||||
"diagnosis_regenconf_manually_modified": "El archivo de configuración {file} parece que ha sido modificado manualmente.",
|
"diagnosis_regenconf_manually_modified": "El archivo de configuración {file} parece que ha sido modificado manualmente.",
|
||||||
"diagnosis_regenconf_manually_modified_details": "¡Esto probablemente esta BIEN si sabes lo que estás haciendo! YunoHost dejará de actualizar este fichero automáticamente... Pero ten en cuenta que las actualizaciones de YunoHost pueden contener importantes cambios que están recomendados. Si quieres puedes comprobar las diferencias mediante <cmd>yunohost tools regen-conf {category} --dry-run --with-diff</cmd> o puedes forzar el volver a las opciones recomendadas mediante el comando <cmd>yunohost tools regen-conf {category} --force</cmd>",
|
"diagnosis_regenconf_manually_modified_details": "¡Esto probablemente esta BIEN si sabes lo que estás haciendo! YunoHost dejará de actualizar este fichero automáticamente... Pero ten en cuenta que las actualizaciones de YunoHost pueden contener importantes cambios que están recomendados. Si quieres puedes comprobar las diferencias mediante <cmd>yunohost tools regen-conf {category} --dry-run --with-diff</cmd> o puedes forzar el volver a las opciones recomendadas mediante el comando <cmd>yunohost tools regen-conf {category} --force</cmd>",
|
||||||
"diagnosis_regenconf_manually_modified_debian": "El archivos de configuración {file} fue modificado manualmente comparado con el valor predeterminado de Debian.",
|
|
||||||
"diagnosis_regenconf_manually_modified_debian_details": "Esto este probablemente BIEN, pero igual no lo pierdas de vista...",
|
|
||||||
"diagnosis_security_all_good": "Ninguna vulnerabilidad critica de seguridad fue encontrada.",
|
|
||||||
"diagnosis_security_vulnerable_to_meltdown": "Pareces vulnerable a el colapso de vulnerabilidad critica de seguridad",
|
"diagnosis_security_vulnerable_to_meltdown": "Pareces vulnerable a el colapso de vulnerabilidad critica de seguridad",
|
||||||
"diagnosis_description_basesystem": "Sistema de base",
|
"diagnosis_description_basesystem": "Sistema de base",
|
||||||
"diagnosis_description_ip": "Conectividad a Internet",
|
"diagnosis_description_ip": "Conectividad a Internet",
|
||||||
|
@ -574,14 +476,10 @@
|
||||||
"diagnosis_ports_unreachable": "El puerto {port} no es accesible desde internet.",
|
"diagnosis_ports_unreachable": "El puerto {port} no es accesible desde internet.",
|
||||||
"diagnosis_ports_could_not_diagnose": "No se puede comprobar si los puertos están accesibles desde el exterior.",
|
"diagnosis_ports_could_not_diagnose": "No se puede comprobar si los puertos están accesibles desde el exterior.",
|
||||||
"diagnosis_ports_could_not_diagnose_details": "Error: {error}",
|
"diagnosis_ports_could_not_diagnose_details": "Error: {error}",
|
||||||
"diagnosis_description_security": "Validación de seguridad",
|
|
||||||
"diagnosis_description_regenconf": "Configuraciones de sistema",
|
"diagnosis_description_regenconf": "Configuraciones de sistema",
|
||||||
"diagnosis_description_mail": "Correo electrónico",
|
"diagnosis_description_mail": "Correo electrónico",
|
||||||
"diagnosis_description_web": "Web",
|
"diagnosis_description_web": "Web",
|
||||||
"diagnosis_basesystem_hardware_board": "El modelo de placa del servidor es {model}",
|
|
||||||
"diagnosis_basesystem_hardware": "La arquitectura material del servidor es {virt} {arch}",
|
"diagnosis_basesystem_hardware": "La arquitectura material del servidor es {virt} {arch}",
|
||||||
"migration_description_0014_remove_app_status_json": "Supresión del archivo de aplicaciones heredado status.json",
|
|
||||||
"migration_description_0013_futureproof_apps_catalog_system": "Migración hacia el nuevo sistema de catalogo de aplicación a prueba del futuro",
|
|
||||||
"log_domain_main_domain": "Hacer de '{}' el dominio principal",
|
"log_domain_main_domain": "Hacer de '{}' el dominio principal",
|
||||||
"log_app_config_apply": "Aplica la configuración de la aplicación '{}'",
|
"log_app_config_apply": "Aplica la configuración de la aplicación '{}'",
|
||||||
"log_app_config_show_panel": "Muestra el panel de configuración de la aplicación '{}'",
|
"log_app_config_show_panel": "Muestra el panel de configuración de la aplicación '{}'",
|
||||||
|
@ -617,7 +515,7 @@
|
||||||
"diagnosis_dns_try_dyndns_update_force": "La configuración DNS de este dominio debería ser administrada automáticamente por Yunohost. Si no es el caso, puede intentar forzar una actualización ejecutando <cmd>yunohost dyndns update --force</cmd>.",
|
"diagnosis_dns_try_dyndns_update_force": "La configuración DNS de este dominio debería ser administrada automáticamente por Yunohost. Si no es el caso, puede intentar forzar una actualización ejecutando <cmd>yunohost dyndns update --force</cmd>.",
|
||||||
"diagnosis_ip_local": "IP Local: <code>{local}</code>",
|
"diagnosis_ip_local": "IP Local: <code>{local}</code>",
|
||||||
"diagnosis_ip_no_ipv6_tip": "Tener IPv6 funcionando no es obligatorio para que su servidor funcione, pero es mejor para la salud del Internet en general. IPv6 debería ser configurado automáticamente por el sistema o su proveedor si está disponible. De otra manera, es posible que tenga que configurar varias cosas manualmente, tal y como se explica en esta documentación <a href='https://yunohost.org/#/ipv6'>https://yunohost.org/#/ipv6</a>. Si no puede habilitar IPv6 o si parece demasiado técnico, puede ignorar esta advertencia con toda seguridad.",
|
"diagnosis_ip_no_ipv6_tip": "Tener IPv6 funcionando no es obligatorio para que su servidor funcione, pero es mejor para la salud del Internet en general. IPv6 debería ser configurado automáticamente por el sistema o su proveedor si está disponible. De otra manera, es posible que tenga que configurar varias cosas manualmente, tal y como se explica en esta documentación <a href='https://yunohost.org/#/ipv6'>https://yunohost.org/#/ipv6</a>. Si no puede habilitar IPv6 o si parece demasiado técnico, puede ignorar esta advertencia con toda seguridad.",
|
||||||
"diagnosis_display_tip": "Para ver los problemas encontrados, puede ir a la sección de diagnóstico del webadmin, o ejecutar 'yunohost diagnosis show --issues' en la línea de comandos.",
|
"diagnosis_display_tip": "Para ver los problemas encontrados, puede ir a la sección de diagnóstico del webadmin, o ejecutar 'yunohost diagnosis show --issues --human-readable' en la línea de comandos.",
|
||||||
"diagnosis_package_installed_from_sury_details": "Algunos paquetes fueron accidentalmente instalados de un repositorio de terceros llamado Sury. El equipo Yunohost ha mejorado la estrategia para manejar estos pquetes, pero es posible que algunas instalaciones con aplicaciones de PHP7.3 en Stretch puedan tener algunas inconsistencias. Para solucionar esta situación, debería intentar ejecutar el siguiente comando: <cmd>{cmd_to_fix}</cmd>",
|
"diagnosis_package_installed_from_sury_details": "Algunos paquetes fueron accidentalmente instalados de un repositorio de terceros llamado Sury. El equipo Yunohost ha mejorado la estrategia para manejar estos pquetes, pero es posible que algunas instalaciones con aplicaciones de PHP7.3 en Stretch puedan tener algunas inconsistencias. Para solucionar esta situación, debería intentar ejecutar el siguiente comando: <cmd>{cmd_to_fix}</cmd>",
|
||||||
"diagnosis_package_installed_from_sury": "Algunos paquetes del sistema deberían ser devueltos a una versión anterior",
|
"diagnosis_package_installed_from_sury": "Algunos paquetes del sistema deberían ser devueltos a una versión anterior",
|
||||||
"certmanager_domain_not_diagnosed_yet": "Aún no hay resultado del diagnóstico para el dominio {domain}. Por favor ejecute el diagnóstico para las categorías 'Registros DNS' y 'Web' en la sección de diagnóstico para verificar si el dominio está listo para Let's Encrypt. (O si sabe lo que está haciendo, utilice '--no-checks' para deshabilitar esos chequeos.)",
|
"certmanager_domain_not_diagnosed_yet": "Aún no hay resultado del diagnóstico para el dominio {domain}. Por favor ejecute el diagnóstico para las categorías 'Registros DNS' y 'Web' en la sección de diagnóstico para verificar si el dominio está listo para Let's Encrypt. (O si sabe lo que está haciendo, utilice '--no-checks' para deshabilitar esos chequeos.)",
|
||||||
|
|
1
locales/fi.json
Normal file
1
locales/fi.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{}
|
127
locales/fr.json
127
locales/fr.json
|
@ -22,7 +22,6 @@
|
||||||
"app_unsupported_remote_type": "Ce type de commande à distance utilisé pour cette application n’est pas supporté",
|
"app_unsupported_remote_type": "Ce type de commande à distance utilisé pour cette application n’est pas supporté",
|
||||||
"app_upgrade_failed": "Impossible de mettre à jour {app:s} : {error}",
|
"app_upgrade_failed": "Impossible de mettre à jour {app:s} : {error}",
|
||||||
"app_upgraded": "{app:s} mis à jour",
|
"app_upgraded": "{app:s} mis à jour",
|
||||||
"ask_email": "Adresse de courriel",
|
|
||||||
"ask_firstname": "Prénom",
|
"ask_firstname": "Prénom",
|
||||||
"ask_lastname": "Nom",
|
"ask_lastname": "Nom",
|
||||||
"ask_main_domain": "Domaine principal",
|
"ask_main_domain": "Domaine principal",
|
||||||
|
@ -39,7 +38,6 @@
|
||||||
"backup_delete_error": "Impossible de supprimer '{path:s}'",
|
"backup_delete_error": "Impossible de supprimer '{path:s}'",
|
||||||
"backup_deleted": "La sauvegarde a été supprimée",
|
"backup_deleted": "La sauvegarde a été supprimée",
|
||||||
"backup_hook_unknown": "Script de sauvegarde '{hook:s}' inconnu",
|
"backup_hook_unknown": "Script de sauvegarde '{hook:s}' inconnu",
|
||||||
"backup_invalid_archive": "Archive de sauvegarde invalide",
|
|
||||||
"backup_nothings_done": "Il n’y a rien à sauvegarder",
|
"backup_nothings_done": "Il n’y a rien à sauvegarder",
|
||||||
"backup_output_directory_forbidden": "Choisissez un répertoire de destination différent. Les sauvegardes ne peuvent pas être créées dans les sous-dossiers /bin, /boot, /dev, /etc, /lib, /root, /run, /sbin, /sys, /usr, /var ou /home/yunohost.backup/archives",
|
"backup_output_directory_forbidden": "Choisissez un répertoire de destination différent. Les sauvegardes ne peuvent pas être créées dans les sous-dossiers /bin, /boot, /dev, /etc, /lib, /root, /run, /sbin, /sys, /usr, /var ou /home/yunohost.backup/archives",
|
||||||
"backup_output_directory_not_empty": "Le répertoire de destination n’est pas vide",
|
"backup_output_directory_not_empty": "Le répertoire de destination n’est pas vide",
|
||||||
|
@ -58,9 +56,6 @@
|
||||||
"domain_unknown": "Domaine inconnu",
|
"domain_unknown": "Domaine inconnu",
|
||||||
"done": "Terminé",
|
"done": "Terminé",
|
||||||
"downloading": "Téléchargement en cours …",
|
"downloading": "Téléchargement en cours …",
|
||||||
"dyndns_cron_installed": "La tâche cron pour le domaine DynDNS a été créée",
|
|
||||||
"dyndns_cron_remove_failed": "Impossible de supprimer la tâche cron DynDNS parce que : {error}",
|
|
||||||
"dyndns_cron_removed": "La tâche cron pour le domaine DynDNS a été enlevée",
|
|
||||||
"dyndns_ip_update_failed": "Impossible de mettre à jour l’adresse IP sur le domaine DynDNS",
|
"dyndns_ip_update_failed": "Impossible de mettre à jour l’adresse IP sur le domaine DynDNS",
|
||||||
"dyndns_ip_updated": "Mise à jour de votre IP pour le domaine DynDNS",
|
"dyndns_ip_updated": "Mise à jour de votre IP pour le domaine DynDNS",
|
||||||
"dyndns_key_generating": "Génération de la clé DNS..., cela peut prendre un certain temps.",
|
"dyndns_key_generating": "Génération de la clé DNS..., cela peut prendre un certain temps.",
|
||||||
|
@ -69,8 +64,6 @@
|
||||||
"dyndns_registered": "Domaine DynDNS enregistré",
|
"dyndns_registered": "Domaine DynDNS enregistré",
|
||||||
"dyndns_registration_failed": "Impossible d’enregistrer le domaine DynDNS : {error:s}",
|
"dyndns_registration_failed": "Impossible d’enregistrer le domaine DynDNS : {error:s}",
|
||||||
"dyndns_unavailable": "Le domaine {domain:s} est indisponible.",
|
"dyndns_unavailable": "Le domaine {domain:s} est indisponible.",
|
||||||
"executing_command": "Exécution de la commande '{command:s}'...",
|
|
||||||
"executing_script": "Exécution du script '{script:s}'...",
|
|
||||||
"extracting": "Extraction en cours...",
|
"extracting": "Extraction en cours...",
|
||||||
"field_invalid": "Champ incorrect : '{:s}'",
|
"field_invalid": "Champ incorrect : '{:s}'",
|
||||||
"firewall_reload_failed": "Impossible de recharger le pare-feu",
|
"firewall_reload_failed": "Impossible de recharger le pare-feu",
|
||||||
|
@ -81,18 +74,14 @@
|
||||||
"hook_list_by_invalid": "Propriété invalide pour lister les actions par celle-ci",
|
"hook_list_by_invalid": "Propriété invalide pour lister les actions par celle-ci",
|
||||||
"hook_name_unknown": "Nom de l’action '{name:s}' inconnu",
|
"hook_name_unknown": "Nom de l’action '{name:s}' inconnu",
|
||||||
"installation_complete": "Installation terminée",
|
"installation_complete": "Installation terminée",
|
||||||
"installation_failed": "Quelque chose s’est mal passé lors de l’installation",
|
|
||||||
"ip6tables_unavailable": "Vous ne pouvez pas jouer avec ip6tables ici. Vous êtes soit dans un conteneur, soit votre noyau ne le prend pas en charge",
|
"ip6tables_unavailable": "Vous ne pouvez pas jouer avec ip6tables ici. Vous êtes soit dans un conteneur, soit votre noyau ne le prend pas en charge",
|
||||||
"iptables_unavailable": "Vous ne pouvez pas jouer avec iptables ici. Vous êtes soit dans un conteneur, soit votre noyau ne le prend pas en charge",
|
"iptables_unavailable": "Vous ne pouvez pas jouer avec iptables ici. Vous êtes soit dans un conteneur, soit votre noyau ne le prend pas en charge",
|
||||||
"ldap_initialized": "L’annuaire LDAP a été initialisé",
|
|
||||||
"mail_alias_remove_failed": "Impossible de supprimer l’alias de courriel '{mail:s}'",
|
"mail_alias_remove_failed": "Impossible de supprimer l’alias de courriel '{mail:s}'",
|
||||||
"mail_domain_unknown": "Le domaine '{domain:s}' de cette adresse de courriel n’est pas valide. Merci d’utiliser un domaine administré par ce serveur.",
|
"mail_domain_unknown": "Le domaine '{domain:s}' de cette adresse de courriel n’est pas valide. Merci d’utiliser un domaine administré par ce serveur.",
|
||||||
"mail_forward_remove_failed": "Impossible de supprimer le courriel de transfert '{mail:s}'",
|
"mail_forward_remove_failed": "Impossible de supprimer le courriel de transfert '{mail:s}'",
|
||||||
"main_domain_change_failed": "Impossible de modifier le domaine principal",
|
"main_domain_change_failed": "Impossible de modifier le domaine principal",
|
||||||
"main_domain_changed": "Le domaine principal a été modifié",
|
"main_domain_changed": "Le domaine principal a été modifié",
|
||||||
"no_internet_connection": "Le serveur n’est pas connecté à Internet",
|
|
||||||
"not_enough_disk_space": "L’espace disque est insuffisant sur '{path:s}'",
|
"not_enough_disk_space": "L’espace disque est insuffisant sur '{path:s}'",
|
||||||
"package_unknown": "Le paquet '{pkgname}' est inconnu",
|
|
||||||
"packages_upgrade_failed": "Impossible de mettre à jour tous les paquets",
|
"packages_upgrade_failed": "Impossible de mettre à jour tous les paquets",
|
||||||
"pattern_backup_archive_name": "Doit être un nom de fichier valide avec un maximum de 30 caractères, et composé de caractères alphanumériques et -_. uniquement",
|
"pattern_backup_archive_name": "Doit être un nom de fichier valide avec un maximum de 30 caractères, et composé de caractères alphanumériques et -_. uniquement",
|
||||||
"pattern_domain": "Doit être un nom de domaine valide (ex : mon-domaine.fr)",
|
"pattern_domain": "Doit être un nom de domaine valide (ex : mon-domaine.fr)",
|
||||||
|
@ -107,7 +96,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}'",
|
||||||
"restore_app_failed": "Impossible de restaurer '{app: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}]",
|
||||||
|
@ -145,7 +134,7 @@
|
||||||
"upgrading_packages": "Mise à jour des paquets en cours...",
|
"upgrading_packages": "Mise à jour des paquets en cours...",
|
||||||
"upnp_dev_not_found": "Aucun périphérique compatible UPnP n’a été trouvé",
|
"upnp_dev_not_found": "Aucun périphérique compatible UPnP n’a été trouvé",
|
||||||
"upnp_disabled": "UPnP désactivé",
|
"upnp_disabled": "UPnP désactivé",
|
||||||
"upnp_enabled": "UPnP activé",
|
"upnp_enabled": "L'UPnP est activé",
|
||||||
"upnp_port_open_failed": "Impossible d’ouvrir les ports UPnP",
|
"upnp_port_open_failed": "Impossible d’ouvrir les ports UPnP",
|
||||||
"user_created": "L’utilisateur a été créé",
|
"user_created": "L’utilisateur a été créé",
|
||||||
"user_creation_failed": "Impossible de créer l’utilisateur {user} : {error}",
|
"user_creation_failed": "Impossible de créer l’utilisateur {user} : {error}",
|
||||||
|
@ -156,18 +145,15 @@
|
||||||
"user_update_failed": "Impossible de mettre à jour l’utilisateur {user} : {error}",
|
"user_update_failed": "Impossible de mettre à jour l’utilisateur {user} : {error}",
|
||||||
"user_updated": "L’utilisateur a été modifié",
|
"user_updated": "L’utilisateur a été modifié",
|
||||||
"yunohost_already_installed": "YunoHost est déjà installé",
|
"yunohost_already_installed": "YunoHost est déjà installé",
|
||||||
"yunohost_ca_creation_failed": "Impossible de créer l’autorité de certification",
|
|
||||||
"yunohost_configured": "YunoHost est maintenant configuré",
|
"yunohost_configured": "YunoHost est maintenant configuré",
|
||||||
"yunohost_installing": "L’installation de YunoHost est en cours...",
|
"yunohost_installing": "L’installation de YunoHost est en cours...",
|
||||||
"yunohost_not_installed": "YunoHost n’est pas correctement installé. Veuillez exécuter 'yunohost tools postinstall'",
|
"yunohost_not_installed": "YunoHost n’est pas correctement installé. Veuillez exécuter 'yunohost tools postinstall'",
|
||||||
"certmanager_attempt_to_replace_valid_cert": "Vous êtes en train de vouloir remplacer un certificat correct et valide pour le domaine {domain:s} ! (Utilisez --force pour contourner cela)",
|
"certmanager_attempt_to_replace_valid_cert": "Vous êtes en train de vouloir remplacer un certificat correct et valide pour le domaine {domain:s} ! (Utilisez --force pour contourner cela)",
|
||||||
"certmanager_domain_unknown": "Domaine {domain:s} inconnu",
|
|
||||||
"certmanager_domain_cert_not_selfsigned": "Le certificat du domaine {domain:s} n’est pas auto-signé. Voulez-vous vraiment le remplacer ? (Utilisez --force pour cela)",
|
"certmanager_domain_cert_not_selfsigned": "Le certificat du domaine {domain:s} n’est pas auto-signé. Voulez-vous vraiment le remplacer ? (Utilisez --force pour cela)",
|
||||||
"certmanager_certificate_fetching_or_enabling_failed": "Il semble que l’activation du nouveau certificat pour {domain:s} a échoué...",
|
"certmanager_certificate_fetching_or_enabling_failed": "Il semble que l’activation du nouveau certificat pour {domain:s} a échoué...",
|
||||||
"certmanager_attempt_to_renew_nonLE_cert": "Le certificat pour le domaine {domain:s} n’est pas émis par Let’s Encrypt. Impossible de le renouveler automatiquement !",
|
"certmanager_attempt_to_renew_nonLE_cert": "Le certificat pour le domaine {domain:s} n’est pas émis par Let’s Encrypt. Impossible de le renouveler automatiquement !",
|
||||||
"certmanager_attempt_to_renew_valid_cert": "Le certificat pour le domaine {domain:s} n’est pas sur le point d’expirer ! (Vous pouvez utiliser --force si vous savez ce que vous faites)",
|
"certmanager_attempt_to_renew_valid_cert": "Le certificat pour le domaine {domain:s} n’est pas sur le point d’expirer ! (Vous pouvez utiliser --force si vous savez ce que vous faites)",
|
||||||
"certmanager_domain_http_not_working": "Le domaine {domain:s} ne semble pas être accessible via HTTP. Merci de vérifier la catégorie 'Web' dans le diagnostic pour plus d'informations. (Ou si vous savez ce que vous faites, utilisez '--no-checks' pour désactiver la vérification.)",
|
"certmanager_domain_http_not_working": "Le domaine {domain:s} ne semble pas être accessible via HTTP. Merci de vérifier la catégorie 'Web' dans le diagnostic pour plus d'informations. (Ou si vous savez ce que vous faites, utilisez '--no-checks' pour désactiver la vérification.)",
|
||||||
"certmanager_error_no_A_record": "Aucun enregistrement DNS 'A' n’a été trouvé pour {domain:s}. Vous devez faire pointer votre nom de domaine vers votre machine pour être en mesure d’installer un certificat Let’s Encrypt ! (Si vous savez ce que vous faites, utilisez --no-checks pour désactiver ces contrôles)",
|
|
||||||
"certmanager_domain_dns_ip_differs_from_public_ip": "L'enregistrement DNS du domaine {domain:s} est différent de l’adresse IP de ce serveur. Pour plus d'informations, veuillez consulter la catégorie \"Enregistrements DNS\" dans la section diagnostic. Si vous avez récemment modifié votre enregistrement 'A', veuillez attendre sa propagation (des vérificateurs de propagation DNS sont disponibles en ligne). (Si vous savez ce que vous faites, utilisez --no-checks pour désactiver ces contrôles)",
|
"certmanager_domain_dns_ip_differs_from_public_ip": "L'enregistrement DNS du domaine {domain:s} est différent de l’adresse IP de ce serveur. Pour plus d'informations, veuillez consulter la catégorie \"Enregistrements DNS\" dans la section diagnostic. Si vous avez récemment modifié votre enregistrement 'A', veuillez attendre sa propagation (des vérificateurs de propagation DNS sont disponibles en ligne). (Si vous savez ce que vous faites, utilisez --no-checks pour désactiver ces contrôles)",
|
||||||
"certmanager_cannot_read_cert": "Quelque chose s’est mal passé lors de la tentative d’ouverture du certificat actuel pour le domaine {domain:s} (fichier : {file:s}), la cause est : {reason:s}",
|
"certmanager_cannot_read_cert": "Quelque chose s’est mal passé lors de la tentative d’ouverture du certificat actuel pour le domaine {domain:s} (fichier : {file:s}), la cause est : {reason:s}",
|
||||||
"certmanager_cert_install_success_selfsigned": "Le certificat auto-signé est maintenant installé pour le domaine « {domain:s} »",
|
"certmanager_cert_install_success_selfsigned": "Le certificat auto-signé est maintenant installé pour le domaine « {domain:s} »",
|
||||||
|
@ -175,9 +161,7 @@
|
||||||
"certmanager_cert_renew_success": "Certificat Let’s Encrypt renouvelé pour le domaine '{domain:s}'",
|
"certmanager_cert_renew_success": "Certificat Let’s Encrypt renouvelé pour le domaine '{domain:s}'",
|
||||||
"certmanager_cert_signing_failed": "Impossible de signer le nouveau certificat",
|
"certmanager_cert_signing_failed": "Impossible de signer le nouveau certificat",
|
||||||
"certmanager_no_cert_file": "Impossible de lire le fichier du certificat pour le domaine {domain:s} (fichier : {file:s})",
|
"certmanager_no_cert_file": "Impossible de lire le fichier du certificat pour le domaine {domain:s} (fichier : {file:s})",
|
||||||
"certmanager_conflicting_nginx_file": "Impossible de préparer le domaine pour le défi ACME : le fichier de configuration NGINX {filepath:s} est en conflit et doit être préalablement retiré",
|
|
||||||
"certmanager_hit_rate_limit": "Trop de certificats ont déjà été émis récemment pour ce même ensemble de domaines {domain:s}. Veuillez réessayer plus tard. Lisez https://letsencrypt.org/docs/rate-limits/ pour obtenir plus de détails sur les ratios et limitations",
|
"certmanager_hit_rate_limit": "Trop de certificats ont déjà été émis récemment pour ce même ensemble de domaines {domain:s}. Veuillez réessayer plus tard. Lisez https://letsencrypt.org/docs/rate-limits/ pour obtenir plus de détails sur les ratios et limitations",
|
||||||
"ldap_init_failed_to_create_admin": "L’initialisation de l’annuaire LDAP n’a pas réussi à créer l’utilisateur admin",
|
|
||||||
"domain_cannot_remove_main": "Vous ne pouvez pas supprimer '{domain:s}' car il s’agit du domaine principal. Vous devez d’abord définir un autre domaine comme domaine principal à l’aide de 'yunohost domain main-domain -n <another-domain>', voici la liste des domaines candidats : {other_domains:s}",
|
"domain_cannot_remove_main": "Vous ne pouvez pas supprimer '{domain:s}' car il s’agit du domaine principal. Vous devez d’abord définir un autre domaine comme domaine principal à l’aide de 'yunohost domain main-domain -n <another-domain>', voici la liste des domaines candidats : {other_domains:s}",
|
||||||
"certmanager_self_ca_conf_file_not_found": "Le fichier de configuration pour l’autorité du certificat auto-signé est introuvable (fichier : {file:s})",
|
"certmanager_self_ca_conf_file_not_found": "Le fichier de configuration pour l’autorité du certificat auto-signé est introuvable (fichier : {file:s})",
|
||||||
"certmanager_unable_to_parse_self_CA_name": "Impossible d’analyser le nom de l’autorité du certificat auto-signé (fichier : {file:s})",
|
"certmanager_unable_to_parse_self_CA_name": "Impossible d’analyser le nom de l’autorité du certificat auto-signé (fichier : {file:s})",
|
||||||
|
@ -185,12 +169,9 @@
|
||||||
"domains_available": "Domaines disponibles :",
|
"domains_available": "Domaines disponibles :",
|
||||||
"backup_archive_broken_link": "Impossible d’accéder à l’archive de sauvegarde (lien invalide vers {path:s})",
|
"backup_archive_broken_link": "Impossible d’accéder à l’archive de sauvegarde (lien invalide vers {path:s})",
|
||||||
"certmanager_acme_not_configured_for_domain": "Le challenge ACME n'a pas pu être validé pour le domaine {domain} pour le moment car le code de la configuration nginx est manquant... Merci de vérifier que votre configuration nginx est à jour avec la commande: `yunohost tools regen-conf nginx --dry-run --with-diff`.",
|
"certmanager_acme_not_configured_for_domain": "Le challenge ACME n'a pas pu être validé pour le domaine {domain} pour le moment car le code de la configuration nginx est manquant... Merci de vérifier que votre configuration nginx est à jour avec la commande: `yunohost tools regen-conf nginx --dry-run --with-diff`.",
|
||||||
"certmanager_http_check_timeout": "Expiration du délai lorsque le serveur a essayé de se contacter lui-même via HTTP en utilisant l’adresse IP public {ip:s} du domaine {domain:s}. Vous rencontrez peut-être un problème d’hairpinning ou alors le pare-feu/routeur en amont de votre serveur est mal configuré.",
|
|
||||||
"certmanager_couldnt_fetch_intermediate_cert": "Expiration du délai lors de la tentative de récupération du certificat intermédiaire depuis Let’s Encrypt. L’installation ou le renouvellement du certificat a été annulé. Veuillez réessayer plus tard.",
|
|
||||||
"domain_hostname_failed": "Échec de l’utilisation d’un nouveau nom d’hôte. Cela pourrait causer des soucis plus tard (cela n’en causera peut-être pas).",
|
"domain_hostname_failed": "Échec de l’utilisation d’un nouveau nom d’hôte. Cela pourrait causer des soucis plus tard (cela n’en causera peut-être pas).",
|
||||||
"yunohost_ca_creation_success": "L'autorité de certification locale a été créée.",
|
|
||||||
"app_already_installed_cant_change_url": "Cette application est déjà installée. L’URL ne peut pas être changé simplement par cette fonction. Vérifiez si cela est disponible avec `app changeurl`.",
|
"app_already_installed_cant_change_url": "Cette application est déjà installée. L’URL ne peut pas être changé simplement par cette fonction. Vérifiez si cela est disponible avec `app changeurl`.",
|
||||||
"app_change_url_failed_nginx_reload": "Le redémarrage de Nginx a échoué. Voici la sortie de 'nginx -t' :\n{nginx_errors:s}",
|
"app_change_url_failed_nginx_reload": "Le redémarrage de NGINX a échoué. Voici la sortie de 'nginx -t' :\n{nginx_errors:s}",
|
||||||
"app_change_url_identical_domains": "L’ancien et le nouveau couple domaine/chemin_de_l’URL sont identiques pour ('{domain:s}{path:s}'), rien à faire.",
|
"app_change_url_identical_domains": "L’ancien et le nouveau couple domaine/chemin_de_l’URL sont identiques pour ('{domain:s}{path:s}'), rien à faire.",
|
||||||
"app_change_url_no_script": "L’application '{app_name:s}' ne prend pas encore en charge le changement d’URL. Vous devriez peut-être la mettre à jour.",
|
"app_change_url_no_script": "L’application '{app_name:s}' ne prend pas encore en charge le changement d’URL. Vous devriez peut-être la mettre à jour.",
|
||||||
"app_change_url_success": "L’URL de l’application {app:s} a été changée en {domain:s}{path:s}",
|
"app_change_url_success": "L’URL de l’application {app:s} a été changée en {domain:s}{path:s}",
|
||||||
|
@ -202,21 +183,15 @@
|
||||||
"global_settings_cant_write_settings": "Échec d’écriture du fichier de configurations car : {reason:s}",
|
"global_settings_cant_write_settings": "Échec d’écriture du fichier de configurations car : {reason:s}",
|
||||||
"global_settings_key_doesnt_exists": "La clef '{settings_key:s}' n’existe pas dans les configurations générales, vous pouvez voir toutes les clefs disponibles en saisissant 'yunohost settings list'",
|
"global_settings_key_doesnt_exists": "La clef '{settings_key:s}' n’existe pas dans les configurations générales, vous pouvez voir toutes les clefs disponibles en saisissant 'yunohost settings list'",
|
||||||
"global_settings_reset_success": "Vos configurations précédentes ont été sauvegardées dans {path:s}",
|
"global_settings_reset_success": "Vos configurations précédentes ont été sauvegardées dans {path:s}",
|
||||||
"global_settings_setting_example_bool": "Exemple d’option booléenne",
|
|
||||||
"global_settings_setting_example_int": "Exemple d’option de type entier",
|
|
||||||
"global_settings_setting_example_string": "Exemple d’option de type chaîne",
|
|
||||||
"global_settings_setting_example_enum": "Exemple d’option de type énumération",
|
|
||||||
"global_settings_unknown_type": "Situation inattendue : la configuration {setting:s} semble avoir le type {unknown_type:s} mais celui-ci n’est pas pris en charge par le système.",
|
"global_settings_unknown_type": "Situation inattendue : la configuration {setting:s} semble avoir le type {unknown_type:s} mais celui-ci n’est pas pris en charge par le système.",
|
||||||
"global_settings_unknown_setting_from_settings_file": "Clé inconnue dans les paramètres : '{setting_key:s}', rejet de cette clé et sauvegarde de celle-ci dans /etc/yunohost/unkown_settings.json",
|
"global_settings_unknown_setting_from_settings_file": "Clé inconnue dans les paramètres : '{setting_key:s}', rejet de cette clé et sauvegarde de celle-ci dans /etc/yunohost/unkown_settings.json",
|
||||||
"backup_abstract_method": "Cette méthode de sauvegarde reste à implémenter",
|
"backup_abstract_method": "Cette méthode de sauvegarde reste à implémenter",
|
||||||
"backup_applying_method_tar": "Création de l’archive TAR de la sauvegarde...",
|
"backup_applying_method_tar": "Création de l’archive TAR de la sauvegarde...",
|
||||||
"backup_applying_method_copy": "Copie de tous les fichiers à sauvegarder...",
|
"backup_applying_method_copy": "Copie de tous les fichiers à sauvegarder...",
|
||||||
"backup_applying_method_borg": "Envoi de tous les fichiers à sauvegarder dans le répertoire borg-backup...",
|
|
||||||
"backup_applying_method_custom": "Appel de la méthode de sauvegarde personnalisée '{method:s}'...",
|
"backup_applying_method_custom": "Appel de la méthode de sauvegarde personnalisée '{method:s}'...",
|
||||||
"backup_archive_system_part_not_available": "La partie '{part:s}' du système n’est pas disponible dans cette sauvegarde",
|
"backup_archive_system_part_not_available": "La partie '{part:s}' du système n’est pas disponible dans cette sauvegarde",
|
||||||
"backup_archive_writing_error": "Impossible d’ajouter des fichiers '{source:s}' (nommés dans l’archive : '{dest:s}') à sauvegarder dans l’archive compressée '{archive:s}'",
|
"backup_archive_writing_error": "Impossible d’ajouter des fichiers '{source:s}' (nommés dans l’archive : '{dest:s}') à sauvegarder dans l’archive compressée '{archive:s}'",
|
||||||
"backup_ask_for_copying_if_needed": "Voulez-vous effectuer la sauvegarde en utilisant {size:s}Mo temporairement ? (Cette méthode est utilisée car certains fichiers n’ont pas pu être préparés avec une méthode plus efficace.)",
|
"backup_ask_for_copying_if_needed": "Voulez-vous effectuer la sauvegarde en utilisant {size:s}Mo temporairement ? (Cette méthode est utilisée car certains fichiers n’ont pas pu être préparés avec une méthode plus efficace.)",
|
||||||
"backup_borg_not_implemented": "La méthode de sauvegarde Borg n’est pas encore implémentée",
|
|
||||||
"backup_cant_mount_uncompress_archive": "Impossible de monter en lecture seule le dossier de l’archive décompressée",
|
"backup_cant_mount_uncompress_archive": "Impossible de monter en lecture seule le dossier de l’archive décompressée",
|
||||||
"backup_copying_to_organize_the_archive": "Copie de {size:s} Mo pour organiser l’archive",
|
"backup_copying_to_organize_the_archive": "Copie de {size:s} Mo pour organiser l’archive",
|
||||||
"backup_csv_creation_failed": "Impossible de créer le fichier CSV nécessaire à la restauration",
|
"backup_csv_creation_failed": "Impossible de créer le fichier CSV nécessaire à la restauration",
|
||||||
|
@ -226,7 +201,6 @@
|
||||||
"backup_no_uncompress_archive_dir": "Ce dossier d’archive décompressée n’existe pas",
|
"backup_no_uncompress_archive_dir": "Ce dossier d’archive décompressée n’existe pas",
|
||||||
"backup_method_tar_finished": "L’archive TAR de la sauvegarde a été créée",
|
"backup_method_tar_finished": "L’archive TAR de la sauvegarde a été créée",
|
||||||
"backup_method_copy_finished": "La copie de la sauvegarde est terminée",
|
"backup_method_copy_finished": "La copie de la sauvegarde est terminée",
|
||||||
"backup_method_borg_finished": "La sauvegarde dans Borg est terminée",
|
|
||||||
"backup_method_custom_finished": "La méthode de sauvegarde personnalisée '{method:s}' est terminée",
|
"backup_method_custom_finished": "La méthode de sauvegarde personnalisée '{method:s}' est terminée",
|
||||||
"backup_system_part_failed": "Impossible de sauvegarder la partie '{part:s}' du système",
|
"backup_system_part_failed": "Impossible de sauvegarder la partie '{part:s}' du système",
|
||||||
"backup_unable_to_organize_files": "Impossible d’utiliser la méthode rapide pour organiser les fichiers dans l’archive",
|
"backup_unable_to_organize_files": "Impossible d’utiliser la méthode rapide pour organiser les fichiers dans l’archive",
|
||||||
|
@ -239,7 +213,7 @@
|
||||||
"restore_not_enough_disk_space": "Espace disponible insuffisant (L’espace libre est de {free_space:d} octets. Le besoin d’espace nécessaire est de {needed_space:d} octets. En appliquant une marge de sécurité, la quantité d’espace nécessaire est de {margin:d} octets)",
|
"restore_not_enough_disk_space": "Espace disponible insuffisant (L’espace libre est de {free_space:d} octets. Le besoin d’espace nécessaire est de {needed_space:d} octets. En appliquant une marge de sécurité, la quantité d’espace nécessaire est de {margin:d} octets)",
|
||||||
"restore_system_part_failed": "Impossible de restaurer la partie '{part:s}' du système",
|
"restore_system_part_failed": "Impossible de restaurer la partie '{part:s}' du système",
|
||||||
"backup_couldnt_bind": "Impossible de lier {src:s} avec {dest:s}.",
|
"backup_couldnt_bind": "Impossible de lier {src:s} avec {dest:s}.",
|
||||||
"domain_dns_conf_is_just_a_recommendation": "Cette page montre la configuration *recommandée*. Elle ne configure *pas* le DNS pour vous. Il est de votre responsabilité que de configurer votre zone DNS chez votre fournisseur/registrar DNS avec cette recommandation.",
|
"domain_dns_conf_is_just_a_recommendation": "Cette commande vous montre la configuration *recommandée*. Elle n'établit pas réellement la configuration DNS pour vous. Il est de votre ressort de configurer votre zone DNS chez votre registrar/fournisseur conformément à cette recommandation.",
|
||||||
"migrations_cant_reach_migration_file": "Impossible d’accéder aux fichiers de migration via le chemin '%s'",
|
"migrations_cant_reach_migration_file": "Impossible d’accéder aux fichiers de migration via le chemin '%s'",
|
||||||
"migrations_loading_migration": "Chargement de la migration {id}...",
|
"migrations_loading_migration": "Chargement de la migration {id}...",
|
||||||
"migrations_migration_has_failed": "La migration {id} a échoué avec l’exception {exception} : annulation",
|
"migrations_migration_has_failed": "La migration {id} a échoué avec l’exception {exception} : annulation",
|
||||||
|
@ -265,7 +239,6 @@
|
||||||
"service_description_metronome": "Gère les comptes de messagerie instantanée XMPP",
|
"service_description_metronome": "Gère les comptes de messagerie instantanée XMPP",
|
||||||
"service_description_mysql": "Stocke les données des applications (bases de données SQL)",
|
"service_description_mysql": "Stocke les données des applications (bases de données SQL)",
|
||||||
"service_description_nginx": "Sert ou permet l’accès à tous les sites web hébergés sur votre serveur",
|
"service_description_nginx": "Sert ou permet l’accès à tous les sites web hébergés sur votre serveur",
|
||||||
"service_description_nslcd": "Gère la connexion en ligne de commande des utilisateurs YunoHost",
|
|
||||||
"service_description_postfix": "Utilisé pour envoyer et recevoir des courriels",
|
"service_description_postfix": "Utilisé pour envoyer et recevoir des courriels",
|
||||||
"service_description_redis-server": "Une base de données spécialisée utilisée pour l’accès rapide aux données, les files d’attentes et la communication entre les programmes",
|
"service_description_redis-server": "Une base de données spécialisée utilisée pour l’accès rapide aux données, les files d’attentes et la communication entre les programmes",
|
||||||
"service_description_rspamd": "Filtre le pourriel, et d’autres fonctionnalités liées au courriel",
|
"service_description_rspamd": "Filtre le pourriel, et d’autres fonctionnalités liées au courriel",
|
||||||
|
@ -275,11 +248,9 @@
|
||||||
"service_description_yunohost-firewall": "Gère l’ouverture et la fermeture des ports de connexion aux services",
|
"service_description_yunohost-firewall": "Gère l’ouverture et la fermeture des ports de connexion aux services",
|
||||||
"experimental_feature": "Attention : cette fonctionnalité est expérimentale et ne doit pas être considérée comme stable, vous ne devriez pas l’utiliser à moins que vous ne sachiez ce que vous faites.",
|
"experimental_feature": "Attention : cette fonctionnalité est expérimentale et ne doit pas être considérée comme stable, vous ne devriez pas l’utiliser à moins que vous ne sachiez ce que vous faites.",
|
||||||
"log_corrupted_md_file": "Le fichier YAML de métadonnées associé aux logs est corrompu : '{md_file}'\nErreur : {error}",
|
"log_corrupted_md_file": "Le fichier YAML de métadonnées associé aux logs est corrompu : '{md_file}'\nErreur : {error}",
|
||||||
"log_category_404": "Le journal de la catégorie '{category}' n’existe pas",
|
|
||||||
"log_link_to_log": "Journal complet de cette opération : '<a href=\"#/tools/logs/{name}\" style=\"text-decoration:underline\"> {desc} </a>'",
|
"log_link_to_log": "Journal complet de cette opération : '<a href=\"#/tools/logs/{name}\" style=\"text-decoration:underline\"> {desc} </a>'",
|
||||||
"log_help_to_get_log": "Pour voir le journal de cette opération '{desc}', utilisez la commande 'yunohost log show {name}{name}'",
|
"log_help_to_get_log": "Pour voir le journal de cette opération '{desc}', utilisez la commande 'yunohost log show {name}{name}'",
|
||||||
"log_link_to_failed_log": "L’opération '{desc}' a échoué ! Pour obtenir de l’aide, merci de partager le journal de l’opération en <a href=\"#/tools/logs/{name}\">cliquant ici</a>",
|
"log_link_to_failed_log": "L’opération '{desc}' a échoué ! Pour obtenir de l’aide, merci de partager le journal de l’opération en <a href=\"#/tools/logs/{name}\">cliquant ici</a>",
|
||||||
"backup_php5_to_php7_migration_may_fail": "Impossible de convertir votre archive pour prendre en charge PHP 7, vous pourriez ne plus pouvoir restaurer vos applications PHP (cause : {error:s})",
|
|
||||||
"log_help_to_get_failed_log": "L’opération '{desc}' a échoué ! Pour obtenir de l’aide, merci de partager le journal de l’opération en utilisant la commande 'yunohost log share {name}'",
|
"log_help_to_get_failed_log": "L’opération '{desc}' a échoué ! Pour obtenir de l’aide, merci de partager le journal de l’opération en utilisant la commande 'yunohost log share {name}'",
|
||||||
"log_does_exists": "Il n’y a pas de journal des opérations avec le nom '{log}', utilisez 'yunohost log list' pour voir tous les journaux d’opérations disponibles",
|
"log_does_exists": "Il n’y a pas de journal des opérations avec le nom '{log}', utilisez 'yunohost log list' pour voir tous les journaux d’opérations disponibles",
|
||||||
"log_operation_unit_unclosed_properly": "L’opération ne s’est pas terminée correctement",
|
"log_operation_unit_unclosed_properly": "L’opération ne s’est pas terminée correctement",
|
||||||
|
@ -310,18 +281,9 @@
|
||||||
"log_tools_shutdown": "Éteindre votre serveur",
|
"log_tools_shutdown": "Éteindre votre serveur",
|
||||||
"log_tools_reboot": "Redémarrer votre serveur",
|
"log_tools_reboot": "Redémarrer votre serveur",
|
||||||
"mail_unavailable": "Cette adresse de courriel est réservée et doit être automatiquement attribuée au tout premier utilisateur",
|
"mail_unavailable": "Cette adresse de courriel est réservée et doit être automatiquement attribuée au tout premier utilisateur",
|
||||||
"migration_description_0004_php5_to_php7_pools": "Reconfigurer l'ensemble PHP pour utiliser PHP 7 au lieu de PHP 5",
|
"good_practices_about_admin_password": "Vous êtes sur le point de définir un nouveau mot de passe d'administration. Le mot de passe doit comporter au moins 8 caractères, bien qu'il soit recommandé d'utiliser un mot de passe plus long (c'est-à-dire une phrase secrète) et/ou d'utiliser une combinaison de caractères (majuscules, minuscules, chiffres et caractères spéciaux).",
|
||||||
"migration_description_0005_postgresql_9p4_to_9p6": "Migration des bases de données de PostgreSQL 9.4 vers PostgreSQL 9.6",
|
"good_practices_about_user_password": "Vous êtes sur le point de définir un nouveau mot de passe utilisateur. Le mot de passe doit comporter au moins 8 caractères, bien qu'il soit recommandé d'utiliser un mot de passe plus long (c'est-à-dire une phrase secrète) et/ou une combinaison de caractères (majuscules, minuscules, chiffres et caractères spéciaux).",
|
||||||
"migration_0005_postgresql_94_not_installed": "PostgreSQL n’a pas été installé sur votre système. Rien à faire !",
|
"password_listed": "Ce mot de passe fait partie des mots de passe les plus utilisés dans le monde. Veuillez en choisir un autre moins commun et plus fort.",
|
||||||
"migration_0005_postgresql_96_not_installed": "PostgreSQL 9.4 est installé, mais pas PostgreSQL 9.6 ‽ Quelque chose de bizarre aurait pu se produire sur votre système :(…",
|
|
||||||
"migration_0005_not_enough_space": "Laissez suffisamment d’espace disponible dans {path} pour exécuter la migration.",
|
|
||||||
"service_description_php7.0-fpm": "Exécute des applications écrites en PHP avec NGINX",
|
|
||||||
"users_available": "Liste des utilisateurs disponibles :",
|
|
||||||
"good_practices_about_admin_password": "Vous êtes sur le point de définir un nouveau mot de passe d'administration. Le mot de passe doit comporter au moins 8 caractères, bien qu'il soit recommandé d'utiliser un mot de passe plus long (c'est-à-dire une phrase de passe) et / ou d'utiliser une variation de caractères (majuscule, minuscule, chiffres et caractères spéciaux).",
|
|
||||||
"good_practices_about_user_password": "Vous êtes sur le point de définir un nouveau mot de passe utilisateur. Le mot de passe doit comporter au moins 8 caractères, bien qu'il soit recommandé d'utiliser un mot de passe plus long (c'est-à-dire une phrase secrète) et / ou une variation de caractères (majuscule, minuscule, chiffres et caractères spéciaux).",
|
|
||||||
"migration_description_0006_sync_admin_and_root_passwords": "Synchroniser les mots de passe admin et root",
|
|
||||||
"migration_0006_disclaimer": "YunoHost s’attend maintenant à ce que les mots de passe administrateur et racine soient synchronisés. Cette migration remplace votre mot de passe root par le mot de passe administrateur.",
|
|
||||||
"password_listed": "Ce mot de passe fait partie des mots de passe les plus utilisés au monde. Veuillez choisir quelque chose de plus unique.",
|
|
||||||
"password_too_simple_1": "Le mot de passe doit comporter au moins 8 caractères",
|
"password_too_simple_1": "Le mot de passe doit comporter au moins 8 caractères",
|
||||||
"password_too_simple_2": "Le mot de passe doit comporter au moins 8 caractères et contenir des chiffres, des majuscules et des minuscules",
|
"password_too_simple_2": "Le mot de passe doit comporter au moins 8 caractères et contenir des chiffres, des majuscules et des minuscules",
|
||||||
"password_too_simple_3": "Le mot de passe doit comporter au moins 8 caractères et contenir des chiffres, des majuscules, des minuscules et des caractères spéciaux",
|
"password_too_simple_3": "Le mot de passe doit comporter au moins 8 caractères et contenir des chiffres, des majuscules, des minuscules et des caractères spéciaux",
|
||||||
|
@ -340,7 +302,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.",
|
||||||
|
@ -348,17 +310,6 @@
|
||||||
"global_settings_setting_security_password_user_strength": "Qualité du mot de passe de l’utilisateur",
|
"global_settings_setting_security_password_user_strength": "Qualité du mot de passe de l’utilisateur",
|
||||||
"global_settings_setting_service_ssh_allow_deprecated_dsa_hostkey": "Autoriser l’utilisation de la clé hôte DSA (obsolète) pour la configuration du service SSH",
|
"global_settings_setting_service_ssh_allow_deprecated_dsa_hostkey": "Autoriser l’utilisation de la clé hôte DSA (obsolète) pour la configuration du service SSH",
|
||||||
"hook_json_return_error": "Échec de la lecture au retour du script {path:s}. Erreur : {msg:s}. Contenu brut : {raw_content}",
|
"hook_json_return_error": "Échec de la lecture au retour du script {path:s}. Erreur : {msg:s}. Contenu brut : {raw_content}",
|
||||||
"migration_description_0007_ssh_conf_managed_by_yunohost_step1": "La configuration SSH sera gérée par YunoHost (étape 1, automatique)",
|
|
||||||
"migration_description_0008_ssh_conf_managed_by_yunohost_step2": "La configuration SSH sera gérée par YunoHost (étape 2, manuelle)",
|
|
||||||
"migration_0007_cancelled": "Impossible d’améliorer la gestion de votre configuration SSH.",
|
|
||||||
"migration_0007_cannot_restart": "SSH ne peut pas être redémarré après avoir essayé d’annuler la migration numéro 6.",
|
|
||||||
"migration_0008_general_disclaimer": "Pour améliorer la sécurité de votre serveur, il est recommandé de laisser YunoHost gérer la configuration SSH. Votre configuration SSH actuelle diffère de la configuration recommandée. Si vous laissez YunoHost la reconfigurer, la façon dont vous vous connectez à votre serveur via SSH changera comme suit :",
|
|
||||||
"migration_0008_port": "- Vous devrez vous connecter en utilisant le port 22 au lieu de votre actuel port SSH personnalisé. N’hésitez pas à le reconfigurer ;",
|
|
||||||
"migration_0008_root": "- Vous ne pourrez pas vous connecter en tant que root via SSH. Au lieu de cela, vous devrez utiliser l’utilisateur admin ;",
|
|
||||||
"migration_0008_dsa": "- La clé DSA sera désactivée. Par conséquent, il se peut que vous ayez besoin d’invalider un avertissement effrayant de votre client SSH afin de revérifier l’empreinte de votre serveur ;",
|
|
||||||
"migration_0008_warning": "Si vous comprenez ces avertissements et souhaitez que YunoHost écrase votre configuration actuelle, exécutez la migration. Sinon, vous pouvez également ignorer la migration, bien que cela ne soit pas recommandé.",
|
|
||||||
"migration_0008_no_warning": "Remplacer votre configuration SSH ne devrait pas poser de problème, bien qu'il soit difficile de le promettre ! Exécutez la migration pour la remplacer. Sinon, vous pouvez également ignorer la migration, bien que cela ne soit pas recommandé.",
|
|
||||||
"migrations_success": "Migration {number} {name} réussie !",
|
|
||||||
"pattern_password_app": "Désolé, les mots de passe ne peuvent pas contenir les caractères suivants : {forbidden_chars}",
|
"pattern_password_app": "Désolé, les mots de passe ne peuvent pas contenir les caractères suivants : {forbidden_chars}",
|
||||||
"root_password_replaced_by_admin_password": "Votre mot de passe root a été remplacé par votre mot de passe administrateur.",
|
"root_password_replaced_by_admin_password": "Votre mot de passe root a été remplacé par votre mot de passe administrateur.",
|
||||||
"service_reload_failed": "Impossible de recharger le service '{service:s}'.\n\nJournaux historisés récents de ce service : {logs:s}",
|
"service_reload_failed": "Impossible de recharger le service '{service:s}'.\n\nJournaux historisés récents de ce service : {logs:s}",
|
||||||
|
@ -371,7 +322,6 @@
|
||||||
"app_action_cannot_be_ran_because_required_services_down": "Ces services requis doivent être en cours d’exécution pour exécuter cette action : {services}. Essayez de les redémarrer pour continuer (et éventuellement rechercher pourquoi ils sont en panne).",
|
"app_action_cannot_be_ran_because_required_services_down": "Ces services requis doivent être en cours d’exécution pour exécuter cette action : {services}. Essayez de les redémarrer pour continuer (et éventuellement rechercher pourquoi ils sont en panne).",
|
||||||
"admin_password_too_long": "Veuillez choisir un mot de passe comportant moins de 127 caractères",
|
"admin_password_too_long": "Veuillez choisir un mot de passe comportant moins de 127 caractères",
|
||||||
"log_regen_conf": "Régénérer les configurations du système '{}'",
|
"log_regen_conf": "Régénérer les configurations du système '{}'",
|
||||||
"migration_0009_not_needed": "Cette migration semble avoir déjà été jouée ? On l’ignore.",
|
|
||||||
"regenconf_file_backed_up": "Le fichier de configuration '{conf}' a été sauvegardé sous '{backup}'",
|
"regenconf_file_backed_up": "Le fichier de configuration '{conf}' a été sauvegardé sous '{backup}'",
|
||||||
"regenconf_file_copy_failed": "Impossible de copier le nouveau fichier de configuration '{new}' vers '{conf}'",
|
"regenconf_file_copy_failed": "Impossible de copier le nouveau fichier de configuration '{new}' vers '{conf}'",
|
||||||
"regenconf_file_manually_modified": "Le fichier de configuration '{conf}' a été modifié manuellement et ne sera pas mis à jour",
|
"regenconf_file_manually_modified": "Le fichier de configuration '{conf}' a été modifié manuellement et ne sera pas mis à jour",
|
||||||
|
@ -385,8 +335,6 @@
|
||||||
"global_settings_setting_security_nginx_compatibility": "Compatibilité versus compromis sécuritaire pour le serveur web Nginx. Affecte les cryptogrammes (et d’autres aspects liés à la sécurité)",
|
"global_settings_setting_security_nginx_compatibility": "Compatibilité versus compromis sécuritaire pour le serveur web Nginx. Affecte les cryptogrammes (et d’autres aspects liés à la sécurité)",
|
||||||
"global_settings_setting_security_ssh_compatibility": "Compatibilité versus compromis sécuritaire pour le serveur SSH. Affecte les cryptogrammes (et d’autres aspects liés à la sécurité)",
|
"global_settings_setting_security_ssh_compatibility": "Compatibilité versus compromis sécuritaire pour le serveur SSH. Affecte les cryptogrammes (et d’autres aspects liés à la sécurité)",
|
||||||
"global_settings_setting_security_postfix_compatibility": "Compatibilité versus compromis sécuritaire pour le serveur Postfix. Affecte les cryptogrammes (et d’autres aspects liés à la sécurité)",
|
"global_settings_setting_security_postfix_compatibility": "Compatibilité versus compromis sécuritaire pour le serveur Postfix. Affecte les cryptogrammes (et d’autres aspects liés à la sécurité)",
|
||||||
"migration_description_0009_decouple_regenconf_from_services": "Dissocier le mécanisme « regen-conf » des services",
|
|
||||||
"migration_description_0010_migrate_to_apps_json": "Supprimer les catalogues d’applications obsolètes afin d’utiliser la nouvelle liste unifiée 'apps.json' à la place (les anciens catalogues seront remplacés durant la migration 13)",
|
|
||||||
"regenconf_file_kept_back": "Le fichier de configuration '{conf}' devait être supprimé par « regen-conf » (catégorie {category}) mais a été conservé.",
|
"regenconf_file_kept_back": "Le fichier de configuration '{conf}' devait être supprimé par « regen-conf » (catégorie {category}) mais a été conservé.",
|
||||||
"regenconf_updated": "La configuration a été mise à jour pour '{category}'",
|
"regenconf_updated": "La configuration a été mise à jour pour '{category}'",
|
||||||
"regenconf_would_be_updated": "La configuration aurait dû être mise à jour pour la catégorie '{category}'",
|
"regenconf_would_be_updated": "La configuration aurait dû être mise à jour pour la catégorie '{category}'",
|
||||||
|
@ -419,39 +367,26 @@
|
||||||
"mailbox_disabled": "La boîte aux lettres est désactivée pour l’utilisateur {user:s}",
|
"mailbox_disabled": "La boîte aux lettres est désactivée pour l’utilisateur {user:s}",
|
||||||
"app_action_broke_system": "Cette action semble avoir cassé des services importants : {services}",
|
"app_action_broke_system": "Cette action semble avoir cassé des services importants : {services}",
|
||||||
"apps_already_up_to_date": "Toutes les applications sont déjà à jour",
|
"apps_already_up_to_date": "Toutes les applications sont déjà à jour",
|
||||||
"migration_0011_create_group": "Création d'un groupe pour chaque utilisateur…",
|
|
||||||
"migration_0011_done": "Migration terminée. Vous êtes maintenant en mesure de gérer des groupes d’utilisateurs.",
|
|
||||||
"migrations_must_provide_explicit_targets": "Vous devez fournir des cibles explicites lorsque vous utilisez '--skip' ou '--force-rerun'",
|
"migrations_must_provide_explicit_targets": "Vous devez fournir des cibles explicites lorsque vous utilisez '--skip' ou '--force-rerun'",
|
||||||
"migrations_no_such_migration": "Il n’y a pas de migration appelée '{id}'",
|
"migrations_no_such_migration": "Il n’y a pas de migration appelée '{id}'",
|
||||||
"migrations_pending_cant_rerun": "Ces migrations étant toujours en attente, vous ne pouvez pas les exécuter à nouveau : {ids}",
|
"migrations_pending_cant_rerun": "Ces migrations étant toujours en attente, vous ne pouvez pas les exécuter à nouveau : {ids}",
|
||||||
"migration_description_0012_postgresql_password_to_md5_authentication": "Forcer l’authentification PostgreSQL à utiliser MD5 pour les connexions locales",
|
|
||||||
"migrations_exclusive_options": "'auto', '--skip' et '--force-rerun' sont des options mutuellement exclusives.",
|
"migrations_exclusive_options": "'auto', '--skip' et '--force-rerun' sont des options mutuellement exclusives.",
|
||||||
"migrations_not_pending_cant_skip": "Ces migrations ne sont pas en attente et ne peuvent donc pas être ignorées : {ids}",
|
"migrations_not_pending_cant_skip": "Ces migrations ne sont pas en attente et ne peuvent donc pas être ignorées : {ids}",
|
||||||
"migration_0011_can_not_backup_before_migration": "La sauvegarde du système n’a pas pu être terminée avant l’échec de la migration. Erreur : {error:s}",
|
|
||||||
"migration_0011_migrate_permission": "Migration des autorisations des paramètres des applications vers LDAP...",
|
|
||||||
"migration_0011_migration_failed_trying_to_rollback": "La migration a échoué… Tentative de restauration du système.",
|
|
||||||
"migration_0011_rollback_success": "Système restauré.",
|
|
||||||
"migration_0011_update_LDAP_database": "Mise à jour de la base de données LDAP...",
|
|
||||||
"migration_0011_backup_before_migration": "Création d’une sauvegarde des paramètres de la base de données LDAP et des applications avant la migration.",
|
|
||||||
"permission_not_found": "Permission '{permission:s}' introuvable",
|
"permission_not_found": "Permission '{permission:s}' introuvable",
|
||||||
"permission_update_failed": "Impossible de mettre à jour la permission '{permission}' : {error}",
|
"permission_update_failed": "Impossible de mettre à jour la permission '{permission}' : {error}",
|
||||||
"permission_updated": "Permission '{permission:s}' mise à jour",
|
"permission_updated": "Permission '{permission:s}' mise à jour",
|
||||||
"permission_update_nothing_to_do": "Aucune permission à mettre à jour",
|
|
||||||
"dyndns_provider_unreachable": "Impossible d’atteindre le fournisseur DynDNS {provider} : votre YunoHost n’est pas correctement connecté à Internet ou le serveur Dynette est en panne.",
|
"dyndns_provider_unreachable": "Impossible d’atteindre le fournisseur DynDNS {provider} : votre YunoHost n’est pas correctement connecté à Internet ou le serveur Dynette est en panne.",
|
||||||
"migration_0011_update_LDAP_schema": "Mise à jour du schéma LDAP...",
|
|
||||||
"migrations_already_ran": "Ces migrations sont déjà effectuées : {ids}",
|
"migrations_already_ran": "Ces migrations sont déjà effectuées : {ids}",
|
||||||
"migrations_dependencies_not_satisfied": "Exécutez ces migrations : '{dependencies_id}', avant migration {id}.",
|
"migrations_dependencies_not_satisfied": "Exécutez ces migrations : '{dependencies_id}', avant migration {id}.",
|
||||||
"migrations_failed_to_load_migration": "Impossible de charger la migration {id} : {error}",
|
"migrations_failed_to_load_migration": "Impossible de charger la migration {id} : {error}",
|
||||||
"migrations_running_forward": "Exécution de la migration {id}...",
|
"migrations_running_forward": "Exécution de la migration {id}...",
|
||||||
"migrations_success_forward": "Migration {id} terminée",
|
"migrations_success_forward": "Migration {id} terminée",
|
||||||
"operation_interrupted": "L’opération a été interrompue manuellement ?",
|
"operation_interrupted": "L'opération a-t-elle été interrompue manuellement ?",
|
||||||
"permission_already_exist": "L’autorisation '{permission}' existe déjà",
|
"permission_already_exist": "L’autorisation '{permission}' existe déjà",
|
||||||
"permission_created": "Permission '{permission:s}' créée",
|
"permission_created": "Permission '{permission:s}' créée",
|
||||||
"permission_creation_failed": "Impossible de créer l’autorisation '{permission}' : {error}",
|
"permission_creation_failed": "Impossible de créer l’autorisation '{permission}' : {error}",
|
||||||
"permission_deleted": "Permission '{permission:s}' supprimée",
|
"permission_deleted": "Permission '{permission:s}' supprimée",
|
||||||
"permission_deletion_failed": "Impossible de supprimer la permission '{permission}' : {error}",
|
"permission_deletion_failed": "Impossible de supprimer la permission '{permission}' : {error}",
|
||||||
"migration_description_0011_setup_group_permission": "Initialiser les groupes d’utilisateurs et autorisations pour les applications et les services",
|
|
||||||
"migration_0011_LDAP_update_failed": "Impossible de mettre à jour LDAP. Erreur : {error:s}",
|
|
||||||
"group_already_exist": "Le groupe {group} existe déjà",
|
"group_already_exist": "Le groupe {group} existe déjà",
|
||||||
"group_already_exist_on_system": "Le groupe {group} existe déjà dans les groupes système",
|
"group_already_exist_on_system": "Le groupe {group} existe déjà dans les groupes système",
|
||||||
"group_cannot_be_deleted": "Le groupe {group} ne peut pas être supprimé manuellement.",
|
"group_cannot_be_deleted": "Le groupe {group} ne peut pas être supprimé manuellement.",
|
||||||
|
@ -462,7 +397,6 @@
|
||||||
"log_user_group_create": "Créer le groupe '{}'",
|
"log_user_group_create": "Créer le groupe '{}'",
|
||||||
"log_user_permission_update": "Mise à jour des accès pour la permission '{}'",
|
"log_user_permission_update": "Mise à jour des accès pour la permission '{}'",
|
||||||
"log_user_permission_reset": "Réinitialiser la permission '{}'",
|
"log_user_permission_reset": "Réinitialiser la permission '{}'",
|
||||||
"migration_0011_failed_to_remove_stale_object": "Impossible de supprimer un objet périmé {dn} : {error}",
|
|
||||||
"permission_already_allowed": "Le groupe '{group}' a déjà l’autorisation '{permission}' activée",
|
"permission_already_allowed": "Le groupe '{group}' a déjà l’autorisation '{permission}' activée",
|
||||||
"permission_already_disallowed": "Le groupe '{group}' a déjà l’autorisation '{permission}' désactivé",
|
"permission_already_disallowed": "Le groupe '{group}' a déjà l’autorisation '{permission}' désactivé",
|
||||||
"permission_cannot_remove_main": "Supprimer une autorisation principale n’est pas autorisé",
|
"permission_cannot_remove_main": "Supprimer une autorisation principale n’est pas autorisé",
|
||||||
|
@ -472,14 +406,12 @@
|
||||||
"group_cannot_edit_visitors": "Le groupe 'visiteurs' ne peut pas être édité manuellement. C’est un groupe spécial représentant les visiteurs anonymes",
|
"group_cannot_edit_visitors": "Le groupe 'visiteurs' ne peut pas être édité manuellement. C’est un groupe spécial représentant les visiteurs anonymes",
|
||||||
"group_cannot_edit_primary_group": "Le groupe '{group}' ne peut pas être édité manuellement. C’est le groupe principal destiné à ne contenir qu’un utilisateur spécifique.",
|
"group_cannot_edit_primary_group": "Le groupe '{group}' ne peut pas être édité manuellement. C’est le groupe principal destiné à ne contenir qu’un utilisateur spécifique.",
|
||||||
"log_permission_url": "Mise à jour de l’URL associée à l’autorisation '{}'",
|
"log_permission_url": "Mise à jour de l’URL associée à l’autorisation '{}'",
|
||||||
"migration_0011_slapd_config_will_be_overwritten": "Il semble que vous ayez modifié manuellement la configuration de slapd. Pour cette migration critique, YunoHost doit forcer la mise à jour de la configuration de slapd. Les fichiers originaux seront sauvegardés dans {conf_backup_folder}.",
|
|
||||||
"permission_already_up_to_date": "L’autorisation n’a pas été mise à jour car les demandes d’ajout/suppression correspondent déjà à l’état actuel.",
|
"permission_already_up_to_date": "L’autorisation n’a pas été mise à jour car les demandes d’ajout/suppression correspondent déjà à l’état actuel.",
|
||||||
"permission_currently_allowed_for_all_users": "Cette autorisation est actuellement accordée à tous les utilisateurs en plus des autres groupes. Vous voudrez probablement soit supprimer l’autorisation 'all_users', soit supprimer les autres groupes auxquels il est actuellement autorisé.",
|
"permission_currently_allowed_for_all_users": "Cette autorisation est actuellement accordée à tous les utilisateurs en plus des autres groupes. Vous voudrez probablement soit supprimer l’autorisation 'all_users', soit supprimer les autres groupes auxquels il est actuellement autorisé.",
|
||||||
"app_install_failed": "Impossible d’installer {app} : {error}",
|
"app_install_failed": "Impossible d’installer {app} : {error}",
|
||||||
"app_install_script_failed": "Une erreur est survenue dans le script d’installation de l’application",
|
"app_install_script_failed": "Une erreur est survenue dans le script d’installation de l’application",
|
||||||
"permission_require_account": "Permission {permission} n’a de sens que pour les utilisateurs ayant un compte et ne peut donc pas être activé pour les visiteurs.",
|
"permission_require_account": "Permission {permission} n’a de sens que pour les utilisateurs ayant un compte et ne peut donc pas être activé pour les visiteurs.",
|
||||||
"app_remove_after_failed_install": "Supprimer l’application après l’échec de l’installation...",
|
"app_remove_after_failed_install": "Supprimer l’application après l’échec de l’installation...",
|
||||||
"diagnosis_display_tip_web": "Vous pouvez aller à la section Diagnostic (dans l’écran d’accueil) pour voir les problèmes rencontrés.",
|
|
||||||
"diagnosis_cant_run_because_of_dep": "Impossible d’exécuter le diagnostic pour {category} alors qu’il existe des problèmes importants liés à {dep}.",
|
"diagnosis_cant_run_because_of_dep": "Impossible d’exécuter le diagnostic pour {category} alors qu’il existe des problèmes importants liés à {dep}.",
|
||||||
"diagnosis_found_errors": "Trouvé {errors} problème(s) significatif(s) lié(s) à {category} !",
|
"diagnosis_found_errors": "Trouvé {errors} problème(s) significatif(s) lié(s) à {category} !",
|
||||||
"diagnosis_found_errors_and_warnings": "Trouvé {errors} problème(s) significatif(s) (et {warnings} (avertissement(s)) en relation avec {category} !",
|
"diagnosis_found_errors_and_warnings": "Trouvé {errors} problème(s) significatif(s) (et {warnings} (avertissement(s)) en relation avec {category} !",
|
||||||
|
@ -496,7 +428,6 @@
|
||||||
"diagnosis_basesystem_ynh_single_version": "{package} version : {version} ({repo})",
|
"diagnosis_basesystem_ynh_single_version": "{package} version : {version} ({repo})",
|
||||||
"diagnosis_basesystem_ynh_main_version": "Le serveur utilise YunoHost {main_version} ({repo})",
|
"diagnosis_basesystem_ynh_main_version": "Le serveur utilise YunoHost {main_version} ({repo})",
|
||||||
"diagnosis_basesystem_ynh_inconsistent_versions": "Vous exécutez des versions incohérentes des packages YunoHost ... très probablement en raison d’une mise à niveau échouée ou partielle.",
|
"diagnosis_basesystem_ynh_inconsistent_versions": "Vous exécutez des versions incohérentes des packages YunoHost ... très probablement en raison d’une mise à niveau échouée ou partielle.",
|
||||||
"diagnosis_display_tip_cli": "Vous pouvez exécuter 'yunohost diagnosis show --issues' pour afficher les problèmes détectés.",
|
|
||||||
"diagnosis_failed_for_category": "Échec du diagnostic pour la catégorie '{category}': {error}",
|
"diagnosis_failed_for_category": "Échec du diagnostic pour la catégorie '{category}': {error}",
|
||||||
"diagnosis_cache_still_valid": "(Le cache est encore valide pour le diagnostic {category}. Il ne sera pas re-diagnostiqué pour le moment!)",
|
"diagnosis_cache_still_valid": "(Le cache est encore valide pour le diagnostic {category}. Il ne sera pas re-diagnostiqué pour le moment!)",
|
||||||
"diagnosis_ignored_issues": "(+ {nb_ignored} problème(s) ignoré(s))",
|
"diagnosis_ignored_issues": "(+ {nb_ignored} problème(s) ignoré(s))",
|
||||||
|
@ -522,9 +453,7 @@
|
||||||
"diagnosis_swap_notsomuch": "Le système ne dispose que de {total} de swap. Vous devez envisager d’avoir au moins {recommended} pour éviter les situations où le système manque de mémoire.",
|
"diagnosis_swap_notsomuch": "Le système ne dispose que de {total} de swap. Vous devez envisager d’avoir au moins {recommended} pour éviter les situations où le système manque de mémoire.",
|
||||||
"diagnosis_swap_ok": "Le système dispose de {total} de swap !",
|
"diagnosis_swap_ok": "Le système dispose de {total} de swap !",
|
||||||
"diagnosis_regenconf_manually_modified": "Le fichier de configuration <code>{file}</code> semble avoir été modifié manuellement.",
|
"diagnosis_regenconf_manually_modified": "Le fichier de configuration <code>{file}</code> semble avoir été modifié manuellement.",
|
||||||
"diagnosis_regenconf_manually_modified_debian": "Le fichier de configuration {file} a été modifié manuellement par rapport à celui par défaut de Debian.",
|
|
||||||
"diagnosis_regenconf_manually_modified_details": "C’est probablement OK si vous savez ce que vous faites ! YunoHost cessera de mettre à jour ce fichier automatiquement ... Mais attention, les mises à jour de YunoHost pourraient contenir d’importantes modifications recommandées. Si vous le souhaitez, vous pouvez inspecter les différences avec <cmd>yunohost tools regen-conf {category} --dry-run --with-diff</cmd> et forcer la réinitialisation à la configuration recommandée avec <cmd>yunohost tools regen-conf {category} --force</cmd>",
|
"diagnosis_regenconf_manually_modified_details": "C’est probablement OK si vous savez ce que vous faites ! YunoHost cessera de mettre à jour ce fichier automatiquement ... Mais attention, les mises à jour de YunoHost pourraient contenir d’importantes modifications recommandées. Si vous le souhaitez, vous pouvez inspecter les différences avec <cmd>yunohost tools regen-conf {category} --dry-run --with-diff</cmd> et forcer la réinitialisation à la configuration recommandée avec <cmd>yunohost tools regen-conf {category} --force</cmd>",
|
||||||
"diagnosis_regenconf_manually_modified_debian_details": "Cela peut probablement être OK, mais il faut garder un œil dessus …",
|
|
||||||
"apps_catalog_init_success": "Système de catalogue d’applications initialisé !",
|
"apps_catalog_init_success": "Système de catalogue d’applications initialisé !",
|
||||||
"apps_catalog_failed_to_download": "Impossible de télécharger le catalogue des applications {apps_catalog} : {error}",
|
"apps_catalog_failed_to_download": "Impossible de télécharger le catalogue des applications {apps_catalog} : {error}",
|
||||||
"diagnosis_mail_outgoing_port_25_blocked": "Le port sortant 25 semble être bloqué. Vous devriez essayer de le débloquer dans le panneau de configuration de votre fournisseur de services Internet (ou hébergeur). En attendant, le serveur ne pourra pas envoyer des courriels à d’autres serveurs.",
|
"diagnosis_mail_outgoing_port_25_blocked": "Le port sortant 25 semble être bloqué. Vous devriez essayer de le débloquer dans le panneau de configuration de votre fournisseur de services Internet (ou hébergeur). En attendant, le serveur ne pourra pas envoyer des courriels à d’autres serveurs.",
|
||||||
|
@ -537,13 +466,11 @@
|
||||||
"diagnosis_description_systemresources": "Ressources système",
|
"diagnosis_description_systemresources": "Ressources système",
|
||||||
"diagnosis_description_ports": "Exposition des ports",
|
"diagnosis_description_ports": "Exposition des ports",
|
||||||
"diagnosis_description_regenconf": "Configurations système",
|
"diagnosis_description_regenconf": "Configurations système",
|
||||||
"diagnosis_description_security": "Contrôles de sécurité",
|
|
||||||
"diagnosis_ports_could_not_diagnose": "Impossible de diagnostiquer si les ports sont accessibles de l'extérieur.",
|
"diagnosis_ports_could_not_diagnose": "Impossible de diagnostiquer si les ports sont accessibles de l'extérieur.",
|
||||||
"diagnosis_ports_could_not_diagnose_details": "Erreur : {error}",
|
"diagnosis_ports_could_not_diagnose_details": "Erreur : {error}",
|
||||||
"apps_catalog_updating": "Mise à jour du catalogue d’applications…",
|
"apps_catalog_updating": "Mise à jour du catalogue d’applications…",
|
||||||
"apps_catalog_obsolete_cache": "Le cache du catalogue d'applications est vide ou obsolète.",
|
"apps_catalog_obsolete_cache": "Le cache du catalogue d'applications est vide ou obsolète.",
|
||||||
"apps_catalog_update_success": "Le catalogue des applications a été mis à jour !",
|
"apps_catalog_update_success": "Le catalogue des applications a été mis à jour !",
|
||||||
"diagnosis_mail_ougoing_port_25_ok": "Le port sortant 25 n’est pas bloqué et le courrier électronique peut être envoyé à d’autres serveurs.",
|
|
||||||
"diagnosis_description_mail": "E-mail",
|
"diagnosis_description_mail": "E-mail",
|
||||||
"diagnosis_ports_unreachable": "Le port {port} n’est pas accessible de l’extérieur.",
|
"diagnosis_ports_unreachable": "Le port {port} n’est pas accessible de l’extérieur.",
|
||||||
"diagnosis_ports_ok": "Le port {port} est accessible de l’extérieur.",
|
"diagnosis_ports_ok": "Le port {port} est accessible de l’extérieur.",
|
||||||
|
@ -552,16 +479,14 @@
|
||||||
"diagnosis_http_ok": "Le domaine {domain} est accessible en HTTP depuis l’extérieur.",
|
"diagnosis_http_ok": "Le domaine {domain} est accessible en HTTP depuis l’extérieur.",
|
||||||
"diagnosis_http_unreachable": "Le domaine {domain} est inaccessible en HTTP depuis l’extérieur.",
|
"diagnosis_http_unreachable": "Le domaine {domain} est inaccessible en HTTP depuis l’extérieur.",
|
||||||
"diagnosis_unknown_categories": "Les catégories suivantes sont inconnues : {categories}",
|
"diagnosis_unknown_categories": "Les catégories suivantes sont inconnues : {categories}",
|
||||||
"migration_description_0013_futureproof_apps_catalog_system": "Migrer vers le nouveau système de catalogue d’applications à l’épreuve du temps",
|
|
||||||
"app_upgrade_script_failed": "Une erreur s’est produite durant l’exécution du script de mise à niveau de l’application",
|
"app_upgrade_script_failed": "Une erreur s’est produite durant l’exécution du script de mise à niveau de l’application",
|
||||||
"migration_description_0014_remove_app_status_json": "Supprimer les anciens fichiers d’application status.json",
|
|
||||||
"diagnosis_services_running": "Le service {service} est en cours de fonctionnement !",
|
"diagnosis_services_running": "Le service {service} est en cours de fonctionnement !",
|
||||||
"diagnosis_services_conf_broken": "La configuration est cassée pour le service {service} !",
|
"diagnosis_services_conf_broken": "La configuration est cassée pour le service {service} !",
|
||||||
"diagnosis_ports_needed_by": "Rendre ce port accessible est nécessaire pour les fonctionnalités de type {category} (service {service})",
|
"diagnosis_ports_needed_by": "Rendre ce port accessible est nécessaire pour les fonctionnalités de type {category} (service {service})",
|
||||||
"diagnosis_ports_forwarding_tip": "Pour résoudre ce problème, vous devez probablement configurer la redirection de port sur votre routeur Internet comme décrit dans <a href='https://yunohost.org/isp_box_config'>https://yunohost.org/isp_box_config</a>",
|
"diagnosis_ports_forwarding_tip": "Pour résoudre ce problème, vous devez probablement configurer la redirection de port sur votre routeur Internet comme décrit dans <a href='https://yunohost.org/isp_box_config'>https://yunohost.org/isp_box_config</a>",
|
||||||
"diagnosis_http_connection_error": "Erreur de connexion : impossible de se connecter au domaine demandé, il est probablement injoignable.",
|
"diagnosis_http_connection_error": "Erreur de connexion : impossible de se connecter au domaine demandé, il est probablement injoignable.",
|
||||||
"diagnosis_no_cache": "Pas encore de cache de diagnostique pour la catégorie « {category} »",
|
"diagnosis_no_cache": "Pas encore de cache de diagnostique pour la catégorie « {category} »",
|
||||||
"yunohost_postinstall_end_tip": "La post-installation terminée! Pour finaliser votre configuration, il est recommandé de :\n - ajouter un premier utilisateur depuis la section \"Utilisateurs\" de l’interface web (ou \"yunohost user create <nom d’utilisateur>\" en ligne de commande) ;\n - diagnostiquer les potentiels problèmes dans la section \"Diagnostic\" de l'interface web (ou \"yunohost diagnosis run\" en ligne de commande) ;\n - lire les parties \"Finalisation de votre configuration\" et \"Découverte de YunoHost\" dans le guide de l’administrateur: https://yunohost.org/admindoc.",
|
"yunohost_postinstall_end_tip": "La post-installation terminée ! Pour finaliser votre configuration, il est recommandé de :\n- ajouter un premier utilisateur depuis la section \"Utilisateurs\" de l’interface web (ou 'yunohost user create <nom d’utilisateur>' en ligne de commande) ;\n- diagnostiquer les potentiels problèmes dans la section \"Diagnostic\" de l'interface web (ou 'yunohost diagnosis run' en ligne de commande) ;\n- lire les parties 'Finalisation de votre configuration' et 'Découverte de YunoHost' dans le guide de l’administrateur : https://yunohost.org/admindoc.",
|
||||||
"diagnosis_services_bad_status_tip": "Vous pouvez essayer de <a href='#/services/{service}'>redémarrer le service</a>, et si cela ne fonctionne pas, consultez <a href='#/services/{service}'>les journaux de service dans le webadmin</a> (à partir de la ligne de commande, vous pouvez le faire avec <cmd>yunohost service restart {service}</cmd> et <cmd>yunohost service log {service}</cmd> ).",
|
"diagnosis_services_bad_status_tip": "Vous pouvez essayer de <a href='#/services/{service}'>redémarrer le service</a>, et si cela ne fonctionne pas, consultez <a href='#/services/{service}'>les journaux de service dans le webadmin</a> (à partir de la ligne de commande, vous pouvez le faire avec <cmd>yunohost service restart {service}</cmd> et <cmd>yunohost service log {service}</cmd> ).",
|
||||||
"diagnosis_http_bad_status_code": "Le système de diagnostique n’a pas réussi à contacter votre serveur. Il se peut qu’une autre machine réponde à la place de votre serveur. Vérifiez que le port 80 est correctement redirigé, que votre configuration Nginx est à jour et qu’un reverse-proxy n’interfère pas.",
|
"diagnosis_http_bad_status_code": "Le système de diagnostique n’a pas réussi à contacter votre serveur. Il se peut qu’une autre machine réponde à la place de votre serveur. Vérifiez que le port 80 est correctement redirigé, que votre configuration Nginx est à jour et qu’un reverse-proxy n’interfère pas.",
|
||||||
"diagnosis_http_timeout": "Expiration du délai en essayant de contacter votre serveur de l’extérieur. Il semble être inaccessible. Vérifiez que vous transférez correctement le port 80, que Nginx est en cours d’exécution et qu’un pare-feu n’interfère pas.",
|
"diagnosis_http_timeout": "Expiration du délai en essayant de contacter votre serveur de l’extérieur. Il semble être inaccessible. Vérifiez que vous transférez correctement le port 80, que Nginx est en cours d’exécution et qu’un pare-feu n’interfère pas.",
|
||||||
|
@ -569,9 +494,8 @@
|
||||||
"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_board": "Le modèle de carte du serveur est {model}",
|
|
||||||
"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...",
|
||||||
"certmanager_warning_subdomain_dns_record": "Le sous-domaine '{subdomain:s}' ne résout pas vers la même adresse IP que '{domain:s}'. Certaines fonctionnalités seront indisponibles tant que vous n’aurez pas corrigé cela et regénéré le certificat.",
|
"certmanager_warning_subdomain_dns_record": "Le sous-domaine '{subdomain:s}' ne résout pas vers la même adresse IP que '{domain:s}'. Certaines fonctionnalités seront indisponibles tant que vous n’aurez pas corrigé cela et regénéré le certificat.",
|
||||||
|
@ -594,8 +518,7 @@
|
||||||
"diagnosis_mail_queue_unavailable_details": "Erreur : {error}",
|
"diagnosis_mail_queue_unavailable_details": "Erreur : {error}",
|
||||||
"diagnosis_mail_queue_too_big": "Trop d’e-mails en attente dans la file d'attente ({nb_pending} e-mails)",
|
"diagnosis_mail_queue_too_big": "Trop d’e-mails en attente dans la file d'attente ({nb_pending} e-mails)",
|
||||||
"global_settings_setting_smtp_allow_ipv6": "Autoriser l'utilisation d’IPv6 pour recevoir et envoyer du courrier",
|
"global_settings_setting_smtp_allow_ipv6": "Autoriser l'utilisation d’IPv6 pour recevoir et envoyer du courrier",
|
||||||
"diagnosis_security_all_good": "Aucune vulnérabilité de sécurité critique n’a été trouvée.",
|
"diagnosis_display_tip": "Pour voir les problèmes détectés, vous pouvez accéder à la section Diagnostic du webadmin ou exécuter « yunohost diagnosis show --issues --human-readable» à partir de la ligne de commande.",
|
||||||
"diagnosis_display_tip": "Pour voir les problèmes détectés, vous pouvez accéder à la section Diagnostic du webadmin ou exécuter « yunohost diagnosis show --issues » à partir de la ligne de commande.",
|
|
||||||
"diagnosis_ip_global": "IP globale : <code>{global}</code>",
|
"diagnosis_ip_global": "IP globale : <code>{global}</code>",
|
||||||
"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.",
|
||||||
|
@ -643,7 +566,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.",
|
||||||
|
@ -679,22 +602,34 @@
|
||||||
"regex_incompatible_with_tile": "/!\\ Packagers ! La permission '{permission}' a 'show_tile' définie sur 'true' et vous ne pouvez donc pas définir une URL regex comme URL principale",
|
"regex_incompatible_with_tile": "/!\\ Packagers ! La permission '{permission}' a 'show_tile' définie sur 'true' et vous ne pouvez donc pas définir une URL regex comme URL principale",
|
||||||
"permission_protected": "L'autorisation {permission} est protégée. Vous ne pouvez pas ajouter ou supprimer le groupe visiteurs à/de cette autorisation.",
|
"permission_protected": "L'autorisation {permission} est protégée. Vous ne pouvez pas ajouter ou supprimer le groupe visiteurs à/de cette autorisation.",
|
||||||
"migration_0019_slapd_config_will_be_overwritten": "Il semble que vous ayez modifié manuellement la configuration de slapd. Pour cette migration critique, YunoHost doit forcer la mise à jour de la configuration slapd. Les fichiers originaux seront sauvegardés dans {conf_backup_folder}.",
|
"migration_0019_slapd_config_will_be_overwritten": "Il semble que vous ayez modifié manuellement la configuration de slapd. Pour cette migration critique, YunoHost doit forcer la mise à jour de la configuration slapd. Les fichiers originaux seront sauvegardés dans {conf_backup_folder}.",
|
||||||
"migration_0019_migration_failed_trying_to_rollback": "Impossible de migrer... tentative de restauration du système.",
|
|
||||||
"migration_0019_can_not_backup_before_migration": "La sauvegarde du système n'a pas pu être effectuée avant l'échec de la migration. Erreur : {error:s}",
|
|
||||||
"migration_0019_backup_before_migration": "Création d'une sauvegarde de la base de données LDAP et des paramètres des applications avant la migration.",
|
|
||||||
"migration_0019_add_new_attributes_in_ldap": "Ajouter de nouveaux attributs pour les autorisations dans la base de données LDAP",
|
"migration_0019_add_new_attributes_in_ldap": "Ajouter de nouveaux attributs pour les autorisations dans la base de données LDAP",
|
||||||
"migrating_legacy_permission_settings": "Migration des anciens paramètres d'autorisation...",
|
"migrating_legacy_permission_settings": "Migration des anciens paramètres d'autorisation...",
|
||||||
"invalid_regex": "Regex non valide : '{regex:s}'",
|
"invalid_regex": "Regex non valide : '{regex:s}'",
|
||||||
"domain_name_unknown": "Domaine '{domain}' inconnu",
|
"domain_name_unknown": "Domaine '{domain}' inconnu",
|
||||||
"app_label_deprecated": "Cette commande est obsolète ! Veuillez utiliser la nouvelle commande 'yunohost user permission update' pour gérer l'étiquette de l'application.",
|
"app_label_deprecated": "Cette commande est obsolète ! Veuillez utiliser la nouvelle commande 'yunohost user permission update' pour gérer l'étiquette de l'application.",
|
||||||
"additional_urls_already_removed": "URL supplémentaire '{url:s}' déjà supprimées pour la permission '{permission:s}'",
|
"additional_urls_already_removed": "URL supplémentaire '{url:s}' déjà supprimées pour la permission '{permission:s}'",
|
||||||
"migration_0019_rollback_success": "Retour à l'état antérieur du système.",
|
|
||||||
"invalid_number": "Doit être un nombre",
|
"invalid_number": "Doit être un nombre",
|
||||||
"migration_description_0019_extend_permissions_features": "Étendre et retravailler le système de gestion des permissions applicatives",
|
"migration_description_0019_extend_permissions_features": "Étendre et retravailler le système de gestion des permissions applicatives",
|
||||||
"diagnosis_basesystem_hardware_model": "Le modèle du serveur est {model}",
|
"diagnosis_basesystem_hardware_model": "Le modèle du serveur est {model}",
|
||||||
"diagnosis_backports_in_sources_list": "Il semble qu'apt (le gestionnaire de paquets) soit configuré pour utiliser le dépôt des rétroportages (backports). A moins que vous ne sachiez vraiment ce que vous faites, nous vous déconseillons fortement d'installer des paquets provenant des rétroportages, car cela risque de créer des instabilités ou des conflits sur votre système.",
|
"diagnosis_backports_in_sources_list": "Il semble qu'apt (le gestionnaire de paquets) soit configuré pour utiliser le dépôt des rétroportages (backports). A moins que vous ne sachiez vraiment ce que vous faites, nous vous déconseillons fortement d'installer des paquets provenant des rétroportages, car cela risque de créer des instabilités ou des conflits sur votre système.",
|
||||||
"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 les 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}. Ça peut suffire, mais faites attention car vous risquez de les remplire 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."
|
||||||
}
|
}
|
136
locales/gl.json
Normal file
136
locales/gl.json
Normal file
|
@ -0,0 +1,136 @@
|
||||||
|
{
|
||||||
|
"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",
|
||||||
|
"certmanager_domain_cert_not_selfsigned": "O certificado para o dominio {domain:s} non está auto-asinado. Tes a certeza de querer substituílo? (Usa '--force' para facelo.)",
|
||||||
|
"certmanager_domain_not_diagnosed_yet": "Por agora non hai resultado de diagnóstico para o dominio {domain}. Volve facer o diagnóstico para a categoría 'Rexistros DNS' e 'Web' na sección de diagnóstico para comprobar se o dominio é compatible con Let's Encrypt. (Ou se sabes o que estás a facer, usa '--no-checks' para desactivar esas comprobacións.)",
|
||||||
|
"certmanager_certificate_fetching_or_enabling_failed": "Fallou o intento de usar o novo certificado para '{domain:s}'...",
|
||||||
|
"certmanager_cert_signing_failed": "Non se puido asinar o novo certificado",
|
||||||
|
"certmanager_cert_renew_success": "Certificado Let's Encrypt renovado para o dominio '{domain:s}'",
|
||||||
|
"certmanager_cert_install_success_selfsigned": "O certificado auto-asinado está instalado para o dominio '{domain:s}'",
|
||||||
|
"certmanager_cert_install_success": "O certificado Let's Encrypt está instalado para o dominio '{domain:s}'",
|
||||||
|
"certmanager_cannot_read_cert": "Algo fallou ao intentar abrir o certificado actual para o dominio {domain:s} (ficheiro: {file:s}), razón: {reason:s}",
|
||||||
|
"certmanager_attempt_to_replace_valid_cert": "Estás intentando sobrescribir un certificado correcto e en bo estado para o dominio {domain:s}! (Usa --force para obviar)",
|
||||||
|
"certmanager_attempt_to_renew_valid_cert": "O certificado para o dominio '{domain:s}' non caduca pronto! (Podes usar --force se sabes o que estás a facer)",
|
||||||
|
"certmanager_attempt_to_renew_nonLE_cert": "O certificado para o dominio '{domain:s}' non está proporcionado por Let's Encrypt. Non se pode renovar automáticamente!",
|
||||||
|
"certmanager_acme_not_configured_for_domain": "Non se realizou o desafío ACME para {domain} porque a súa configuración nginx non ten a parte do código correspondente... Comproba que a túa configuración nginx está ao día utilizando `yunohost tools regen-conf nginx --dry-run --with-diff`.",
|
||||||
|
"backup_with_no_restore_script_for_app": "'{app:s}' non ten script de restablecemento, non poderás restablecer automáticamente a copia de apoio desta app.",
|
||||||
|
"backup_with_no_backup_script_for_app": "A app '{app:s}' non ten script para a copia. Ignorada.",
|
||||||
|
"backup_unable_to_organize_files": "Non se puido usar o método rápido para organizar ficheiros no arquivo",
|
||||||
|
"backup_system_part_failed": "Non se puido facer copia da parte do sistema '{part:s}'"
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue