Merge branch 'dev' into rework-authenticator-system

This commit is contained in:
Alexandre Aubin 2021-08-22 22:33:33 +02:00
commit fa509e6c2e
36 changed files with 488 additions and 395 deletions

48
.github/workflows/tox.yml vendored Normal file
View file

@ -0,0 +1,48 @@
name: Run tests for Moulinette
on:
push:
branches:
- dev
pull_request:
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.7]
steps:
- uses: actions/checkout@v1
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install apt dependencies
run: sudo apt install ldap-utils slapd libsasl2-dev libldap2-dev libssl-dev
- name: Install tox
run: |
python -m pip install --upgrade pip
pip install tox tox-gh-actions
- name: Test with tox
run: tox -e py37-pytest
lint:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.7]
steps:
- uses: actions/checkout@v1
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install apt dependencies
run: sudo apt install ldap-utils slapd libsasl2-dev libldap2-dev libssl-dev
- name: Install tox
run: |
python -m pip install --upgrade pip
pip install tox tox-gh-actions
- name: Linter
run: tox -e py37-lint

View file

@ -1,18 +0,0 @@
language: python
matrix:
include:
- python: 3.7
env: TOXENV=py37-pytest
- python: 3.7
env: TOXENV=py37-lint
- python: 3.7
env: TOXENV=format-check
- python: 3.7
env: TOXENV=docs
install:
- pip install tox
script:
- tox

View file

@ -1,6 +1,5 @@
{ {
"argument_required": "المُعامِل '{argument}' مطلوب", "argument_required": "المُعامِل '{argument}' مطلوب",
"authentication_profile_required": "المصادقة مع الملف الشخصي '{profile}' مطلوبة",
"authentication_required": "المصادقة مطلوبة", "authentication_required": "المصادقة مطلوبة",
"authentication_required_long": "المصادقة مطلوبة قبل القيام بهذا الإجراء", "authentication_required_long": "المصادقة مطلوبة قبل القيام بهذا الإجراء",
"colon": "{}: ", "colon": "{}: ",
@ -8,11 +7,8 @@
"deprecated_command": "'{prog} {command}' تم التخلي عنه و سوف تتم إزالته مستقبلا", "deprecated_command": "'{prog} {command}' تم التخلي عنه و سوف تتم إزالته مستقبلا",
"deprecated_command_alias": "'{prog} {old}' تم التخلي عنه و سوف يتم إزالته مستقبلا، إستخدم '{prog} {new}' بدلا من ذلك", "deprecated_command_alias": "'{prog} {old}' تم التخلي عنه و سوف يتم إزالته مستقبلا، إستخدم '{prog} {new}' بدلا من ذلك",
"error": "خطأ :", "error": "خطأ :",
"error_see_log": "طرأ هناك خطأ. يرجى الإطلاع على السجلات للمزيد مِن التفاصيل على المسار /var/log/yunohost/.",
"file_exists": "إنّ الملف موجود من قبل : '{path}'",
"file_not_exist": "الملف غير موجود : '{path}'", "file_not_exist": "الملف غير موجود : '{path}'",
"folder_exists": "إنّ المجلد موجود من قبل : '{path}'", "folder_exists": "إنّ المجلد موجود من قبل : '{path}'",
"folder_not_exist": "المجلد غير موجود",
"instance_already_running": "هناك بالفعل عملية YunoHost جارية. الرجاء الانتظار حتى ينتهي الأمر قبل تشغيل آخر.", "instance_already_running": "هناك بالفعل عملية YunoHost جارية. الرجاء الانتظار حتى ينتهي الأمر قبل تشغيل آخر.",
"invalid_argument": "المُعامِل غير صالح '{argument}': {error}", "invalid_argument": "المُعامِل غير صالح '{argument}': {error}",
"invalid_password": "كلمة السر خاطئة", "invalid_password": "كلمة السر خاطئة",
@ -25,7 +21,6 @@
"operation_interrupted": "تم توقيف العملية", "operation_interrupted": "تم توقيف العملية",
"password": "كلمة السر", "password": "كلمة السر",
"pattern_not_match": "لا يتطابق مع النموذج", "pattern_not_match": "لا يتطابق مع النموذج",
"permission_denied": "رُفض التصريح",
"root_required": "يتوجب عليك أن تكون مدير الجذر root للقيام بهذا الإجراء", "root_required": "يتوجب عليك أن تكون مدير الجذر root للقيام بهذا الإجراء",
"server_already_running": "هناك خادم يشتغل على ذاك المنفذ", "server_already_running": "هناك خادم يشتغل على ذاك المنفذ",
"success": "تم بنجاح !", "success": "تم بنجاح !",
@ -36,20 +31,19 @@
"values_mismatch": "القيمتين غير متطابقتين", "values_mismatch": "القيمتين غير متطابقتين",
"warning": "تحذير :", "warning": "تحذير :",
"websocket_request_expected": "كان ينتظر طلبًا عبر الويب سوكت WebSocket", "websocket_request_expected": "كان ينتظر طلبًا عبر الويب سوكت WebSocket",
"cannot_open_file": "ليس بالإمكان فتح الملف {file:s} (السبب : {error:s})", "cannot_open_file": "ليس بالإمكان فتح الملف {file} (السبب : {error})",
"cannot_write_file": "لا يمكن الكتابة في الملف {file:s} (السبب : {error:s})", "cannot_write_file": "لا يمكن الكتابة في الملف {file} (السبب : {error})",
"unknown_error_reading_file": "طرأ هناك خطأ ما أثناء عملية قراءة الملف {file:s} (السبب: {error:s})", "unknown_error_reading_file": "طرأ هناك خطأ ما أثناء عملية قراءة الملف {file} (السبب: {error})",
"corrupted_json": "قراءة json مُشوّهة مِن {ressource:s} (السبب : {error:s})", "corrupted_json": "قراءة json مُشوّهة مِن {ressource} (السبب : {error})",
"error_writing_file": "طرأ هناك خطأ أثناء الكتابة في الملف {file:s}: {error:s}", "error_writing_file": "طرأ هناك خطأ أثناء الكتابة في الملف {file}: {error}",
"error_removing": "خطأ أثناء عملية حذف {path:s}: {error:s}", "error_removing": "خطأ أثناء عملية حذف {path}: {error}",
"error_changing_file_permissions": "خطأ أثناء عملية تعديل التصريحات لـ {path:s}: {error:s}", "error_changing_file_permissions": "خطأ أثناء عملية تعديل التصريحات لـ {path}: {error}",
"invalid_url": "خطأ في عنوان الرابط {url:s} (هل هذا الموقع موجود حقًا ؟)", "invalid_url": "خطأ في عنوان الرابط {url} (هل هذا الموقع موجود حقًا ؟)",
"download_ssl_error": "خطأ في الاتصال الآمن عبر الـ SSL أثناء محاولة الربط بـ {url:s}", "download_ssl_error": "خطأ في الاتصال الآمن عبر الـ SSL أثناء محاولة الربط بـ {url}",
"download_timeout": "{url:s} استغرق مدة طويلة جدا للإستجابة، فتوقّف.", "download_timeout": "{url} استغرق مدة طويلة جدا للإستجابة، فتوقّف.",
"download_unknown_error": "خطأ أثناء عملية تنزيل البيانات مِن {url:s} : {error:s}", "download_unknown_error": "خطأ أثناء عملية تنزيل البيانات مِن {url} : {error}",
"download_bad_status_code": "{url:s} أعاد رمز الحالة {code:s}", "download_bad_status_code": "{url} أعاد رمز الحالة {code}",
"command_unknown": "الأمر '{command:s}' مجهول؟", "corrupted_yaml": "قراءة مُشوّهة لنسق yaml مِن {ressource} (السبب : {error})",
"corrupted_yaml": "قراءة مُشوّهة لنسق yaml مِن {ressource:s} (السبب : {error:s})",
"info": "معلومة:", "info": "معلومة:",
"warn_the_user_about_waiting_lock_again": "جارٍ الانتظار…", "warn_the_user_about_waiting_lock_again": "جارٍ الانتظار…",
"warn_the_user_that_lock_is_acquired": "لقد انتهى تنفيذ ذاك الأمر للتوّ ، جارٍ تنفيذ هذا الأمر", "warn_the_user_that_lock_is_acquired": "لقد انتهى تنفيذ ذاك الأمر للتوّ ، جارٍ تنفيذ هذا الأمر",

View file

@ -1,6 +1,5 @@
{ {
"argument_required": "Es requereix l'argument {argument}", "argument_required": "Es requereix l'argument {argument}",
"authentication_profile_required": "Autenticació requerida al perfil {profile}",
"authentication_required": "Es requereix autenticació", "authentication_required": "Es requereix autenticació",
"authentication_required_long": "Es requereix autenticació per realitzar aquesta tasca", "authentication_required_long": "Es requereix autenticació per realitzar aquesta tasca",
"colon": "{}: ", "colon": "{}: ",
@ -8,11 +7,8 @@
"deprecated_command": "{prog}{command}és obsolet i es desinstal·larà en el futur", "deprecated_command": "{prog}{command}és obsolet i es desinstal·larà en el futur",
"deprecated_command_alias": "{prog}{old}és obsolet i es desinstal·larà en el futur, utilitzeu {prog}{new}en el seu lloc", "deprecated_command_alias": "{prog}{old}és obsolet i es desinstal·larà en el futur, utilitzeu {prog}{new}en el seu lloc",
"error": "Error:", "error": "Error:",
"error_see_log": "Hi ha hagut un error. Si us plau verifiqueu el registre per a més informació, són a /var/log/yunohost/.",
"file_exists": "El fitxer ja existeix: '{path}'",
"file_not_exist": "El fitxer no existeix: '{path}'", "file_not_exist": "El fitxer no existeix: '{path}'",
"folder_exists": "La carpeta ja existeix: '{path}'", "folder_exists": "La carpeta ja existeix: '{path}'",
"folder_not_exist": "La carpeta no existeix",
"instance_already_running": "Ja hi ha una operació de YunoHost en curs. Espereu a que s'acabi abans d'executar-ne una altra.", "instance_already_running": "Ja hi ha una operació de YunoHost en curs. Espereu a que s'acabi abans d'executar-ne una altra.",
"invalid_argument": "Argument invàlid '{argument}': {error}", "invalid_argument": "Argument invàlid '{argument}': {error}",
"invalid_password": "Contrasenya invàlida", "invalid_password": "Contrasenya invàlida",
@ -25,7 +21,6 @@
"operation_interrupted": "Operació interrompuda", "operation_interrupted": "Operació interrompuda",
"password": "Contrasenya", "password": "Contrasenya",
"pattern_not_match": "No coincideix amb el patró", "pattern_not_match": "No coincideix amb el patró",
"permission_denied": "Permís denegat",
"root_required": "Ha de ser root per realitzar aquesta acció", "root_required": "Ha de ser root per realitzar aquesta acció",
"server_already_running": "Ja s'està executant un servidor en aquest port", "server_already_running": "Ja s'està executant un servidor en aquest port",
"success": "Èxit!", "success": "Èxit!",
@ -36,22 +31,21 @@
"values_mismatch": "Els valors no coincideixen", "values_mismatch": "Els valors no coincideixen",
"warning": "Atenció:", "warning": "Atenció:",
"websocket_request_expected": "S'esperava una petició WebSocket", "websocket_request_expected": "S'esperava una petició WebSocket",
"cannot_open_file": "No s'ha pogut obrir el fitxer {file:s} (motiu: {error:s})", "cannot_open_file": "No s'ha pogut obrir el fitxer {file} (motiu: {error})",
"cannot_write_file": "No s'ha pogut escriure el fitxer {file:s} (motiu: {error:s})", "cannot_write_file": "No s'ha pogut escriure el fitxer {file} (motiu: {error})",
"unknown_error_reading_file": "Error desconegut al intentar llegir el fitxer {file:s} (motiu: {error:s})", "unknown_error_reading_file": "Error desconegut al intentar llegir el fitxer {file} (motiu: {error})",
"corrupted_json": "JSON corrupte llegit des de {ressource:s} (motiu: {error:s})", "corrupted_json": "JSON corrupte llegit des de {ressource} (motiu: {error})",
"corrupted_yaml": "YAML corrupte llegit des de {ressource:s} (motiu: {error:s})", "corrupted_yaml": "YAML corrupte llegit des de {ressource} (motiu: {error})",
"error_writing_file": "Error al escriure el fitxer {file:s}: {error:s}", "error_writing_file": "Error al escriure el fitxer {file}: {error}",
"error_removing": "Error al eliminar {path:s}: {error:s}", "error_removing": "Error al eliminar {path}: {error}",
"error_changing_file_permissions": "Error al canviar els permisos per {path:s}: {error:s}", "error_changing_file_permissions": "Error al canviar els permisos per {path}: {error}",
"invalid_url": "URL invàlid {url:s} (el lloc web existeix?)", "invalid_url": "URL invàlid {url} (el lloc web existeix?)",
"download_ssl_error": "Error SSL al connectar amb {url:s}", "download_ssl_error": "Error SSL al connectar amb {url}",
"download_timeout": "{url:s} ha tardat massa en respondre, s'ha deixat d'esperar.", "download_timeout": "{url} ha tardat massa en respondre, s'ha deixat d'esperar.",
"download_unknown_error": "Error al baixar dades des de {url:s}: {error:s}", "download_unknown_error": "Error al baixar dades des de {url}: {error}",
"download_bad_status_code": "{url:s} ha retornat el codi d'estat {code:s}", "download_bad_status_code": "{url} ha retornat el codi d'estat {code}",
"command_unknown": "Ordre '{command:s}' desconegut?",
"info": "Info:", "info": "Info:",
"corrupted_toml": "El fitxer TOML ha estat corromput en la lectura des de {ressource:s} (motiu: {error:s})", "corrupted_toml": "El fitxer TOML ha estat corromput en la lectura des de {ressource} (motiu: {error})",
"warn_the_user_about_waiting_lock": "Hi ha una altra ordre de YunoHost en execució, s'executarà aquesta ordre un cop l'anterior hagi acabat", "warn_the_user_about_waiting_lock": "Hi ha una altra ordre de YunoHost en execució, s'executarà aquesta ordre un cop l'anterior hagi acabat",
"warn_the_user_about_waiting_lock_again": "Encara en espera…", "warn_the_user_about_waiting_lock_again": "Encara en espera…",
"warn_the_user_that_lock_is_acquired": "L'altra ordre tot just ha acabat, ara s'executarà aquesta ordre", "warn_the_user_that_lock_is_acquired": "L'altra ordre tot just ha acabat, ara s'executarà aquesta ordre",

View file

@ -1,6 +1,5 @@
{ {
"argument_required": "参数“{argument}”是必须的", "argument_required": "参数“{argument}”是必须的",
"authentication_profile_required": "必须验证配置文件{profile}",
"authentication_required": "需要验证", "authentication_required": "需要验证",
"authentication_required_long": "此操作需要验证", "authentication_required_long": "此操作需要验证",
"colon": "{} ", "colon": "{} ",
@ -8,11 +7,8 @@
"deprecated_command": "{prog}{command}已经放弃使用,将来会删除", "deprecated_command": "{prog}{command}已经放弃使用,将来会删除",
"deprecated_command_alias": "{prog}{old}已经放弃使用,将来会删除,请使用{prog}{new}代替", "deprecated_command_alias": "{prog}{old}已经放弃使用,将来会删除,请使用{prog}{new}代替",
"error": "错误:", "error": "错误:",
"error_see_log": "发生错误。请参看日志文件获取错误详情,日志文件位于 /var/log/yunohost/。",
"file_exists": "文件已存在: '{path}'",
"file_not_exist": "文件不存在: '{path}'", "file_not_exist": "文件不存在: '{path}'",
"folder_exists": "目录已存在: '{path}'", "folder_exists": "目录已存在: '{path}'",
"folder_not_exist": "目录不存在",
"info": "信息:", "info": "信息:",
"instance_already_running": "已经有一个YunoHost操作正在运行。 请等待它完成再运行另一个。", "instance_already_running": "已经有一个YunoHost操作正在运行。 请等待它完成再运行另一个。",
"invalid_argument": "参数错误{argument}{error}", "invalid_argument": "参数错误{argument}{error}",
@ -36,20 +32,19 @@
"values_mismatch": "值不匹配", "values_mismatch": "值不匹配",
"warning": "警告:", "warning": "警告:",
"websocket_request_expected": "期望一个WebSocket请求", "websocket_request_expected": "期望一个WebSocket请求",
"cannot_open_file": "不能打开文件{file:s}(原因:{error:s}", "cannot_open_file": "不能打开文件{file}(原因:{error}",
"cannot_write_file": "写入文件{file:s}失败(原因:{error:s}", "cannot_write_file": "写入文件{file}失败(原因:{error}",
"unknown_error_reading_file": "尝试读取文件{file:s}时发生未知错误(原因:{error:s}", "unknown_error_reading_file": "尝试读取文件{file}时发生未知错误(原因:{error}",
"corrupted_json": "从{ressource:s}读取的JSON损坏原因{error:s}", "corrupted_json": "从{ressource}读取的JSON损坏原因{error}",
"corrupted_yaml": "从{ressource:s}读取的YMAL损坏原因{error:s}", "corrupted_yaml": "从{ressource}读取的YMAL损坏原因{error}",
"error_writing_file": "写入文件{file:s}失败:{error:s}", "error_writing_file": "写入文件{file}失败:{error}",
"error_removing": "删除路径{path:s}失败:{error:s}", "error_removing": "删除路径{path}失败:{error}",
"error_changing_file_permissions": "目录{path:s}权限修改失败:{error:s}", "error_changing_file_permissions": "目录{path}权限修改失败:{error}",
"invalid_url": "URL{url:s}无效site是否存在", "invalid_url": "URL{url}无效site是否存在",
"download_ssl_error": "连接{url:s}时发生SSL错误", "download_ssl_error": "连接{url}时发生SSL错误",
"download_timeout": "{url:s}响应超时,放弃。", "download_timeout": "{url}响应超时,放弃。",
"download_unknown_error": "下载{url:s}失败:{error:s}", "download_unknown_error": "下载{url}失败:{error}",
"download_bad_status_code": "{url:s}返回状态码:{code:s}", "download_bad_status_code": "{url}返回状态码:{code}",
"command_unknown": "命令'{command:s}'未知?",
"warn_the_user_that_lock_is_acquired": "另一个命令刚刚完成,现在启动此命令", "warn_the_user_that_lock_is_acquired": "另一个命令刚刚完成,现在启动此命令",
"warn_the_user_about_waiting_lock_again": "还在等...", "warn_the_user_about_waiting_lock_again": "还在等...",
"warn_the_user_about_waiting_lock": "目前正在运行另一个YunoHost命令我们在运行此命令之前等待它完成", "warn_the_user_about_waiting_lock": "目前正在运行另一个YunoHost命令我们在运行此命令之前等待它完成",

View file

@ -5,21 +5,20 @@
"warn_the_user_that_lock_is_acquired": "Předchozí operace dokončena, nyní spouštíme tuto", "warn_the_user_that_lock_is_acquired": "Předchozí operace dokončena, nyní spouštíme tuto",
"warn_the_user_about_waiting_lock_again": "Stále čekáme...", "warn_the_user_about_waiting_lock_again": "Stále čekáme...",
"warn_the_user_about_waiting_lock": "Jiná YunoHost operace právě probíhá, před spuštěním této čekáme na její dokončení", "warn_the_user_about_waiting_lock": "Jiná YunoHost operace právě probíhá, před spuštěním této čekáme na její dokončení",
"command_unknown": "Příkaz '{command:s}' neznámý?", "download_bad_status_code": "{url} vrátil stavový kód {code}",
"download_bad_status_code": "{url:s} vrátil stavový kód {code:s}", "download_unknown_error": "Chyba při stahování dat z {url}: {error}",
"download_unknown_error": "Chyba při stahování dat z {url:s}: {error:s}", "download_timeout": "{url} příliš dlouho neodpovídá, akce přerušena.",
"download_timeout": "{url:s} příliš dlouho neodpovídá, akce přerušena.", "download_ssl_error": "SSL chyba při spojení s {url}",
"download_ssl_error": "SSL chyba při spojení s {url:s}", "invalid_url": "Špatný odkaz {url} (je vůbec dostupný?)",
"invalid_url": "Špatný odkaz {url:s} (je vůbec dostupný?)", "error_changing_file_permissions": "Chyba při nastavování oprávnění pro {path}: {error}",
"error_changing_file_permissions": "Chyba při nastavování oprávnění pro {path:s}: {error:s}", "error_removing": "Chyba při přesunu {path}: {error}",
"error_removing": "Chyba při přesunu {path:s}: {error:s}", "error_writing_file": "Chyba při zápisu souboru/ů {file}: {error}",
"error_writing_file": "Chyba při zápisu souboru/ů {file:s}: {error:s}", "corrupted_toml": "Nepodařilo se načíst TOML z {ressource} (reason: {error})",
"corrupted_toml": "Nepodařilo se načíst TOML z {ressource:s} (reason: {error:s})", "corrupted_yaml": "Nepodařilo se načíst YAML z {ressource} (reason: {error})",
"corrupted_yaml": "Nepodařilo se načíst YAML z {ressource:s} (reason: {error:s})", "corrupted_json": "Nepodařilo se načíst JSON {ressource} (reason: {error})",
"corrupted_json": "Nepodařilo se načíst JSON {ressource:s} (reason: {error:s})", "unknown_error_reading_file": "Vyskytla se neznámá chyba při čtení souboru/ů {file} (reason: {error})",
"unknown_error_reading_file": "Vyskytla se neznámá chyba při čtení souboru/ů {file:s} (reason: {error:s})", "cannot_write_file": "Nelze zapsat soubor/y {file} (reason: {error})",
"cannot_write_file": "Nelze zapsat soubor/y {file:s} (reason: {error:s})", "cannot_open_file": "Nelze otevřít soubor/y {file} (reason: {error})",
"cannot_open_file": "Nelze otevřít soubor/y {file:s} (reason: {error:s})",
"websocket_request_expected": "Očekáván WebSocket požadavek", "websocket_request_expected": "Očekáván WebSocket požadavek",
"warning": "Varování:", "warning": "Varování:",
"values_mismatch": "Hodnoty nesouhlasí", "values_mismatch": "Hodnoty nesouhlasí",
@ -43,10 +42,8 @@
"invalid_argument": "Nesprávný argument '{argument}': {error}", "invalid_argument": "Nesprávný argument '{argument}': {error}",
"instance_already_running": "Právě probíhá jiná YunoHost operace. Před spuštěním další operace vyčkejte na její dokončení.", "instance_already_running": "Právě probíhá jiná YunoHost operace. Před spuštěním další operace vyčkejte na její dokončení.",
"info": "Info:", "info": "Info:",
"folder_not_exist": "Adresář neexistuje",
"folder_exists": "Adresář již existuje: '{path}'", "folder_exists": "Adresář již existuje: '{path}'",
"file_not_exist": "Soubor neexistuje: '{path}'", "file_not_exist": "Soubor neexistuje: '{path}'",
"file_exists": "Soubor již existuje: '{path}'",
"error": "Chyba:", "error": "Chyba:",
"deprecated_command_alias": "'{prog} {old}' je zastaralý a bude odebrán v budoucích verzích, použijte '{prog} {new}'", "deprecated_command_alias": "'{prog} {old}' je zastaralý a bude odebrán v budoucích verzích, použijte '{prog} {new}'",
"deprecated_command": "'{prog} {command}' je zastaralý a bude odebrán v budoucích verzích", "deprecated_command": "'{prog} {command}' je zastaralý a bude odebrán v budoucích verzích",

View file

@ -1,16 +1,12 @@
{ {
"argument_required": "Der Parameter {argument} ist erforderlich", "argument_required": "Der Parameter {argument} ist erforderlich",
"authentication_profile_required": "Anmeldung als Nutzer '{profile}' wird benötigt",
"authentication_required": "Anmeldung erforderlich", "authentication_required": "Anmeldung erforderlich",
"authentication_required_long": "Bitte erst anmelden um diese Aktion auszuführen", "authentication_required_long": "Bitte erst anmelden um diese Aktion auszuführen",
"colon": "{}: ", "colon": "{}: ",
"confirm": "Bestätige {prompt}", "confirm": "Bestätige {prompt}",
"error": "Fehler:", "error": "Fehler:",
"error_see_log": "Ein Fehler ist aufgetreten. Für Details bitte im Log nachsehen.",
"file_exists": "Datei existiert bereits: '{path}'",
"file_not_exist": "Datei ist nicht vorhanden: '{path}'", "file_not_exist": "Datei ist nicht vorhanden: '{path}'",
"folder_exists": "Ordner existiert bereits: '{path}'", "folder_exists": "Ordner existiert bereits: '{path}'",
"folder_not_exist": "Ordner existiert nicht",
"instance_already_running": "Es läuft bereits eine YunoHost-Operation. Bitte warte, bis sie fertig ist, bevor du eine weitere startest.", "instance_already_running": "Es läuft bereits eine YunoHost-Operation. Bitte warte, bis sie fertig ist, bevor du eine weitere startest.",
"invalid_argument": "Argument ungültig '{argument}': {error}", "invalid_argument": "Argument ungültig '{argument}': {error}",
"invalid_password": "Passwort falsch", "invalid_password": "Passwort falsch",
@ -23,7 +19,6 @@
"operation_interrupted": "Vorgang unterbrochen", "operation_interrupted": "Vorgang unterbrochen",
"password": "Passwort", "password": "Passwort",
"pattern_not_match": "Entspricht nicht dem Muster", "pattern_not_match": "Entspricht nicht dem Muster",
"permission_denied": "Zugriff verweigert",
"root_required": "Nur der Nutzer root kann diesen Vorgang ausführen", "root_required": "Nur der Nutzer root kann diesen Vorgang ausführen",
"server_already_running": "Einen anderer Dienst arbeitet bereits auf diesem Port", "server_already_running": "Einen anderer Dienst arbeitet bereits auf diesem Port",
"success": "Erfolg!", "success": "Erfolg!",
@ -38,24 +33,23 @@
"unknown_user": "Benutzer '{user}' ist unbekannt", "unknown_user": "Benutzer '{user}' ist unbekannt",
"info": "Info:", "info": "Info:",
"invalid_token": "Ungültiger Token - bitte authentifizieren", "invalid_token": "Ungültiger Token - bitte authentifizieren",
"corrupted_json": "Beschädigtes JSON gelesen von {ressource:s} (reason: {error:s})", "corrupted_json": "Beschädigtes JSON gelesen von {ressource} (reason: {error})",
"unknown_error_reading_file": "Unbekannter Fehler beim Lesen der Datei {file:s} (reason: {error:s})", "unknown_error_reading_file": "Unbekannter Fehler beim Lesen der Datei {file} (reason: {error})",
"cannot_write_file": "Kann Datei {file:s} nicht schreiben (reason: {error:s})", "cannot_write_file": "Kann Datei {file} nicht schreiben (reason: {error})",
"cannot_open_file": "Datei {file:s} konnte nicht geöffnet werden (Ursache: {error:s})", "cannot_open_file": "Datei {file} konnte nicht geöffnet werden (Ursache: {error})",
"corrupted_yaml": "Beschädigtes YAML gelesen von {ressource:s} (reason: {error:s})", "corrupted_yaml": "Beschädigtes YAML gelesen von {ressource} (reason: {error})",
"warn_the_user_that_lock_is_acquired": "Der andere Befehl wurde gerade abgeschlossen, starte jetzt diesen Befehl", "warn_the_user_that_lock_is_acquired": "Der andere Befehl wurde gerade abgeschlossen, starte jetzt diesen Befehl",
"warn_the_user_about_waiting_lock_again": "Immer noch wartend...", "warn_the_user_about_waiting_lock_again": "Immer noch wartend...",
"warn_the_user_about_waiting_lock": "Ein anderer YunoHost Befehl läuft gerade, wir warten bis er fertig ist, bevor dieser laufen kann", "warn_the_user_about_waiting_lock": "Ein anderer YunoHost Befehl läuft gerade, wir warten bis er fertig ist, bevor dieser laufen kann",
"command_unknown": "Befehl '{command:s}' unbekannt?", "download_bad_status_code": "{url} lieferte folgende(n) Status Code(s) {code}",
"download_bad_status_code": "{url:s} lieferte folgende(n) Status Code(s) {code:s}", "download_unknown_error": "Fehler beim Herunterladen von Daten von {url}: {error}",
"download_unknown_error": "Fehler beim Herunterladen von Daten von {url:s}: {error:s}", "download_timeout": "{url} brauchte zu lange zum Antworten, hab aufgegeben.",
"download_timeout": "{url:s} brauchte zu lange zum Antworten, hab aufgegeben.", "download_ssl_error": "SSL Fehler beim Verbinden zu {url}",
"download_ssl_error": "SSL Fehler beim Verbinden zu {url:s}", "invalid_url": "Ungültige URL {url} (existiert diese Seite?)",
"invalid_url": "Ungültige URL {url:s} (existiert diese Seite?)", "error_changing_file_permissions": "Fehler beim Ändern der Berechtigungen für {path}: {error}",
"error_changing_file_permissions": "Fehler beim Ändern der Berechtigungen für {path:s}: {error:s}", "error_removing": "Fehler beim Entfernen {path}: {error}",
"error_removing": "Fehler beim Entfernen {path:s}: {error:s}", "error_writing_file": "Fehler beim Schreiben von Datei {file}: {error}",
"error_writing_file": "Fehler beim Schreiben von Datei {file:s}: {error:s}", "corrupted_toml": "Beschädigtes TOML gelesen von {ressource} (reason: {error})",
"corrupted_toml": "Beschädigtes TOML gelesen von {ressource:s} (reason: {error:s})",
"ldap_server_is_down_restart_it": "Der LDAP-Dienst wurde angehalten. Es wird versucht, ihn erneut zu starten...", "ldap_server_is_down_restart_it": "Der LDAP-Dienst wurde angehalten. Es wird versucht, ihn erneut zu starten...",
"session_expired": "Die Sitzung ist abgelaufen. Bitte authentifizieren Sie sich neu ." "session_expired": "Die Sitzung ist abgelaufen. Bitte authentifizieren Sie sich neu ."
} }

View file

@ -6,10 +6,8 @@
"deprecated_command": "'{prog} {command}' is deprecated and will be removed in the future", "deprecated_command": "'{prog} {command}' is deprecated and will be removed in the future",
"deprecated_command_alias": "'{prog} {old}' is deprecated and will be removed in the future, use '{prog} {new}' instead", "deprecated_command_alias": "'{prog} {old}' is deprecated and will be removed in the future, use '{prog} {new}' instead",
"error": "Error:", "error": "Error:",
"file_exists": "File already exists: '{path}'",
"file_not_exist": "File does not exist: '{path}'", "file_not_exist": "File does not exist: '{path}'",
"folder_exists": "Folder already exists: '{path}'", "folder_exists": "Folder already exists: '{path}'",
"folder_not_exist": "Folder does not exist",
"info": "Info:", "info": "Info:",
"instance_already_running": "There is already a YunoHost operation running. Please wait for it to finish before running another one.", "instance_already_running": "There is already a YunoHost operation running. Please wait for it to finish before running another one.",
"invalid_argument": "Invalid argument '{argument}': {error}", "invalid_argument": "Invalid argument '{argument}': {error}",
@ -34,21 +32,20 @@
"info": "Info:", "info": "Info:",
"warning": "Warning:", "warning": "Warning:",
"websocket_request_expected": "Expected a WebSocket request", "websocket_request_expected": "Expected a WebSocket request",
"cannot_open_file": "Could not open file {file:s} (reason: {error:s})", "cannot_open_file": "Could not open file {file} (reason: {error})",
"cannot_write_file": "Could not write file {file:s} (reason: {error:s})", "cannot_write_file": "Could not write file {file} (reason: {error})",
"unknown_error_reading_file": "Unknown error while trying to read file {file:s} (reason: {error:s})", "unknown_error_reading_file": "Unknown error while trying to read file {file} (reason: {error})",
"corrupted_json": "Corrupted JSON read from {ressource:s} (reason: {error:s})", "corrupted_json": "Corrupted JSON read from {ressource} (reason: {error})",
"corrupted_yaml": "Corrupted YAML read from {ressource:s} (reason: {error:s})", "corrupted_yaml": "Corrupted YAML read from {ressource} (reason: {error})",
"corrupted_toml": "Corrupted TOML read from {ressource:s} (reason: {error:s})", "corrupted_toml": "Corrupted TOML read from {ressource} (reason: {error})",
"error_writing_file": "Error when writing file {file:s}: {error:s}", "error_writing_file": "Error when writing file {file}: {error}",
"error_removing": "Error when removing {path:s}: {error:s}", "error_removing": "Error when removing {path}: {error}",
"error_changing_file_permissions": "Error when changing permissions for {path:s}: {error:s}", "error_changing_file_permissions": "Error when changing permissions for {path}: {error}",
"invalid_url": "Invalid URL {url:s} (does this site exists?)", "invalid_url": "Failed to connect to {url} ... maybe the service is down, or you are not properly connected to the Internet in IPv4/IPv6.",
"download_ssl_error": "SSL error when connecting to {url:s}", "download_ssl_error": "SSL error when connecting to {url}",
"download_timeout": "{url:s} took too long to answer, gave up.", "download_timeout": "{url} took too long to answer, gave up.",
"download_unknown_error": "Error when downloading data from {url:s}: {error:s}", "download_unknown_error": "Error when downloading data from {url}: {error}",
"download_bad_status_code": "{url:s} returned status code {code:s}", "download_bad_status_code": "{url} returned status code {code}",
"command_unknown": "Command '{command:s}' unknown?",
"warn_the_user_about_waiting_lock": "Another YunoHost command is running right now, we are waiting for it to finish before running this one", "warn_the_user_about_waiting_lock": "Another YunoHost command is running right now, we are waiting for it to finish before running this one",
"warn_the_user_about_waiting_lock_again": "Still waiting...", "warn_the_user_about_waiting_lock_again": "Still waiting...",
"warn_the_user_that_lock_is_acquired": "The other command just completed, now starting this command" "warn_the_user_that_lock_is_acquired": "The other command just completed, now starting this command"

View file

@ -4,20 +4,19 @@
"warn_the_user_that_lock_is_acquired": "La alia komando ĵus kompletigis, nun komencante ĉi tiun komandon", "warn_the_user_that_lock_is_acquired": "La alia komando ĵus kompletigis, nun komencante ĉi tiun komandon",
"warn_the_user_about_waiting_lock_again": "Ankoraŭ atendanta...", "warn_the_user_about_waiting_lock_again": "Ankoraŭ atendanta...",
"warn_the_user_about_waiting_lock": "Alia komando de YunoHost funkcias ĝuste nun, ni atendas, ke ĝi finiĝos antaŭ ol funkcii ĉi tiu", "warn_the_user_about_waiting_lock": "Alia komando de YunoHost funkcias ĝuste nun, ni atendas, ke ĝi finiĝos antaŭ ol funkcii ĉi tiu",
"command_unknown": "Komando '{command:s}' nekonata?", "download_bad_status_code": "{url} redonita statuskodo {code}",
"download_bad_status_code": "{url:s} redonita statuskodo {code:s}", "download_unknown_error": "Eraro dum elŝutado de datumoj de {url}: {error}",
"download_unknown_error": "Eraro dum elŝutado de datumoj de {url:s}: {error:s}", "download_timeout": "{url} prenis tro da tempo por respondi, rezignis.",
"download_timeout": "{url:s} prenis tro da tempo por respondi, rezignis.", "download_ssl_error": "SSL-eraro dum konekto al {url}",
"download_ssl_error": "SSL-eraro dum konekto al {url:s}", "invalid_url": "Nevalida URL{url} (ĉu ĉi tiu retejo ekzistas?)",
"invalid_url": "Nevalida URL{url:s} (ĉu ĉi tiu retejo ekzistas?)", "error_changing_file_permissions": "Eraro dum ŝanĝo de permesoj por {path}: {error}",
"error_changing_file_permissions": "Eraro dum ŝanĝo de permesoj por {path:s}: {error:s}", "error_removing": "Eraro dum la forigo de {path}: {error}",
"error_removing": "Eraro dum la forigo de {path:s}: {error:s}", "error_writing_file": "Eraro skribinte dosieron {file}: {error}",
"error_writing_file": "Eraro skribinte dosieron {file:s}: {error:s}", "corrupted_toml": "Korupta TOML legita el {ressource} (kialo: {error})",
"corrupted_toml": "Korupta TOML legita el {ressource:s} (kialo: {error:s})", "corrupted_yaml": "Korupta YAML legita de {ressource} (kialo: {error})",
"corrupted_yaml": "Korupta YAML legita de {ressource:s} (kialo: {error:s})", "corrupted_json": "Koruptita JSON legis de {ressource} (Kialo: {error})",
"corrupted_json": "Koruptita JSON legis de {ressource:s} (Kialo: {error:s})", "unknown_error_reading_file": "Nekonata eraro dum provi legi dosieron {file} (kialo: {error})",
"unknown_error_reading_file": "Nekonata eraro dum provi legi dosieron {file:s} (kialo: {error:s})", "cannot_write_file": "Ne povis skribi dosieron {file} (kialo: {error})",
"cannot_write_file": "Ne povis skribi dosieron {file:s} (kialo: {error:s})",
"cannot_open_file": "Ne povis malfermi dosieron {file: s} (kialo: {error: s})", "cannot_open_file": "Ne povis malfermi dosieron {file: s} (kialo: {error: s})",
"websocket_request_expected": "Atendis ret-peto", "websocket_request_expected": "Atendis ret-peto",
"warning": "Averto:", "warning": "Averto:",
@ -40,18 +39,14 @@
"invalid_argument": "Nevalida argumento '{argument}': {error}", "invalid_argument": "Nevalida argumento '{argument}': {error}",
"instance_already_running": "Jam funkcias YunoHost-operacio. Bonvolu atendi, ke ĝi finiĝos antaŭ ol funkcii alia.", "instance_already_running": "Jam funkcias YunoHost-operacio. Bonvolu atendi, ke ĝi finiĝos antaŭ ol funkcii alia.",
"info": "informoj:", "info": "informoj:",
"folder_not_exist": "Dosierujo ne ekzistas",
"folder_exists": "Dosierujo jam ekzistas: '{path}'", "folder_exists": "Dosierujo jam ekzistas: '{path}'",
"file_not_exist": "Dosiero ne ekzistas: '{path}'", "file_not_exist": "Dosiero ne ekzistas: '{path}'",
"file_exists": "Dosiero jam ekzistas: '{path}'",
"error_see_log": "Eraro okazis. Bonvolu vidi la protokolojn por detaloj, ili troviĝas en /var/log/yunohost/.",
"error": "Eraro:", "error": "Eraro:",
"deprecated_command_alias": "'{prog} {old}' malakceptas kaj estos forigita estonte, uzu anstataŭe '{prog} {new}'", "deprecated_command_alias": "'{prog} {old}' malakceptas kaj estos forigita estonte, uzu anstataŭe '{prog} {new}'",
"deprecated_command": "'{prog} {command}' malakceptas kaj estos forigita estonte", "deprecated_command": "'{prog} {command}' malakceptas kaj estos forigita estonte",
"confirm": "Konfirmu {prompt}", "confirm": "Konfirmu {prompt}",
"authentication_required_long": "Aŭtentigo necesas por plenumi ĉi tiun agon", "authentication_required_long": "Aŭtentigo necesas por plenumi ĉi tiun agon",
"authentication_required": "Aŭtentigo bezonata", "authentication_required": "Aŭtentigo bezonata",
"authentication_profile_required": "Aŭtentigo al la profilo '{profile}' bezonata",
"argument_required": "Argumento '{argument}' estas bezonata", "argument_required": "Argumento '{argument}' estas bezonata",
"logged_out": "Ensalutinta", "logged_out": "Ensalutinta",
"invalid_token": "Nevalida tokeno - bonvolu autentiki", "invalid_token": "Nevalida tokeno - bonvolu autentiki",

View file

@ -1,6 +1,5 @@
{ {
"argument_required": "Se requiere el argumento «{argument}»", "argument_required": "Se requiere el argumento «{argument}»",
"authentication_profile_required": "Autentificación requerida para el perfil «{profile}»",
"authentication_required": "Se requiere autentificación", "authentication_required": "Se requiere autentificación",
"authentication_required_long": "Debe autentificarse para realizar esta acción", "authentication_required_long": "Debe autentificarse para realizar esta acción",
"colon": "{}: ", "colon": "{}: ",
@ -8,11 +7,8 @@
"deprecated_command": "«{prog} {command}» está obsoleto y será eliminado en el futuro", "deprecated_command": "«{prog} {command}» está obsoleto y será eliminado en el futuro",
"deprecated_command_alias": "«{prog} {old}» está obsoleto y se eliminará en el futuro, use «{prog} {new}» en su lugar", "deprecated_command_alias": "«{prog} {old}» está obsoleto y se eliminará en el futuro, use «{prog} {new}» en su lugar",
"error": "Error:", "error": "Error:",
"error_see_log": "Ha ocurrido un error. Consulte el registro para obtener más información, localizado en /var/log/yunohost/.",
"file_exists": "El archivo ya existe: «{path}»",
"file_not_exist": "El archivo no existe: «{path}»", "file_not_exist": "El archivo no existe: «{path}»",
"folder_exists": "El directorio ya existe: «{path}»", "folder_exists": "El directorio ya existe: «{path}»",
"folder_not_exist": "La carpeta no existe",
"instance_already_running": "Ya se está ejecutando una instancia de YunoHost. Espere a que termine antes de ejecutar otra.", "instance_already_running": "Ya se está ejecutando una instancia de YunoHost. Espere a que termine antes de ejecutar otra.",
"invalid_argument": "Argumento no válido «{argument}»: {error}", "invalid_argument": "Argumento no válido «{argument}»: {error}",
"invalid_password": "Contraseña no válida", "invalid_password": "Contraseña no válida",
@ -25,7 +21,6 @@
"operation_interrupted": "Operación interrumpida", "operation_interrupted": "Operación interrumpida",
"password": "Contraseña", "password": "Contraseña",
"pattern_not_match": "No coincide con el patrón", "pattern_not_match": "No coincide con el patrón",
"permission_denied": "Permiso denegado",
"root_required": "Solo root puede realizar esta acción", "root_required": "Solo root puede realizar esta acción",
"server_already_running": "Ya se está ejecutando un servidor en ese puerto", "server_already_running": "Ya se está ejecutando un servidor en ese puerto",
"success": "¡Éxito!", "success": "¡Éxito!",
@ -36,22 +31,21 @@
"values_mismatch": "Los valores no coinciden", "values_mismatch": "Los valores no coinciden",
"warning": "Advertencia:", "warning": "Advertencia:",
"websocket_request_expected": "Se esperaba una petición WebSocket", "websocket_request_expected": "Se esperaba una petición WebSocket",
"cannot_open_file": "No se pudo abrir el archivo {file:s} (motivo: {error:s})", "cannot_open_file": "No se pudo abrir el archivo {file} (motivo: {error})",
"cannot_write_file": "No se pudo escribir el archivo {file:s} (motivo: {error:s})", "cannot_write_file": "No se pudo escribir el archivo {file} (motivo: {error})",
"unknown_error_reading_file": "Error desconocido al intentar leer el archivo {file:s} (motivo: {error:s})", "unknown_error_reading_file": "Error desconocido al intentar leer el archivo {file} (motivo: {error})",
"corrupted_json": "Lectura corrupta de JSON desde {ressource:s} (motivo: {error:s})", "corrupted_json": "Lectura corrupta de JSON desde {ressource} (motivo: {error})",
"error_writing_file": "Error al escribir el archivo {file:s}: {error:s}", "error_writing_file": "Error al escribir el archivo {file}: {error}",
"error_removing": "Error al eliminar {path:s}: {error:s}", "error_removing": "Error al eliminar {path}: {error}",
"error_changing_file_permissions": "Error al cambiar los permisos para {path:s}: {error:s}", "error_changing_file_permissions": "Error al cambiar los permisos para {path}: {error}",
"invalid_url": "URL inválida {url:s} (¿Existe este sitio?)", "invalid_url": "URL inválida {url} (¿Existe este sitio?)",
"download_ssl_error": "Error SSL al conectar con {url:s}", "download_ssl_error": "Error SSL al conectar con {url}",
"download_timeout": "{url:s} tardó demasiado en responder, abandono.", "download_timeout": "{url} tardó demasiado en responder, abandono.",
"download_unknown_error": "Error al descargar datos desde {url:s} : {error:s}", "download_unknown_error": "Error al descargar datos desde {url} : {error}",
"download_bad_status_code": "{url:s} devolvió el código de estado {code:s}", "download_bad_status_code": "{url} devolvió el código de estado {code}",
"command_unknown": "¿Orden «{command:s}» desconocida?", "corrupted_yaml": "Lectura corrupta de YAML desde {ressource} (motivo: {error})",
"corrupted_yaml": "Lectura corrupta de YAML desde {ressource:s} (motivo: {error:s})",
"info": "Información:", "info": "Información:",
"corrupted_toml": "Lectura corrupta de TOML desde {ressource:s} (motivo: {error:s})", "corrupted_toml": "Lectura corrupta de TOML desde {ressource} (motivo: {error})",
"warn_the_user_that_lock_is_acquired": "La otra orden recién terminó, iniciando esta orden ahora", "warn_the_user_that_lock_is_acquired": "La otra orden recién terminó, iniciando esta orden ahora",
"warn_the_user_about_waiting_lock_again": "Aún esperando...", "warn_the_user_about_waiting_lock_again": "Aún esperando...",
"warn_the_user_about_waiting_lock": "Otra orden de YunoHost se está ejecutando ahora, estamos esperando a que termine antes de ejecutar esta", "warn_the_user_about_waiting_lock": "Otra orden de YunoHost se está ejecutando ahora, estamos esperando a que termine antes de ejecutar esta",

View file

@ -1,6 +1,5 @@
{ {
"argument_required": "Largument '{argument}' est requis", "argument_required": "Largument '{argument}' est requis",
"authentication_profile_required": "Lauthentification au profil '{profile}' est requise",
"authentication_required": "Authentification requise", "authentication_required": "Authentification requise",
"authentication_required_long": "Lauthentification est requise pour exécuter cette action", "authentication_required_long": "Lauthentification est requise pour exécuter cette action",
"colon": "{} : ", "colon": "{} : ",
@ -8,11 +7,8 @@
"deprecated_command": "'{prog} {command}' est déprécié et sera bientôt supprimé", "deprecated_command": "'{prog} {command}' est déprécié et sera bientôt supprimé",
"deprecated_command_alias": "'{prog} {old}' est déprécié et sera bientôt supprimé, utilisez '{prog} {new}' à la place", "deprecated_command_alias": "'{prog} {old}' est déprécié et sera bientôt supprimé, utilisez '{prog} {new}' à la place",
"error": "Erreur :", "error": "Erreur :",
"error_see_log": "Une erreur est survenue. Veuillez consulter les journaux pour plus de détails, ils sont situés dans /var/log/yunohost/.",
"file_exists": "Le fichier existe déjà : '{path}'",
"file_not_exist": "Le fichier '{path}' nexiste pas", "file_not_exist": "Le fichier '{path}' nexiste pas",
"folder_exists": "Le dossier existe déjà : '{path}'", "folder_exists": "Le dossier existe déjà : '{path}'",
"folder_not_exist": "Le dossier nexiste pas",
"instance_already_running": "Une instance est déjà en cours dexécution, merci d'attendre sa fin avant d'en lancer une autre.", "instance_already_running": "Une instance est déjà en cours dexécution, merci d'attendre sa fin avant d'en lancer une autre.",
"invalid_argument": "Argument '{argument}' incorrect : {error}", "invalid_argument": "Argument '{argument}' incorrect : {error}",
"invalid_password": "Mot de passe incorrect", "invalid_password": "Mot de passe incorrect",
@ -25,7 +21,6 @@
"operation_interrupted": "Opération interrompue", "operation_interrupted": "Opération interrompue",
"password": "Mot de passe", "password": "Mot de passe",
"pattern_not_match": "Ne correspond pas au motif", "pattern_not_match": "Ne correspond pas au motif",
"permission_denied": "Permission refusée",
"root_required": "Vous devez être super-utilisateur pour exécuter cette action", "root_required": "Vous devez être super-utilisateur pour exécuter cette action",
"server_already_running": "Un serveur est déjà en cours dexécution sur ce port", "server_already_running": "Un serveur est déjà en cours dexécution sur ce port",
"success": "Succès !", "success": "Succès !",
@ -36,22 +31,21 @@
"values_mismatch": "Les valeurs ne correspondent pas", "values_mismatch": "Les valeurs ne correspondent pas",
"warning": "Attention :", "warning": "Attention :",
"websocket_request_expected": "Une requête WebSocket est attendue", "websocket_request_expected": "Une requête WebSocket est attendue",
"cannot_open_file": "Impossible douvrir le fichier {file:s} (raison : {error:s})", "cannot_open_file": "Impossible douvrir le fichier {file} (raison : {error})",
"cannot_write_file": "Ne peut pas écrire le fichier {file:s} (raison : {error:s})", "cannot_write_file": "Ne peut pas écrire le fichier {file} (raison : {error})",
"unknown_error_reading_file": "Erreur inconnue en essayant de lire le fichier {file:s} (cause:{error:s})", "unknown_error_reading_file": "Erreur inconnue en essayant de lire le fichier {file} (cause:{error})",
"corrupted_json": "Fichier JSON corrompu en lecture depuis {ressource:s} (raison : {error:s})", "corrupted_json": "Fichier JSON corrompu en lecture depuis {ressource} (raison : {error})",
"error_writing_file": "Erreur en écrivant le fichier {file:s} : {error:s}", "error_writing_file": "Erreur en écrivant le fichier {file} : {error}",
"error_removing": "Erreur lors de la suppression {path:s} : {error:s}", "error_removing": "Erreur lors de la suppression {path} : {error}",
"error_changing_file_permissions": "Erreur lors de la modification des autorisations pour {path:s} : {error:s}", "error_changing_file_permissions": "Erreur lors de la modification des autorisations pour {path} : {error}",
"invalid_url": "URL {url:s} invalide : ce site existe-t-il ?", "invalid_url": "URL {url} invalide : ce site existe-t-il ?",
"download_ssl_error": "Erreur SSL lors de la connexion à {url:s}", "download_ssl_error": "Erreur SSL lors de la connexion à {url}",
"download_timeout": "{url:s} a pris trop de temps pour répondre : abandon.", "download_timeout": "{url} a pris trop de temps pour répondre : abandon.",
"download_unknown_error": "Erreur lors du téléchargement des données à partir de {url:s} : {error:s}", "download_unknown_error": "Erreur lors du téléchargement des données à partir de {url} : {error}",
"download_bad_status_code": "{url:s} renvoie le code d'état {code:s}", "download_bad_status_code": "{url} renvoie le code d'état {code}",
"command_unknown": "Commande '{command:s}' inconnue ?", "corrupted_yaml": "Fichier YAML corrompu en lecture depuis {ressource} (raison : {error})",
"corrupted_yaml": "Fichier YAML corrompu en lecture depuis {ressource:s} (raison : {error:s})",
"info": "Info :", "info": "Info :",
"corrupted_toml": "Fichier TOML corrompu en lecture depuis {ressource:s} (cause : {error:s})", "corrupted_toml": "Fichier TOML corrompu en lecture depuis {ressource} (cause : {error})",
"warn_the_user_about_waiting_lock": "Une autre commande YunoHost est actuellement en cours, nous attendons qu'elle se termine avant de démarrer celle là", "warn_the_user_about_waiting_lock": "Une autre commande YunoHost est actuellement en cours, nous attendons qu'elle se termine avant de démarrer celle là",
"warn_the_user_about_waiting_lock_again": "Toujours en attente...", "warn_the_user_about_waiting_lock_again": "Toujours en attente...",
"warn_the_user_that_lock_is_acquired": "La commande précédente vient de se terminer, lancement de cette nouvelle commande", "warn_the_user_that_lock_is_acquired": "La commande précédente vient de se terminer, lancement de cette nouvelle commande",

View file

@ -6,10 +6,8 @@
"invalid_argument": "Argumento non válido '{argument}': {error}", "invalid_argument": "Argumento non válido '{argument}': {error}",
"instance_already_running": "Hai unha operación de YunoHost en execución. Por favor agarda a que remate antes de realizar unha nova.", "instance_already_running": "Hai unha operación de YunoHost en execución. Por favor agarda a que remate antes de realizar unha nova.",
"info": "Info:", "info": "Info:",
"folder_not_exist": "O cartafol non existe",
"folder_exists": "Xa existe o cartafol: '{path}'", "folder_exists": "Xa existe o cartafol: '{path}'",
"file_not_exist": "Non existe o ficheiro: '{path}'", "file_not_exist": "Non existe o ficheiro: '{path}'",
"file_exists": "Xa existe o ficheiro: '{path}'",
"error": "Erro:", "error": "Erro:",
"deprecated_command_alias": "'{prog} {old}' xa non se utiliza e será eliminado no futuro, usa '{prog} {new}' no seu lugar", "deprecated_command_alias": "'{prog} {old}' xa non se utiliza e será eliminado no futuro, usa '{prog} {new}' no seu lugar",
"deprecated_command": "'{prog} {command}' xa non se utiliza e xa non se usará no futuro", "deprecated_command": "'{prog} {command}' xa non se utiliza e xa non se usará no futuro",
@ -39,20 +37,19 @@
"warn_the_user_that_lock_is_acquired": "O outro comando rematou, agora executarase este", "warn_the_user_that_lock_is_acquired": "O outro comando rematou, agora executarase este",
"warn_the_user_about_waiting_lock_again": "Agardando...", "warn_the_user_about_waiting_lock_again": "Agardando...",
"warn_the_user_about_waiting_lock": "Estase executando outro comando de YunoHost neste intre, estamos agardando a que remate para executar este", "warn_the_user_about_waiting_lock": "Estase executando outro comando de YunoHost neste intre, estamos agardando a que remate para executar este",
"command_unknown": "Comando '{command:s}' descoñecido?", "download_bad_status_code": "{url} devolveu o código de estado {code}",
"download_bad_status_code": "{url:s} devolveu o código de estado {code:s}", "download_unknown_error": "Erro ao descargar os datos desde {url}: {error}",
"download_unknown_error": "Erro ao descargar os datos desde {url:s}: {error:s}", "download_timeout": "{url} está tardando en responder, deixámolo.",
"download_timeout": "{url:s} está tardando en responder, deixámolo.", "download_ssl_error": "Erro SSL ao conectar con {url}",
"download_ssl_error": "Erro SSL ao conectar con {url:s}", "invalid_url": "URL non válido {url} (existe esta web?)",
"invalid_url": "URL non válido {url:s} (existe esta web?)", "error_changing_file_permissions": "Erro ao cambiar os permisos de {path}: {error}",
"error_changing_file_permissions": "Erro ao cambiar os permisos de {path:s}: {error:s}", "error_removing": "Erro ao eliminar {path}: {error}",
"error_removing": "Erro ao eliminar {path:s}: {error:s}", "error_writing_file": "Erro ao escribir o ficheiro {file}: {error}",
"error_writing_file": "Erro ao escribir o ficheiro {file:s}: {error:s}", "corrupted_toml": "Lectura corrupta de datos TOML de {ressource} (razón: {error})",
"corrupted_toml": "Lectura corrupta de datos TOML de {ressource:s} (razón: {error:s})", "corrupted_yaml": "Lectura corrupta dos datos YAML de {ressource} (razón: {error})",
"corrupted_yaml": "Lectura corrupta dos datos YAML de {ressource:s} (razón: {error:s})", "corrupted_json": "Lectura corrupta dos datos JSON de {ressource} (razón: {error})",
"corrupted_json": "Lectura corrupta dos datos JSON de {ressource:s} (razón: {error:s})", "unknown_error_reading_file": "Erro descoñecido ao intentar ler o ficheiro {file} (razón: {error})",
"unknown_error_reading_file": "Erro descoñecido ao intentar ler o ficheiro {file:s} (razón: {error:s})", "cannot_write_file": "Non se puido escribir o ficheiro {file} (razón: {error})",
"cannot_write_file": "Non se puido escribir o ficheiro {file:s} (razón: {error:s})", "cannot_open_file": "Non se puido abrir o ficheiro {file} (razón: {error})",
"cannot_open_file": "Non se puido abrir o ficheiro {file:s} (razón: {error:s})",
"websocket_request_expected": "Agardábase unha solicitude WebSocket" "websocket_request_expected": "Agardábase unha solicitude WebSocket"
} }

View file

@ -1,6 +1,5 @@
{ {
"argument_required": "तर्क '{argument}' आवश्यक है", "argument_required": "तर्क '{argument}' आवश्यक है",
"authentication_profile_required": "{profile} प्रोफ़ाइल के लिए प्रमाणीकरण की आवश्यकता है",
"authentication_required": "प्रमाणीकरण आवश्यक", "authentication_required": "प्रमाणीकरण आवश्यक",
"authentication_required_long": "इस कार्य को करने के लिए प्रमाणीकरण आवश्यक है", "authentication_required_long": "इस कार्य को करने के लिए प्रमाणीकरण आवश्यक है",
"colon": "{}: ", "colon": "{}: ",
@ -8,11 +7,8 @@
"deprecated_command": "'{prog}' '{command}' का प्रयोग न करे, भविष्य में इसे हटा दिया जाएगा", "deprecated_command": "'{prog}' '{command}' का प्रयोग न करे, भविष्य में इसे हटा दिया जाएगा",
"deprecated_command_alias": "'{prog} {old}' अब पुराना हो गया है और इसे भविष्य में हटा दिया जाएगा, इस की जगह '{prog} {new}' का प्रयोग करें", "deprecated_command_alias": "'{prog} {old}' अब पुराना हो गया है और इसे भविष्य में हटा दिया जाएगा, इस की जगह '{prog} {new}' का प्रयोग करें",
"error": "गलती:", "error": "गलती:",
"error_see_log": "एक त्रुटि पाई गई। कृपया विवरण के लिए लॉग देखें।",
"file_exists": "फ़ाइल पहले से ही मौजूद है:'{path}'",
"file_not_exist": "फ़ाइल मौजूद नहीं है: '{path}'", "file_not_exist": "फ़ाइल मौजूद नहीं है: '{path}'",
"folder_exists": "फ़ोल्डर में पहले से ही मौजूद है: '{path}'", "folder_exists": "फ़ोल्डर में पहले से ही मौजूद है: '{path}'",
"folder_not_exist": "फ़ोल्डर मौजूद नहीं है",
"instance_already_running": "यूनोहोस्ट का एक कार्य पहले से चल रहा है। कृपया इस कार्य के समाप्त होने का इंतज़ार करें।", "instance_already_running": "यूनोहोस्ट का एक कार्य पहले से चल रहा है। कृपया इस कार्य के समाप्त होने का इंतज़ार करें।",
"invalid_argument": "अवैध तर्क '{argument}':'{error}'", "invalid_argument": "अवैध तर्क '{argument}':'{error}'",
"invalid_password": "अवैध पासवर्ड", "invalid_password": "अवैध पासवर्ड",
@ -25,7 +21,6 @@
"operation_interrupted": "कार्य बाधित", "operation_interrupted": "कार्य बाधित",
"password": "पासवर्ड", "password": "पासवर्ड",
"pattern_not_match": "पैटर्न मेल नहीं खता है।", "pattern_not_match": "पैटर्न मेल नहीं खता है।",
"permission_denied": "अनुमति से इनकार।",
"root_required": "इस कार्य को करने के लिए ,आप का root होना आवक्षक है।", "root_required": "इस कार्य को करने के लिए ,आप का root होना आवक्षक है।",
"server_already_running": "कोई सर्वर पहले से ही इस पोर्ट पर चल रहा है।", "server_already_running": "कोई सर्वर पहले से ही इस पोर्ट पर चल रहा है।",
"success": "सफलता!", "success": "सफलता!",

View file

@ -1,9 +1,9 @@
{ {
"logged_out": "Kilépett", "logged_out": "Kilépett",
"password": "Jelszó", "password": "Jelszó",
"download_timeout": "{url:s} régóta nem válaszol, folyamat megszakítva.", "download_timeout": "{url} régóta nem válaszol, folyamat megszakítva.",
"invalid_url": "Helytelen URL: {url:s} (biztos létezik az oldal?)", "invalid_url": "Helytelen URL: {url} (biztos létezik az oldal?)",
"cannot_open_file": "{file:s} megnyitása sikertelen (Oka: {error:s})", "cannot_open_file": "{file} megnyitása sikertelen (Oka: {error})",
"unknown_user": "Ismeretlen felhasználó: '{user}'", "unknown_user": "Ismeretlen felhasználó: '{user}'",
"unknown_group": "Ismeretlen csoport: '{group}'", "unknown_group": "Ismeretlen csoport: '{group}'",
"server_already_running": "Egy szerver már fut ezen a porton", "server_already_running": "Egy szerver már fut ezen a porton",
@ -14,6 +14,5 @@
"invalid_password": "Helytelen jelszó", "invalid_password": "Helytelen jelszó",
"info": "Információ:", "info": "Információ:",
"file_not_exist": "A fájl nem létezik: '{path}'", "file_not_exist": "A fájl nem létezik: '{path}'",
"file_exists": "A fájl már létezik: '{path}'",
"error": "Hiba:" "error": "Hiba:"
} }

View file

@ -2,7 +2,6 @@
"logged_out": "Disconnesso", "logged_out": "Disconnesso",
"password": "Password", "password": "Password",
"argument_required": "L'argomento '{argument}' è richiesto", "argument_required": "L'argomento '{argument}' è richiesto",
"authentication_profile_required": "Autenticazione al profilo '{profile}' richiesta",
"authentication_required": "Autenticazione richiesta", "authentication_required": "Autenticazione richiesta",
"authentication_required_long": "Autenticazione richiesta per eseguire questa azione", "authentication_required_long": "Autenticazione richiesta per eseguire questa azione",
"colon": "{}: ", "colon": "{}: ",
@ -10,11 +9,8 @@
"deprecated_command": "'{prog} {command}' è deprecato e sarà rimosso in futuro", "deprecated_command": "'{prog} {command}' è deprecato e sarà rimosso in futuro",
"deprecated_command_alias": "'{prog} {old}' è deprecato e sarà rimosso in futuro, usa invece '{prog} {new}'", "deprecated_command_alias": "'{prog} {old}' è deprecato e sarà rimosso in futuro, usa invece '{prog} {new}'",
"error": "Errore:", "error": "Errore:",
"error_see_log": "Si è verificato un errore. Per favore controlla i registri per i dettagli, sono salvati in /var/log/yunohost/.",
"file_exists": "Il file esiste già: '{path}'",
"file_not_exist": "Il file non esiste: '{path}'", "file_not_exist": "Il file non esiste: '{path}'",
"folder_exists": "La cartella esiste già: '{path}'", "folder_exists": "La cartella esiste già: '{path}'",
"folder_not_exist": "La cartella non esiste",
"instance_already_running": "Esiste già un'operazione YunoHost in esecuzione. Attendi il completamento prima di eseguirne un altro.", "instance_already_running": "Esiste già un'operazione YunoHost in esecuzione. Attendi il completamento prima di eseguirne un altro.",
"invalid_argument": "Argomento non valido '{argument}': {error}", "invalid_argument": "Argomento non valido '{argument}': {error}",
"invalid_password": "Password non valida", "invalid_password": "Password non valida",
@ -25,7 +21,6 @@
"not_logged_in": "Non hai effettuato l'accesso", "not_logged_in": "Non hai effettuato l'accesso",
"operation_interrupted": "Operazione interrotta", "operation_interrupted": "Operazione interrotta",
"pattern_not_match": "Non corrisponde al modello", "pattern_not_match": "Non corrisponde al modello",
"permission_denied": "Permesso negato",
"root_required": "Devi essere root per eseguire questa azione", "root_required": "Devi essere root per eseguire questa azione",
"server_already_running": "Un server è già in esecuzione su quella porta", "server_already_running": "Un server è già in esecuzione su quella porta",
"success": "Riuscito!", "success": "Riuscito!",
@ -36,25 +31,24 @@
"values_mismatch": "I valori non corrispondono", "values_mismatch": "I valori non corrispondono",
"warning": "Attenzione:", "warning": "Attenzione:",
"websocket_request_expected": "Richiesta WebSocket attesa", "websocket_request_expected": "Richiesta WebSocket attesa",
"cannot_open_file": "Impossibile aprire il file {file:s} (motivo: {error:s})", "cannot_open_file": "Impossibile aprire il file {file} (motivo: {error})",
"cannot_write_file": "Impossibile scrivere il file {file:s} (motivo: {error:s})", "cannot_write_file": "Impossibile scrivere il file {file} (motivo: {error})",
"unknown_error_reading_file": "Errore sconosciuto durante il tentativo di leggere il file {file:s} (motivo: {error:s})", "unknown_error_reading_file": "Errore sconosciuto durante il tentativo di leggere il file {file} (motivo: {error})",
"corrupted_json": "Lettura JSON corrotta da {ressource:s} (motivo: {error:s})", "corrupted_json": "Lettura JSON corrotta da {ressource} (motivo: {error})",
"corrupted_yaml": "Lettura YAML corrotta da {ressource:s} (motivo: {error:s})", "corrupted_yaml": "Lettura YAML corrotta da {ressource} (motivo: {error})",
"error_writing_file": "Errore durante la scrittura del file {file:s}: {error:s}", "error_writing_file": "Errore durante la scrittura del file {file}: {error}",
"error_removing": "Errore durante la rimozione {path:s}: {error:s}", "error_removing": "Errore durante la rimozione {path}: {error}",
"error_changing_file_permissions": "Errore durante il cambio di permessi per {path:s}: {error:s}", "error_changing_file_permissions": "Errore durante il cambio di permessi per {path}: {error}",
"invalid_url": "URL non valido {url:s} (il sito esiste?)", "invalid_url": "URL non valido {url} (il sito esiste?)",
"download_ssl_error": "Errore SSL durante la connessione a {url:s}", "download_ssl_error": "Errore SSL durante la connessione a {url}",
"download_timeout": "{url:s} ci ha messo troppo a rispondere, abbandonato.", "download_timeout": "{url} ci ha messo troppo a rispondere, abbandonato.",
"download_unknown_error": "Errore durante il download di dati da {url:s} : {error:s}", "download_unknown_error": "Errore durante il download di dati da {url} : {error}",
"download_bad_status_code": "{url:s} ha restituito il codice di stato {code:s}", "download_bad_status_code": "{url} ha restituito il codice di stato {code}",
"command_unknown": "Comando '{command:s}' sconosciuto?",
"info": "Info:", "info": "Info:",
"warn_the_user_that_lock_is_acquired": "L'altro comando è appena completato, ora avvio questo comando", "warn_the_user_that_lock_is_acquired": "L'altro comando è appena completato, ora avvio questo comando",
"warn_the_user_about_waiting_lock_again": "Sto ancora aspettando ...", "warn_the_user_about_waiting_lock_again": "Sto ancora aspettando ...",
"warn_the_user_about_waiting_lock": "Un altro comando YunoHost è in esecuzione in questo momento, stiamo aspettando che finisca prima di eseguire questo", "warn_the_user_about_waiting_lock": "Un altro comando YunoHost è in esecuzione in questo momento, stiamo aspettando che finisca prima di eseguire questo",
"corrupted_toml": "TOML corrotto da {ressource:s} (motivo: {error:s})", "corrupted_toml": "TOML corrotto da {ressource} (motivo: {error})",
"invalid_token": "Token non valido: autenticare", "invalid_token": "Token non valido: autenticare",
"session_expired": "La sessione è terminata. Sei pregato di autenticarti nuovamente.", "session_expired": "La sessione è terminata. Sei pregato di autenticarti nuovamente.",
"ldap_server_is_down_restart_it": "Il servizio LDAP è terminato, provo a riavviarlo..." "ldap_server_is_down_restart_it": "Il servizio LDAP è terminato, provo a riavviarlo..."

View file

@ -13,7 +13,6 @@
"logged_in": "Innlogget", "logged_in": "Innlogget",
"invalid_password": "Ugyldig passord", "invalid_password": "Ugyldig passord",
"info": "Info:", "info": "Info:",
"file_exists": "Filen finnes allerede: '{path}'",
"error": "Feil:", "error": "Feil:",
"confirm": "Bekreft {prompt}", "confirm": "Bekreft {prompt}",
"colon": "{}: ", "colon": "{}: ",

View file

@ -1,16 +1,12 @@
{ {
"argument_required": "Argument {argument} is vereist", "argument_required": "Argument {argument} is vereist",
"authentication_profile_required": "Authenticatie tot profiel '{profile}' is vereist",
"authentication_required": "Aanmelding vereist", "authentication_required": "Aanmelding vereist",
"authentication_required_long": "Aanmelding is vereist om deze actie uit te voeren", "authentication_required_long": "Aanmelding is vereist om deze actie uit te voeren",
"colon": "{}: ", "colon": "{}: ",
"confirm": "Bevestig {prompt}", "confirm": "Bevestig {prompt}",
"error": "Fout:", "error": "Fout:",
"error_see_log": "Er is een fout opgetreden, zie logboek voor meer informatie. Je kan deze vinden in /var/log/yunohost/.",
"file_exists": "Kan '{path}' niet aanmaken: bestand bestaat al",
"file_not_exist": "Bestand bestaat niet: '{path}'", "file_not_exist": "Bestand bestaat niet: '{path}'",
"folder_exists": "Deze map bestaat al: '{path}'", "folder_exists": "Deze map bestaat al: '{path}'",
"folder_not_exist": "Map bestaat niet",
"instance_already_running": "Er is al een instantie actief, bedankt om te wachten tot deze afgesloten is alvorens een andere te starten.", "instance_already_running": "Er is al een instantie actief, bedankt om te wachten tot deze afgesloten is alvorens een andere te starten.",
"invalid_argument": "Ongeldig argument '{argument}': {error}", "invalid_argument": "Ongeldig argument '{argument}': {error}",
"invalid_password": "Ongeldig wachtwoord", "invalid_password": "Ongeldig wachtwoord",
@ -23,7 +19,6 @@
"operation_interrupted": "Operatie onderbroken", "operation_interrupted": "Operatie onderbroken",
"password": "Wachtwoord", "password": "Wachtwoord",
"pattern_not_match": "Past niet in het patroon", "pattern_not_match": "Past niet in het patroon",
"permission_denied": "Toegang geweigerd",
"root_required": "Je moet root zijn om deze actie uit te voeren", "root_required": "Je moet root zijn om deze actie uit te voeren",
"server_already_running": "Er is al een server actief op die poort", "server_already_running": "Er is al een server actief op die poort",
"success": "Succes!", "success": "Succes!",
@ -36,24 +31,23 @@
"deprecated_command_alias": "'{prog} {old}' is verouderd en wordt binnenkort verwijderd, gebruik in de plaats '{prog} {new}'", "deprecated_command_alias": "'{prog} {old}' is verouderd en wordt binnenkort verwijderd, gebruik in de plaats '{prog} {new}'",
"unknown_group": "Groep '{group}' is onbekend", "unknown_group": "Groep '{group}' is onbekend",
"unknown_user": "Gebruiker '{user}' is onbekend", "unknown_user": "Gebruiker '{user}' is onbekend",
"cannot_open_file": "Niet mogelijk om bestand {file:s} te openen (reden: {error:s})", "cannot_open_file": "Niet mogelijk om bestand {file} te openen (reden: {error})",
"cannot_write_file": "Niet gelukt om bestand {file:s} te schrijven (reden: {error:s})", "cannot_write_file": "Niet gelukt om bestand {file} te schrijven (reden: {error})",
"unknown_error_reading_file": "Ongekende fout tijdens het lezen van bestand {file:s} (cause:{error:s})", "unknown_error_reading_file": "Ongekende fout tijdens het lezen van bestand {file} (cause:{error})",
"corrupted_json": "Corrupte json gelezen van {ressource:s} (reden: {error:s})", "corrupted_json": "Corrupte json gelezen van {ressource} (reden: {error})",
"error_writing_file": "Fout tijdens het schrijven van bestand {file:s}: {error:s}", "error_writing_file": "Fout tijdens het schrijven van bestand {file}: {error}",
"error_removing": "Fout tijdens het verwijderen van {path:s}: {error:s}", "error_removing": "Fout tijdens het verwijderen van {path}: {error}",
"error_changing_file_permissions": "Fout tijdens het veranderen van machtiging voor {path:s}: {error:s}", "error_changing_file_permissions": "Fout tijdens het veranderen van machtiging voor {path}: {error}",
"invalid_url": "Ongeldige URL {url:s} (bestaat deze website?)", "invalid_url": "Ongeldige URL {url} (bestaat deze website?)",
"download_ssl_error": "SSL fout gedurende verbinding met {url:s}", "download_ssl_error": "SSL fout gedurende verbinding met {url}",
"download_timeout": "{url:s} neemt te veel tijd om te antwoorden, we geven het op.", "download_timeout": "{url} neemt te veel tijd om te antwoorden, we geven het op.",
"download_unknown_error": "Fout tijdens het downloaden van data van {url:s}: {error:s}", "download_unknown_error": "Fout tijdens het downloaden van data van {url}: {error}",
"download_bad_status_code": "{url:s} stuurt status code {code:s}", "download_bad_status_code": "{url} stuurt status code {code}",
"command_unknown": "Opdracht '{command:s}' ongekend ?",
"warn_the_user_that_lock_is_acquired": "de andere opdracht is zojuist voltooid en start nu deze opdracht", "warn_the_user_that_lock_is_acquired": "de andere opdracht is zojuist voltooid en start nu deze opdracht",
"warn_the_user_about_waiting_lock_again": "Nog steeds aan het wachten...", "warn_the_user_about_waiting_lock_again": "Nog steeds aan het wachten...",
"warn_the_user_about_waiting_lock": "Een ander YunoHost commando wordt uitgevoerd, we wachten tot het gedaan is alovrens dit te starten", "warn_the_user_about_waiting_lock": "Een ander YunoHost commando wordt uitgevoerd, we wachten tot het gedaan is alovrens dit te starten",
"corrupted_toml": "Ongeldige TOML werd gelezen op {ressource:s} (reason: {error:s})", "corrupted_toml": "Ongeldige TOML werd gelezen op {ressource} (reason: {error})",
"corrupted_yaml": "Ongeldig YAML bestand op {ressource:s} (reason: {error:s})", "corrupted_yaml": "Ongeldig YAML bestand op {ressource} (reason: {error})",
"invalid_token": "Ongeldig token - gelieve in te loggen", "invalid_token": "Ongeldig token - gelieve in te loggen",
"info": "Ter info:" "info": "Ter info:"
} }

View file

@ -1,6 +1,5 @@
{ {
"argument_required": "Largument {argument} es requesit", "argument_required": "Largument {argument} es requesit",
"authentication_profile_required": "Lidentificacion del perfil {profile} es requesida",
"authentication_required": "Autentificacion requesida", "authentication_required": "Autentificacion requesida",
"authentication_required_long": "Una autentificacion es requesida per acomplir aquesta accion", "authentication_required_long": "Una autentificacion es requesida per acomplir aquesta accion",
"logged_in": "Connectat", "logged_in": "Connectat",
@ -11,18 +10,14 @@
"deprecated_command": "« {prog} {command} » es despreciat e serà lèu suprimit", "deprecated_command": "« {prog} {command} » es despreciat e serà lèu suprimit",
"deprecated_command_alias": "« {prog} {old} » es despreciat e serà lèu suprimit, utilizatz « {prog} {new} » allòc", "deprecated_command_alias": "« {prog} {old} » es despreciat e serà lèu suprimit, utilizatz « {prog} {new} » allòc",
"error": "Error:", "error": "Error:",
"error_see_log": "Una error ses producha. Mercés de consultar los jornals per mai detalhs, son plaçats dins /var/log/yunohost/.",
"file_exists": "Lo fichièr existís ja: « {path} »",
"file_not_exist": "Lo fichièr « {path} » existís pas", "file_not_exist": "Lo fichièr « {path} » existís pas",
"folder_exists": "Lo repertòri existís ja: « {path} »", "folder_exists": "Lo repertòri existís ja: « {path} »",
"folder_not_exist": "Lo repertòri existís pas",
"instance_already_running": "I a ja una operacion de YunoHost en cors. Mercés desperar que sacabe abans de ne lançar una mai.", "instance_already_running": "I a ja una operacion de YunoHost en cors. Mercés desperar que sacabe abans de ne lançar una mai.",
"invalid_argument": "Argument « {argument} » incorrècte: {error}", "invalid_argument": "Argument « {argument} » incorrècte: {error}",
"invalid_password": "Senhal incorrècte", "invalid_password": "Senhal incorrècte",
"ldap_server_down": "Impossible daténher lo servidor LDAP", "ldap_server_down": "Impossible daténher lo servidor LDAP",
"not_logged_in": "Cap de session començada", "not_logged_in": "Cap de session començada",
"pattern_not_match": "Correspond pas al patron", "pattern_not_match": "Correspond pas al patron",
"permission_denied": "Permission refusada",
"root_required": "Cal èsser root per realizar aquesta accion", "root_required": "Cal èsser root per realizar aquesta accion",
"unable_retrieve_session": "Recuperacion impossibla de la session a causa de « {exception} »", "unable_retrieve_session": "Recuperacion impossibla de la session a causa de « {exception} »",
"unknown_group": "Grop « {group} » desconegut", "unknown_group": "Grop « {group} » desconegut",
@ -36,22 +31,21 @@
"success": "Capitada!", "success": "Capitada!",
"unable_authenticate": "Impossible de vos autentificar", "unable_authenticate": "Impossible de vos autentificar",
"websocket_request_expected": "Una requèsta WebSocket èra esperada", "websocket_request_expected": "Una requèsta WebSocket èra esperada",
"cannot_open_file": "Impossible de dobrir lo fichièr {file:s} (rason: {error:s})", "cannot_open_file": "Impossible de dobrir lo fichièr {file} (rason: {error})",
"cannot_write_file": "Escritura impossibla del fichièr {file:s} (rason: {error:s})", "cannot_write_file": "Escritura impossibla del fichièr {file} (rason: {error})",
"unknown_error_reading_file": "Error desconeguda en ensajar de legir lo fichièr {file:s} (rason: {error:s})", "unknown_error_reading_file": "Error desconeguda en ensajar de legir lo fichièr {file} (rason: {error})",
"error_writing_file": "Error en escriure lo fichièr {file:s}: {error:s}", "error_writing_file": "Error en escriure lo fichièr {file}: {error}",
"error_removing": "Error en suprimir {path:s}: {error:s}", "error_removing": "Error en suprimir {path}: {error}",
"error_changing_file_permissions": "Error en modificar las permissions per {path:s}: {error:s}", "error_changing_file_permissions": "Error en modificar las permissions per {path}: {error}",
"invalid_url": "Url invalida {url:s} (existís aqueste site?)", "invalid_url": "Url invalida {url} (existís aqueste site?)",
"download_ssl_error": "Error SSL en se connectant a {url:s}", "download_ssl_error": "Error SSL en se connectant a {url}",
"download_timeout": "{url:s} a trigat per respondre, avèm quitat desperar.", "download_timeout": "{url} a trigat per respondre, avèm quitat desperar.",
"download_unknown_error": "Error en telecargar de donadas de {url:s}: {error:s}", "download_unknown_error": "Error en telecargar de donadas de {url}: {error}",
"download_bad_status_code": "{url:s} tòrna lo còdi destat {code:s}", "download_bad_status_code": "{url} tòrna lo còdi destat {code}",
"command_unknown": "Comanda « {command:s} » desconeguda?", "corrupted_json": "Fichièr Json corromput legit de {ressource} (rason: {error})",
"corrupted_json": "Fichièr Json corromput legit de {ressource:s} (rason: {error:s})", "corrupted_yaml": "Fichièr YAML corromput legit de {ressource} (rason: {error})",
"corrupted_yaml": "Fichièr YAML corromput legit de {ressource:s} (rason: {error:s})",
"info": "Info:", "info": "Info:",
"corrupted_toml": "Fichièr TOML corromput en lectura de {ressource:s} estant (rason: {error:s})", "corrupted_toml": "Fichièr TOML corromput en lectura de {ressource} estant (rason: {error})",
"warn_the_user_about_waiting_lock": "Una autra comanda YunoHost es en execucion, sèm a esperar quacabe abans daviar aquesta daquí", "warn_the_user_about_waiting_lock": "Una autra comanda YunoHost es en execucion, sèm a esperar quacabe abans daviar aquesta daquí",
"warn_the_user_about_waiting_lock_again": "Encara en espèra…", "warn_the_user_about_waiting_lock_again": "Encara en espèra…",
"warn_the_user_that_lock_is_acquired": "lautra comanda ven dacabar, ara lançament daquesta comanda", "warn_the_user_that_lock_is_acquired": "lautra comanda ven dacabar, ara lançament daquesta comanda",

View file

@ -4,21 +4,20 @@
"warn_the_user_that_lock_is_acquired": "Inne polecenie właśnie się zakończyło, teraz uruchamiam to polecenie", "warn_the_user_that_lock_is_acquired": "Inne polecenie właśnie się zakończyło, teraz uruchamiam to polecenie",
"warn_the_user_about_waiting_lock_again": "Wciąż czekam...", "warn_the_user_about_waiting_lock_again": "Wciąż czekam...",
"warn_the_user_about_waiting_lock": "Kolejne polecenie YunoHost jest teraz uruchomione, czekamy na jego zakończenie przed uruchomieniem tego", "warn_the_user_about_waiting_lock": "Kolejne polecenie YunoHost jest teraz uruchomione, czekamy na jego zakończenie przed uruchomieniem tego",
"command_unknown": "Polecenie '{command:s}' jest nieznane?", "download_bad_status_code": "{url} zwrócił kod stanu {code}",
"download_bad_status_code": "{url:s} zwrócił kod stanu {code:s}", "download_unknown_error": "Błąd podczas pobierania danych z {url}: {error}",
"download_unknown_error": "Błąd podczas pobierania danych z {url:s}: {error:s}", "download_timeout": "{url} odpowiedział zbyt długo, poddał się.",
"download_timeout": "{url:s} odpowiedział zbyt długo, poddał się.", "download_ssl_error": "Błąd SSL podczas łączenia z {url}",
"download_ssl_error": "Błąd SSL podczas łączenia z {url:s}", "invalid_url": "Nieprawidłowy adres URL {url} (czy ta strona istnieje?)",
"invalid_url": "Nieprawidłowy adres URL {url:s} (czy ta strona istnieje?)", "error_changing_file_permissions": "Błąd podczas zmiany uprawnień dla {path}: {error}",
"error_changing_file_permissions": "Błąd podczas zmiany uprawnień dla {path:s}: {error:s}", "error_removing": "Błąd podczas usuwania {path}: {error}",
"error_removing": "Błąd podczas usuwania {path:s}: {error:s}", "error_writing_file": "Błąd podczas zapisywania pliku {file}: {error}",
"error_writing_file": "Błąd podczas zapisywania pliku {file:s}: {error:s}", "corrupted_toml": "Uszkodzony TOML z {ressource: s} (reason: {error})",
"corrupted_toml": "Uszkodzony TOML z {ressource: s} (reason: {error:s})", "corrupted_yaml": "Uszkodzony YAML odczytany z {ressource} (reason: {error})",
"corrupted_yaml": "Uszkodzony YAML odczytany z {ressource:s} (reason: {error:s})", "corrupted_json": "Uszkodzony JSON odczytany z {ressource} (reason: {error})",
"corrupted_json": "Uszkodzony JSON odczytany z {ressource:s} (reason: {error:s})", "unknown_error_reading_file": "Nieznany błąd podczas próby odczytania pliku {file} (przyczyna: {error})",
"unknown_error_reading_file": "Nieznany błąd podczas próby odczytania pliku {file:s} (przyczyna: {error:s})", "cannot_write_file": "Nie można zapisać pliku {file} (przyczyna: {error})",
"cannot_write_file": "Nie można zapisać pliku {file:s} (przyczyna: {error:s})", "cannot_open_file": "Nie można otworzyć pliku {file} (przyczyna: {error})",
"cannot_open_file": "Nie można otworzyć pliku {file:s} (przyczyna: {error:s})",
"websocket_request_expected": "Oczekiwano żądania WebSocket", "websocket_request_expected": "Oczekiwano żądania WebSocket",
"warning": "Ostrzeżenie:", "warning": "Ostrzeżenie:",
"values_mismatch": "Wartości nie pasują", "values_mismatch": "Wartości nie pasują",
@ -41,11 +40,8 @@
"invalid_argument": "Nieprawidłowy argument „{argument}”: {error}", "invalid_argument": "Nieprawidłowy argument „{argument}”: {error}",
"instance_already_running": "Trwa już operacja YunoHost. Zaczekaj na zakończenie, zanim uruchomisz kolejny.", "instance_already_running": "Trwa już operacja YunoHost. Zaczekaj na zakończenie, zanim uruchomisz kolejny.",
"info": "Informacje:", "info": "Informacje:",
"folder_not_exist": "Folder nie istnieje",
"folder_exists": "Folder już istnieje: „{path}”", "folder_exists": "Folder już istnieje: „{path}”",
"file_not_exist": "Plik nie istnieje: „{path}”", "file_not_exist": "Plik nie istnieje: „{path}”",
"file_exists": "Plik już istnieje: „{path}”",
"error_see_log": "Wystąpił błąd. Szczegółowe informacje można znaleźć w dziennikach, znajdują się one w katalogu /var/log/yunohost/.",
"error": "Błąd:", "error": "Błąd:",
"deprecated_command_alias": "„{prog} {old}” jest przestarzałe i zostanie usunięte w przyszłości, zamiast tego użyj „{prog} {new}”", "deprecated_command_alias": "„{prog} {old}” jest przestarzałe i zostanie usunięte w przyszłości, zamiast tego użyj „{prog} {new}”",
"deprecated_command": "„{prog} {command}” jest przestarzałe i zostanie usunięte w przyszłości", "deprecated_command": "„{prog} {command}” jest przestarzałe i zostanie usunięte w przyszłości",

View file

@ -1,15 +1,12 @@
{ {
"argument_required": "O argumento '{argument}' é obrigatório", "argument_required": "O argumento '{argument}' é obrigatório",
"authentication_profile_required": "Autenticação requerida para o perfil '{profile}'",
"authentication_required": "Autenticação obrigatória", "authentication_required": "Autenticação obrigatória",
"authentication_required_long": "É preciso autenticar-se para realizar esta ação", "authentication_required_long": "É preciso autenticar-se para realizar esta ação",
"colon": "{}: ", "colon": "{}: ",
"confirm": "Confirmar {prompt}", "confirm": "Confirmar {prompt}",
"error": "Erro:", "error": "Erro:",
"file_exists": "A pasta já existe: '{path}'",
"file_not_exist": "O ficheiro não existe: '{path}'", "file_not_exist": "O ficheiro não existe: '{path}'",
"folder_exists": "A pasta já existe: '{path}'", "folder_exists": "A pasta já existe: '{path}'",
"folder_not_exist": "A pasta não existe",
"instance_already_running": "Já existe uma operação YunoHost em execução. Aguarde o término antes de executar outro.", "instance_already_running": "Já existe uma operação YunoHost em execução. Aguarde o término antes de executar outro.",
"invalid_argument": "Argumento inválido '{argument}': {error}", "invalid_argument": "Argumento inválido '{argument}': {error}",
"invalid_password": "Senha incorreta", "invalid_password": "Senha incorreta",
@ -22,7 +19,6 @@
"operation_interrupted": "Operação cancelada", "operation_interrupted": "Operação cancelada",
"password": "Senha", "password": "Senha",
"pattern_not_match": "Não corresponde ao motivo", "pattern_not_match": "Não corresponde ao motivo",
"permission_denied": "Permissão revogada",
"root_required": "Deve ser root (administrador) para realizar esta ação", "root_required": "Deve ser root (administrador) para realizar esta ação",
"server_already_running": "Existe um servidor ativo nessa porta", "server_already_running": "Existe um servidor ativo nessa porta",
"success": "Sucesso!", "success": "Sucesso!",
@ -33,27 +29,25 @@
"websocket_request_expected": "Esperado um pedido a WebSocket", "websocket_request_expected": "Esperado um pedido a WebSocket",
"deprecated_command": "'{prog} {command}' está obsoleto e será removido no futuro", "deprecated_command": "'{prog} {command}' está obsoleto e será removido no futuro",
"deprecated_command_alias": "'{prog} {old}' está obsoleto e será removido no futuro, em vez disso, usa '{prog} {new}'", "deprecated_command_alias": "'{prog} {old}' está obsoleto e será removido no futuro, em vez disso, usa '{prog} {new}'",
"error_see_log": "Ocorreu um erro . Por favor, veja os logs para maiores detalhes, eles estão localizados em /var/log/yunohost/.",
"unknown_group": "Grupo '{group}' desconhecido", "unknown_group": "Grupo '{group}' desconhecido",
"unknown_user": "Nome de utilizador '{user}' desconhecido", "unknown_user": "Nome de utilizador '{user}' desconhecido",
"cannot_open_file": "Não foi possível abrir o arquivo {file:s} (reason: {error:s})", "cannot_open_file": "Não foi possível abrir o arquivo {file} (reason: {error})",
"cannot_write_file": "Não foi possível abrir o arquivo {file:s} (reason: {error:s})", "cannot_write_file": "Não foi possível abrir o arquivo {file} (reason: {error})",
"unknown_error_reading_file": "Erro desconhecido ao tentar ler o arquivo {file:s} (motivo: {error:s})", "unknown_error_reading_file": "Erro desconhecido ao tentar ler o arquivo {file} (motivo: {error})",
"error_writing_file": "Erro ao gravar arquivo {file:s}: {error:s}", "error_writing_file": "Erro ao gravar arquivo {file}: {error}",
"error_removing": "Erro ao remover {path:s}: {error:s}", "error_removing": "Erro ao remover {path}: {error}",
"error_changing_file_permissions": "Erro ao alterar as permissões para {path:s}: {error:s}", "error_changing_file_permissions": "Erro ao alterar as permissões para {path}: {error}",
"invalid_url": "URL inválida {url:s} (Esse site existe ?)", "invalid_url": "URL inválida {url} (Esse site existe ?)",
"download_ssl_error": "Erro de SSL ao conectar-se a {url:s}", "download_ssl_error": "Erro de SSL ao conectar-se a {url}",
"download_timeout": "{url:s} demorou muito para responder, desistiu.", "download_timeout": "{url} demorou muito para responder, desistiu.",
"download_unknown_error": "Erro quando baixando os dados de {url:s} : {error:s}", "download_unknown_error": "Erro quando baixando os dados de {url} : {error}",
"download_bad_status_code": "{url:s} retornou o código de status {code:s}", "download_bad_status_code": "{url} retornou o código de status {code}",
"command_unknown": "Comando '{command:s}' desconhecido ?", "corrupted_json": "JSON corrompido lido do {ressource} (motivo: {error})",
"corrupted_json": "JSON corrompido lido do {ressource:s} (motivo: {error:s})", "corrupted_yaml": "YAML corrompido lido do {ressource} (motivo: {error})",
"corrupted_yaml": "YAML corrompido lido do {ressource:s} (motivo: {error:s})",
"warn_the_user_that_lock_is_acquired": "O outro comando acabou de concluir, agora iniciando este comando", "warn_the_user_that_lock_is_acquired": "O outro comando acabou de concluir, agora iniciando este comando",
"warn_the_user_about_waiting_lock_again": "Ainda esperando...", "warn_the_user_about_waiting_lock_again": "Ainda esperando...",
"warn_the_user_about_waiting_lock": "Outro comando YunoHost está sendo executado agora, estamos aguardando o término antes de executar este", "warn_the_user_about_waiting_lock": "Outro comando YunoHost está sendo executado agora, estamos aguardando o término antes de executar este",
"corrupted_toml": "TOML corrompido lido em {ressource:s} (motivo: {error:s})", "corrupted_toml": "TOML corrompido lido em {ressource} (motivo: {error})",
"invalid_token": "Token inválido - autentique", "invalid_token": "Token inválido - autentique",
"info": "Informações:", "info": "Informações:",
"ldap_server_is_down_restart_it": "O serviço LDAP esta caído, tentando reiniciá-lo...", "ldap_server_is_down_restart_it": "O serviço LDAP esta caído, tentando reiniciá-lo...",

View file

@ -1,6 +1,5 @@
{ {
"argument_required": "Требуется'{argument}' аргумент", "argument_required": "Требуется'{argument}' аргумент",
"authentication_profile_required": "Для доступа к '{profile}' требуется аутентификация",
"authentication_required": "Требуется аутентификация", "authentication_required": "Требуется аутентификация",
"authentication_required_long": "Для этого действия требуется аутентификация", "authentication_required_long": "Для этого действия требуется аутентификация",
"colon": "{}: ", "colon": "{}: ",
@ -8,11 +7,8 @@
"deprecated_command": "'{prog} {command}' устарела и будет удалена", "deprecated_command": "'{prog} {command}' устарела и будет удалена",
"deprecated_command_alias": "'{prog} {old}' устарела и будет удалена, вместо неё используйте '{prog} {new}'", "deprecated_command_alias": "'{prog} {old}' устарела и будет удалена, вместо неё используйте '{prog} {new}'",
"error": "Ошибка:", "error": "Ошибка:",
"error_see_log": "Произошла ошибка. Пожалуйста, смотри подробности в логах, находящихся /var/log/yunohost/.",
"file_exists": "Файл уже существует: '{path}'",
"file_not_exist": "Файл не существует: '{path}'", "file_not_exist": "Файл не существует: '{path}'",
"folder_exists": "Каталог уже существует: '{path}'", "folder_exists": "Каталог уже существует: '{path}'",
"folder_not_exist": "Каталог не существует",
"invalid_argument": "Неправильный аргумент '{argument}': {error}", "invalid_argument": "Неправильный аргумент '{argument}': {error}",
"invalid_password": "Неправильный пароль", "invalid_password": "Неправильный пароль",
"ldap_attribute_already_exists": "Атрибут '{attribute}' уже существует со значением '{value}'", "ldap_attribute_already_exists": "Атрибут '{attribute}' уже существует со значением '{value}'",
@ -30,26 +26,25 @@
"values_mismatch": "Неверные значения", "values_mismatch": "Неверные значения",
"warning": "Внимание :", "warning": "Внимание :",
"websocket_request_expected": "Ожидается запрос WebSocket", "websocket_request_expected": "Ожидается запрос WebSocket",
"cannot_open_file": "Не могу открыть файл {file:s} (причина: {error:s})", "cannot_open_file": "Не могу открыть файл {file} (причина: {error})",
"cannot_write_file": "Не могу записать файл {file:s} (причина: {error:s})", "cannot_write_file": "Не могу записать файл {file} (причина: {error})",
"unknown_error_reading_file": "Неизвестная ошибка при попытке прочитать файл {file:s} (причина: {error:s})", "unknown_error_reading_file": "Неизвестная ошибка при попытке прочитать файл {file} (причина: {error})",
"corrupted_yaml": "Повреждённой yaml получен от {ressource:s} (причина: {error:s})", "corrupted_yaml": "Повреждённой yaml получен от {ressource} (причина: {error})",
"error_writing_file": "Ошибка при записи файла {file:s}: {error:s}", "error_writing_file": "Ошибка при записи файла {file}: {error}",
"error_removing": "Ошибка при удалении {path:s}: {error:s}", "error_removing": "Ошибка при удалении {path}: {error}",
"invalid_url": "Неправильный url {url:s} (этот сайт существует ?)", "invalid_url": "Неправильный url {url} (этот сайт существует ?)",
"download_ssl_error": "Ошибка SSL при соединении с {url:s}", "download_ssl_error": "Ошибка SSL при соединении с {url}",
"download_timeout": "Превышено время ожидания ответа от {url:s}.", "download_timeout": "Превышено время ожидания ответа от {url}.",
"download_unknown_error": "Ошибка при загрузке данных с {url:s} : {error:s}", "download_unknown_error": "Ошибка при загрузке данных с {url} : {error}",
"instance_already_running": "Операция YunoHost уже запущена. Пожалуйста, подождите, пока он закончится, прежде чем запускать другой.", "instance_already_running": "Операция YunoHost уже запущена. Пожалуйста, подождите, пока он закончится, прежде чем запускать другой.",
"root_required": "Чтобы выполнить это действие, вы должны иметь права root", "root_required": "Чтобы выполнить это действие, вы должны иметь права root",
"corrupted_json": "Повреждённый json получен от {ressource:s} (причина: {error:s})", "corrupted_json": "Повреждённый json получен от {ressource} (причина: {error})",
"command_unknown": "Команда '{command:s}' неизвестна ?",
"warn_the_user_that_lock_is_acquired": "другая команда только что завершилась, теперь запускает эту команду", "warn_the_user_that_lock_is_acquired": "другая команда только что завершилась, теперь запускает эту команду",
"warn_the_user_about_waiting_lock_again": "Все еще жду...", "warn_the_user_about_waiting_lock_again": "Все еще жду...",
"warn_the_user_about_waiting_lock": "Сейчас запускается еще одна команда YunoHost, мы ждем ее завершения, прежде чем запустить эту", "warn_the_user_about_waiting_lock": "Сейчас запускается еще одна команда YunoHost, мы ждем ее завершения, прежде чем запустить эту",
"download_bad_status_code": "{url:s} вернул код состояния {code:s}", "download_bad_status_code": "{url} вернул код состояния {code}",
"error_changing_file_permissions": "Ошибка при изменении разрешений для {path:s}: {error:s}", "error_changing_file_permissions": "Ошибка при изменении разрешений для {path}: {error}",
"corrupted_toml": "Поврежденный том, прочитанный из {ressource:s} (причина: {error:s})", "corrupted_toml": "Поврежденный том, прочитанный из {ressource} (причина: {error})",
"unable_retrieve_session": "Невозможно получить сеанс, так как '{exception}'", "unable_retrieve_session": "Невозможно получить сеанс, так как '{exception}'",
"ldap_server_down": "Невозможно связаться с сервером LDAP", "ldap_server_down": "Невозможно связаться с сервером LDAP",
"invalid_usage": "Неправильное использование, передайте --help, чтобы увидеть помощь", "invalid_usage": "Неправильное использование, передайте --help, чтобы увидеть помощь",

View file

@ -1,10 +1,10 @@
{ {
"warn_the_user_about_waiting_lock_again": "Väntar fortfarande …", "warn_the_user_about_waiting_lock_again": "Väntar fortfarande …",
"download_bad_status_code": "{url:s} svarade med statuskod {code:s}", "download_bad_status_code": "{url} svarade med statuskod {code}",
"download_timeout": "Gav upp eftersom {url:s} tog för lång tid på sig att svara.", "download_timeout": "Gav upp eftersom {url} tog för lång tid på sig att svara.",
"download_ssl_error": "Ett SSL-fel påträffades vid anslutning till {url:s}", "download_ssl_error": "Ett SSL-fel påträffades vid anslutning till {url}",
"cannot_write_file": "Kunde inte skriva till filen {file:s} (orsak: {error:s})", "cannot_write_file": "Kunde inte skriva till filen {file} (orsak: {error})",
"cannot_open_file": "Kunde inte öppna filen {file:s} (orsak: {error:s})", "cannot_open_file": "Kunde inte öppna filen {file} (orsak: {error})",
"websocket_request_expected": "Förväntade en WebSocket-förfrågan", "websocket_request_expected": "Förväntade en WebSocket-förfrågan",
"warning": "Varning:", "warning": "Varning:",
"values_mismatch": "Värdena stämmer inte överens", "values_mismatch": "Värdena stämmer inte överens",
@ -22,11 +22,8 @@
"invalid_argument": "Ogiltig parameter '{argument}': {error}", "invalid_argument": "Ogiltig parameter '{argument}': {error}",
"logged_out": "Utloggad", "logged_out": "Utloggad",
"info": "Info:", "info": "Info:",
"folder_not_exist": "Katalogen finns inte",
"folder_exists": "Katalogen finns redan: '{path}'", "folder_exists": "Katalogen finns redan: '{path}'",
"file_not_exist": "Filen finns inte: '{path}'", "file_not_exist": "Filen finns inte: '{path}'",
"file_exists": "Filen finns redan: '{path}'",
"error_see_log": "Ett fel har inträffat. Kolla gärna i loggfilerna för mer information, de finns i /var/log/yunohost/.",
"error": "Fel:", "error": "Fel:",
"deprecated_command_alias": "'{prog} {old}' rekommenderas inte längre och kommer tas bort i framtiden, använd '{prog} {new}' istället", "deprecated_command_alias": "'{prog} {old}' rekommenderas inte längre och kommer tas bort i framtiden, använd '{prog} {new}' istället",
"deprecated_command": "'{prog} {command}' rekommenderas inte längre och kommer tas bort i framtiden", "deprecated_command": "'{prog} {command}' rekommenderas inte längre och kommer tas bort i framtiden",
@ -36,16 +33,15 @@
"password": "Lösenord", "password": "Lösenord",
"warn_the_user_that_lock_is_acquired": "det andra kommandot har bara slutförts, nu startar du det här kommandot", "warn_the_user_that_lock_is_acquired": "det andra kommandot har bara slutförts, nu startar du det här kommandot",
"warn_the_user_about_waiting_lock": "Ett annat YunoHost-kommando körs just nu, vi väntar på att det ska slutföras innan det här körs", "warn_the_user_about_waiting_lock": "Ett annat YunoHost-kommando körs just nu, vi väntar på att det ska slutföras innan det här körs",
"command_unknown": "Kommando '{command:s}' okänd?", "download_unknown_error": "Fel vid nedladdning av data från {url}: {error}",
"download_unknown_error": "Fel vid nedladdning av data från {url:s}: {error:s}", "invalid_url": "Ogiltig url {url} (finns den här webbplatsen?)",
"invalid_url": "Ogiltig url {url:s} (finns den här webbplatsen?)", "error_changing_file_permissions": "Fel vid ändring av behörigheter för {path}: {error}",
"error_changing_file_permissions": "Fel vid ändring av behörigheter för {path:s}: {error:s}", "error_removing": "Fel vid borttagning av {path}: {error}",
"error_removing": "Fel vid borttagning av {path:s}: {error:s}", "error_writing_file": "Fel vid skrivning av fil {file}: {error}",
"error_writing_file": "Fel vid skrivning av fil {file:s}: {error:s}", "corrupted_toml": "Korrupt toml läst från {ressource} (anledning: {error})",
"corrupted_toml": "Korrupt toml läst från {ressource:s} (anledning: {error:s})", "corrupted_yaml": "Skadad yaml läst från {ressource} (anledning: {error})",
"corrupted_yaml": "Skadad yaml läst från {ressource:s} (anledning: {error:s})", "corrupted_json": "Skadad json läst från {ressource} (anledning: {error})",
"corrupted_json": "Skadad json läst från {ressource:s} (anledning: {error:s})", "unknown_error_reading_file": "Okänt fel vid försök att läsa filen {file} (anledning: {error})",
"unknown_error_reading_file": "Okänt fel vid försök att läsa filen {file:s} (anledning: {error:s})",
"unable_retrieve_session": "Det gick inte att hämta sessionen eftersom '{exception}'", "unable_retrieve_session": "Det gick inte att hämta sessionen eftersom '{exception}'",
"unable_authenticate": "Det går inte att verifiera", "unable_authenticate": "Det går inte att verifiera",
"ldap_server_down": "Det går inte att nå LDAP-servern", "ldap_server_down": "Det går inte att nå LDAP-servern",

View file

@ -1,12 +1,10 @@
{ {
"argument_required": "{argument} argümanı gerekli", "argument_required": "{argument} argümanı gerekli",
"authentication_profile_required": "'{profile}' profili için yetkilendirme gerekli",
"authentication_required": "Yetklendirme gerekli", "authentication_required": "Yetklendirme gerekli",
"authentication_required_long": "Bu işlemi yapmak içi yetkilendirme gerekli", "authentication_required_long": "Bu işlemi yapmak içi yetkilendirme gerekli",
"colon": "{}: ", "colon": "{}: ",
"confirm": "{prompt}'i doğrulayın", "confirm": "{prompt}'i doğrulayın",
"error": "Hata:", "error": "Hata:",
"error_see_log": "Bir hata oluştu. Ayrıntılar için lütfen günlüklere bakın, bunlar /var/log/yunohost/ dizinindedir.",
"instance_already_running": "Halihazırda bir YunoHost operasyonu var. Lütfen başka bir tane çalıştırmadan önce bitmesini bekleyin.", "instance_already_running": "Halihazırda bir YunoHost operasyonu var. Lütfen başka bir tane çalıştırmadan önce bitmesini bekleyin.",
"invalid_argument": "Geçersiz argüman '{argument}': {error}", "invalid_argument": "Geçersiz argüman '{argument}': {error}",
"invalid_password": "Geçersiz parola", "invalid_password": "Geçersiz parola",
@ -18,7 +16,6 @@
"operation_interrupted": "İşlem yarıda kesildi", "operation_interrupted": "İşlem yarıda kesildi",
"password": "Parola", "password": "Parola",
"pattern_not_match": "İstenen biçimle uyuşmuyor", "pattern_not_match": "İstenen biçimle uyuşmuyor",
"permission_denied": "Erişim reddedildi",
"root_required": "Bu işlemi yapmak için root olmalısınız", "root_required": "Bu işlemi yapmak için root olmalısınız",
"server_already_running": "Bu portta zaten çalışan bir sunucu var", "server_already_running": "Bu portta zaten çalışan bir sunucu var",
"success": "İşlem Başarılı!", "success": "İşlem Başarılı!",
@ -30,30 +27,27 @@
"warn_the_user_that_lock_is_acquired": "diğer komut şimdi tamamlandı, şimdi bu komutu başlatıyor", "warn_the_user_that_lock_is_acquired": "diğer komut şimdi tamamlandı, şimdi bu komutu başlatıyor",
"warn_the_user_about_waiting_lock_again": "Hala bekliyor...", "warn_the_user_about_waiting_lock_again": "Hala bekliyor...",
"warn_the_user_about_waiting_lock": "Başka bir YunoHost komutu şu anda çalışıyor, bunu çalıştırmadan önce bitmesini bekliyoruz", "warn_the_user_about_waiting_lock": "Başka bir YunoHost komutu şu anda çalışıyor, bunu çalıştırmadan önce bitmesini bekliyoruz",
"command_unknown": "'{command:s}' komutu bilinmiyor mu?", "download_bad_status_code": "{url} döndürülen durum kodu {code}",
"download_bad_status_code": "{url:s} döndürülen durum kodu {code:s}", "download_unknown_error": "{url} adresinden veri indirilirken hata oluştu: {error}",
"download_unknown_error": "{url:s} adresinden veri indirilirken hata oluştu: {error:s}", "download_timeout": "{url} yanıtlaması çok uzun sürdü, pes etti.",
"download_timeout": "{url:s} yanıtlaması çok uzun sürdü, pes etti.", "download_ssl_error": "{url} ağına bağlanırken SSL hatası",
"download_ssl_error": "{url:s} ağına bağlanırken SSL hatası", "invalid_url": "Geçersiz url {url} (bu site var mı?)",
"invalid_url": "Geçersiz url {url:s} (bu site var mı?)", "error_changing_file_permissions": "{path} için izinler değiştirilirken hata oluştu: {error}",
"error_changing_file_permissions": "{path:s} için izinler değiştirilirken hata oluştu: {error:s}", "error_removing": "{path} kaldırılırken hata oluştu: {error}",
"error_removing": "{path:s} kaldırılırken hata oluştu: {error:s}", "error_writing_file": "{file} dosyası yazılırken hata oluştu: {error}",
"error_writing_file": "{file:s} dosyası yazılırken hata oluştu: {error:s}", "corrupted_toml": "{ressource} kaynağından okunan bozuk toml (nedeni: {error})",
"corrupted_toml": "{ressource:s} kaynağından okunan bozuk toml (nedeni: {error:s})", "corrupted_yaml": "{ressource} kaynağından bozuk yaml okunuyor (nedeni: {error})",
"corrupted_yaml": "{ressource:s} kaynağından bozuk yaml okunuyor (nedeni: {error:s})", "corrupted_json": "{ressource} adresinden okunan bozuk json (nedeni: {error})",
"corrupted_json": "{ressource:s} adresinden okunan bozuk json (nedeni: {error:s})", "unknown_error_reading_file": "{file} dosyasını okumaya çalışırken bilinmeyen hata (nedeni: {error})",
"unknown_error_reading_file": "{file:s} dosyasını okumaya çalışırken bilinmeyen hata (nedeni: {error:s})", "cannot_write_file": "{file} dosyası yazılamadı (nedeni: {error})",
"cannot_write_file": "{file:s} dosyası yazılamadı (nedeni: {error:s})", "cannot_open_file": "{file} dosyasıılamadı (nedeni: {error})",
"cannot_open_file": "{file:s} dosyasıılamadı (nedeni: {error:s})",
"unknown_user": "Bilinmeyen '{user}' kullanıcı", "unknown_user": "Bilinmeyen '{user}' kullanıcı",
"unknown_group": "Bilinmeyen '{group}' grubu", "unknown_group": "Bilinmeyen '{group}' grubu",
"invalid_usage": "Geçersiz kullanım, yardım görmek için --help iletin", "invalid_usage": "Geçersiz kullanım, yardım görmek için --help iletin",
"invalid_token": "Geçersiz simge - lütfen kimlik doğrulaması yapın", "invalid_token": "Geçersiz simge - lütfen kimlik doğrulaması yapın",
"info": "Bilgi:", "info": "Bilgi:",
"folder_not_exist": "Klasör mevcut değil",
"folder_exists": "Klasör zaten var: '{path}'", "folder_exists": "Klasör zaten var: '{path}'",
"file_not_exist": "Dosya mevcut değil: '{path}'", "file_not_exist": "Dosya mevcut değil: '{path}'",
"file_exists": "Dosya zaten var: '{path}'",
"deprecated_command_alias": "'{prog} {old}' kullanımdan kaldırıldı ve gelecekte kaldırılacak, bunun yerine '{prog} {new}' kullanın", "deprecated_command_alias": "'{prog} {old}' kullanımdan kaldırıldı ve gelecekte kaldırılacak, bunun yerine '{prog} {new}' kullanın",
"deprecated_command": "'{prog} {command}' kullanımdan kaldırıldı ve gelecekte kaldırılacak" "deprecated_command": "'{prog} {command}' kullanımdan kaldırıldı ve gelecekte kaldırılacak"
} }

View file

@ -224,7 +224,7 @@ class PatternParameter(_ExtraParameter):
"expecting a list as extra parameter 'pattern' of " "argument '%s'", "expecting a list as extra parameter 'pattern' of " "argument '%s'",
arg_name, arg_name,
) )
value = [value, "pattern_not_match"] value = [value, "pattern_not_match"] # i18n: pattern_not_match
elif not isinstance(value, list) or len(value) != 2: elif not isinstance(value, list) or len(value) != 2:
raise TypeError("parameter value must be a list, got %r" % value) raise TypeError("parameter value must be a list, got %r" % value)
return value return value

View file

@ -72,7 +72,9 @@ def call_async_output(args, callback, **kwargs):
kwargs["env"]["YNH_STDINFO"] = str(stdinfo.fdWrite) kwargs["env"]["YNH_STDINFO"] = str(stdinfo.fdWrite)
if "env" in kwargs and not all(isinstance(v, str) for v in kwargs["env"].values()): if "env" in kwargs and not all(isinstance(v, str) for v in kwargs["env"].values()):
logger.warning("While trying to call call_async_output: env contained non-string values, probably gonna cause issue in Popen(...)") logger.warning(
"While trying to call call_async_output: env contained non-string values, probably gonna cause issue in Popen(...)"
)
try: try:
p = subprocess.Popen(args, **kwargs) p = subprocess.Popen(args, **kwargs)

View file

@ -0,0 +1,25 @@
import json
import glob
from collections import OrderedDict
locale_folder = "../locales/"
locale_files = glob.glob(locale_folder + "*.json")
locale_files = [filename.split("/")[-1] for filename in locale_files]
locale_files.remove("en.json")
reference = json.loads(open(locale_folder + "en.json").read())
for locale_file in locale_files:
print(locale_file)
this_locale = json.loads(
open(locale_folder + locale_file).read(), object_pairs_hook=OrderedDict
)
this_locale_fixed = {k: v for k, v in this_locale.items() if k in reference}
json.dump(
this_locale_fixed,
open(locale_folder + locale_file, "w"),
indent=4,
ensure_ascii=False,
)

View file

@ -0,0 +1,52 @@
import re
import json
import glob
import pytest
# List all locale files (except en.json being the ref)
locale_folder = "locales/"
locale_files = glob.glob(locale_folder + "*.json")
locale_files = [filename.split("/")[-1] for filename in locale_files]
locale_files.remove("en.json")
reference = json.loads(open(locale_folder + "en.json").read())
def find_inconsistencies(locale_file):
this_locale = json.loads(open(locale_folder + locale_file).read())
# We iterate over all keys/string in en.json
for key, string in reference.items():
# Ignore check if there's no translation yet for this key
if key not in this_locale:
continue
# Then we check that every "{stuff}" (for python's .format())
# should also be in the translated string, otherwise the .format
# will trigger an exception!
subkeys_in_ref = set(k[0] for k in re.findall(r"{(\w+)(:\w)?}", string))
subkeys_in_this_locale = set(
k[0] for k in re.findall(r"{(\w+)(:\w)?}", this_locale[key])
)
if any(k not in subkeys_in_ref for k in subkeys_in_this_locale):
yield """\n
==========================
Format inconsistency for string {key} in {locale_file}:"
en.json -> {string}
{locale_file} -> {translated_string}
""".format(
key=key,
string=string.encode("utf-8"),
locale_file=locale_file,
translated_string=this_locale[key].encode("utf-8"),
)
@pytest.mark.parametrize("locale_file", locale_files)
def test_translation_format_consistency(locale_file):
inconsistencies = list(find_inconsistencies(locale_file))
if inconsistencies:
raise Exception("".join(inconsistencies))

78
test/test_i18n_keys.py Normal file
View file

@ -0,0 +1,78 @@
# -*- coding: utf-8 -*-
import re
import glob
import json
###############################################################################
# Find used keys in python code #
###############################################################################
def find_expected_string_keys():
# Try to find :
# m18n.g( "foo"
# MoulinetteError("foo"
# # i18n: "some_key"
p1 = re.compile(r"m18n\.g\(\s*[\"\'](\w+)[\"\']")
p2 = re.compile(r"Moulinette[a-zA-Z]+\(\s*[\'\"](\w+)[\'\"]")
p3 = re.compile(r"# i18n: [\'\"]?(\w+)[\'\"]?")
python_files = glob.glob("moulinette/*.py")
python_files.extend(glob.glob("moulinette/*/*.py"))
for python_file in python_files:
content = open(python_file).read()
for m in p1.findall(content):
if m.endswith("_"):
continue
yield m
for m in p2.findall(content):
if m.endswith("_"):
continue
yield m
for m in p3.findall(content):
if m.endswith("_"):
continue
yield m
###############################################################################
# Load en locale json keys #
###############################################################################
def keys_defined_for_en():
return json.loads(open("locales/en.json").read()).keys()
###############################################################################
# Compare keys used and keys defined #
###############################################################################
expected_string_keys = set(find_expected_string_keys())
keys_defined = set(keys_defined_for_en())
def test_undefined_i18n_keys():
undefined_keys = expected_string_keys.difference(keys_defined)
undefined_keys = sorted(undefined_keys)
if undefined_keys:
raise Exception(
"Those i18n keys should be defined in en.json:\n"
" - " + "\n - ".join(undefined_keys)
)
def test_unused_i18n_keys():
unused_keys = keys_defined.difference(expected_string_keys)
unused_keys = sorted(unused_keys)
if unused_keys:
raise Exception(
"Those i18n keys appears unused:\n" " - " + "\n - ".join(unused_keys)
)

View file

@ -17,6 +17,11 @@ commands =
py37-pytest: pytest {posargs} -c pytest.ini py37-pytest: pytest {posargs} -c pytest.ini
py37-lint: flake8 moulinette test py37-lint: flake8 moulinette test
[gh-actions]
python =
3.7: py37
3.9: py39
[testenv:format] [testenv:format]
basepython = python3 basepython = python3
commands = black {posargs} moulinette test commands = black {posargs} moulinette test