Compare commits

...

305 commits

Author SHA1 Message Date
Alexandre Aubin
99873caa7c
Merge pull request #577 from yunohost-bot/weblate-yunohost-admin
Translations update from Weblate
2024-08-31 20:08:18 +02:00
José M
f077b8415a Translated using Weblate (Galician)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/gl/
2024-08-30 19:54:49 +02:00
xabirequejo
a2647f6cec Translated using Weblate (Basque)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eu/
2024-08-30 19:54:49 +02:00
xabirequejo
e0857f184d Translated using Weblate (Basque)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eu/
2024-08-26 13:54:48 +02:00
Alexandre Aubin
26fdebc57b Update changelog for 11.2.8 2024-08-25 13:26:06 +02:00
Alexandre Aubin
bf785a11e3
Merge pull request #576 from yunohost-bot/weblate-yunohost-admin
Translations update from Weblate
2024-08-25 13:24:50 +02:00
craftrac
b4769273fa Translated using Weblate (Greek)
Currently translated at 11.1% (62 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/el/
2024-08-24 10:54:48 +02:00
cjdw
6bf0b9ec29 Translated using Weblate (Indonesian)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/id/
2024-08-22 02:54:48 +02:00
José M
f26e15c0c8 Translated using Weblate (Galician)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/gl/
2024-08-22 02:54:48 +02:00
Alexandre Aubin
215ee68044
Merge pull request #574 from yunohost-bot/weblate-yunohost-admin
Translations update from Weblate
2024-08-20 20:33:42 +02:00
xabirequejo
a59cd08e30 Translated using Weblate (Basque)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eu/
2024-08-20 18:54:48 +02:00
xabirequejo
b33e76fd3f Translated using Weblate (Basque)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eu/
2024-08-17 12:54:48 +02:00
cjdw
3b11a8c0fa Translated using Weblate (Indonesian)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/id/
2024-08-09 12:54:48 +02:00
cjdw
39f198fcb4 Translated using Weblate (Indonesian)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/id/
2024-08-07 08:55:15 +02:00
xabirequejo
fbb8305e86 Translated using Weblate (Basque)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eu/
2024-08-05 20:30:16 +02:00
cjdw
aac77cb8af Translated using Weblate (Indonesian)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/id/
2024-08-04 18:57:20 +02:00
Ivan Davydov
9d48b3429f Translated using Weblate (Russian)
Currently translated at 99.8% (556 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/ru/
2024-08-04 18:57:20 +02:00
xabirequejo
c5d86e27c3 Translated using Weblate (Basque)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eu/
2024-08-04 18:57:20 +02:00
Ali Çırçır
03ae379aea Translated using Weblate (Turkish)
Currently translated at 98.3% (548 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/tr/
2024-08-03 17:54:47 +02:00
cjdw
ca449b6c59 Translated using Weblate (Indonesian)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/id/
2024-08-02 15:54:47 +02:00
cjdw
9c389c208e Translated using Weblate (Indonesian)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/id/
2024-07-27 04:54:47 +02:00
cjdw
a35a54aaaf Translated using Weblate (Indonesian)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/id/
2024-07-25 18:54:47 +02:00
Grzegorz Cichocki
18dfd23e81 Translated using Weblate (Polish)
Currently translated at 97.6% (544 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/pl/
2024-07-22 10:36:28 +02:00
Jose Riha
a88afebd1d Translated using Weblate (Slovak)
Currently translated at 89.7% (500 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/sk/
2024-07-20 11:54:50 +02:00
cjdw
c87af75bd7 Translated using Weblate (Indonesian)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/id/
2024-07-20 11:54:50 +02:00
Jose Riha
f003c17e51 Translated using Weblate (Slovak)
Currently translated at 89.5% (499 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/sk/
2024-07-16 07:14:20 +02:00
cjdw
c7be3db41c Translated using Weblate (Indonesian)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/id/
2024-07-16 07:14:20 +02:00
Alexandre Aubin
ccc9cb03ba Update changelog for 11.2.7 2024-07-15 16:35:27 +02:00
Alexandre Aubin
27009ef854
Merge pull request #572 from yunohost-bot/weblate-yunohost-admin
Translations update from Weblate
2024-07-15 16:14:31 +02:00
cjdw
c0b8fb1a68 Translated using Weblate (Indonesian)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/id/
2024-07-11 16:56:31 +02:00
cjdw
937f158e5b Translated using Weblate (Indonesian)
Currently translated at 94.9% (529 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/id/
2024-07-06 00:49:26 +02:00
Ivan Davydov
d670555f59 Translated using Weblate (Russian)
Currently translated at 99.8% (556 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/ru/
2024-07-06 00:49:26 +02:00
Andreas Gammelgaard Damsbo
763c779547 Translated using Weblate (Danish)
Currently translated at 13.1% (73 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/da/
2024-07-06 00:49:26 +02:00
Kuba Bazan
4e1f411eed Translated using Weblate (Polish)
Currently translated at 97.6% (544 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/pl/
2024-07-06 00:49:26 +02:00
Jose Riha
0e1fcfd4b6 Translated using Weblate (Slovak)
Currently translated at 88.1% (491 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/sk/
2024-07-06 00:49:26 +02:00
xabirequejo
737af32352 Translated using Weblate (Basque)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eu/
2024-07-06 00:49:26 +02:00
OniriCorpe
a309c2eb1c
Merge pull request #573 from YunoHost/disable-referer 2024-07-06 00:49:22 +02:00
Alexandre Aubin
3b50606ff8 Disable sending referer when clicking on links to external websites 2024-07-05 19:00:19 +02:00
OniriCorpe
ad7c927aa1 Update 11.2.6 2024-05-20 00:18:50 +02:00
OniriCorpe
653689e8ae chores: add make_changelog script 2024-05-20 00:18:50 +02:00
Alexandre Aubin
5685bf9934
Merge pull request #571 from yunohost-bot/weblate-yunohost-admin
Translations update from Weblate
2024-05-19 23:36:39 +02:00
rosbeef andino
5f499a4d61 Translated using Weblate (Spanish)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/es/
2024-05-10 17:59:13 +02:00
José M
dde2bf168d Translated using Weblate (Galician)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/gl/
2024-05-08 12:13:03 +02:00
OniriCorpe
4aec50c0b9
Merge pull request #570 from yunohost-bot/weblate-yunohost-admin 2024-05-08 05:17:34 +02:00
OniriCorpe
b8c2b46d72 Translated using Weblate (French)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/
2024-05-08 05:16:30 +02:00
OniriCorpe
f3de655143
Merge pull request #569 from yunohost-bot/weblate-yunohost-admin 2024-05-08 01:48:04 +02:00
OniriCorpe
8a5bcb64f5 Translated using Weblate (French)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/
2024-05-08 01:43:27 +02:00
Alexandre Aubin
a50344a9f7
Merge pull request #568 from YunoHost/OniriCorpe-patch-1
fix a weird sentence
2024-05-08 01:41:51 +02:00
Alexandre Aubin
9d81fa42cd
Merge pull request #566 from YunoHost/dependabot/npm_and_yarn/app/vite-4.5.3
Bump vite from 4.5.2 to 4.5.3 in /app
2024-05-08 01:41:39 +02:00
OniriCorpe
a0cf68e6bc
fix a weird sentence 2024-05-08 01:40:38 +02:00
Alexandre Aubin
225c1a9eab
Merge pull request #567 from yunohost-bot/weblate-yunohost-admin
Translations update from Weblate
2024-05-08 01:16:37 +02:00
OniriCorpe
f68dc4170d Translated using Weblate (French)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/
2024-05-08 01:11:43 +02:00
Øjvind Fritjof Arnfred
8d9f201622 Translated using Weblate (Danish)
Currently translated at 11.1% (62 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/da/
2024-04-24 23:17:38 +02:00
Andreas Gammelgaard Damsbo
f2ec80a0e4 Translated using Weblate (Danish)
Currently translated at 6.1% (34 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/da/
2024-04-24 02:11:57 +02:00
Øjvind Fritjof Arnfred
fc00adb21a Translated using Weblate (Danish)
Currently translated at 6.1% (34 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/da/
2024-04-24 02:11:57 +02:00
Andreas Gammelgaard Damsbo
571c44f3da Translated using Weblate (Danish)
Currently translated at 1.4% (8 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/da/
2024-04-23 16:43:49 +02:00
Øjvind Fritjof Arnfred
16e5d5b429 Translated using Weblate (Danish)
Currently translated at 1.4% (8 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/da/
2024-04-23 16:43:49 +02:00
Titus PiJean
c4650ebd62 Translated using Weblate (French)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/
2024-04-22 16:38:52 +02:00
bruno van den bosch
72cb162f7e Translated using Weblate (Dutch)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/nl/
2024-04-22 16:38:52 +02:00
axolotle
5a805463bb fix: config panel "tags" turned into "select" 2024-04-22 16:38:26 +02:00
Alexandre Aubin
e9d9aa36cb Update changelog for 11.2.5 2024-04-11 14:12:45 +02:00
Alexandre Aubin
968b109b0c
Merge pull request #562 from yunohost-bot/weblate-yunohost-admin
Translations update from Weblate
2024-04-11 14:04:58 +02:00
dependabot[bot]
09baea5320
Bump vite from 4.5.2 to 4.5.3 in /app
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.5.2 to 4.5.3.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v4.5.3/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v4.5.3/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-04 01:55:25 +00:00
José M
cecbdc9184 Translated using Weblate (Galician)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/gl/
2024-04-03 05:39:18 +02:00
José M
df6825de08 Translated using Weblate (Galician)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/gl/
2024-04-02 10:54:44 +02:00
OniriCorpe
1e297a1ea5 Translated using Weblate (French)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/
2024-04-02 10:54:44 +02:00
xabirequejo
399965ddbb Translated using Weblate (Basque)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eu/
2024-04-02 10:54:43 +02:00
OniriCorpe
9f41a0eabb Translated using Weblate (German)
Currently translated at 99.6% (555 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/de/
2024-04-02 10:54:43 +02:00
xabirequejo
d52b520c98 Translated using Weblate (Basque)
Currently translated at 99.8% (556 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eu/
2024-03-31 17:05:14 +02:00
Poesty Li
b7fdb98b62 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/zh_Hans/
2024-03-31 17:05:14 +02:00
Tommi
d8309461f3 Translated using Weblate (Italian)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/it/
2024-03-31 17:05:14 +02:00
José M
3a40bfd121 Translated using Weblate (Galician)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/gl/
2024-03-31 17:05:14 +02:00
Boudewijn
ffc6b7e448 Translated using Weblate (Dutch)
Currently translated at 45.0% (251 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/nl/
2024-03-31 17:05:14 +02:00
OniriCorpe
7553def2b2
Merge pull request #565 from YunoHost/missing-interrogative-sign
Translation: fix missing interrogative signs
2024-03-31 17:05:09 +02:00
OniriCorpe
b3fda97bf2 fix missing interrogative signs 2024-03-31 17:02:59 +02:00
OniriCorpe
dedaf98c50
Allow plus on email (#564) 2024-03-31 16:05:37 +02:00
Émile
2ec73a9383 allow plus on email 2024-03-31 12:51:31 +02:00
axolotle
e1b2630138 fix: logs text selection enabler shortcut 2024-03-29 16:57:22 +01:00
Axolotle
ab4dc8fd4e
Merge pull request #563 from YunoHost/fixes
fixes: login not redirecting + /domains query appearing in history
2024-03-26 23:22:31 +01:00
axolotle
8479fe4a20 fix: use api instead of store action to query domains 2024-03-26 23:17:17 +01:00
axolotle
a5e0022fb5 fix(login): return proper Promise on login action 2024-03-26 23:16:19 +01:00
Tagada
4b484a0396
Merge pull request #561 from yunohost-bot/weblate-yunohost-admin
Translations update from Weblate
2024-03-24 16:56:52 +01:00
Jan-Willem Swane
2db437c622 Translated using Weblate (Dutch)
Currently translated at 36.8% (205 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/nl/
2024-03-24 13:59:59 +01:00
Christian Wehrli
dd7bd0b489 Translated using Weblate (German)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/de/
2024-03-24 13:59:59 +01:00
OniriCorpe
2ff1bff4a9 Translated using Weblate (French)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/
2024-03-24 01:36:35 +01:00
Gregor
28332c9092 Translated using Weblate (German)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/de/
2024-03-24 01:36:34 +01:00
OniriCorpe
c29f11407e Translated using Weblate (Korean)
Currently translated at 3.5% (20 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/ko/
2024-03-23 20:05:00 +01:00
OniriCorpe
2fb3a03cdc Translated using Weblate (Japanese)
Currently translated at 96.9% (540 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/ja/
2024-03-23 20:04:59 +01:00
OniriCorpe
4a23002172 Translated using Weblate (Lithuanian)
Currently translated at 12.0% (67 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/lt/
2024-03-23 20:04:59 +01:00
OniriCorpe
d386bf5035 Translated using Weblate (Portuguese (Brazil))
Currently translated at 4.1% (23 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/pt_BR/
2024-03-23 20:04:59 +01:00
OniriCorpe
4f905d88d7 Translated using Weblate (Telugu)
Currently translated at 28.0% (156 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/te/
2024-03-23 20:04:59 +01:00
OniriCorpe
ca9e399ca6 Translated using Weblate (Slovak)
Currently translated at 87.9% (490 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/sk/
2024-03-23 20:04:59 +01:00
OniriCorpe
0d4bd13579 Translated using Weblate (Slovenian)
Currently translated at 21.3% (119 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/sl/
2024-03-23 20:04:58 +01:00
OniriCorpe
7c7cfa7e24 Translated using Weblate (Indonesian)
Currently translated at 91.0% (507 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/id/
2024-03-23 20:04:58 +01:00
OniriCorpe
671be81a54 Translated using Weblate (Persian)
Currently translated at 69.2% (386 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fa/
2024-03-23 20:04:58 +01:00
OniriCorpe
094ce99166 Translated using Weblate (Ukrainian)
Currently translated at 98.7% (550 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/uk/
2024-03-23 20:04:58 +01:00
OniriCorpe
8ca25bbeba Translated using Weblate (Finnish)
Currently translated at 77.9% (434 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fi/
2024-03-23 20:04:58 +01:00
OniriCorpe
d50626e789 Translated using Weblate (Czech)
Currently translated at 72.5% (404 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/cs/
2024-03-23 20:04:57 +01:00
OniriCorpe
c7d66f5332 Translated using Weblate (Chinese (Simplified))
Currently translated at 98.9% (551 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/zh_Hans/
2024-03-23 20:04:57 +01:00
OniriCorpe
418c9c2a63 Translated using Weblate (Turkish)
Currently translated at 85.0% (474 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/tr/
2024-03-23 20:04:57 +01:00
OniriCorpe
937f732fd4 Translated using Weblate (Swedish)
Currently translated at 24.4% (136 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/sv/
2024-03-23 20:04:57 +01:00
OniriCorpe
4dc8fc2699 Translated using Weblate (Russian)
Currently translated at 90.4% (504 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/ru/
2024-03-23 20:04:56 +01:00
OniriCorpe
8395b2d95b Translated using Weblate (Portuguese)
Currently translated at 72.8% (406 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/pt/
2024-03-23 20:04:56 +01:00
OniriCorpe
8e765e9fb7 Translated using Weblate (Polish)
Currently translated at 97.1% (541 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/pl/
2024-03-23 20:04:56 +01:00
OniriCorpe
fdabed55cb Translated using Weblate (Occitan)
Currently translated at 91.2% (508 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/oc/
2024-03-23 20:04:56 +01:00
OniriCorpe
f2cdd949ca Translated using Weblate (Dutch)
Currently translated at 36.4% (203 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/nl/
2024-03-23 20:04:55 +01:00
OniriCorpe
230dc8b14a Translated using Weblate (Italian)
Currently translated at 96.2% (536 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/it/
2024-03-23 20:04:55 +01:00
OniriCorpe
122e2482de Translated using Weblate (French)
Currently translated at 99.8% (556 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/
2024-03-23 20:04:55 +01:00
OniriCorpe
b6bdf0854d Translated using Weblate (Basque)
Currently translated at 98.5% (549 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eu/
2024-03-23 20:04:54 +01:00
OniriCorpe
53fcfa72b3 Translated using Weblate (Spanish)
Currently translated at 99.1% (552 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/es/
2024-03-23 20:04:54 +01:00
OniriCorpe
a22fa45807 Translated using Weblate (Esperanto)
Currently translated at 44.1% (246 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eo/
2024-03-23 20:04:54 +01:00
OniriCorpe
0b2a736c1c Translated using Weblate (German)
Currently translated at 99.6% (555 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/de/
2024-03-23 20:04:54 +01:00
OniriCorpe
62741c3c4f Translated using Weblate (Catalan)
Currently translated at 99.4% (554 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/ca/
2024-03-23 20:04:54 +01:00
OniriCorpe
8adca39e7e Translated using Weblate (Arabic)
Currently translated at 87.2% (486 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/ar/
2024-03-23 20:04:53 +01:00
OniriCorpe
8536c0c035 Translated using Weblate (English)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/en/
2024-03-23 20:04:53 +01:00
José M
825df1ee9b Translated using Weblate (Galician)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/gl/
2024-03-23 14:39:36 +01:00
ppr
d85cd961ab Translated using Weblate (French)
Currently translated at 99.8% (556 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/
2024-03-23 14:39:36 +01:00
xabirequejo
e460fb3ad9 Translated using Weblate (Basque)
Currently translated at 99.6% (555 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eu/
2024-03-23 14:39:36 +01:00
xaloc33
a0bbc40e74 Translated using Weblate (Catalan)
Currently translated at 99.6% (555 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/ca/
2024-03-23 14:39:35 +01:00
OniriCorpe
e219718ef0 Translated using Weblate (Slovenian)
Currently translated at 20.8% (116 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/sl/
2024-03-23 06:05:35 +01:00
OniriCorpe
3f286bc2c3 Translated using Weblate (Macedonian)
Currently translated at 0.8% (5 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/mk/
2024-03-23 06:05:35 +01:00
OniriCorpe
2db95e5c94 Translated using Weblate (Galician)
Currently translated at 98.9% (551 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/gl/
2024-03-23 06:05:34 +01:00
Bram
66330fb6e7 Translated using Weblate (Bengali (Bangladesh))
Currently translated at 1.2% (7 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/bn_BD/
2024-03-23 06:05:34 +01:00
OniriCorpe
dcecb81a71 Translated using Weblate (Turkish)
Currently translated at 85.0% (474 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/tr/
2024-03-23 06:05:34 +01:00
OniriCorpe
21b3e9d01f Translated using Weblate (Swedish)
Currently translated at 23.8% (133 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/sv/
2024-03-23 06:05:34 +01:00
OniriCorpe
59dc6e99e8 Translated using Weblate (Portuguese)
Currently translated at 72.7% (405 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/pt/
2024-03-23 06:05:33 +01:00
Bram
88a994b294 Translated using Weblate (Dutch)
Currently translated at 36.0% (201 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/nl/
2024-03-23 06:05:33 +01:00
OniriCorpe
311b70eed0 Translated using Weblate (French)
Currently translated at 99.8% (556 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/
2024-03-23 06:05:33 +01:00
OniriCorpe
40f6908565 Translated using Weblate (Basque)
Currently translated at 98.5% (549 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eu/
2024-03-23 06:05:32 +01:00
OniriCorpe
7aa481198f Translated using Weblate (Esperanto)
Currently translated at 43.9% (245 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eo/
2024-03-23 06:05:32 +01:00
OniriCorpe
ee5ab71e8a Translated using Weblate (Catalan)
Currently translated at 98.9% (551 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/ca/
2024-03-23 06:05:32 +01:00
OniriCorpe
54fdb42e87 Translated using Weblate (English)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/en/
2024-03-23 06:05:32 +01:00
Francescc
25b7f3f79f Translated using Weblate (Catalan)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/ca/
2024-03-23 01:55:23 +01:00
OniriCorpe
d5bf2709de Translated using Weblate (French)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/
2024-03-23 01:54:39 +01:00
Francescc
4a4058aa4e Translated using Weblate (Catalan)
Currently translated at 99.8% (556 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/ca/
2024-03-23 01:54:38 +01:00
Tagada
e355f1ab42
Merge pull request #557 from yunohost-bot/weblate-yunohost-admin
Translations update from Weblate
2024-03-17 13:37:07 +01:00
OniriCorpe
030d637073 Translated using Weblate (French)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/
2024-03-17 04:55:29 +01:00
Christian Wehrli
a248f5eab4 Translated using Weblate (German)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/de/
2024-03-11 17:54:39 +01:00
OniriCorpe
4bbb526d33 Translated using Weblate (French)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/
2024-03-11 17:54:39 +01:00
OniriCorpe
f3c2670d20 Translated using Weblate (French)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/
2024-03-11 17:54:39 +01:00
axolotle
791a9fe9c7 fix: misc 2024-03-11 17:50:11 +01:00
Bram
8fe6a2aef4
Merge pull request #558 from YunoHost/OniriCorpe-patch-1
Readme: add pictures alt text and some markdown standardization
2024-03-09 12:52:40 +01:00
OniriCorpe
f8daac618f
Readme: add pictures alt text and some markdown standardization 2024-03-09 06:21:23 +01:00
José M
fc30ec1560 Translated using Weblate (Galician)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/gl/
2024-03-07 23:08:54 +01:00
OniriCorpe
d657f1acba Translated using Weblate (French)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/
2024-03-07 23:08:54 +01:00
OniriCorpe
21f604826f Translated using Weblate (English)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/en/
2024-03-07 23:08:54 +01:00
xabirequejo
061fad90bb Translated using Weblate (Basque)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eu/
2024-03-07 09:12:59 +01:00
xabirequejo
b82b79decf Translated using Weblate (Basque)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eu/
2024-03-07 09:12:59 +01:00
Christian Wehrli
182a74c91e Translated using Weblate (German)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/de/
2024-03-07 09:12:59 +01:00
José M
5e211588b4 Translated using Weblate (Galician)
Currently translated at 100.0% (557 of 557 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/gl/
2024-03-07 09:12:59 +01:00
Bram
d0cca4d423
Merge pull request #553 from YunoHost/pre-vue3-prettier-yarn
[2. pre-vue3] prettier + yarn to match yunohost-portal stack
2024-03-05 21:24:35 +01:00
Axolotle
6a7e79794c
Merge pull request #555 from YunoHost/pre-vue3
[1. pre-vue3] Pre vue3 changes
2024-03-03 16:32:12 +01:00
axolotle
b01b06c918 chore: add missing prettier dep 2024-03-03 15:55:05 +01:00
Alexandre Aubin
f81008c150
Merge pull request #552 from YunoHost/misc-fixes
Misc fixes
2024-03-02 17:47:22 +01:00
axolotle
93a31c3843 chore: update .github with yarn 2024-03-02 17:35:47 +01:00
axolotle
61e6af94b3 chore: rm package-lock.json & add yarn.lock 2024-03-02 03:49:08 +01:00
axolotle
225f46bc0d chore: replace npm with yarn 2024-03-02 03:46:02 +01:00
axolotle
4101310b89 chore: lint 2024-03-02 03:09:15 +01:00
axolotle
fb0ec742f5 chore: replace standard with prettier 2024-03-02 02:58:00 +01:00
axolotle
d5c91135bb refactor: reflect YBreadcrumb name change 2024-03-02 02:48:52 +01:00
axolotle
732c1147a3 rename BreadCrumb to YBreadcrumb 2024-03-02 02:48:52 +01:00
axolotle
0c433ac71f fix: deprecated slot syntax 2024-03-02 02:48:52 +01:00
axolotle
fea5730a29 lint 2024-03-02 02:48:52 +01:00
axolotle
85a4178549 refactor: use methods instead of filters 2024-03-02 02:47:30 +01:00
axolotle
c47d7e187d refactor: reflect components name changes 2024-03-02 02:47:30 +01:00
axolotle
8f89e4a8bc chore: rename single word components 2024-03-02 02:46:37 +01:00
axolotle
159f1b5a1a chore: component names to PascalCase 2024-03-02 02:46:37 +01:00
axolotle
e5a3f5df2b header sso link based on main domain or fallback to hostname 2024-03-02 00:20:28 +01:00
axolotle
237b36e2e2 centralize a bit moar app init stuff (installed/connected) 2024-03-02 00:20:10 +01:00
axolotle
10f4fb86b5 fix context evaluation for simple forms (not configpanels) 2024-03-02 00:14:58 +01:00
Alexandre Aubin
51c9f1a03f
Merge pull request #550 from YunoHost/enh-app-package-license
add package license link in AppInfo + AppInstall
2024-03-01 21:06:27 +01:00
axolotle
b44046d478 add package license link in AppInfo + AppInstall 2024-03-01 17:51:44 +01:00
YunoHost Bot
53bab95ef2
Translations update from Weblate (#549)
Co-authored-by: José M <correo@xmgz.eu>
2024-02-29 23:09:34 +01:00
Alexandre Aubin
66f0d00e25
Merge pull request #545 from YunoHost/rename-license-applicense
rename 'License' to 'App license"
2024-02-27 20:20:25 +01:00
Tagada
607842b668
Merge pull request #543 from yunohost-bot/weblate-yunohost-admin
Translations update from Weblate
2024-02-25 18:02:23 +01:00
Christian Wehrli
1b33d36870 Translated using Weblate (German)
Currently translated at 100.0% (556 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/de/
2024-02-25 17:59:48 +01:00
Tagada
590724ab46
Merge pull request #546 from YunoHost/OniriCorpe-patch-1
chores: update actions/checkout@v3 to v4
2024-02-25 17:59:44 +01:00
OniriCorpe
c6f4506308
update actions/checkout@v3 to v4
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
2024-02-25 04:18:46 +01:00
OniriCorpe
c720330969 rename 'License' to 'App license" 2024-02-25 04:02:42 +01:00
Tagada
d369f529c8 Update 11.2.4.1 2024-02-21 00:14:20 +01:00
OniriCorpe
a44048ae5d
Merge pull request #542 from yunohost-bot/weblate-yunohost-admin
Translations update from Weblate
2024-02-20 22:29:14 +01:00
Tommi
ea453fbcd3 Translated using Weblate (Italian)
Currently translated at 97.1% (540 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/it/
2024-02-13 02:54:44 +01:00
Francescc
1380f48c32 Translated using Weblate (Spanish)
Currently translated at 100.0% (556 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/es/
2024-02-13 02:54:44 +01:00
Francescc
307953c699 Translated using Weblate (Catalan)
Currently translated at 100.0% (556 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/ca/
2024-02-13 02:54:44 +01:00
xabirequejo
a5e0baeb4d Translated using Weblate (Basque)
Currently translated at 100.0% (556 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eu/
2024-02-07 11:54:41 +01:00
Quentí
3013da5ed3 Translated using Weblate (Occitan)
Currently translated at 92.0% (512 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/oc/
2024-02-03 22:57:56 +01:00
Éric Gaspar
12be6b4524 Translated using Weblate (French)
Currently translated at 100.0% (556 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/
2024-02-03 18:41:32 +01:00
Alexandre Aubin
9d3ad3bdf4
Merge pull request #541 from yunohost-bot/weblate-yunohost-admin
Translations update from Weblate
2024-02-02 22:00:29 +01:00
José M
3b83f6bd86 Translated using Weblate (Galician)
Currently translated at 100.0% (556 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/gl/
2024-02-01 12:36:41 +01:00
Carlos Solís
98213b5513 Translated using Weblate (Spanish)
Currently translated at 99.8% (555 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/es/
2024-02-01 03:01:50 +01:00
Carlos Solís
1696ad7fe8 Translated using Weblate (English)
Currently translated at 100.0% (556 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/en/
2024-02-01 03:01:50 +01:00
Francescc
a641cfddfc Translated using Weblate (Catalan)
Currently translated at 84.7% (471 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/ca/
2024-01-29 03:35:39 +01:00
Poesty Li
8457d0c410 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (556 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/zh_Hans/
2024-01-28 18:28:15 +01:00
Lasse Gismo
f447aa47c0 Translated using Weblate (German)
Currently translated at 100.0% (556 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/de/
2024-01-28 18:28:15 +01:00
ButterflyOfFire
ed886b73d8 Translated using Weblate (Kabyle)
Currently translated at 24.1% (134 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/kab/
2024-01-27 17:54:55 +01:00
ButterflyOfFire
6d8fc3f5fe Translated using Weblate (Arabic)
Currently translated at 88.8% (494 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/ar/
2024-01-27 17:54:55 +01:00
Weblate
0507cb9f01 Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/
2024-01-27 17:54:54 +01:00
Francescc
f2f9bcc6b8 Translated using Weblate (Catalan)
Currently translated at 68.3% (380 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/ca/
2024-01-27 08:51:35 +01:00
Mine_My
716199d236 Translated using Weblate (Korean)
Currently translated at 3.5% (20 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/ko/
2024-01-25 15:17:12 +01:00
Mine_My
106618c7b6 Added translation using Weblate (Korean) 2024-01-25 13:39:18 +01:00
Alexandre Aubin
c38fefa2d8
Merge pull request #540 from yunohost-bot/weblate-yunohost-admin
Translations update from Weblate
2024-01-15 23:42:56 +01:00
Emanuele Gissi
ba3353e992 Translated using Weblate (Italian)
Currently translated at 82.9% (461 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/it/
2024-01-14 21:31:21 +01:00
Christian Wehrli
7093625be4 Translated using Weblate (German)
Currently translated at 100.0% (556 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/de/
2024-01-11 18:49:29 +01:00
cube
04f25475fd Translated using Weblate (Ukrainian)
Currently translated at 100.0% (556 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/uk/
2024-01-03 04:39:27 +01:00
xabirequejo
5d6310e056 Translated using Weblate (Basque)
Currently translated at 100.0% (556 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eu/
2023-12-31 14:40:54 +01:00
Alexandre Aubin
3acfd19356 Update changelog for 11.2.4 2023-12-27 19:16:34 +01:00
Alexandre Aubin
dfa04aa68a
Merge pull request #538 from yunohost-bot/weblate-yunohost-admin
Translations update from Weblate
2023-12-27 18:49:24 +01:00
Kuba Bazan
6bccdccd53 Translated using Weblate (Polish)
Currently translated at 98.0% (545 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/pl/
2023-12-22 15:39:13 +01:00
José M
4cc85b293f Translated using Weblate (Galician)
Currently translated at 100.0% (556 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/gl/
2023-12-21 15:28:00 +01:00
Christian Wehrli
71c34bc6a5 Translated using Weblate (German)
Currently translated at 100.0% (556 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/de/
2023-12-21 15:28:00 +01:00
Christian Wehrli
937d7f0741 Translated using Weblate (German)
Currently translated at 99.8% (555 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/de/
2023-12-21 15:28:00 +01:00
Christian Wehrli
3a00920dc4 Translated using Weblate (German)
Currently translated at 99.4% (553 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/de/
2023-12-21 15:28:00 +01:00
xabirequejo
55db3a0f9a Translated using Weblate (Basque)
Currently translated at 100.0% (556 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eu/
2023-12-21 15:28:00 +01:00
Alexandre Aubin
cdca8b6a6a
Merge pull request #539 from YunoHost/allow-dots-in-username
Allow dots in usernames
2023-12-21 15:27:56 +01:00
Alexandre Aubin
539ee76230 Allow dots in usernames 2023-12-09 16:44:51 +01:00
Alexandre Aubin
6096033a1b
Merge pull request #537 from OniriCorpe/fix-safari-zoom
Disable safari automatic zoom on input field
2023-11-24 22:15:34 +01:00
OniriCorpe
9524b9c1d4 disable safari automatic zoom on input box 2023-11-04 02:43:42 +01:00
Alexandre Aubin
2b3ed35d83
Merge pull request #536 from methbkts/patch-1
chore: update actions version to use node 16 version
2023-10-31 12:59:09 +01:00
Metin Bektas
1e4756ca28
chore: update actions version to use node 16 version
Node 12 version is deprecated since April 2022.

> Node.js 12 actions are deprecated. For more information see: [github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12](https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/). Please update the following actions to use Node.js 16: actions/checkout@v2, actions/setup-python@v2
2023-10-31 10:56:22 +01:00
Alexandre Aubin
5a96a2ced5
Merge pull request #534 from yunohost-bot/weblate-yunohost-admin
Translations update from Weblate
2023-10-27 12:14:25 +02:00
José M
bebb22abec Translated using Weblate (Galician)
Currently translated at 100.0% (556 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/gl/
2023-10-26 09:05:53 +02:00
Jose Riha
80255167fa Translated using Weblate (Slovak)
Currently translated at 89.7% (499 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/sk/
2023-10-22 21:36:56 +02:00
xabirequejo
053a473a06 Translated using Weblate (Basque)
Currently translated at 100.0% (556 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eu/
2023-10-21 22:35:54 +02:00
José M
f20a992b82 Translated using Weblate (Galician)
Currently translated at 100.0% (556 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/gl/
2023-10-21 11:20:59 +02:00
ppr
ffbc312d2c Translated using Weblate (French)
Currently translated at 99.2% (552 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/
2023-10-18 00:20:28 +02:00
Jorge-vitrubio.net
0827620882 Translated using Weblate (Spanish)
Currently translated at 100.0% (556 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/es/
2023-10-13 16:54:35 +02:00
Jose Riha
475f8171e2 Translated using Weblate (Slovak)
Currently translated at 89.7% (499 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/sk/
2023-10-13 16:54:34 +02:00
Jose Riha
2f57371875 Translated using Weblate (Slovak)
Currently translated at 88.3% (491 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/sk/
2023-10-13 16:54:33 +02:00
José M
51b8b27421 Translated using Weblate (Galician)
Currently translated at 100.0% (556 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/gl/
2023-10-13 16:54:33 +02:00
Alexandre Aubin
71ea6c43fa dyndns/domainadd : fix message still pointing to the old thread when a dyndns domain is registered, provide a more comprehensive explanation about the situation 2023-10-13 16:54:07 +02:00
Alexandre Aubin
2337c343fd Update changelog for 11.2.3 2023-10-10 01:06:53 +02:00
Alexandre Aubin
41a3325b68
Merge pull request #533 from yunohost-bot/weblate-yunohost-admin
Translations update from Weblate
2023-10-09 23:10:21 +02:00
Jose Riha
4a7e876057 Translated using Weblate (Slovak)
Currently translated at 85.9% (478 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/sk/
2023-10-09 22:42:27 +02:00
Quentí
3dd4724bc2 Translated using Weblate (Occitan)
Currently translated at 92.4% (514 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/oc/
2023-10-01 21:13:38 +02:00
ppr
b17747a8e8 Translated using Weblate (French)
Currently translated at 99.4% (553 of 556 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/
2023-09-30 19:45:31 +02:00
ppr
73a9a13968 Translated using Weblate (French)
Currently translated at 99.8% (551 of 552 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/
2023-09-29 21:34:21 +02:00
Alexandre Aubin
c03fe36533
Merge pull request #529 from YunoHost/dyndns
enh: Handle dyndns subscribe/unsubscribe in web admin
2023-09-29 21:34:15 +02:00
Alexandre Aubin
fb9661c1c1 dyndns/domain: minor tweaks 2023-09-29 21:27:05 +02:00
axolotle
397f7634f2 quality: remove unused i18n keys + reorder 2023-09-29 21:27:02 +02:00
axolotle
742d660a4a lint: zz² 2023-09-29 21:21:04 +02:00
axolotle
bea53994c4 domain: add third domain add choice for local/test domains 2023-09-29 21:21:04 +02:00
Alexandre Aubin
2b48b18442 dyndns/domain: improve wording + explanations when adding domains 2023-09-29 21:21:04 +02:00
axolotle
221afa5d4e lint: meh 2023-09-29 21:21:04 +02:00
axolotle
17ce68f9a7 domain: rename dyndns 'unregister|unsubscribe' for consistency 2023-09-29 21:21:04 +02:00
axolotle
b7c17dccea domain: add dyndns unsubscribe checkbox in domain's removal modal 2023-09-29 21:21:04 +02:00
axolotle
74e79c5618 domain: add recovery password in DomainForm 2023-09-29 21:21:04 +02:00
Alexandre Aubin
93b73600c7
Merge pull request #532 from YunoHost/supportpurge
[enh] add --purge option in app uninstall modal
2023-09-29 17:15:43 +02:00
axolotle
88d19089e3 lint: zz 2023-09-29 17:13:12 +02:00
Alexandre Aubin
52d7b931e4
Merge pull request #528 from yunohost-bot/weblate-yunohost-admin
Translations update from Weblate
2023-09-29 17:07:59 +02:00
axolotle
3b33196df5 appinfo: fix 'from_catalog' dict access for custom apps 2023-09-29 17:04:04 +02:00
axolotle
357e41292e add --purge option in app uninstall modal 2023-09-29 17:02:36 +02:00
ButterflyOfFire
3573cf2f37 Translated using Weblate (Arabic)
Currently translated at 90.5% (499 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/ar/
2023-09-29 14:35:46 +02:00
Neko Nekowazarashi
6895cdb12c Translated using Weblate (Indonesian)
Currently translated at 94.5% (521 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/id/
2023-09-29 14:35:46 +02:00
Albion Severin
7035dc1698 Translated using Weblate (Czech)
Currently translated at 74.9% (413 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/cs/
2023-09-29 14:35:46 +02:00
José M
4578ecf94f Translated using Weblate (Galician)
Currently translated at 100.0% (551 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/gl/
2023-09-29 14:35:46 +02:00
Alexandre Aubin
c7e6671d57
Merge pull request #531 from YunoHost/add-link-to-repo
Add link to the package repo
2023-09-29 14:35:41 +02:00
Axolotle
215ee0a48c
AppInfo: fix linter error + use app manifest id for forum link 2023-09-29 14:32:48 +02:00
Tagada
86002daa29 Add link to the package repo 2023-09-28 16:56:42 +02:00
Alexandre Aubin
e9a6a5d34c Update changelog for 11.2.2 2023-08-31 17:35:58 +02:00
Alexandre Aubin
5401dceffe i18n: fix wording for fr string 2023-08-31 17:34:01 +02:00
Alexandre Aubin
8d32916976
Merge pull request #527 from yunohost-bot/weblate-yunohost-admin
Translations update from Weblate
2023-08-31 17:30:09 +02:00
taco
d079b8c46b Translated using Weblate (Spanish)
Currently translated at 100.0% (551 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/es/
2023-08-04 00:09:54 +02:00
ButterflyOfFire
0e54d0017c Translated using Weblate (Arabic)
Currently translated at 90.1% (497 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/ar/
2023-07-27 17:16:29 +02:00
Kuba Bazan
2cc36b854c Translated using Weblate (Polish)
Currently translated at 99.8% (550 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/pl/
2023-07-24 00:15:00 +02:00
Alexandre Aubin
c005fc5336 Updat changelog for 11.2.1 2023-07-17 20:53:03 +02:00
axolotle
1fe4320bde args: reflect pydantic change of name to id 2023-07-17 20:52:11 +02:00
Alexandre Aubin
2d5649ea6d Update changelog for 11.2 2023-07-17 16:30:33 +02:00
Alexandre Aubin
b96025f822
Merge pull request #526 from yunohost-bot/weblate-yunohost-admin
Translations update from Weblate
2023-07-17 15:52:41 +02:00
Christian Wehrli
efe29e89db Translated using Weblate (German)
Currently translated at 100.0% (551 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/de/
2023-07-17 15:52:30 +02:00
motcha
a817448370 Translated using Weblate (Japanese)
Currently translated at 100.0% (551 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/ja/
2023-07-17 15:52:29 +02:00
motcha
1555bc3620 Translated using Weblate (Japanese)
Currently translated at 88.0% (485 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/ja/
2023-07-17 15:52:29 +02:00
motcha
757c85ceb9 Translated using Weblate (Japanese)
Currently translated at 60.2% (332 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/ja/
2023-07-17 15:52:29 +02:00
motcha
5f48c8853f Added translation using Weblate (Japanese) 2023-07-17 15:52:29 +02:00
Grzegorz Cichocki
1cf93325b3 Translated using Weblate (Polish)
Currently translated at 99.8% (550 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/pl/
2023-07-17 15:52:29 +02:00
José M
f93f8111d5 Translated using Weblate (Galician)
Currently translated at 100.0% (551 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/gl/
2023-07-17 15:52:29 +02:00
xabirequejo
0640c59f57 Translated using Weblate (Basque)
Currently translated at 97.2% (536 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eu/
2023-07-17 15:52:29 +02:00
Alexandre Aubin
946c3e61e6 login view: set passwor min length to 4 to try to fix the demo admin not being accessible .. 2023-07-17 15:52:17 +02:00
Alexandre Aubin
d482cb8da5 Update changelog for 11.1.10 2023-06-11 19:44:51 +02:00
Alexandre Aubin
6893c6dac7
Merge pull request #523 from yunohost-bot/weblate-yunohost-admin
Translations update from Weblate
2023-06-11 19:32:06 +02:00
Weblate
6a5526f144 Merge branch 'dev' of https://github.com/YunoHost/yunohost-admin into dev 2023-06-06 11:34:05 +02:00
Alexandre Aubin
a3558f54e3 Funky 'dismiss' button for app notification ... let's go for 'understood' instead ... 2023-05-28 22:31:05 +02:00
ppr
84b1b4a2cc Translated using Weblate (French)
Currently translated at 99.8% (550 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/fr/
2023-05-25 21:27:16 +02:00
xabirequejo
e302127c1f Translated using Weblate (Basque)
Currently translated at 97.2% (536 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eu/
2023-05-23 23:03:35 +02:00
Quentí
e04d9bc090 Translated using Weblate (Occitan)
Currently translated at 93.8% (517 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/oc/
2023-05-21 23:38:57 +02:00
Alexandre Aubin
da75347810
Merge pull request #522 from yunohost-bot/weblate-yunohost-admin
Translations update from Weblate
2023-05-20 19:13:37 +02:00
Quentí
ad4440aa7c Translated using Weblate (Occitan)
Currently translated at 87.8% (484 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/oc/
2023-05-20 09:18:28 +02:00
Ilya
bb9e61add3 Translated using Weblate (Russian)
Currently translated at 94.1% (519 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/ru/
2023-05-20 04:15:23 +02:00
Quentí
c4488ebfec Translated using Weblate (Occitan)
Currently translated at 86.7% (478 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/oc/
2023-05-20 04:15:23 +02:00
Tymofii-Lytvynenko
dd01ba884c Translated using Weblate (Ukrainian)
Currently translated at 100.0% (551 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/uk/
2023-05-19 00:40:27 +02:00
Ilya
a32d65c080 Translated using Weblate (Russian)
Currently translated at 93.6% (516 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/ru/
2023-05-17 04:54:15 +02:00
Grzegorz Cichocki
2c6339ba1a Translated using Weblate (Polish)
Currently translated at 100.0% (551 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/pl/
2023-05-16 11:27:15 +02:00
Jose Riha
82ccd9ac9d Translated using Weblate (Slovak)
Currently translated at 87.6% (483 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/sk/
2023-05-10 13:27:30 +02:00
Alexandre Aubin
8808be68e4
Merge pull request #521 from yunohost-bot/weblate-yunohost-admin
Translations update from Weblate
2023-05-08 15:47:48 +02:00
Neko Nekowazarashi
2671827776 Translated using Weblate (Indonesian)
Currently translated at 94.0% (518 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/id/
2023-05-05 09:22:03 +02:00
Alexandre Aubin
878929c330
Merge pull request #519 from yunohost-bot/weblate-yunohost-admin
Translations update from Weblate
2023-04-27 17:02:41 +02:00
xabirequejo
4c77836916 Translated using Weblate (Basque)
Currently translated at 97.2% (536 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eu/
2023-04-27 00:43:00 +02:00
Neko Nekowazarashi
d02e479aed Translated using Weblate (Indonesian)
Currently translated at 93.6% (516 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/id/
2023-04-25 12:11:42 +02:00
José M
cfc201a26f Translated using Weblate (Galician)
Currently translated at 100.0% (551 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/gl/
2023-04-19 15:09:52 +02:00
xabirequejo
4425cb1b05 Translated using Weblate (Basque)
Currently translated at 97.0% (535 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eu/
2023-04-18 06:38:34 +02:00
xabirequejo
f82965fed0 Translated using Weblate (Basque)
Currently translated at 97.0% (535 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eu/
2023-04-12 12:07:42 +02:00
xabirequejo
e4ae7114b9 Translated using Weblate (Basque)
Currently translated at 97.0% (535 of 551 strings)

Translation: YunoHost/admin
Translate-URL: https://translate.yunohost.org/projects/yunohost/admin/eu/
2023-04-09 04:53:08 +02:00
Alexandre Aubin
c4faf505c4 Update changelog for 11.1.9.4 2023-04-04 14:31:38 +02:00
Alexandre Aubin
b619cc5acd debian: remove npm from build-depends because it's part of nodejs installed from nodesource... 2023-04-04 14:31:05 +02:00
Alexandre Aubin
7426eefe41 Update changelog for 11.1.9.3 2023-04-04 14:23:29 +02:00
Alexandre Aubin
bf1fbf6fff debian: use npm from nodesource, not from local/bin, during build 2023-04-04 14:22:39 +02:00
159 changed files with 10780 additions and 7800 deletions

View file

@ -10,8 +10,8 @@ jobs:
eslint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install npm dependencies
run: cd app && npm ci
- uses: actions/checkout@v4
- name: Install yarn dependencies
run: cd app && yarn install --frozen-lockfile
- name: Run linter
run: cd app && npm run lint
run: cd app && yarn lint

View file

@ -1,41 +1,37 @@
<h1 align="center">YunoHost Admin</h1>
<div align="center">
![Version](https://img.shields.io/github/v/tag/yunohost/yunohost-admin?label=version&sort=semver)
[![Tests status](https://github.com/YunoHost/yunohost-admin/actions/workflows/eslint.yml/badge.svg)](https://github.com/YunoHost/yunohost-admin/actions/workflows/eslint.yml)
[![Project license](https://img.shields.io/gitlab/license/yunohost/yunohost)](https://github.com/YunoHost/yunohost/blob/dev/LICENSE)
[YunoHost](https://yunohost.org) administration web interface (VueJS client for the API).
[YunoHost logo](https://yunohost.org) administration web interface (VueJS client for the API).
This client is a part of the YunoHost project, and can not be installed directly. Please visit the YunoHost website for [installation instructions](https://yunohost.org/install).
![](./doc/home.png)
This client is a part of the YunoHost project, and can not be installed directly.
Please visit the YunoHost website for [installation instructions](https://yunohost.org/install).
![Web admin insterface screenshot](./doc/home.png)
</div>
Issues
------
## Issues
- [Please report issues on YunoHost bugtracker](https://github.com/YunoHost/issues).
Translation
-----------
## Translation
You can help translate Yunohost-Admin on our [translation platform](https://translate.yunohost.org/engage/yunohost/?utm_source=widget)
<div align="center"><img src="https://translate.yunohost.org/widgets/yunohost/-/admin/horizontal-auto.svg" alt="Translation status" /></div>
<div align="center"><img alt="View of the translation rate for the different languages available in YunoHost" src="https://translate.yunohost.org/widgets/yunohost/-/admin/horizontal-auto.svg" alt="Translation status" /></div>
Developpers
-------------
## Developpers
Contributions are welcome!
In order to contribute you will need to setup a development environment using [ynh-dev](https://github.com/YunoHost/ynh-dev) (see the README).
In order to contribute you will need to setup a development environment using [ynh-dev](https://github.com/YunoHost/ynh-dev) (see the README).
Once you have a environment running and are attached to it (with `./ynh-dev start`) you will be able to run:
```
$ ./ynh-dev use-git yunohost-admin
```bash
./ynh-dev use-git yunohost-admin
```
This command will install all dependencies and start a dev server (based on [webpack-dev-server](https://github.com/webpack/webpack-dev-server)) with Hot-Module-Replacement (live updates on code modification without reloading the page nor rebuilding the whole code). After the build step, click on the "Network:" link and you are good to go.

View file

@ -2,37 +2,17 @@ module.exports = {
root: true,
env: {
es2021: true,
node: true
node: true,
},
extends: [
'plugin:vue/strongly-recommended',
'eslint:recommended',
'standard'
'plugin:prettier/recommended',
],
rules: {
'vue/max-attributes-per-line': [
'error',
{
singleline: 3,
multiline: 3
}
],
'vue/multi-word-component-names': 'off', // FIXME this should be adressed at some point
'no-console': 'warn',
'template-curly-spacing': 'off',
camelcase: 'warn',
indent: 'off',
'no-irregular-whitespace': 'off',
'no-unused-vars': [
'warn',
{ varsIgnorePattern: '^_', destructuredArrayIgnorePattern: '^_' }
{ varsIgnorePattern: '^_', destructuredArrayIgnorePattern: '^_' },
],
quotes: 'warn',
'no-multiple-empty-lines': [
'error',
{
max: 2
}
]
}
},
}

1
app/.prettierignore Normal file
View file

@ -0,0 +1 @@
dist/

19
app/.prettierrc Normal file
View file

@ -0,0 +1,19 @@
{
"semi": false,
"tabWidth": 2,
"singleQuote": true,
"overrides": [
{
"files": "**/*.json",
"options": {
"tabWidth": 4
}
},
{
"files": "./*.json",
"options": {
"tabWidth": 2
}
}
]
}

View file

@ -1,17 +1,25 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=yes"
/>
<meta name="format-detection" content="telephone=no" />
<meta name="robots" content="noindex, nofollow">
<link rel="icon" href="/favicon.png">
<meta name="robots" content="noindex, nofollow" />
<meta name="referrer" content="no-referrer" />
<link rel="icon" href="/favicon.png" />
<title>YunoHost Admin</title>
</head>
<body>
<noscript>
<strong>We're sorry but YunoHost Admin doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
<strong>
We're sorry but YunoHost Admin doesn't work properly without JavaScript
enabled. Please enable it to continue.
</strong>
</noscript>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>

2703
app/package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -7,8 +7,10 @@
"scripts": {
"dev": "vite",
"build": "vite build",
"lint": "eslint --ext .js,.vue src",
"lint-fix": "lint --fix"
"lint:js": "eslint --ext \".ts,.vue,.cjs,.js\" --ignore-path ../.gitignore .",
"lint:prettier": "prettier --check .",
"lint": "yarn lint:js && yarn lint:prettier",
"lintfix": "prettier --write --list-different . && yarn lint:js --fix"
},
"dependencies": {
"@fontsource/fira-code": "^4.5.13",
@ -28,12 +30,14 @@
"@vitejs/plugin-vue2": "^2.2.0",
"bootstrap": "^4.6.0",
"eslint": "^8.36.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-vue": "^9.10.0",
"popper.js": "^1.16.0",
"portal-vue": "^2.1.7",
"prettier": "^3.2.5",
"sass": "^1.60.0",
"standard": "^17.0.0",
"vite": "^4.2.1"
"vite": "^4.5.3"
},
"browserslist": [
"> 1%",

View file

@ -2,78 +2,93 @@
<div id="app" class="container">
<!-- HEADER -->
<header>
<b-navbar>
<b-navbar-brand
:to="{ name: 'home' }" :disabled="waiting"
exact exact-active-class="active"
<BNavbar>
<BNavbarBrand
:to="{ name: 'home' }"
:disabled="waiting"
exact
exact-active-class="active"
>
<span v-if="theme">
<img alt="YunoHost logo" src="./assets/logo_light.png" width="40">
<img alt="YunoHost logo" src="./assets/logo_light.png" width="40" />
</span>
<span v-else>
<img alt="YunoHost logo" src="./assets/logo_dark.png" width="40">
<img alt="YunoHost logo" src="./assets/logo_dark.png" width="40" />
</span>
</b-navbar-brand>
</BNavbarBrand>
<b-navbar-nav class="ml-auto">
<BNavbarNav class="ml-auto">
<li class="nav-item">
<b-button
href="/yunohost/sso"
variant="primary" size="sm" block
>
{{ $t('user_interface_link') }} <icon iname="user" />
</b-button>
<BButton :href="ssoLink" variant="primary" size="sm" block>
{{ $t('user_interface_link') }} <YIcon iname="user" />
</BButton>
</li>
<li class="nav-item" v-show="connected">
<b-button
<BButton
@click.prevent="logout"
variant="outline-dark" block size="sm"
variant="outline-dark"
block
size="sm"
>
{{ $t('logout') }} <icon iname="sign-out" />
</b-button>
{{ $t('logout') }} <YIcon iname="sign-out" />
</BButton>
</li>
</b-navbar-nav>
</b-navbar>
</BNavbarNav>
</BNavbar>
</header>
<!-- MAIN -->
<view-lock-overlay>
<breadcrumb />
<ViewLockOverlay>
<YBreadcrumb />
<main id="main">
<!-- The `key` on router-view make sure that if a link points to a page that
<!-- The `key` on RouterView make sure that if a link points to a page that
use the same component as the previous one, it will be refreshed -->
<transition v-if="transitions" :name="transitionName">
<router-view class="animated" :key="routerKey" />
</transition>
<router-view v-else class="static" :key="routerKey" />
<Transition v-if="transitions" :name="transitionName">
<RouterView class="animated" :key="routerKey" />
</Transition>
<RouterView v-else class="static" :key="routerKey" />
</main>
</view-lock-overlay>
</ViewLockOverlay>
<!-- HISTORY CONSOLE -->
<history-console />
<HistoryConsole />
<!-- FOOTER -->
<footer class="py-3 mt-auto">
<nav>
<b-nav class="justify-content-center">
<b-nav-item href="https://yunohost.org/docs" target="_blank" link-classes="text-secondary">
<icon iname="book" /> {{ $t('footer.documentation') }}
</b-nav-item>
<b-nav-item href="https://yunohost.org/help" target="_blank" link-classes="text-secondary">
<icon iname="life-ring" /> {{ $t('footer.help') }}
</b-nav-item>
<b-nav-item href="https://donate.yunohost.org/" target="_blank" link-classes="text-secondary">
<icon iname="heart" /> {{ $t('footer.donate') }}
</b-nav-item>
<BNav class="justify-content-center">
<BNavItem
href="https://yunohost.org/docs"
target="_blank"
link-classes="text-secondary"
>
<YIcon iname="book" /> {{ $t('footer.documentation') }}
</BNavItem>
<BNavItem
href="https://yunohost.org/help"
target="_blank"
link-classes="text-secondary"
>
<YIcon iname="life-ring" /> {{ $t('footer.help') }}
</BNavItem>
<BNavItem
href="https://donate.yunohost.org/"
target="_blank"
link-classes="text-secondary"
>
<YIcon iname="heart" /> {{ $t('footer.donate') }}
</BNavItem>
<b-nav-text
v-if="yunohost" id="yunohost-version" class="ml-md-auto text-center"
<BNavText
v-if="yunohost"
id="yunohost-version"
class="ml-md-auto text-center"
>
<span v-html="$t('footer_version', yunohost)" />
</b-nav-text>
</b-nav>
</BNavText>
</BNav>
</nav>
</footer>
</div>
@ -89,7 +104,7 @@ export default {
components: {
HistoryConsole,
ViewLockOverlay
ViewLockOverlay,
},
computed: {
@ -100,35 +115,32 @@ export default {
'transitions',
'transitionName',
'waiting',
'theme'
])
'theme',
'ssoLink',
]),
},
methods: {
async logout () {
async logout() {
this.$store.dispatch('LOGOUT')
}
},
},
// This hook is only triggered at page first load
created () {
// From this hook the value of `connected` always come from the localStorage.
// This state may be `true` but session may have expired, by querying
// yunohost infos, api may respond with `Unauthorized` in which case the `connected`
// state will be automaticly reseted and user will be prompt with the login view.
if (this.connected) {
this.$store.dispatch('GET_YUNOHOST_INFOS')
}
created() {
this.$store.dispatch('ON_APP_CREATED')
},
mounted () {
mounted() {
// Unlock copypasta on log view
const copypastaCode = ['ArrowDown', 'ArrowDown', 'ArrowUp', 'ArrowUp']
let copypastastep = 0
document.addEventListener('keydown', ({ key }) => {
if (key === copypastaCode[copypastastep++]) {
if (copypastastep === copypastaCode.length) {
document.getElementsByClassName('unselectable').forEach((element) => element.classList.remove('unselectable'))
document
.querySelectorAll('.unselectable')
.forEach((element) => element.classList.remove('unselectable'))
copypastastep = 0
}
} else {
@ -137,7 +149,18 @@ export default {
})
// Konamicode ;P
const konamiCode = ['ArrowUp', 'ArrowUp', 'ArrowDown', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'ArrowLeft', 'ArrowRight', 'b', 'a']
const konamiCode = [
'ArrowUp',
'ArrowUp',
'ArrowDown',
'ArrowDown',
'ArrowLeft',
'ArrowRight',
'ArrowLeft',
'ArrowRight',
'b',
'a',
]
let konamistep = 0
document.addEventListener('keydown', ({ key }) => {
if (key === konamiCode[konamistep++]) {
@ -162,7 +185,7 @@ export default {
}
document.documentElement.setAttribute('dark-theme', this.theme) // updates the data-theme attribute
}
},
}
</script>
@ -182,14 +205,14 @@ header {
padding: 1rem 0;
img {
width: 70px;
width: 70px;
}
.navbar-nav {
flex-direction: column;
li {
margin: .2rem 0;
margin: 0.2rem 0;
}
}
}
@ -200,21 +223,23 @@ main {
// Routes transition
.animated {
transition: all .15s ease-in-out;
transition: all 0.15s ease-in-out;
}
.slide-left-enter, .slide-right-leave-active {
.slide-left-enter,
.slide-right-leave-active {
position: absolute;
width: 100%;
top: 0;
transform: translate(100vw, 0);
}
.slide-left-leave-active, .slide-right-enter {
.slide-left-leave-active,
.slide-right-enter {
position: absolute;
width: 100%;
top: 0;
transform: translate(-100vw, 0);
}
// hack to hide last transition provoqued by the <router-view> element change
// hack to hide last transition provoqued by the <RouterView> element change
// while disabling the transitions in ToolWebAdmin
.static ~ .animated {
display: none;
@ -234,7 +259,7 @@ footer {
.nav-item {
& + .nav-item a::before {
content: "•";
content: '•';
width: 1rem;
display: inline-block;
margin-left: -1.15rem;

View file

@ -6,7 +6,6 @@
import store from '@/store'
import { openWebSocket, getResponseData, handleError } from './handlers'
/**
* Options available for an API call.
*
@ -17,7 +16,6 @@ import { openWebSocket, getResponseData, handleError } from './handlers'
* @property {Boolean} asFormData - if `true`, will send the data with a body encoded as `"multipart/form-data"` instead of `"x-www-form-urlencoded"`).
*/
/**
* Representation of an API call for `api.fetchAll`
*
@ -26,8 +24,7 @@ import { openWebSocket, getResponseData, handleError } from './handlers'
* @property {String|Object} 1 - "uri", uri to call as string or as an object for cached uris.
* @property {Object|null} 2 - "data"
* @property {Options} 3 - "options"
*/
*/
/**
* Converts an object literal into an `URLSearchParams` that can be turned into a
@ -38,11 +35,15 @@ import { openWebSocket, getResponseData, handleError } from './handlers'
* @param {Boolean} [options.addLocale=false] - Option to append the locale to the query string.
* @return {URLSearchParams}
*/
export function objectToParams (obj, { addLocale = false } = {}, formData = false) {
const urlParams = (formData) ? new FormData() : new URLSearchParams()
export function objectToParams(
obj,
{ addLocale = false } = {},
formData = false,
) {
const urlParams = formData ? new FormData() : new URLSearchParams()
for (const [key, value] of Object.entries(obj)) {
if (Array.isArray(value)) {
value.forEach(v => urlParams.append(key, v))
value.forEach((v) => urlParams.append(key, v))
} else {
urlParams.append(key, value)
}
@ -53,7 +54,6 @@ export function objectToParams (obj, { addLocale = false } = {}, formData = fals
return urlParams
}
export default {
options: {
credentials: 'include',
@ -64,11 +64,10 @@ export default {
// Auto header is :
// "Accept": "*/*",
'X-Requested-With': 'XMLHttpRequest'
}
'X-Requested-With': 'XMLHttpRequest',
},
},
/**
* Generic method to fetch the api without automatic response handling.
*
@ -78,15 +77,22 @@ export default {
* @param {Options} [options={ wait = true, websocket = true, initial = false, asFormData = false }]
* @return {Promise<Object|Error>} Promise that resolve the api response data or an error.
*/
async fetch (
async fetch(
method,
uri,
data = {},
humanKey = null,
{ wait = true, websocket = true, initial = false, asFormData = false } = {}
{ wait = true, websocket = true, initial = false, asFormData = false } = {},
) {
// `await` because Vuex actions returns promises by default.
const request = await store.dispatch('INIT_REQUEST', { method, uri, humanKey, initial, wait, websocket })
const request = await store.dispatch('INIT_REQUEST', {
method,
uri,
humanKey,
initial,
wait,
websocket,
})
if (websocket) {
await openWebSocket(request)
@ -96,17 +102,22 @@ export default {
if (method === 'GET') {
uri += `${uri.includes('?') ? '&' : '?'}locale=${store.getters.locale}`
} else {
options = { ...options, method, body: objectToParams(data, { addLocale: true }, true) }
options = {
...options,
method,
body: objectToParams(data, { addLocale: true }, true),
}
}
const response = await fetch('/yunohost/api/' + uri, options)
const responseData = await getResponseData(response)
store.dispatch('END_REQUEST', { request, success: response.ok, wait })
return response.ok ? responseData : handleError(request, response, responseData)
return response.ok
? responseData
: handleError(request, response, responseData)
},
/**
* Api multiple queries helper.
* Those calls will act as one (declare optional waiting for one but still create history entries for each)
@ -117,14 +128,16 @@ export default {
* @param {Boolean}
* @return {Promise<Array|Error>} Promise that resolve the api responses data or an error.
*/
async fetchAll (queries, { wait, initial } = {}) {
async fetchAll(queries, { wait, initial } = {}) {
const results = []
if (wait) store.commit('SET_WAITING', true)
try {
for (const [method, uri, data, humanKey, options = {}] of queries) {
if (wait) options.wait = false
if (initial) options.initial = true
results.push(await this[method.toLowerCase()](uri, data, humanKey, options))
results.push(
await this[method.toLowerCase()](uri, data, humanKey, options),
)
}
} finally {
// Stop waiting even if there is an error.
@ -134,7 +147,6 @@ export default {
return results
},
/**
* Api get helper function.
*
@ -143,13 +155,13 @@ export default {
* @param {Options} [options={}] - options to apply to the call (default is `{ websocket: false, wait: false }`)
* @return {Promise<Object|Error>} Promise that resolve the api response data or an error.
*/
get (uri, data = null, humanKey = null, options = {}) {
get(uri, data = null, humanKey = null, options = {}) {
options = { websocket: false, wait: false, ...options }
if (typeof uri === 'string') return this.fetch('GET', uri, null, humanKey, options)
if (typeof uri === 'string')
return this.fetch('GET', uri, null, humanKey, options)
return store.dispatch('GET', { ...uri, humanKey, options })
},
/**
* Api post helper function.
*
@ -158,12 +170,12 @@ export default {
* @param {Options} [options={}] - options to apply to the call
* @return {Promise<Object|Error>} Promise that resolve the api response data or an error.
*/
post (uri, data = {}, humanKey = null, options = {}) {
if (typeof uri === 'string') return this.fetch('POST', uri, data, humanKey, options)
post(uri, data = {}, humanKey = null, options = {}) {
if (typeof uri === 'string')
return this.fetch('POST', uri, data, humanKey, options)
return store.dispatch('POST', { ...uri, data, humanKey, options })
},
/**
* Api put helper function.
*
@ -172,12 +184,12 @@ export default {
* @param {Options} [options={}] - options to apply to the call
* @return {Promise<Object|Error>} Promise that resolve the api response data or an error.
*/
put (uri, data = {}, humanKey = null, options = {}) {
if (typeof uri === 'string') return this.fetch('PUT', uri, data, humanKey, options)
put(uri, data = {}, humanKey = null, options = {}) {
if (typeof uri === 'string')
return this.fetch('PUT', uri, data, humanKey, options)
return store.dispatch('PUT', { ...uri, data, humanKey, options })
},
/**
* Api delete helper function.
*
@ -186,8 +198,9 @@ export default {
* @param {Options} [options={}] - options to apply to the call (default is `{ websocket: false, wait: false }`)
* @return {Promise<Object|Error>} Promise that resolve the api response data or an error.
*/
delete (uri, data = {}, humanKey = null, options = {}) {
if (typeof uri === 'string') return this.fetch('DELETE', uri, data, humanKey, options)
delete(uri, data = {}, humanKey = null, options = {}) {
if (typeof uri === 'string')
return this.fetch('DELETE', uri, data, humanKey, options)
return store.dispatch('DELETE', { ...uri, data, humanKey, options })
},
@ -199,24 +212,27 @@ export default {
* @param {Number} initialDelay - delay before calling the API for the first time in ms.
* @return {Promise<undefined|Error>}
*/
tryToReconnect ({ attemps = 5, delay = 2000, initialDelay = 0 } = {}) {
tryToReconnect({ attemps = 5, delay = 2000, initialDelay = 0 } = {}) {
return new Promise((resolve, reject) => {
const api = this
function reconnect (n) {
api.get('logout', {}, { key: 'reconnecting' }).then(resolve).catch(err => {
if (err.name === 'APIUnauthorizedError') {
resolve()
} else if (n < 1) {
reject(err)
} else {
setTimeout(() => reconnect(n - 1), delay)
}
})
function reconnect(n) {
api
.get('logout', {}, { key: 'reconnecting' })
.then(resolve)
.catch((err) => {
if (err.name === 'APIUnauthorizedError') {
resolve()
} else if (n < 1) {
reject(err)
} else {
setTimeout(() => reconnect(n - 1), delay)
}
})
}
if (initialDelay > 0) setTimeout(() => reconnect(attemps), initialDelay)
else reconnect(attemps)
})
}
},
}

View file

@ -5,10 +5,13 @@
import i18n from '@/i18n'
class APIError extends Error {
constructor (request, { url, status, statusText }, { error }) {
super(error ? error.replaceAll('\n', '<br>') : i18n.t('error_server_unexpected'))
constructor(request, { url, status, statusText }, { error }) {
super(
error
? error.replaceAll('\n', '<br>')
: i18n.t('error_server_unexpected'),
)
const urlObj = new URL(url)
this.name = 'APIError'
this.code = status
@ -18,7 +21,7 @@ class APIError extends Error {
this.path = urlObj.pathname + urlObj.search
}
log () {
log() {
/* eslint-disable-next-line */
console.error(`${this.name} (${this.code}): ${this.uri}\n${this.message}`)
}
@ -26,26 +29,24 @@ class APIError extends Error {
// Log (Special error to trigger a redirect to a log page)
class APIErrorLog extends APIError {
constructor (method, response, errorData) {
constructor(method, response, errorData) {
super(method, response, errorData)
this.logRef = errorData.log_ref
this.name = 'APIErrorLog'
}
}
// 0 — (means "the connexion has been closed" apparently)
class APIConnexionError extends APIError {
constructor (method, response) {
constructor(method, response) {
super(method, response, { error: i18n.t('error_connection_interrupted') })
this.name = 'APIConnexionError'
}
}
// 400 — Bad Request
class APIBadRequestError extends APIError {
constructor (method, response, errorData) {
constructor(method, response, errorData) {
super(method, response, errorData)
this.name = 'APIBadRequestError'
this.key = errorData.error_key
@ -53,45 +54,40 @@ class APIBadRequestError extends APIError {
}
}
// 401 — Unauthorized
class APIUnauthorizedError extends APIError {
constructor (method, response, errorData) {
constructor(method, response, errorData) {
super(method, response, { error: i18n.t('unauthorized') })
this.name = 'APIUnauthorizedError'
}
}
// 404 — Not Found
class APINotFoundError extends APIError {
constructor (method, response, errorData) {
constructor(method, response, errorData) {
errorData.error = i18n.t('api_not_found')
super(method, response, errorData)
this.name = 'APINotFoundError'
}
}
// 500 — Server Internal Error
class APIInternalError extends APIError {
constructor (method, response, errorData) {
constructor(method, response, errorData) {
super(method, response, errorData)
this.traceback = errorData.traceback || null
this.name = 'APIInternalError'
}
}
// 502 — Bad gateway (means API is down)
class APINotRespondingError extends APIError {
constructor (method, response) {
constructor(method, response) {
super(method, response, { error: i18n.t('api_not_responding') })
this.name = 'APINotRespondingError'
}
}
// Temp factory
const errors = {
[undefined]: APIError,
@ -101,10 +97,9 @@ const errors = {
401: APIUnauthorizedError,
404: APINotFoundError,
500: APIInternalError,
502: APINotRespondingError
502: APINotRespondingError,
}
export {
errors as default,
APIError,
@ -114,5 +109,5 @@ export {
APIInternalError,
APINotFoundError,
APINotRespondingError,
APIUnauthorizedError
APIUnauthorizedError,
}

View file

@ -6,14 +6,13 @@
import store from '@/store'
import errors, { APIError } from './errors'
/**
* Try to get response content as json and if it's not as text.
*
* @param {Response} response - A fetch `Response` object.
* @return {(Object|String)} Parsed response's json or response's text.
*/
export async function getResponseData (response) {
export async function getResponseData(response) {
// FIXME the api should always return json as response
const responseText = await response.text()
try {
@ -23,7 +22,6 @@ export async function getResponseData (response) {
}
}
/**
* Opens a WebSocket connection to the server in case it sends messages.
* Currently, the connection is closed by the server right after an API call so
@ -33,11 +31,16 @@ export async function getResponseData (response) {
* @param {Object} request - Request info data.
* @return {Promise<Event>} Promise that resolve on websocket 'open' or 'error' event.
*/
export function openWebSocket (request) {
return new Promise(resolve => {
const ws = new WebSocket(`wss://${store.getters.host}/yunohost/api/messages`)
export function openWebSocket(request) {
return new Promise((resolve) => {
const ws = new WebSocket(
`wss://${store.getters.host}/yunohost/api/messages`,
)
ws.onmessage = ({ data }) => {
store.dispatch('DISPATCH_MESSAGE', { request, messages: JSON.parse(data) })
store.dispatch('DISPATCH_MESSAGE', {
request,
messages: JSON.parse(data),
})
}
// ws.onclose = (e) => {}
ws.onopen = resolve
@ -46,7 +49,6 @@ export function openWebSocket (request) {
})
}
/**
* Handler for API errors.
*
@ -55,7 +57,7 @@ export function openWebSocket (request) {
* @param {Object|String} errorData - The response parsed json/text.
* @throws Will throw a `APIError` with request and response data.
*/
export async function handleError (request, response, errorData) {
export async function handleError(request, response, errorData) {
let errorCode = response.status in errors ? response.status : undefined
if (typeof errorData === 'string') {
// FIXME API: Patching errors that are plain text or html.
@ -70,26 +72,24 @@ export async function handleError (request, response, errorData) {
throw new errors[errorCode](request, response, errorData)
}
/**
* If an APIError is not catched by a view it will be dispatched to the store so the
* error can be displayed in the error modal.
*
* @param {APIError} error
*/
export function onUnhandledAPIError (error) {
export function onUnhandledAPIError(error) {
error.log()
store.dispatch('HANDLE_ERROR', error)
}
/**
* Global catching of unhandled promise's rejections.
* Those errors (thrown or rejected from inside a promise) can't be catched by
* `window.onerror`.
*/
export function registerGlobalErrorHandlers () {
window.addEventListener('unhandledrejection', e => {
export function registerGlobalErrorHandlers() {
window.addEventListener('unhandledrejection', (e) => {
const error = e.reason
if (error instanceof APIError) {
onUnhandledAPIError(error)

View file

@ -1,6 +1,6 @@
<template>
<b-input-group v-bind="$attrs">
<input-item
<BInputGroup v-bind="$attrs">
<InputItem
:id="id"
:value="value.localPart"
:placeholder="placeholder"
@ -10,23 +10,31 @@
@blur="$parent.$emit('touch')"
/>
<b-input-group-append>
<b-input-group-text>{{ value.separator }}</b-input-group-text>
</b-input-group-append>
<BInputGroupAppend>
<BInputGroupText>{{ value.separator }}</BInputGroupText>
</BInputGroupAppend>
<b-input-group-append>
<select-item
<BInputGroupAppend>
<SelectItem
:value="value.domain"
:choices="choices"
:aria-describedby="id + 'domain-desc'"
@input="onInput('domain', $event)"
@blur="$parent.$emit('touch')"
/>
</b-input-group-append>
</BInputGroupAppend>
<span class="sr-only" :id="id + 'local-part-desc'" v-t="'address.local_part_description.' + type" />
<span class="sr-only" :id="id + 'domain-desc'" v-t="'address.domain_description.' + type" />
</b-input-group>
<span
class="sr-only"
:id="id + 'local-part-desc'"
v-t="'address.local_part_description.' + type"
/>
<span
class="sr-only"
:id="id + 'domain-desc'"
v-t="'address.domain_description.' + type"
/>
</BInputGroup>
</template>
<script>
@ -42,17 +50,17 @@ export default {
placeholder: { type: String, default: null },
id: { type: String, default: null },
state: { type: null, default: null },
type: { type: String, default: 'email' }
type: { type: String, default: 'email' },
},
methods: {
onInput (key, value) {
onInput(key, value) {
this.$emit('input', {
...this.value,
[key]: value
[key]: value,
})
}
}
},
},
}
</script>

View file

@ -1,47 +1,50 @@
<template>
<b-card
v-bind="$attrs"
no-body :class="_class"
>
<slot name="header" slot="header">
<h2>
<b-button v-b-toggle="id" :variant="variant" class="card-collapse-button">
{{ title }}
<icon class="ml-auto" iname="chevron-right" />
</b-button>
</h2>
</slot>
<BCard v-bind="$attrs" no-body :class="_class">
<template #header>
<slot name="header">
<h2>
<BButton
v-b-toggle="id"
:variant="variant"
class="card-collapse-button"
>
{{ title }}
<YIcon class="ml-auto" iname="chevron-right" />
</BButton>
</h2>
</slot>
</template>
<b-collapse :id="id" :visible="visible" role="region">
<BCollapse :id="id" :visible="visible" role="region">
<slot name="default" />
</b-collapse>
</b-card>
</BCollapse>
</BCard>
</template>
<script>
export default {
name: 'CollapseCard',
name: 'CardCollapse',
props: {
id: { type: String, required: true },
title: { type: String, required: true },
variant: { type: String, default: 'white' },
visible: { type: Boolean, default: false },
flush: { type: Boolean, default: false }
flush: { type: Boolean, default: false },
},
computed: {
_class () {
_class() {
const baseClass = 'card-collapse'
return [
baseClass,
{
[`${baseClass}-flush`]: this.flush,
[`${baseClass}-${this.variant}`]: this.variant
}
[`${baseClass}-${this.variant}`]: this.variant,
},
]
}
}
},
},
}
</script>
@ -55,10 +58,10 @@ export default {
display: flex;
width: 100%;
text-align: left;
padding-top: $spacer * .5;
padding-bottom: $spacer * .5;
padding-top: $spacer * 0.5;
padding-bottom: $spacer * 0.5;
border-radius: 0;
font: inherit
font: inherit;
}
&-flush {

View file

@ -6,25 +6,30 @@ export default {
name: 'CardDeckFeed',
props: {
stacks: { type: Number, default: 21 }
stacks: { type: Number, default: 21 },
},
data () {
data() {
return {
busy: false,
range: this.stacks,
childrenCount: this.$slots.default.length
childrenCount: this.$slots.default.length,
}
},
methods: {
getTopParent (prev) {
return prev.parentElement === this.$refs.feed ? prev : this.getTopParent(prev.parentElement)
getTopParent(prev) {
return prev.parentElement === this.$refs.feed
? prev
: this.getTopParent(prev.parentElement)
},
onScroll () {
onScroll() {
const elem = this.$refs.feed
if (window.innerHeight > elem.clientHeight + elem.getBoundingClientRect().top - 200) {
if (
window.innerHeight >
elem.clientHeight + elem.getBoundingClientRect().top - 200
) {
this.busy = true
this.range = Math.min(this.range + this.stacks, this.childrenCount)
this.$nextTick().then(() => {
@ -33,7 +38,7 @@ export default {
}
},
onKeydown (e) {
onKeydown(e) {
if (['PageUp', 'PageDown'].includes(e.code)) {
e.preventDefault()
const key = e.code === 'PageUp' ? 'previous' : 'next'
@ -44,16 +49,16 @@ export default {
}
}
// FIXME Add `Home` and `End` shorcuts
}
},
},
mounted () {
mounted() {
window.addEventListener('scroll', this.onScroll)
this.$refs.feed.addEventListener('keydown', this.onKeydown)
this.onScroll()
},
beforeUpdate () {
beforeUpdate() {
const slots = this.$slots.default
if (this.childrenCount !== slots.length) {
this.range = this.stacks
@ -61,21 +66,21 @@ export default {
}
},
render (h) {
render(h) {
return h(
'b-card-group',
'BCardGroup',
{
attrs: { role: 'feed', 'aria-busy': this.busy.toString() },
props: { deck: true },
ref: 'feed'
ref: 'feed',
},
this.$slots.default.slice(0, this.range)
this.$slots.default.slice(0, this.range),
)
},
beforeDestroy () {
beforeDestroy() {
window.removeEventListener('scroll', this.onScroll)
this.$refs.feed.removeEventListener('keydown', this.onKeydown)
}
},
}
</script>

View file

@ -1,6 +1,11 @@
<template>
<abstract-form
v-bind="{ id: panel.id + '-form', validation, serverError: panel.serverError }"
<AbstractForm
v-if="panel"
v-bind="{
id: panel.id + '-form',
validation,
serverError: panel.serverError,
}"
@submit.prevent.stop="onApply"
:no-footer="!panel.hasApplyButton"
>
@ -13,37 +18,41 @@
<slot name="tab-before" />
<template v-for="section in panel.sections">
<component
<Component
v-if="section.visible"
:is="section.name ? 'section' : 'div'"
:key="section.id"
class="panel-section"
>
<b-card-title v-if="section.name" title-tag="h3">
{{ section.name }} <small v-if="section.help">{{ section.help }}</small>
</b-card-title>
<BCardTitle v-if="section.name" title-tag="h3">
{{ section.name }}
<small v-if="section.help">{{ section.help }}</small>
</BCardTitle>
<template v-for="(field, fname) in section.fields">
<!-- FIXME rework the whole component chain to avoid direct mutation of the `forms` props -->
<!-- eslint-disable -->
<component
v-if="field.visible" :is="field.is" v-bind="field.props"
v-model="forms[panel.id][fname]" :validation="validation[fname]" :key="fname"
<Component
v-if="field.visible"
:is="field.is"
v-bind="field.props"
v-model="forms[panel.id][fname]"
:validation="validation[fname]"
:key="fname"
@action.stop="onAction(section.id, fname, section.fields)"
/>
<!-- eslint-enable -->
</template>
</component>
</Component>
</template>
<slot name="tab-after" />
</abstract-form>
</AbstractForm>
</template>
<script>
import { filterObject } from '@/helpers/commons'
export default {
name: 'ConfigPanel',
@ -51,41 +60,43 @@ export default {
tabId: { type: String, required: true },
panels: { type: Array, default: undefined },
forms: { type: Object, default: undefined },
v: { type: Object, default: undefined }
v: { type: Object, default: undefined },
},
computed: {
panel () {
return this.panels.find(panel => panel.id === this.tabId)
panel() {
return this.panels.find((panel) => panel.id === this.tabId)
},
validation () {
validation() {
return this.v.forms[this.panel.id]
}
},
},
methods: {
onApply () {
onApply() {
const panelId = this.panel.id
this.$emit('submit', {
id: panelId,
form: this.forms[panelId]
form: this.forms[panelId],
})
},
onAction (sectionId, actionId, actionFields) {
onAction(sectionId, actionId, actionFields) {
const panelId = this.panel.id
const actionFieldsKeys = Object.keys(actionFields)
this.$emit('submit', {
id: panelId,
form: filterObject(this.forms[panelId], ([key]) => actionFieldsKeys.includes(key)),
form: filterObject(this.forms[panelId], ([key]) =>
actionFieldsKeys.includes(key),
),
action: [panelId, sectionId, actionId].join('.'),
name: actionId
name: actionId,
})
}
}
},
},
}
</script>

View file

@ -1,6 +1,6 @@
<template>
<div class="config-panel">
<routable-tabs
<RoutableTabs
v-if="routes_.length > 1"
:routes="routes_"
v-bind="{ panels, forms, v: $v, ...$attrs }"
@ -15,13 +15,13 @@
<template #tab-after>
<slot name="tab-after" />
</template>
</routable-tabs>
</RoutableTabs>
<card v-else :title="routes_[0].text" :icon="routes_[0].icon">
<YCard v-else :title="routes_[0].text" :icon="routes_[0].icon">
<slot name="tab-top" />
<slot name="tab-before" />
<slot name="tab-after" />
</card>
</YCard>
</div>
</template>
@ -31,8 +31,10 @@ import { validationMixin } from 'vuelidate'
export default {
name: 'ConfigPanels',
inheritAttrs: false,
components: {
RoutableTabs: () => import('@/components/RoutableTabs.vue')
RoutableTabs: () => import('@/components/RoutableTabs.vue'),
},
mixins: [validationMixin],
@ -43,28 +45,28 @@ export default {
validations: { type: Object, default: undefined },
errors: { type: Object, default: undefined }, // never used
routes: { type: Array, default: null },
noRedirect: { type: Boolean, default: false }
noRedirect: { type: Boolean, default: false },
},
computed: {
routes_ () {
routes_() {
if (this.routes) return this.routes
return this.panels.map(panel => ({
return this.panels.map((panel) => ({
to: { params: { tabId: panel.id } },
text: panel.name,
icon: panel.icon || 'wrench'
icon: panel.icon || 'wrench',
}))
}
},
},
validations () {
validations() {
return { forms: this.validations }
},
created () {
created() {
if (!this.noRedirect && !this.$route.params.tabId) {
this.$router.replace({ params: { tabId: this.panels[0].id } })
}
}
},
}
</script>

View file

@ -13,58 +13,64 @@ export default {
minHeight: { type: Number, default: 0 },
renderDelay: { type: Number, default: 100 },
unrenderDelay: { type: Number, default: 2000 },
rootMargin: { type: String, default: '300px' }
rootMargin: { type: String, default: '300px' },
},
data () {
data() {
return {
observer: null,
render: false,
fixedMinHeight: this.minHeight
fixedMinHeight: this.minHeight,
}
},
mounted () {
mounted() {
let unrenderTimer
let renderTimer
this.observer = new IntersectionObserver(entries => {
let intersecting = entries[0].isIntersecting
this.observer = new IntersectionObserver(
(entries) => {
let intersecting = entries[0].isIntersecting
// Fix for weird bug when typing fast in app search or on slow client.
// Intersection is triggered but even if the element is indeed in the viewport,
// isIntersecting is `false`, so we have to manually check this
// FIXME Would be great to find out why this is happening
if (!intersecting && this.$el.offsetTop < window.innerHeight) {
intersecting = true
}
if (intersecting) {
clearTimeout(unrenderTimer)
// Show the component after a delay (to avoid rendering while scrolling fast)
renderTimer = setTimeout(() => {
this.render = true
}, this.unrender ? this.renderDelay : 0)
if (!this.unrender) {
// Stop listening to intersections after first appearance if unrendering is not activated
this.observer.disconnect()
// Fix for weird bug when typing fast in app search or on slow client.
// Intersection is triggered but even if the element is indeed in the viewport,
// isIntersecting is `false`, so we have to manually check this
// FIXME Would be great to find out why this is happening
if (!intersecting && this.$el.offsetTop < window.innerHeight) {
intersecting = true
}
} else if (this.unrender) {
clearTimeout(renderTimer)
// Hide the component after a delay if it's no longer in the viewport
unrenderTimer = setTimeout(() => {
this.fixedMinHeight = this.$el.clientHeight
this.render = false
}, this.unrenderDelay)
}
}, { rootMargin: this.rootMargin })
if (intersecting) {
clearTimeout(unrenderTimer)
// Show the component after a delay (to avoid rendering while scrolling fast)
renderTimer = setTimeout(
() => {
this.render = true
},
this.unrender ? this.renderDelay : 0,
)
if (!this.unrender) {
// Stop listening to intersections after first appearance if unrendering is not activated
this.observer.disconnect()
}
} else if (this.unrender) {
clearTimeout(renderTimer)
// Hide the component after a delay if it's no longer in the viewport
unrenderTimer = setTimeout(() => {
this.fixedMinHeight = this.$el.clientHeight
this.render = false
}, this.unrenderDelay)
}
},
{ rootMargin: this.rootMargin },
)
this.observer.observe(this.$el)
},
beforeDestroy () {
beforeDestroy() {
this.observer.disconnect()
}
},
}
</script>

View file

@ -1,21 +1,25 @@
<template>
<b-list-group
v-bind="$attrs" flush
:class="{ 'fixed-height': fixedHeight, 'bordered': bordered }"
<BListGroup
v-bind="$attrs"
flush
:class="{ 'fixed-height': fixedHeight, bordered: bordered }"
@scroll="onScroll"
>
<yuno-list-group-item
<YListGroupItem
v-if="limit && messages.length > limit"
variant="info" v-t="'api.partial_logs'"
variant="info"
v-t="'api.partial_logs'"
/>
<yuno-list-group-item
v-for="({ color, text }, i) in reducedMessages" :key="i"
:variant="color" size="xs"
<YListGroupItem
v-for="({ color, text }, i) in reducedMessages"
:key="i"
:variant="color"
size="xs"
>
<span v-html="text" />
</yuno-list-group-item>
</b-list-group>
</YListGroupItem>
</BListGroup>
</template>
<script>
@ -27,43 +31,43 @@ export default {
fixedHeight: { type: Boolean, default: false },
bordered: { type: Boolean, default: false },
autoScroll: { type: Boolean, default: false },
limit: { type: Number, default: null }
limit: { type: Number, default: null },
},
data () {
data() {
return {
auto: true
auto: true,
}
},
computed: {
reducedMessages () {
reducedMessages() {
const len = this.messages.length
if (!this.limit || len <= this.limit) {
return this.messages
}
return this.messages.slice(len - this.limit)
}
},
},
methods: {
scrollToEnd () {
scrollToEnd() {
if (!this.auto) return
this.$nextTick(() => {
this.$el.scrollTo(0, this.$el.lastElementChild.offsetTop)
})
},
onScroll ({ target }) {
onScroll({ target }) {
this.auto = target.scrollHeight === target.scrollTop + target.clientHeight
}
},
},
created () {
created() {
if (this.autoScroll) {
this.$watch('messages', this.scrollToEnd)
}
}
},
}
</script>

View file

@ -1,7 +1,11 @@
<template>
<div class="query-header w-100" v-on="$listeners" v-bind="$attrs">
<!-- STATUS -->
<span class="status" :class="['bg-' + color, statusSize]" :aria-label="$t('api.query_status.' + request.status)" />
<span
class="status"
:class="['bg-' + color, statusSize]"
:aria-label="$t('api.query_status.' + request.status)"
/>
<!-- REQUEST DESCRIPTION -->
<strong class="request-desc">
@ -11,28 +15,34 @@
<div v-if="request.errors || request.warnings">
<!-- WEBSOCKET ERRORS COUNT -->
<span class="count" v-if="request.errors">
{{ request.errors }}<icon iname="bug" class="text-danger ml-1" />
{{ request.errors }}<YIcon iname="bug" class="text-danger ml-1" />
</span>
<!-- WEBSOCKET WARNINGS COUNT -->
<span class="count" v-if="request.warnings">
{{ request.warnings }}<icon iname="warning" class="text-warning ml-1" />
{{ request.warnings
}}<YIcon iname="warning" class="text-warning ml-1" />
</span>
</div>
<!-- VIEW ERROR BUTTON -->
<b-button
<BButton
v-if="showError && request.error"
size="sm" pill
size="sm"
pill
class="error-btn ml-auto py-0"
variant="danger"
@click="reviewError"
>
<small v-t="'api_error.view_error'" />
</b-button>
</BButton>
<!-- TIME DISPLAY -->
<time v-if="showTime" :datetime="request.date | hour" :class="request.error ? 'ml-2' : 'ml-auto'">
{{ request.date | hour }}
<time
v-if="showTime"
:datetime="hour(request.date)"
:class="request.error ? 'ml-2' : 'ml-auto'"
>
{{ hour(request.date) }}
</time>
</div>
</template>
@ -45,44 +55,40 @@ export default {
request: { type: Object, required: true },
statusSize: { type: String, default: '' },
showTime: { type: Boolean, default: false },
showError: { type: Boolean, default: false }
showError: { type: Boolean, default: false },
},
computed: {
color () {
color() {
const statuses = {
pending: 'primary',
success: 'success',
warning: 'warning',
error: 'danger'
error: 'danger',
}
return statuses[this.request.status]
},
errorsCount () {
return this.request.messages.filter(({ type }) => type === 'danger').length
errorsCount() {
return this.request.messages.filter(({ type }) => type === 'danger')
.length
},
warningsCount () {
return this.request.messages.filter(({ type }) => type === 'warning').length
}
warningsCount() {
return this.request.messages.filter(({ type }) => type === 'warning')
.length
},
},
methods: {
reviewError () {
reviewError() {
this.$store.dispatch('REVIEW_ERROR', this.request)
}
},
filters: {
readableUri (uri) {
return uri.split('?')[0].split('/').join(' > ') // replace('/', ' > ')
},
hour (date) {
hour(date) {
return new Date(date).toLocaleTimeString()
}
}
},
},
}
</script>
@ -104,15 +110,15 @@ div {
.status {
display: inline-block;
border-radius: 50%;
width: .75rem;
min-width: .75rem;
height: .75rem;
margin-right: .25rem;
width: 0.75rem;
min-width: 0.75rem;
height: 0.75rem;
margin-right: 0.25rem;
&.lg {
width: 1rem;
height: 1rem;
margin-right: .5rem;
margin-right: 0.5rem;
}
}
@ -124,7 +130,7 @@ time {
.count {
display: flex;
align-items: center;
margin-left: .5rem;
margin-left: 0.5rem;
}
@include media-breakpoint-down(xs) {
@ -132,5 +138,4 @@ time {
display: none;
}
}
</style>

View file

@ -1,41 +1,48 @@
<template>
<b-list-group :flush="flush" :style="{ '--depth': tree.depth }">
<BListGroup :flush="flush" :style="{ '--depth': tree.depth }">
<template v-for="(node, i) in tree.children">
<b-list-group-item
<BListGroupItem
:key="node.id"
class="list-group-item-action" :class="getClasses(node, i)"
class="list-group-item-action"
:class="getClasses(node, i)"
@click="$router.push(node.data.to)"
>
<slot name="default" v-bind="node" />
<b-button
<BButton
v-if="node.children"
size="xs" variant="outline-secondary"
:aria-expanded="node.data.opened ? 'true' : 'false'" :aria-controls="'collapse-' + node.id"
:class="node.data.opened ? 'not-collapsed' : 'collapsed'" class="ml-2"
size="xs"
variant="outline-secondary"
:aria-expanded="node.data.opened ? 'true' : 'false'"
:aria-controls="'collapse-' + node.id"
:class="node.data.opened ? 'not-collapsed' : 'collapsed'"
class="ml-2"
@click.stop="node.data.opened = !node.data.opened"
>
<span class="sr-only">{{ toggleText }}</span>
<icon iname="chevron-right" />
</b-button>
</b-list-group-item>
<YIcon iname="chevron-right" />
</BButton>
</BListGroupItem>
<b-collapse
v-if="node.children" :key="'collapse-' + node.id"
v-model="node.data.opened" :id="'collapse-' + node.id"
<BCollapse
v-if="node.children"
:key="'collapse-' + node.id"
v-model="node.data.opened"
:id="'collapse-' + node.id"
>
<recursive-list-group
<RecursiveListGroup
:tree="node"
:last="last !== undefined ? last : i === tree.children.length - 1" flush
:last="last !== undefined ? last : i === tree.children.length - 1"
flush
>
<!-- PASS THE DEFAULT SLOT WITH SCOPE TO NEXT NESTED COMPONENT -->
<template slot="default" slot-scope="scope">
<slot name="default" v-bind="scope" />
</template>
</recursive-list-group>
</b-collapse>
</RecursiveListGroup>
</BCollapse>
</template>
</b-list-group>
</BListGroup>
</template>
<script>
@ -46,17 +53,20 @@ export default {
tree: { type: Object, required: true },
flush: { type: Boolean, default: false },
last: { type: Boolean, default: undefined },
toggleText: { type: String, default: null }
toggleText: { type: String, default: null },
},
methods: {
getClasses (node, i) {
getClasses(node, i) {
const children = node.height > 0
const opened = children && node.data.opened
const last = this.last !== false && (!children || !opened) && i === this.tree.children.length - 1
const last =
this.last !== false &&
(!children || !opened) &&
i === this.tree.children.length - 1
return { collapsible: children, uncollapsible: !children, opened, last }
}
}
},
},
}
</script>

View file

@ -1,19 +1,22 @@
<template>
<b-card no-body>
<b-card-header header-tag="nav">
<b-nav card-header fill pills>
<b-nav-item
v-for="route in routes" :key="route.text"
:to="route.to" exact exact-active-class="active"
<BCard no-body>
<BCardHeader header-tag="nav">
<BNav card-header fill pills>
<BNavItem
v-for="route in routes"
:key="route.text"
:to="route.to"
exact
exact-active-class="active"
>
<icon v-if="route.icon" :iname="route.icon" />
<YIcon v-if="route.icon" :iname="route.icon" />
{{ route.text }}
</b-nav-item>
</b-nav>
</b-card-header>
</BNavItem>
</BNav>
</BCardHeader>
<!-- Bind extra props to the child view and forward child events to parent -->
<router-view v-bind="$attrs" v-on="$listeners">
<RouterView v-bind="$attrs" v-on="$listeners">
<template #tab-top>
<slot name="tab-top" />
</template>
@ -23,8 +26,8 @@
<template #tab-after>
<slot name="tab-after" />
</template>
</router-view>
</b-card>
</RouterView>
</BCard>
</template>
<script>
@ -36,7 +39,7 @@ export default {
inheritAttrs: false,
props: {
routes: { type: Array, required: true }
}
routes: { type: Array, required: true },
},
}
</script>

View file

@ -1,32 +1,32 @@
<template>
<div>
<b-card-body>
<BCardBody>
<slot name="disclaimer" />
<b-form
:id="id" :inline="inline" :class="formClasses"
@submit.prevent="onSubmit" novalidate
<BForm
:id="id"
:inline="inline"
:class="formClasses"
@submit.prevent="onSubmit"
novalidate
>
<slot name="default" />
<slot name="server-error" v-bind="{ errorFeedback }">
<b-alert
v-if="errorFeedback"
variant="danger" class="my-3" icon="ban"
>
<BAlert v-if="errorFeedback" variant="danger" class="my-3" icon="ban">
<div v-html="errorFeedback" />
</b-alert>
</BAlert>
</slot>
</b-form>
</b-card-body>
</BForm>
</BCardBody>
<b-card-footer v-if="!noFooter">
<BCardFooter v-if="!noFooter">
<slot name="footer">
<b-button type="submit" variant="success" :form="id">
<BButton type="submit" variant="success" :form="id">
{{ submitText || $t('save') }}
</b-button>
</BButton>
</slot>
</b-card-footer>
</BCardFooter>
</div>
</template>
@ -41,28 +41,28 @@ export default {
serverError: { type: String, default: '' },
inline: { type: Boolean, default: false },
formClasses: { type: [Array, String, Object], default: null },
noFooter: { type: Boolean, default: false }
noFooter: { type: Boolean, default: false },
},
computed: {
errorFeedback () {
errorFeedback() {
if (this.serverError) return this.serverError
else if (this.validation && this.validation.$anyError) {
return this.$i18n.t('form_errors.invalid_form')
} else return ''
}
},
},
methods: {
onSubmit (e) {
onSubmit(e) {
const v = this.validation
if (v) {
v.$touch()
if (v.$pending || v.$invalid) return
}
this.$emit('submit', e)
}
}
},
},
}
</script>
@ -73,7 +73,7 @@ export default {
align-items: center;
& > *:not(:first-child) {
margin-left: .5rem;
margin-left: 0.5rem;
}
}
</style>

View file

@ -1,34 +0,0 @@
<template>
<b-breadcrumb v-if="breadcrumb.length">
<b-breadcrumb-item to="/">
<span class="sr-only">{{ $t('home') }}</span>
<icon iname="home" />
</b-breadcrumb-item>
<b-breadcrumb-item
v-for="({ name, text }, i) in breadcrumb" :key="name"
:to="{ name }" :active="i === breadcrumb.length - 1"
>
{{ text }}
</b-breadcrumb-item>
</b-breadcrumb>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
name: 'Breadcrumb',
computed: {
...mapGetters(['breadcrumb'])
}
}
</script>
<style lang="scss" scoped>
.breadcrumb {
border: none;
background-color: transparent;
}
</style>

View file

@ -1,33 +1,38 @@
<template>
<card v-bind="$attrs" class="card-form">
<YCard v-bind="$attrs" class="card-form">
<template #default>
<slot name="disclaimer" />
<b-form
:id="id" :inline="inline" :class="formClasses"
@submit.prevent="onSubmit" novalidate
<BForm
:id="id"
:inline="inline"
:class="formClasses"
@submit.prevent="onSubmit"
novalidate
>
<slot name="default" />
<slot name="server-error">
<b-alert
variant="danger" class="my-3" icon="ban"
<BAlert
variant="danger"
class="my-3"
icon="ban"
:show="errorFeedback !== ''"
>
<div v-html="errorFeedback" />
</b-alert>
</BAlert>
</slot>
</b-form>
</BForm>
</template>
<template v-if="!noFooter" #buttons>
<slot name="buttons">
<b-button type="submit" variant="success" :form="id">
<BButton type="submit" variant="success" :form="id">
{{ submitText ? submitText : $t('save') }}
</b-button>
</BButton>
</slot>
</template>
</card>
</YCard>
</template>
<script>
@ -41,30 +46,29 @@ export default {
serverError: { type: String, default: '' },
inline: { type: Boolean, default: false },
formClasses: { type: [Array, String, Object], default: null },
noFooter: { type: Boolean, default: false }
noFooter: { type: Boolean, default: false },
},
computed: {
errorFeedback () {
errorFeedback() {
if (this.serverError) return this.serverError
else if (this.validation && this.validation.$anyError) {
return this.$i18n.t('form_errors.invalid_form')
} else return ''
}
},
},
methods: {
onSubmit (e) {
onSubmit(e) {
const v = this.validation
if (v) {
v.$touch()
if (v.$pending || v.$invalid) return
}
this.$emit('submit', e)
}
}
},
},
}
</script>
<style lang="scss">
</style>
<style lang="scss"></style>

View file

@ -1,17 +1,17 @@
<template>
<b-row no-gutters class="description-row">
<b-col v-bind="cols_">
<BRow no-gutters class="description-row">
<BCol v-bind="cols_">
<slot name="term">
<strong>{{ term }}</strong>
</slot>
</b-col>
</BCol>
<b-col>
<BCol>
<slot name="default">
{{ details }}
</slot>
</b-col>
</b-row>
</BCol>
</BRow>
</template>
<script>
@ -21,21 +21,21 @@ export default {
props: {
term: { type: String, default: null },
details: { type: String, default: null },
cols: { type: Object, default: () => ({ md: 4, xl: 3 }) }
cols: { type: Object, default: () => ({ md: 4, xl: 3 }) },
},
computed: {
cols_ () {
cols_() {
return Object.assign({ md: 4, xl: 3 }, this.cols)
}
}
},
},
}
</script>
<style lang="scss" scoped>
.description-row {
@include media-breakpoint-up(md) {
margin: .25rem 0;
margin: 0.25rem 0;
&:hover {
background-color: rgba($black, 0.05);
border-radius: 0.2rem;

View file

@ -2,20 +2,22 @@
<span class="explain-what">
<slot name="default" />
<span class="explain-what-popover-container">
<b-button
:id="id" href="#"
variant="light"
>
<icon iname="question" />
<span class="sr-only">{{ $t('details_about', { subject: title }) }}</span>
</b-button>
<b-popover
<BButton :id="id" href="#" variant="light">
<YIcon iname="question" />
<span class="sr-only">
{{ $t('details_about', { subject: title }) }}
</span>
</BButton>
<BPopover
placement="auto"
:target="id" triggers="focus" custom-class="explain-what-popover"
:variant="variant" :title="title"
:target="id"
triggers="focus"
custom-class="explain-what-popover"
:variant="variant"
:title="title"
>
<span v-html="content" />
</b-popover>
</BPopover>
</span>
</span>
</template>
@ -28,14 +30,14 @@ export default {
id: { type: String, required: true },
title: { type: String, required: true },
content: { type: String, required: true },
variant: { type: String, default: 'info' }
variant: { type: String, default: 'info' },
},
computed: {
cols_ () {
cols_() {
return Object.assign({ md: 4, xl: 3 }, this.cols)
}
}
},
},
}
</script>
@ -45,7 +47,7 @@ export default {
.btn {
padding: 0;
margin-left: .1rem;
margin-left: 0.1rem;
border-radius: 50rem;
line-height: inherit;
font-size: inherit;

View file

@ -1,6 +1,6 @@
<template>
<!-- v-bind="$attrs" allow to pass default attrs not specified in this component slots -->
<b-form-group
<BFormGroup
v-bind="attrs"
:id="_id"
:label-for="$attrs['label-for'] || props.id"
@ -10,7 +10,7 @@
<!-- Make field props and state available as scoped slot data -->
<slot v-bind="{ self: { ...props, state }, touch }">
<!-- if no component was passed as slot, render a component from the props -->
<component
<Component
:is="component"
v-bind="props"
v-on="$listeners"
@ -28,24 +28,24 @@
<!-- Render description -->
<template v-if="description || link">
<div class="d-flex">
<b-link
v-if="link"
:to="link" :href="link.href" class="ml-auto"
>
<BLink v-if="link" :to="link" :href="link.href" class="ml-auto">
{{ link.text }}
</b-link>
</BLink>
</div>
<vue-showdown
<VueShowdown
v-if="description"
:markdown="description" flavor="github"
:class="{ ['alert p-1 px-2 alert-' + descriptionVariant]: descriptionVariant }"
:markdown="description"
flavor="github"
:class="{
['alert p-1 px-2 alert-' + descriptionVariant]: descriptionVariant,
}"
/>
</template>
<!-- Slot available to overwrite the one above -->
<slot name="description" />
</template>
</b-form-group>
</BFormGroup>
</template>
<script>
@ -64,23 +64,23 @@ export default {
component: { type: String, default: 'InputItem' },
value: { type: null, default: null },
props: { type: Object, default: () => ({}) },
validation: { type: Object, default: null }
validation: { type: Object, default: null },
},
computed: {
_id () {
_id() {
if (this.id) return this.id
const childId = this.props.id || this.$attrs['label-for']
return childId ? childId + '_group' : null
},
attrs () {
attrs() {
const attrs = { ...this.$attrs }
if ('label' in attrs) {
const defaultAttrs = {
'label-cols-md': 4,
'label-cols-lg': 3,
'label-class': ['font-weight-bold', 'py-0']
'label-class': ['font-weight-bold', 'py-0'],
}
if (!('label-cols' in attrs)) {
for (const attr in defaultAttrs) {
@ -93,7 +93,7 @@ export default {
return attrs
},
state () {
state() {
// Need to set state as null if no error, else component turn green
if (this.validation) {
return this.validation.$anyError === true ? false : null
@ -101,18 +101,18 @@ export default {
return null
},
errorMessage () {
errorMessage() {
const validation = this.validation
if (validation && validation.$anyError) {
const [type, errData] = this.findError(validation.$params, validation)
return this.$i18n.t('form_errors.' + type, errData)
}
return ''
}
},
},
methods: {
touch (name) {
touch(name) {
if (this.validation) {
// For fields that have multiple elements
if (name) {
@ -123,7 +123,7 @@ export default {
}
},
findError (params, obj, parent = obj) {
findError(params, obj, parent = obj) {
for (const key in params) {
if (!obj[key]) {
return [key, obj.$params[key]]
@ -132,8 +132,8 @@ export default {
return this.findError(obj[key].$params, obj[key], parent)
}
}
}
}
},
},
}
</script>

View file

@ -1,14 +1,14 @@
<template>
<b-row no-gutters class="description-row">
<b-col v-bind="cols_" class="font-weight-bold">
<BRow no-gutters class="description-row">
<BCol v-bind="cols_" class="font-weight-bold">
{{ label }}
</b-col>
</BCol>
<b-col>
<BCol>
<!-- FIXME not sure about rendering html -->
<div v-html="text" />
</b-col>
</b-row>
</BCol>
</BRow>
</template>
<script>
@ -21,32 +21,35 @@ export default {
label: { type: String, required: true },
component: { type: String, default: 'InputItem' },
value: { type: null, default: null },
cols: { type: Object, default: () => ({ md: 4, lg: 3 }) }
cols: { type: Object, default: () => ({ md: 4, lg: 3 }) },
},
computed: {
cols_ () {
cols_() {
return Object.assign({ md: 4, lg: 3 }, this.cols)
},
text () {
text() {
return this.parseValue(this.value)
}
},
},
methods: {
parseValue (value) {
parseValue(value) {
const item = this.component
if (item === 'FileItem') value = value.file ? value.file.name : null
if (item === 'CheckboxItem') value = this.$i18n.t(value ? 'yes' : 'no')
if (item === 'TextAreaItem') value = value.replaceAll('\n', '<br>')
if (Array.isArray(value)) {
value = value.length ? value.join(this.$i18n.t('words.separator')) : null
value = value.length
? value.join(this.$i18n.t('words.separator'))
: null
}
if ([null, undefined, ''].includes(this.value)) value = this.$i18n.t('words.none')
if ([null, undefined, ''].includes(this.value))
value = this.$i18n.t('words.none')
return value
}
}
},
},
}
</script>

View file

@ -1,83 +0,0 @@
<template>
<div :class="['custom-spinner', spinner]" />
</template>
<script>
import { mapGetters } from 'vuex'
export default {
name: 'Spinner',
computed: {
...mapGetters(['spinner'])
}
}
</script>
<style lang="scss" scoped>
.custom-spinner {
animation: 8s linear infinite;
background-repeat: no-repeat;
&.pacman {
height: 24px;
width: 24px;
background-image: url('../../assets/spinners/pacman_dark.gif');
animation-name: back-and-forth-pacman;
[dark-theme="true"] & {
background-image: url('../../assets/spinners/pacman_light.gif');
}
@keyframes back-and-forth-pacman {
0%, 100% { transform: scale(1); margin-left: 0; }
49% { transform: scale(1); margin-left: calc(100% - 24px);}
50% { transform: scale(-1); margin-left: calc(100% - 24px);}
99% { transform: scale(-1); margin-left: 0;}
}
}
&.magikarp {
height: 32px;
width: 32px;
background-image: url('../../assets/spinners/magikarp.gif');
animation-name: back-and-forth-magikarp;
@keyframes back-and-forth-magikarp {
0%, 100% { transform: scale(1, 1); margin-left: 0; }
49% { transform: scale(1, 1); margin-left: calc(100% - 32px);}
50% { transform: scale(-1, 1); margin-left: calc(100% - 32px);}
99% { transform: scale(-1, 1); margin-left: 0;}
}
}
&.nyancat {
height: 40px;
width: 100px;
background-image: url('../../assets/spinners/nyancat.gif');
animation-name: back-and-forth-nyancat;
@keyframes back-and-forth-nyancat {
0%, 100% { transform: scale(1, 1); margin-left: 0; }
49% { transform: scale(1, 1); margin-left: calc(100% - 100px);}
50% { transform: scale(-1, 1); margin-left: calc(100% - 100px);}
99% { transform: scale(-1, 1); margin-left: 0;}
}
}
&.spookycat {
height: 40px;
width: 65px;
background-image: url('../../assets/spinners/spookycat.gif');
animation-name: back-and-forth-spookycat;
@keyframes back-and-forth-spookycat {
0%, 100% { transform: scale(1, 1); margin-left: 0; }
49% { transform: scale(1, 1); margin-left: calc(100% - 100px);}
50% { transform: scale(-1, 1); margin-left: calc(100% - 100px);}
99% { transform: scale(-1, 1); margin-left: 0;}
}
}
}
</style>

View file

@ -1,5 +1,5 @@
<template>
<b-button-toolbar :aria-label="label" id="top-bar">
<BButtonToolbar :aria-label="label" id="top-bar">
<div id="top-bar-left" class="top-bar-group" v-if="hasLeftSlot">
<slot name="group-left" />
</div>
@ -7,11 +7,11 @@
<div id="top-bar-right" class="top-bar-group" v-if="hasRightSlot || button">
<slot v-if="hasRightSlot" name="group-right" />
<b-button v-else variant="success" :to="button.to">
<icon v-if="button.icon" :iname="button.icon" /> {{ button.text }}
</b-button>
<BButton v-else variant="success" :to="button.to">
<YIcon v-if="button.icon" :iname="button.icon" /> {{ button.text }}
</BButton>
</div>
</b-button-toolbar>
</BButtonToolbar>
</template>
<script>
@ -23,25 +23,25 @@ export default {
button: {
type: Object,
default: null,
validator (value) {
return ['text', 'to'].every(prop => (prop in value))
}
}
validator(value) {
return ['text', 'to'].every((prop) => prop in value)
},
},
},
data () {
data() {
return {
hasLeftSlot: null,
hasRightSlot: null
hasRightSlot: null,
}
},
created () {
created() {
this.$nextTick(() => {
this.hasLeftSlot = 'group-left' in this.$slots
this.hasRightSlot = 'group-right' in this.$slots
})
}
},
}
</script>
@ -65,10 +65,10 @@ export default {
flex-direction: column-reverse;
#top-bar-right {
margin-bottom: .75rem;
margin-bottom: 0.75rem;
::v-deep > * {
margin-bottom: .25rem;
margin-bottom: 0.25rem;
}
}
@ -89,7 +89,7 @@ export default {
}
::v-deep .btn {
margin-left: .5rem;
margin-left: 0.5rem;
&.dropdown-toggle-split {
margin-left: 0;
}

View file

@ -1,21 +1,21 @@
<template>
<div>
<top-bar v-if="hasTopBar">
<TopBar v-if="hasTopBar">
<template #group-left>
<slot name="top-bar-group-left" />
</template>
<template #group-right>
<slot name="top-bar-group-right" />
</template>
</top-bar>
</TopBar>
<slot v-else name="top-bar" />
<slot name="top" v-bind="{ loading: isLoading }" />
<b-skeleton-wrapper :loading="isLoading">
<BSkeletonWrapper :loading="isLoading">
<template #loading>
<slot name="skeleton">
<component :is="skeleton" />
<Component :is="skeleton" />
</slot>
</template>
@ -23,7 +23,7 @@
<div>
<slot name="default" v-bind="{ loading: isLoading }" />
</div>
</b-skeleton-wrapper>
</BSkeletonWrapper>
<slot name="bot" v-bind="{ loading: isLoading }" />
</div>
@ -40,44 +40,46 @@ export default {
queriesWait: { type: Boolean, default: false },
skeleton: { type: [String, Array], default: null },
// Optional prop to take control of the loading value
loading: { type: Boolean, default: null }
loading: { type: Boolean, default: null },
},
data () {
data() {
return {
fallback_loading: this.loading === null && this.queries !== null ? true : null
fallback_loading:
this.loading === null && this.queries !== null ? true : null,
}
},
computed: {
isLoading () {
isLoading() {
if (this.loading !== null) return this.loading
return this.fallback_loading
},
hasTopBar () {
return ['top-bar-group-left', 'top-bar-group-right'].some(slotName => (slotName in this.$slots))
}
hasTopBar() {
return ['top-bar-group-left', 'top-bar-group-right'].some(
(slotName) => slotName in this.$slots,
)
},
},
methods: {
fetchQueries ({ triggerLoading = false } = {}) {
fetchQueries({ triggerLoading = false } = {}) {
if (triggerLoading) {
this.fallback_loading = true
}
api.fetchAll(
this.queries,
{ wait: this.queriesWait, initial: true }
).then(responses => {
this.$emit('queries-response', ...responses)
this.fallback_loading = false
})
}
api
.fetchAll(this.queries, { wait: this.queriesWait, initial: true })
.then((responses) => {
this.$emit('queries-response', ...responses)
this.fallback_loading = false
})
},
},
created () {
created() {
if (this.queries) this.fetchQueries()
}
},
}
</script>

View file

@ -1,21 +1,24 @@
<template>
<view-base v-bind="$attrs" v-on="$listeners" :skeleton="skeleton">
<ViewBase v-bind="$attrs" v-on="$listeners" :skeleton="skeleton">
<template v-if="hasCustomTopBar" #top-bar>
<slot name="top-bar" />
</template>
<template v-if="!hasCustomTopBar" #top-bar-group-left>
<b-input-group class="w-100">
<b-input-group-prepend is-text>
<icon iname="search" />
</b-input-group-prepend>
<BInputGroup class="w-100">
<BInputGroupPrepend is-text>
<YIcon iname="search" />
</BInputGroupPrepend>
<b-form-input
<BFormInput
id="top-bar-search"
:value="search" @input="$emit('update:search', $event)"
:placeholder="$t('search.for', { items: $tc('items.' + itemsName, 2) })"
:value="search"
@input="$emit('update:search', $event)"
:placeholder="
$t('search.for', { items: $tc('items.' + itemsName, 2) })
"
:disabled="!items"
/>
</b-input-group>
</BInputGroup>
</template>
<template v-if="!hasCustomTopBar" #top-bar-group-right>
<slot name="top-bar-buttons" />
@ -26,12 +29,18 @@
</template>
<template #default>
<b-alert v-if="items === null || filteredItems === null" variant="warning">
<BAlert v-if="items === null || filteredItems === null" variant="warning">
<slot name="alert-message">
<icon iname="exclamation-triangle" />
{{ $tc(items === null ? 'items_verbose_count': 'search.not_found', 0, { items: $tc('items.' + itemsName, 0) }) }}
<YIcon iname="exclamation-triangle" />
{{
$tc(
items === null ? 'items_verbose_count' : 'search.not_found',
0,
{ items: $tc('items.' + itemsName, 0) },
)
}}
</slot>
</b-alert>
</BAlert>
<slot v-else name="default" />
</template>
@ -43,7 +52,7 @@
<template #skeleton>
<slot name="skeleton" />
</template>
</view-base>
</ViewBase>
</template>
<script>
@ -55,13 +64,13 @@ export default {
itemsName: { type: String, required: true },
filteredItems: { type: null, required: true },
search: { type: String, default: null },
skeleton: { type: String, default: 'list-group-skeleton' }
skeleton: { type: String, default: 'ListGroupSkeleton' },
},
computed: {
hasCustomTopBar () {
hasCustomTopBar() {
return 'top-bar' in this.$slots
}
}
},
},
}
</script>

View file

@ -1,36 +1,36 @@
<template>
<component
<Component
v-bind="$attrs"
:is="alert ? 'b-alert' : 'div'"
:is="alert ? 'BAlert' : 'div'"
:variant="alert ? variant : null"
:class="{ ['alert alert-' + variant]: !alert }"
class="yuno-alert d-flex flex-column flex-md-row align-items-center"
>
<icon :iname="_icon" class="mr-md-3 mb-md-0 mb-2 md" />
<YIcon :iname="_icon" class="mr-md-3 mb-md-0 mb-2 md" />
<div class="w-100">
<slot name="default" />
</div>
</component>
</Component>
</template>
<script>
import { DEFAULT_STATUS_ICON } from '@/helpers/yunohostArguments'
export default {
name: 'YunoAlert',
name: 'YAlert',
props: {
alert: { type: Boolean, default: false },
variant: { type: String, default: 'info' },
icon: { type: String, default: null }
icon: { type: String, default: null },
},
computed: {
_icon () {
_icon() {
if (this.icon) return this.icon
return DEFAULT_STATUS_ICON[this.variant]
}
}
},
},
}
</script>

View file

@ -0,0 +1,36 @@
<template>
<BBreadcrumb v-if="breadcrumb.length">
<BBreadcrumbItem to="/">
<span class="sr-only">{{ $t('home') }}</span>
<YIcon iname="home" />
</BBreadcrumbItem>
<BBreadcrumbItem
v-for="({ name, text }, i) in breadcrumb"
:key="name"
:to="{ name }"
:active="i === breadcrumb.length - 1"
>
{{ text }}
</BBreadcrumbItem>
</BBreadcrumb>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
name: 'YBreadcrumb',
computed: {
...mapGetters(['breadcrumb']),
},
}
</script>
<style lang="scss" scoped>
.breadcrumb {
border: none;
background-color: transparent;
}
</style>

View file

@ -1,35 +1,49 @@
<template>
<b-card v-bind="$attrs" :no-body="collapsable ? true : $attrs['no-body']">
<BCard v-bind="$attrs" :no-body="collapsable ? true : $attrs['no-body']">
<template #header>
<div class="w-100 d-flex align-items-center flex-wrap custom-header">
<slot name="header">
<component :is="titleTag" class="custom-header-title">
<icon v-if="icon" :iname="icon" class="mr-2" />{{ title }}
</component>
<Component :is="titleTag" class="custom-header-title">
<YIcon v-if="icon" :iname="icon" class="mr-2" />{{ title }}
</Component>
<slot name="header-next" />
</slot>
<div v-if="hasButtons" class="mt-2 w-100 custom-header-buttons" :class="{ [`ml-${buttonUnbreak}-auto mt-${buttonUnbreak}-0 w-${buttonUnbreak}-auto`]: buttonUnbreak }">
<div
v-if="hasButtons"
class="mt-2 w-100 custom-header-buttons"
:class="{
[`ml-${buttonUnbreak}-auto mt-${buttonUnbreak}-0 w-${buttonUnbreak}-auto`]:
buttonUnbreak,
}"
>
<slot name="header-buttons" />
</div>
</div>
<b-button
v-if="collapsable" @click="visible = !visible"
size="sm" variant="outline-secondary"
class="align-self-center ml-auto" :class="{ 'not-collapsed': visible, 'collapsed': !visible, [`ml-${buttonUnbreak}-2`]: buttonUnbreak }"
<BButton
v-if="collapsable"
@click="visible = !visible"
size="sm"
variant="outline-secondary"
class="align-self-center ml-auto"
:class="{
'not-collapsed': visible,
collapsed: !visible,
[`ml-${buttonUnbreak}-2`]: buttonUnbreak,
}"
>
<icon iname="chevron-right" />
<YIcon iname="chevron-right" />
<span class="sr-only">{{ $t('words.collapse') }}</span>
</b-button>
</BButton>
</template>
<b-collapse v-if="collapsable" :visible="visible">
<slot v-if="('no-body' in $attrs)" name="default" />
<b-card-body v-else>
<BCollapse v-if="collapsable" :visible="visible">
<slot v-if="'no-body' in $attrs" name="default" />
<BCardBody v-else>
<slot name="default" />
</b-card-body>
</b-collapse>
</BCardBody>
</BCollapse>
<template v-else>
<slot name="default" />
</template>
@ -37,13 +51,12 @@
<template #footer v-if="'buttons' in $slots">
<slot name="buttons" />
</template>
</b-card>
</BCard>
</template>
<script>
export default {
name: 'Card',
name: 'YCard',
props: {
id: { type: String, default: 'ynh-form' },
@ -52,20 +65,20 @@ export default {
icon: { type: String, default: null },
collapsable: { type: Boolean, default: false },
collapsed: { type: Boolean, default: false },
buttonUnbreak: { type: String, default: 'md' }
buttonUnbreak: { type: String, default: 'md' },
},
data () {
data() {
return {
visible: !this.collapsed
visible: !this.collapsed,
}
},
computed: {
hasButtons () {
hasButtons() {
return 'header-buttons' in this.$slots
}
}
},
},
}
</script>
@ -79,7 +92,7 @@ export default {
}
.btn + .btn {
margin-left: .5rem;
margin-left: 0.5rem;
}
}
}
@ -90,7 +103,7 @@ export default {
align-items: center;
& > *:not(:first-child) {
margin-left: .5rem;
margin-left: 0.5rem;
}
}
.collapse:not(.show) + .card-footer {

View file

@ -1,14 +1,17 @@
<template>
<span :class="['icon fa fa-' + iname, variant ? 'variant ' + variant : '']" aria-hidden="true" />
<span
:class="['icon fa fa-' + iname, variant ? 'variant ' + variant : '']"
aria-hidden="true"
/>
</template>
<script>
export default {
name: 'Icon',
name: 'YIcon',
props: {
iname: { type: String, required: true },
variant: { type: String, default: null }
}
variant: { type: String, default: null },
},
}
</script>
@ -35,7 +38,7 @@ export default {
}
&.variant {
font-size: .8rem;
font-size: 0.8rem;
width: 1.35rem;
min-width: 1.35rem;
height: 1.35rem;

View file

@ -1,26 +1,20 @@
<template>
<b-list-group-item
class="yuno-list-group-item" :class="_class"
v-bind="$attrs"
>
<BListGroupItem class="yuno-list-group-item" :class="_class" v-bind="$attrs">
<div v-if="!noStatus" class="yuno-list-group-item-status">
<icon
v-if="_icon" :iname="_icon"
:class="['icon-' + variant]"
/>
<YIcon v-if="_icon" :iname="_icon" :class="['icon-' + variant]" />
</div>
<div class="yuno-list-group-item-content">
<slot name="default" />
</div>
</b-list-group-item>
</BListGroupItem>
</template>
<script>
import { DEFAULT_STATUS_ICON } from '@/helpers/yunohostArguments'
export default {
name: 'YunoListGroupItem',
name: 'YListGroupItem',
props: {
variant: { type: String, default: 'white' },
@ -28,28 +22,27 @@ export default {
noIcon: { type: Boolean, default: false },
noStatus: { type: Boolean, default: false },
size: { type: String, default: 'md' },
faded: { type: Boolean, default: false }
faded: { type: Boolean, default: false },
},
computed: {
_icon () {
_icon() {
return this.noIcon ? null : this.icon || DEFAULT_STATUS_ICON[this.variant]
},
_class () {
_class() {
const baseClass = 'yuno-list-group-item-'
return [
baseClass + this.size,
baseClass + this.variant,
{ [baseClass + 'faded']: this.faded }
baseClass + this.size,
baseClass + this.variant,
{ [baseClass + 'faded']: this.faded },
]
}
}
},
},
}
</script>
<style lang="scss" scoped>
.yuno-list-group-item {
display: flex;
padding: 0;
@ -70,7 +63,7 @@ export default {
&-#{$color} {
color: theme-color-level($color, 6);
[dark-theme="true"] & {
[dark-theme='true'] & {
color: theme-color-level($color, -6);
}
@ -96,7 +89,7 @@ export default {
&-xs {
.yuno-list-group-item-status {
width: .4rem;
width: 0.4rem;
.icon {
display: none;
@ -109,7 +102,7 @@ export default {
}
&-faded > * {
opacity: .5;
opacity: 0.5;
}
}
</style>

View file

@ -0,0 +1,134 @@
<template>
<div :class="['custom-spinner', spinner]" />
</template>
<script>
import { mapGetters } from 'vuex'
export default {
name: 'YSpinner',
computed: {
...mapGetters(['spinner']),
},
}
</script>
<style lang="scss" scoped>
.custom-spinner {
animation: 8s linear infinite;
background-repeat: no-repeat;
&.pacman {
height: 24px;
width: 24px;
background-image: url('../../assets/spinners/pacman_dark.gif');
animation-name: back-and-forth-pacman;
[dark-theme='true'] & {
background-image: url('../../assets/spinners/pacman_light.gif');
}
@keyframes back-and-forth-pacman {
0%,
100% {
transform: scale(1);
margin-left: 0;
}
49% {
transform: scale(1);
margin-left: calc(100% - 24px);
}
50% {
transform: scale(-1);
margin-left: calc(100% - 24px);
}
99% {
transform: scale(-1);
margin-left: 0;
}
}
}
&.magikarp {
height: 32px;
width: 32px;
background-image: url('../../assets/spinners/magikarp.gif');
animation-name: back-and-forth-magikarp;
@keyframes back-and-forth-magikarp {
0%,
100% {
transform: scale(1, 1);
margin-left: 0;
}
49% {
transform: scale(1, 1);
margin-left: calc(100% - 32px);
}
50% {
transform: scale(-1, 1);
margin-left: calc(100% - 32px);
}
99% {
transform: scale(-1, 1);
margin-left: 0;
}
}
}
&.nyancat {
height: 40px;
width: 100px;
background-image: url('../../assets/spinners/nyancat.gif');
animation-name: back-and-forth-nyancat;
@keyframes back-and-forth-nyancat {
0%,
100% {
transform: scale(1, 1);
margin-left: 0;
}
49% {
transform: scale(1, 1);
margin-left: calc(100% - 100px);
}
50% {
transform: scale(-1, 1);
margin-left: calc(100% - 100px);
}
99% {
transform: scale(-1, 1);
margin-left: 0;
}
}
}
&.spookycat {
height: 40px;
width: 65px;
background-image: url('../../assets/spinners/spookycat.gif');
animation-name: back-and-forth-spookycat;
@keyframes back-and-forth-spookycat {
0%,
100% {
transform: scale(1, 1);
margin-left: 0;
}
49% {
transform: scale(1, 1);
margin-left: calc(100% - 100px);
}
50% {
transform: scale(-1, 1);
margin-left: calc(100% - 100px);
}
99% {
transform: scale(-1, 1);
margin-left: 0;
}
}
}
}
</style>

View file

@ -1,18 +1,17 @@
<template>
<b-button
<BButton
:id="id"
:variant="type"
@click="$emit('action', $event)"
:disabled="!enabled"
class="d-block mb-3"
>
<icon :iname="icon_" class="mr-2" />
<YIcon :iname="icon_" class="mr-2" />
<span v-html="label" />
</b-button>
</BButton>
</template>
<script>
export default {
name: 'ButtonItem',
@ -21,20 +20,20 @@ export default {
id: { type: String, default: null },
type: { type: String, default: 'success' },
icon: { type: String, default: null },
enabled: { type: [Boolean, String], default: true }
enabled: { type: [Boolean, String], default: true },
},
computed: {
icon_ () {
icon_() {
const icons = {
success: 'thumbs-up',
info: 'info',
warning: 'exclamation',
danger: 'times'
danger: 'times',
}
return this.icon || icons[this.type]
}
}
},
},
}
</script>

View file

@ -1,5 +1,5 @@
<template>
<b-checkbox
<BFormCheckbox
v-model="checked"
v-on="$listeners"
:id="id"
@ -7,7 +7,7 @@
switch
>
{{ label || $t(labels[checked]) }}
</b-checkbox>
</BFormCheckbox>
</template>
<script>
@ -18,13 +18,13 @@ export default {
value: { type: Boolean, required: true },
id: { type: String, default: null },
label: { type: String, default: null },
labels: { type: Object, default: () => ({ true: 'yes', false: 'no' }) }
labels: { type: Object, default: () => ({ true: 'yes', false: 'no' }) },
},
data () {
data() {
return {
checked: this.value
checked: this.value,
}
}
},
}
</script>

View file

@ -10,7 +10,7 @@ export default {
props: {
id: { type: String, default: null },
label: { type: String, default: null }
}
label: { type: String, default: null },
},
}
</script>

View file

@ -1,14 +1,15 @@
<template>
<b-button-group class="w-100">
<b-button
<BButtonGroup class="w-100">
<BButton
v-if="!this.required && this.value.file !== null"
@click="clearFiles" variant="danger"
@click="clearFiles"
variant="danger"
>
<span class="sr-only">{{ $t('delete') }}</span>
<icon iname="trash" />
</b-button>
<YIcon iname="trash" />
</BButton>
<b-form-file
<BFormFile
:value="value.file"
ref="input-file"
:id="id"
@ -22,7 +23,7 @@
@blur="$parent.$emit('touch', name)"
@focusout.native="$parent.$emit('touch', name)"
/>
</b-button-group>
</BButtonGroup>
</template>
<script>
@ -39,42 +40,42 @@ export default {
accept: { type: String, default: null },
state: { type: Boolean, default: null },
required: { type: Boolean, default: false },
name: { type: String, default: null }
name: { type: String, default: null },
},
computed: {
_placeholder: function () {
return this.value.file === null ? this.placeholder : this.value.file.name
}
},
},
methods: {
onInput (file) {
onInput(file) {
const value = {
file,
content: '',
current: false,
removed: false
removed: false,
}
// Update the value with the new File and an empty content for now
this.$emit('input', value)
// Asynchronously load the File content and update the value again
getFileContent(file).then(content => {
getFileContent(file).then((content) => {
this.$emit('input', { ...value, content })
})
},
clearFiles () {
clearFiles() {
this.$refs['input-file'].reset()
this.$emit('input', {
file: null,
content: '',
current: false,
removed: true
removed: true,
})
}
}
},
},
}
</script>

View file

@ -1,5 +1,5 @@
<template>
<b-input
<BFormInput
:value="value"
:id="id"
:placeholder="placeholder"
@ -17,7 +17,6 @@
</template>
<script>
export default {
name: 'InputItem',
@ -34,13 +33,17 @@ export default {
trim: { type: Boolean, default: true },
autocomplete: { type: String, default: null },
pattern: { type: Object, default: null },
name: { type: String, default: null }
name: { type: String, default: null },
},
data () {
data() {
return {
autocomplete_: (this.autocomplete) ? this.autocomplete : (this.type === 'password') ? 'new-password' : null
autocomplete_: this.autocomplete
? this.autocomplete
: this.type === 'password'
? 'new-password'
: null,
}
}
},
}
</script>

View file

@ -1,5 +1,5 @@
<template>
<vue-showdown :markdown="label" flavor="github" />
<VueShowdown :markdown="label" flavor="github" />
</template>
<script>
@ -8,7 +8,7 @@ export default {
props: {
id: { type: String, default: null },
label: { type: String, default: null }
}
label: { type: String, default: null },
},
}
</script>

View file

@ -1,12 +1,18 @@
<template>
<b-alert class="d-flex flex-column flex-md-row align-items-center" :variant="type" show>
<icon :iname="icon_" class="mr-md-3 mb-md-0 mb-2" :variant="type" />
<BAlert
class="d-flex flex-column flex-md-row align-items-center"
:variant="type"
show
>
<YIcon :iname="icon_" class="mr-md-3 mb-md-0 mb-2" :variant="type" />
<vue-showdown
:markdown="label" flavor="github"
tag="span" class="markdown"
<VueShowdown
:markdown="label"
flavor="github"
tag="span"
class="markdown"
/>
</b-alert>
</BAlert>
</template>
<script>
@ -17,19 +23,19 @@ export default {
id: { type: String, default: null },
label: { type: String, default: null },
type: { type: String, default: null },
icon: { type: String, default: null }
icon: { type: String, default: null },
},
computed: {
icon_ () {
icon_() {
const icons = {
success: 'thumbs-up',
info: 'info',
warning: 'exclamation',
danger: 'times'
danger: 'times',
}
return this.icon || icons[this.type]
}
}
},
},
}
</script>

View file

@ -1,5 +1,5 @@
<template>
<b-select
<BFormSelect
:value="value"
:id="id"
:options="choices"
@ -18,7 +18,7 @@ export default {
id: { type: String, default: null },
choices: { type: [Array, Object], required: true },
required: { type: Boolean, default: false },
name: { type: String, default: null }
}
name: { type: String, default: null },
},
}
</script>

View file

@ -1,5 +1,5 @@
<template>
<b-form-tags
<BFormTags
v-model="tags"
:id="id"
:placeholder="placeholder"
@ -8,6 +8,7 @@
:limit="limit"
remove-on-delete
:state="state"
:options="options"
v-on="$listeners"
@blur="$parent.$emit('touch', name)"
/>
@ -17,9 +18,9 @@
export default {
name: 'TagsItem',
data () {
data() {
return {
tags: this.value
tags: this.value,
}
},
props: {
@ -29,8 +30,8 @@ export default {
limit: { type: Number, default: null },
required: { type: Boolean, default: false },
state: { type: Boolean, default: null },
name: { type: String, default: null }
}
name: { type: String, default: null },
options: { type: Array, default: null },
},
}
</script>

View file

@ -1,66 +1,93 @@
<template>
<div class="tags-selectize">
<b-form-tags
v-bind="$attrs" v-on="$listeners"
:value="value" :id="id"
size="lg" class="p-0 border-0" no-outer-focus
<BFormTags
v-bind="$attrs"
v-on="$listeners"
:value="value"
:id="id"
size="lg"
class="p-0 border-0"
no-outer-focus
>
<template #default="{ tags, disabled, addTag, removeTag }">
<ul v-if="!noTags && tags.length > 0" class="list-inline d-inline-block mb-2">
<li v-for="tag in tags" :key="id + '-' + tag" class="list-inline-item">
<b-form-tag
<ul
v-if="!noTags && tags.length > 0"
class="list-inline d-inline-block mb-2"
>
<li
v-for="tag in tags"
:key="id + '-' + tag"
class="list-inline-item"
>
<BFormTag
@remove="onRemoveTag({ option: tag, removeTag })"
:title="tag"
:disabled="disabled || disabledItems.includes(tag)"
class="border border-dark mb-2"
>
<icon v-if="tagIcon" :iname="tagIcon" /> {{ tag }}
</b-form-tag>
<YIcon v-if="tagIcon" :iname="tagIcon" /> {{ tag }}
</BFormTag>
</li>
</ul>
<b-dropdown
<BDropdown
ref="dropdown"
variant="outline-dark" block menu-class="w-100"
variant="outline-dark"
block
menu-class="w-100"
@keydown.native="onDropdownKeydown"
>
<template #button-content>
<icon iname="search-plus" /> {{ label }}
<YIcon iname="search-plus" /> {{ label }}
</template>
<b-dropdown-group class="search-group">
<b-dropdown-form @submit.stop.prevent="() => {}">
<b-form-group
<BDropdownGroup class="search-group">
<BDropdownForm @submit.stop.prevent="() => {}">
<BFormGroup
:label="$t('search.for', { items: itemsName })"
label-cols-md="auto" label-size="sm" :label-for="id + '-search-input'"
:invalid-feedback="$tc('search.not_found', 0, { items: $tc('items.' + itemsName, 0) })"
:state="searchState" :disabled="disabled"
label-cols-md="auto"
label-size="sm"
:label-for="id + '-search-input'"
:invalid-feedback="
$tc('search.not_found', 0, {
items: $tc('items.' + itemsName, 0),
})
"
:state="searchState"
:disabled="disabled"
class="mb-0"
>
<b-form-input
ref="search-input" v-model="search"
<BFormInput
ref="search-input"
v-model="search"
:id="id + '-search-input'"
type="search" size="sm" autocomplete="off"
type="search"
size="sm"
autocomplete="off"
/>
</b-form-group>
</b-dropdown-form>
<b-dropdown-divider />
</b-dropdown-group>
</BFormGroup>
</BDropdownForm>
<BDropdownDivider />
</BDropdownGroup>
<b-dropdown-item-button
<BDropdownItemButton
v-for="option in availableOptions"
:key="option"
@click="onAddTag({ option, addTag })"
>
{{ option }}
</b-dropdown-item-button>
<b-dropdown-text v-if="!criteria && availableOptions.length === 0">
<icon iname="exclamation-triangle" />
{{ $tc('items_verbose_items_left', 0, { items: $tc('items.' + itemsName, 0) }) }}
</b-dropdown-text>
</b-dropdown>
</BDropdownItemButton>
<BDropdownText v-if="!criteria && availableOptions.length === 0">
<YIcon iname="exclamation-triangle" />
{{
$tc('items_verbose_items_left', 0, {
items: $tc('items.' + itemsName, 0),
})
}}
</BDropdownText>
</BDropdown>
</template>
</b-form-tags>
</BFormTags>
</div>
</template>
@ -68,6 +95,8 @@
export default {
name: 'TagsSelectizeItem',
inheritAttrs: false,
props: {
value: { type: Array, required: true },
options: { type: Array, required: true },
@ -76,43 +105,45 @@ export default {
limit: { type: Number, default: null },
name: { type: String, default: null },
itemsName: { type: String, required: true },
disabledItems: { type: Array, default: () => ([]) },
disabledItems: { type: Array, default: () => [] },
// By default `addTag` and `removeTag` have to be executed manually by listening to 'tag-update'.
auto: { type: Boolean, default: false },
noTags: { type: Boolean, default: false },
label: { type: String, default: null },
tagIcon: { type: String, default: null }
tagIcon: { type: String, default: null },
},
data () {
data() {
return {
search: ''
search: '',
}
},
computed: {
criteria () {
criteria() {
return this.search.trim().toLowerCase()
},
availableOptions () {
availableOptions() {
const criteria = this.criteria
const options = this.options.filter(opt => {
return this.value.indexOf(opt) === -1 && !this.disabledItems.includes(opt)
const options = this.options.filter((opt) => {
return (
this.value.indexOf(opt) === -1 && !this.disabledItems.includes(opt)
)
})
if (criteria) {
return options.filter(opt => opt.toLowerCase().indexOf(criteria) > -1)
return options.filter((opt) => opt.toLowerCase().indexOf(criteria) > -1)
}
return options
},
searchState () {
searchState() {
return this.criteria && this.availableOptions.length === 0 ? false : null
}
},
},
methods: {
onAddTag ({ option, addTag }) {
onAddTag({ option, addTag }) {
this.$emit('tag-update', { action: 'add', option, applyMethod: addTag })
this.search = ''
if (this.auto) {
@ -120,14 +151,18 @@ export default {
}
},
onRemoveTag ({ option, removeTag }) {
this.$emit('tag-update', { action: 'remove', option, applyMethod: removeTag })
onRemoveTag({ option, removeTag }) {
this.$emit('tag-update', {
action: 'remove',
option,
applyMethod: removeTag,
})
if (this.auto) {
removeTag(option)
}
},
onDropdownKeydown (e) {
onDropdownKeydown(e) {
// Allow to start searching after dropdown opening
if (
!['Tab', 'Space'].includes(e.code) &&
@ -135,8 +170,8 @@ export default {
) {
this.$refs['search-input'].focus()
}
}
}
},
},
}
</script>
@ -147,7 +182,7 @@ export default {
padding-top: 0;
.search-group {
padding-top: .5rem;
padding-top: 0.5rem;
position: sticky;
top: 0;
background-color: $white;

View file

@ -1,5 +1,5 @@
<template>
<b-form-textarea
<BFormTextarea
:value="value"
:id="id"
:placeholder="placeholder"
@ -22,7 +22,7 @@ export default {
type: { type: String, default: 'text' },
required: { type: Boolean, default: false },
state: { type: Boolean, default: null },
name: { type: String, default: null }
}
name: { type: String, default: null },
},
}
</script>

View file

@ -1,20 +1,20 @@
<template>
<b-card>
<BCard>
<template #header>
<b-skeleton width="30%" height="36px" class="m-0" />
<BSkeleton width="30%" height="36px" class="m-0" />
</template>
<div v-for="count in itemCount" :key="count">
<template v-if="randint(0, 1)">
<b-skeleton width="100%" height="24px" />
<b-skeleton :width="randint(15, 60) + '%'" height="24px" />
<BSkeleton width="100%" height="24px" />
<BSkeleton :width="randint(15, 60) + '%'" height="24px" />
</template>
<b-skeleton v-else :width="randint(45, 100) + '%'" height="24px" />
<BSkeleton v-else :width="randint(45, 100) + '%'" height="24px" />
<b-skeleton :width="randint(20, 30) + '%'" height="38px" class="mt-3" />
<hr>
<BSkeleton :width="randint(20, 30) + '%'" height="38px" class="mt-3" />
<hr />
</div>
</b-card>
</BCard>
</template>
<script>
@ -24,9 +24,9 @@ export default {
name: 'CardButtonsSkeleton',
props: {
itemCount: { type: Number, default: 5 }
itemCount: { type: Number, default: 5 },
},
methods: { randint }
methods: { randint },
}
</script>

View file

@ -1,39 +1,46 @@
<template>
<b-card>
<BCard>
<template #header>
<b-skeleton width="30%" height="36px" class="m-0" />
<BSkeleton width="30%" height="36px" class="m-0" />
</template>
<template v-for="count in itemCount">
<b-row :key="count" :class="{ 'd-block': cols === null }">
<b-col v-bind="cols">
<BRow :key="count" :class="{ 'd-block': cols === null }">
<BCol v-bind="cols">
<div style="height: 38px" class="d-flex align-items-center">
<b-skeleton class="m-0" :width="randint(45, 100) + '%'" height="24px" />
<BSkeleton
class="m-0"
:width="randint(45, 100) + '%'"
height="24px"
/>
</div>
</b-col>
</BCol>
<b-col>
<div class="w100 d-flex justify-content-between" v-if="count % 2 === 0">
<b-skeleton width="100%" height="38px" />
<BCol>
<div
class="w100 d-flex justify-content-between"
v-if="count % 2 === 0"
>
<BSkeleton width="100%" height="38px" />
<b-skeleton width="38px" height="38px" class="ml-2" />
<BSkeleton width="38px" height="38px" class="ml-2" />
</div>
<b-skeleton v-else width="100%" height="38px" />
<BSkeleton v-else width="100%" height="38px" />
<b-skeleton :width="randint(15, 35) + '%'" height="19px" />
</b-col>
</b-row>
<BSkeleton :width="randint(15, 35) + '%'" height="19px" />
</BCol>
</BRow>
<hr :key="count + '-hr'">
<hr :key="count + '-hr'" />
</template>
<template #footer>
<div class="d-flex justify-content-end w-100">
<b-skeleton width="100px" height="38px" />
<BSkeleton width="100px" height="38px" />
</div>
</template>
</b-card>
</BCard>
</template>
<script>
@ -44,9 +51,14 @@ export default {
props: {
itemCount: { type: Number, default: 5 },
cols: { type: [Object, null], default () { return { md: 4, lg: 2 } } }
cols: {
type: [Object, null],
default() {
return { md: 4, lg: 2 }
},
},
},
methods: { randint }
methods: { randint },
}
</script>

View file

@ -1,18 +1,18 @@
<template>
<b-card>
<BCard>
<template #header>
<b-skeleton width="30%" height="36px" class="m-0" />
<BSkeleton width="30%" height="36px" class="m-0" />
</template>
<b-row v-for="i in itemCount" :key="i" no-gutters>
<b-col cols="5" md="3" xl="3">
<b-skeleton :width="randint(45, 95) + '%'" height="19px" />
</b-col>
<b-col>
<b-skeleton :width="randint(10, 60) + '%'" height="19px" />
</b-col>
</b-row>
</b-card>
<BRow v-for="i in itemCount" :key="i" no-gutters>
<BCol cols="5" md="3" xl="3">
<BSkeleton :width="randint(45, 95) + '%'" height="19px" />
</BCol>
<BCol>
<BSkeleton :width="randint(10, 60) + '%'" height="19px" />
</BCol>
</BRow>
</BCard>
</template>
<script>
@ -22,9 +22,9 @@ export default {
name: 'CardInfoSkeleton',
props: {
itemCount: { type: Number, default: 5 }
itemCount: { type: Number, default: 5 },
},
methods: { randint }
methods: { randint },
}
</script>

View file

@ -1,18 +1,22 @@
<template>
<b-card no-body>
<BCard no-body>
<template #header>
<b-skeleton width="30%" height="36px" class="m-0" />
<BSkeleton width="30%" height="36px" class="m-0" />
</template>
<b-list-group flush>
<b-list-group-item v-for="count in itemCount" :key="count" class="d-flex">
<div style="width: 20%;">
<b-skeleton :width="randint(50, 100) + '%'" height="24px" class="mr-3" />
<BListGroup flush>
<BListGroupItem v-for="count in itemCount" :key="count" class="d-flex">
<div style="width: 20%">
<BSkeleton
:width="randint(50, 100) + '%'"
height="24px"
class="mr-3"
/>
</div>
<b-skeleton :width="randint(30, 80) + '%'" height="24px" class="m-0" />
</b-list-group-item>
</b-list-group>
</b-card>
<BSkeleton :width="randint(30, 80) + '%'" height="24px" class="m-0" />
</BListGroupItem>
</BListGroup>
</BCard>
</template>
<script>
@ -22,9 +26,9 @@ export default {
name: 'CardListSkeleton',
props: {
itemCount: { type: Number, default: 5 }
itemCount: { type: Number, default: 5 },
},
methods: { randint }
methods: { randint },
}
</script>

View file

@ -1,10 +1,10 @@
<template>
<b-list-group>
<b-list-group-item v-for="count in itemCount" :key="count">
<b-skeleton :width="randint(15, 25) + '%'" height="24px" class="mb-2" />
<b-skeleton :width="randint(25, 50) + '%'" height="24px" class="m-0" />
</b-list-group-item>
</b-list-group>
<BListGroup>
<BListGroupItem v-for="count in itemCount" :key="count">
<BSkeleton :width="randint(15, 25) + '%'" height="24px" class="mb-2" />
<BSkeleton :width="randint(25, 50) + '%'" height="24px" class="m-0" />
</BListGroupItem>
</BListGroup>
</template>
<script>
@ -14,9 +14,9 @@ export default {
name: 'ListGroupSkeleton',
props: {
itemCount: { type: Number, default: 5 }
itemCount: { type: Number, default: 5 },
},
methods: { randint }
methods: { randint },
}
</script>

View file

@ -7,7 +7,7 @@
* @param {Number} delay - delay after which the promise is rejected
* @return {Promise}
*/
export function timeout (promise, delay) {
export function timeout(promise, delay) {
return new Promise((resolve, reject) => {
// FIXME reject(new Error('api_not_responding')) for post-install
setTimeout(() => reject, delay)
@ -15,18 +15,20 @@ export function timeout (promise, delay) {
})
}
/**
* Check if passed value is an object literal.
*
* @param {*} value - Anything.
* @return {Boolean}
*/
export function isObjectLiteral (value) {
return value !== null && value !== undefined && Object.is(value.constructor, Object)
export function isObjectLiteral(value) {
return (
value !== null &&
value !== undefined &&
Object.is(value.constructor, Object)
)
}
/**
* Check if value is "empty" (`null`, `undefined`, `''`, `[]`, '{}').
* Note: `0` is not considered "empty" in that helper.
@ -34,12 +36,11 @@ export function isObjectLiteral (value) {
* @param {*} value - Anything.
* @return {Boolean}
*/
export function isEmptyValue (value) {
export function isEmptyValue(value) {
if (typeof value === 'number') return false
return !value || value.length === 0 || Object.keys(value).length === 0
}
/**
* Returns an flattened object literal, with all keys at first level and removing nested ones.
*
@ -47,8 +48,8 @@ export function isEmptyValue (value) {
* @param {Object} [flattened={}] - An object literal to add passed obj keys/values.
* @return {Object}
*/
export function flattenObjectLiteral (obj, flattened = {}) {
function flatten (objLit) {
export function flattenObjectLiteral(obj, flattened = {}) {
function flatten(objLit) {
for (const key in objLit) {
const value = objLit[key]
if (isObjectLiteral(value)) {
@ -62,7 +63,6 @@ export function flattenObjectLiteral (obj, flattened = {}) {
return flattened
}
/**
* Returns an new Object filtered with passed filter function.
* Each entry `[key, value]` will be forwarded to the `filter` function.
@ -71,11 +71,12 @@ export function flattenObjectLiteral (obj, flattened = {}) {
* @param {Function} filter - the filter function to call for each entry.
* @return {Object}
*/
export function filterObject (obj, filter) {
return Object.fromEntries(Object.entries(obj).filter((...args) => filter(...args)))
export function filterObject(obj, filter) {
return Object.fromEntries(
Object.entries(obj).filter((...args) => filter(...args)),
)
}
/**
* Returns an new array containing items that are in first array but not in the other.
*
@ -83,18 +84,17 @@ export function filterObject (obj, filter) {
* @param {Array} [arr2=[]]
* @return {Array}
*/
export function arrayDiff (arr1 = [], arr2 = []) {
return arr1.filter(item => !arr2.includes(item))
export function arrayDiff(arr1 = [], arr2 = []) {
return arr1.filter((item) => !arr2.includes(item))
}
/**
* Returns a new string with escaped HTML (`&<>"'` replaced by entities).
*
* @param {String} unsafe
* @return {String}
*/
export function escapeHtml (unsafe) {
export function escapeHtml(unsafe) {
return unsafe
.replace(/&/g, '&amp;')
.replace(/</g, '&lt;')
@ -110,11 +110,10 @@ export function escapeHtml (unsafe) {
* @param {Number} max
* @return {Number}
*/
export function randint (min, max) {
export function randint(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min
}
/**
* Returns a File content.
*
@ -123,7 +122,7 @@ export function randint (min, max) {
* @param {Boolean} [extraParams.base64] - returns a base64 representation of the file.
* @return {Promise<String>}
*/
export function getFileContent (file, { base64 = false } = {}) {
export function getFileContent(file, { base64 = false } = {}) {
return new Promise((resolve, reject) => {
const reader = new FileReader()
reader.onerror = reject

View file

@ -2,7 +2,7 @@
* A Node that can have a parent and children.
*/
export class Node {
constructor (data) {
constructor(data) {
this.data = data
this.depth = 0
this.height = 0
@ -22,7 +22,7 @@ export class Node {
* @param {function} callback
* @return {Object}
*/
eachBefore (callback) {
eachBefore(callback) {
const nodes = []
let index = -1
let node = this
@ -49,7 +49,7 @@ export class Node {
* @param {function} callback
* @return {Object}
*/
eachAfter (callback) {
eachAfter(callback) {
const nodes = []
const next = []
let node = this
@ -81,7 +81,7 @@ export class Node {
* @param {String} [args.parentIdKey='name'] - the key name where we can find the parent identity.
* @return {Node}
*/
filter (callback) {
filter(callback) {
// Duplicates this tree and iter on nodes from leaves to root (post-order traversal)
return hierarchy(this).eachAfter((node, i) => {
// Since we create a new hierarchy from another, nodes's `data` contains the
@ -90,7 +90,7 @@ export class Node {
if (node.children) {
// Removed flagged children
node.children = node.children.filter(child => !child.remove)
node.children = node.children.filter((child) => !child.remove)
if (!node.children.length) delete node.children
}
@ -104,7 +104,6 @@ export class Node {
}
}
/**
* Generates a new hierarchy from the specified tabular `dataset`.
* The specified `dataset` must be an array of objects that contains at least a
@ -117,13 +116,16 @@ export class Node {
* @param {String} [args.parentIdKey='name'] - the key name where we can find the parent identity.
* @return {Node}
*/
export function stratify (dataset, { idKey = 'name', parentIdKey = 'parent' } = {}) {
export function stratify(
dataset,
{ idKey = 'name', parentIdKey = 'parent' } = {},
) {
const root = new Node(null, true)
root.children = []
const nodesMap = new Map()
// Creates all nodes that will be arranged in a hierarchy
const nodes = dataset.map(d => {
const nodes = dataset.map((d) => {
const node = new Node(d)
node.id = d[idKey]
nodesMap.set(node.id, node)
@ -148,7 +150,7 @@ export function stratify (dataset, { idKey = 'name', parentIdKey = 'parent' } =
}
})
root.eachBefore(node => {
root.eachBefore((node) => {
// Compute node depth
if (node.parent) {
node.depth = node.parent.depth + 1
@ -160,7 +162,6 @@ export function stratify (dataset, { idKey = 'name', parentIdKey = 'parent' } =
return root
}
/**
* Constructs a root node from the specified hierarchical `data`.
* The specified `data` must be an object representing the root node and its children.
@ -170,14 +171,14 @@ export function stratify (dataset, { idKey = 'name', parentIdKey = 'parent' } =
* @param {Node|Object} data - object representing a root node (a simple { id, children } object or a `Node`)
* @return {Node}
*/
export function hierarchy (data) {
export function hierarchy(data) {
const root = new Node(data)
const nodes = []
let node = root
while (node) {
if (node.data.children) {
node.children = node.data.children.map(child_ => {
node.children = node.data.children.map((child_) => {
const child = new Node(child_)
child.id = child_.id
child.parent = node === root ? null : node
@ -193,14 +194,13 @@ export function hierarchy (data) {
return root
}
/**
* Compute the node height by iterating on parents
* Code taken from d3.js https://github.com/d3/d3-hierarchy/blob/main/src/hierarchy/index.js#L62.
*
* @param {Node} node
*/
function computeNodeHeight (node) {
function computeNodeHeight(node) {
let height = 0
do {
node.height = height

View file

@ -3,17 +3,13 @@ import format from 'date-fns/format'
import { dateFnsLocale as locale } from '@/i18n/helpers'
export function distanceToNow (date, addSuffix = true, isTimestamp = false) {
return formatDistanceToNow(
new Date(isTimestamp ? date * 1000 : date),
{ addSuffix, locale }
)
export function distanceToNow(date, addSuffix = true, isTimestamp = false) {
return formatDistanceToNow(new Date(isTimestamp ? date * 1000 : date), {
addSuffix,
locale,
})
}
export function readableDate (date, isTimestamp = false) {
return format(
new Date(isTimestamp ? date * 1000 : date),
'PPPpp',
{ locale }
)
export function readableDate(date, isTimestamp = false) {
return format(new Date(isTimestamp ? date * 1000 : date), 'PPPpp', { locale })
}

View file

@ -1,13 +1,15 @@
export function humanSize (bytes) {
export function humanSize(bytes) {
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB']
if (bytes === 0) return 'n/a'
const i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)))
return Math.round(bytes / Math.pow(1024, i), 2) + ' ' + sizes[i]
}
export function humanPermissionName (text) {
return text.split('.')[1].replace('_', ' ').replace(/\w\S*/g, part => {
return part.charAt(0).toUpperCase() + part.substr(1).toLowerCase()
})
export function humanPermissionName(text) {
return text
.split('.')[1]
.replace('_', ' ')
.replace(/\w\S*/g, (part) => {
return part.charAt(0).toUpperCase() + part.substr(1).toLowerCase()
})
}

View file

@ -1,55 +1,73 @@
import { helpers } from 'vuelidate/lib/validators'
// Unicode ranges are taken from https://stackoverflow.com/a/37668315
const nonAsciiWordCharacters = '\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC'
const nonAsciiWordCharacters =
'\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC'
const alphalownumdot_ = helpers.regex('alphalownumdot_', /^[a-z0-9_.]+$/)
const alphalownum_ = helpers.regex('alphalownum_', /^[a-z0-9_]+$/)
const domain = helpers.regex(
'domain',
new RegExp(
`^(?:[\\da-z${nonAsciiWordCharacters}]+(?:-*[\\da-z${nonAsciiWordCharacters}]+)*\\.)+(?:(?:xn--)?[\\da-z${nonAsciiWordCharacters}]{2,})$`,
),
)
const domain = helpers.regex('domain', new RegExp(`^(?:[\\da-z${nonAsciiWordCharacters}]+(?:-*[\\da-z${nonAsciiWordCharacters}]+)*\\.)+(?:(?:xn--)?[\\da-z${nonAsciiWordCharacters}]{2,})$`))
const dynDomain = helpers.regex(
'dynDomain',
new RegExp(`^(?:xn--)?[\\da-z-${nonAsciiWordCharacters}]+$`),
)
const dynDomain = helpers.regex('dynDomain', new RegExp(`^(?:xn--)?[\\da-z-${nonAsciiWordCharacters}]+$`))
const emailLocalPart = helpers.regex('emailLocalPart', /^[\w+.-]+$/)
const emailLocalPart = helpers.regex('emailLocalPart', /^[\w.-]+$/)
const emailForwardLocalPart = helpers.regex(
'emailForwardLocalPart',
/^[\w+.-]+$/,
)
const emailForwardLocalPart = helpers.regex('emailForwardLocalPart', /^[\w+.-]+$/)
const email = value => helpers.withParams(
{ type: 'email', value },
value => {
const email = (value) =>
helpers.withParams({ type: 'email', value }, (value) => {
const [localPart, domainPart] = value.split('@')
if (!domainPart) return !helpers.req(value) || false
return !helpers.req(value) || (emailLocalPart(localPart) && domain(domainPart))
}
)(value)
return (
!helpers.req(value) || (emailLocalPart(localPart) && domain(domainPart))
)
})(value)
// Same as email but with `+` allowed.
const emailForward = value => helpers.withParams(
{ type: 'emailForward', value },
value => {
const emailForward = (value) =>
helpers.withParams({ type: 'emailForward', value }, (value) => {
const [localPart, domainPart] = value.split('@')
if (!domainPart) return !helpers.req(value) || false
return !helpers.req(value) || (emailForwardLocalPart(localPart) && domain(domainPart))
}
)(value)
return (
!helpers.req(value) ||
(emailForwardLocalPart(localPart) && domain(domainPart))
)
})(value)
const appRepoUrl = helpers.regex('appRepoUrl', /^https:\/\/[a-zA-Z0-9-_.]+\/[a-zA-Z0-9-_./~]+\/[a-zA-Z0-9-_.]+_ynh(\/?(-\/)?tree\/[a-zA-Z0-9-_.]+)?(\.git)?\/?$/)
const appRepoUrl = helpers.regex(
'appRepoUrl',
/^https:\/\/[a-zA-Z0-9-_.]+\/[a-zA-Z0-9-_./~]+\/[a-zA-Z0-9-_.]+_ynh(\/?(-\/)?tree\/[a-zA-Z0-9-_.]+)?(\.git)?\/?$/,
)
const includes = items => item => helpers.withParams(
{ type: 'includes', value: item },
item => !helpers.req(item) || (items ? items.includes(item) : false)
)(item)
const includes = (items) => (item) =>
helpers.withParams(
{ type: 'includes', value: item },
(item) => !helpers.req(item) || (items ? items.includes(item) : false),
)(item)
const name = helpers.regex('name', new RegExp(`^(?:[A-Za-z${nonAsciiWordCharacters}]{1,30}[ ,.'-]{0,3})+$`))
const name = helpers.regex(
'name',
new RegExp(`^(?:[A-Za-z${nonAsciiWordCharacters}]{1,30}[ ,.'-]{0,3})+$`),
)
const unique = items => item => helpers.withParams(
{ type: 'unique', arg: items, value: item },
item => items ? !helpers.req(item) || !items.includes(item) : true
)(item)
const unique = (items) => (item) =>
helpers.withParams({ type: 'unique', arg: items, value: item }, (item) =>
items ? !helpers.req(item) || !items.includes(item) : true,
)(item)
export {
alphalownum_,
alphalownumdot_,
domain,
dynDomain,
email,
@ -59,5 +77,5 @@ export {
appRepoUrl,
includes,
name,
unique
unique,
}

View file

@ -8,5 +8,5 @@ export {
minLength,
minValue,
required,
sameAs
sameAs,
} from 'vuelidate/lib/validators'

View file

@ -6,16 +6,15 @@ import {
isObjectLiteral,
isEmptyValue,
flattenObjectLiteral,
getFileContent
getFileContent,
} from '@/helpers/commons'
const NO_VALUE_FIELDS = [
'ReadOnlyField',
'ReadOnlyAlertItem',
'MarkdownItem',
'DisplayTextItem',
'ButtonItem'
'ButtonItem',
]
export const DEFAULT_STATUS_ICON = {
@ -24,7 +23,7 @@ export const DEFAULT_STATUS_ICON = {
error: 'times',
info: 'info',
success: 'check',
warning: 'warning'
warning: 'warning',
}
/**
@ -34,20 +33,19 @@ export const DEFAULT_STATUS_ICON = {
* @param {(Object|String|undefined)} field - A field value containing a translation object or string
* @return {String}
*/
export function formatI18nField (field) {
export function formatI18nField(field) {
if (typeof field === 'string') return field
const { locale, fallbackLocale } = store.state
return field ? field[locale] || field[fallbackLocale] || field.en : ''
}
/**
* Returns a string size declaration to a M value.
*
* @param {String} sizeStr - A size declared like '500M' or '56k'
* @return {Number}
*/
export function sizeToM (sizeStr) {
export function sizeToM(sizeStr) {
const unit = sizeStr.slice(-1)
const value = sizeStr.slice(0, -1)
if (unit === 'M') return parseInt(value)
@ -57,20 +55,18 @@ export function sizeToM (sizeStr) {
if (unit === 'T') return Math.ceil(value * 1024 * 1024)
}
/**
* Returns a formatted address element to be used by AdressInputSelect component.
*
* @param {String} address - A string representing an adress (subdomain or email)
* @return {Object} - `{ localPart, separator, domain }`.
*/
export function adressToFormValue (address) {
export function adressToFormValue(address) {
const separator = address.includes('@') ? '@' : '.'
const [localPart, domain] = address.split(separator)
return { localPart, separator, domain }
}
/**
* Evaluate config panel string expression that can contain regular expressions.
* Expression are evaluated with the config panel form as context.
@ -79,16 +75,19 @@ export function adressToFormValue (address) {
* @param {Object} forms - A nested form used in config panels.
* @return {Boolean} - expression evaluation result.
*/
export function evaluateExpression (expression, forms) {
export function evaluateExpression(expression, form, nested = true) {
if (!expression) return true
if (expression === '"false"') return false
const context = Object.values(forms).reduce((ctx, args) => {
Object.entries(args).forEach(([name, value]) => {
ctx[name] = isObjectLiteral(value) && 'file' in value ? value.content : value
})
return ctx
}, {})
const context = nested
? Object.values(form).reduce((merged, next) => ({ ...merged, ...next }))
: form
for (const key in context) {
if (isObjectLiteral(context[key]) && 'file' in context[key]) {
context[key] = context[key].content
}
}
// Allow to use match(var,regexp) function
const matchRe = /match(\s*(\w+)\s*,\s*"([^"]+)"\s*)/g
@ -107,13 +106,12 @@ export function evaluateExpression (expression, forms) {
}
// Adds a property to an Object that will dynamically returns a expression evaluation result.
function addEvaluationGetter (prop, obj, expr, ctx) {
function addEvaluationGetter(prop, obj, expr, ctx, nested) {
Object.defineProperty(obj, prop, {
get: () => evaluateExpression(expr, ctx)
get: () => evaluateExpression(expr, ctx, nested),
})
}
/**
* Format app install, actions and config panel argument into a data structure that
* will be automaticly transformed into a component on screen.
@ -121,8 +119,13 @@ function addEvaluationGetter (prop, obj, expr, ctx) {
* @param {Object} arg - a yunohost arg options written by a packager.
* @return {Object} an formated argument containing formItem props, validation and base value.
*/
export function formatYunoHostArgument (arg) {
let value = (arg.value !== undefined) ? arg.value : (arg.current_value !== undefined) ? arg.current_value : null
export function formatYunoHostArgument(arg) {
let value =
arg.value !== undefined
? arg.value
: arg.current_value !== undefined
? arg.current_value
: null
const validation = {}
const error = { message: null }
arg.ask = formatI18nField(arg.ask)
@ -132,21 +135,21 @@ export function formatYunoHostArgument (arg) {
props: {
label: arg.ask,
component: undefined,
props: {}
}
props: {},
},
}
const defaultProps = ['id:name', 'placeholder:example']
const defaultProps = ['id', 'placeholder:example']
const components = [
{
types: ['string', 'path'],
name: 'InputItem',
props: defaultProps.concat(['autocomplete', 'trim', 'choices'])
props: defaultProps.concat(['autocomplete', 'trim', 'choices']),
},
{
types: ['email', 'url', 'date', 'time', 'color'],
name: 'InputItem',
props: defaultProps.concat(['type', 'trim'])
props: defaultProps.concat(['type', 'trim']),
},
{
types: ['password'],
@ -158,7 +161,7 @@ export function formatYunoHostArgument (arg) {
}
arg.example = '••••••••••••'
validation.passwordLenght = validators.minLength(8)
}
},
},
{
types: ['number', 'range'],
@ -172,17 +175,20 @@ export function formatYunoHostArgument (arg) {
validation.maxValue = validators.maxValue(parseInt(arg.max))
}
validation.numValue = validators.integer
}
},
},
{
types: ['select', 'user', 'domain', 'app', 'group'],
name: 'SelectItem',
props: ['id:name', 'choices'],
props: ['id', 'choices'],
callback: function () {
if (arg.type !== 'select') {
field.props.link = { name: arg.type + '-list', text: i18n.t(`manage_${arg.type}s`) }
field.props.link = {
name: arg.type + '-list',
text: i18n.t(`manage_${arg.type}s`),
}
}
}
},
},
{
types: ['file'],
@ -194,26 +200,31 @@ export function formatYunoHostArgument (arg) {
file: value ? new File([''], value) : null,
content: '',
current: !!value,
removed: false
removed: false,
}
}
},
},
{
types: ['text'],
name: 'TextAreaItem',
props: defaultProps
props: defaultProps,
},
{
types: ['tags'],
name: 'TagsItem',
props: defaultProps.concat(['limit', 'placeholder', 'options:choices', 'tagIcon:icon']),
props: defaultProps.concat([
'limit',
'placeholder',
'options:choices',
'tagIcon:icon',
]),
callback: function () {
if (arg.choices && arg.choices.length) {
this.name = 'TagsSelectizeItem'
Object.assign(field.props.props, {
auto: true,
itemsName: '',
label: arg.placeholder
label: arg.placeholder,
})
}
if (typeof value === 'string') {
@ -221,48 +232,52 @@ export function formatYunoHostArgument (arg) {
} else if (!value) {
value = []
}
}
},
},
{
types: ['boolean'],
name: 'CheckboxItem',
props: ['id:name', 'choices'],
props: ['id', 'choices'],
callback: function () {
if (value !== null && value !== undefined) {
value = ['1', 'yes', 'y', 'true'].includes(String(value).toLowerCase())
value = ['1', 'yes', 'y', 'true'].includes(
String(value).toLowerCase(),
)
} else if (arg.default !== null && arg.default !== undefined) {
value = ['1', 'yes', 'y', 'true'].includes(String(arg.default).toLowerCase())
value = ['1', 'yes', 'y', 'true'].includes(
String(arg.default).toLowerCase(),
)
}
}
},
},
{
types: ['alert'],
name: 'ReadOnlyAlertItem',
props: ['type:style', 'label:ask', 'icon'],
renderSelf: true
renderSelf: true,
},
{
types: ['markdown'],
name: 'MarkdownItem',
props: ['label:ask'],
renderSelf: true
renderSelf: true,
},
{
types: ['display_text'],
name: 'DisplayTextItem',
props: ['label:ask'],
renderSelf: true
renderSelf: true,
},
{
types: ['button'],
name: 'ButtonItem',
props: ['type:style', 'label:ask', 'icon', 'enabled'],
renderSelf: true
}
renderSelf: true,
},
]
// Default type management if no one is filled
if (arg.choices && arg.choices.length) {
if (arg.type !== 'tags' && arg.choices && arg.choices.length) {
arg.type = 'select'
}
if (arg.type === undefined) {
@ -270,7 +285,9 @@ export function formatYunoHostArgument (arg) {
}
// Search the component bind to the type
const component = components.find(element => element.types.includes(arg.type))
const component = components.find((element) =>
element.types.includes(arg.type),
)
if (component === undefined) throw new TypeError('Unknown type: ' + arg.type)
// Callback use for specific behaviour
@ -287,11 +304,18 @@ export function formatYunoHostArgument (arg) {
}
// Required (no need for checkbox its value can't be null)
if (!component.renderSelf && arg.type !== 'boolean' && arg.optional !== true) {
if (
!component.renderSelf &&
arg.type !== 'boolean' &&
arg.optional !== true
) {
validation.required = validators.required
}
if (arg.pattern && arg.type !== 'tags') {
validation.pattern = validators.helpers.regex(formatI18nField(arg.pattern.error), new RegExp(arg.pattern.regexp))
validation.pattern = validators.helpers.regex(
formatI18nField(arg.pattern.error),
new RegExp(arg.pattern.regexp),
)
}
if (!component.renderSelf && !arg.readonly) {
@ -318,7 +342,10 @@ export function formatYunoHostArgument (arg) {
// Help message
if (arg.helpLink) {
field.props.link = { href: arg.helpLink.href, text: i18n.t(arg.helpLink.text) }
field.props.link = {
href: arg.helpLink.href,
text: i18n.t(arg.helpLink.text),
}
}
if (component.renderSelf) {
@ -331,11 +358,10 @@ export function formatYunoHostArgument (arg) {
field,
// Return null instead of empty object if there's no validation
validation: Object.keys(validation).length === 0 ? null : validation,
error
error,
}
}
/**
* Format app install, actions and config panel manifest args into a form that can be used
* as v-model values, fields that can be passed to a FormField component and validations.
@ -344,7 +370,7 @@ export function formatYunoHostArgument (arg) {
* @param {Object|null} forms - nested form used as the expression evualuations context.
* @return {Object} an object containing all parsed values to be used in vue views.
*/
export function formatYunoHostArguments (args, forms) {
export function formatYunoHostArguments(args, forms) {
const form = {}
const fields = {}
const validations = {}
@ -352,34 +378,50 @@ export function formatYunoHostArguments (args, forms) {
for (const arg of args) {
const { value, field, validation, error } = formatYunoHostArgument(arg)
fields[arg.name] = field
form[arg.name] = value
if (validation) validations[arg.name] = validation
errors[arg.name] = error
fields[arg.id] = field
form[arg.id] = value
if (validation) validations[arg.id] = validation
errors[arg.id] = error
if ('visible' in arg && ![false, '"false"'].includes(arg.visible)) {
addEvaluationGetter('visible', field, arg.visible, forms)
if ('visible' in arg && typeof arg.visible === 'string') {
addEvaluationGetter(
'visible',
field,
arg.visible,
forms || form,
forms !== undefined,
)
}
if ('enabled' in arg) {
addEvaluationGetter('enabled', field.props, arg.enabled, forms)
if ('enabled' in arg && typeof arg.enabled === 'string') {
addEvaluationGetter(
'enabled',
field.props,
arg.enabled,
forms || form,
forms !== undefined,
)
}
}
return { form, fields, validations, errors }
}
export function formatYunoHostConfigPanels (data) {
export function formatYunoHostConfigPanels(data) {
const result = {
panels: [],
forms: {},
validations: {},
errors: {}
errors: {},
}
for (const { id: panelId, name, help, sections } of data.panels) {
const panel = { id: panelId, sections: [], serverError: '', hasApplyButton: false }
const panel = {
id: panelId,
sections: [],
serverError: '',
hasApplyButton: false,
}
result.forms[panelId] = {}
result.validations[panelId] = {}
result.errors[panelId] = {}
@ -391,7 +433,7 @@ export function formatYunoHostConfigPanels (data) {
const section = {
id: _section.id,
isActionSection: _section.is_action_section,
visible: [undefined, true, '"true"'].includes(_section.visible)
visible: [undefined, true, '"true"'].includes(_section.visible),
}
if (_section.help) section.help = formatI18nField(_section.help)
if (_section.name) section.name = formatI18nField(_section.name)
@ -399,12 +441,10 @@ export function formatYunoHostConfigPanels (data) {
addEvaluationGetter('visible', section, _section.visible, result.forms)
}
const {
form,
fields,
validations,
errors
} = formatYunoHostArguments(_section.options, result.forms)
const { form, fields, validations, errors } = formatYunoHostArguments(
_section.options,
result.forms,
)
// Merge all sections forms to the panel to get a unique form
Object.assign(result.forms[panelId], form)
Object.assign(result.validations[panelId], validations)
@ -412,7 +452,12 @@ export function formatYunoHostConfigPanels (data) {
section.fields = fields
panel.sections.push(section)
if (!section.isActionSection && Object.values(fields).some((field) => !NO_VALUE_FIELDS.includes(field.is))) {
if (
!section.isActionSection &&
Object.values(fields).some(
(field) => !NO_VALUE_FIELDS.includes(field.is),
)
) {
panel.hasApplyButton = true
}
}
@ -423,7 +468,6 @@ export function formatYunoHostConfigPanels (data) {
return result
}
/**
* Parse a front-end value to its API equivalent. This function returns a Promise or an
* Object `{ key: Promise }` if `key` is supplied. When parsing a form, all those
@ -436,11 +480,11 @@ export function formatYunoHostConfigPanels (data) {
* @param {*} value
* @return {*}
*/
export function formatFormDataValue (value, key = null) {
export function formatFormDataValue(value, key = null) {
if (Array.isArray(value)) {
return Promise.all(
value.map(value_ => formatFormDataValue(value_))
).then(resolvedValues => ({ [key]: resolvedValues }))
return Promise.all(value.map((value_) => formatFormDataValue(value_))).then(
(resolvedValues) => ({ [key]: resolvedValues }),
)
}
let result = value
@ -451,10 +495,10 @@ export function formatFormDataValue (value, key = null) {
// File has not changed (will not be sent)
else if (value.current || value.file === null) result = null
else {
return getFileContent(value.file, { base64: true }).then(content => {
return getFileContent(value.file, { base64: true }).then((content) => {
return {
[key]: content.replace(/data:[^;]*;base64,/, ''),
[key + '[name]']: value.file.name
[key + '[name]']: value.file.name,
}
})
}
@ -466,7 +510,6 @@ export function formatFormDataValue (value, key = null) {
return Promise.resolve(key ? { [key]: result } : result)
}
/**
* Convinient helper to properly parse a front-end form to its API equivalent.
* This parse each values asynchronously, allow to inject keys into the final form and
@ -475,17 +518,16 @@ export function formatFormDataValue (value, key = null) {
* @param {Object} formData
* @return {Object}
*/
function formatFormDataValues (formData) {
function formatFormDataValues(formData) {
const promisedValues = Object.entries(formData).map(([key, value]) => {
return formatFormDataValue(value, key)
})
return Promise.all(promisedValues).then(resolvedValues => {
return Promise.all(promisedValues).then((resolvedValues) => {
return resolvedValues.reduce((form, obj) => ({ ...form, ...obj }), {})
})
}
/**
* Format a form produced by a vue view to be sent to the server.
*
@ -496,13 +538,18 @@ function formatFormDataValues (formData) {
* @param {Boolean} [extraParams.removeEmpty=true] - Removes "empty" values from the object.
* @return {Object} the parsed data to be sent to the server, with extracted values if specified.
*/
export async function formatFormData (
export async function formatFormData(
formData,
{ extract = null, flatten = false, removeEmpty = true, removeNull = false } = {}
{
extract = null,
flatten = false,
removeEmpty = true,
removeNull = false,
} = {},
) {
const output = {
data: {},
extracted: {}
extracted: {},
}
const values = await formatFormDataValues(formData)

View file

@ -11,7 +11,7 @@ const loadedLanguages = []
*
* @return {string[]}
*/
function getDefaultLocales () {
function getDefaultLocales() {
const locale = store.getters.locale
const fallbackLocale = store.getters.fallbackLocale
if (locale && fallbackLocale) return [locale, fallbackLocale]
@ -34,7 +34,7 @@ function getDefaultLocales () {
return defaultLocales
}
function updateDocumentLocale (locale) {
function updateDocumentLocale(locale) {
document.documentElement.lang = locale
// FIXME can't currently change document direction easily since bootstrap still doesn't handle rtl.
// document.dir = locale === 'ar' ? 'rtl' : 'ltr'
@ -45,11 +45,11 @@ function updateDocumentLocale (locale) {
*
* @return {Promise<string>} Promise that resolve the given locale string
*/
function loadLocaleMessages (locale) {
function loadLocaleMessages(locale) {
if (loadedLanguages.includes(locale)) {
return Promise.resolve(locale)
}
return import(`@/i18n/locales/${locale}.json`).then(messages => {
return import(`@/i18n/locales/${locale}.json`).then((messages) => {
i18n.setLocaleMessage(locale, messages.default)
loadedLanguages.push(locale)
return locale
@ -59,17 +59,19 @@ function loadLocaleMessages (locale) {
/**
* Loads a date-fns locale object
*/
async function loadDateFnsLocale (locale) {
async function loadDateFnsLocale(locale) {
const dateFnsLocaleName = supportedLocales[locale].dateFnsLocale || locale
dateFnsLocale = (await import(
`../../node_modules/date-fns/esm/locale/${dateFnsLocaleName}/index.js`
)).default
dateFnsLocale = (
await import(
`../../node_modules/date-fns/esm/locale/${dateFnsLocaleName}/index.js`
)
).default
}
/**
* Initialize all locales
*/
function initDefaultLocales () {
function initDefaultLocales() {
// Get defined locales from `localStorage` or `navigator`
const [locale, fallbackLocale] = getDefaultLocales()
@ -83,5 +85,5 @@ export {
updateDocumentLocale,
loadLocaleMessages,
loadDateFnsLocale,
dateFnsLocale
dateFnsLocale,
}

View file

@ -51,10 +51,6 @@
"disable": "تعطيل",
"dns": "خدمة أسماء النطاقات",
"domain_add": "إضافة نطاق",
"domain_add_dns_doc": "… و قد قُمتُ <a href='//yunohost.org/dns_config' target='_blank'>بإعداد خدمة أسماء النطاقات بصورة صحيحة</a>.",
"domain_add_dyndns_doc": "... و إني أريد الحصول على خدمة أسماء النطاقات الديناميكي.",
"domain_add_panel_with_domain": "عندي إسم نطاق …",
"domain_add_panel_without_domain": "لا أمتلك إسم نطاق …",
"domain_default_desc": "إسم النطاق الإفتراضي هو النطاق الذي مِن خلاله يقوم المستخدِمون بتسجيل دخولهم.",
"domain_default_longdesc": "هذا هو إسم نطاقك الإفتراضي.",
"domain_delete_longdesc": "حذف هذا النطاق",
@ -97,7 +93,6 @@
"manage_domains": "إدراة أسماء النطاقات",
"manage_users": "إدارة المستخدمين",
"multi_instance": "يمكن تنصيبه عدة مرات",
"myserver": "خادمي",
"next": "التالي",
"no": "لا",
"ok": "موافق",
@ -116,7 +111,7 @@
"protocol": "Protocol",
"restore": "إستعادة",
"running": "يشتغل",
"save": "حفظ",
"save": "حفظك",
"service_start_on_boot": "تُطلَق عند بداية التشغيل",
"services": "الخدمات",
"set_default": "تعيينه كافتراضي",
@ -347,7 +342,7 @@
"postinstall": "تنفيذ ما بعد التنصيب",
"upgrade": {
"apps": "تحديث كافة التطبيقات",
"app": "تحديث التطبيق '{name}'",
"app": "تحديث التطبيق '{app}'",
"system": "تحديث النظام"
},
"users": {
@ -397,7 +392,6 @@
"server_said": "أثناء تنفيذ الإجراء، أجاب الخادم كالتالي:",
"info": "المعلومات التالية قد تكون مفيدة للشخص الذي يساعدك:"
},
"app_config_panel_label": "اضبط هذا التطبيق",
"app_show_categories": "اظهر كافة الفئات",
"cancel": "إلغاء",
"perform": "تنفيذ",
@ -430,7 +424,7 @@
"failed": "يبدو أن الخادم لا يستجيب. يمكنك محاولة إعادة الاتصال مرة أخرى أو محاولة تشغيل`systemctl restart yunohost-api` من خلال ssh.",
"success": "يمكن الآن الوصول إلى الخادم! يمكنك محاولة تسجيل الدخول"
},
"partial_logs": "[...] (تحقق من السجل للحصول على السجلات الكاملة)"
"partial_logs": "[] (تحقق من السجل للحصول على السجلات الكاملة)"
},
"dead": "غير نشط",
"unknown": "مجهول",
@ -457,7 +451,6 @@
},
"api_waiting": "في انتظار ردّ الخادم…",
"app_choose_category": "اختر فئة",
"app_config_panel": "لوح الضبط",
"retry": "حاول مجددا",
"permission_main": "التسمية الرئيسية",
"user_emailforward_add": "إضافة عنوان بريد إلكتروني للتحويل",
@ -555,15 +548,17 @@
"title": "دليل المدير"
},
"notifications": {
"dismiss": "تجاهل",
"title": "الإشعارات",
"post_upgrade": "ملاحظات ما بعد التحديث",
"post_install": "ملاحظات ما بعد التنصيب"
"post_install": "ملاحظات ما بعد التنصيب",
"understood": "فهمت"
}
},
"info": {
"forum": "ابحث أو إطرح سؤالك في المنتدى!",
"problem": "مشكلة مع هذا التطبيق؟"
"problem": "مشكلة مع هذا التطبيق؟",
"config_panel_error_please_report": "الرجاء إبلاغ فريق YunoHost عن هذا الخطأ قصد تصحيحه!",
"config_panel_error": "خطأ ما يمنع لوح الضبط من الظهور:"
},
"install": {
"license": "الرخصة: {license}",
@ -574,7 +569,8 @@
"danger": "مِن المحتمَل أن ينجرّ عن تنصيب التطبيق مشاكل"
},
"post": {
"title": "إشعارات ما بعد التثبيت لـ '{name}'"
"title": "إشعارات ما بعد التثبيت لـ '{name}'",
"alert": "يبدو أن عملية التثبيت تمت بنجاح!\n إليك بعض الإشعارات التي يعتبرها مسؤول الحُزْمَة مهمة للتعرف عليها.\nيمكنك قراءتها ثانية في صفحة معلومات التطبيق."
}
},
"version": "الإصدار الحالي: {version}",

View file

@ -3,7 +3,7 @@
"add": "যুক্ত করুন",
"administration_password": "পরিচালনাকারীর পাসওয়ার্ড",
"all_apps": "সকল অ্যাপ্লিকেশান",
"api_not_responding": "এপিআই সাড়া দিচ্ছে না",
"api_not_responding": "এপিআই সাড়া দিচ্ছে না?",
"password": "পাসওয়ার্ড",
"ok": "ঠিক আছে"
}

View file

@ -29,7 +29,7 @@
"confirm_firewall_allow": "Està segur de voler obrir el port {port}? (protocol: {protocol}, connexió: {connection})",
"confirm_firewall_disallow": "Està segur de voler tancar el port {port}? (protocol: {protocol}, connexió: {connection})",
"confirm_install_custom_app": "ATENCIÓ! La instal·lació d'aplicacions de terceres parts pot comprometre la integritat i seguretat del seu sistema. No hauríeu d'instal·lar-ne a no ser que sapigueu el que feu. Esteu segurs de voler córrer aquest risc?",
"confirm_install_domain_root": "No podrà instal·lar cap altra aplicació {domain}. Vol continuar?",
"confirm_install_domain_root": "Segur voleu instal·lar aquesta aplicació a «/»? No podreu instal·lar cap altra aplicació a {domain}",
"confirm_migrations_skip": "Saltar-se les migracions no està recomanat. Està segur de voler continuar?",
"confirm_postinstall": "Està a punt de començar el procés de post-instal·lació en el domini {domain}. Pot tardar uns minuts, *no interrompi la operació*.",
"confirm_restore": "Està segur de voler restaurar {name}?",
@ -47,15 +47,11 @@
"custom_app_install": "Instal·lar una aplicació personalitzada",
"delete": "Suprimir",
"description": "Descripció",
"domain_dns_conf_is_just_a_recommendation": "Aquesta pàgina mostra la configuració *recomanada*. Aquesta pàgina *no* configura el DNS. És la seva responsabilitat configurar la zona DNS al seu registrar DNS en acord amb aquesta recomanació.",
"domain_dns_conf_is_just_a_recommendation": "Aquesta secció mostra la configuració *recomanada*. Aquesta pàgina *no* configura el DNS. És la vostra responsabilitat configurar la zona DNS al vostre registrador DNS en acord amb aquesta recomanació.",
"diagnosis": "Diagnòstic",
"disable": "Desactivar",
"dns": "DNS",
"domain_add": "Afegir domini",
"domain_add_dns_doc": "... i he <a href='//yunohost.org/dns_config' target='_blank'> configurat el meu DNS correctament</a>.",
"domain_add_dyndns_doc": "... i vull uns servei de DNS dinàmic.",
"domain_add_panel_with_domain": "Ja tinc un nom de domini…",
"domain_add_panel_without_domain": "No tinc un nom de domini…",
"domain_default_desc": "Els usuaris iniciaran sessió al domini predeterminat.",
"domain_default_longdesc": "Aquest és el seu domini predeterminat.",
"domain_delete_longdesc": "Eliminar aquest domini",
@ -102,8 +98,7 @@
"migrations_done": "Migracions anteriors",
"migrations_no_pending": "No hi ha migracions en espera",
"migrations_no_done": "No hi ha migracions anteriors",
"multi_instance": "Instàncies múltiples",
"myserver": "elmeuservidor",
"multi_instance": "Es pot instal·lar diverses vegades",
"next": "Següent",
"no": "No",
"ok": "OK",
@ -122,7 +117,7 @@
"protocol": "Protocol",
"restore": "Restaurar",
"running": "En execució",
"save": "Guardar",
"save": "Desar",
"service_start_on_boot": "Iniciar a l'engegada",
"services": "Serveis",
"set_default": "Establir com a predeterminat",
@ -217,7 +212,7 @@
"group_add_permission": "Afegir permís",
"group_new": "Nou grup",
"group_explain_visitors": "Aquest és un grup especial que representa els visitants anònims",
"group_specific_permissions": "Permisos específics de l'usuari",
"group_specific_permissions": "Permisos d'usuari individual",
"groups_and_permissions": "Grups i permisos",
"groups_and_permissions_manage": "Gestionar grups i usuaris",
"permissions": "Permisos",
@ -230,7 +225,13 @@
"last_ran": "Executat per última vegada:",
"warnings": "{count} avisos",
"words": {
"default": "Predeterminat"
"default": "Predeterminat",
"link": "Vincle",
"collapse": "Col·lapsar",
"separator": ", ",
"valid": "Vàlid",
"none": "Cap",
"browse": "Explora"
},
"unignore": "No ignorar",
"configuration": "Configuració",
@ -248,25 +249,34 @@
"issues": "{count} problemes",
"operation_failed_explanation": "Aquesta operació ha fallat! Ens sap molt greu :( Podeu intentar <a href='https://yunohost.org/help'>demanar ajuda</a>. Si us plau doneu *el registre complet* de l'operació a la gent que intenta ajudar-vos. Podeu fer-ho fent clic al botó verd \"Compartir amb Yunopaste\". Quan compartiu els registres, YunoHost intentarà anonimitzar automàticament dades privades com els noms de domini i les IPs.",
"diagnosis_explanation": "La funció de diagnòstic intentarà identificar els errors més comuns en diferents aspectes del servidor per verificar que tot funciona correctament. El diagnòstic s'executa automàticament dues vegades al dia i s'envia un correu electrònic a l'administrador si es troben errors. Tingueu en compte que no tots els tests seran rellevants si no s'utilitzen algunes funcions específiques (com per exemple XMPP) o pot ser que falli si teniu un sistema amb una configuració complexa. En aquests casos, i si sabeu el que feu, podeu ignorar els problemes o avisos corresponents.",
"pending_migrations": "Hi ha algunes migracions pendents esperant per ser executades. Aneu a <a href='#/tools/migrations'>Eines > Migracions</a> per fer-les.",
"pending_migrations": "Hi ha algunes migracions pendents esperant per ser executades. Aneu a <a href='#/tools/migrations'>Eines > Migracions</a> per fer-les.",
"logs_suboperations": "Sub-operacions",
"tip_about_user_email": "Els usuaris es creen amb una adreça de correu electrònic associada (i compte de XMPP) amb el format usari@domini.tld. L'administrador i l'usuari poden afegir a posteriori adreces de correu addicionals i reenviament de correus.",
"permission_show_tile_enabled": "Mostrar la «tile» en el portal de l'usuari",
"permission_main": "Permís principal",
"permission_main": "Etiqueta principal",
"permission_corresponding_url": "URL corresponent",
"app_manage_label_and_tiles": "Gestionar etiquetes i «tiles»",
"items": {
"backups": "cap còpia de seguretat | còpia de seguretat | {c} còpies de seguretat",
"apps": "cap aplicació | app | {c} aplicacions"
"apps": "cap aplicació | app | {c} aplicacions",
"installed_apps": "cap aplicació instal·lada | aplicació instal·lada | {c} aplicacions instal·lades",
"services": "cap servei | servei | {c} serveis",
"logs": "cap registre | registre | {c} registres",
"groups": "cap grup | grup | {c} grups",
"domains": "cap domini | domini | {c} dominis",
"users": "cap usuari | usuari | {c} usuaris",
"permissions": "cap permís | permís | {c} permisos"
},
"history": {
"methods": {
"DELETE": "eliminar",
"PUT": "modificar",
"POST": "crear/executar"
"POST": "crear/executar",
"GET": "llegir"
},
"last_action": "Última acció:",
"title": "Historial"
"title": "Historial",
"is_empty": "De moment res a l'historial."
},
"form_errors": {
"required": "Aquest camp és obligatori.",
@ -280,10 +290,14 @@
"dynDomain": "Nom de domini no vàlid: Ha de contenir caràcters alfanumèrics en minúscules i guionets exclusivament",
"domain": "Nom de domini no vàlid: Ha de contenir caràcters alfanumèrics en minúscules, punts i guionets exclusivament",
"between": "El valor ha d'estar entre {min} i {max}.",
"alphalownum_": "Només pot contenir caràcters alfanumèrics en minúscules i la barra baixa.",
"alphalownumdot_": "Només pot contenir caràcters alfanumèrics en minúscules i la barra baixa.",
"alpha": "Només pot contenir caràcters alfanumèrics.",
"remote": "{message}",
"pattern": "{type}"
"pattern": "{type}",
"invalid_form": "El formulari conté alguns errors.",
"emailForward": "Reenviament de correu electrònic no vàlid: només ha de ser caràcters alfanumèrics i <code>_.-+</code> (p. ex., nom+etiqueta@example.com, _n.0-m+etiqueta@example.com)",
"appRepoUrl": "S'espera que els URL del dipòsit d'aplicacions de YunoHost siguin com https://domini.tld/cami/al/diposit_ynh",
"maxValue": "El valor ha de ser un nombre igual o inferior a {max}."
},
"footer": {
"donate": "Fer una donació",
@ -294,7 +308,7 @@
"error": "Error",
"enabled": "Activat",
"domain_delete_forbidden_desc": "No podeu eliminar «{domain}» ja que és el domini principal, heu d'escollir un altre domini (o <a href='#/domains/add'>afegir-ne un de nou</a>) i fer-lo el domini principal per a poder eliminar aquest.",
"domain_add_dyndns_forbidden": "Ja us heu subscrit a un domini DynDNS, podeu demanar que eliminin el domini DynDNS actual al fòrum <a href='//forum.yunohost.org/t/nohost-domain-recovery-suppression-de-domaine-en-nohost-me-noho-st-et-ynh-fr/442'>en el fil dedicat</a>.",
"domain_add_dyndns_forbidden": "Ja us heu registrat o subscrit a un domini DynDNS del projecte YunoHost. Per disseny, aquesta funció està limitada a un d'aquests dominis per servidor. Si voleu afegir un subdomini del vostre domini ja subscrit, utilitzeu l'opció «Afegir un domini que tinc o un subdomini» anterior. Si voleu utilitzar un domini completament diferent, primer heu d'eliminar el vostre domini DynDNS existent. Els dominis DynDNS són bons quan comenceu amb l'allotjament automàtic, però a mitjà/llarg termini, us recomanem comprar el vostre propi nom de domini a algun registrador per tenir la propietat total del vostre domini.",
"disabled": "Desactivat",
"dead": "Inactiu",
"day_validity": " Expirat | 1 dia | {count} dies",
@ -306,9 +320,6 @@
"code": "Codi",
"cancel": "Cancel·lar",
"app_show_categories": "Mostrar les categories",
"app_config_panel_no_panel": "Aquesta aplicació no té cap configuració diponible",
"app_config_panel_label": "Configurar aquesta aplicació",
"app_config_panel": "Panell de configuració",
"app_choose_category": "Escolliu una categoria",
"api_waiting": "Esperant la resposta del servidor…",
"api_errors_titles": {
@ -316,12 +327,16 @@
"APINotRespondingError": "L'API de YunoHost no respon",
"APIInternalError": "YunoHost ha trobat un error intern",
"APIBadRequestError": "YunoHost ha trobat un error",
"APIError": "YunoHost ha trobat un error inesperat"
"APIError": "YunoHost ha trobat un error inesperat",
"APINotFoundError": "L'API de YunoHost no ha pogut trobar una ruta"
},
"api_error": {
"sorry": "Ens sap molt greu això.",
"info": "La informació següent pot ser útil per a la persona que us ajudi:",
"help": "Podeu buscar ajuda <a href=\"https://forum.yunohost.org/\">al fòrum</a> o <a href=\"https://chat.yunohost.org/\">al chat</a> per arreglar la situació, o reportar l'error <a href=\"https://github.com/YunoHost/issues\">al bugtracker</a>."
"help": "Podeu buscar ajuda <a href=\"https://forum.yunohost.org/\">al fòrum</a> o <a href=\"https://chat.yunohost.org/\">al chat</a> per arreglar la situació, o reportar l'error <a href=\"https://github.com/YunoHost/issues\">al bugtracker</a>.",
"error_message": "Missatge d'error:",
"server_said": "Mentre processava l'acció, el servidor ha dit:",
"view_error": "Mostra l'error"
},
"address": {
"local_part_description": {
@ -334,6 +349,347 @@
}
},
"api": {
"processing": "El servidor està processant l'acció..."
}
"processing": "El servidor està processant l'acció…",
"partial_logs": "[…] (consulteu l'historial per obtenir els registres complets)",
"query_status": {
"error": "Sense èxit",
"pending": "En progrés",
"success": "Completat correctament",
"warning": "Completat correctament amb errors o alertes"
},
"reconnecting": {
"reason": {
"reboot": "El vostre servidor s'està reiniciant i no s'hi podrà accedir durant algun temps. Tan bon punt se n'hi pugui apareixerà un missatge d'inici de sessió.",
"shutdown": "El vostre servidor s'està tancant i ja no és accessible. Torneu-lo a activar i tan bon punt s'hi pugui accedir apareixerà un missatge d'inici de sessió.",
"unknown": "La connexió amb el servidor s'ha tancat per motius desconeguts.",
"upgrade_system": "La connexió amb el servidor s'ha tancat a causa de l'actualització de YunoHost. S'està esperant que el servidor torni a ser accessible…"
},
"title": "S'està intentant comunicar amb el servidor…",
"failed": "Sembla que el servidor no respon. Podeu provar de tornar a connectar-vos o provar d'executar `systemctl restart yunohost-api` mitjançant ssh.",
"success": "Ja es pot accedir al servidor! Podeu provar d'iniciar sessió"
}
},
"app_install_parameters": "Paràmetres de la instal·lació",
"app_state_broken": "trencada",
"app": {
"installed_version": "Versió instal·lada:",
"open_this_app": "Obre aquesta aplicació",
"antifeatures": "Aquesta aplicació té funcions que potser no us agraden:",
"doc": {
"about": {
"title": "Sobre",
"description": "Descripció"
},
"admin": {
"title": "Document d'administració"
},
"notifications": {
"title": "Notificacions",
"post_upgrade": "Notes post-actualització",
"post_install": "Notes post-instal·lació",
"understood": "Entés"
}
},
"info": {
"forum": "Busca o pregunta al fòrum!",
"problem": "Hi ha algun problema amb aquesta aplicació?",
"config_panel_error": "Un error impedeix que es mostri el panell de configuració:",
"config_panel_error_please_report": "Informeu d'aquest error a l'equip de YunoHost per solucionar-lo!"
},
"install": {
"license": "Llicència: {license}",
"notifs": {
"post": {
"title": "Notificacions post-instal·lació per a '{name}'",
"alert": "Sembla que la instal·lació ha anat bé!\n Aquí hi ha algunes notificacions que l'empaquetador considera important conèixer.\n Podeu tornar a llegir-lo a la pàgina d'informació de l'aplicació."
},
"pre": {
"warning": "Coses a saber abans de la instal·lació",
"danger": "La instal·lació de l'aplicació probablement comportarà problemes",
"critical": "L'aplicació no es pot instal·lar"
}
},
"problems": {
"arch": "Aquesta aplicació només es pot instal·lar en arquitectures específiques ({required}), però l'arquitectura del vostre servidor és {current}.",
"broken": "Aquesta aplicació està trencada segons les proves automàtiques de YunoHost i és probable que trenqui el sistema! Probablement NO hauries d'instal·lar-la tret que sàpigues què estàs fent.",
"ignore": "Entenc que aquesta instal·lació pot trencar el meu sistema però vull provar.",
"inprogress": "Aquesta aplicació encara és experimental (o explícitament no funcional) i és probable que trenqui el vostre sistema! Probablement NO hauries d'instal·lar-la tret que sàpigues què estàs fent.",
"install": "Ja està instal·lada i no es pot instal·lar més d'una vegada.",
"lowquality": "Aquesta aplicació pot funcionar, però no està ben integrada a YunoHost. És possible que algunes funcions, com ara l'inici de sessió únic i la còpia de seguretat/restauració, no estiguin disponibles o no respectin les bones pràctiques.",
"version": "Aquesta aplicació requereix YunoHost >= {required} però la vostra versió instal·lada actual és {current}, considereu primer actualitzar YunoHost.",
"ram": "Aquesta aplicació requereix {required} de RAM per instal·lar/actualitzar, però només hi ha {current} disponibles ara mateix. Fins i tot si aquesta aplicació es pot executar, el seu procés d'instal·lació requereix una gran quantitat de memòria RAM, de manera que el servidor es pot congelar i fallar miserablement.",
"thirdparty": "Aquesta aplicació no forma part del catàleg oficial de YunoHost, la instal·lació d'aplicacions de tercers pot comprometre la integritat i la seguretat del vostre sistema. Probablement NO hauries d'instal·lar-la tret que sàpigues què estàs fent."
},
"try_demo": "Prova la demostració",
"version": "Versió actual: {version}"
},
"integration": {
"archs": "Arquitectures suportades:",
"ldap": {
"false": "No utilitza comptes de YunoHost per iniciar sessió (LDAP)",
"true": "Utilitza comptes de YunoHost per iniciar sessió (LDAP)",
"?": "No hi ha informació sobre la integració LDAP"
},
"resources": "Ús de recursos típic: {ram} RAM, {disk} disc",
"sso": {
"false": "L'inici de sessió únic (SSO) no està disponible",
"true": "L'inici de sessió únic (SSO) està disponible",
"?": "No hi ha informació sobre la integració SSO"
},
"title": "Integració YunoHost",
"multi_instance": {
"false": "Només es pot instal·lar una vegada",
"true": "Es pot instal·lar diverses vegades"
}
},
"links": {
"admindoc": "Documentació oficial d'administració",
"code": "Repositori oficial de codi",
"forum": "Temes sobre aquesta aplicació al fòrum de YunoHost",
"package": "Repositori de paquets YunoHost",
"title": "Vincles",
"userdoc": "Documentació oficial d'usuari",
"website": "Pàgina web oficial",
"license": "Llicència de l'aplicació",
"package_license": "Llicència del paquet de YunoHost"
},
"potential_alternative_to": "Alternativa potencial a:",
"upgrade": {
"confirm": {
"apps": "Aplicacions que s'actualitzaran",
"title": "Confirmeu les actualitzacions d'aplicacions"
},
"notifs": {
"pre": {
"alert": "Hauríeu de comprovar aquestes notificacions abans d'actualitzar, és possible que hi hagi coses importants a saber.",
"title": "Estàs avisat/da!"
},
"post": {
"alert": "Sembla que l'actualització ha anat bé!\n Aquí hi ha algunes notificacions que l'empaquetador considera important conèixer sobre aquesta actualització.\n Podeu tornar a llegir-ho a la pàgina d'informació de l'aplicació.",
"title": "Notificacions post-actualització per a \"{name}\""
}
},
"continue": "Continueu amb l'aplicació següent",
"stop": "Cancel·la les properes actualitzacions de l'aplicació"
},
"uninstall": {
"purge_desc": "Elimina el directori de dades associat a l'aplicació (normalment són dades que heu penjat amb l'aplicació)."
}
},
"api_not_found": "Sembla que l'administrador web ha intentat consultar alguna cosa que no existeix.",
"details_about": "Mostra més detalls sobre {subject}",
"app_state_broken_explanation": "Aquesta aplicació actualment està trencada i no es pot instal·lar segons les proves automàtiques de YunoHost",
"confirm_group_add_access_permission": "Esteu segur que voleu concedir accés a {perm} a {name}? Aquest accés augmenta significativament la superfície d'atac si {name} és una persona malintencionada. Només ho hauríeu de fer si CONFIEU en aquesta persona/grup.",
"confirm_install_app_broken": "ADVERTIMENT! Aquesta aplicació està trencada segons les proves automàtiques de YunoHost i és probable que trenqui el vostre sistema! Probablement NO hauries d'instal·lar-la tret que sàpigues què estàs fent. Estàs disposat/da a córrer aquest risc?",
"domain": {
"add": {
"dyn_dns_password_desc": "Aquesta contrasenya us permetrà recuperar més tard el control del domini si torneu a instal·lar el vostre sistema. Si ja heu registrat aquest domini anteriorment, feu servir la vostra contrasenya de recuperació aquí per recuperar-lo.",
"dyn_dns_password": "Contrasenya de recuperació del domini",
"from_registrar": "Vull afegir un domini que tinc o un subdomini",
"from_yunohost": "No tinc cap domini, vull registrar/utilitzar un domini DynDNS gratuït proporcionat pel projecte YunoHost",
"from_local": "Vull un domini per a ús local / només de prova",
"from_local_desc": "Si no voleu un nom de domini públic \"real\", podeu utilitzar qualsevol cosa que acabi en <code>.local</code> o <code>.test</code>. Els noms de domini que acaben en <code>.local</code> són especials en el sentit que es poden resoldre automàticament a la xarxa local, suposant que els clients admeten el protocol Bonjour. Alternativament, és possible que hàgiu de modificar el fitxer <code>/etc/hosts</code> (o l'equivalent a Windows) a cada client des del qual vulgueu utilitzar aquest domini, o bé configurar les entrades de DNS locals al vostre encaminador d'Internet.",
"from_registrar_desc": "Haureu de configurar manualment els registres DNS al vostre registrador per finalitzar la configuració d'aquest domini. El diagnòstic de YunoHost us guiarà sobre quins registres DNS heu de configurar exactament.",
"from_yunohost_desc": "El projecte YunoHost manté un servei gratuït 'DynDNS'. Està limitat a un d'aquests dominis per servidor (tot i que també podeu afegir subdominis més tard utilitzant l'altra opció \"Afegeix un domini que tinc o un subdomini\" anterior). La configuració de DNS serà gestionada automàticament per YunoHost. Això és ideal quan comenceu amb l'allotjament automàtic en general i encara no voleu invertir en un nom de domini. Tanmateix, a mitjà/llarg termini, us recomanem que compreu el vostre propi nom de domini a algun registrador per tenir la propietat total del vostre domini."
},
"cert": {
"types": {
"other": "Altre/Desconegut",
"letsencrypt": "Let's Encrypt",
"selfsigned": "Autosignat"
},
"valid_for": "vàlid durant {days}"
},
"info": {
"registrar": "Registrador",
"certificate_authority": "Autoritat de certificació SSL",
"apps_on_domain": "Aplicacions instal·lades al domini",
"dyn_dns_remove_and_unsubscribe": "També cancel·leu el registre del domini del servei dyndns de YunoHost"
},
"config": {
"edit": "Edita la configuració del domini",
"title": "Configuració del domini"
},
"dns": {
"auto_config": "Configuració automàtica d'entrades DNS",
"push_force_warning": "Sembla que algunes entrades DNS que YunoHost hauria establert ja es troben a la configuració del registrador. Podeu utilitzar l'opció de sobreescriure si sabeu el que esteu fent.",
"auto_config_ignored": "ignorat, no serà modificat per YunoHost tret que marqueu l'opció de sobreescriure",
"auto_config_zone": "Zona DNS actual",
"methods": {
"handled_in_parent": "Gestionat al domini principal",
"manual": "Manual",
"none": "Cap",
"auto": "Automàtic",
"semi_auto": "Semiautomàtic"
},
"push_force_confirm": "Esteu segur que voleu forçar l'impuls de totes les entrades DNS suggerides? Tingueu en compte que pot sobreescriure entrades predeterminades importants o establertes manualment per vosaltres o el vostre registrador.",
"push_force": "Sobreescriu les entrades existents",
"manual_config": "Entrades DNS suggerides per a la configuració manual",
"auto_config_ok": "La configuració automàtica sembla estar bé!",
"edit": "Editeu la configuració del DNS",
"info": "La configuració automàtica d'entrades DNS és una característica experimental. <br>Penseu en desar la vostra zona DNS actual des de la interfície del vostre registrador de DNS abans d'enviar les entrades des d'aquí.",
"push": "Envieu les entrades DNS al registrador"
},
"explain": {
"main_domain": "El domini principal és el domini des del qual els usuaris es poden connectar al portal (mitjançant \"{domain}/yunohost/sso\").<br>Per tant, no és possible suprimir-lo.<br>Si voleu suprimir \"{domain}\", primer hauràs de triar o afegir un altre domini i configurar-lo com a domini principal."
},
"see_parent_domain": "Vegeu el domini principal",
"toggle_subdomains": "Commuta els subdominis",
"types": {
"main_domain": "Domini principal"
}
},
"hook_conf_ynh_settings": "Configuracions de YunoHost",
"group_admins": "Administradors",
"human_routes": {
"apps": {
"action_config": "Executeu l'acció \"{action}\" de la configuració de l'aplicació \"{name}\"",
"install": "Instal·la l'aplicació \"{name}\"",
"change_url": "Canvia l'URL d'accés de \"{name}\"",
"dismiss_notification": "Ignora la notificació per a \"{name}\"",
"update_config": "Actualitza el tauler \"{id}\" de la configuració de l'aplicació \"{name}\"",
"change_label": "Canvia l'etiqueta de \"{prevName}\" per a \"{nextName}\"",
"set_default": "Redirigeix l'arrel del domini \"{domain}\" a \"{name}\"",
"uninstall": "Desinstal·la l'aplicació \"{name}\""
},
"domains": {
"push_dns_changes": "Envieu les entrades DNS al registrador de \"{name}\"",
"update_config": "Actualitza el tauler \"{id}\" de la configuració del domini \"{name}\"",
"add": "Afegeix el domini \"{name}\"",
"delete": "Suprimeix el domini \"{name}\"",
"cert_install": "Instal·leu el certificat per a \"{name}\"",
"cert_renew": "Renova el certificat per a \"{name}\"",
"set_default": "Estableix \"{name}\" com a domini predeterminat"
},
"permissions": {
"add": "Permet que \"{name}\" accedeixi a \"{perm}\"",
"remove": "Suprimeix l'accés \"{name}\" a \"{perm}\""
},
"migrations": {
"skip": "Omet les migracions",
"run": "Executar migracions"
},
"groups": {
"remove": "Elimina \"{user}\" del grup \"{name}\"",
"add": "Afegeix \"{user}\" al grup \"{name}\"",
"create": "Crea el grup \"{name}\"",
"delete": "Suprimeix el grup \"{name}\""
},
"firewall": {
"upnp": "{action} UPnP",
"ports": "{action} port {port} ({protocol}, {connection})"
},
"diagnosis": {
"run_specific": "Executeu el diagnòstic \"{description}\"",
"ignore": {
"error": "Ignora un error",
"warning": "Ignora un avís"
},
"unignore": {
"error": "Deixeu d'ignorar un error",
"warning": "Deixeu d'ignorar un avís"
},
"run": "Executeu el diagnòstic"
},
"postinstall": "Executa la postinstal·lació",
"reboot": "Reinicia el servidor",
"backups": {
"create": "Creeu una còpia de seguretat",
"delete": "Suprimeix la còpia de seguretat \"{name}\"",
"restore": "Restaura la còpia de seguretat \"{name}\""
},
"upgrade": {
"system": "Actualitzar el sistema",
"app": "Actualitzar l'aplicació«\"{app}»",
"apps": "Actualitzar totes les aplicacions"
},
"settings": {
"update": "Actualitzar la configuració global de «{panel}»"
},
"users": {
"delete": "Eliminar usuari «{name}»",
"create": "Crear usuari «{name}»",
"update": "Actualitzar usuari «{name}»"
},
"services": {
"restart": "Reiniciar el servei «{name}»",
"start": "Iniciar el servei «{name}»",
"stop": "Aturar el servei «{name}»"
},
"update": "Buscar actualitzacions",
"reconnecting": "Tornant a connectar",
"share_logs": "Generar un enllaç per al registre «{name}»",
"shutdown": "Apagar el servidor"
},
"go_back": "Torna",
"domain_dns_push_failed_to_authenticate": "No s'ha pogut autenticar a l'API del registrador. El més probable és que les <a href='#/domains/{domain}/config'>credencials</a> siguin incorrectes. (Error: {error})",
"hook_data_xmpp_desc": "Configuracions d'habitacions i d'usuaris, càrregues de fitxers",
"hook_conf_manually_modified_files": "Configuracions modificades manualment",
"domain_dns_push_managed_in_parent_domain": "La funció d'entrades DNS automàtiques es gestiona al domini principal <a href='#/domains/{parent_domain}/dns'>{parent_domain}</a>.",
"domain_dns_push_not_applicable": "La funció d'entrades DNS automàtiques no és aplicable al domini {domain}.<br> Hauríeu de configurar manualment les vostres entrades DNS seguint la <a href='https://yunohost.org/dns'>documentació</a> i la configuració suggerida a continuació.",
"hook_data_xmpp": "Dades de XMPP",
"group_explain_admins": "Aquest és un grup especial corresponent als usuaris administradors. Els usuaris d'aquest grup poden accedir al webadmin de YunoHost, connectar-se al servidor amb SSH i utilitzar l'ordre `sudo`. També rebran correus electrònics enviats a root@, admin@ i admins@, com ara les notificacions de diagnòstic. Només heu d'afegir a aquest grup persones en qui confieu absolutament!",
"items_verbose_items_left": "Queden {items}. | Queda 1 {items}. | Queden {items}.",
"postinstall": {
"user": {
"title": "Crea el primer usuari administrador",
"first_user_help": "Aquest usuari tindrà privilegis d'administrador i se li permetrà connectar-se a aquesta interfície d'administració i directament al servidor mitjançant SSH.\nCom que és un usuari normal, també us podreu connectar al portal d'usuaris (SSO) amb les seves credencials.\nUn cop finalitzada la postinstal·lació, podreu crear altres usuaris administradors afegint-los al grup «admins»."
},
"force": "Força la post-instal·lació",
"title": "Post-instal·lació"
},
"placeholder": {
"lastname": "Petit",
"groupname": "Nom del meu grup",
"username": "joanpetit",
"domain": "el-meu-domini.cat",
"fullname": "Joan Petit",
"file": "Exploreu un fitxer o arrossegueu-lo i deixeu-lo anar",
"firstname": "Joan"
},
"tools_webadmin": {
"language": "Idioma",
"experimental": "Modalitat experimental",
"fallback_language": "Idioma alternatiu",
"fallback_language_description": "Idioma que s'utilitzarà en cas que la traducció no estigui disponible a l'idioma principal.",
"cache": "Memòria cau",
"cache_description": "Penseu en desactivar la memòria cau si teniu previst treballar amb la CLI mentre navegueu per aquest Webadmin.",
"theme": "Canvia al mode fosc",
"transitions": "Animacions de transició de pàgina",
"experimental_description": "Et dóna accés a funcions experimentals. Es consideren inestables i poden trencar el vostre sistema.<br> Activeu-ho només si sabeu el que esteu fent."
},
"migrations_disclaimer_not_checked": "Aquesta migració requereix que accepteu la seva exempció de responsabilitat abans d'executar-la.",
"retry": "Torna-ho a provar",
"search": {
"not_found": "Hi ha {items} que coincideixen amb els vostres criteris. | Hi ha 1 {items} que coincideix amb els vostres criteris. | Hi ha {items} que coincideixen amb els vostres criteris.",
"for": "Cerca {items}…"
},
"tools_webadmin_settings": "Configuració de Webadmin",
"user_emailaliases_add": "Afegiu un àlies de correu",
"users_export": "Exportar usuaris",
"users_import": "Importar usuaris",
"users_import_csv_file_desc": "El fitxer CSV ha d'estar en UTF-8 i amb columnes nom d'usuari, contrasenya, grups, correu electrònic i quota. Per a un exemple d'importació d'un fitxer CSV, podeu <a href='/yunohost/api/users/export' target='_BLANK'>exportar els vostres usuaris al fitxer CSV</a> i canviar el fitxer.",
"users_import_confirm_destructive": "Esteu segur que voleu suprimir els usuaris que no estan presents en aquest fitxer?",
"important_yunohost_upgrade": "Hi ha disponible una actualització important de YunoHost. És molt recomanable llegir atentament les notes de la versió al fòrum abans d'actualitzar: <a href='https://forum.yunohost.org/tag/ynh_release'>Exploreu les notes de la versió al fòrum</a>",
"items_verbose_count": "Hi ha {items}. | Hi ha 1 {items}. | Hi ha {items}.",
"label_for_manifestname_help": "Aquest és el nom que es mostra al portal de l'usuari. Això es pot canviar més tard.",
"manage_groups": "Gestionar grups",
"users_import_delete_others": "Suprimir els usuaris no llistats",
"readme": "Llegiu-me",
"users_import_delete": "Suprimir els usuaris que no figuren a la llista",
"mailbox_quota_example": "700M és un CD, 4700M és un DVD",
"migrations_disclaimer_check_message": "He llegit i he entès aquesta exempció de responsabilitat",
"perform": "Realitzar",
"postinstall_set_domain": "Estableix el domini principal",
"text_selection_is_disabled": "La selecció de text està desactivada. Si voleu compartir aquest registre, compartiu el registre *complet* amb el botó «Comparteix amb Yunopaste».<br/><small>O si realment voleu seleccionar text, premeu aquestes tecles: ↓↓↑↑.</small>",
"tools_yunohost_settings": "Configuració de YunoHost",
"traceback": "Rastrejar",
"unknown": "Desconegut",
"user_emailforward_add": "Afegeix un reenviament de correu",
"users_import_csv_file": "Fitxer CSV",
"users_import_delete_desc": "Si està marcat, tots els usuaris existents que no es trobin al fitxer CSV se suprimiran (i es purgaran).",
"users_import_update": "Actualitzar els usuaris existents",
"users_import_update_desc": "Si està marcat, tots els usuaris existents continguts al fitxer CSV s'actualitzaran amb el nou valor",
"wrong_password_or_username": "Contrasenya o nom d'usuari incorrecte",
"yunohost_admin": "Administrador de Yunohost"
}

View file

@ -11,7 +11,7 @@
"ok": "OK",
"postinstall_intro_3": "Pro více informací navštivte <a href='//yunohost.org/en/install/hardware:vps_debian#fa-cog-proceed-with-the-initial-configuration' target='_blank'>příslušnou stránku dokumentace</a>",
"app_choose_category": "Vybrat kategorii",
"api_waiting": "Čekáme na odpověď serveru...",
"api_waiting": "Čekáme na odpověď serveru",
"api_not_found": "Zdá se, že web-admin zkusil dotazovat něco, co neexistuje.",
"api_errors_titles": {
"APIConnexionError": "YunoHost zaznamenal chybu spojení",
@ -36,8 +36,19 @@
"pending": "Ve zpracování",
"error": "Neúspěšné"
},
"processing": "Server zpracovává akci...",
"partial_logs": "[...] (zkontrolujte historii v logách)"
"processing": "Server zpracovává akci…",
"partial_logs": "[…] (zkontrolujte historii v logách)",
"reconnecting": {
"reason": {
"upgrade_system": "Spojení se serverem bylo ukončeno kvůli povýšení YunoHostu na novou verzi. Čekám, až bude opět dostupný…",
"unknown": "Spojení se serverem bylo z neznámých důvodů přerušeno.",
"reboot": "Váš server se restartuje a po nějakou dobu nebude dostupný. Jakmile se spojení naváže, zobrazí se přihlašovací okno.",
"shutdown": "Váš server se ukončuje a nebude dostupný. Když ho znovu zapnete, jakmile bude zase dosažitelný, zobrazí se přihlašovací okno."
},
"title": "Snažím se navázat spojení se serverem…",
"success": "Server už odpovídá! Nyní se můžete přihlásit",
"failed": "Zdá se, že server neodpovídá. Zkuste se znovu připojit nebo na něm pustit `systemctl restart yunohost-api`přes ssh."
}
},
"app_install_custom_no_manifest": "Soubor manifest.json nenalezen",
"app_info_uninstall_desc": "Odstranit tuto aplikaci.",
@ -101,7 +112,7 @@
"dynDomain": "Nesprávný tvar doménového jména: může obsahovat pouze malé alfanumerické znaky a pomlčku",
"domain": "Nesprávný tvar doménového jména: musí obsahovat pouze malé alfanumerické znaky, tečku a pomlčku",
"between": "Hodnota musí být mezi {min} a {max}.",
"alphalownum_": "Hodnota musí obsahovat pouze alfanumerické znaky a podtržítko.",
"alphalownumdot_": "Hodnota musí obsahovat pouze alfanumerické znaky a podtržítko.",
"alpha": "Hodnota musí obsahovat pouze čísla.",
"remote": "{message}",
"pattern": "{type}"
@ -131,11 +142,7 @@
"domain_delete_longdesc": "Smazat tuto doménu",
"domain_default_longdesc": "Toto je výchozí doména.",
"domain_default_desc": "Uživatelé se přihlašují na výchozí doméně.",
"domain_add_panel_without_domain": "Nemám doménové jméno…",
"domain_add_panel_with_domain": "Již mám doménové jméno…",
"domain_add_dyndns_forbidden": "Již jste svoji doménu zaregistrovali u DynDNS, proto se můžete zeptat na odebrání vaší současné DynDNS domény na fóru <a href='//forum.yunohost.org/t/nohost-domain-recovery-suppression-de-domaine-en-nohost-me-noho-st-et-ynh-fr/442'>v samostatném diskuzním příspěvku</a>.",
"domain_add_dyndns_doc": "... chci využít službu dynamického DNS.",
"domain_add_dns_doc": "… provedeno <a href='//yunohost.org/dns_config' target='_blank'>nastavení DNS</a>.",
"domain_add": "Přidat doménu",
"dns": "DNS",
"disabled": "Zakázáno",
@ -180,9 +187,6 @@
"app_make_default": "Nastavit výchozí",
"app_manage_label_and_tiles": "Správa štítků a dlaždic",
"app_install_parameters": "Nastavení instalace",
"app_config_panel_no_panel": "Tato aplikace nemá dostupné nastavení",
"app_config_panel_label": "Nastavit tuto aplikaci",
"app_config_panel": "Konfigurační panel",
"unknown": "Neznámé",
"uninstall": "Odinstalovat",
"unignore": "Smazat ignoraci",
@ -228,7 +232,7 @@
"select_all": "Vybrat vše",
"search": {
"not_found": "Nalezeny {items} odpovídající vašemu zadání. | Nalezena 1 {items} odpovídající vašemu zadání. | Nalezeny {items} odpovídající vašemu zadání.",
"for": "Hledat {items}..."
"for": "Hledat {items}"
},
"save": "Uložit",
"running": "Provádí se",
@ -334,7 +338,6 @@
"nobody": "Nikomu",
"no": "Ne",
"next": "Další",
"myserver": "můj server",
"multi_instance": "Může být instalováno ve více instancích",
"migrations_disclaimer_not_checked": "Před spuštěním této migrace je vyžadován souhlas s prohlášením.",
"migrations_disclaimer_check_message": "Přečetl/a jsem si a rozumím tomuto prohlášení",
@ -470,5 +473,32 @@
},
"users": "Uživatelé",
"users_new": "Nový uživatel",
"users_no": "Žádní uživatelé."
"users_no": "Žádní uživatelé.",
"app": {
"open_this_app": "Otevřít tuto aplikaci",
"info": {
"forum": "Hledejte nebo se ptejte na fóru!",
"problem": "Máte s aplikací problém?",
"config_panel_error_please_report": "Nahlaste prosím tuto chybu týmu YunoHost, aby ji mohl opravit!",
"config_panel_error": "Zobrazení konfiguračního panelu brání chyba:"
},
"install": {
"license": "Licence: {license}",
"notifs": {
"post": {
"title": "Poinstalační upozornení pro '{name}'"
},
"pre": {
"warning": "O čem byste měli před instalací vědět",
"danger": "Instalace aplikace pravděpodobně způsobí problémy",
"critical": "Aplikaci nelze nainstalovat"
}
},
"problems": {
"arch": "Tato aplikace může být nainstalována jen na konkrétních architekturách ({required}), avšak vaše architektura je {current}."
}
},
"antifeatures": "Tato aplikace má funkce, které by se vám nemusely líbit:",
"installed_version": "Nainstalovaná verze:"
}
}

View file

@ -4,8 +4,119 @@
"domain_description": {
"domain": "Vælg et domæne.",
"email": "Vælg et domæne til din e-mail."
},
"local_part_description": {
"domain": "Vælg et sub-domæne.",
"email": "Vælg en lokal del til dit domæne."
}
},
"administration_password": "Administratorkodeord",
"all": "Alle"
"all": "Alle",
"action": "Handling",
"api": {
"query_status": {
"success": "Fuldført",
"error": "Usuccesfuld",
"pending": "I gang",
"warning": "Fuldført med fejlmeldinger eller advarsler"
},
"processing": "Serveren er i færd med at behandle anmodningen…",
"reconnecting": {
"failed": "Det ser ud som om serveren ikke svarer. Du kan prøve at forbinde igen eller prøve at køre `systemctl restart yunohost-api` over ssh.",
"reason": {
"reboot": "Din server genstarter og vil ikke være kontaktbar i et stykke tid. En loginprompt vil blive synlig så snart serveren igen er kontaktbar.",
"unknown": "Forbindelsen til serveren er blevet lukket af ukendte årsager.",
"shutdown": "Din server lukker ned og er ikke længere kontaktbar. Tænd for den igen og en loginprompt vil blive synlig så snart den atter er kontaktbar.",
"upgrade_system": "Forbindelsen til serveren er blevet lukket på grund af YunoHost opdatering. Venter på at kunne kontakte serveren igen…"
},
"success": "Serveren er nu kontaktbar! Du kan prøve at logge ind",
"title": "Forsøger at kommunikere med serveren…"
},
"partial_logs": "[...] (se i historik for at finde hele loggen)"
},
"api_error": {
"error_message": "Fejlmelding:",
"info": "Følgende informationer kan være brugbare for den person der hjælper dig:",
"server_said": "Under behandlingen af anmodningen sagde serveren:",
"sorry": "Beklager meget.",
"view_error": "Se fejl",
"help": "Du bør søge hjælp på <a href=\"https://forum.yunohost.org/\">vores forum</a> eller <a href=\"https://chat.yunohost.org/\">chatten</a> til at ordne problemet eller rapportere fejlen i <a href=\"https://github.com/YunoHost/issues\">bugtrackeren</a>."
},
"all_apps": "Alle applikationer",
"api_errors_titles": {
"APIBadRequestError": "YunoHost stødte på en fejl",
"APIConnexionError": "YunoHost stødte på en forbindelsesfejl",
"APIError": "YunoHost stødte på en uventet fejl",
"APINotFoundError": "YunoHost API'en kunne ikke finde en rute",
"APINotRespondingError": "YunoHost API svarer ikke",
"APIInternalError": "YunoHost stødte på en intern fejl"
},
"api_not_found": "Det ser ud til at webadministratoren forespurgte efter noget der ikke findes.",
"api_not_responding": "YunoHost API'en svarer ikke. Måske er 'yunohost-api' nede eller blevet genstartet?",
"app": {
"doc": {
"about": {
"description": "Beskrivelse",
"title": "Om"
},
"admin": {
"title": "Admin doc"
},
"notifications": {
"understood": "Forstået",
"post_upgrade": "Post-opdatering noter",
"title": "Notifikationer",
"post_install": "Post-installation noter"
}
},
"info": {
"forum": "Søg eller spørg i forummet!",
"problem": "Et problem med denne app?",
"config_panel_error": "En fejl forhindrer konfigurationspanelet i at blive vist:",
"config_panel_error_please_report": "Vær venlig at rapportere denne fejl til YunoHost teamet, så den kan blive fikset!"
},
"install": {
"license": "Licens:{license}",
"notifs": {
"post": {
"title": "Post-installations-notifikationer for '{name}'",
"alert": "Det ser ud til at installationen gik godt!\nHer er nogle beskeder som udviklerne af pakken synes det er vigtigt, at du får.\nDu kan læse dem igen på app infosiden."
},
"pre": {
"warning": "Ting at være opmærksom på før installationen",
"critical": "Applikationen kan ikke installeres",
"danger": "Installation af applikationen vil sandsynligvis medføre problemer"
}
},
"problems": {
"ignore": "Jeg forstår at denne installation kan ødelægge mit system, men jeg vil stadig gerne prøve.",
"ram": "Denne applikation kræver {required} RAM for at kunne installere/opgradere, men der er kun {current} tilgængelige lige nu. Selv hvis denne app kunne køre, ville installationsprocessen kræve en stor mængde RAM, så din server risikerer at fryse og fejle horribelt.",
"arch": "Denne app kan kun installeres på specifikke arkitekturer ({required}) men din serverarkitektur er {current}.",
"broken": "YunoHosts automatiske tests har markeret denne applikation som \"VIRKER IKKE\", og den vil sandsynligvis ødelægge dit system! Du bør IKKE installere den medmindre du ved hvad du foretager dig.",
"inprogress": "Denne applikation er stadig i prøvefasen (eller den virker måske slet ikke) og den vil sandsynligvis ødelægge dit system! Du bør IKKE installere den medmindre du ved hvad du laver.",
"install": "Den er allerede installeret og kan ikke installeres flere gange.",
"lowquality": "Denne applikation virker måske, men er ikke velintegreret i YunoHost. Visse funktioner, såsom single sign-on og backup/restore er muligvis ikke tilgængelige, eller de respekterer ikke god praksis.",
"thirdparty": "Applikationen er ikke en del af det officielle YunoHost-katalog. Ved at installere tredjeparts-applikationer risikerer du at kompromittere integriteten og sikkerheden for dit system. Du bør undlade at installere, hvis du ikke er helt sikker på, hvad du gør.",
"version": "Applikationen kræver YunoHost >= {required}, men den nuværende version er {current}. Opgrader YunoHost først."
},
"try_demo": "Prøv demoen",
"version": "Nuværende version: {version}"
},
"antifeatures": "Denne app har komponenter du måske ikke vil bryde dig om:",
"integration": {
"ldap": {
"true": "Brug YunoHost-konti til at logge ind (LDAP)",
"?": "Ingen information om LDAP-integration",
"false": "Bruger ikke YunoHost-konti til at logge ind (LDAP)"
},
"archs": "Understøttede arkitekturer:",
"multi_instance": {
"true": "Kan installeres flere gange",
"false": "Kan kun installeres en gang"
},
"resources": "Typisk ressourceforbrug: {ram} RAM, {disk} disk"
},
"installed_version": "Installerede version:"
},
"api_waiting": "Venter på svar fra serveren…"
}

View file

@ -34,10 +34,6 @@
"description": "Beschreibung",
"disable": "Deaktivieren",
"domain_add": "Domain hinzufügen",
"domain_add_dns_doc": "... und ich habe <a href='//yunohost.org/dns_config' target='_blank'>meine DNS Einstellung richtig hinterlegt</a>.",
"domain_add_dyndns_doc": "... und ich möchte einen Dienst für dynamisches DNS nutzen.",
"domain_add_panel_with_domain": "Ich habe schon eine Domäne (Domain)…",
"domain_add_panel_without_domain": "Ich habe noch keine Domäne (Domain)…",
"domain_default_desc": "Die Standarddomäne ist die Domäne, an der sich die Kontoinhaber anmelden.",
"domain_name": "Domainname",
"domains": "Domänen",
@ -72,7 +68,6 @@
"manage_domains": "Domänen verwalten",
"manage_users": "Konten verwalten",
"multi_instance": "Kann mehrere Male installiert werden",
"myserver": "meinserver",
"next": "Weiter",
"no": "Nein",
"open": "Öffnen",
@ -90,7 +85,7 @@
"protocol": "Protokoll",
"restore": "Wiederherstellen",
"running": "In Betrieb",
"save": "Speichern",
"save": "Sichern",
"service_start_on_boot": "Beim Hochfahren starten",
"services": "Dienste",
"set_default": "Als Standard festlegen",
@ -144,8 +139,8 @@
"confirm_update_apps": "Möchten Sie wirklich alle Applikationen aktualisieren?",
"confirm_upnp_enable": "Möchten Sie UPnP wirklich aktivieren?",
"confirm_upnp_disable": "Möchten Sie UPnP wirklich deaktivieren?",
"confirm_firewall_allow": "Sind Sie sicher, dass Sie den Port {port} (protocol: {protocol}, Verbindung: {connection}) öffnen wollen",
"confirm_firewall_disallow": "Sind Sie sicher, dass Sie den Port {port} (protocol: {protocol}, Verbindung {connection}) schliessen wollen",
"confirm_firewall_allow": "Sind Sie sicher, dass Sie den Port {port}? (protocol: {protocol}, Verbindung: {connection}) öffnen wollen",
"confirm_firewall_disallow": "Sind Sie sicher, dass Sie den Port {port}? (protocol: {protocol}, Verbindung {connection}) schliessen wollen",
"confirm_update_specific_app": "Möchten Sie {app} wirklich aktualisieren?",
"confirm_reboot_action_reboot": "Möchten Sie den Server wirklich neustarten?",
"confirm_reboot_action_shutdown": "Möchten Sie den Server wirklich herunterfahren?",
@ -168,11 +163,11 @@
"confirm_migrations_skip": "Migrationen zu überspringen wird nicht empfohlen. Sind Sie sicher, dass Sie das tun wollen?",
"confirm_install_app_inprogress": "ACHTUNG! Diese Applikation ist noch experimentell (wenn nicht sogar nicht funktionsfähig) und es ist wahrscheinlich, dass sie Ihr System zerstört! Sie sollten sie besser NICHT installieren, es sei denn, Sie wissen, was Sie tun. Sind Sie bereit, dieses Risiko einzugehen?",
"confirm_install_app_lowquality": "Warnung: Diese Applikation könnte funktionieren, ist aber nicht gut in YunoHost integriert. Einige Funktionen wie Single-Sign-On und Backup/Restore sind möglicherweise nicht verfügbar.",
"good_practices_about_admin_password": "Sie sind gerade dabei, ein neues Administratorenpasswort zu setzen. Das Passwort sollte mindestens 8 Zeichen lang sein - es ist jedoch empfehlenswert, ein längeres Passwort (z.B. eine Passphrase) und/oder verschiedene Arten von Zeichen (Groß- und Kleinschreibung, Ziffern und Sonderzeichen) zu verwenden.",
"good_practices_about_admin_password": "Sie sind gerade dabei, ein neues Administratorenpasswort zu setzen. Das Passwort sollte mindestens 8 Zeichen lang sein. Es ist jedoch empfehlenswert, ein längeres Passwort (z.B. eine Passphrase) und/oder verschiedene Arten von Zeichen (Groß- und Kleinschreibung, Ziffern und Sonderzeichen) zu verwenden.",
"from_to": "von {0} nach {1}",
"experimental_warning": "Achtung: Diese Funktion ist experimentell und gilt nicht als stabil, Sie sollten sie nicht verwenden, außer Sie wissen, was Sie tun.",
"error_connection_interrupted": "Der Server hat die Verbindung geschlossen, anstatt sie zu beantworten. Wurde nginx oder die yunohost-api aus irgendeinem Grund neu gestartet oder gestoppt?",
"good_practices_about_user_password": "Sie werden nun ein neues Kontopasswort festlegen. Das Passwort sollte mindestens 8 Zeichen lang sein. Es ist jedoch empfehlenswert, ein längeres Passwort (d.h. eine Passphrase) und/oder verschiedene Arten von Zeichen (Groß- und Kleinschreibung, Ziffern und Sonderzeichen) zu verwenden.",
"good_practices_about_user_password": "Sie werden nun ein neues Konto- bzw. Benutzerpasswort festlegen. Das Passwort sollte mindestens 8 Zeichen lang sein. Es ist jedoch empfehlenswert, ein längeres Passwort (d.h. eine Passphrase) und/oder verschiedene Arten von Zeichen (Groß- und Kleinschreibung, Ziffern und Sonderzeichen) zu verwenden.",
"license": "Lizenz",
"only_highquality_apps": "Nur hochqualitative Apps",
"only_decent_quality_apps": "Nur qualitativ hochwertige Apps",
@ -289,11 +284,8 @@
"cancel": "Abbrechen",
"app_show_categories": "Kategorien anzeigen",
"app_manage_label_and_tiles": "Etiketten und Kacheln verwalten",
"app_config_panel_no_panel": "Für diese Applikation ist keine Konfiguration verfügbar",
"app_config_panel_label": "Diese Applikation konfigurieren",
"app_config_panel": "Konfigurations-Panel",
"app_choose_category": "Kategorie auswählen",
"api_waiting": "Warten auf Antwort des Servers...",
"api_waiting": "Warten auf Antwort des Servers…",
"user_emailforward_add": "Fügen Sie eine Mail-Weiterleitung hinzu",
"user_emailaliases_add": "Fügen Sie einen Mail-Alias hinzu",
"unknown": "Unbekannt",
@ -312,7 +304,7 @@
},
"search": {
"not_found": "Es gibt {items}, die Ihren Auswahlkriterien entsprechen. | Es gibt 1 {items}, das Ihrem Auswahlkriterium entspricht. | Es gibt {items}, die Ihren Auswahlkriterien entsprechen.",
"for": "Suche nach {items} ..."
"for": "Suche nach {items}"
},
"readme": "Lies mich",
"postinstall_set_domain": "Hauptdomäne festlegen",
@ -365,7 +357,7 @@
"dynDomain": "Ungültiger Domainname: Er darf nur aus alphanumerischen Kleinbuchstaben und Bindestrichen bestehen",
"domain": "Ungültiger Domainname: Er darf nur aus alphanumerischen Kleinbuchstaben, Punkt- und Strichzeichen bestehen",
"between": "Der Wert muss zwischen {min} und {max} liegen.",
"alphalownum_": "Der Wert darf nur aus alphanumerischen Kleinbuchstaben und Unterstrichen bestehen.",
"alphalownumdot_": "Der Wert darf nur aus alphanumerischen Kleinbuchstaben und Unterstrichen bestehen.",
"alpha": "Der Wert darf nur aus alphabetischen Zeichen bestehen.",
"remote": "{message}",
"pattern": "{type}",
@ -382,7 +374,7 @@
"error": "Fehler",
"enabled": "Aktiviert",
"domain_delete_forbidden_desc": "Sie können '{domain}' nicht entfernen, da es sich um die Standarddomäne handelt. Sie müssen eine andere Domäne auswählen (oder <a href='#/domains/add'> eine neue hinzufügen </a>) und diese als Standarddomäne festlegen um die aktuelle entfernen zu können.",
"domain_add_dyndns_forbidden": "Sie haben bereits eine DynDNS-Domain abonniert. Sie können Ihre aktuelle DynDNS-Domain im Forum <a href='//forum.yunohost.org/t/nohost-domain-recovery-suppression-de-domaine-en-nohost-me-noho-st-et-ynh-fr/442'>im dedizierten Thread</a>.",
"domain_add_dyndns_forbidden": "Sie haben bereits eine DynDNS-Domain vom YunoHost-Projekt registriert/abonniert. Es ist beabsichtigt, dass diese Funktion auf eine Domain dieses Typs pro Server limitiert ist. Falls Sie eine Subdomain Ihrer bereits registrierten Domain hinzufügen möchten, benützen Sie bitte die obige Option 'Ich will eine Domain, die in meinem Besitz ist, hinzufügen, oder eine Subdomain'. Falls Sie eine komplett andere Domain verwenden möchten, sollten Sie vorher Ihre bereits existierende DynDNS-Domain entfernen. DynDNS-Domains sind gut, wenn Sie mit Self-Hosting gerade erst beginnen, aber mittel/-langfristig empfehlen wir, dass Sie ihre ganz eigene Domain bei einem Registrar erwerben, um vollständiges Eigentum über Ihre Domain zu erlangen.",
"disabled": "Deaktiviert",
"dead": "Inaktiv",
"day_validity": " Abgelaufen seit | einem Tag | {count} Tage",
@ -401,10 +393,10 @@
"pending": "In Bearbeitung",
"error": "Nicht erfolgreich"
},
"processing": "Der Server verarbeitet die Aktion...",
"partial_logs": "[...] (Schauen Sie für vollständige Logs bitte im Verlauf nach)",
"processing": "Der Server verarbeitet die Aktion",
"partial_logs": "[…] (in der Historie nach Logs suchen)",
"reconnecting": {
"title": "Versuche mit dem Server zu kommunizieren...",
"title": "Versuche mit dem Server zu kommunizieren",
"failed": "Der Server scheint nicht zu antworten. Sie können versuchen, sich neu zu verbinden oder probieren `systemctl restart yunohost-api` über ssh auszuführen.",
"reason": {
"unknown": "Die Verbindung mit dem Server wurde aus unbekannten Gründen beendet.",
@ -503,7 +495,7 @@
"title": "Post-Installation",
"user": {
"title": "Erstes Administratorkonto erstellen",
"first_user_help": "Diesem Benutzer werden Adminstratoren-Privilegien erteilt und es wird ihm erlaubt sein, sich mit dem Admin-Portal zu verbinden und auch sich direkt mit dem Server über SSH zu verbinden. \nWeil es ein regulärer Benutzer ist, werden Sie sich auch mit dem Benutzer-Portal (SSO) mit seinen Zugangsdaten verbinden können. Sobald die post-installation vollständig ist, werden Sie in der Lage sein, weitere Admin-Benutzer zu erstellen, indem Sie diese der 'admins'-Gruppe hinzufügen."
"first_user_help": "Diesem Benutzer werden Adminstratoren-Privilegien erteilt und es wird ihm erlaubt sein, sich mit dem Admin-Portal zu verbinden und auch sich direkt mit dem Server über SSH zu verbinden.\nWeil es ein regulärer Benutzer ist, werden Sie sich auch mit dem Benutzer-Portal (SSO) mit seinen Zugangsdaten verbinden können. \nSobald die post-installation vollständig ist, werden Sie in der Lage sein, weitere Admin-Benutzer zu erstellen, indem Sie diese der 'admins'-Gruppe hinzufügen."
}
},
"hook_data_xmpp_desc": "Konfiguration für Räume und Konten, hochgeladene Dateien",
@ -546,7 +538,8 @@
"info": {
"apps_on_domain": "Auf der Domäne installierte Applikationen",
"certificate_authority": "SSL-Zeritifizierungsstelle",
"registrar": "Registrar"
"registrar": "Registrar",
"dyn_dns_remove_and_unsubscribe": "sie müssen auch die Domain beim Yunohost DynDNS Service abmelden"
},
"see_parent_domain": "Schauen Sie bitte bei der Hauptdomäne nach",
"types": {
@ -555,9 +548,19 @@
"toggle_subdomains": "Subdomänen wechseln",
"explain": {
"main_domain": "Die Hauptdomäne ist die Domäne, von welcher aus die Benutzer sich mit dem Portal verbinden können (via \"{domain}/yunohost/sso\"). <br>Darum ist es leider nicht möglich, sie zu entfernen.<br>Falls Sie \"{domain}\" entfernen möchten, werden sie vorher eine andere Domäne auswählen und als Hauptdomäne festlegen müssen."
},
"add": {
"dyn_dns_password_desc": "Dieses Passwort erlaubt Ihnen zu einem späteren Zeitpunkt die Widerherstellung der Domäne wenn Sie Ihr System neu installieren. Wenn Sie diese Domäne vorher schon registriert haben, verwenden Sie hier dieses Wiederherstellungspasswort für die Wiederherstellung der Domäne.",
"from_local_desc": "Wenn Sie keinen \"echten\" öffentlichen Domänennamen wünschen, können Sie hier alles verwenden, was in <code>.local</code> oder <code>.test</code> endet. Domänennamen welche in <code>.local</code> enden, sind in dem Sinne speziell, als dass sie in Ihrem lokalen Netzwerk automatisch aufgelöst werden können, angenommen Ihre Clients unterstützen das Bonjour-Protokoll. Als Alternative dazu können Sie Ihre <code>/etc/hosts</code> -Datei ( oder äquivalent für Windows ) auf jedem Ihrer Clients so einstellen, von welchen aus Sie diese Domäne benützen wollen, oder indem Sie die lokalen DNS-Einträge in Ihrem Internet-Router entsprechend konfigurieren.",
"dyn_dns_password": "Domainwiederherstellungspasswort",
"from_local": "Ich will eine Domain ausschließlich für die lokale / testweise Verwendung",
"from_registrar": "Ich möchte eine eigene Domain oder eine Subdomain hinzufügen",
"from_registrar_desc": "Sie müssen gegebenenfalls die DNS-Konfiguration bei ihrem Registrar vervollständigen. Die Diagnose von Yunohost zeigt Ihnen an, welche Records Sie noch konfigurieren müssen.",
"from_yunohost": "Ich besitze keine Domain, Ich möchte eine kostenlose DynDNS-Domain des Yunohost Projektes nutzen",
"from_yunohost_desc": "Das YunoHost-Projekt unterhält einen kostenlosen 'DynDNS'-Service. Dieser ist limitiert auf eine einzige solche Domäne pro Server (Sie können trotzdem später eine Subdomain mit der obigen Option 'Ich will eine Domäne, die in meinem Besitz ist, hinzufügen, oder eine Subdomain' hinzufügen). Die DNS-Konfiguration wird automatisch von YunoHost gehandhabt. Dies ist ideal, wenn Sie mit Self-Hosting überhaupt erst beginnen und Sie noch nicht in einen Domainname investieren möchten. Wie auch immer, mittel/-langfristig empfehlen wir der Kauf eines eigenen Domainnames bei einem Registrar, um das vollständige Eigentum über Ihre Domäne zu erlangen."
}
},
"domain_dns_push_failed_to_authenticate": "Authentifizierung bei der API des Registrars nicht erfolgreich. Höchstwahrscheinlich sind die <a href='#/Domäne/{domain}/config'>Zugangsdaten</a> inkorrekt. (Fehler: {error})",
"domain_dns_push_failed_to_authenticate": "Die Authentifizierung an der API des Registrars war nicht erfolgreich. Höchstwahrscheinlich sind die <a href='#/domains/{domain}/config'>Zugangsdaten</a> falsch? (Fehler: {error})",
"domain_dns_push_managed_in_parent_domain": "Die automatische DNS-Konfiguration wird von der übergeordneten Domäne <a href='#/domains/{parent_domain}/dns'>{parent_domain}</a> verwaltet.",
"domain_dns_push_not_applicable": "Die automatische DNS-Konfiguration ist nicht auf die Domäne {domain} anwendbar. <br>Konfiguriere die DNS-Einträge, wie in der <a href='https://yunohost.org/dns'>Dokumentation<a href='https://yunohost.org/dns'> beschrieben, mit Hilfe der folgenden vorgeschlagenen Konfiguration manuell.",
"users_import_delete_desc": "Wenn angewählt, werden alle Konten, die nicht in der CSV-Datei enthalten sind, gelöscht (und bereinigt).",
@ -574,11 +577,11 @@
"users_import_confirm_destructive": "Sind Sie sicher, dass Sie die Konten, die nicht in diesen Datei enthalten sind, löschen wollen?",
"retry": "Wiederhole",
"app_state_broken": "beschädigt",
"app_state_broken_explanation": "Diese Applikation ist zur Zeit fehlerhaft und kann gemäss automatisierter Tests von YunoHost nicht installiert werden.",
"app_state_broken_explanation": "Diese Applikation ist zur Zeit fehlerhaft und kann gemäss automatisierter Tests durch YunoHost nicht installiert werden",
"details_about": "Mehr Details über {subject} anzeigen",
"confirm_install_app_broken": "VORSICHT! Diese Applikation ist gemäss YunoHost's automatischen Test beschädigt und wird vermutlich ihr System beschädigen! Sie sollten sie vermutlich NICHT installieren, es sei denn, Sie wissen was Sie tun. Wollen Sie dieses Risiko wirklich eingehen?",
"group_admins": "Administratoren",
"group_explain_admins": "Dies ist eine spezielle Gruppe, welche zu den Administratoren-Benutzern gehört. Benutzer in dieser Gruppe besitzen, um es einfach zu halten, alle Berechtigungen auf dem Server (verändern, erstellen, hinzufügen und zurückhalten). Sie können demzufolge auf Admin-Oberfläche von YunoHost zugreifen, sich mit dem Server über SSH verbinden und das Kommando `sudo` benutzen. Ausserdem erhalten sie die E-Mails, welche an root@, admin@, admins@, wie die Diagnose-Benachrichtigungen, gesendet wurden.",
"group_explain_admins": "Dies ist eine spezielle Gruppe, welche zu den Administratoren-Benutzern gehört. Benutzer in dieser Gruppe besitzen, einfach ausgedrückt, alle Berechtigungen auf dem Server (verändern, erstellen, hinzufügen und zurückhalten). Sie können folglich auf die Admin-Oberfläche von YunoHost zugreifen, sich via SSH mit dem Server verbinden und ausserdem das Kommando `sudo` verwenden. Zusätzlich erhalten sie alle E-Mails, welche an root@, admin@, admins@, wie z.B. die Diagnose-Benachrichtigungen, gesendet wurden. Sie sollten wirklich nur Personen zu dieser Gruppe hinzufügen, denen Sie absolut vertrauen!",
"important_yunohost_upgrade": "Eine grössere YunoHost-Aktualisierung ist erhältlich. Es ist sehr empfehlenswert, die Release-Note(s) im Forum sorgfältig durchzulesen, bevor Sie aktualisieren : <a href='https://forum.yunohost.org/tag/ynh_release'>Die Release-Notes im Forum aufrufen.</a>",
"label_for_manifestname_help": "Dies ist der Name, welcher im Benutzer-Portal angezeigt wird. Dies kann später nochmal geändert werden.",
"manage_groups": "Gruppenmanagement",
@ -589,10 +592,10 @@
"problems": {
"broken": "Diese Anwendung ist laut automatischer Tests von YunoHost beschädigt und wird wahrscheinlich Ihr System ruinieren! Sie sollten sie NICHT installieren, wenn Sie nicht wissen, was Sie tun.",
"arch": "Diese App kann nur auf spezifischen Architekturen ({required}) installiert werden, aber die Architektur Ihres Servers ist {current}.",
"ram": "Diese App benötigt {required} RAM für Installation/Upgrade aber es sind aktuell nur {current} verfügbar. Auch wenn diese App funktionieren würde, würde der Installationsprozess viel RAM benötigen. Es würde die Gefahr bestehen, dass Ihr Server einfrieren (freezen) und völlig abschmieren würde.",
"ram": "Diese App benötigt {required} RAM für Installation/Upgrade aber es sind aktuell nur {current} verfügbar. Auch wenn diese App funktioniern würde, würde der Installationsprozess viel RAM benötigen. Es würde die Gefahr bestehen, dass Ihr Server einfrieren (freezen) und völlig abschmieren würde.",
"thirdparty": "Diese App ist nicht Bestandteil des offiziellen YunoHost-Katalogs. Die Installation von Drittanbieter-Apps kann die Integrität und Sicherheit Ihres Systems kompromittieren. Sie sollten sie wahrscheinlich NICHT installieren, wenn Sie nicht genau wissen, was Sie tun.",
"ignore": "Ich habe verstanden, dass diese Installation mein System ruinieren könnte, aber ich möchte es trotzdem versuchen.",
"inprogress": "Diese App ist noch experimentell (beziehungsweise noch nicht gut in YunoHost integriert oder ausdrücklich nicht funktionsfähig). Folglich ist sie anfällig dafür, ihr System zu ruinieren! Sie sollten sie wahrscheinlich NICHT installieren, wenn Sie nicht genau wissen, was Sie tun.",
"inprogress": "Diese App ist noch experimentell (beziehungsweise noch nicht gut in YunoHost integriert oder ausdrücklich nicht funktionsfähig). Folglich neigt sie dazu, Ihr System zu ruinieren! Sie sollten sie wahrscheinlich NICHT installieren, wenn Sie nicht genau wissen, was Sie tun.",
"install": "Diese App ist bereits installiert und kann nicht noch einmal installiert werden.",
"lowquality": "Diese App funktioniert wahrscheinlich, ist aber noch nicht gut in YunoHost integriert. Einige Funktionen wie zum Beispiel Single-Sign-On und Sicherung/Wiederherstellen könnten nicht verfügbar sein oder die Best-Practices nicht berücksichtigen.",
"version": "Diese App benötigt YunoHost >={required} aber Ihre aktuell installierte Version ist {current}. Sie sollten vorher YunoHost aktualisieren."
@ -601,7 +604,7 @@
"notifs": {
"post": {
"title": "Post-Installations-Benachrichtigungen für „{name}“",
"alert": "Die Aktualisierung scheint gut gelaufen zu sein!\nHier ein paar Informationen, die der/die Paketierer betreffend dieser Aktualisierung als wichtig erachtet hat. \nSie können sie auch auf der Informationsseite dieser App nochmal nachlesen."
"alert": "Die Aktualisierung scheint gut gelaufen zu sein!\nHier sind ein einige Informationen, die der Paketierer als wichtig zu wissen erachtet hat. \nSie können sie auch auf der Informationsseite dieser App noch einmal nachlesen."
},
"pre": {
"warning": "Wichtige Informationen vor der Installation",
@ -621,18 +624,20 @@
"description": "Beschreibung"
},
"notifications": {
"dismiss": "Verwerfen",
"title": "Benachrichtigungen",
"post_upgrade": "Post-Aktualisierungs-Anmerkungen",
"post_install": "Post-Installations-Anmerkungen"
"post_install": "Post-Installations-Anmerkungen",
"understood": "Verstanden"
},
"admin": {
"title": "Dokumentation für Administratoren"
}
},
"info": {
"forum": "Suche oder Frage im Forum!",
"problem": "Ein Problem mit dieser App?"
"forum": "Suchen oder fragen Sie im Forum!",
"problem": "Ein Problem mit dieser App?",
"config_panel_error": "Ein Fehler verhindert die Anzeige des Konfigurationsfensters:",
"config_panel_error_please_report": "Bitte leiten Sie diesen Fehler an das YunoHost-Team zu dessen Behebung weiter!"
},
"integration": {
"archs": "Unterstützte Architekturen:",
@ -661,7 +666,8 @@
"title": "Links",
"userdoc": "Offizielle Dokumentation für Benutzer",
"website": "Offizielle Website",
"license": "Lizenz"
"license": "App-Lizenz",
"package_license": "YunoHost Paket Lizenz"
},
"potential_alternative_to": "Potenzielle Alternative für:",
"upgrade": {
@ -673,7 +679,7 @@
"notifs": {
"pre": {
"alert": "Sie sollten sich die Benachrichtigungen genau anschauen, befor sie mit der Aktualisierung fortfahren. Sie könnten wichtige Informationen enthalten, die Sie kennen sollten.",
"title": "Seien Sie Vorgewarnt!"
"title": "Seien Sie vorgewarnt!"
},
"post": {
"alert": "Die Aktualisierung scheint gut gelaufen zu sein!\nHier ein paar Informationen, die der/die Paketierer betreffend dieser Aktualisierung als wichtig erachtet hat. \nSie können sie auch auf der Informationsseite dieser App nochmal nachlesen.",
@ -681,6 +687,9 @@
}
},
"stop": "Die nächsten Aktualisierungen stornieren"
},
"uninstall": {
"purge_desc": "Entferne das Datenverzeichnis, das mit dieser Applikation assoziiert ist (hier handelt es sich üblicherweise um Daten, die Sie bei der Benutzung der Applikation selbst hochgeladen haben)."
}
}
}

View file

@ -16,7 +16,6 @@
"ipv6": "IPv6",
"login": "Σύνδεση",
"logout": "Αποσύνδεση",
"myserver": "myserver",
"operations": "Δραστηριότητες",
"password": "Κωδικός πρόσβασης",
"password_confirmation": "Επιβεβαίωση κωδικού πρόσβασης",
@ -33,5 +32,53 @@
"words": {
"default": "Προεπιλογή"
},
"ok": "Εντάξει"
"ok": "Εντάξει",
"action": "Ενέργεια",
"all_apps": "Όλες οι εφαρμογές",
"address": {
"domain_description": {
"domain": "Επιλέξτε domain.",
"email": "Επιλέξτε ένα domain για το email σας."
},
"local_part_description": {
"domain": "Επιλέξτε ένα subdomain.",
"email": "Επιλέξτε ένα τοπικό τμήμα για το email σας."
}
},
"api_error": {
"info": "Η ακόλουθη πληροφορία μπορεί να είναι χρήσιμη για το άτομο που σας βοηθάει:",
"sorry": "Πραγματικά λυπούμαστε για αυτό.",
"server_said": "Κατά τη διάρκεια επεξεργασίας της ενέργειας ο διακομιστής είπε:",
"view_error": "Προβολή σφάλματος",
"error_message": "Μήνυμα σφάλματος:"
},
"api_errors_titles": {
"APIBadRequestError": "Το YunoHost αντιμετώπισε ένα σφάλμα",
"APIError": "Το YunoHost αντιμετώπισε ένα μη αναμενόμενο σφάλμα",
"APIInternalError": "Το YunoHost αντιμετώπισε ένα εσωτερικό σφάλμα",
"APINotFoundError": "Το YunoHost API δεν μπόρεσε να βρεί δρομολόγηση",
"APINotRespondingError": "Το YunoHost API δεν ανταποκρίνεται",
"APIConnexionError": "Το YunoHost αντιμετώπισε ένα σφάλμα σύνδεσης"
},
"api": {
"reconnecting": {
"failed": "Φαίνεται πως ο διακομιστής δεν ανταποκρίνεται. Μπορείτε να προσπαθήσετε να ξανασυνδεθείτε ή να προσπαθήσετε να εκτελέσετε `systemctl restart yunohost-api` μέσω ssh.",
"reason": {
"unknown": "Η σύνδεση με το διακομιστή έχει τερματιστεί για άγνωστους λόγους.",
"upgrade_system": "Η σύνδεση με τον διακομιστή έχει τερματιστεί εξ'αιτίας αναβάθμισης του YunoHost. Αναμονή για τον διακομιστή μέχρι να είναι ξανά προσβάσιμος…",
"reboot": "Ο διακομιστής επανεκκινείται και δε θα είναι προσβάσιμος για κάποιο χρονικό διάστημα. Μία εντολή εισόδου θα είναι διαθέσιμη όταν ο διακομιστής θα είναι και πάλι προσβάσιμος.",
"shutdown": "Ο διακομιστής σας τερματίζεται και δεν είναι πια προσβάσιμος. Ενεργοποιήστε τον ξανά και μία εντολή εισόδου θα είναι διαθέσιμη με το που ο διακομιστής είναι ξανά προσβάσιμος."
},
"success": "Ο διακομιστής τώρα είναι προσβάσιμος! Μπορείτε να προσπαθήσετε να κάνετε είσοδο",
"title": "Προσπάθεια για επικοινωνία με το διακομιστή…"
},
"processing": "Ο διακομιστής επεξεργάζεται την ενέργεια…",
"query_status": {
"error": "Ανεπιτυχής",
"success": "Ολοκληρώθηκε επιτυχώς",
"warning": "Ολοκληρώθηκε επιτυχώς με σφάλματα ή προειδοποιήσεις",
"pending": "Υπό διεργασία"
}
},
"all": "Όλα"
}

View file

@ -15,8 +15,8 @@
"all": "All",
"all_apps": "All apps",
"api": {
"partial_logs": "[...] (check in history for full logs)",
"processing": "The server is processing the action...",
"partial_logs": "[] (check in history for full logs)",
"processing": "The server is processing the action",
"query_status": {
"error": "Unsuccessful",
"pending": "In progress",
@ -32,7 +32,7 @@
"upgrade_system": "Connection with the server has been closed due to YunoHost upgrade. Waiting for the server to be reachable again…"
},
"success": "The server is now reachable! You can try to login",
"title": "Trying to communicate with the server..."
"title": "Trying to communicate with the server"
}
},
"api_error": {
@ -53,107 +53,111 @@
},
"api_not_found": "Seems like the web-admin tried to query something that doesn't exist.",
"api_not_responding": "The YunoHost API is not responding. Maybe 'yunohost-api' is down or got restarted?",
"api_waiting": "Waiting for the server's response...",
"api_waiting": "Waiting for the server's response",
"app": {
"installed_version": "Installed version:",
"open_this_app": "Open this app",
"antifeatures": "This app has features you may not like:",
"doc": {
"about": {
"title": "About",
"description": "Description"
"antifeatures": "This app has features you may not like:",
"doc": {
"about": {
"description": "Description",
"title": "About"
},
"admin": {
"title": "Admin doc"
},
"notifications": {
"post_install": "Post-install notes",
"post_upgrade": "Post-upgrade notes",
"title": "Notifications",
"understood": "Understood"
}
},
"admin": {
"title": "Admin doc"
"info": {
"config_panel_error": "An error prevents the configuration panel from being displayed:",
"config_panel_error_please_report": "Please report this error to the YunoHost team to get it fixed!",
"forum": "Search or ask the forum!",
"problem": "A problem with this app?"
},
"notifications": {
"dismiss": "Dismiss",
"title": "Notifications",
"post_upgrade": "Post-upgrade notes",
"post_install": "Post-install notes"
"install": {
"license": "License: {license}",
"notifs": {
"post": {
"alert": "It seems that the installation went well!\nHere are some notifications that the packager considers important to know.\nYou can read it again in the app info page.",
"title": "Post-install notifications for '{name}'"
},
"pre": {
"critical": "The application cannot be installed",
"danger": "The installation of the application will most likely lead to issues",
"warning": "Things to know before installation"
}
},
"problems": {
"arch": "This app can only be installed on specific architectures ({required}) but your server architecture is {current}.",
"broken": "This application is broken according to YunoHost's automatic tests and it is likely to break your system! You should probably NOT install it unless you know what you are doing.",
"ignore": "I understand that this installation may break my system but i still want to try.",
"inprogress": "This application is still experimental (if not explicitly not working) and it is likely to break your system! You should probably NOT install it unless you know what you are doing.",
"install": "It is already installed and can't be installed more than once.",
"lowquality": "This application may work but is not well-integrated in YunoHost. Some features such as single sign-on and backup/restore might not be available, or it does not respect the good practices.",
"ram": "This application requires {required} of RAM to install/upgrade but only {current} is available right now. Even if this app could run, its installation process requires a large amount of RAM so your server may freeze and fail miserably.",
"thirdparty": "This application is not part of the official YunoHost catalog, installing 3rd party applications may compromise the integrity and security of your system. You should probably NOT install it unless you know what you are doing.",
"version": "This application requires YunoHost >= {required} but your current installed version is {current}, consider first upgrading YunoHost."
},
"try_demo": "Try the demo",
"version": "Current version: {version}"
},
"installed_version": "Installed version:",
"integration": {
"archs": "Supported architectures:",
"ldap": {
"?": "No information about LDAP integration",
"false": "Does not use YunoHost accounts to login (LDAP)",
"true": "Use YunoHost accounts to login (LDAP)"
},
"multi_instance": {
"false": "Can be installed only once",
"true": "Can be installed several times"
},
"resources": "Typical resource usage: {ram} RAM, {disk} disk",
"sso": {
"?": "No information about SSO integration",
"false": "Single sign-on is not available (SSO)",
"true": "Single sign-on is available (SSO)"
},
"title": "YunoHost integration"
},
"links": {
"admindoc": "Official Admin documentation",
"code": "Official code repository",
"forum": "Topics about this app on YunoHost's forum",
"license": "App license",
"package": "YunoHost package repository",
"package_license": "YunoHost package license",
"title": "Links",
"userdoc": "Official User documentation",
"website": "Official Website"
},
"open_this_app": "Open this app",
"potential_alternative_to": "Potential alternative to:",
"uninstall": {
"purge_desc": "Remove the data directory associated with the app (this is usually data you uploaded yourself using the app)."
},
"upgrade": {
"confirm": {
"apps": "Apps that will be upgraded",
"title": "Confirm app upgrades"
},
"continue": "Continue to next app",
"notifs": {
"post": {
"alert": "It seems that the upgrade went well!\n Here is some notifications that the packager considers important to know about this upgrade.\nYou can read it again in the app info page.",
"title": "Post-upgrade notifications for '{name}'"
},
"pre": {
"alert": "You should check those notifications before upgrading, there might be important stuff to know.",
"title": "Be warned!"
}
},
"stop": "Cancel next app upgrades"
}
},
"info": {
"forum": "Search or ask the forum!",
"problem": "A problem with this app?",
"config_panel_error": "An error prevents the configuration panel from being displayed:",
"config_panel_error_please_report": "Please report this error to the YunoHost team to get it fixed!"
},
"install": {
"license": "License: {license}",
"notifs": {
"post": {
"title": "Post-install notifications for '{name}'",
"alert": "It seems that the installation went well!\n Here is some notifications that the packager considers important to know.\nYou can read it again in the app info page."
},
"pre": {
"warning": "Things to know before installation",
"danger": "The installation of the application will most likely lead to issues",
"critical": "The application cannot be installed"
}
},
"problems": {
"arch": "This app can only be installed on specific architectures ({required}) but your server architecture is {current}.",
"broken": "This application is broken according to YunoHost's automatic tests and it is likely to break your system! You should probably NOT install it unless you know what you are doing.",
"thirdparty": "This application is not part of the official YunoHost catalog, installing 3rd party applications may compromise the integrity and security of your system. You should probably NOT install it unless you know what you are doing.",
"ignore": "I understand that this installation may break my system but i still want to try.",
"inprogress": "This application is still experimental (if not explicitly not working) and it is likely to break your system! You should probably NOT install it unless you know what you are doing.",
"install": "It is already installed and can't be installed more than once.",
"lowquality": "This application may work but is not well-integrated in YunoHost. Some features such as single sign-on and backup/restore might not be available, or it does not respect the good practices.",
"ram": "This application requires {required} of RAM to install/upgrade but only {current} is available right now. Even if this app could run, its installation process requires a large amount of RAM so your server may freeze and fail miserably.",
"version": "This application requires YunoHost >= {required} but your current installed version is {current}, consider first upgrading YunoHost."
},
"try_demo": "Try the demo",
"version": "Current version: {version}"
},
"integration": {
"archs": "Supported architectures:",
"ldap": {
"false": "Does not use YunoHost accounts to login (LDAP)",
"true": "Use YunoHost accounts to login (LDAP)",
"?": "No information about LDAP integration"
},
"multi_instance": {
"false": "Can be installed only once",
"true": "Can be installed several times"
},
"resources": "Typical resource usage: {ram} RAM, {disk} disk",
"sso": {
"false": "Single sign-on is not available (SSO)",
"true": "Single sign-on is available (SSO)",
"?": "No information about SSO integration"
},
"title": "YunoHost integration"
},
"links": {
"admindoc": "Official Admin documentation",
"code": "Official code repository",
"forum": "Topics about this app on YunoHost's forum",
"package": "YunoHost package repository",
"title": "Links",
"userdoc": "Official User documentation",
"website": "Official Website",
"license": "License"
},
"potential_alternative_to": "Potential alternative to:",
"upgrade": {
"confirm": {
"apps": "Apps that will be upgraded",
"title": "Confirm app upgrades"
},
"continue": "Continue to next app",
"notifs": {
"pre": {
"alert": "You should check those notifications before upgrading, there might be important stuff to know.",
"title": "Be warned!"
},
"post": {
"alert": "It seems that the upgrade went well!\n Here is some notifications that the packager considers important to know about this upgrade.\nYou can read it again in the app info page.",
"title": "Post-upgrade notifications for '{name}'"
}
},
"stop": "Cancel next app upgrades"
}
},
"app_choose_category": "Choose a category",
"app_info_access_desc": "Groups / users currently allowed to access this app:",
@ -199,8 +203,8 @@
"confirm_app_install": "Are you sure you want to install this application?",
"confirm_change_maindomain": "Are you sure you want to change the main domain?",
"confirm_delete": "Are you sure you want to delete {name}?",
"confirm_firewall_allow": "Are you sure you want to open port {port} (protocol: {protocol}, connection: {connection})",
"confirm_firewall_disallow": "Are you sure you want to close port {port} (protocol: {protocol}, connection: {connection})",
"confirm_firewall_allow": "Are you sure you want to open port {port}? (protocol: {protocol}, connection: {connection})",
"confirm_firewall_disallow": "Are you sure you want to close port {port}? (protocol: {protocol}, connection: {connection})",
"confirm_group_add_access_permission": "Are you sure you want to grant {perm} access to {name}? Such access significantly increases the attack surface if {name} happens to be a malicious person. You should only do so if you TRUST this person/group.",
"confirm_install_app_broken": "WARNING! This application is broken according to YunoHost's automatic tests and it is likely to break your system! You should probably NOT install it unless you know what you are doing. Are you willing to take that risk?",
"confirm_install_app_inprogress": "WARNING! This application is still experimental (if not explicitly not working) and it is likely to break your system! You should probably NOT install it unless you know what you are doing. Are you willing to take that risk?",
@ -216,8 +220,6 @@
"confirm_service_start": "Are you sure you want to start {name}?",
"confirm_service_stop": "Are you sure you want to stop {name}?",
"confirm_uninstall": "Are you sure you want to uninstall {name}?",
"confirm_update_system": "Are you sure you want to update all system packages?",
"confirm_upnp_enable": "Are you sure you want to enable UPnP?",
"confirm_update_apps": "Are you sure you want to update all applications?",
"confirm_update_specific_app": "Are you sure you want to update {app}?",
"confirm_update_system": "Are you sure you want to update all system packages?",
@ -239,6 +241,16 @@
"disabled": "Disabled",
"dns": "DNS",
"domain": {
"add": {
"dyn_dns_password": "Domain recovery password",
"dyn_dns_password_desc": "This password will allow you to later recover control of the domain if you reinstall your system. If you already registered this domain previously, use your recovery password here to reclaim it.",
"from_local": "I want a domain for local usage / test only",
"from_local_desc": "If you don't want an \"actual\" public domain name, you can use anything ending in <code>.local</code> or <code>.test</code>. Domain names ending in <code>.local</code> are special in the sense that they may automatically be resolved on the local network, assuming the clients support the Bonjour protocol. Alternatively, you may need to tweak the <code>/etc/hosts</code> file (or equivalent on Windows) on every client that you want to use this domain from, or to configure local DNS entries on your internet router.",
"from_registrar": "I want to add a domain I own, or a subdomain",
"from_registrar_desc": "You will need to manually configure DNS records on your registrar to finalize this domain's configuration. YunoHost's diagnosis will guide you about what DNS records to configure exactly.",
"from_yunohost": "I don't own a domain, I want to register/use a free DynDNS domain provided by the YunoHost project",
"from_yunohost_desc": "The YunoHost project maintains a free 'DynDNS' service. It is limited to one such domain per server (though you can also add sub-domains later using the other 'Add a domain I own, or a subdomain' option above). The DNS configuration will be automatically handled by YunoHost. This is ideal when starting up with self-hosting in general and you don't want to invest in a domain name yet. However, on the medium/long-term, we recommend buying your very own domain name to some registrar to have full ownership of your domain."
},
"cert": {
"types": {
"letsencrypt": "Let's Encrypt",
@ -268,7 +280,7 @@
},
"push": "Push DNS records to registrar",
"push_force": "Overwrite existing records",
"push_force_confirm": "Are you sure you want to force push all suggested dns records? Be aware that it may overwrite manually or important default records set by you or your registrar.",
"push_force_confirm": "Are you sure you want to force push all suggested dns records? Be aware that it may overwrite manual configuration or important default records set by you or your registrar.",
"push_force_warning": "It looks like some DNS records that YunoHost would have set are already in the registrar configuration. You can use the overwrite option if you know what you are doing."
},
"explain": {
@ -277,6 +289,7 @@
"info": {
"apps_on_domain": "Apps installed on domain",
"certificate_authority": "SSL Certification authority",
"dyn_dns_remove_and_unsubscribe": "Also unregister the domain from YunoHost's DynDNS service",
"registrar": "Registrar"
},
"see_parent_domain": "See parent domain",
@ -286,11 +299,7 @@
}
},
"domain_add": "Add domain",
"domain_add_dns_doc": "… and I have <a href='//yunohost.org/dns_config' target='_blank'>set my DNS correctly</a>.",
"domain_add_dyndns_doc": "… and I want a dynamic DNS service.",
"domain_add_dyndns_forbidden": "You have already subscribed to a DynDNS domain, you can ask to remove your current DynDNS domain on the forum <a href='//forum.yunohost.org/t/nohost-domain-recovery-suppression-de-domaine-en-nohost-me-noho-st-et-ynh-fr/442'>in the dedicated thread</a>.",
"domain_add_panel_with_domain": "I already have a domain name…",
"domain_add_panel_without_domain": "I don't have a domain name…",
"domain_add_dyndns_forbidden": "You have already registered/subscribed to a DynDNS domain from the YunoHost project. By design, this feature is limited to one such domain per server. If you want to add a subdomain of your already subscribed domain, please use the 'Add a domain I own, or a subdomain' option above. If you want to use a completely different domain, you should first remove your existing DynDNS domain. DynDNS domains are good when starting with self-hosting, but on the medium/long term, we recommend buying your very own domain name to some registrar to have full ownership of your domain.",
"domain_default_desc": "The default domain is the connection domain where users log in.",
"domain_default_longdesc": "This is your default domain.",
"domain_delete_forbidden_desc": "You cannot remove '{domain}' since it's the default domain, you need to choose another domain (or <a href='#/domains/add'>add a new one</a>) and set it as the default domain to be able to remove this one.",
@ -322,7 +331,7 @@
"footer_version": "Powered by <a href='https://yunohost.org'>YunoHost</a> {version} ({repo}).",
"form_errors": {
"alpha": "Value must be alphabetical characters only.",
"alphalownum_": "Value must be lower-case alphanumeric and underscore characters only.",
"alphalownumdot_": "Value must be lower-case alphanumeric, dots and underscore characters only.",
"appRepoUrl": "YunoHost app repository URLs are expected to look like https://domain.tld/path/to/repo_ynh",
"between": "Value must be between {min} and {max}.",
"domain": "Invalid domain name: Must be lower-case alphanumeric, dot and dash characters only",
@ -390,9 +399,9 @@
"action_config": "Run action '{action}' of app '{name}' configuration",
"change_label": "Change label of '{prevName}' for '{nextName}'",
"change_url": "Change access URL of '{name}'",
"dismiss_notification": "Dismiss notification for '{name}'",
"install": "Install app '{name}'",
"set_default": "Redirect '{domain}' domain root to '{name}'",
"dismiss_notification": "Dismiss notification for '{name}'",
"uninstall": "Uninstall app '{name}'",
"update_config": "Update panel '{id}' of app '{name}' configuration"
},
@ -531,7 +540,6 @@
"migrations_no_pending": "No pending migrations",
"migrations_pending": "Pending migrations",
"multi_instance": "Can be installed several times",
"myserver": "myserver",
"next": "Next",
"no": "No",
"nobody": "Nobody",
@ -592,7 +600,7 @@
"running": "Running",
"save": "Save",
"search": {
"for": "Search for {items}...",
"for": "Search for {items}",
"not_found": "There are {items} matching your criteria. | There is 1 {items} matching your criteria. | There are {items} matching your criteria."
},
"select_all": "Select all",

View file

@ -40,19 +40,16 @@
"confirm_reboot_action_reboot": "Ĉu vi certas, ke vi volas reagordi vian servilon ?",
"confirm_upnp_enable": "Ĉu vi certas, ke vi volas ebligi UPnP ?",
"api_not_responding": "La API YunoHost ne respondas. Eble 'yunohost-api' estas malaperigita aŭ rekomencita?",
"domain_add_dyndns_doc": "... kaj mi volas dinamikan DNS-servon.",
"footer_version": "Funkciigita de <a href='https://yunohost.org'> YunoHost </a> {version} ({repo}).",
"close": "Proksimaj",
"app_info_change_url_disabled_tooltip": "Ĉi tiu funkcio ankoraŭ ne estis efektivigita en ĉi tiu app",
"confirm_delete": "Ĉu vi certas, ke vi volas forigi {name} ?",
"domain_dns_conf_is_just_a_recommendation": "Ĉi tiu paĝo montras al vi la *rekomenditan* agordon. Ĝi *ne* agordas la DNS por vi. Estas via respondeco agordi vian DNS-zonon en via DNS-registristo laŭ ĉi tiu rekomendo.",
"domain_add_panel_with_domain": "Mi jam havas domajnan nomon…",
"hook_data_home_desc": "Datumoj pri uzanto lokitaj en /home/USER",
"confirm_service_stop": "Ĉu vi certas, ke vi volas ĉesi {name} ?",
"mailbox_quota_placeholder": "Lasu malplenan aŭ agordi al 0 por malaktivigi.",
"domain_default_desc": "La defaŭlta domajno estas la konekta domajno, kie uzantoj ensalutas.",
"domain_dns_longdesc": "Vidu DNS-agordon",
"domain_add_dns_doc": "... kaj mi <a href='//yunohost.org/dns_config' target='_blank'> agordis mian DNS ĝuste </a>.",
"confirm_update_apps": "Ĉu vi certas, ke vi volas ĝisdatigi ĉiujn aplikojn ?",
"confirm_install_custom_app": "AVERTO! Instali aplikojn de tria partio eble kompromitos la integrecon kaj sekurecon de via sistemo. Vi probable ne devas instali ĝin krom se vi scias kion vi faras. Ĉu vi pretas riski tion?",
"add": "Aldoni",
@ -72,7 +69,7 @@
"hook_data_mail": "Poŝto",
"backup_create": "Krei sekurkopion",
"confirm_uninstall": "Ĉu vi certas, ke vi volas malinstali {name} ?",
"confirm_firewall_disallow": "Ĉu vi certas, ke vi volas fermi havenon {port} ? (protokolo: {protocol}, rilato: {connection})",
"confirm_firewall_disallow": "Ĉu vi certas, ke vi volas fermi havenon {port} ? (protokolo: {protocol}, rilato: {connection})",
"created_at": "Kreita ĉe",
"confirm_app_change_url": "Ĉu vi certas, ke vi volas ŝanĝi la URL-aliron de la aplikaĵo?",
"ipv6": "IPv6",
@ -97,7 +94,6 @@
"backup_action": "Rezerva",
"mailbox_quota_description": "Ekzemple, 700M estas KD, 4700M estas DVD.",
"enable": "Ebligi",
"domain_add_panel_without_domain": "Mi ne havas domajnan nomon…",
"backup_content": "Rezerva enhavo",
"backup": "Rezerva",
"domains": "Domajnoj",
@ -175,7 +171,6 @@
"user_mailbox_use": "Poŝtejo uzis spacon",
"only_working_apps": "Nur funkciantaj programoj",
"start": "Komencu",
"myserver": "mia servisto",
"user_emailforward": "Poŝti antaŭen",
"system_upgrade_all_packages_btn": "Ĝisdatigu ĉiujn pakaĵojn",
"migrations_no_done": "Neniuj antaŭaj migradoj",
@ -256,7 +251,7 @@
"pending": "En progreso",
"error": "Malsukcesa"
},
"processing": "La servilo prilaboras la agon..."
"processing": "La servilo prilaboras la agon"
},
"address": {
"local_part_description": {

View file

@ -37,10 +37,6 @@
"disable": "Inhabilitar",
"dns": "DNS",
"domain_add": "Añadir dominio",
"domain_add_dns_doc": "... y tengo <a href='//yunohost.org/dns_config' target='_blank'>mi DNS correctamente configurado</a>.",
"domain_add_dyndns_doc": "…y quiero un servicio de DNS dinámico.",
"domain_add_panel_with_domain": "Ya tengo un nombre de dominio…",
"domain_add_panel_without_domain": "No tengo un nombre de dominio…",
"domain_default_desc": "El dominio predeterminado es el dominio donde los usuarios inician sesión.",
"domain_default_longdesc": "Este es su dominio predeterminado.",
"domain_delete_longdesc": "Eliminar este dominio",
@ -81,7 +77,6 @@
"manage_domains": "Gestión de dominios",
"manage_users": "Gestión de usuarios",
"multi_instance": "Puede instalarse varias veces",
"myserver": "miservidor",
"next": "Próximo",
"no": "No",
"open": "Abierto",
@ -164,7 +159,7 @@
"confirm_install_app_inprogress": "¡AVISO! ¡Esta aplicación es aún experimental (puede que ni funcione) y es probable que rompa su sistema! Seguramente debería NO instalarla salvo que sepa lo que está haciendo. ¿Está dispuesto a correr ese riesgo?",
"error_connection_interrupted": "El servidor cerró la conexión en vez de responder. ¿Ha sido reiniciado o parado nginx o yunohost-api por cualquier motivo?",
"experimental_warning": "Aviso: esta característica es experimental y no se considera estable, no deberías usarla salvo que sepas lo que estás haciendo.",
"good_practices_about_admin_password": "Está a punto de establecer una nueva contraseña de administrador. La contraseña debería de ser de al menos 8 caracteres, aunque es una buena práctica usar una contraseña más larga (es decir, una frase de paso) y/o usar varias clases de caracteres (mayúsculas, minúsculas, dígitos y caracteres especiales).",
"good_practices_about_admin_password": "Ahora está a punto de definir una nueva contraseña de usuario. La contraseña debe tener al menos 8 caracteres, aunque es una buena práctica usar una contraseña más larga (es decir, una frase como contraseña) y/o una variación de caracteres (mayúsculas, minúsculas, dígitos y caracteres especiales).",
"good_practices_about_user_password": "Está a punto de establecer una nueva contraseña de usuario. La contraseña debería de ser de al menos 8 caracteres, aunque es una buena práctica usar una contraseña más larga (es decir, una frase de paso) y/o usar varias clases de caracteres (mayúsculas, minúsculas, dígitos y caracteres especiales).",
"license": "Licencia",
"confirm_update_system": "¿Seguro que quiere actualizar todos los paquetes del sistema?",
@ -285,10 +280,10 @@
"pending": "En progreso",
"error": "No se ha podido realizar"
},
"processing": "El servidor está procesando la acción...",
"partial_logs": "[...] (comprueba el histórico para un log completo)",
"processing": "El servidor está procesando la acción",
"partial_logs": "[…] (comprueba el histórico para unos logs completos)",
"reconnecting": {
"title": "Intentado comunicarse con el servidor...",
"title": "Intentado comunicarse con el servidor",
"failed": "Al parecer el servidor no responde. Puedes intentarlo nuevamente o utilizar el comando `systemctl restart yunohost-api` a través de SSH.",
"reason": {
"unknown": "La conexión con el servidor ha sido cancelada por razones desconocidas.",
@ -312,7 +307,7 @@
"form_errors": {
"domain": "Nombre de dominio inválido: debe ser alfanumérico en minúsculas, solo caracteres de puntos y guiones",
"between": "El valor debe estar entre {min} y {max}.",
"alphalownum_": "El valor debe ser alfanumérico en minúsculas y solo caracteres subrayados.",
"alphalownumdot_": "El valor debe ser alfanumérico en minúsculas y solo caracteres subrayados.",
"alpha": "El valor debe ser solo caracteres alfabéticos.",
"remote": "{message}",
"pattern": "{type}",
@ -349,11 +344,8 @@
"code": "Código",
"app_show_categories": "Mostrar categorías",
"app_install_parameters": "Instalar la configuración",
"app_config_panel_no_panel": "Esta aplicación no tiene ninguna configuración disponible",
"app_config_panel_label": "Configura esta app",
"app_config_panel": "Panel de configuración",
"app_choose_category": "Elige una categoría",
"api_waiting": "Esperando a la respuesta del servidor...",
"api_waiting": "Esperando a la respuesta del servidor…",
"api_not_found": "Parece que la administración web ha intentado buscar algo que no existe.",
"hook_conf_manually_modified_files": "Configuraciones modificadas manualmente",
"hook_data_xmpp": "Datos XMPP",
@ -500,7 +492,7 @@
"manual_config": "Registros DNS recomendados para la configuración manual",
"push": "Publicar registros DNS al registrador",
"push_force": "Sobrescribir registros actuales",
"push_force_confirm": "¿Seguro que quieres forzar la publicación de los registros DNS recomendados? Ten en cuenta que puede sobreescribir registros por defecto o importantes configurados por tu registrador.",
"push_force_confirm": "¿Seguro que quieres forzar la publicación de los registros DNS recomendados? Ten en cuenta que puede sobrescribir registros por defecto o importantes configurados por tu registrador.",
"push_force_warning": "Parece que algunos registros DNS de YunoHost ya se encuentran en la configuración del registrador. Puedes usar la opción sobrescribir si sabes lo que haces.",
"info": "La configuración automática DNS es una función experimental.<br> Plantéate guardar tu zona DNS actual desde la interfaz DNS de tu registrador antes de publicar cambios desde aquí.",
"methods": {
@ -517,23 +509,34 @@
"other": "Otros/Desconocido",
"selfsigned": "autofirmado"
},
"valid_for": "válido durante [días]"
"valid_for": "válido durante {days}"
},
"explain": {
"main_domain": "El dominio principal es el dominio desde el cual lxs usuarixs pueden conectarse al portal (via \"{dominio}/yunohost/sso\"). <br> Por tanto, no es posible borrarlo. <br> Si quieres borrar \"{dominio}\", primero tienes que elegir o añadir otro dominio y configurarlo como dominio principal."
"main_domain": "El dominio principal es el dominio desde el cual lxs usuarixs pueden conectarse al portal (via \"{domain}/yunohost/sso\"). <br> Por tanto, no es posible borrarlo. <br> Si quieres borrar \"{domain}\", primero tienes que elegir o añadir otro dominio y configurarlo como dominio principal."
},
"info": {
"apps_on_domain": "Aplicaciones instaladas en el dominio",
"certificate_authority": "Autoridad certificadora SSL",
"registrar": "Registrador"
"registrar": "Registrador",
"dyn_dns_remove_and_unsubscribe": "También eliminar el dominio del servicio DynDNS de YunoHost"
},
"see_parent_domain": "Ver dominio padre",
"types": {
"main_domain": "Dominio principal"
},
"toggle_subdomains": "Colapsar subdominios"
"toggle_subdomains": "Colapsar subdominios",
"add": {
"from_local_desc": "Si no quieres un nombre de dominio público \"real\", puedes usar cualquiera que termine en <code>.local</code> o <code>.test</code>. Los nombres de dominio que terminan en <code>.local</code> son especiales, en el sentido que podrían ser resueltos automáticamente en una red local, si los clientes soportan del protocolo Bonjour. Otro método es modificar el fichero <code>/etc/hosts</code> (o el equivalente de Windows) en cada cliente desde el que desees acceder a este dominio, o también puedes configurar las entradas DNS locales en tu router de internet.",
"from_yunohost_desc": "El proyecto YunoHost mantiene un servicio 'DynDNS'. Está limitado a un dominio de este tipo por servidor (aunque puedes añadir subdominios más adelante mediante la opción mostrada más arriba 'Añadir un dominio que ya poseo, o un subdominio'). La configuración de DNS será gestionada de manera automática por YunoHost. Esta opción es ideal cuando te estés inciando en \"auto alojar\" un servidor y no quieras invertir en un nombre de dominio por el momento. Sinembargo, a medio/largo plazo, recomendamos que compres tu propio dominio en algún registrador para que tengas un control completo de tu dominio.",
"dyn_dns_password": "Password de recuperación del dominio",
"dyn_dns_password_desc": "Esta password te permitirá más adelante recuperar el control del dominio si reinstalas el sistema. Si ya registraste este dominio anteriormente, utiliza la password de recuperación de dominio para reclamarlo.",
"from_local": "Quiero un dominio para uso local / únicamente de prueba",
"from_registrar": "Quiero añadir un dominio que ya poseo, o un subdominio",
"from_registrar_desc": "Tendrás que configurar manualmente los registros DNS en tu registrador para finalizar la configuración de este dominio. Los diagnósticos de YunoHost te guiarán de manera exácta para configurar los registros DNS.",
"from_yunohost": "No dispongo de un dominio, quiero registrar/usar un dominio gratuito de DynDNS ofrecido por el proyecto YunoHost"
}
},
"domain_dns_push_failed_to_authenticate": "Error de autenticación con la API del registrador. ¿Puede que las <a href='#/domains/{domain}/config'>credenciales</a> no sean correctas? (Error: {error})",
"domain_dns_push_failed_to_authenticate": "No se pudo autenticar en la API del registrador. ¿Es probable que las <a href='#/domains/{domain}/config'>credenciales</a> sean incorrectas? (Error: {error})",
"history": {
"methods": {
"DELETE": "eliminar",
@ -549,7 +552,7 @@
"users_import_csv_file": "Fichero CSV",
"users_import_update": "Actualizar cuentas existentes",
"yunohost_admin": "Administración YunoHost",
"domain_add_dyndns_forbidden": "Ya has suscrito un dominio DynDNS, puedes solicitar eliminarlo desde el foro <a href='//forum.yunohost.org/t/nohost-domain-recovery-suppression-de-domaine-en-nohost-me-noho-st-et-ynh-fr/442'>en el hilo dedicado</a>.",
"domain_add_dyndns_forbidden": "Ya has registrado/suscrito un dominio DynDNS desde el proyecto YunoHost. Por diseño, esta característica se limita a solamente un dominio por servidor. Si desea un subdominio de su dominio ya suscrito, por favor use la opción 'Quiero añadir un dominio que ya poseo, o un subdominio' de arriba. Si desea usar un dominio totalmente distinto, primero debe de remover su dominio DynDNS existente. Los dominios DynDNS son útiles para empezar a autohospedarse, pero al mediano y largo plazo, recomendamos comprar su propio nombre de dominio en un registro para tener plena posesión de su dominio.",
"hook_data_xmpp_desc": "Configuración de salas y cuentas, archivos subidos",
"items_verbose_items_left": "Quedan {items}. | Queda 1 {items}. | Quedan {items}.",
"mailbox_quota_example": "700M es un CD, 4700M es un DVD",
@ -557,7 +560,7 @@
"users_import_confirm_destructive": "¿Seguro que quieres eliminar las cuentas que no se encuentran en este archivo?",
"readme": "Léeme",
"search": {
"for": "Busca {items}...",
"for": "Busca {items}",
"not_found": "Hay {items} coincidencias con tus criterios. | Hay 1 {items} coincidencia con tus criterios. | Hay {items} coincidencias con tus criterios."
},
"unknown": "Desconocido",
@ -597,7 +600,7 @@
"title": "Notificaciones",
"post_upgrade": "Notas tras la actualización",
"post_install": "Notas post-instalación",
"dismiss": "Descartar"
"understood": "Entendido"
},
"admin": {
"title": "Documentación de administración"
@ -605,14 +608,16 @@
},
"info": {
"forum": "¡Busca o pregunta en el foro!",
"problem": "¿Algún problema con esta aplicación?"
"problem": "¿Algún problema con esta aplicación?",
"config_panel_error": "Un error impide mostrar el panel de configuración:",
"config_panel_error_please_report": "Por favor, ¡informa al equipo de YunoHost de este error para que ellos puedan arreglarlo!"
},
"install": {
"license": "Licencia: {license}",
"notifs": {
"post": {
"title": "Notificaciones posteriores a la instalación de '{name}'",
"alert": "Parece que la instalación ha ido bien.\n Aquí tienes algunas notificaciones que el empaquetador considera importante conocer.\nPuedes volver a leerlas en la página de información de la aplicación."
"alert": "Parece que la instalación ha ido bien.\nAquí tienes algunas notificaciones que el empaquetador considera importante conocer.\nPuedes volver a leerlas en la página de información de la aplicación."
},
"pre": {
"warning": "Lo que hay que saber antes de la instalación",
@ -661,7 +666,8 @@
"title": "Enlaces",
"userdoc": "Documentación oficial del usuario",
"website": "Página web oficial",
"license": "Licencia"
"license": "Licencia de la aplicación",
"package_license": "Licencia de paquete YunoHost"
},
"potential_alternative_to": "Alternativa potencial a:",
"upgrade": {
@ -681,6 +687,9 @@
}
},
"stop": "Cancelar las próximas actualizaciones de la aplicación"
},
"uninstall": {
"purge_desc": "Borrar el directorio de información asociada con la app (normalmente se trata de la información subida al utilizar la app)."
}
}
}

View file

@ -23,35 +23,32 @@
"success": "Arrakastaz amaitu da"
},
"processing": "Zerbitzaria eragiketa exekutatzen ari da…",
"partial_logs": "[...] (ikuskatu historia erregistro osoetarako)",
"partial_logs": "[] (ikuskatu historia erregistro osoetarako)",
"reconnecting": {
"title": "Zerbitzariarekin komunikatzeko ahaleginetan…",
"failed": "Badirudi zerbitzaria ez dela erantzuten ari. Berriro saia zaitezke konektatzen ssh bidez `systemctl restart yunohost-api` exekutatuz.",
"failed": "Badirudi zerbitzaria ez dela erantzuten ari. SSH bidez berriro konektatzen saia zaitezke `systemctl restart yunohost-api` exekutatuz.",
"reason": {
"unknown": "Itxi da komunikazioa zerbitzariarekin, ez da zergatia ezagutzen.",
"reboot": "Zerbitzaria berrabiarazten ari da eta ez da erabilgarri egongo tarte batez. Saioa hasteko galdegingo zaizu zerbitzaria berriro ere erabilgarri dagoenean.",
"shutdown": "Zerbitzari itzaltzen ari da eta aurrerantzean ez da erabilgarri egongo. Piztu ezazu berriro eta saioa hasteko galdegingo zaizu zerbitzaria berriro erabilgarri dagoenean.",
"upgrade_system": "Zerbitzariarekin konexioa moztu da YunoHost eguneratzen ari delako. Zerbitzaria berriro erabilgarri egoteko zain…"
"upgrade_system": "Zerbitzariarekin konexioa eten da YunoHost eguneratzen ari delako. Zerbitzaria berriro erabilgarri noiz egongo zain…"
},
"success": "Zerbitzaria erabilgarri dago! Saioa hasten saia zaitezke"
}
},
"api_error": {
"view_error": "Ikusi errorea",
"error_message": "Errore mezua:",
"error_message": "Errore-mezua:",
"server_said": "Eragiketa exekutatzean zera adierazi du zerbitzariak:",
"help": "Laguntza eskatu beharko zenuke <a href=\"https://forum.yunohost.org/\">foroan</a> edo <a href=\"https://chat.yunohost.org/\">txat gelan</a> egoera hau konpontzeko, edo errore honen berri eman <a href=\"https://github.com/YunoHost/issues\">bugtracker</a> plataforman.",
"info": "Ondorengo informazioa baliagarria izan dakioke laguntza ematen ari zaionari:",
"sorry": "Barkatu."
},
"api_waiting": "Zerbitzariaren zain…",
"app_config_panel": "Ezarpenak",
"app_config_panel_label": "Konfiguratu aplikazioa",
"api_waiting": "Zerbitzariaren erantzunaren zain…",
"all": "Guztia",
"api_not_found": "Badirudi administrazio-webgunea existitzen ez den zerbait bilatzen saiatu dela.",
"api_not_found": "Badirudi administrazio-gunea existitzen ez den zerbait bilatzen saiatu dela.",
"api_not_responding": "YunoHosten APIa ez da erantzuten ari. Agian 'yunohost-api' ez dago martxan edo berrabiarazi da.",
"app_choose_category": "Aukeratu kategoria",
"app_config_panel_no_panel": "Aplikazio honek ez du inolako konfigurazio ezarpenik",
"api_errors_titles": {
"APINotFoundError": "YunoHosten APIak ezin izan du bidea aurkitu",
"APINotRespondingError": "YunoHosten APIa ez da erantzuten ari",
@ -79,24 +76,24 @@
"domain": "Arazoa domeinu izenarekin: zenbakiak, hizki txikiak, puntuak eta gidoiak bakarrik erabili daitezke",
"dynDomain": "Arazoa domeinu izenarekin: zenbakiak, hizki txikiak eta gidoiak bakarrik erabil daitezke",
"emailForward": "Arazoa posta elektronikoaren birbidalketarekin: zenbakiak, hizkiak eta <code>_.-+</code> bakarrik erabil daitezke (esaterako izena+etiketa@adibidea.eus, iz3na-1+etiketa@adibidea.eus)",
"maxValue": "Zenbakia {max} edo {max} baino txikiagoa izan behar da.",
"maxValue": "Zenbakia {max} edo txikiagoa izan behar da.",
"passwordLenght": "Pasahitzak 8 karaktere izan behar ditu gutxienez.",
"between": "{min} eta {max} artean egon behar da.",
"email": "Arazoa posta elektronikoarekin: zenbakiak, hizkiak eta <code>_.-</code> bakarrik erabili daitezke (esaterako izena@adibidea.eus, iz3na-1@adibidea.eus)",
"minValue": "Zenbakia {min} edo {min} baino handiagoa izan behar da.",
"minValue": "Zenbakia {min} edo handiagoa izan behar da.",
"notInUsers": "Badago '{value}' izena duen erabiltzailea dagoeneko.",
"number": "Balioa zenbaki bat izan behar da.",
"alpha": "Hizkiak bakarrik izan daitezke.",
"alphalownum_": "Zenbakiak, hizki txikiak eta azpiko marra bakarrik erabili daitezke.",
"alphalownumdot_": "Zenbakiak, hizki txikiak eta azpiko marra bakarrik erabili daitezke.",
"name": "Izenek ezin dituzte <code> ,.'-</code> ez diren karaktere bereziak eduki",
"appRepoUrl": "YunoHosten aplikazioen biltegirako URLek honako itxura daukate: https://domain.tld/path/to/repo_ynh"
"appRepoUrl": "YunoHosten aplikazio-gordailuko URLek honako itxura daukate: https://domain.tld/path/to/repo_ynh"
},
"items": {
"backups": "babeskopia bat ere ez | babeskopia | {c} babeskopia",
"domains": "domeinu bat ere ez | domeinua | {c} domeinua",
"apps": "aplikazio bat ere ez | aplikazioa | {c} aplikazioa",
"groups": "talderik ez | taldea | {c} talde",
"installed_apps": "instalatutako aplikazio bat ere ez | instalatutako aplikazioa | {c} instalatutako aplikazioa",
"installed_apps": "ez dago aplikaziorik instalatuta | instalatutako aplikazioa | {c} aplikazio instalatuta",
"services": "zerbitzu bat ere ez | zerbitzua | {c} zerbitzua",
"users": "erabiltzaile bat ere ez | erabiltzailea | {c} erabiltzailea",
"logs": "erregistro bat ere ez | erregistroa | {c} erregistroa",
@ -117,7 +114,7 @@
"lastname": "Abizena",
"firstname": "Izena"
},
"confirm_upnp_enable": "Ziur al zaude UPnP gaitu nahi duzula?",
"confirm_upnp_enable": "Ziur UPnP gaitu nahi duzula?",
"group": "Taldea",
"group_name": "Taldearen izena",
"group_all_users": "Erabiltzaile guztiak",
@ -135,7 +132,7 @@
"infos": "Informazioa",
"archive_empty": "Artxiboa hutsik dago",
"backup": "Babeskopiak",
"confirm_upnp_disable": "Ziur al zaude UPnP desgaitu nahi duzula?",
"confirm_upnp_disable": "Ziur UPnP desgaitu nahi duzula?",
"delete": "Ezabatu",
"domains": "Domeinuak",
"hook_data_mail": "Posta",
@ -162,7 +159,7 @@
"push_force_warning": "Badirudi YunoHost ezartzera zihoan DNS balio batzuk dagoeneko konfiguratuta daudela erregistro-enpresaren ezarpenetan. Ordezkatzeko aukera erabili dezakezu zertan ari zaren baldin badakizu.",
"auto_config": "DNS erregistroen konfigurazio automatikoa",
"auto_config_ok": "Konfigurazio automatikoa zuzena dela dirudi!",
"push_force_confirm": "Ziur al zaude proposatutako DNS balioak bidali nahi dituzula? Kontuan izan honek erregistro-enpresak ezarritako balioak edota bestelako balioak ordezkatu ditzakeela.",
"push_force_confirm": "Ziur proposatutako DNS balioak bidali nahi dituzula? Kontuan izan honek erregistro-enpresak ezarritako balioak edota bestelako balioak ordezkatu ditzakeela.",
"auto_config_ignored": "Ez da kontuan hartu, YunoHostek ez du aldatuko gainean idazteko aukera sakatzen ez baduzu",
"methods": {
"auto": "Automatikoa",
@ -186,46 +183,56 @@
"info": {
"apps_on_domain": "Domeinuan instalatutako aplikazioak",
"certificate_authority": "SSL ziurtagiri jaulkitzailea",
"registrar": "Erregistro-enpresa"
"registrar": "Erregistro-enpresa",
"dyn_dns_remove_and_unsubscribe": "Eta utzi YunoHosten DynDNS zerbitzuan domeinua erregistratzeari"
},
"see_parent_domain": "Ikus domeinu nagusia",
"types": {
"main_domain": "Domeinu nagusia"
},
"toggle_subdomains": "Ikusi / Ezkutatu azpi-domeinuak"
"toggle_subdomains": "Ikusi / Ezkutatu azpi-domeinuak",
"add": {
"from_local_desc": "Ez baduzu \"benetako\" domeinu publiko bat nahi, <code>.local</code> edo <code>.test</code> amaiera duen edozein domeinu erabil dezakezu. <code>.local</code> amaiera duten domeinuak bereziak dira: sare lokalak kudeatzen ditu (gailuek Bonjour protokoloa badarabilte). Beste aukera bat gailu bakoitzeko <code>/etc/hosts</code> fitxategia (edo Windows-en baliokide dena) moldatzea da, edo routerrean DNS sarrerak konfiguratzea.",
"from_yunohost_desc": "YunoHost proiektuak doako 'DynDNS' zerbitzu bat eskaintzen du. Zerbitzari bakoitzak mota honetako domeinu bakarra izan dezake (geroago azpidomeinu gehiago gehitu ditzakezu, 'Lehendik dudan domeinu edo azpidomeinu bat gehitu nahi dut' aukera erabiliz). DNS ezarpenak automatikoki kudeatuko ditu YunoHostek. Ideala da, orokorrean, norbera ostatatzen hasten denean eta oraindik domeinu bat erosteko prest ez dagoenarentzat. Hala ere, epe-ertain/luzean, domeinu propioa erostea gomendatzen dizugu, domeinuaren jabetza osoa izan dezazun.",
"dyn_dns_password": "Domeinuaren berreskuratze-pasahitza",
"dyn_dns_password_desc": "Pasahitz honek domeinuaren kontrola berreskuratzea ahalbidetuko dizu sistema berriz instalatzen baduzu. Domeinu hau aurretik ere erregistratu bazenuen, erabili berreskuratze-pasahitza hemen.",
"from_local": "Lokalean erabiltzeko / probak egiteko domeinu bat nahi dut",
"from_registrar": "Lehendik dudan domeinu edo azpidomeinu bat gehitu nahi dut",
"from_registrar_desc": "Domeinuaren erregistro enpresan DNS balioak eskuz ezarri beharko dituzu konfigurazioa amaitzeko. YunoHosten diagnostikoak zein balio ezarri behar dituzun zehaztuko dizkizu.",
"from_yunohost": "Ez daukat domeinurik, YunoHost proiektuak doan eskainitako DynDNS domeinu bat erregistratu/erabili nahi dut"
}
},
"domain_add_dyndns_forbidden": "DynDNS domeinu batean eman duzu izena dagoeneko, oraingo DynDNS domeinua ezabatu nahi baduzu foroan adierazi dezakezu, <a href='//forum.yunohost.org/t/nohost-domain-recovery-suppression-de-domaine-en-nohost-me-noho-st-et-ynh-fr/442'>horretarako sortutako harian</a>.",
"domain_add_dyndns_forbidden": "YunoHost proiektuaren DynDNS domeinu bat erregistratu duzu lehendik ere. Mota honetako domeinu bakarrera mugatuta dago zerbitzari bakoitza. Lehendik duzun domeinuaren azpidomeinu bat gehitu nahi baduzu, erabili 'Lehendik dudan domeinu edo azpidomeinu bat gehitu nahi dut' aukera. Beste domeinu bat erabili nahi izanez gero, unean darabilzun DynDNS domeinua kendu beharko duzu. DynDNS domeinuak idealak dira norbera ostatatzen hasten denean, baina epe-ertain/luzean domeinu propioa erostea gomendatzen dizugu, domeinuaren jabetza osoa izan dezazun.",
"download": "Deskargatu",
"ipv6": "IPv6",
"app_install_parameters": "Instalazio-ezarpenak",
"confirm_service_stop": "Ziur al zaude {name} geldiarazi nahi duzula?",
"confirm_service_stop": "Ziur {name} geldiarazi nahi duzula?",
"app_state_lowquality_explanation": "Litekeena da aplikazio hau erabili ahal izatea baina erroreak izan ditzake, edo ez dago erabat YunoHostera egina, edo ez ditu jardunbideak errespetatzen.",
"app_state_highquality_explanation": "Aplikazio hau YunoHostera egoki egina dago gutxienez duela urtebetetik.",
"backup_new": "Babeskopia berria",
"confirm_delete": "Ziur al zaude {name} ezabatu nahi duzula?",
"confirm_firewall_allow": "Ziur al zaude {port} (protokoloa: {protocol}, konexioa: {connection}) ataka ireki nahi duzula?",
"confirm_delete": "Ziur {name} ezabatu nahi duzula?",
"confirm_firewall_allow": "Ziur {port} ataka ireki nahi duzula? (protokoloa: {protocol}, konexioa: {connection})",
"description": "Azalpena",
"group_new": "Talde berria",
"confirm_firewall_disallow": "Ziur al zaude {port} (protokoloa: {protocol}, konexioa: {connection}) ataka ixti nahi duzula?",
"confirm_firewall_disallow": "Ziur {port} ataka itxi nahi duzula? (protokoloa: {protocol}, konexioa: {connection})",
"diagnosis": "Diagnostikoak",
"confirm_service_restart": "Ziur al zaude {name} berrabiarazi nahi duzula?",
"confirm_reboot_action_shutdown": "Ziur al zaude zerbitzaria itzali nahi duzula?",
"confirm_service_restart": "Ziur {name} berrabiarazi nahi duzula?",
"confirm_reboot_action_shutdown": "Ziur zerbitzaria itzali nahi duzula?",
"connection": "Konexioa",
"diagnosis_first_run": "Diagnostikoa ohiko arazoak identifikatzen saiatuko da zerbitzaria ahalik eta hoberen ibili dadin. Ez larritu erroreak ikusten badituzu zerbitzaria konfiguratu eta berehala: horretarako dago pentsatuta zehazki, arazoak identifikatu eta konpontzen laguntzeko. Zerbitzariak egunean birritan egingo du diagnostikoa automatikoki eta administratzaileak aurkitutako arazoekin posta elektroniko bat jasoko du.",
"diagnosis_first_run": "Diagnostikoa ohiko arazoak identifikatzen saiatuko da zerbitzaria ahalik eta hoberen ibili dadin. Ez larritu erroreak ikusten badituzu zerbitzaria konfiguratu eta berehala: horretarako dago pentsatuta zehazki, arazoak identifikatu eta konpontzen laguntzeko. Zerbitzariak egunean birritan egingo du diagnostikoa automatikoki eta administratzaileak posta elektroniko bat jasoko du aurkitutako arazoekin.",
"domain_dns_config": "DNS ezarpenak",
"diagnosis_explanation": "Diagnostikoa ohiko arazoak identifikatzen saiatuko da zerbitzaria ahalik eta hoberen ibili dadin. Egunean birritan egingo du zerbitzariak eginkizun hau eta posta elektronikoa bidaliko dio administrariari arazoren bat ikusiz gero. Litekeena da emaitza batzuek garrantzirik ez izatea ezaugarri batzuk erabili nahi ez badira (XMPP adibidez) edo kale egin dezake zerbitzariaren konfigurazioa konplexua bada. Horrelako kasuetan, eta zertan ari zaren baldin badakizu, ez dago arazorik abisu edo jakinarazpenei muzin egiteko.",
"domain_add_dns_doc": "…eta ezarritako <a href='//yunohost.org/dns_config' target='_blank'>DNS balioak zuzenak</a> dira.",
"diagnosis_explanation": "Diagnostikoa ohiko arazoak identifikatzen saiatuko da zerbitzaria ahalik eta hoberen ibili dadin. Egunean birritan egingo du zerbitzariak eginkizun hau eta posta elektronikoa bidaliko dio administratzaileari arazoren bat ikusiz gero. Litekeena da emaitza batzuek garrantzirik ez izatea ezaugarri batzuk erabili nahi ez badira (XMPP adibidez) edo kale egin dezake zerbitzariaren konfigurazioa konplexua bada. Horrelako kasuetan, eta zertan ari zaren baldin badakizu, ez dago arazorik abisu edo jakinarazpenei muzin egiteko.",
"domain_default_desc": "Erabiltzaileek lehenetsitako domeinua erabiliko dute saioa hasteko.",
"domain_delete_forbidden_desc": "Ezinezkoa da '{domain}' ezabatzea lehenetsitako domeinua delako. Aukeratu beste domeinu bat (edo <a href='#/domains/add'>gehitu berri bat</a>) eta lehenetsi oraingo domeinua kendu ahal izateko.",
"domain_dns_push_managed_in_parent_domain": "DNS ezarpen automatikoen funtzioa <a href='#/domains/{parent_domain}/dns'>{parent_domain}</a> domeinu nagusiak kudeatzen du.",
"footer": {
"documentation": "Dokumentazioa",
"help": "Laguntza behar al duzu?",
"donate": "Dohaintza egin"
"donate": "Egin dohaintza"
},
"hook_data_home_desc": "Erabiltzaile-datuak /home/ERABILTZAILEA katalogoan daude",
"installed": "Instalatuta",
"from_to": "{0}tik {1}era",
"from_to": "{0}(e)tik {1}(e)ra",
"good_practices_about_admin_password": "Administrazio-pasahitz berri bat ezartzear zaude. Pasahitzak 8 karaktere izan beharko lituzke gutxienez, baina ondo legoke pasahitz luzeagoa erabiltzea (esaldi bat, esaterako) edota karaktere desberdinak gehitzea (hizki larriak, txikiak, zenbakiak eta karaktere bereziak).",
"good_practices_about_user_password": "Erabiltzaile-pasahitz berri bat ezartzear zaude. Pasahitzak 8 karaktere izan beharko lituzke gutxienez, baina ondo legoke pasahitz luzeagoa erabiltzea (esaldi bat, esaterako) edota karaktere desberdinak gehitzea (hizki larriak, txikiak, zenbakiak eta karaktere bereziak).",
"hook_adminjs_group_configuration": "Sistemaren ezarpenak",
@ -235,9 +242,9 @@
"begin": "Hasi",
"disabled": "Desgaituta",
"both": "Biak",
"confirm_update_system": "Ziur al zaude sistemaren pakete guztiak eguneratu nahi dituzula?",
"confirm_update_system": "Ziur sistemaren pakete guztiak eguneratu nahi dituzula?",
"app_state_inprogress_explanation": "Aplikazio honen arduradunak adierazi du aplikazioa ez dagoela oraindik ekoizpenerako prest. KONTUZ!",
"confirm_app_change_url": "Ziur al zaude aplikazioaren URLa aldatu nahi duzula?",
"confirm_app_change_url": "Ziur aplikazioaren URLa aldatu nahi duzula?",
"domain_dns_push_failed_to_authenticate": "Ezinezkoa izan da erregistro-enpresaren APIa erabiliz saioa hastea. Ziurrenik <a href='#/domains/{domain}/config'>datuak</a> ez dira zuzenak. (Errorea: {error})",
"domain_dns_push_not_applicable": "DNS ezarpenen funtzio automatikoa ezin da {domain} domeinuarekin erabili.<br>Eskuz konfiguratu beharko dituzu DNS ezarpenak <a href='https://yunohost.org/dns'>dokumentazioa</a>ri jarraituz eta ondoren proposatutako balioei erreparatuz.",
"enable": "Gaitu",
@ -246,7 +253,7 @@
"group_specific_permissions": "Erabiltzaile bakoitzaren baimenak",
"group_add_member": "Gehitu erabiltzailea",
"group_explain_all_users": "Zerbitzari honetan dauden erabiltzaile guztiak barne dituen talde berezia da",
"app_manage_label_and_tiles": "Kudeatu etiketak eta 'tile' delakoak",
"app_manage_label_and_tiles": "Kudeatu etiketak eta lauzak",
"group_add_permission": "Gehitu baimena",
"group_explain_visitors": "Saiorik hasi ez duten bisitariak barne hartzen dituen talde berezia da",
"groups_and_permissions_manage": "Kudeatu talde eta baimenak",
@ -259,25 +266,22 @@
"backup_create": "Egin babeskopia",
"cancel": "Utzi",
"check": "Egiaztatu",
"confirm_app_default": "Ziur al zaude aplikazio hau lehenetsi nahi duzula?",
"confirm_change_maindomain": "Ziur al zaude domeinu nagusia aldatu nahi duzula?",
"confirm_install_custom_app": "KONTUZ! Kanpoko aplikazioak instalatzeak sistemaren integritate eta segurtasun arriskuak ekar ditzake. Ez badakizu zertan ari zaren, EZ instalatu. Ziur al zaude zerbitzaria arriskuan jarri nahi duzula?",
"confirm_install_domain_root": "Ziur al zaude aplikazio hau '/'-n instalatu nahi duzula? Ezingo duzu bestelako aplikaziorik instalatu {domain} domeinuan",
"confirm_migrations_skip": "Ez da gomendatzen migrazioak saihestea. Ziur al zaude saihestu nahi dituzula?",
"confirm_app_default": "Ziur aplikazio hau lehenetsi nahi duzula?",
"confirm_change_maindomain": "Ziur domeinu nagusia aldatu nahi duzula?",
"confirm_install_custom_app": "KONTUZ! Kanpoko aplikazioak instalatzeak sistemaren integritate eta segurtasun arriskuak ekar ditzake. Ez badakizu zertan ari zaren, EZ instalatu. Ziur zerbitzaria arriskuan jarri nahi duzula?",
"confirm_install_domain_root": "Ziur aplikazioa '/'-n instalatu nahi duzula? Ezingo duzu bestelako aplikaziorik instalatu {domain} domeinuan",
"confirm_migrations_skip": "Ez da gomendatzen migrazioak saihestea. Ziur saihestu nahi dituzula?",
"confirm_postinstall": "{domain} domeinurako instalazio-prozedura hastear zaude. Litekeena da minutu batzuk irautea, *ez geldiarazi prozesua*.",
"confirm_restore": "Ziur al zaude {name} lehengoratu nahi duzula?",
"confirm_service_start": "Ziur al zaude {name} abiarazi nahi duzula?",
"confirm_uninstall": "Ziur al zaude {name} desinstalatu nahi duzula?",
"confirm_update_apps": "Ziur al zaude aplikazio guztiak eguneratu nahi dituzula?",
"confirm_update_specific_app": "Ziur al zaude {app} eguneratu nahi duzula?",
"confirm_reboot_action_reboot": "Ziur al zaude zerbitzaria berrabiarazi nahi duzula?",
"created_at": "Sortze data:",
"confirm_restore": "Ziur {name} lehengoratu nahi duzula?",
"confirm_service_start": "Ziur {name} abiarazi nahi duzula?",
"confirm_uninstall": "Ziur {name} desinstalatu nahi duzula?",
"confirm_update_apps": "Ziur aplikazio guztiak eguneratu nahi dituzula?",
"confirm_update_specific_app": "Ziur {app} eguneratu nahi duzula?",
"confirm_reboot_action_reboot": "Ziur zerbitzaria berrabiarazi nahi duzula?",
"created_at": "Sortze-data",
"custom_app_install": "Instalatu norberaren aplikazioa",
"domain_dns_conf_is_just_a_recommendation": "Atal honetan *iradokitutako* ezarpenak agertzen dira. *Ez* du DNSa zure ordez konfiguratuko. Zure ardura da DNS guneak zure DNS erregistro-enpresaren gomendioen arabera ezartzea.",
"disable": "Desgaitu",
"domain_add_dyndns_doc": "…eta DNS dinamiko zerbitzua nahi dut.",
"domain_add_panel_with_domain": "Badaukat domeinu bat dagoeneko…",
"domain_add_panel_without_domain": "Ez daukat domeinurik…",
"domain_default_longdesc": "Hau da lehenetsitako domeinua.",
"domain_delete_longdesc": "Ezabatu domeinua",
"domain_dns_longdesc": "Aztertu DNS ezarpenak",
@ -298,15 +302,15 @@
"install": "Instalatu",
"ipv4": "IPv4",
"items_verbose_items_left": "{items} falta dira. | {items} bat falta da. | {items} falta dira.",
"confirm_group_add_access_permission": "Ziur al zaude {name}(r)i {perm} baimena eman nahi diozula? Erasoak biderkatu litezke baimen horri esker {name} pertsona maltzurra baldin bada. Soilik baimena eman pertsona edo talde honetaz fio bazara.",
"confirm_app_install": "Ziur al zaude aplikazio hau instalatu nahi duzula?",
"confirm_group_add_access_permission": "Ziur {name}(r)i {perm} baimena eman nahi diozula? Erasoak biderkatu litezke baimen horri esker {name} pertsona maltzurra baldin bada. Soilik baimena eman pertsona edo talde honetaz fio bazara.",
"confirm_app_install": "Ziur aplikazio hau instalatu nahi duzula?",
"confirm_install_app_lowquality": "Adi: litekeena da aplikazio honek funtzionatzea baina ez dago YunoHostera ondo egina. Aukera batzuk, SSO kasu edota babeskopia egin eta lehengoratzea, agian ez daude erabilgarri.",
"confirm_install_app_inprogress": "KONTUZ! Aplikazio hau saiakera bat da (edo ez dabil) eta litekeena da sistema kaltetzea! Ez badakizu zertan zabiltzan ez zenuke instalatu beharko. Ziur al zaude zerbitzaria arriskuan jarri nahi duzula?",
"confirm_install_app_inprogress": "KONTUZ! Aplikazio hau saiakera bat da (edo ez dabil) eta litekeena da sistema kaltetzea! Ez badakizu zertan zabiltzan ez zenuke instalatu beharko. Ziur zerbitzaria arriskuan jarri nahi duzula?",
"day_validity": " Iraungita | egun 1 | {count} egun",
"dead": "Ez dago aktibo",
"experimental": "Esperimentala",
"go_back": "Joan atzera",
"items_verbose_count": "{items} dago | {items} bat dago | {itmes} daude.",
"items_verbose_count": "{items} dago | {items} bat dago | {items} daude.",
"local_archives": "Artxibo lokalak",
"logs": "Erregistroak",
"logs_started_at": "Hasiera",
@ -341,7 +345,7 @@
"change_url": "Aldatu '{name}'(r)en URLa",
"change_label": "'{prevName}' '{nextName}'(r)ekin aldatu",
"action_config": "Exekutatu '{name}' aplikazioaren '{action}' ekintza ezarpenetan",
"dismiss_notification": "Baztertu '{name}' aplikazioaren jakinarazpenak"
"dismiss_notification": "Baztertu '{name}' aplikazioaren jakinarazpena"
},
"domains": {
"add": "Gehitu '{name}' domeinua",
@ -403,11 +407,11 @@
"placeholder": {
"domain": "nire-domeinua.eus",
"file": "Arakatu edo ekarri fitxategia leihora",
"username": "lur_axpe",
"username": "ziripot",
"firstname": "Lur",
"lastname": "Axpe",
"groupname": "Nire taldearen izena",
"fullname": "Jon Zaharra"
"fullname": "Lur Axpe"
},
"logs_suboperations": "Azpi-eragiketak",
"logs_access": "Baimendutakoen eta debekatutakoen zerrenda",
@ -418,14 +422,14 @@
"migrations_no_pending": "Ez dago egiteko migraziorik",
"password_confirmation": "Berridatzi pasahitza",
"logs_history": "Sisteman exekutatutako komandoen historia",
"permission_show_tile_enabled": "Erabiltzaile-atarian \"tile\" moduan ikusgai",
"permission_show_tile_enabled": "Erabiltzaileen atarian lauza moduan ikusgai",
"ports": "Atakak",
"postinstall": {
"force": "Abiarazi instalazio ondorengo prozesua",
"title": "Instalazio ondorengo prozesua",
"user": {
"title": "Sortu lehenengo administratzaile erabiltzailea",
"first_user_help": "Erabiltzaile honi administrazio ahalmenak esleituko zaizkio eta administrazio webgunea eta SSH konexioa erabiltzeko aukera izango du.\nErabiltzaile arrunta denez, erabiltzaileen ataria (SSO) erabiltzeko aukera ere izango du.\nInstalazio ondorengo prozesuek amaitzen dutenean, administratzaile gehiago sor ditzakezu 'admins' taldera gehituz."
"first_user_help": "Erabiltzaile honi administrazio-ahalmenak esleituko zaizkio eta administrazio-gunea eta SSH konexioa erabiltzeko aukera izango du.\nErabiltzaile arrunta denez, erabiltzaileen ataria (SSO) erabiltzeko aukera ere izango du.\nInstalazio ondorengo prozesuek amaitzen dutenean, administratzaile gehiago sor ditzakezu 'admins' taldera gehituz."
}
},
"postinstall_set_domain": "Aukeratu domeinu nagusia",
@ -447,7 +451,6 @@
"migrations_pending": "Migratzeke",
"migrations_done": "Lehenagoko migrazioak",
"multi_instance": "Behin baino gehiagotan instala daiteke",
"myserver": "nirezerbitzaria",
"next": "Hurrengoa",
"only_working_apps": "Erdipurdi dabiltzan aplikazioak soilik",
"open": "Ireki",
@ -462,7 +465,7 @@
"logs_ended_at": "Amaiera",
"logs_more": "Erakutsi lerro gehiago",
"postinstall_intro_1": "Bejon deizula! YunoHost arazorik gabe instalatu da.",
"postinstall_intro_3": "Argibide gehiago lor ditzakezu <a href='//yunohost.org/en/install/hardware:vps_debian#fa-cog-proceed-with-the-initial-configuration' target='_blank'>dokumentazio gunea</a> bisitatuz.",
"postinstall_intro_3": "Argibide gehiago lor ditzakezu <a href='//yunohost.org/en/install/hardware:vps_debian#fa-cog-proceed-with-the-initial-configuration' target='_blank'>dokumentazio gunea</a> bisitatuz",
"postinstall_intro_2": "Bi urrats gehiago behar dira zerbitzariko zerbitzuak gaitzeko.",
"mailbox_quota_example": "CD bat 700M dira, DVD bat 4700M",
"mailbox_quota_placeholder": "0 ezarriz gero ez da mugarik egongo.",
@ -486,11 +489,11 @@
"fallback_language": "Bigarren hizkuntza",
"fallback_language_description": "Hizkuntza lehenetsian mezuren bat itzulita ez badago, bigarren hizkuntzan erakutsiko da.",
"cache": "Katxea",
"cache_description": "Agian katxea desgaitu beharko zenuke administrazio-webgunea erabiltzeaz gain terminalarekin jardungo baduzu.",
"cache_description": "Agian katxea desgaitu beharko zenuke administrazio-gunea erabiltzeaz gain terminalarekin jardungo baduzu.",
"experimental": "Modu esperimentala",
"experimental_description": "Funtzio esperimentalei atea irekitzen die. Ezegonkorrak dira eta sistema kaltetu dezake.<br>Zertan ari zaren badakizu soilik gaitu aukera hau.",
"transitions": "Orrialdeen transtsizioetarako animazioak",
"theme": "Piztu / Itzali itzura iluna"
"theme": "Piztu / Itzali itxura iluna"
},
"users_import_delete_desc": "Aukeratuz gero, CSV fitxategian ageri ez diren erabiltzaile guztiak ezabatuko dira (baita sistematik ere).",
"version": "Bertsioa",
@ -543,7 +546,7 @@
"yes": "Bai",
"running": "Exekutatzen",
"search": {
"for": "Bilatu {items}",
"for": "Bilatu {items}",
"not_found": "Zuk zehaztutako baldintzak betetzen dituzten {items} aurkitu dira. | Zuk zehaztutako baldintzak betetzen dituen {items} bat aurkitu da. | Zuk zehaztutako baldintzak betetzen dituzten {items} aurkitu dira."
},
"traceback": "Atzera egin (traceback)",
@ -553,19 +556,19 @@
"users_export": "Esportatu erabiltzaileak",
"users_import_csv_file": "CSV fitxategia",
"users_import_update": "Eguneratu existitzen diren erabiltzaileak",
"tip_about_user_email": "Erabiltzaileak sortzerakoan postarako helbide elektroniko bat (eta XMPP kontu bat) esleitzen zaie erabiltzailea@domeinua.eus itxurarekin. Administrari eta erabiltzaileek helbide elektroniko gehiago eta birbidalketarako helbideak gehitu ditzakete geroago.",
"tools_webadmin_settings": "Administrazio-webgunearen ezarpenak",
"tip_about_user_email": "Erabiltzaileak sortzerakoan ePosta helbide bat (eta XMPP kontu bat) esleitzen zaie erabiltzailea@domeinua.eus itxurarekin. Administratzaile eta erabiltzaileek helbide elektroniko gehiago eta birbidalketarako helbideak gehitu ditzakete geroago.",
"tools_webadmin_settings": "Administrazio-gunearen ezarpenak",
"user_mailbox_use": "Posta elektronikorako erabilitako espazioa",
"users_new": "Erabiltzaile berria",
"users_import_csv_file_desc": "CSV fitxategia UTF-8 izan beharko litzateke eta zutabe hauek izan: erabiltzaile izena, pasahitza, taldeak, posta elektronikoa eta espazio kuota. Adibidez <a href='/yunohost/api/users/export' target='_BLANK'>erabiltzaileen CSV fitxategia</a> esporta dezakezu eta fitxategia moldatu.",
"users_import_update_desc": "Aukeratuz gero, CSV fitxategian dauden erabiltzaile guztiak eguneratuko dira ezarpen berriarekin",
"users_import_confirm_destructive": "Ziur al zaude fitxategi honetan ez dauden erabiltzaileak ezabatu nahi dituzula?",
"users_import_confirm_destructive": "Ziur fitxategi honetan ez dauden erabiltzaileak ezabatu nahi dituzula?",
"users_import_delete_others": "Ezabatu zerrendan ageri ez diren erabiltzaileak",
"warnings": "{count} jakinarazpen",
"yunohost_admin": "YunoHosten administratzailea",
"skip": "Gerorako utzi",
"stop": "Geldiarazi",
"user_interface_link": "Erabiltzaile-ataria",
"user_interface_link": "Erabiltzaileen ataria",
"user_username_edit": "Aldatu {name}(r)en kontua",
"text_selection_is_disabled": "Ezinezkoa da testua hautatzea. Erregistroa partekatu nahi baduzu, erregistro *osoa* partekatu 'Partekatu Yunopastekin' botoiaren bidez.<br/><small>Edo testua hautatu nahi baduzu, sakatu tekla hauek: ↓↓↑↑. </small>",
"certificate_manage": "Kudeatu SSL ziurtagiria",
@ -583,10 +586,10 @@
"manage_groups": "Kudeatu taldeak",
"tools_yunohost_settings": "YunoHosten ezarpenak",
"wrong_password_or_username": "Pasahitz edo erabiltzaile-izen okerra",
"important_yunohost_upgrade": "YunoHosten bertsio nagusi bat dago eskuragai. Zinez gomendagarria da eguneraketaren oharrak arretaz irakurtzea foroan bertsio-berritu baino lehen: <a href='https://forum.yunohost.org/tag/ynh_release'>Irakurri oharrak foroan</a>.",
"important_yunohost_upgrade": "YunoHosten bertsio nagusi bat dago eskuragai. Zinez gomendagarria da eguneraketaren oharrak arretaz irakurtzea foroan bertsio-berritu baino lehen: <a href='https://forum.yunohost.org/tag/ynh_release'>Irakurri oharrak foroan</a>",
"app": {
"installed_version": "Instalatutako bertsioa:",
"open_this_app": "Ireki aplikazio hau",
"open_this_app": "Ireki aplikazioa",
"antifeatures": "Aplikazio honek gogoko izan ez ditzakezun ezaugarriak ditu:",
"doc": {
"about": {
@ -594,25 +597,27 @@
"description": "Deskribapena"
},
"admin": {
"title": "Dokumentazioa"
"title": "Administratzaile dokumentazioa"
},
"notifications": {
"dismiss": "Baztertu",
"title": "Jakinarazpenak",
"post_upgrade": "Berritu ondorengo oharrak",
"post_install": "Instalatu ondorengo oharrak"
"post_install": "Instalatu ondorengo oharrak",
"understood": "Ulertuta"
}
},
"info": {
"forum": "Bilatu edo galdetu foroan!",
"problem": "Arazoren bat aplikazio honekin?"
"problem": "Arazoren bat aplikazio honekin?",
"config_panel_error": "Errore batek ezarpen arbela erakustea galarazten du:",
"config_panel_error_please_report": "Eman errore honen berri YunoHost taldeari zuzen dezaten!"
},
"install": {
"license": "Lizentzia: {license}",
"notifs": {
"post": {
"title": "Instalatu ondorengo jakinarazpenak '{name}'(r)entzat",
"alert": "Badirudi instalazioa behar bezala joan dela! \n Paketearen arduradunak ondorengo jakinarazpenak garrantzitsuak direla deritzo. \nAplikazioaren informazio-orrialdean irakur dezakezu berriro."
"title": "'{name}' instalatu ondorengo jakinarazpenak",
"alert": "Badirudi instalazioa behar bezala gauzatu dela!\nPaketearen arduradunak ondorengo jakinarazpenak garrantzitsuak direla deritzo.\nAplikazioaren informazio-orrialdean irakur dezakezu berriro."
},
"pre": {
"warning": "Instalatu baino lehen jakin beharrekoak",
@ -623,11 +628,11 @@
"problems": {
"arch": "Aplikazio hau ({required}) arkitekturatan bakarrik instalatu daiteke, baina zure zerbitzariaren arkitektura {current} da.",
"broken": "Aplikazio hau hondatuta dago YunoHosten azterketa automatikoen arabera eta zure sistema apur lezake! Ez zenuke instalatu beharko zertan ari zaren ez badakizu.",
"thirdparty": "Aplikazio hau ez da YunoHosten katalogokoa, hirugarrenen aplikazioak instalatzeak sistemaren integritatea ezbaian jar dezake. Ez zenuke instalatu beharko zertan ari zaren ez badakizu.",
"thirdparty": "Aplikazio hau ez da YunoHosten liburutegikoa; hirugarrenen aplikazioak instalatzeak sistemaren integritatea ezbaian jar dezake. EZ zenuke instalatu beharko zertan ari zaren ez badakizu.",
"ignore": "Ulertzen dut aplikazio honek nire sistema apur lezakeela baina hala ere probatu nahi dut.",
"inprogress": "Aplikazio hau esperimentala da oraindik (edo ez dabil) eta litekeena da zure sistema apurtzea! Ez zenuke instalatu beharko zertan ari zaren ez badakizu.",
"inprogress": "Aplikazio hau esperimentala da oraindik (edo ez dabil) eta litekeena da zure sistema apurtzea! EZ zenuke instalatu beharko zertan ari zaren ez badakizu.",
"install": "Badago lehendik ere instalatuta eta ezin da behin baino gehiagotan instalatu.",
"lowquality": "Litekeena da aplikazioa ibiltzea baina ez dago YunoHosten ondo integratuta. Baliteke Saio Bakarra (SSO) edota babeskopia / lehengoratzea bezalako ezaugarri batzuk erabilgarri ez egotea, edo gidalerroak ez errespetatzea.",
"lowquality": "Litekeena da aplikazioa erabili ahal izatea baina ez dago YunoHosten ondo integratuta. Baliteke Saio Bakarra (SSO) edota babeskopia / lehengoratzea bezalako ezaugarri batzuk erabilgarri ez egotea, edo gidalerroak ez errespetatzea.",
"version": "Aplikazio honek YunoHost {required} edo bertsio berriagoa behar du, baina unean instalatuta daukazuna {current} da; aztertu YunoHost eguneratzea.",
"ram": "Aplikazio honek {required} RAM behar ditu instalatu edo bertsio-berritzeko baina unean soilik {current} daude erabilgarri. Aplikazioa ibiliko balitz ere, instalazio prozesuak RAM kopuru handia behar du eta zure zerbitzariak erantzuteari utzi eta huts egin lezake."
},
@ -637,7 +642,7 @@
"integration": {
"archs": "Arkitektura bateragarriak:",
"ldap": {
"false": "Ez du YunoHosten kontua erabiltzen saioa hasteko (LDAP); kontu bat sortu beharko da aplikazioan bertan",
"false": "Ezin da YunoHosten kontua erabili saioa hasteko (LDAP); kontu bat sortu beharko da aplikazioan bertan",
"true": "YunoHosten kontuarekin hasi daiteke saioa (LDAP)",
"?": "Ez dago LDAP integrazioari buruzko informaziorik"
},
@ -647,21 +652,22 @@
},
"resources": "Baliabideen ohiko erabilera: {ram} RAM, {disk} memoria diskoan",
"sso": {
"true": "Saio Bakarra (SSO) erabilgarri dago",
"?": "Ez dago SSO-i buruzko informaziorik",
"false": "Saio Bakarra (SSO) ez dago erabilgarri"
"true": "Saio Bateratua (SSO) erabilgarri dago",
"?": "Ez dago Saio Bateratuari (SSO) buruzko informaziorik",
"false": "Saio Bateratua (SSO) ez dago erabilgarri"
},
"title": "YunoHosten integrazioa"
},
"links": {
"admindoc": "Administraritzaren dokumentazio ofiziala",
"code": "Kode gordailu (repository) ofiziala",
"package": "Yunohosten paketearen gordailua (repository)",
"admindoc": "Administrazioaren dokumentazio ofiziala",
"code": "Kode-gordailu ofiziala",
"package": "YunoHosten pakete-gordailua",
"title": "Estekak",
"userdoc": "Erabiltzaileen dokumentazio ofiziala",
"website": "Webgune ofiziala",
"license": "Lizentzia",
"forum": "Aplikazio honi buruzko eztabaidak YunoHosten foroan"
"license": "Aplikazioaren lizentzia",
"forum": "Aplikazio honi buruzko eztabaidak YunoHosten foroan",
"package_license": "YunoHost paketearen lizentzia"
},
"potential_alternative_to": "Honen baliokide izan daiteke:",
"upgrade": {
@ -673,7 +679,7 @@
"notifs": {
"pre": {
"title": "Kontuz!",
"alert": "Jakinarazpen horiek aztertu beharko zenituzke bertsio-berritu baino lehen, agian jakin beharreko zerbait diote."
"alert": "Ondorengo oharrak aztertu beharko zenituzke bertsio-berritu baino lehen, litekeena da jakin beharreko zerbait azaltzea."
},
"post": {
"alert": "Badirudi bertsio-berritzea behar bezala joan dela! \n Paketearen arduradunak bertsio-berritze honi buruzko ondorengo jakinarazpenak garrantzitsuak direla deritzo. \nAplikazioaren informazio-orrialdean irakur dezakezu berriro.",
@ -681,6 +687,9 @@
}
},
"stop": "Utzi hurrengo aplikazioaren bertsio-berritzea"
},
"uninstall": {
"purge_desc": "Kendu aplikazio honekin lotutako datuen direktorioa (aplikazioa erabiliz igo dituzun datuak izan ohi dira)."
}
}
}

View file

@ -14,7 +14,7 @@
"pending": "در حال پیش رفت",
"error": "ناموفّق"
},
"processing": "سرور در حال پردازش دستورات است..."
"processing": "سرور در حال پردازش دستورات است"
},
"all": "همه",
"administration_password": "رمز مدیریت",
@ -47,7 +47,7 @@
"dynDomain": "نام دامنه نامعتبر است: فقط باید حروف کوچک وکاراکتر خط تیره باشد",
"domain": "نام دامنه نامعتبر است: فقط باید حروف کوچک ، دات وکاراکتر خط تیره باشد",
"between": "مقدار باید بین {min} و {max} باشد.",
"alphalownum_": "مقدار باید فقط حروف کوچک و خط زیرین باشد.",
"alphalownumdot_": "مقدار باید فقط حروف کوچک و خط زیرین باشد.",
"alpha": "مقدار باید فقط حروف الفبا باشد.",
"required": "فیلد الزامی است.",
"passwordMatch": "کلمه های عبور مطابقت ندارند.",
@ -81,11 +81,7 @@
"domain_delete_longdesc": "این دامنه را حذف کنید",
"domain_default_longdesc": "این دامنه پیش فرض شما است.",
"domain_default_desc": "دامنه پیش فرض دامنه اتصال است که کاربران در آن وارد می شوند.",
"domain_add_panel_without_domain": "من نام دامنه ندارم…",
"domain_add_panel_with_domain": "من قبلاً نام دامنه دارم…",
"domain_add_dyndns_forbidden": "شما قبلاً در یک دامنه DynDNS مشترک شده اید، می توانید از انجمن و فروم تخصصی درخواست حذف دامنه DynDNS فعلی خودرا در آدرس:<a href='//forum.yunohost.org/t/nohost-domain-recovery-suppression-de-domaine-en-nohost-me-noho-st-et-ynh-fr/442'>و در یک تاپیک اختصاصی، ارائه دهید</a>.",
"domain_add_dyndns_doc": "... و من یک سرویس DNS پویا می خواهم.",
"domain_add_dns_doc": "… و من دارم <a href='//yunohost.org/dns_config' target='_blank'> سیستم نام دامنه مرا بدرستی تنظیم کنید</a>.",
"domain_add": "افزودن دامنه",
"dns": "DNS",
"disabled": "غیرفعال شد",
@ -155,11 +151,8 @@
"app_info_changeurl_desc": "آدرس دسترسی این برنامه (دامنه و / یا مسیر) را تغییر دهید.",
"app_info_default_desc": "دامنه ریشه را به این برنامه هدایت کنید ({domain}).",
"app_info_access_desc": "گروه ها / کاربرانی که در حال حاضر مجاز به دسترسی این برنامه هستند :",
"app_config_panel_no_panel": "این برنامه هیچ پیکربندی در دسترس ندارد",
"app_config_panel_label": "پیکربندی این برنامه",
"app_config_panel": "پنل پیکربندی",
"app_choose_category": "یک دسته را انتخاب کنید",
"api_waiting": "در انتظار پاسخ سِرورها...",
"api_waiting": "در انتظار پاسخ سِرورها…",
"api_not_responding": "رابط کاربری سیستم YunoHost پاسخ نمی دهد، شاید 'yunohost-api' خاموش و یا راه اندازی مجدد شده؟",
"purge_user_data_warning": "پاکسازی داده های کاربر برگشت پذیر نیست. مطمئن باشید که می دانید چه می کنید!",
"purge_user_data_checkbox": "داده های {name} پاک شود؟ (با این کار محتوای فهرست های خانه و ایمیل آن حذف می شود.)",
@ -235,8 +228,8 @@
"select_none": "انتخاب هیچکدام",
"select_all": "انتخاب همه",
"search": {
"not_found": "{item} با معیارهای شما مطابقت دارد.",
"for": "جستجو برای {items} ..."
"not_found": "{items} با معیارهای شما مطابقت دارد.",
"for": "جستجو برای {items}"
},
"save": "ذخیره",
"running": "درحال اجرا",
@ -374,7 +367,6 @@
"nobody": "هيچ كس",
"no": "خیر",
"next": "بعدی",
"myserver": "سرور من",
"multi_instance": "می توان چندین بار نصب کرد",
"migrations_disclaimer_not_checked": "این مهاجرت مستلزم آن است که قبل از اجرای آن ، سلب مسئولیت آن را تصدیق کنید.",
"migrations_disclaimer_check_message": "من این سلب مسئولیت را خواندم و فهمیدم",

View file

@ -10,11 +10,8 @@
"app_info_changeurl_desc": "Muuta tämän sovelluksen käyttö-URL-osoitetta (verkkotunnus ja/tai polku).",
"app_info_default_desc": "Uudelleen ohjaa verkkotunnuksen juuri tähän sovellukseen ({domain}).",
"app_info_access_desc": "Ryhmät / käyttäjät jolla on oikeus tähän sovellukseen:",
"app_config_panel_no_panel": "Tällä sovelluksella ei ole mitään konfigurointia saatavilla",
"app_config_panel_label": "Konfiguroi tämä sovellus",
"app_config_panel": "Konfigurointi paneeli",
"app_choose_category": "Valitse kategoria",
"api_waiting": "Odotetaan palvelimen vastausta...",
"api_waiting": "Odotetaan palvelimen vastausta…",
"api_not_responding": "YunoHost API ei vastaa. Ehkä 'yunohost-api' on kaatunut tai käynnsityi uudelleen?",
"api_not_found": "Näyttää siltä, että web-järjestelmänvalvoja yritti kysyä jotain, jota ei ole olemassa.",
"all_apps": "Kaikki sovellukset",
@ -41,10 +38,10 @@
"pending": "Käynnissä",
"error": "Epäonnistui"
},
"processing": "Palvelin käsittelee toimintoa.",
"partial_logs": "[...](Katso historiasta täydet logit)",
"processing": "Palvelin käsittelee toimintoa",
"partial_logs": "[](Katso historiasta täydet logit)",
"reconnecting": {
"title": "Yritetään kommunikoida palvelimen kanssa...",
"title": "Yritetään kommunikoida palvelimen kanssa",
"failed": "Näyttää siltä, että palvelin ei vastaa. Voit yrittää muodostaa yhteyden uudelleen tai yrittää suorittaa `systemctl restart yunohost-api` ssh:n kautta.",
"reason": {
"unknown": "Yhteys palvelimeen on suljettu tuntemattomasta syystä.",
@ -130,7 +127,7 @@
"diagnosis": "Diagnoosi",
"form_errors": {
"remote": "{message}",
"alphalownum_": "Arvo saa olla vain pieniä aakkosnumeerisia ja alleviivattuja merkkejä.",
"alphalownumdot_": "Arvo saa olla vain pieniä aakkosnumeerisia ja alleviivattuja merkkejä.",
"between": "Arvon on oltava {min} ja {max} välillä.",
"domain": "Virheellinen domain nimi: Ainoastaan pienaakkoset aakkosnumeeriset merkit sekä piste- ja viivamerkit",
"notInUsers": "Käyttäjä '{value}' on jo olemassa.",
@ -154,10 +151,7 @@
"disable": "Poista käytöstä",
"disabled": "Pois käytöstä",
"domain_add": "Lisää domain",
"domain_add_dns_doc": ".. ja olen <a href='//yunohost.org/dns_config' target='_blank'>asettanut DNS:n oikein</a>.",
"domain_add_dyndns_forbidden": "Olet jo tilannut DynDNS-verkkotunnuksen, voit pyytää nykyisen DynDNS-verkkotunnuksesi poistamista foorumilla <a href='//forum.yunohost.org/t/nohost-domain-recovery-suppression-de-domaine-en-nohost-me-noho-st-et-ynh-fr/442'>tässä langassa</a>.",
"domain_add_panel_with_domain": "Minulla on jo domain…",
"domain_add_panel_without_domain": "Minulla ei ole domainia…",
"domain_default_desc": "Oletus domain on se domain johon käyttäjät kirjautuvat.",
"domain_dns_longdesc": "Näytä DNS-konfiguraatio",
"domain_name": "Domain-nimi",
@ -276,7 +270,7 @@
"human_routes": {
"apps": {
"change_label": "Vaihda label '{prevName}' labeliksi '{nextName}'",
"change_url": "Vaihda '{nimi}' URL-osoite",
"change_url": "Vaihda '{name}' URL-osoite",
"uninstall": "Poista sovellus '{name}'",
"update_config": "Päivitä sovelluksen '{name}' konfiguraatio",
"install": "Asenna sovellus '{name}'",
@ -342,7 +336,7 @@
"reboot": "Käynnistä palvelin uudelleen",
"firewall": {
"ports": "{action} portti {port} ({protocol}, {connection})",
"upnp": "{action UPnP"
"upnp": "{action} UPnP"
},
"reconnecting": "Yhdistetään uudelleen"
},
@ -428,7 +422,6 @@
"push_force_confirm": "Haluatko varmasti pakottaa kaikki ehdotetut dns-tietueet? Huomaa, että se saattaa korvata manuaalisesti tai tärkeät oletustietueet, jotka sinä tai rekisterinpitäjäsi olet asettanut."
}
},
"domain_add_dyndns_doc": ".. ja haluan dynaamisen DNS-palvelun.",
"domain_delete_forbidden_desc": "Sinä et voi poistaa domainia '{domain}' sillä se on sinun oletus domain, sinun pitää valita toinen domain (tai <a href='#/domains/add'>lisätä uusi</a>) ja asettää tämä oletus domainiksi että voit poistaa tämän.",
"domain_dns_push_managed_in_parent_domain": "Automaattiset DNS-tietueet -ominaisuutta hallitaan ylätason domainissa.<a href='#/domains/{parent_domain}/dns'>{parent_domain}</a>.",
"domains": "Domainit",
@ -460,7 +453,7 @@
"restart": "Käynnistä uudelleen",
"search": {
"not_found": "Kriteerejäsi vastaavia {items} löytyy. | On 1 {items}, joka vastaa kriteerejäsi. | On {items}, jotka vastaavat kriteerejäsi.",
"for": "Etsi {items}..."
"for": "Etsi {items}"
},
"skip": "Ohita",
"users_export": "Vie käyttäjiä",
@ -478,7 +471,7 @@
"group_format_name_help": "Voit käyttää aakkosnumeerisia merkkejä ja alleviivausmerkkejä",
"hook_data_xmpp": "XMPP-data",
"hook_data_xmpp_desc": "Huone- ja käyttäjäkonfiguraatiot, ladatut tiedostot",
"ignored": "{count] ignoorattu",
"ignored": "{count} ignoorattu",
"install_time": "Asennusaika",
"ipv4": "IPv4",
"users_no": "Ei käyttäjiä.",
@ -498,7 +491,6 @@
"migrations": "Migraatiot",
"migrations_pending": "Virellä olevat migraatiot",
"multi_instance": "Voidaan asentaa monta kertaa",
"myserver": "minunpalvelin",
"no": "Ei",
"nobody": "Ei kukaan",
"only_decent_quality_apps": "Vain kohtuullisen laadukkaat sovellukset",

View file

@ -2,8 +2,8 @@
"action": "Action",
"add": "Ajouter",
"administration_password": "Mot de passe d'administration",
"api_not_responding": "L'API YunoHost ne répond pas. Peut-être que 'yunohost-api' est en panne ou a été redémarré ?",
"app_info_access_desc": "Groupes / utilisateurs actuellement autorisés à accéder à cette application :",
"api_not_responding": "L'API YunoHost ne répond pas. Peut-être que 'yunohost-api' est en panne ou a été redémarré?",
"app_info_access_desc": "Groupes / comptes actuellement autorisés à accéder à cette application:",
"app_info_default_desc": "Redirige la racine du domaine vers cette application ({domain}).",
"app_info_uninstall_desc": "Supprimer cette application.",
"app_install_custom_no_manifest": "Aucun fichier manifest.json",
@ -17,18 +17,18 @@
"backup_content": "Contenu de la sauvegarde",
"backup_create": "Créer une sauvegarde",
"backup_new": "Nouvelle sauvegarde",
"begin": "C'est parti !",
"begin": "C'est parti!",
"both": "Les deux",
"check": "Vérification",
"close": "Fermer",
"confirm_app_default": "Voulez-vous vraiment définir cette application par défaut ?",
"confirm_change_maindomain": "Voulez-vous vraiment changer le domaine principal ?",
"confirm_delete": "Voulez-vous vraiment supprimer {name} ?",
"confirm_install_custom_app": "AVERTISSEMENT ! L'installation d'applications tierces peut compromettre l'intégrité et la sécurité de votre système. Vous ne devriez probablement PAS l'installer si vous ne savez pas ce que vous faites. Êtes-vous prêt à prendre ce risque ?",
"confirm_install_domain_root": "Êtes-vous sûr de vouloir installer cette application sur '/'? Vous ne pourrez installer aucune autre application sur {domain}",
"confirm_app_default": "Voulez-vous vraiment définir cette application par défaut?",
"confirm_change_maindomain": "Voulez-vous vraiment changer le domaine principal?",
"confirm_delete": "Voulez-vous vraiment supprimer {name}?",
"confirm_install_custom_app": "AVERTISSEMENT! L'installation d'applications tierces peut compromettre l'intégrité et la sécurité de votre système. Vous ne devriez probablement PAS l'installer si vous ne savez pas ce que vous faites. Voulez-vous vraiment prendre ce risque?",
"confirm_install_domain_root": "Voulez-vous vraiment installer cette application sur '/'? Vous ne pourrez installer aucune autre application sur {domain}",
"confirm_postinstall": "Vous êtes sur le point de lancer le processus de post-installation sur le domaine {domain}. Cela peut prendre du temps, *n'interrompez pas l'opération avant la fin*.",
"confirm_restore": "Voulez-vous vraiment restaurer {name} ?",
"confirm_uninstall": "Voulez-vous vraiment désinstaller {name} ?",
"confirm_restore": "Voulez-vous vraiment restaurer {name}?",
"confirm_uninstall": "Voulez-vous vraiment désinstaller {name}?",
"connection": "Connexion",
"created_at": "Crée le",
"custom_app_install": "Installer une application personnalisée",
@ -38,11 +38,7 @@
"disable": "Désactiver",
"dns": "DNS",
"domain_add": "Ajouter un domaine",
"domain_add_dns_doc": "… et j'ai <a href='//yunohost.org/dns_config' target='_blank'>configuré mes DNS correctement</a>.",
"domain_add_dyndns_doc": "… et je souhaite ajouter un service DNS dynamique.",
"domain_add_panel_with_domain": "J'ai déjà un nom de domaine…",
"domain_add_panel_without_domain": "Je n'ai pas de nom de domaine…",
"domain_default_desc": "Les utilisateurs se connecteront au domaine par défaut.",
"domain_default_desc": "Le domaine par défaut est le domaine à partir duquel les personnes doivent se connecter.",
"domain_default_longdesc": "Ceci est votre domaine par défaut.",
"domain_delete_longdesc": "Supprimer ce domaine",
"domain_dns_config": "Configuration DNS",
@ -56,16 +52,16 @@
"firewall": "Pare-feu",
"home": "Accueil",
"hook_adminjs_group_configuration": "Configurations système",
"hook_conf_ldap": "Annuaire des utilisateurs",
"hook_conf_ldap": "Annuaire des comptes",
"hook_conf_ynh_certs": "Certificats SSL",
"hook_conf_ynh_settings": "Configurations de YunoHost",
"hook_conf_manually_modified_files": "Fichiers de configuration modifiés manuellement",
"hook_data_home": "Données des utilisateurs",
"hook_data_home_desc": "Données utilisateurs situées dans /home/USER",
"hook_data_home": "Données des comptes",
"hook_data_home_desc": "Données comptes situées dans /home/USER",
"hook_data_mail": "Courriels",
"hook_data_mail_desc": "Courriels (au format brut) stockés sur le serveur",
"hook_data_xmpp": "Données XMPP",
"hook_data_xmpp_desc": "Configurations des salons et des utilisateurs, fichiers téléversés",
"hook_data_xmpp_desc": "Configurations des salons et des comptes, fichiers téléversés",
"id": "ID",
"infos": "Info",
"install": "Installer",
@ -84,9 +80,8 @@
"mailbox_quota_placeholder": "Laissez vide ou à zéro pour désactiver.",
"manage_apps": "Gérer les applications",
"manage_domains": "Gérer les domaines",
"manage_users": "Gérer les utilisateurs",
"manage_users": "Gérer les comptes",
"multi_instance": "Peut être installée plusieurs fois",
"myserver": "monserveur",
"next": "Suivant",
"no": "Non",
"open": "Ouvrir",
@ -96,8 +91,8 @@
"path": "Chemin",
"port": "Port",
"ports": "Ports",
"postinstall_domain": "Il s'agit du premier nom de domaine lié à votre serveur YunoHost. C'est également celui qui servira pour le portail d'authentification. Il sera donc visible pour tous vos utilisateurs, choisissez-le avec soin.",
"postinstall_intro_1": "Félicitations ! YunoHost a été installé avec succès.",
"postinstall_domain": "Il s'agit du premier nom de domaine lié à votre serveur YunoHost. C'est également celui qui servira pour le portail d'authentification. Il sera donc visible pour tout le monde, choisissez-le avec soin.",
"postinstall_intro_1": "Félicitations! YunoHost a été installé avec succès.",
"postinstall_intro_2": "Deux étapes de configuration supplémentaires sont nécessaires pour activer les services de votre serveur.",
"postinstall_intro_3": "Vous pouvez obtenir plus d'informations en vous rendant sur <a href='//yunohost.org/postinstall' target='_blank'>la page de documentation appropriée</a>",
"previous": "Précédent",
@ -115,9 +110,9 @@
"status": "Statut",
"stop": "Arrêter",
"system": "Système",
"system_apps_nothing": "Toutes les applications sont à jour !",
"system_packages_nothing": "Tous les packages système sont à jour !",
"system_update": "Mettre à jour le système",
"system_apps_nothing": "Toutes les applications sont à jour!",
"system_packages_nothing": "Tous les packages système sont à jour!",
"system_update": "Mise à jour du système",
"system_upgrade_btn": "Mettre à jour",
"tcp": "TCP",
"tools": "Outils",
@ -132,31 +127,31 @@
"user_emailaliases": "Alias de courriel",
"user_emailforward": "Adresses de transfert",
"user_fullname": "Nom complet",
"user_interface_link": "Interface utilisateur",
"user_interface_link": "Portail",
"user_mailbox_quota": "Quota de la boite aux lettres",
"user_new_forward": "nouveau_transfert@domainedistant.org",
"user_username": "Nom d'utilisateur",
"user_username": "Nom de compte",
"user_username_edit": "Éditer le compte de {name}",
"users": "Utilisateurs",
"users_new": "Nouvel utilisateur",
"users_no": "Aucun utilisateur.",
"users": "Comptes",
"users_new": "Nouveau compte",
"users_no": "Aucun compte.",
"yes": "Oui",
"form_input_example": "Exemple : {example}",
"form_input_example": "Exemple: {example}",
"footer_version": "Propulsé par <a href='https://yunohost.org'>YunoHost</a> {version} ({repo}).",
"certificate_manage": "Gérer les certificats SSL",
"certificate": "Certificat",
"user_mailbox_use": "Espace utilisé de la boite aux lettres",
"confirm_firewall_allow": "Êtes-vous sûr de vouloir ouvrir le port {port} (protocole : {protocol}, connexion : {connection})",
"confirm_firewall_disallow": "Êtes-vous sûr de vouloir fermer le port {port} (protocole : {protocol}, connexion : {connection})",
"confirm_service_start": "Voulez-vous vraiment démarrer {name} ?",
"confirm_service_stop": "Voulez-vous vraiment arrêter {name} ?",
"confirm_update_apps": "Voulez-vous vraiment mettre à jour toutes les applications ?",
"confirm_upnp_enable": "Voulez-vous vraiment activer l'UPnP ?",
"confirm_upnp_disable": "Voulez-vous vraiment désactiver l'UPnP ?",
"confirm_firewall_allow": "Voulez-vous vraiment ouvrir le port {port}? (protocole: {protocol}, connexion: {connection})",
"confirm_firewall_disallow": "Voulez-vous vraiment fermer le port {port}? (protocole: {protocol}, connexion: {connection})",
"confirm_service_start": "Voulez-vous vraiment démarrer {name}?",
"confirm_service_stop": "Voulez-vous vraiment arrêter {name}?",
"confirm_update_apps": "Voulez-vous vraiment mettre à jour toutes les applications?",
"confirm_upnp_enable": "Voulez-vous vraiment activer l'UPnP?",
"confirm_upnp_disable": "Voulez-vous vraiment désactiver l'UPnP?",
"domain_dns_conf_is_just_a_recommendation": "Cette section montre la configuration *recommandée*. Elle ne configure *pas* le DNS pour vous. Il est de votre responsabilité de configurer votre zone DNS, généralement depuis l'interface web de votre fournisseur de nom de domaine (registrar) en fonction de cette configurer recommandée.",
"confirm_reboot_action_reboot": "Êtes vous sûr de vouloir redémarrer votre serveur ?",
"confirm_reboot_action_shutdown": "Êtes vous sûr de vouloir éteindre votre serveur ?",
"confirm_update_specific_app": "Êtes vous sûr de vouloir mettre à jour {app} ?",
"confirm_reboot_action_reboot": "Voulez-vous vraiment redémarrer votre serveur?",
"confirm_reboot_action_shutdown": "Voulez-vous vraiment éteindre votre serveur?",
"confirm_update_specific_app": "Voulez-vous vraiment mettre à jour {app}?",
"ok": "OK",
"system_upgrade_all_applications_btn": "Mettre à jour toutes les applications",
"system_upgrade_all_packages_btn": "Mettre à jour tous les paquets",
@ -167,8 +162,8 @@
"tools_shutdown_reboot": "Arrêter/Redémarrer",
"app_info_changeurl_desc": "Modifier lURL daccès de cette application (domaine et/ou chemin).",
"app_info_change_url_disabled_tooltip": "Cette fonctionnalité na pas encore été implémentée pour cette application",
"confirm_app_change_url": "Voulez-vous vraiment modifier lURL daccès de cette application ?",
"confirm_migrations_skip": "Ne pas appliquer les migrations nest pas recommandé. Voulez-vous vraiment le faire ?",
"confirm_app_change_url": "Voulez-vous vraiment modifier lURL daccès de cette application?",
"confirm_migrations_skip": "Ne pas appliquer les migrations nest pas recommandé. Voulez-vous vraiment le faire?",
"migrations": "Migrations",
"migrations_pending": "Migrations en attente",
"migrations_done": "Migrations précédentes",
@ -177,12 +172,12 @@
"run": "Exécuter",
"skip": "Passer",
"all_apps": "Toutes les applications",
"confirm_install_app_lowquality": "Avertissement : cette application peut fonctionner mais nest pas bien intégrée dans YunoHost. Certaines fonctionnalités telles que lauthentification unique et la sauvegarde/restauration pourraient ne pas être disponibles.",
"confirm_install_app_inprogress": "AVERTISSEMENT ! Cette application est encore expérimentale et risque de casser votre système ! Vous ne devriez probablement PAS linstaller si vous ne savez pas ce que vous faites. Voulez-vous vraiment prendre ce risque ?",
"error_connection_interrupted": "Le serveur a fermé la connexion au lieu dy répondre. Est-ce que NGINX ou yunohost-api ont été redémarrés ou arrêtés pour une raison quelconque ?",
"experimental_warning": "Attention : cette fonctionnalité est expérimentale et ne doit pas être considérée comme stable, vous ne devriez pas lutiliser à moins que vous ne sachiez ce que vous faites...",
"good_practices_about_admin_password": "Vous êtes sur le point de définir un nouveau mot de passe administrateur. Le mot de passe doit comporter au moins 8 caractères, bien qu'il soit recommandé d'utiliser un mot de passe plus long (c'est-à-dire une phrase secrète) et/ou d'utiliser une combinaison de caractères (majuscules, minuscules, chiffres et caractères spéciaux).",
"good_practices_about_user_password": "Vous êtes sur le point de définir un nouveau mot de passe utilisateur. Le mot de passe doit comporter au moins 8 caractères, bien qu'il soit recommandé d'utiliser un mot de passe plus long (c'est-à-dire une phrase secrète) et/ou une combinaison de caractères (majuscules, minuscules, chiffres et caractères spéciaux).",
"confirm_install_app_lowquality": "Avertissement: cette application peut fonctionner mais nest pas bien intégrée dans YunoHost. Certaines fonctionnalités telles que lauthentification unique et la sauvegarde/restauration pourraient ne pas être disponibles.",
"confirm_install_app_inprogress": "AVERTISSEMENT! Cette application est encore expérimentale et risque de casser votre système! Vous ne devriez probablement PAS linstaller si vous ne savez pas ce que vous faites. Voulez-vous vraiment prendre ce risque?",
"error_connection_interrupted": "Le serveur a fermé la connexion au lieu dy répondre. Est-ce que NGINX ou yunohost-api ont été redémarrés ou arrêtés pour une raison quelconque?",
"experimental_warning": "Attention: cette fonctionnalité est expérimentale et ne doit pas être considérée comme stable, vous ne devriez pas lutiliser à moins que vous ne sachiez ce que vous faites.",
"good_practices_about_admin_password": "Vous êtes sur le point de définir un nouveau mot de passe de compte d'administration. Le mot de passe doit comporter au moins 8 caractères, bien qu'il soit recommandé d'utiliser un mot de passe plus long (c'est-à-dire une phrase secrète) et/ou d'utiliser une combinaison de caractères (majuscules, minuscules, chiffres et caractères spéciaux).",
"good_practices_about_user_password": "Vous êtes sur le point de définir un nouveau mot de passe. Le mot de passe doit comporter au moins 8 caractères, bien qu'il soit recommandé d'utiliser un mot de passe plus long (c'est-à-dire une phrase secrète) et/ou une combinaison de caractères (majuscules, minuscules, chiffres et caractères spéciaux).",
"only_working_apps": "Applications fonctionnelles uniquement",
"logs": "Journaux",
"logs_operation": "Opérations effectuées sur le système avec YunoHost",
@ -200,39 +195,39 @@
"logs_context": "Contexte",
"logs_share_with_yunopaste": "Partager les logs avec YunoPaste",
"logs_more": "Afficher plus de lignes",
"purge_user_data_checkbox": "Purger les données de l'utilisateur {name} ? (Cela supprimera ses e-mails et le contenu de son dossier personnel)",
"purge_user_data_warning": "La purge des données de lutilisateur est irréversible. Assurez-vous de savoir ce que vous faites !",
"purge_user_data_checkbox": "Purger les données du compte {name}? (Cela supprimera ses e-mails et le contenu de son dossier personnel)",
"purge_user_data_warning": "La purge des données de compte est irréversible. Assurez-vous de savoir ce que vous faites!",
"version": "Version",
"confirm_update_system": "Voulez-vous vraiment mettre à jour tous les paquets système ?",
"app_state_inprogress_explanation": "Le mainteneur de cette application a déclaré que celle-ci n'est pas prête pour un environnement de production. SOYEZ PRUDENT·E !",
"confirm_update_system": "Voulez-vous vraiment mettre à jour tous les paquets système?",
"app_state_inprogress_explanation": "Le mainteneur de cette application a déclaré que celle-ci n'est pas prête pour un environnement de production. FAITES PREUVE DE PRUDENCE!",
"app_state_highquality_explanation": "Cette application est bien intégrée à YunoHost depuis au moins un an.",
"license": "Licence",
"only_highquality_apps": "Seulement les applications de bonne qualité",
"only_decent_quality_apps": "Seulement les applications d'une qualité satisfaisante",
"orphaned": "Non maintenue",
"orphaned_details": "Cette application n'a pas été maintenue depuis un certain temps. Il peut encore fonctionner, mais ne recevra aucune mise à niveau jusqu'à ce que quelqu'un se porte volontaire pour s'en occuper. N'hésitez pas à contribuer à la faire revivre !",
"orphaned_details": "Cette application n'a pas été maintenue depuis un certain temps. Elle peut encore fonctionner, mais ne recevra aucune mise à niveau jusqu'à ce que quelqu'un se porte volontaire pour s'en occuper. N'hésitez pas à contribuer à la faire revivre!",
"from_to": "de {0} à {1}",
"group_name": "Nom du groupe",
"nobody": "Personne",
"group": "Groupe",
"group_all_users": "Tous les utilisateurs",
"group_all_users": "Tous les comptes",
"group_visitors": "Visiteurs",
"group_format_name_help": "Vous pouvez utiliser des caractères alphanumériques et des tirets bas",
"group_add_member": "Ajouter un utilisateur",
"group_add_member": "Ajouter un compte",
"group_add_permission": "Ajouter une permission",
"group_new": "Nouveau groupe",
"group_explain_all_users": "Ceci est un groupe spécial contenant tous les comptes d'utilisateurs sur le serveur",
"group_explain_all_users": "Ceci est un groupe spécial contenant tous les comptes des personnes inscrites sur le serveur",
"group_explain_visitors": "Ceci est un groupe spécial représentant les visiteurs anonymes",
"group_specific_permissions": "Autorisations pour des utilisateurs individuels",
"group_specific_permissions": "Autorisations pour des comptes individuels",
"groups_and_permissions": "Groupes et autorisations",
"groups_and_permissions_manage": "Gérer les groupes et les autorisations",
"permissions": "Permissions",
"rerun_diagnosis": "Relancer le diagnostic",
"details": "Détails",
"everything_good": "Tout est OK !",
"everything_good": "Tout est OK!",
"ignore": "Ignore",
"ignored": "{count} ignoré",
"last_ran": "Dernière exécution :",
"last_ran": "Dernière exécution:",
"unignore": "Cesser d'ignorer",
"warnings": "{count} avertissements",
"words": {
@ -251,18 +246,18 @@
"app_state_lowquality_explanation": "Cette application peut être fonctionnelle, mais peut toujours contenir des problèmes, ou n'est pas entièrement intégrée à YunoHost, ou elle ne respecte pas les bonnes pratiques.",
"catalog": "Catalogue",
"others": "Autres",
"diagnosis_first_run": "La fonctionnalité de diagnostic va tenter de trouver certains problèmes communs sur différents aspects de votre serveur pour être sûr que tout fonctionne normalement. Merci de ne pas paniquer si vous voyez une multitude d'erreurs après avoir configuré votre serveur : la fonctionnalité est précisément prévue pour les identifier et vous aider à les résoudre. Le diagnostic sera également effectué deux fois par jour et enverra un courriel à l'administrateur si des erreurs sont détectées.",
"diagnosis_first_run": "La fonctionnalité de diagnostic va tenter de trouver certains problèmes communs sur différents aspects de votre serveur pour être sûr que tout fonctionne normalement. Merci de ne pas paniquer si vous voyez une multitude d'erreurs après avoir configuré votre serveur: la fonctionnalité est précisément prévue pour les identifier et vous aider à les résoudre. Le diagnostic sera également effectué deux fois par jour et enverra un courriel au compte administrateur si des erreurs sont détectées.",
"run_first_diagnosis": "Démarrer le diagnostic initial",
"confirm_service_restart": "Êtes-vous certain de vouloir redémarrer {name} ?",
"confirm_service_restart": "Voulez-vous vraiment redémarrer {name}?",
"restart": "Redémarrer",
"group_explain_visitors_needed_for_external_client": "Veillez à ce que certaines applications soient autorisées pour les visiteurs si vous avez l'intention de les utiliser avec des clients externes. Par exemple, c'est le cas pour Nextcloud si vous souhaitez utiliser un client de synchronisation sur votre smartphone ou ordinateur de bureau.",
"issues": "{count} problèmes",
"operation_failed_explanation": "L'opération a échoué ! Veuillez-nous excuser pour ça :( Vous pouvez essayer de <a href='https://yunohost.org/help'>demander de l'aide</a>. Merci de fournir *le log complet* de l'opération pour les personnes qui vont vous aider. Vous pouvez cliquer sur le bouton vert 'Partager avec Yunopaste'. Quand vous partagez les logs, YunoHost essaie automatiquement d'anonymiser les informations privées comme le nom de domaine et l'adresses IP.",
"diagnosis_explanation": "La fonctionnalité de diagnostic va tenter de trouver certains problèmes communs sur différents aspects de votre serveur pour être sûr que tout fonctionne normalement. Le diagnostic sera également effectué deux fois par jour et enverra un courriel à l'administrateur si des erreurs sont détectées. À noter que certains tests ne seront pas montrés si vous n'utilisez pas certaines fonctions spécifiques (XMPP, par exemple) ou s'ils échouent à cause d'une configuration trop complexe. Dans ce cas, et si vous savez ce que vous avez modifié, vous pouvez ignorer les problèmes et les avertissements correspondantes.",
"operation_failed_explanation": "L'opération a échoué! Veuillez-nous excuser pour ça:( Vous pouvez essayer de <a href='https://yunohost.org/help'>demander de l'aide</a>. Merci de fournir *le log complet* de l'opération pour les personnes qui vont vous aider. Vous pouvez cliquer sur le bouton vert 'Partager avec Yunopaste'. Quand vous partagez les logs, YunoHost essaie automatiquement d'anonymiser les informations privées comme le nom de domaine et l'adresses IP.",
"diagnosis_explanation": "La fonctionnalité de diagnostic va tenter de trouver certains problèmes communs sur différents aspects de votre serveur pour être sûr que tout fonctionne normalement. Le diagnostic sera également effectué deux fois par jour et enverra un courriel au compte administrateur si des erreurs sont détectées. À noter que certains tests ne seront pas montrés si vous n'utilisez pas certaines fonctions spécifiques (XMPP, par exemple) ou s'ils échouent à cause d'une configuration trop complexe. Dans ce cas, et si vous savez ce que vous avez modifié, vous pouvez ignorer les problèmes et les avertissements correspondantes.",
"pending_migrations": "Il y a des migrations en attente d'exécution. Veuillez aller dans <a href='#/tools/migrations'>Outils > Migrations</a> pour les exécuter.",
"tip_about_user_email": "Les utilisateurs sont créés avec une adresse email associée (et un compte XMPP) au format username@domain.tld. Des alias d'email et des transferts d'emails supplémentaires peuvent être ajoutés ultérieurement par l'administrateur et l'utilisateur.",
"tip_about_user_email": "Les comptes sont créés avec une adresse email associée (et un compte XMPP) au format username@domain.tld. Des alias d'email et des transferts d'emails supplémentaires peuvent être ajoutés ultérieurement par les personnes administrant le serveur ainsi celles ayant accès au compte lui même.",
"logs_suboperations": "Sous-opérations",
"permission_show_tile_enabled": "Visible en tuile dans le portail utilisateur",
"permission_show_tile_enabled": "Visible en tuile dans le portail YunoHost",
"permission_main": "Label principal",
"permission_corresponding_url": "URL correspondante",
"app_manage_label_and_tiles": "Gérer les étiquettes et les tuiles",
@ -284,7 +279,7 @@
},
"search": {
"not_found": "Il y a des {items} qui correspondent à vos critères. | Il y a un {items} qui correspond à vos critères. | Il y a des {items} qui correspondent à vos critères.",
"for": "Rechercher {items}..."
"for": "Rechercher {items}"
},
"readme": "Lisez-moi",
"postinstall_set_domain": "Définir le domaine principal",
@ -303,7 +298,7 @@
"mailbox_quota_example": "700 M correspond à un CD, 4 700 M correspond à un DVD",
"items_verbose_count": "Il n'y a {items}. | Il y a un {items}. | Il y a des {items}.",
"items": {
"users": "aucun utilisateur | utilisateur | {c} utilisateurs",
"users": "aucun compte | compte | {c} comptes",
"services": "aucun service | service | {c} services",
"logs": "aucun historique/log | log | {c} logs",
"installed_apps": "aucune application installée | application installée | {c} applications installées",
@ -320,7 +315,7 @@
"POST": "créer/exécuter",
"GET": "lire"
},
"last_action": "Dernière action :",
"last_action": "Dernière action:",
"title": "Historique",
"is_empty": "Rien dans l'historique pour le moment."
},
@ -329,17 +324,17 @@
"passwordMatch": "Les mots de passe ne correspondent pas.",
"passwordLenght": "Le mot de passe doit comporter au moins 8 caractères.",
"number": "La valeur doit être un nombre.",
"notInUsers": "L'utilisateur '{value}' existe déjà.",
"notInUsers": "Le compte '{value}' existe déjà.",
"minValue": "La valeur doit être un nombre égal ou supérieur à {min}.",
"name": "Les noms ne peuvent pas comporter de caractères spéciaux, sauf <code> ,.'-</code>",
"appRepoUrl": "Les URLs de dêpôt d'app YunoHost doivent ressembler à https://domain.tld/path/to/repo_ynh",
"emailForward": "Adresse de transfert de courrier électronique invalide : elle doit être composée de caractères alphanumérique et de <code>_.-+</code> seulement (par exemple, someone+tag@example.com, s0me-1+tag@example.com)",
"email": "Adresse de courriel invalide : elle doit être composée de caractères alphanumérique et des caractères <code>_.-</code> seulement (par exemple someone@example.com, s0me-1@example.com)",
"dynDomain": "Nom de domaine invalide : Il doit être composé de minuscules alphanumériques et de tirets uniquement",
"domain": "Nom de domaine invalide : Il doit être composé de minuscules alphanumériques, de points et de tirets uniquement",
"emailForward": "Adresse de transfert de courrier électronique invalide: elle doit être composée de caractères alphanumérique et de <code>_.-+</code> seulement (par exemple, someone+tag@example.com, s0me-1+tag@example.com)",
"email": "Adresse de courriel invalide: elle doit être composée de caractères alphanumérique et des caractères <code>_.-</code> seulement (par exemple someone@example.com, s0me-1@example.com)",
"dynDomain": "Nom de domaine invalide: Il doit être composé de minuscules alphanumériques et de tirets uniquement",
"domain": "Nom de domaine invalide: Il doit être composé de minuscules alphanumériques, de points et de tirets uniquement",
"between": "La valeur doit être comprise entre {min} et {max}.",
"alpha": "La chaîne de caractères ne doit contenir que des lettres.",
"alphalownum_": "La chaîne de caractères doit être composé uniquement de caractères alphanumériques minuscules et de tirets bas (aussi appelé tiret du 8 ou underscore).",
"alphalownumdot_": "La chaîne de caractères doit être composé uniquement de caractères alphanumériques minuscules, de points et de tirets bas (aussi appelé tiret du 8 ou underscore).",
"maxValue": "La valeur doit être un nombre égal ou inférieur à {max}.",
"remote": "{message}",
"pattern": "{type}",
@ -347,18 +342,18 @@
},
"footer": {
"donate": "Faire un don",
"help": "Besoin d'aide ?",
"help": "Besoin d'aide?",
"documentation": "Documentation"
},
"experimental": "Expérimental",
"error": "Erreur",
"enabled": "Activé",
"domain_delete_forbidden_desc": "Vous ne pouvez pas supprimer '{domain}' car c'est le domaine par défaut, vous devez choisir un autre domaine (ou <a href='#/domains/add'> ajoutez en un nouveau</a>) et le définir comme le domaine par défaut pour pouvoir supprimer celui-ci.",
"domain_add_dyndns_forbidden": "Vous avez déjà souscrit à un domaine DynDNS, vous pouvez demander la suppression de votre domaine DynDNS actuel sur le forum <a href='//forum.yunohost.org/t/nohost-domain-recovery-suppression-de-domaine-en-nohost-me-noho-st-et-ynh-fr/442'> dans le fil de discussion dédié</a>.",
"domain_add_dyndns_forbidden": "Vous avez déjà enregistré/souscrit à un domaine DynDNS du projet YunoHost. Par conception, cette fonctionnalité est limitée à un seul domaine de ce type par serveur. Si vous souhaitez utiliser un sous-domaine de votre domaine déjà souscrit, veuillez utiliser l'option 'Ajouter un domaine que je possède, ou un sous-domaine' ci-dessus. Si vous souhaitez utiliser un domaine complètement différent, vous devez d'abord supprimer votre domaine DynDNS existant. Les domaines DynDNS sont utiles pour débuter avec l'auto-hébergement, mais à moyen/long terme, nous recommandons d'acheter votre propre nom de domaine auprès d'un registrar/prestataire afin d'avoir la pleine propriété de votre domaine.",
"disabled": "Désactivé",
"dead": "Inactif",
"day_validity": " Expiré | 1 jour | {count} jours",
"confirm_app_install": "Êtes-vous sûr de vouloir installer cette application ?",
"confirm_app_install": "Voulez-vous vraiment installer cette application?",
"common": {
"lastname": "Nom de famille",
"firstname": "Prénom"
@ -366,11 +361,8 @@
"code": "Code",
"cancel": "Annuler",
"app_show_categories": "Afficher les catégories",
"app_config_panel_no_panel": "Cette application n'a aucune configuration disponible",
"app_config_panel_label": "Configurez cette application",
"app_config_panel": "Panneau de configuration",
"app_choose_category": "Choisissez une catégorie",
"api_waiting": "Attente de la réponse du serveur...",
"api_waiting": "Attente de la réponse du serveur…",
"api_errors_titles": {
"APIConnexionError": "YunoHost a rencontré une erreur de connexion",
"APINotRespondingError": "L'API YunoHost ne répond pas",
@ -381,11 +373,11 @@
},
"api_error": {
"sorry": "Vraiment désolé de cela.",
"info": "Les informations suivantes peuvent être utiles à la personne qui vous aide :",
"info": "Les informations suivantes peuvent être utiles à la personne qui vous aide:",
"help": "Vous devez chercher de l'aide sur <a href=\"https://forum.yunohost.org/\"> le forum</a> ou <a href=\"https://chat.yunohost.org/\">le chat</a> pour corriger la situation, ou signaler le bug sur <a href=\"https://github.com/YunoHost/issues\"> le bugtracker</a>.",
"error_message": "Message d'erreur :",
"error_message": "Message d'erreur:",
"view_error": "Afficher l'erreur",
"server_said": "Pendant le traitement de l'action, le serveur a dit :"
"server_said": "Pendant le traitement de l'action, le serveur a dit:"
},
"address": {
"local_part_description": {
@ -397,7 +389,7 @@
"domain": "Choisissez un domaine."
}
},
"api_not_found": "L'administrateur a essayé d'accéder à quelque chose qui n'existe pas.",
"api_not_found": "Il semblerait que l'interface d'administration web ait essayé d'accéder à quelque chose qui n'existe pas.",
"api": {
"query_status": {
"error": "Échec",
@ -405,18 +397,18 @@
"warning": "Terminé avec succès avec des erreurs ou des alertes",
"pending": "En cours"
},
"processing": "Le serveur traite l'action...",
"partial_logs": "[...] ( voir l'historique pour les logs complets)",
"processing": "Le serveur traite l'action",
"partial_logs": "[…] (voir l'historique pour consulter les logs complets)",
"reconnecting": {
"title": "Tentative de communication avec le serveur...",
"title": "Tentative de communication avec le serveur",
"failed": "Le serveur ne répond pas. Vous pouvez essayer de vous reconnecter ou essayer d'exécuter `systemctl restart yunohost-api` via SSH.",
"reason": {
"unknown": "La connexion avec le serveur a été fermée pour des raisons inconnues.",
"reboot": "Votre serveur redémarre et ne sera pas joignable pendant un certain temps. Une invite de connexion sera disponible dès que le serveur sera accessible.",
"shutdown": "Votre serveur est en cours d'extinction et n'est plus joignable. Redémarrez-le et une invitation de connexion sera disponible dès que le serveur sera joignable.",
"upgrade_system": "La connexion avec le serveur a été fermée en raison de la mise à jour de YunoHost. Il vous faut patienter jusqu'à ce que le serveur soit à nouveau joignable …"
"upgrade_system": "La connexion avec le serveur a été fermée en raison de la mise à jour de YunoHost. Il vous faut patienter jusqu'à ce que le serveur soit à nouveau joignable…"
},
"success": "Le serveur est maintenant joignable ! Vous pouvez essayer de vous connecter"
"success": "Le serveur est maintenant joignable! Vous pouvez essayer de vous connecter"
}
},
"go_back": "Revenir",
@ -424,15 +416,15 @@
"force": "Forcer la post-installation",
"title": "Post-installation",
"user": {
"title": "Création du premier utilisateur (administrateur)",
"first_user_help": "Cet utilisateur se verra accorder des privilèges d'administrateur et sera autorisé à se connecter à cette interface d'administration ainsi que directement au serveur via SSH.\nComme il s'agit d'un utilisateur normal, vous pourrez également vous connecter au portail utilisateur (SSO) avec ses informations d'identification.\nUne fois la post-installation terminée, vous pourrez créer d'autres utilisateurs administrateurs en les ajoutant au groupe 'admins'."
"title": "Création du premier compte d'administration",
"first_user_help": "Ce compte se verra accorder des privilèges d'administration et sera autorisé à se connecter à cette interface d'administration ainsi que directement au serveur via SSH.\nComme il s'agit d'un compte normal, il pourra également se connecter au portail YunoHost (SSO) avec ses informations d'identification.\nUne fois la post-installation terminée, vous pourrez créer d'autres comptes d'administration en les ajoutant au groupe 'admins'."
}
},
"human_routes": {
"users": {
"update": "Mettre à jour l'utilisateur '{name}'",
"delete": "Supprimer l'utilisateur '{name}'",
"create": "Créer l'utilisateur '{name}'"
"update": "Mettre à jour le compte '{name}'",
"delete": "Supprimer le compte '{name}'",
"create": "Créer le compte '{name}'"
},
"upgrade": {
"app": "Mettre à jour l'application '{app}'",
@ -501,7 +493,7 @@
"change_url": "Modifier l'URL d'accès de '{name}'",
"change_label": "Changer le libellé de '{prevName}' par '{nextName}'",
"action_config": "Exécuter l'action '{action}' de configuration de l'application '{name}'",
"dismiss_notification": "Notification de rejet pour '{name}'"
"dismiss_notification": "Congédier la notification pour '{name}'"
},
"reconnecting": "Reconnexion",
"settings": {
@ -509,17 +501,17 @@
}
},
"items_verbose_items_left": "Il reste des {items}. | Il reste un {items}. | Il reste des {items}.",
"confirm_group_add_access_permission": "Voulez-vous vraiment accorder l'accès à {perm} à {name} ? Un tel accès augmente considérablement la surface d'attaque si {name} se trouve être une personne malveillante. Vous ne devriez le faire que si vous FAITES CONFIANCE à cette personne/ ce groupe.",
"users_import": "Importer des utilisateurs",
"users_export": "Exporter les utilisateurs",
"confirm_group_add_access_permission": "Voulez-vous vraiment accorder l'accès à {perm} à {name}? Un tel accès augmente considérablement la surface d'attaque si {name} se trouve être une personne malveillante. Vous ne devriez le faire que si vous FAITES CONFIANCE à cette personne/ ce groupe.",
"users_import": "Importer des comptes",
"users_export": "Exporter les comptes",
"users_import_csv_file": "Fichier CSV",
"users_import_update": "Mettre à jour les utilisateurs existants",
"users_import_delete": "Supprimer les utilisateurs non répertoriés",
"users_import_update_desc": "Si coché, tous les utilisateurs existants contenus dans le fichier CSV seront mis à jour avec les nouvelles valeurs",
"users_import_delete_desc": "Si coché, tous les utilisateurs existants qui ne sont pas dans le fichier CSV seront supprimés (et purgés).",
"users_import_confirm_destructive": "Êtes-vous sûr de vouloir supprimer les utilisateurs qui ne sont pas présents dans ce fichier ?",
"users_import_delete_others": "Supprimer les utilisateurs non répertoriés",
"users_import_csv_file_desc": "Le fichier CSV doit être au format UTF-8 et avec les colonnes nom d'utilisateur, mot de passe, groupes, email et quota. Pour un exemple d'importation de fichier CSV, vous pouvez <a href='/yunohost/api/users/export' target='_BLANK'>exporter vos utilisateurs dans un fichier CSV</a> et modifier le fichier.",
"users_import_update": "Mettre à jour les comptes existants",
"users_import_delete": "Supprimer les comptes non répertoriés",
"users_import_update_desc": "Si coché, tous les comptes existants contenus dans le fichier CSV seront mis à jour avec les nouvelles valeurs",
"users_import_delete_desc": "Si coché, tous les comptes existants qui ne sont pas dans le fichier CSV seront supprimés (et purgés).",
"users_import_confirm_destructive": "Voulez-vous vraiment supprimer les comptes qui ne sont pas présents dans ce fichier?",
"users_import_delete_others": "Supprimer les comptes non répertoriés",
"users_import_csv_file_desc": "Le fichier CSV doit être au format UTF-8 et avec les colonnes nom de compte, mot de passe, groupes, email et quota. Pour un exemple d'importation de fichier CSV, vous pouvez <a href='/yunohost/api/users/export' target='_BLANK'>exporter vos comptes dans un fichier CSV</a> et modifier le fichier.",
"yunohost_admin": "YunoHost Admin",
"domain": {
"config": {
@ -528,14 +520,14 @@
},
"dns": {
"auto_config": "Configuration automatique des enregistrements DNS",
"auto_config_ok": "La configuration automatique semble être OK !",
"auto_config_ok": "La configuration automatique semble être OK!",
"auto_config_zone": "Zone DNS actuelle",
"edit": "Modifier la configuration DNS",
"info": "La configuration automatique des enregistrements DNS est une fonctionnalité expérimentale. <br>Envisagez de sauvegarder votre zone DNS actuelle à partir de l'interface de votre registraire DNS avant de transférer les enregistrements à partir d'ici.",
"manual_config": "Enregistrements DNS suggérés pour la configuration manuelle",
"push_force": "Écraser les enregistrements existants",
"push_force_warning": "Il semble que certains enregistrements DNS que YunoHost aurait définis soient déjà dans la configuration du registrar. Vous pouvez utiliser l'option d'écrasement si vous savez ce que vous faites.",
"push_force_confirm": "Êtes-vous sûr de vouloir forcer tous les enregistrements DNS suggérés ? Sachez qu'il peut écraser manuellement ou des enregistrements par défaut importants définis par vous ou votre registrar.",
"push_force_confirm": "Voulez-vous vraiment forcer tous les enregistrements DNS suggérés? Sachez que cela peut écraser une configuration manuelle ou des enregistrements par défaut importants définis par vous ou votre registrar.",
"auto_config_ignored": "ignoré, ne sera pas modifié par YunoHost sauf si vous cochez l'option d'écrasement",
"push": "Envoyer les enregistrements DNS vers le registrar",
"methods": {
@ -555,55 +547,67 @@
"valid_for": "valable pendant {days}"
},
"explain": {
"main_domain": "Le domaine principal est le domaine à partir duquel les utilisateurs peuvent se connecter au portail (via \"{domain}/yunohost/sso\").<br>Il n'est donc pas possible de le supprimer.<br>Si vous voulez supprimer \"{domain}\", vous devrez d'abord choisir ou ajouter un autre domaine et le définir comme domaine principal."
"main_domain": "Le domaine principal est le domaine à partir duquel les personnes peuvent se connecter au portail (via \"{domain}/yunohost/sso\").<br>Il n'est donc pas possible de le supprimer.<br>Si vous voulez supprimer \"{domain}\", vous devrez d'abord choisir ou ajouter un autre domaine et le définir comme domaine principal."
},
"info": {
"apps_on_domain": "Applications installées sur le domaine",
"certificate_authority": "Autorité de certification SSL",
"registrar": "Registraire de nom de domaine"
"registrar": "Registraire de nom de domaine",
"dyn_dns_remove_and_unsubscribe": "Annuler également l'enregistrement du domaine du service DynDNS de YunoHost"
},
"see_parent_domain": "Voir le domaine parent",
"types": {
"main_domain": "Domaine principal"
},
"toggle_subdomains": "Afficher les sous-domaines"
"toggle_subdomains": "Afficher les sous-domaines",
"add": {
"from_registrar_desc": "Vous devrez configurer manuellement les enregistrements DNS chez votre registrar auprès duquel vous avez acheté votre nom de domaine pour finaliser la configuration de ce domaine. Le diagnostic de YunoHost vous guidera sur les enregistrements DNS à configurer de façon adéquate.",
"from_yunohost_desc": "Le projet YunoHost propose un service 'DynDNS' gratuit. Il est limité à un seul domaine par serveur (bien que vous puissiez également ajouter des sous-domaines plus tard en utilisant l'autre option 'Ajouter un domaine que je possède, ou un sous-domaine' ci-dessus). La configuration DNS sera automatiquement prise en charge par YunoHost. C'est l'idéal lorsque vous démarrez avec l'auto-hébergement en général et que vous ne souhaitez pas encore investir dans un nom de domaine. Cependant, à moyen/long terme, nous vous recommandons d'acheter votre propre nom de domaine auprès d'un registrar (fournisseur de nom de domaine) afin d'avoir la pleine propriété de votre domaine.",
"dyn_dns_password": "Mot de passe de récupération du domaine",
"dyn_dns_password_desc": "Ce mot de passe vous permettra de récupérer ultérieurement le contrôle du domaine si vous réinstallez votre système. Si vous avez déjà enregistré ce domaine auparavant, utilisez votre mot de passe de récupération ici pour le récupérer.",
"from_local": "Je veux un domaine pour un usage local / test uniquement",
"from_local_desc": "Si vous ne souhaitez pas un nom de domaine public \"réel\", vous pouvez utiliser n'importe quel nom se terminant par <code>.local</code> or <code>.test</code>. Les noms de domaine se terminant par <code>.local</code> sont particuliers en ce sens qu'ils peuvent être automatiquement résolus sur le réseau local, en supposant que les clients prennent en charge le protocole Bonjour. Il est également possible que vous deviez modifier le paramètre du fichier <code>/etc/hosts</code> (ou équivalent sous Windows) sur chaque client à partir duquel vous souhaitez utiliser ce domaine, ou de configurer des entrées DNS locales sur votre routeur internet.",
"from_registrar": "Je veux ajouter un domaine que je possède, ou un sous-domaine",
"from_yunohost": "Je ne possède pas de domaine, je veux enregistrer/utiliser un domaine DynDNS gratuit fourni par le projet YunoHost"
}
},
"domain_dns_push_failed_to_authenticate": "Échec de l'authentification sur l'API du registraire. Très probablement les <a href='#/domains/{domain}/config'>informations d'identification</a> sont incorrectes ? (Erreur : {error})",
"domain_dns_push_failed_to_authenticate": "Échec de l'authentification sur l'API du registrar. Les <a href='#/domains/{domain}/config'>informations d'identification</a> sont elles justes? (Erreur: {error})",
"domain_dns_push_managed_in_parent_domain": "La fonctionnalité d'enregistrement DNS automatique est gérée dans le domaine parent <a href='#/domains/{parent_domain}/dns'>{parent_domain}</a>.",
"domain_dns_push_not_applicable": "La fonctionnalité d'enregistrements DNS automatiques n'est pas applicable au domaine {domain},<br> Vous devez configurer manuellement vos enregistrements DNS en suivant la <a href='https://yunohost.org/dns'>documentation</a> et les suggestions configuration ci-dessous.",
"text_selection_is_disabled": "La sélection du texte est désactivée. Si vous voulez partager ce log *complet*, vous pouvez le faire en cliquant sur le bouton 'Partager avec Yunopaste'.<br/><small>Ou, si vous voulez vraiment vraiment sélectionner du texte, appuyez sur ces touches : ↓↓↑↑.</small>",
"text_selection_is_disabled": "La sélection du texte est désactivée. Si vous voulez partager ce log *complet*, vous pouvez le faire en cliquant sur le bouton 'Partager avec Yunopaste'.<br/><small>Ou, si vous voulez vraiment vraiment sélectionner du texte, appuyez sur ces touches: ↓↓↑↑.</small>",
"retry": "Retenter",
"important_yunohost_upgrade": "Une mise à jour majeure de YunoHost est disponible. Il est fortement recommandé de lire attentivement les notes de mise à jour sur le forum avant de procéder à celle-ci : <a href='https://forum.yunohost.org/tag/ynh_release'>Consultez les notes de mise à jour sur le forum.</a>",
"important_yunohost_upgrade": "Une mise à jour majeure de YunoHost est disponible. Il est fortement recommandé de lire attentivement les notes de mise à jour sur le forum avant de procéder à celle-ci: <a href='https://forum.yunohost.org/tag/ynh_release'>Consultez les notes de mise à jour sur le forum.</a>",
"app_state_broken": "Cassée",
"app_state_broken_explanation": "Cette application est actuellement cassée et ne peut être installée selon les contrôles automatiques de YunoHost",
"details_about": "Afficher plus de détails sur {subject}",
"group_admins": "Administrateurs",
"group_explain_admins": "Il s'agit d'un groupe spécial correspondant aux utilisateurs dits administrateurs. Les utilisateurs de ce groupe ont, pour faire simple, tous les droits sur le serveur (modification, création, ajout et suppression). Ils peuvent donc accéder à l'administration en ligne de YunoHost (panel web), se connecter au serveur avec SSH et utiliser la commande `sudo`. Ils recevront également les courriels envoyés à root@, admin@, admins@, tels que les notifications de diagnostic. Vous ne devriez ajouter dans ce groupe que des personnes en qui vous avez absolument confiance !",
"label_for_manifestname_help": "Il s'agit du nom affiché dans le portail de l'utilisateur. Il peut être modifié ultérieurement.",
"group_admins": "Comptes administrateurs",
"group_explain_admins": "Il s'agit d'un groupe spécial correspondant aux comptes dits administrateurs. Les comptes affectés à ce groupe ont, pour faire simple, tous les droits sur le serveur (modification, création, ajout et suppression). Ils peuvent donc accéder à l'administration en ligne de YunoHost (panel web), se connecter au serveur avec SSH et utiliser la commande `sudo`. Ils recevront également les courriels envoyés à root@, admin@, admins@, tels que les notifications de diagnostic. Vous ne devriez ajouter dans ce groupe que des comptes de personnes en qui vous avez absolument confiance!",
"label_for_manifestname_help": "Il s'agit du nom affiché dans le portail d'utilisation de YunoHost. Il peut être modifié ultérieurement.",
"manage_groups": "Gestion des groupes",
"tools_yunohost_settings": "Paramètres de YunoHost",
"wrong_password_or_username": "Mot de passe ou nom d'utilisateur erroné",
"confirm_install_app_broken": "AVERTISSEMENT ! Cette application est cassée selon les contrôles automatiques de YunoHost et elle est susceptible de casser votre système ! Vous ne devriez probablement PAS l'installer à moins de savoir ce que vous faites. Êtes-vous prêt à prendre ce risque ?",
"wrong_password_or_username": "Mot de passe ou nom de compte erroné",
"confirm_install_app_broken": "AVERTISSEMENT! Cette application est cassée selon les contrôles automatiques de YunoHost et elle est susceptible de casser votre système! Vous ne devriez probablement PAS l'installer à moins de savoir ce que vous faites. Voulez-vous vraiment prendre ce risque?",
"app": {
"links": {
"code": "Dépôt officiel de code",
"admindoc": "Documentation officielle de l'administrateur",
"admindoc": "Documentation officielle d'administration",
"forum": "Sujets concernant cette application sur le forum de YunoHost",
"package": "Dépôt des paquets de YunoHost",
"package": "Dépôt du paquet YunoHost",
"package_license": "Licence du paquet YunoHost",
"title": "Liens",
"userdoc": "Documentation officielle de l'utilisateur",
"userdoc": "Documentation officielle d'utilisation",
"website": "Site officiel",
"license": "Licence"
"license": "Licence de l'app"
},
"potential_alternative_to": "Alternative potentielle à :",
"upgrade": {
"notifs": {
"pre": {
"alert": "Vous devriez vérifier ces notifications avant de procéder à la mise à niveau, il pourrait y avoir des éléments d'information importants à connaître.",
"title": "Soyez averti !"
"title": "Avertissement!"
},
"post": {
"alert": "Il semble que la mise à jour se soit bien passée !\nVoici quelques informations que le responsable du paquet juge important de connaître à propos de cette mise à niveau.\nVous pouvez les retrouver dans la page d'information de l'application.",
"alert": "Il semble que la mise à jour se soit bien passée!\nVoici quelques informations que le responsable du paquet juge important de connaître à propos de cette mise à niveau.\nVous pouvez les retrouver dans la page d'information de l'application.",
"title": "Notifications post-mise à niveau pour '{name}'"
}
},
@ -614,36 +618,36 @@
"continue": "Passer à l'application suivante",
"stop": "Annuler les prochaines mises à niveau d'applications"
},
"installed_version": "Version installée :",
"installed_version": "Version installée:",
"open_this_app": "Ouvrez l'application",
"antifeatures": "Cette application a des fonctionnalités que vous n'aimerez peut-être pas :",
"antifeatures": "Cette application a des fonctionnalités que vous n'aimerez peut-être pas:",
"doc": {
"about": {
"title": "À propos",
"description": "Description"
},
"admin": {
"title": "Documentation de l'administrateur"
"title": "Documentation d'administration"
},
"notifications": {
"dismiss": "Rejeter/Annuler",
"understood": "Compris",
"title": "Notifications",
"post_upgrade": "Remarques suite à la mise à niveau",
"post_install": "Remarques suite à l'installation"
}
},
"info": {
"forum": "Cherchez ou demandez sur le forum !",
"problem": "Un problème avec cette application ?",
"config_panel_error": "Une erreur empêche l'affichage du panneau de configuration :",
"config_panel_error_please_report": "Merci de signaler cette erreur à l'équipe de YunoHost pour qu'elle soit corrigée !"
"forum": "Cherchez ou demandez sur le forum!",
"problem": "Un problème avec cette application?",
"config_panel_error": "Une erreur empêche l'affichage du panneau de configuration:",
"config_panel_error_please_report": "Merci de signaler cette erreur à l'équipe de YunoHost pour qu'elle soit corrigée!"
},
"install": {
"license": "Licence : {license}",
"license": "Licence: {license}",
"notifs": {
"post": {
"title": "Notifications de post-installation pour '{name}'",
"alert": "Il semble que l'installation se soit bien passée !\n Voici quelques notifications que le responsable du paquet considère comme importantes à connaître.\nVous pouvez les retrouver dans la page d'information de l'application."
"alert": "Il semble que l'installation se soit bien passée!\nVoici quelques notifications que le responsable du paquet considère comme importantes à connaître.\nVous pouvez les retrouver dans la page d'information de l'application."
},
"pre": {
"warning": "Ce qu'il faut savoir avant l'installation",
@ -653,20 +657,20 @@
},
"problems": {
"arch": "Cette application ne peut être installée que sur des architectures spécifiques ({required}). L'architecture de votre serveur est {current}.",
"broken": "Cette application est cassée selon les tests automatiques de YunoHost et elle est susceptible de casser votre système ! Vous ne devriez probablement PAS l'installer sauf si vous savez ce que vous faites.",
"broken": "Cette application est cassée selon les tests automatiques de YunoHost et elle est susceptible de casser votre système! Vous ne devriez probablement PAS l'installer sauf si vous savez ce que vous faites.",
"thirdparty": "Cette application ne fait pas partie du catalogue officiel de YunoHost, l'installation d'applications tierces peut compromettre l'intégrité et la sécurité de votre système. Vous ne devriez probablement PAS l'installer à moins de savoir ce que vous faites.",
"ignore": "Je comprends que cette installation peut casser mon système mais je veux quand même essayer.",
"inprogress": "Cette application est encore expérimentale (pour être plus clair elle ne fonctionne pas super bien et n'est pas encore bien intégrée dans YunoHost). En conséquence, elle est susceptible de casser votre système ! Vous ne devriez probablement PAS l'installer si vous ne savez pas ce que vous faites.",
"inprogress": "Cette application est encore expérimentale (pour être plus clair elle ne fonctionne pas super bien et n'est pas encore bien intégrée dans YunoHost). En conséquence, elle est susceptible de casser votre système! Vous ne devriez probablement PAS l'installer si vous ne savez pas ce que vous faites.",
"install": "Cette application est déjà installée et ne peut être installée plus d'une fois.",
"lowquality": "Cette application peut fonctionner mais n'est pas bien intégrée dans YunoHost. Certaines fonctionnalités telles que l'authentification unique (sso) et la sauvegarde/restauration peuvent ne pas être disponibles, ou ne pas respecter les bonnes pratiques.",
"ram": "Cette application nécessite {required} de RAM pour être installée/mise à niveau mais seul {current} est disponible actuellement. Même si cette application pouvait fonctionner, son processus d'installation nécessite une grande quantité de RAM. Votre serveur risque donc de geler (freezer) et de planter lamentablement.",
"version": "Cette application nécessite une version de YunoHost >= {required} et votre version installée est {current}, vous devriez envisager en premier lieu de mettre à niveau YunoHost."
},
"try_demo": "Essayer la démonstration",
"version": "Version actuelle : {version}"
"version": "Version actuelle: {version}"
},
"integration": {
"archs": "Architectures prises en charge :",
"archs": "Architectures prises en charge:",
"ldap": {
"false": "Ne permet pas d'utiliser les comptes YunoHost pour se connecter (LDAP)",
"true": "Utilise les comptes YunoHost pour se connecter (LDAP)",
@ -676,13 +680,16 @@
"false": "Ne peut être installé qu'une seule fois",
"true": "Peut être installée plusieurs fois"
},
"resources": "Utilisation classique des ressources : {ram} RAM, {disk} disque",
"resources": "Utilisation classique des ressources: {ram} RAM, {disk} disque",
"sso": {
"false": "Le système d'identification unique n'est pas disponible (SSO)",
"true": "Le système d'identification unique est disponible (SSO)",
"?": "Aucune information sur l'intégration du SSO"
},
"title": "Intégration avec YunoHost"
},
"uninstall": {
"purge_desc": "Supprimez le répertoire de données associé à l'application (il s'agit généralement de données que vous avez téléchargées vous-même à l'aide de l'application)."
}
}
}

View file

@ -15,7 +15,7 @@
"sorry": "Sentimos gran pesar por isto.",
"server_said": "Ao procesar a acción o servidor respondeu:",
"info": "A seguinte información podería ser útil para a persoa que che axude:",
"help": "Podes buscar axuda no <a href=\"https://forum.yunohost.org/\">foro</a> ou <a href=\"https://chat.yunohost.org/\">no chat</a> para arranxar a situación, ou informar do fallo no <a href=\"https://github.com/YunoHost/issues\">seguimento de fallos</a>.",
"help": "Podes buscar axuda no <a href=\"https://forum.yunohost.org/\">foro</a> ou na <a href=\"https://chat.yunohost.org/\">conversa</a> para arranxar a situación, ou informar do fallo no <a href=\"https://github.com/YunoHost/issues\">seguimento de fallos</a>.",
"error_message": "Mensaxe do erro:"
},
"api": {
@ -25,10 +25,10 @@
"pending": "En progreso",
"error": "Sen éxito"
},
"processing": "O servidor está procesando a acción...",
"partial_logs": "[...] (mira o historial para ver o rexistro completo)",
"processing": "O servidor está procesando a acción",
"partial_logs": "[] (mira o historial para ver o rexistro completo)",
"reconnecting": {
"title": "Intentando comunicarse co servidor...",
"title": "Intentando comunicarse co servidor",
"failed": "Semella que o servidor non responde. Podes intentar volver conectar ou intenta executar `systemctl restart yunohost-api`por ssh.",
"reason": {
"unknown": "Pechouse a conexión co servidor por razóns descoñecidas.",
@ -53,8 +53,8 @@
},
"add": "Engadir",
"action": "Acción",
"confirm_firewall_disallow": "Tes a certeza de querer pechar o porto {port} (protocolo: {protocol}, conexión: {connection})",
"confirm_firewall_allow": "Tes a certeza de querer abrir o porto {port} (protocolo: {protocol}, conexión: {connection})",
"confirm_firewall_disallow": "Tes a certeza de querer pechar o porto {port}? (protocolo: {protocol}, conexión: {connection})",
"confirm_firewall_allow": "Tes a certeza de querer abrir o porto {port}? (protocolo: {protocol}, conexión: {connection})",
"confirm_delete": "Tes a certeza de querer eliminar {name}?",
"confirm_change_maindomain": "Tes a certeza de querer cambiar o dominio principal?",
"confirm_app_default": "Tes a certeza de querer establecer esta como a app por defecto?",
@ -90,29 +90,22 @@
"app_info_changeurl_desc": "Cambiar o URL de acceso a esta aplicación (domino e/ou ruta).",
"app_info_default_desc": "Redireccionar a raíz do dominio a esta aplicación ({domain}).",
"app_info_access_desc": "Gupos / usuarias que actualmente teñen acceso a esta app:",
"app_config_panel_no_panel": "Esta aplicación non ten ningunha configuración dispoñible",
"app_config_panel_label": "Configurar esta app",
"app_config_panel": "Xestionar app",
"app_choose_category": "Elixe unha categoría",
"api_waiting": "Agardando pola resposta do servidor...",
"api_waiting": "Agardando pola resposta do servidor…",
"api_not_responding": "A API de YunoHost non responde. Pode que 'yunohost-api' esté caída ou esté reiniciando?",
"api_not_found": "Semella que o web-admin intentou solicitar algún recurso que non existe.",
"all_apps": "Tódalas apps",
"domain_delete_longdesc": "Eliminar este domino",
"domain_default_longdesc": "Este é o teu dominio por defecto.",
"domain_default_desc": "O dominio por defecto é o dominio de conexión onde accederán as usuarias.",
"domain_add_panel_without_domain": "Non teño un nome de dominio…",
"domain_add_panel_with_domain": "Xa teño un nome de dominio…",
"domain_add_dyndns_forbidden": "Xa estás subscrita a un dominio DynDNS, podes pedir no foro que se elimine o teu dominio DynDNS <a href='//forum.yunohost.org/t/nohost-domain-recovery-suppression-de-domaine-en-nohost-me-noho-st-et-ynh-fr/442'>no tema dedicado</a>.",
"domain_add_dyndns_doc": "... e quero un servizo de DNS dynamico.",
"domain_add_dns_doc": "... e configurei correctamente <a href='//yunohost.org/dns_config' target='_blank'>as zonas DNS</a>.",
"domain_add_dyndns_forbidden": "Xa tes unha subscrición/rexistro dun dominio DynDNS do proxecto YunoHost. Por decisión propia, esta característica está limitada a un dominio por servidor. Se queres engadir un subdominio pertencente ao dominio que xa tes utiliza a opción superior 'Engadir un dominio, ou subdominio, que xa posúo'. Se queres usar un dominio totalmente diferente, primeiro tes que eliminar o dominio DynDNS existente. Os dominios DynDNS son moi axeitados para aprender ao comezo dun proxecto de autohospedaxe, pero a medio/longo prazo recomendámosche mercar o teu propio nome de dominio nalgunha empresa rexistradora para ter a propiedade completa sobre o teu dominio.",
"domain_add": "Engadir dominio",
"dns": "DNS",
"disabled": "Desactivado",
"disable": "Desactivar",
"run_first_diagnosis": "Executar diagnóstico inicial",
"diagnosis_explanation": "A ferramenta de diagnóstico intentará identificar problemas habituais en diferentes ámbitos do teu servidor para asegurarse de que todo funciona como debe. O diagnóstico realízase automáticamente un par de veces ao día e envíase un email á usuaria administradora se aparecen problemas. Ten en conta que algúns test poderían non ser relevantes se non utilizas dito servizo (por exemplo XMPP) ou poderían fallar se realizas unha configuración moi complexa. Nestos casos, e se sabes o que estás a facer, podes ignorar estos avisos ou problemas.",
"diagnosis_first_run": "A ferramenta de diagnóstico intentará identificar problemas habituais en diferentes ámbitos do teu servidor para ter a certeza de que todo funciona como debe. Non te preocupes se ves moitos erros cando finalizas a configuración do servidor: para iso está a ferramenta, para axudarche a identificar os problemas e guiarte coa solución. O diagnóstico execútase automáticamente un par de veces ao día e envíase un email á usuaria administradora se se atopan problemas.",
"diagnosis_first_run": "A ferramenta de diagnóstico intentará identificar problemas habituais en diferentes ámbitos do teu servidor para ter a certeza de que todo funciona como debe. Non te preocupes se ves moitos erros cando finalizas a configuración do servidor: para iso está a ferramenta, para axudarche a identificar os problemas e guiarte coa solución. O diagnóstico realízase automáticamente un par de veces ao día e envíase un email á usuaria administradora se atopa problemas.",
"diagnosis": "Diagnóstico",
"domain_dns_conf_is_just_a_recommendation": "Esta sección amósache a configuración *recomendada*. *Non configura* os rexistros DNS por ti. É responsabilidade túa configurar as zonas DNS seguindo esta recomendación na web da empresa onde rexistraches o dominio.",
"details": "Detalles",
@ -151,7 +144,7 @@
"from_to": "de {0} a {1}",
"form_input_example": "Exemplo: {example}",
"form_errors": {
"required": "O campo é requerido.",
"required": "Completa este campo.",
"passwordMatch": "Os contrasinais non concordan.",
"passwordLenght": "O contrasinal debe ter polo menos 8 caracteres.",
"number": "Ten que ser un número.",
@ -163,7 +156,7 @@
"dynDomain": "Nome de dominio non válido: Só pode ter caracteres alfanuméricos en minúscula e barra",
"domain": "Nome de dominio non válido: Só pode ser alfanumérico en minúsculas, punto e barra",
"between": "O valor ten que estar entre {min} e {max}.",
"alphalownum_": "O valor só pode ter caracteres alfanuméricos en minúscula e trazos baixos.",
"alphalownumdot_": "O valor só pode ter caracteres alfanuméricos en minúscula e trazos baixos.",
"alpha": "O valor só pode ter caracteres alfanuméricos.",
"remote": "{message}",
"pattern": "{type}",
@ -192,11 +185,11 @@
"domain_name": "Nome de dominio",
"domain_dns_longdesc": "Ver configuración DNS",
"domain_dns_config": "Configuración DNS",
"domain_delete_forbidden_desc": "Non podes eliminar '{domain}' porque é o dominio por defecto, tes que elexir outro dominio (ou <a href='#/domains/add'>engadir un novo</a>) e configuralo como dominio por defecto antes de poder eliminar este.",
"domain_delete_forbidden_desc": "Non podes eliminar '{domain}' porque é o dominio por defecto, tes que elixir outro dominio (ou <a href='#/domains/add'>engadir un novo</a>) e configuralo como dominio por defecto antes de poder eliminar este.",
"items": {
"groups": "sen grupos | grupo | {c} grupos",
"domains": "sen dominios | dominio | {c} dominios",
"backups": "sen copia | copia | {c} copias de apoio",
"backups": "0 copias | copia de apoio | {c} copias de apoio",
"apps": "sen apps | app | {c} apps",
"users": "sen usuarias | usuaria | {c} usuarias",
"services": "sen servizos | servizo | {c} servizos",
@ -264,7 +257,6 @@
"nobody": "Ninguén",
"no": "Non",
"next": "Seguinte",
"myserver": "omeuservidor",
"multi_instance": "Pode ser instalada varias veces",
"migrations_disclaimer_not_checked": "Esta migración require que aceptes o descargo de responsabilidade antes de realizala.",
"migrations_disclaimer_check_message": "Lin e entendín o descargo de responsabilidade",
@ -331,11 +323,11 @@
"set_default": "Establecer por defecto",
"services": "Servizos",
"service_start_on_boot": "Executar no inicio",
"select_none": "Elexir ningún",
"select_all": "Elexir todo",
"select_none": "Seleccionar ningún",
"select_all": "Seleccionar todo",
"search": {
"not_found": "Non hai elementos que cumpran o criterio. | Hai 1 {items} que cumpre o teu criterio. | Hai {items} que cumpren o teu criterio.",
"for": "Buscar {items}..."
"not_found": "Hai {items} que cumpren o criterio. | Hai 1 {items} que cumpre o teu criterio. | Hai {items} que cumpren o teu criterio.",
"for": "Buscar {items}"
},
"save": "Gardar",
"running": "Executando",
@ -343,8 +335,8 @@
"human_routes": {
"users": {
"update": "Actualizar usuaria '{name}'",
"delete": "Eliminar usuaria '{user}'",
"create": "Crear usuaria '{user}'"
"delete": "Eliminar usuaria '{name}'",
"create": "Crear usuaria '{name}'"
},
"upgrade": {
"app": "Actualizar a app '{app}'",
@ -370,7 +362,7 @@
"run": "Realizar migracións"
},
"groups": {
"remove": "Eliminar a '{user]' do grupo '{name}'",
"remove": "Retirar a '{user}' do grupo '{name}'",
"add": "Engadir '{user}' ao grupo '{name}'",
"delete": "Eliminar grupo '{name}'",
"create": "Crear grupo '{name}'"
@ -537,7 +529,7 @@
"push": "Enviar rexistros DNS á rexistradora",
"push_force": "Sobrescribir rexistros existentes",
"push_force_warning": "Semella que algúns rexistros DNS que YunoHost querería configurar xa están establecidos na configuración. Podes usar a sobrescritura se sabes o que estás a facer.",
"push_force_confirm": "Tes a certeza de que queres forzar a sobrescritura cos rexistros suxeridos? Ten en conta que poderías sobrescribir rexistros por defecto ou manuais establecidos na rexistradora.",
"push_force_confirm": "Tes a certeza de querer forzar a sobrescritura dos rexistros suxeridos? Ten en conta que poderías sobrescribir rexistros por defecto ou manuais establecidos na rexistradora.",
"methods": {
"auto": "Automático",
"handled_in_parent": "Xestionado polo dominio nai",
@ -557,7 +549,8 @@
"info": {
"apps_on_domain": "Apps instaladas no dominio",
"certificate_authority": "Autoridade certificadora SSL",
"registrar": "Rexistradora"
"registrar": "Rexistradora",
"dyn_dns_remove_and_unsubscribe": "Tamén cancelar o rexistro do dominio no servizo DynDNS de YunoHost"
},
"see_parent_domain": "Ver dominio nai",
"types": {
@ -565,7 +558,17 @@
},
"toggle_subdomains": "Activar subdominios",
"explain": {
"main_domain": "O dominio principal é o dominio onde está o portal de acceso para as usuarias (vía \"{domain}/yunohost/sso\"). <br>Por tanto, non é posible eliminalo.<br>Se queres eliminar \"{domain}\", primeiro tes que elexir ou engadir outro dominio e establecelo como dominio principal."
"main_domain": "O dominio principal é o dominio onde está o portal de acceso para as usuarias (vía \"{domain}/yunohost/sso\"). <br>Por tanto, non é posible eliminalo.<br>Se queres eliminar \"{domain}\", primeiro tes que escoller ou engadir outro dominio e establecelo como dominio principal."
},
"add": {
"from_registrar_desc": "Deberás configurar manualmente os rexistros DNS na empresa rexistradora para finalizar a configuración do dominio. O sistema de diagnóstico de YNH dirache exactamente os rexistros DNS que debes configurar.",
"from_yunohost_desc": "O proxecto YunoHost mantén un servizo gratuíto 'DynDNS'. Está limitado a un dominio por servidor (mais podes engadir subdominios usando a opción 'Engadir un dominio que posúo, ou un subdominio'). A configuración DNS vai ser xestionada automáticamente por YunoHost. Normalmente isto é o ideal para comezar a usar a auto-hospedaxe se aínda non queres mercar un dominio propio. Porén, a medio/longo prazo, recomendámosche usar o teu propio dominio para ter completo control sobre o dominio utilizado.",
"dyn_dns_password": "Contrasinal de recuperación do dominio",
"dyn_dns_password_desc": "Este contrasinal permitirache recuperar o control sobre o dominio se reinstalas o sistema. Se xa rexistraches con anterioridade o dominio, usa aquí o contrasinal de recuperación para reclamalo.",
"from_local": "Quero un dominio só para uso local ou probas",
"from_local_desc": "Se non precisas un nome de dominio público \"real\", podes usar calquera dominio que remate en <code>.local</code> ou <code>.test</code>. Os nomes de dominio <code>.local</code> son especiais no senso de que se resolven de xeito automático na rede local, se asumimos que os clientes teñen soporte para o protocolo Bonjour. Alternativamente, poderías precisar editar o ficheiro <code>/etc/hosts</code> (ou o equivalente en windows) en cada cliente que queira conectarse ao dominio, ou configurar as entradas do DNS local no teu rúter de internet.",
"from_registrar": "Quero engadir un dominio, ou subdominio, que xa posúo",
"from_yunohost": "Non teño un dominio, quero rexistrar/usar un dominio DynDNS de balde proporcionado por YunoHost"
}
},
"domain_dns_push_managed_in_parent_domain": "A ferramenta para os rexistros DNS automáticos están xestionados polo dominio nai <a href='#/domains/{parent_domain}/dns'>{parent_domain}</a>.",
@ -578,7 +581,7 @@
"details_about": "Mostrar máis detalles sobre {subject}",
"group_admins": "Admins",
"group_explain_admins": "Este é un grupo especial para as usuarias administradoras. As usuarias deste grupo poden acceder á web de administración de YunoHost, conectarse ao servidor por SSH e usar o comando `sudo`. Tamén recibirán os emails enviados a root@, admin@ e admins@, por exemplo as notificacións do diagnóstico. Só deberías engadir a persoas nas que confías totalmente!",
"label_for_manifestname_help": "Este é o nome mostrado no porta da usuaria. Pódese cambiar despois.",
"label_for_manifestname_help": "Este é o nome mostrado no portal da usuaria. Pódese cambiar despois.",
"manage_groups": "Xestionar grupos",
"tools_yunohost_settings": "Axustes YunoHost",
"wrong_password_or_username": "Credenciais incorrectas",
@ -597,10 +600,10 @@
"title": "Doc Admin"
},
"notifications": {
"dismiss": "Desbotar",
"title": "Notificacións",
"post_upgrade": "Notas post actualización",
"post_install": "Notas post instalación"
"post_install": "Notas post instalación",
"understood": "Entendo"
}
},
"info": {
@ -647,7 +650,7 @@
"false": "Só permite unha única instalación",
"true": "Permite varias instalacións"
},
"resources": "Uso de recursos habitual: {ram] RAM, {disk} disco",
"resources": "Uso de recursos habitual: {ram} RAM, {disk} disco",
"sso": {
"false": "Non dispoñible o acceso unificado (SSO)",
"true": "Dispoñible o acceso unificado (SSO)",
@ -663,7 +666,8 @@
"title": "Ligazóns",
"userdoc": "Documentación oficial para usuarias",
"website": "Sitio Web Oficial",
"license": "Licenza"
"license": "Licenza da app",
"package_license": "Licenza do paquete YunoHost"
},
"potential_alternative_to": "Alternativa potencial para:",
"upgrade": {
@ -674,15 +678,18 @@
"continue": "Continuar coa seguinte app",
"notifs": {
"pre": {
"alert": "Deberías ler as notificacións antes de actualiar, podería haber información que debas coñecer.",
"alert": "Deberías ler as notificacións antes de actualizar, podería haber información que debas coñecer.",
"title": "Ten coidado!"
},
"post": {
"alert": "Semella que todo foi ben!\n Estas son algunha información acerca da actualización que as desenvolvedoras cren que debes coñecer.\nPodes lelas cando queiras na páxina de información da app.",
"alert": "Semella que todo foi ben!\n Esta é unha información acerca da actualización que as desenvolvedoras cren que debes coñecer.\nPodes lela cando queiras na páxina de información da app.",
"title": "Notificacións post-actualización para '{name}'"
}
},
"stop": "Cancelar as actualizacións da app seguinte"
},
"uninstall": {
"purge_desc": "Eliminar o directorio de datos asociados a esta app (normalmente son datos que ti subiches ao usar a app)."
}
}
}

View file

@ -13,32 +13,32 @@
"administration_password": "Kata sandi administrasi",
"all": "Semua",
"api": {
"processing": "Peladen sedang memproses tindakan...",
"processing": "Server sedang memproses tindakan…",
"query_status": {
"error": "Gagal",
"pending": "Sedang berjalan",
"success": "Berhasil",
"warning": "Selesai dengan galat atau peringatan"
"success": "Berhasil diselesaikan",
"warning": "Berhasil diselesaikan disertai dengan galat atau peringatan"
},
"reconnecting": {
"reason": {
"reboot": "Peladen Anda sedang dimulai ulang dan tidak akan bisa dicapai selama beberapa saat. Layar masuk akan tersedia setelah peladen Anda bisa dicapai.",
"shutdown": "Peladen Anda telah dimatikan tidak dapat dicapai. Nyalakan kembali dan layar masuk akan tersedia setelah peladen Anda bisa dicapai.",
"upgrade_system": "Tidak dapat terhubung ke peladen dikarenakan YunoHost sedang pembaruan. Menunggu peladen bisa terhubung kembali…",
"unknown": "Tidak dapat terhubung ke peladen karena alasan yang tidak diketahui."
"reboot": "Server Anda sedang dimulai ulang dan tidak akan bisa dicapai selama beberapa saat. Layar masuk akan tersedia setelah server Anda bisa dicapai.",
"shutdown": "Server Anda telah dimatikan dan tidak lagi dapat dicapai. Nyalakan kembali dan layar masuk akan tersedia setelah server Anda bisa dicapai.",
"upgrade_system": "Koneksi dengan server telah ditutup untuk pemutakhiran YunoHost. Menunggu server sampai bisa dipergunakan lagi…",
"unknown": "Koneksi dengan server telah ditutup dengan alasan yang tidak diketahui."
},
"title": "Mencoba menghubungi peladen...",
"title": "Mencoba menghubungi server…",
"failed": "Sepertinya peladen tidak merespons. Anda bisa coba memuat ulang atau coba jalankan `systemctl restart yunohost-api` via SSH.",
"success": "Peladen bisa dicapai! Anda bisa mencoba masuk kembali"
"success": "Sekarang server bisa dipergunakan! Anda bisa mencoba untuk masuk"
},
"partial_logs": "[...] (periksa di riwayat untuk log penuhnya)"
"partial_logs": "[…] (periksa semua log di dalam riwayat)"
},
"api_error": {
"server_said": "Ketika memproses tindakan, peladen mengatakan:",
"sorry": "Maaf tentang itu.",
"info": "Informasi berikut mungkin berguna untuk orang yang membantu Anda:",
"server_said": "Ketika memproses tindakan tersebut server mengatakan:",
"sorry": "Mohon maaf mengenai hal tersebut.",
"info": "Informasi berikut mungkin bisa berguna untuk orang yang akan membantu Anda:",
"error_message": "Pesan galat:",
"help": "Anda dapat mencari bantuan di <a href=\"https://forum.yunohost.org/\">forum</a> atau <a href=\"https://chat.yunohost.org/\">di obrolan</a> untuk menangani situasinya, atau laporkan bug di <a href=\"https://github.com/YunoHost/issues\">bugtracker</a>.",
"help": "Anda bisa mencari bantuan di <a href=\"https://forum.yunohost.org/\">forum</a> atau <a href=\"https://chat.yunohost.org/\">obrolan</a> agar bisa memperbaiki keadaan, atau laporkan bug di <a href=\"https://github.com/YunoHost/issues\">bugtracker</a>.",
"view_error": "Lihat galat"
},
"api_errors_titles": {
@ -46,15 +46,12 @@
"APIError": "YunoHost mengalami galat tak terduga",
"APIBadRequestError": "YunoHost mengalami sebuah galat",
"APIInternalError": "YunoHost mengalami sebuah galat internal",
"APIConnexionError": "YunoHost mengalami galat hubungan",
"APIConnexionError": "YunoHost mengalami galat pada koneksi",
"APINotFoundError": "API YunoHost tidak dapat menemukan rutenya"
},
"all_apps": "Semua aplikasi",
"api_waiting": "Menunggu respons peladen...",
"api_waiting": "Menunggu respons peladen",
"app_choose_category": "Pilih sebuah kategori",
"app_config_panel": "Panel konfigurasi",
"app_config_panel_label": "Konfigurasi aplikasi ini",
"app_config_panel_no_panel": "Aplikasi ini tidak dapat dikonfigurasi",
"app_info_access_desc": "Kelompok/pengguna yang diizinkan mengakses aplikasi ini:",
"app_info_change_url_disabled_tooltip": "Fitur ini belum diimplementasikan pada aplikasi ini",
"app_info_uninstall_desc": "Hapus aplikasi ini.",
@ -102,8 +99,6 @@
"disabled": "Dinonaktifkan",
"dns": "DNS",
"domain_add": "Tambahkan domain",
"domain_add_panel_with_domain": "Saya sudah memiliki domain…",
"domain_add_panel_without_domain": "Saya belum punya domain…",
"domain_delete_longdesc": "Hapus domain ini",
"download": "Unduh",
"enable": "Aktifkan",
@ -113,7 +108,7 @@
"skip": "Lewati",
"start": "Mulai",
"status": "Status",
"password": "Kata Sandi",
"password": "Kata sandi",
"human_routes": {
"upgrade": {
"system": "Perbarui sistem",
@ -151,7 +146,9 @@
"change_url": "Ubah URL akses dari '{name}'",
"set_default": "Mengalihkan pangkal domain '{domain}' ke '{name}'",
"change_label": "Ubah label '{prevName}' menjadi '{nextName}'",
"dismiss_notification": "Abaikan pemberitahuan untuk '{name}'"
"dismiss_notification": "Abaikan pemberitahuan untuk '{name}'",
"action_config": "Jalankan tindakan '{action}' dari konfigurasi aplikasi '{name}'",
"update_config": "Perbarui panel '{id}' dari konfigurasi aplikasi '{name}'"
},
"domains": {
"add": "Tambahkan domain '{name}'",
@ -159,7 +156,8 @@
"cert_install": "Pasang sertifikat untuk '{name}'",
"cert_renew": "Perbarui sertifikat untuk '{name}'",
"set_default": "Atur '{name}' sebagai domain utama",
"push_dns_changes": "Kirim rekaman DNS ke registrar untuk '{name}'"
"push_dns_changes": "Kirim rekaman DNS ke registrar untuk '{name}'",
"update_config": "Perbarui panel '{id}' dari konfigurasi domain '{name}'"
},
"backups": {
"delete": "Hapus cadangan '{name}'",
@ -182,16 +180,19 @@
"remove": "Hapus izin '{name}' untuk mengakses '{perm}'",
"add": "Izinkan '{name}' untuk mengakses '{perm}'"
},
"postinstall": "Jalankan langkah setelah pemasangan",
"postinstall": "Jalankan pasca pemasangan",
"migrations": {
"run": "Jalankan migrasi",
"skip": "Lewati migrasi"
},
"settings": {
"update": "Perbarui pengaturan '{panel}' global"
}
},
"save": "Simpan",
"search": {
"not_found": "Ada {items} yang cocok dengan kriteria Anda.",
"for": "Cari {items}..."
"not_found": "Ada {items} yang sesuai dengan kriteria Anda. | Ada 1 {items} yang sesuai kriteria Anda. | Ada {items} yang sesuai kriteria Anda.",
"for": "Cari {items}"
},
"select_all": "Pilih semua",
"stop": "Berhenti",
@ -251,7 +252,6 @@
"certificate": "Sertifikat",
"purge_user_data_checkbox": "Bersihkan data milik {name}? (Ini akan menghapus isi direktori home dan mail mereka)",
"purge_user_data_warning": "Membersihkan data pengguna tidak dapat dibatalkan. Pastikan Anda yakin dengan perbuatan Anda!",
"domain_add_dns_doc": "… dan saya sudah <a href='//yunohost.org/dns_config' target='_blank'>mengatur DNS dengan benar</a>.",
"domain_dns_config": "Konfigurasi DNS",
"domain_dns_longdesc": "Lihat konfigurasi DNS",
"footer": {
@ -266,7 +266,7 @@
"remote": "{message}",
"passwordMatch": "Kata sandi tidak sama.",
"required": "Bidang ini diperlukan.",
"appRepoUrl": "URL repositori aplikasi YunoHost seharusnya seperti https://domain.tld/jalur/ke/repo_ynh",
"appRepoUrl": "URL depot aplikasi YunoHost seharusnya seperti https://domain.tld/jalur/ke/repo_ynh",
"invalid_form": "Ada galat di formulir ini.",
"maxValue": "Harus sama atau lebih kecil dari {max}.",
"alpha": "Harus berupa huruf alfabet saja.",
@ -276,7 +276,9 @@
"between": "Harus di antara {min} dan {max}.",
"dynDomain": "Nama domain tidak valid: Huruf kecil, angka, dan tanda hubung saja",
"domain": "Nama domain tidak valid: Huruf kecil, angka, titik dan tanda hubung saja",
"email": "Surel tidak valid: Huruf, angka, dan <code>_.-</code> saja (cth. blabla@contoh.com, b1la-2@contoh.com)"
"email": "Surel tidak valid: Huruf, angka, dan <code>_.-</code> saja (cth. blabla@contoh.com, b1la-2@contoh.com)",
"alphalownumdot_": "Harus hanya berupa karakter alfanumerik kecil dan garis bawah.",
"emailForward": "Penerusan surel tidak valid: harus alfanumerik dan hanya karakter <code>_.-+</code> (misal. someone+tag@example.com, s0me-1+tag@example.com)"
},
"form_input_example": "Contoh: {example}",
"group": "Kelompok",
@ -314,7 +316,7 @@
},
"dns": {
"auto_config_ok": "Konfigurasi otomatis sepertinya oke!",
"push_force": "Timpa rekaman yang telah ada",
"push_force": "Timpa rekaman yang ada",
"auto_config": "Konfigurasi rekaman DNS otomatis",
"auto_config_ignored": "diabaikan, tidak akan diubah oleh YunoHost kecuali Anda mencentang opsi timpa",
"auto_config_zone": "Zona DNS saat ini",
@ -327,7 +329,7 @@
},
"edit": "Sunting konfigurasi DNS",
"manual_config": "DNS yang disarankan untuk konfigurasi manual",
"push_force_confirm": "Apakah Anda yakin ingin mengirim paksa semua rekaman DNS ini? Perlu diketahui bahwa itu bisa menimpa rekaman manual atau baku yang diatur oleh Anda atau registrar Anda.",
"push_force_confirm": "Apakah Anda yakin ingin mengirim paksa semua rekaman DNS ini? Perlu diketahui bahwa itu bisa menimpa konfigurasi rekaman atau rekaman baku yang sudah diatur oleh Anda atau registrar Anda.",
"info": "Konfigurasi rekaman DNS otomatis merupakan fitur eksperimental. <br>Disarankan untuk menyimpan zona DNS Anda saat ini dari registrar DNS Anda sebelum mengirim rekaman dari sini.",
"push": "Kirim rekaman DNS ke registrar",
"push_force_warning": "Sepertinya ada beberapa rekaman DNS yang direkomendasikan YunoHost telah ada di konfigurasi registrar. Anda bisa menggunakan opsi untuk menimpa mereka jika Anda tahu apa yang Anda lakukan."
@ -335,11 +337,22 @@
"info": {
"apps_on_domain": "Aplikasi yang dipasang di domain",
"registrar": "Registrar",
"certificate_authority": "Otoritas Sertifikat SSL"
"certificate_authority": "Otoritas Sertifikat SSL",
"dyn_dns_remove_and_unsubscribe": "Sekaligus batalkan pendaftaran domain dari layanan DynDNS YunoHost"
},
"see_parent_domain": "Lihat domain induk",
"explain": {
"main_domain": "Domain utama adalah domain di mana pengguna terhubung ke portal (via \"{domain}/yunohost/sso\").<br>Karena itu, domain tersebut tidak bisa dihapus.<br>Jika Anda ingin menghapus \"{domain}\", Anda harus mengatur atau menambah domain lain dan menunjuknya menjadi domain utama."
},
"add": {
"dyn_dns_password": "Sandi pemulihan domain",
"dyn_dns_password_desc": "Sandi ini memungkinkan anda memulihkan kendali domain apabila nanti anda memasang ulang sistem anda. Jika anda sudah mendaftarkan domain ini sebelumnya, gunakan sandi pemulihan anda di sini untuk mengklaimnya.",
"from_local": "Saya ingin satu domain untuk penggunaan / tes lokal saja",
"from_registrar": "Saya ingin menambahkan satu domain yang saya miliki, atau satu subdomain",
"from_registrar_desc": "Anda perlu mengonfigurasi catatan DNS secara manual pada registrar anda untuk menyelesaikan konfigurasi domain ini. Diagnosa YunoHost akan memandu anda tentang catatan DNS apa yang harus dikonfigurasi secara tepat.",
"from_yunohost": "Saya tidak memiliki domain, Saya ingin mendaftar/menggunakan domain DynDNS gratis yang disediakan oleh proyek YunoHost",
"from_yunohost_desc": "Proyek YunoHost mempertahankan layanan 'DynDNS' gratis. Ini terbatas pada satu domain per server (meskipun anda juga dapat menambahkan sub-domain nanti menggunakan opsi 'Tambahkan domain yang saya miliki, atau subdomain' lainnya di atas). Konfigurasi DNS akan ditangani secara otomatis oleh YunoHost. Ini sangat ideal ketika memulai dengan hosting mandiri secara umum dan anda belum ingin berinvestasi dalam nama domain. Namun, dalam jangka menengah/panjang, kami sarankan untuk membeli nama domain anda sendiri ke beberapa registrar agar anda memiliki kepemilikan penuh atas domain anda.",
"from_local_desc": "Jika anda tidak ingin satu nama domain publik \"aktual\", anda dapat menggunakan apa saja yang berakhiran dengan <code>.local</code> atau <code>.test</code>. Nama domain yang diakhiri dengan <code>.local</code> adalah istimewa dalam artian bahwa mereka secara otomatis akan berubah kepada jaringan lokal, dengan asumsi klien mendukung protokol Bonjour. Alternatifnya, anda mungkin perlu melakukan penyesuaian pada berkas <code>/etc/hosts</code> (atau yang setara dengan Windows) pada setiap klien yang ingin anda gunakan dari domain ini, atau untuk mengkonfigurasi entri di router internet anda."
}
},
"error_server_unexpected": "Galat peladen tak terduga",
@ -354,7 +367,7 @@
"hook_conf_ynh_settings": "Konfigurasi YunoHost",
"restart": "Mulai ulang",
"protocol": "Protokol",
"readme": "Readme",
"readme": "Bacalah",
"rerun_diagnosis": "Jalankan diagnosis lagi",
"open": "Buka",
"hook_data_xmpp": "Data XMPP",
@ -380,9 +393,9 @@
"only_working_apps": "Hanya aplikasi yang dapat bekerja",
"only_decent_quality_apps": "Hanya aplikasi yang lumayan berkualitas",
"placeholder": {
"username": "samsmith",
"username": "mamat",
"firstname": "Sam",
"lastname": "Smith",
"lastname": "Bambang",
"domain": "domainku.com",
"groupname": "Nama kelompok saya",
"fullname": "John Doe",
@ -395,20 +408,20 @@
"notifs": {
"post": {
"title": "Catatan setelah pemasangan untuk '{name}'",
"alert": "Sepertinya pemasangannya lancar!\n Berikut beberapa catatan yang pengelola paket rasa cukup penting untuk diketahui.\nAnda bisa membacanya kembali di halaman informasi aplikasi."
"alert": "Sepertinya pemasangannya lancar!\nBerikut beberapa catatan pengelola paket yang cukup penting untuk diketahui.\nAnda bisa membacanya kembali di halaman informasi aplikasi."
},
"pre": {
"warning": "Hal-hal yang perlu diketahui sebelum pemasangan",
"danger": "Pemasangan aplikasi ini sepertinya akan membuat masalah",
"danger": "Pemasangan aplikasi ini sepertinya akan mengakibatkan beberapa isu",
"critical": "Aplikasi tidak dapat dipasang"
}
},
"problems": {
"arch": "Aplikasi ini hanya bisa dipasang pada arsitektur tertentu ({required}) tapi arsitektur peladen Anda adalah {current}.",
"broken": "Aplikasi ini rusak menurut uji coba otomatis YunoHost dan mungkin akan merusak sistem Anda! Anda sebaiknya TIDAK memasangnya kecuali Anda yakin dengan apa yang Anda lakukan.",
"broken": "Aplikasi ini rusak menurut uji coba otomatis YunoHost dan mungkin akan merusak sistem Anda! Sebaiknya Anda TIDAK memasangnya kecuali Anda yakin dengan apa yang Anda lakukan.",
"thirdparty": "Aplikasi ini bukan bagian dari katalog resmi YunoHost, memasang aplikasi pihak ketiga dapat membahayakan integritas serta keamanan sistem Anda. Anda sebaiknya TIDAK memasangnya kecuali Anda yakin dengan apa yang Anda lakukan.",
"ignore": "Saya mengerti bahwa pemasangan ini mungkin akan merusak sistem saya tapi saya tetap ingin mencobanya.",
"inprogress": "Aplikasi ini masih eksperimental dan mungkin akan merusak sistem Anda! Anda sebaiknya TIDAK memasangnya kecuali Anda yakin dengan apa yang Anda lakukan.",
"inprogress": "Aplikasi ini masih eksperimental (jika tidak secara jelas tidak bekerja) dan mungkin akan merusak sistem Anda! Sebaiknya Anda TIDAK memasangnya kecuali Anda yakin dengan apa yang Anda lakukan.",
"install": "Telah dipasang dan tidak dapat dipasang lebih dari sekali.",
"lowquality": "Aplikasi ini mungkin bisa bekerja tapi tidak terintegrasi dengan baik di YunoHost. Beberapa fitur seperti SSO dan pencadangan mungkin tidak tersedia.",
"ram": "Aplikasi ini memerlukan RAM sebanyak {required} untuk pemasangan/pembaruan tapi hanya {current} yang tersedia sekarang. Meski aplikasi ini bisa bekerja, proses pemasangannya memerlukan RAM yang banyak sehingga peladen Anda bisa rusak atau prosesnya gagal total.",
@ -439,13 +452,14 @@
},
"links": {
"admindoc": "Dokumentasi Admin Resmi",
"code": "Repositori Kode Resmi",
"code": "Depot Kode Resmi",
"forum": "Topik tentang aplikasi ini di forum YunoHost",
"package": "Repositori Paket YunoHost",
"package": "Depot Paket YunoHost",
"title": "Tautan",
"userdoc": "Dokumentasi Pengguna Resmi",
"website": "Situs Resmi",
"license": "Lisensi"
"license": "Lisensi aplikasi",
"package_license": "Lisensi paket YunoHost"
},
"potential_alternative_to": "Alternatif dari:",
"upgrade": {
@ -481,12 +495,17 @@
"title": "Pemberitahuan",
"post_upgrade": "Catatan setelah pembaruan",
"post_install": "Catatan setelah pemasangan",
"dismiss": "Abaikan"
"understood": "Mengerti"
}
},
"info": {
"forum": "Cari atau tanyakan di forum!",
"problem": "Masalah dengan aplikasi ini?"
"problem": "Masalah dengan aplikasi ini?",
"config_panel_error": "Satu kesalahan mengakibatkan panel konfigurasi tidak dapat ditampilkan:",
"config_panel_error_please_report": "Harap melaporkan galat ini kepada tim YunoHost agar dapat diperbaiki!"
},
"uninstall": {
"purge_desc": "Singkirkan direktori data yang berkaitan dengan aplikasi (biasanya ini adalah data yang anda unggah sendiri menggunakan aplikasi)."
}
},
"app_state_inprogress_explanation": "Pengelola aplikasi ini menyatakan bahwa aplikasi ini belum siap untuk penggunaan umum. HATI-HATI!",
@ -538,7 +557,6 @@
"password_confirmation": "Konfirmasi kata sandi",
"app_info_changeurl_desc": "Ubah URL akses aplikasi ini (domain dan/atau jalur).",
"confirm_uninstall": "Apakah Anda yakin ingin melepas {name}?",
"domain_add_dyndns_doc": "...dan saya ingin layanan DNS dinamis.",
"from_to": "dari {0} ke {1}",
"group_add_permission": "Tambahkan izin",
"group_specific_permissions": "Izin pengguna",
@ -551,17 +569,16 @@
"wrong_password_or_username": "Nama pengguna atau kata sandi salah",
"firewall": "Tembok Api",
"user_new_forward": "terusanbaru@domainlainku.org",
"myserver": "peladensaya",
"experimental_warning": "Peringatan: fitur ini bersifat eksperimental dan belum bisa diputuskan sebagai stabil, Anda jangan menggunakannya kecuali jika Anda mengetahui apa yang Anda lakukan.",
"users_import": "Impor pengguna",
"app_info_default_desc": "Alihkan pangkal domain ke aplikasi ini ({domain}).",
"diagnosis_explanation": "Fitur diagnosis akan berusaha mencari masalah umum di setiap aspek peladen Anda untuk memastikan semuanya berjalan dengan baik. Diagnosis akan berjalan secara otomatis dua kali sehari dan sebuah surel akan dikirim ke administrator jika ada masalah yang ditemukan. Perlu dicatat bahwa beberapa uji coba mungkin tidak akan relevan jika Anda tidak ingin beberapa fitur (seperti XMPP) atau mungkin gagal jika Anda memiliki pengaturan yang kompleks. Jika begitu dan jika Anda mengetahui apa yang Anda lakukan, dipersilakan untuk mengabaikan masalah atau peringatan tersebut.",
"diagnosis_first_run": "Fitur diagnosis akan berusaha mencari masalah umum di setiap aspek peladen Anda untuk memastikan semuanya berjalan dengan baik. Mohon jangan panik jika Anda melihat banyak galat setelah Anda mengatur peladen Anda, itu ditujukan untuk membantu Anda menemukan masalahnya dan membantu Anda memperbaikinya. Diagnosis juga akan berjalan secara otomatis dua kali sehari dan sebuah surel akan dikirim ke administrator jika ada masalah yang ditemukan.",
"domain_add_dyndns_forbidden": "Anda telah berlangganan ke domain DynDNS, Anda bisa meminta untuk menghapus domain DynDNS Anda saat ini di <a href='//forum.yunohost.org/t/nohost-domain-recovery-suppression-de-domaine-en-nohost-me-noho-st-et-ynh-fr/442'>bagian khusus</a> di forum.",
"domain_add_dyndns_forbidden": "Anda sudah terdaftar/berlangganan ke satu domain DynDNS dari proyek YunoHost. Sesuai desain, fitur ini terbatas pada satu domain per server. Apabila Anda ingin menambahkan satu subdomain di domain Anda yang sudah ada, harap menggunakan opsi 'Tambah satu domain yang sudah saya miliki, atau satu subdomain' di atas. Apabila Anda ingin menggunakan domain yang berbeda, Anda harus menghapus domain DynDNS yang sudah ada. Domain DynDNS bagus apabila dipergunakan untuk hos mandiri, tetapi untuk jangka menengah/panjang, kami merekomendasikan kepada Anda agar membeli nama domain Anda sendiri pada suatu regstrar untuk kepemilikan penuh atas domain Anda.",
"domain_default_desc": "Domain utama adalah domain di mana pengguna masuk ke SSO.",
"error_connection_interrupted": "Peladen menutup koneksi alih-alih menjawabnya. Apakah nginx atau yunohost-api dimulai ulang atau terhenti?",
"good_practices_about_admin_password": "Anda akan mengatur kata sandi administrator baru. Kata sandi tersebut sebaiknya sekurang-kurangnya 8 karakter, meskipun memang adalah hal yang baik jika menggunakan yang lebih panjang (cth. parafrasa) dan/atau menggunakan berbagai macam karakter (kapital, huruf kecil, angka, dan karakter lainnya).",
"good_practices_about_user_password": "Anda akan mengatur kata sandi pengguna baru. Kata sandi tersebut sebaiknya sekurang-kurangnya 8 karakter, meskipun memang adalah hal yang baik jika menggunakan yang lebih panjang (cth. parafrasa) dan/atau menggunakan berbagai macam karakter (kapital, huruf kecil, angka, dan karakter lainnya).",
"error_connection_interrupted": "Server menutup koneksi alih-alih menjawabnya. Apakah nginx atau yunohost-api dimulai ulang atau terhenti untuk beberapa alasan?",
"good_practices_about_admin_password": "Sekarang Anda akan menentukan kata sandi admin baru. Kata sandi harus terdiri dari minimal 8 karakter - meskipun sebaiknya menggunakan kata sandi yang lebih panjang (misalnya parafrasa) dan/atau menggunakan beragam karakter (huruf besar, huruf kecil, angka, dan karakter khusus).",
"good_practices_about_user_password": "Sekarang Anda akan menentukan kata sandi pengguna baru. Kata sandi harus terdiri dari minimal 8 karakter - meskipun sebaiknya menggunakan kata sandi yang lebih panjang (misalnya parafrasa) dan/atau menggunakan beragam karakter (huruf besar, huruf kecil, angka, dan karakter khusus).",
"label_for_manifestname_help": "Ini adalah nama yang ditampilkan di portal pengguna. Bisa diubah lagi nanti.",
"manage_apps": "Kelola aplikasi",
"postinstall": {
@ -578,7 +595,7 @@
"text_selection_is_disabled": "Pemilihan teks dinonaktifkan. Jika Anda ingin membagikan log ini, silakan bagikan log dengan tombol 'Bagikan dengan Yunopaste'.<br/><small>Atau jika Anda benar-benar ingin pemilihan teks, tekan tombol ini: ↓↓↑↑.</small>",
"confirm_group_add_access_permission": "Apakah Anda yakin ingin memberi akses {perm} ke {name}? Akses tersebut bisa meningkatkan ancaman jika {name} merupakan orang jahat. Anda sebaiknya lakukan ini jika Anda PERCAYA kepada orang tersebut.",
"confirm_migrations_skip": "Melewati migrasi tidak direkomendasikan. Apakah Anda yakin ingin melewatinya?",
"confirm_install_app_inprogress": "PERINGATAN! Aplikasi ini masih eksperimental dan mungkin akan merusak sistem Anda! Anda sebaiknya TIDAK memasangnya kecuali Anda yakin dengan apa yang Anda lakukan. Apakah Anda yakin ingin memasangnya?",
"confirm_install_app_inprogress": "PERINGATAN! Aplikasi ini masih bersifat eksperimental (bila tidak secara jelas tidak dapat bekerja) dan mungkin akan merusak sistem Anda! Sebaiknya Anda TIDAK memasangnya kecuali Anda yakin dengan apa yang Anda lakukan. Apakah Anda ingin mengambil risiko tersebut?",
"run_first_diagnosis": "Jalankan diagnosis pertama",
"domain_delete_forbidden_desc": "Anda tidak bisa menghapus '{domain}' dikarenakan itu adalah domain utama, Anda harus memilih domain lain (atau <a href='#/domains/add'>tambahkan yang baru</a>) dan atur itu menjadi domain utama supaya bisa menghapus domain ini.",
"hook_data_xmpp_desc": "Konfigurasi pengguna dan ruangan, berkas unggahan",
@ -610,10 +627,10 @@
"logs": "Log",
"logs_suboperations": "Sub-tindakan",
"logs_context": "Konteks",
"logs_history": "Riwayat perintah yang dijalankan di sistem",
"logs_history": "Riwayat perintah yang dijalankan pada sistem",
"logs_more": "Tampilkan lebih banyak",
"logs_package": "Riwayat pengelolaan paket Debian",
"mailbox_quota_example": "700M adalah CD, 4700M adalah DVD",
"mailbox_quota_example": "700M pada CD, 4700M pada DVD",
"mailbox_quota_placeholder": "Atur ke 0 untuk menonaktifkan.",
"manage_groups": "Kelola kelompok",
"logs_error": "Galat",
@ -622,9 +639,9 @@
"user_emailaliases": "Alias surel",
"users_import_delete_others": "Hapus pengguna yang tidak ada di daftar",
"app_manage_label_and_tiles": "Kelola label dan kisi",
"confirm_app_default": "Apakah Anda yakin ingin membuat aplikasi ini yang diarahkan dari pangkal domain?",
"confirm_app_default": "Apakah Anda yakin ingin menjadikan aplikasi ini sebagai default?",
"unauthorized": "Tidak terotoriasasi",
"logs_ended_at": "Terakhir",
"logs_ended_at": "Akhir",
"permission_main": "Label utama",
"uninstall": "Lepas",
"users_import_update": "Perbarui pengguna yang telah ada",
@ -634,16 +651,16 @@
"migrations_disclaimer_not_checked": "Migrasi ini memerlukan Anda mengetahui peringatannya sebelum bisa dijalankan.",
"logs_path": "Jalur",
"permission_show_tile_enabled": "Terlihat sebagai kisi di portal pengguna",
"confirm_firewall_allow": "Apakah Anda yakin ingin membuka porta {port} (protokol: {protocol}, koneksi: {connection})",
"confirm_firewall_disallow": "Apakah Anda yakin ingin menutup porta {port} (protokol: {protocol}, koneksi: {connection})",
"confirm_firewall_allow": "Apakah Anda yakin ingin membuka port {port}? (protokol: {protocol}, koneksi: {connection})",
"confirm_firewall_disallow": "Apakah Anda yakin ingin menutup port {port}? (protokol: {protocol}, koneksi: {connection})",
"manage_domains": "Kelola domain",
"migrations_pending": "Migrasi yang tertunda",
"operations": "Tindakan",
"orphaned": "Tidak dikelola",
"postinstall_intro_2": "Dua langkah konfigurasi lagi diperlukan untuk mengaktifkan layanan peladen Anda.",
"confirm_install_app_broken": "PERINGATAN! Aplikasi ini rusak menurut uji coba otomatis YunoHost dan mungkin akan merusak sistem Anda! Anda sebaiknya TIDAK memasangnya kecuali Anda yakin dengan apa yang Anda lakukan. Apakah Anda yakin ingin memasangnya?",
"confirm_install_app_broken": "PERINGATAN! Aplikasi ini rusak menurut uji coba otomatis YunoHost dan mungkin akan merusak sistem Anda! Sebaiknya Anda TIDAK memasangnya kecuali Anda yakin dengan apa yang Anda lakukan. Apakah Anda yakin ingin memasangnya?",
"domain_dns_conf_is_just_a_recommendation": "Bagian ini hanya menampilkan kepada Anda konfigurasi *yang direkomendasikan*. Ini *tidak* mengonfigurasi DNS untuk Anda. Merupakan tugas Anda untuk mengonfigurasi zona DNS Anda di registrar DNS Anda menurut rekomendasi ini.",
"domain_dns_push_failed_to_authenticate": "Tidak dapat mengautentikasi API registrar. Sepertinya <a href='#/domains/{domain}/config'>kredensialnya</a> salah? (Galat: {error})",
"domain_dns_push_failed_to_authenticate": "Autentikasi gagal pada API registrar. Besar kemungkinan karena <a href='#/domains/{domain}/config'>kredensial</a> tidak sesuai? (Galat: {error})",
"ignore": "Abaikan",
"label_for_manifestname": "Label untuk {name}",
"local_archives": "Arsip lokal",
@ -655,18 +672,24 @@
"migrations": "Migrasi",
"next": "Selanjutnya",
"domain_dns_push_not_applicable": "Fitur rekaman DNS otomatis tidak tersedia untuk domain {domain},<br> Anda harus secara manual mengonfigurasi rekaman DNS Anda dengan mengikuti <a href='https://yunohost.org/dns'>dokumentasi</a> dan konfigurasi yang disarankan di bawah ini.",
"logs_system": "Log kernel dan operasi sistem tingkat dasar lainnya",
"logs_system": "Log kernel dan peristiwa tingkat dasar lainnya",
"operation_failed_explanation": "Tindakan ini gagal! Sangat maaf sekali :( Anda bisa mencoba <a href='https://yunohost.org/help'>tanya-tanya</a>. Mohon sediakan *log penuh* dari tindakan tersebut kepada yang membantu Anda. Anda bisa melakukan tersebut dengan tombol 'Bagikan dengan Yunopaste'. Ketika membagikan log tersebut, YunoHost akan secara otomatis mencoba menyembunyikan data pribadi seperti nama domain dan IP.",
"items_verbose_count": "Ada {items}. | Ada 1 {items}. | Ada {items}.",
"perform": "Lakukan",
"perform": "Laksanakan",
"domain_dns_push_managed_in_parent_domain": "Fitur rekaman DNS otomatis dikelola di domain induk <a href='#/domains/{parent_domain}/dns'>{parent_domain}</a>.",
"confirm_install_app_lowquality": "Peringatan: aplikasi ini mungkin bisa bekerja tapi tidak terintegrasi dengan baik di YunoHost. Beberapa fitur seperti SSO dan pencadangan mungkin tidak tersedia.",
"logs_access": "Daftar akses dan blokiran",
"permission_corresponding_url": "URL Aplikasi",
"permission_corresponding_url": "URL yang sesuai",
"users_import_delete_desc": "Jika dipilih, semua pengguna yang telah ada yang tidak ada di berkas CSV akan dihapus (dan dibersihkan).",
"users_import_update_desc": "Jika dipilih, semua pengguna yang telah ada yang ada di berkas CSV akan diperbarui",
"users_import_update_desc": "Jika dipilih, semua pengguna yang ada di dalam berkas CSV akan diperbarui dengan nilai baru",
"users_import_delete": "Hapus pengguna yang tidak ada di daftar",
"users_import_csv_file_desc": "Berkas CSV harus dalam UTF-8 dan dengan kolom nama pengguna, kata sandi, kelompok, surel, dan kuota surel. Sebagai contoh berkas CSV impornya, Anda bisa <a href='/yunohost/api/users/export' target='_BLANK'>mengekspor daftar pengguna Anda ke berkas CSV</a> dan mengubah berkas tersebut.",
"pending_migrations": "Terdapat migrasi tertunda yang menunggu untuk dijalankan. Silakan ke <a href='#/tools/migrations'>Alat > Migrasi</a> untuk memulai mereka.",
"error_modify_something": "Anda harus mengubah sesuatu"
"error_modify_something": "Anda harus mengubah sesuatu",
"group_format_name_help": "Anda bisa menggunakan karakter alfanumerik dan garis bawah",
"items_verbose_items_left": "Ada {items} tersisa. | Ada 1 {items} tersisa. | Ada {items} tersisa.",
"traceback": "Telusur",
"select_none": "Pilih tidak sama sekali",
"nobody": "Bukan siapa-siapa",
"confirm_postinstall": "Anda akan meluncurkan proses pasca instalasi pada domain {domain}. Mungkin memerlukan waktu beberapa menit, *jangan hentikan pengoperasian*."
}

View file

@ -28,10 +28,6 @@
"description": "Descrizione",
"disable": "Disabilita",
"domain_add": "Aggiungi dominio",
"domain_add_dns_doc": "… e ho <a href='//yunohost.org/dns_config' target='_blank'>correttamente impostato il mio DNS</a>.",
"domain_add_dyndns_doc": "... e voglio un servizio DNS dinamico.",
"domain_add_panel_with_domain": "Ho già un nome di domino…",
"domain_add_panel_without_domain": "Non ho un nome di domino…",
"domain_dns_config": "Configurazione del DNS",
"domain_name": "Nome a domino",
"domains": "Domini",
@ -55,7 +51,7 @@
"ipv4": "IPv4",
"ipv6": "IPv6",
"label": "Etichetta",
"label_for_manifestname": "Etichetta per {name} (nome mostrato nel portale utente)",
"label_for_manifestname": "Etichetta per {name}",
"login": "Accedi",
"logout": "Esci",
"mailbox_quota_description": "Per esempio, 700M è un CD, 4700M è un DVD.",
@ -63,7 +59,6 @@
"manage_domains": "Gestisci domini",
"manage_users": "Gestisci utenti",
"multi_instance": "Può essere installato più volte",
"myserver": "mioserver",
"next": "Successivo",
"no": "No",
"open": "Apri",
@ -152,7 +147,7 @@
"confirm_upnp_disable": "Sei sicuro di voler disabilitare UPnP?",
"confirm_reboot_action_reboot": "Sei sicuro di voler riavviare il tuo server?",
"confirm_reboot_action_shutdown": "Sei sicuro di voler spegnere il tuo server?",
"domain_dns_conf_is_just_a_recommendation": "Questa pagina ti mostra la configurazione *raccomandata*. *Non* configura il DNS per te. Configurare le tue zone DNS nel registrar DNS in accordo con queste raccomandazioni è compito tuo.",
"domain_dns_conf_is_just_a_recommendation": "Questa sezione mostra la configurazione *raccomandata*. *Non* configura il DNS per te. Configurare le tue zone DNS nel registrar DNS in accordo con queste raccomandazioni è compito tuo.",
"migrations": "Migrazioni",
"migrations_pending": "Migrazioni in attesa",
"migrations_done": "Migrazioni precedenti",
@ -218,7 +213,11 @@
"words": {
"default": "Predefinito",
"collapse": "Collassa",
"browse": "Naviga"
"browse": "Naviga",
"none": "Nessuno",
"separator": ", ",
"link": "Collegamento",
"valid": "Valido"
},
"unignore": "Non ignorare più",
"since": "da",
@ -239,7 +238,7 @@
"permissions": "Permessi",
"groups_and_permissions_manage": "Gestisci i gruppi e i permessi",
"groups_and_permissions": "Gruppi e permessi",
"group_specific_permissions": "Permessi specifici per l'utente",
"group_specific_permissions": "Permessi per lutente singolo",
"group_explain_visitors_needed_for_external_client": "Poni attenzione al fatto che dovrai dare l'accesso ai visitatori ad alcune applicazioni se pensi di usarle con dei client esterni. Ad esempio questo è il caso di Nextcloud nel caso tu lo voglia usare con un client di sincronizzazione dal tuo smartphone o dal computer desktop.",
"group_explain_visitors": "Questo è un gruppo speciale che individua i visitatori anonimi",
"run_first_diagnosis": "Avvio diagnosi iniziali",
@ -250,7 +249,7 @@
"app_state_lowquality_explanation": "Questa applicazione può essere funzionale ma potrebbe presentare dei problemi oppure non essere pienamente integrata con YunoHost oppure non rispettare le pratiche consigliate.",
"app_state_lowquality": "bassa qualità",
"all": "Tutti",
"pending_migrations": "Ci sono alcune migrazioni in sospeso in attesa di essere eseguite. Consulta <a href='#/tools/migrations'>Tools > Migrations</a> per visualizzarle.",
"pending_migrations": "Ci sono alcune migrazioni in sospeso in attesa di essere eseguite. Vai in <a href='#/tools/migrations'>Strumenti > Migrazioni</a> per eseguirle.",
"tip_about_user_email": "Gli utenti sono creati associati ad un indirizzo email (e un account XMPP) del tipo utente@domain.tld. Indirizzi email addizionali e forward possono essere aggiunti successivamente dall'amministratore e dall'utente.",
"logs_suboperations": "Sub-operazioni",
"permission_show_tile_enabled": "Mostra il tile nel portale dell'utente",
@ -270,11 +269,12 @@
"cache": "Cache",
"fallback_language_description": "Lingua utilizzata nel caso che la traduzione non sia disponibile.",
"fallback_language": "Lingua di riserva",
"language": "Lingua"
"language": "Lingua",
"theme": "Attiva o disattiva la modalità scura"
},
"search": {
"not_found": "Ci sono {items} che corrispondono ai tuoi criteri. | Cè un {items} che corrisponde ai tuoi criteri. | Ci sono {items} che corrispondono ai tuoi criteri.",
"for": "Cerca per {items}..."
"for": "Cerca per {items}"
},
"readme": "Leggimi",
"postinstall_set_domain": "Imposta dominio principale",
@ -284,7 +284,8 @@
"lastname": "Rossi",
"firstname": "Mario",
"username": "mariorossi",
"file": "Scegli un file o trascinalo qui"
"file": "Scegli un file o trascinalo qui",
"fullname": "Mario Rossi"
},
"perform": "Eseguire",
"migrations_disclaimer_not_checked": "Questa migrazione necessita della tua accettazione delle condizioni d'utilizzo prima di essere eseguita.",
@ -327,7 +328,7 @@
"dynDomain": "Nome dominio non valido: Dev'esser composto di soli caratteri alfanumerici minuscoli e trattini",
"domain": "Nome dominio non valido: Dev'esser composto di soli caratteri alfanumerici minuscoli, punti e trattini",
"between": "Il valore dev'essere compreso tra {min} e {max}.",
"alphalownum_": "Il valore deve contenere solo caratteri alfanumerici minuscoli e underscore.",
"alphalownumdot_": "Il valore deve contenere solo caratteri alfanumerici minuscoli e underscore.",
"alpha": "Il valore deve comprendere solo caratteri alfanumerici.",
"remote": "{message}",
"pattern": "{type}",
@ -344,7 +345,7 @@
"error": "Errore",
"enabled": "Abilitato",
"domain_delete_forbidden_desc": "Non puoi rimuovere '{domain}' fintanto che è il tuo dominio principale, devi prima selezionare un altro dominio (o <a href='#/domains/add'>crearne un'altro</a>) e impostarlo come dominio principale.",
"domain_add_dyndns_forbidden": "Hai già sottoscritto un dominio DynDNS, puoi richiedere di rimuovere il tuo dominio DynDNS corrente sul forum <a href='//forum.yunohost.org/t/nohost-domain-recovery-suppression-de-domaine-en-nohost-me-noho-st-et-ynh-fr/442'>nel thread dedicato</a>.",
"domain_add_dyndns_forbidden": "Hai già registrato/sottoscritto un dominio DynDNS dal progetto YunoHost. Questopzione è intenzionalmente limitata a un solo dominio di questo genere per ciascun server. Se vuoi aggiungere un sottodominio al tuo dominio già sottoscritto, usa lopzione “Aggiungi un dominio o un sottodominio che possiedo” qui sopra. Se vuoi usare un dominio completamente differente, dovresti prima rimuovere il tuo dominio DynDNS esistente. I domini DynDNS sono unottima possibilità per esordire nel self-hosting, ma nel medio/lungo termine raccomandiamo di acquistare il proprio nome dominio, per averne un controllo completo.",
"disabled": "Disabilitato",
"dead": "Inattivo",
"day_validity": " Scaduto | 1 giorno | {count} giorni",
@ -355,11 +356,8 @@
},
"code": "Codice",
"app_show_categories": "Mostra categorie",
"app_config_panel_no_panel": "Questa applicazione non ha nessuna configurazione disponibile",
"app_config_panel_label": "Configura l'app",
"app_config_panel": "Pannello configurazioni",
"app_choose_category": "Scegli una categoria",
"api_waiting": "Aspetto la risposta del server...",
"api_waiting": "Aspetto la risposta del server…",
"api_not_found": "Sembra che l'amministratore ha provato a richiedere qualcosa che non esiste.",
"api_errors_titles": {
"APIConnexionError": "YunoHost ha riscontrato un errore di connessione",
@ -384,10 +382,10 @@
"pending": "In corso",
"error": "Fallito"
},
"processing": "Il server sta processando la richiesta...",
"partial_logs": "[...] (controlla i log completi nella cronologia)",
"processing": "Il server sta processando la richiesta",
"partial_logs": "[] (controlla i log completi nella cronologia)",
"reconnecting": {
"title": "Sto cercando di comunicare con il server...",
"title": "Sto cercando di comunicare con il server",
"failed": "Sembra che il server non stia rispondendo. Puoi riprovare a collegarti oppure prova a dare il comando `systemctl restart yunohost-api` da ssh.",
"reason": {
"shutdown": "Il tuo server si sta spegnendo e non è più raggiungibile. Accendilo nuovamente e un prompt di login sarà visualizzato appena il server tornerà raggiungibile.",
@ -439,7 +437,7 @@
"run": "Esegui migrazioni"
},
"groups": {
"remove": "Rimuovi {'user'} dal gruppo '{name}'",
"remove": "Rimuovi '{user}' dal gruppo '{name}'",
"add": "Aggiungi '{user}' al gruppo '{name}'",
"delete": "Elimina gruppo '{name}'",
"create": "Crea gruppo '{name}'"
@ -453,7 +451,9 @@
"delete": "Elimina dominio '{name}'",
"add": "Aggiungi dominio '{name}'",
"push_dns_changes": "Sincronizza i record DNS al registrar per '{name}'",
"update_config": "Aggiorna la configurazione di '{name}'"
"update_config": "Aggiorna il pannello {id} della configurazione del dominio {name}",
"cert_renew": "Rinnova il certificato per {name}",
"cert_install": "Installa il certificato per {name}"
},
"diagnosis": {
"unignore": {
@ -473,18 +473,27 @@
"create": "Crea backup"
},
"apps": {
"update_config": "Aggiorna la configurazione dell'app '{name}'",
"update_config": "Aggiorna il pannello {id} della configurazione dellapp {name}",
"uninstall": "Disinstalla l'app '{name}'",
"set_default": "Reindirizza la domain root di '{domain}' a '{name}'",
"install": "Installa l'app '{name}'",
"change_url": "Cambia l'URL d'accesso di '{name}'",
"change_label": "Cambia label da '{prevName}' a '{nextName}'"
"change_label": "Cambia label da '{prevName}' a '{nextName}'",
"dismiss_notification": "Nascondi la notifica per {name}",
"action_config": "Esegui lazione {action} della configurazione dellapp {name}"
},
"reconnecting": "Riconnessione"
"reconnecting": "Riconnessione",
"settings": {
"update": "Aggiorna le impostazioni globali di {panel}"
}
},
"postinstall": {
"force": "Forza il post-install",
"title": "Post-installazione"
"title": "Post-installazione",
"user": {
"title": "Crea il primo utente amministratore",
"first_user_help": "Questo utente avrà privilegi da amministratore e gli sarà permesso di connettersi sia a questinterfaccia di amministrazione chee direttamente al server via SSH.\nPoiché si tratta di un utente normale, potrà anche connettersi al portale utente (SSO) con le sue credenziali.\nQuando la post-installazione sarà completa, potrai creare altri utenti amministratori aggiungendoli al gruppo amministratori."
}
},
"items_verbose_items_left": "Ci sono {items} oggetti rimasti. | Cè un {items} rimasto | Ci sono {items} rimasti.",
"hook_data_xmpp_desc": "Configurazioni utenti e stanze, upload file",
@ -509,8 +518,47 @@
"edit": "Modifica la configurazione DNS",
"manual_config": "Records DNS suggeriti per la configurazione manuale",
"info": "La configurazione automatica dei records DNS e una funzione sperimentale. <br>Considera il salvataggio della tua zona DNS corrente dall'interfaccia del tuo registrar DNS prima di impostare records da qui.",
"push_force_warning": "Sembra che alcuni records DNS che YunoHost avrebbe impostato, sono già presenti nella configurazione del registrar. Puoi usare l'opzione sovrascrivi se sai ciò che stai facendo."
}
"push_force_warning": "Sembra che alcuni records DNS che YunoHost avrebbe impostato, sono già presenti nella configurazione del registrar. Puoi usare l'opzione sovrascrivi se sai ciò che stai facendo.",
"methods": {
"semi_auto": "Semi-automatico",
"manual": "Manuale",
"none": "Nessuno",
"handled_in_parent": "Gestito nel dominio genitore",
"auto": "Automatico"
}
},
"info": {
"apps_on_domain": "App installate in questo dominio",
"dyn_dns_remove_and_unsubscribe": "De-registra inoltre il dominio dal servizio DynDNS di YunoHost",
"certificate_authority": "Autorità di certificazione SSL",
"registrar": "Registro"
},
"add": {
"dyn_dns_password": "Password per il recupero del dominio",
"dyn_dns_password_desc": "Questa password ti permetterà di recuperare il controllo del dominio qualora scegliessi di reinstallare il tuo sistema in un secondo momento. Se hai già registrato questo dominio in precedenza, usa qui la tua password di recupero per riottenerlo.",
"from_local": "Voglio un dominio per uso locale/solo test",
"from_yunohost_desc": "Il progetto YunoHost mantiene un servizio “DynDNS” gratuito. È limitato a un dominio per server (anche se puoi anche aggiungere sottodomini successivamente, usando lopzione “Aggiungi un dominio o un sottodominio che possiedo” qui sopra). La configurazione DNS sarà gestita da YunoHost. Questopzione è lideale per esordire nel self-hosting e se non vuoi investire in un nome dominio per il momento. Tuttavia, nel medio/lungo termine raccomandiamo di acquistare il tuo nome dominio da un registrar, per avere un controllo completo del tuo dominio.",
"from_local_desc": "Se non vuoi un “vero” nome di dominio pubblico, puoi usare qualunque cosa che termini con <code>.local</code> o <code>.test</code>. I nomi dominio che terminano con <code>.local</code> sono speciali perché possono essere risolti automaticamente dal network locale, assumendo che i client supportino il protocollo Bonjour. Alternativamente potresti dover modificare il file <code>/etc/hosts</code> (o lequivalente di Windows) su ogni client da cui desideri utilizzare questo dominio, o dover configurare parametri DNS locali sul tuo router internet.",
"from_registrar": "Vorrei aggiungere un dominio o un sottodominio che possiedo",
"from_registrar_desc": "Dovrai configurare manualmente i registri DNS sul tuo registrar per finalizzare la configurazione di questo dominio. La diagnosi di YunoHost ti guiderà per individuare quali registri DNS devi configurare.",
"from_yunohost": "Non possiedo un dominio, voglio registrare/usare un dominio DynDNS gratuito, offerto dal progetto YunoHost"
},
"toggle_subdomains": "Attiva o disattiva i sottodomini",
"types": {
"main_domain": "Dominio principale"
},
"explain": {
"main_domain": "Il dominio principale è il dominio da cui gli utenti possono connettersi al portale (via “{domain}/yunohost/sso”).<br>Per questa ragione non è possibile eliminarlo.<br>Se vuoi eliminare “{domain}”, devi prima scegliere o aggiungere un altro dominio come principale."
},
"cert": {
"valid_for": "Valido per {days}",
"types": {
"selfsigned": "Auto-verificato",
"other": "Altro/Sconosciuto",
"letsencrypt": "Lets Encrypt"
}
},
"see_parent_domain": "Vedi il dominio genitore"
},
"users_import_csv_file_desc": "Il file CSV dovrebbe essere in UTF-8 e con le colonne username, password , gruppi, email e quota. Per avere un esempio di un file CSV da importare, puoi <a href='/yunohost/api/users/export' target='_blank'>esportare i tuoi attuali utenti in un file CSV</a> e modificarlo.",
"users_import_delete_others": "Elimina utenti non in lista",
@ -529,5 +577,119 @@
"users_import_delete_desc": "Se spuntato, tutti gli utenti esistenti che non sono nel file CSV saranno eliminati (e espulsi).",
"retry": "Riprova",
"app_state_broken_explanation": "Questa applicazione è attualmente non funzionante e quindi non installabile secondo i controlli automatici di YunoHost",
"confirm_install_app_broken": "ATTENZIONE! Questa applicazione non è funzionante secondo i controlli automatici di YunoHost e quindi potrebbe rovinare il vostro sistema! Probabilmente NON dovreste installarla a meno che non sappiate cosa state facendo. Volete prendervi questo rischio?"
"confirm_install_app_broken": "ATTENZIONE! Questa applicazione non è funzionante secondo i controlli automatici di YunoHost e quindi potrebbe rovinare il vostro sistema! Probabilmente NON dovreste installarla a meno che non sappiate cosa state facendo. Volete prendervi questo rischio?",
"app": {
"doc": {
"notifications": {
"understood": "Ho capito",
"title": "Notifiche",
"post_upgrade": "Note post-aggiornamento",
"post_install": "Note post-installazione"
},
"about": {
"title": "Altro su",
"description": "Descrizione"
},
"admin": {
"title": "Documentazione admin"
}
},
"antifeatures": "Questa app ha funzionalità che potrebbero non piacerti:",
"info": {
"forum": "Cerca o domanda sul forum!",
"problem": "Un problema con quest'app?",
"config_panel_error_please_report": "Per favore, segnala questo errore al team di YunoHost, perché sia risolto!",
"config_panel_error": "Un errore impedisce di mostrare il pannello di configurazione:"
},
"install": {
"license": "Licenza: {license}",
"notifs": {
"post": {
"title": "Notifiche successive all'installazione di '{name}'",
"alert": "Sembra che linstallazione abbia funzionato!\nEcco alcune notifiche che la persona che ha creato il pacchetto considera importante conoscere.\nPuoi leggerle di nuovo nella pagina di informazione dellapplicazione."
},
"pre": {
"warning": "Ciò che occorre sapere prima dell'installazione",
"danger": "L'installazione dell'applicazione determinerà molto probabilmente dei problemi",
"critical": "L'applicazione non può essere installata"
}
},
"problems": {
"arch": "Questa applicazione può essere installata solo su architetture specifiche ({required}), ma l'architettura del tuo server è {current}.",
"broken": "Questa applicazione è guasta secondo le verifiche automatiche di YunoHost ed è probabile che guasti il tuo sistema! Probabilmente NON dovresti installarla a meno che sappia ciò che stai facendo.",
"ignore": "Capisco che questa installazione può guastare il mio sistema, ma voglio provare comunque.",
"inprogress": "Questa applicazione è ancora sperimentale (non funziona ancora alla perfezione) ed è probabile che guasti il tuo sistema! Probabilmente NON dovresti installarla a meno che tu non sappia cosa stai facendo.",
"install": "È già installato e non può essere installato più di una volta.",
"version": "Questapplicazione richiede YunoHost ≥ {required}, ma la versione attualmente installata è {current}. Considera di aggiornare YunoHost, prima.",
"lowquality": "Anche se questapplicazione funziona, non è ben integrata in YunoHost. Alcune funzionalità, come single sign-on e backup/recupero potrebbero non essere disponibili, oppure lapplicazione potrebbe non rispettare buone pratiche.",
"ram": "Questapplicazione richiede {required} di RAM per linstallazione o laggiornamento, ma solo {current} sono disponibili al momento. Anche se lapp può funzionare, il suo processo dinstallazione richiede una grande quantità di RAM, perciò il tuo server potrebbe bloccarsi e fallire miseramente.",
"thirdparty": "Questapplicazione non è parte del catalogo ufficiale di YunoHost. Installare applicazioni di terze parti potrebbe compromettere lintegrità e la sicurezza del tuo sistema. NON dovresti installarla se non sei sicurə di ciò che stai facendo."
},
"try_demo": "Prova la demo",
"version": "Versione corrente: {version}"
},
"open_this_app": "Apri questapp",
"integration": {
"ldap": {
"true": "Usa gli account YunoHost per laccesso (LDAP)",
"?": "Nessuna informazione riguardo allintegrazione LDAP",
"false": "Non usa gli account YunoHost per laccesso (LDAP)"
},
"sso": {
"true": "Il sign-on singolo è disponibile (SSO)",
"?": "Nessuna informazione riguardo allintegrazione SSO",
"false": "Il sign-on singolo non è disponibile (SSO)"
},
"archs": "Architetture supportate:",
"multi_instance": {
"false": "Può essere installata solo una volta",
"true": "Può essere installata più volte"
},
"resources": "Utilizzo di risorse tipico: {ram} RAM, {disk} disco",
"title": "Integrazione con YunoHost"
},
"links": {
"package": "Repository dei pacchetti di YunoHost",
"title": "Collegamenti",
"userdoc": "Documentazione ufficiale per gli utenti",
"website": "Sito web ufficiale",
"admindoc": "Documentazione Admin ufficiale",
"code": "Repository ufficiale del codice sorgente",
"license": "Licenza dellapp",
"forum": "Argomenti collegati a questapp nel forum di YunoHost",
"package_license": "Licenza del pacchetto YunoHost"
},
"upgrade": {
"confirm": {
"apps": "Applicazioni che saranno aggiornate",
"title": "Conferma laggiornamento delle app"
},
"continue": "Continua allapp successiva",
"notifs": {
"post": {
"title": "Notifiche post-aggiornamento per {name}",
"alert": "Sembra che laggiornamento sia andato bene!\nEcco alcune notifiche che la persona che ha creato il pacchetto considera importanti riguardo a questo aggiornamento.\nPotrai leggerle nuovamente nella pagina di informazioni dellapp."
},
"pre": {
"alert": "Dovresti controllare queste notifiche prima di aggiornare, potrebbero esserci cose importanti da sapere.",
"title": "Attenzione!"
}
},
"stop": "Annulla i prossimi aggiornamenti di app"
},
"installed_version": "Versione installata:",
"potential_alternative_to": "Potenziale alternativa a:",
"uninstall": {
"purge_desc": "Rimuovi la directory dei dati associati allapp (solitamente, si tratta di dati che hai caricato tu stessə usando lapp)."
}
},
"wrong_password_or_username": "Password o username sbagliati",
"manage_groups": "Gestisci i gruppi",
"tools_yunohost_settings": "Impostazioni di YunoHost",
"app_state_broken": "rottə",
"details_about": "Mostra maggiori dettagli riguardo a {subject}",
"group_explain_admins": "Questo è un gruppo speciale, che corrisponde agli utenti amministratori. Gli utenti di questo gruppo possono accedere allinterfaccia di amministrazione web di YunoHost, connettersi al server tramite SSH e usare il comando `sudo`. Inoltre, ricevono le email inviate a root@, admin@ e admins@, come le notifiche di diagnosi. Dovresti aggiungere a questo gruppo solo persone di cui ti fidi completamente!",
"group_admins": "Amministratori",
"important_yunohost_upgrade": "Un importante aggiornamento di YunoHost è importante. È fortemente raccomandato di leggere attentamente le note di rilascio sul forum, prima di aggiornare: <a href='https://forum.yunohost.org/tag/ynh_release'>Visita le note di rilascio sul forum</a>",
"label_for_manifestname_help": "Questo è il nome mostrato nel portale dellutente. Potrà essere cambiato in seguito."
}

View file

@ -0,0 +1,680 @@
{
"action": "アクション",
"add": "追加",
"address": {
"domain_description": {
"domain": "ドメインを選択してください。",
"email": "メールアドレス用ドメインを選択してください。"
},
"local_part_description": {
"domain": "サブドメインを選択してください。",
"email": "電子メールのローカルパート(@の右側)を選択してください。"
}
},
"administration_password": "管理用パスワード",
"all": "すべて",
"all_apps": "すべてのアプリ",
"api": {
"partial_logs": "[…] (詳細ログで履歴を確認)",
"processing": "サーバーはアクションを実行中です…",
"query_status": {
"error": "失敗",
"pending": "実行中",
"success": "成功",
"warning": "成功(エラーまたは警告あり)"
},
"reconnecting": {
"reason": {
"shutdown": "サーバーがシャットダウン中のため、接続できません。サーバーの電源をオンにし、起動後にログイン画面が利用可能になります。",
"unknown": "原因は不明ですが、サーバーとの接続が切断されました。",
"upgrade_system": "YunoHostのアップグレードのためサーバーとの接続が切断されました。サーバーが再度利用可能になるまでお待ちください…",
"reboot": "サーバーが再起動中のため、接続が途切れることがあります。再起動後、すぐにログイン画面が利用可能になります。"
},
"success": "サーバーが利用可能になりました!ログインが可能です",
"title": "サーバーと通信中…",
"failed": "サーバーが応答していないようです。再接続するか、SSH経由で`systemctl restart yunohost-api`を実行してみてください。"
}
},
"api_error": {
"error_message": "エラーメッセージ:",
"info": "以下の情報はあなたの状況を周りに伝えるのに役立ちます:",
"server_said": "アクションの実行中にサーバーが生成したメッセージ:",
"sorry": "申し訳ありません。",
"view_error": "ビューエラー",
"help": "ヘルプが必要ですか? <a href=\"https://forum.yunohost.org/\">フォーラム</a> または <a href=\"https://chat.yunohost.org/\">チャット</a> をご利用ください。もしバグを報告したい場合は <a href=\"https://github.com/YunoHost/issues\">バグトラッカー</a>にどうぞ。"
},
"api_errors_titles": {
"APIBadRequestError": "YunoHostにエラーが発生しました",
"APIConnexionError": "YunoHostに接続エラーが発生しました",
"APIError": "YunoHostに予期しないエラーが発生しました",
"APIInternalError": "YunoHostに内部エラーが発生しました",
"APINotFoundError": "YunoHost APIはルートを見つけることができませんでした",
"APINotRespondingError": "YunoHost APIが応答していません"
},
"api_not_responding": "YunoHost APIは応答していません。'yunohost-api'が停止しているか、再起動中ではありませんか?",
"api_waiting": "サーバーの応答を待っています…",
"app": {
"installed_version": "インストール済バージョン:",
"open_this_app": "このアプリを開く",
"antifeatures": "このアプリはあなたが気に入らないかもしれない機能を持っています:",
"doc": {
"about": {
"title": "YunoHostについて",
"description": "説明"
},
"admin": {
"title": "管理者ドキュメント"
},
"notifications": {
"understood": "了解",
"title": "通知",
"post_upgrade": "アップグレード後のお知らせ",
"post_install": "アップグレード後のお知らせ"
}
},
"info": {
"forum": "フォーラムで検索するか、相談してください!",
"config_panel_error": "設定パネル表示を妨げるエラー:",
"problem": "このアプリに問題がありましたか?",
"config_panel_error_please_report": "YunoHostチームにこのエラーを報告して修正してもらいましょう"
},
"install": {
"license": "ライセンス: {license}",
"notifs": {
"post": {
"title": "インストール後の通知 - '{name}'",
"alert": "インストールが成功したようです!\n パッケージ作成者が重要と指定したいくつかの通知があります。\nこの通知はアプリの情報ページからも確認できます。"
},
"pre": {
"danger": "このアプリケーションをインストールすると問題が発生する可能性が高まります",
"warning": "インストール前に知っておくべきこと",
"critical": "アプリケーションはインストールできません"
}
},
"problems": {
"thirdparty": "このアプリケーションは、YunoHostの公式カタログの一部ではありません。サードパーティのアプリケーションをインストールすると、システムの整合性とセキュリティが損なわれる可能性があります。あなたが何をやろうとしているか十分に理解していないのであれば、インストールをするべきではありません。",
"install": "すでにインストールされており、複数回インストールすることはできません。",
"ram": "このアプリケーションのインストール/アップグレードには{required}のRAMが必要ですが、現在利用可能なのは{current}です。このアプリが実行できたとしても、インストールには大量のRAMが必要なため、サーバーがフリーズして失敗する可能性があります。",
"version": "このアプリケーションは YunoHost >= {required} を要求していますが、現在インストールされているバージョンは{current}です。",
"arch": "このアプリは特定のアーキテクチャ({required})でしかインストールできません。あなたのアーキテクチャは{current}です。",
"broken": "YunoHostの自動テストにより、このアプリケーションは破損しており、インストールすることでシステムが壊れる可能性が高いと判断されましたあなたが何をやろうとしているか十分に理解していないのであれば、インストールをするべきではありません。",
"ignore": "インストールすることで私のシステムが壊れるかもしれないことは理解していますが、それでも試します。",
"inprogress": "このアプリケーションはまだ実験的なものであり(明確に動作しないわけではありませんが)、あなたのシステムを壊す可能性があります!あなたが何をやろうとしているか十分に理解していないのであれば、インストールをするべきではありません。",
"lowquality": "このアプリケーションは動作するかもしれませんが、YunoHostへ十分に統合されていません。シングルサインオンやバックアップ/リストアなど一部の機能は利用できないか、グッドプラクティスに沿わない可能性があります。"
},
"try_demo": "デモを試す",
"version": "現在のバージョン: {version}"
},
"integration": {
"archs": "サポートするアーキテクチャ:",
"ldap": {
"false": "YunoHostアカウントをログインに利用しない(LDAP)",
"true": "YunoHostアカウントをログインに利用する(LDAP)",
"?": "LDAP統合の情報がありません"
},
"multi_instance": {
"false": "インストールは一度しか行えません",
"true": "複数回インストールすることが可能"
},
"resources": "一般的なリソース消費: {ram} RAM, {disk} disk",
"sso": {
"true": "シングルサインオン(SSO)は利用可能",
"?": "シングルサインオン(SSO)統合の情報がありません",
"false": "シングルサインオン(SSO)は利用可能ではありません"
},
"title": "YunoHost統合"
},
"links": {
"admindoc": "公式管理者ドキュメント",
"code": "公式コードレポジトリ",
"package": "YunoHost パッケージ レポジトリ",
"title": "リンク",
"userdoc": "公式ユーザードキュメント",
"website": "公式ウェブサイト",
"license": "ライセンス",
"forum": "このアプリに関するYunoHostフォーラム上の話題"
},
"potential_alternative_to": "代替できるかも:",
"upgrade": {
"confirm": {
"title": "アプリをアップグレードする",
"apps": "アップグレードされるアプリ"
},
"continue": "次のアプリに続ける",
"notifs": {
"pre": {
"title": "警告!",
"alert": "アップグレード前にそれらの通知を確認するべきです。重要な情報が記載されているかもしれません。"
},
"post": {
"title": "アップグレード後の通知 - '{name}'",
"alert": "アップグレードはうまくいったようです!\n パッケージ製作者がこのアップグレードで重要と考えている事項について、通知があります。\nこの通知はアプリの情報ページからも確認できます。"
}
},
"stop": "次のアプリのアップグレードをキャンセルする"
}
},
"app_info_change_url_disabled_tooltip": "この機能はまだアプリに実装されていません",
"app_info_default_desc": "このアプリケーションへリダイレクトするドメインルート ({domain})。",
"app_install_custom_no_manifest": "manifest.jsonファイルがありません",
"app_install_parameters": "インストール設定",
"app_make_default": "デフォルトにする",
"app_manage_label_and_tiles": "ラベルとタイトルを管理する",
"app_show_categories": "カテゴリを表示",
"app_state_broken": "壊れている",
"app_state_broken_explanation": "このアプリケーションは現在壊れており、YunoHostの自動テストによるとインストール不能です",
"app_state_highquality_explanation": "このアプリは(少なくとも)昨年からYunoHostとよく統合されています。",
"app_state_inprogress": "まだ動いていない",
"app_state_inprogress_explanation": "このアプリのメンテナーは、このアプリケーションはまだ実環境(production)での利用に十分備えられていないとしています。ご注意ください!",
"app_state_lowquality": "低品質",
"app_state_lowquality_explanation": "このアプリはおそらく動きますが、問題があるか、全ての機能がYunoHostと統合されておらず、グッドプラクティスに沿わないでしょう。",
"applications": "アプリケーション",
"archive_empty": "空のアーカイブ",
"backup": "バックアップ",
"backup_action": "バックアップ",
"backup_content": "コンテンツをバックアップ",
"backup_create": "バックアップする",
"backup_new": "新しいバックアップ",
"begin": "始める",
"both": "両方",
"cancel": "キャンセル",
"catalog": "カタログ",
"certificate": "証明書",
"certificate_manage": "SSL証明書を管理",
"close": "閉じる",
"common": {
"firstname": "名前",
"lastname": "苗字"
},
"configuration": "設定",
"confirm_app_change_url": "このアプリのアクセスURLを変更してよいですか",
"confirm_app_default": "このアプリをデフォルトに変更してよろしいですか?",
"confirm_app_install": "このアプリケーションをインストールしますか?",
"confirm_change_maindomain": "メインドメインを変更してもよろしいですか?",
"confirm_firewall_disallow": "閉鎖してもよろしいですか? port {port} (protocol: {protocol}, connection: {connection})",
"confirm_install_app_broken": "警告このアプリケーションはYunoHostの自動テストによると壊れており、あなたのシステムを壊す可能性がありますあなたが何をやろうとしているか十分に理解していないのであれば、インストールをするべきではありません。リスクを承知で実行しますか",
"confirm_install_app_lowquality": "警告: このアプリケーションはおそらく動きますが、YunoHostとよく統合されていません。いくつかの機能(シングルサインオン、バックアップ/リストアなど)はおそらく使えません。",
"confirm_install_domain_root": "このアプリを'/'(root)にインストールしてもよろしいですか?その場合、 {domain} に対して他のアプリをインストールできなくなります",
"confirm_migrations_skip": "マイグレーションをスキップすることは推奨されません。スキップしてもよろしいですか?",
"confirm_postinstall": "ドメイン {domain} のインストール後処理を開始しようとしています。数分かかりますので、 *処理を中断しないでください*。",
"confirm_reboot_action_reboot": "サーバーを再起動してもよろしいですか?",
"confirm_reboot_action_shutdown": "サーバーをシャットダウンしてもよろしいですか?",
"confirm_restore": "{name} をリストアしてもよろしいですか?",
"confirm_service_restart": "{name} を再起動してもよろしいですか?",
"confirm_service_start": "{name} を開始してもよろしいですか?",
"confirm_service_stop": "{name} を停止してもよろしいですか?",
"confirm_uninstall": "{name} をアンインストールしてもよろしいですか?",
"confirm_upnp_enable": "UPnPを有効化してもよろしいですか",
"confirm_update_apps": "全てのアプリケーションをアップデートしてもよろしいですか?",
"confirm_upnp_disable": "UPnPを無効化してもよろしいですか",
"connection": "コネクション",
"created_at": "作成時刻",
"custom_app_install": "カスタムアプリをインストール",
"day_validity": " 期限切れ | 1日 | {count} 日",
"dead": "非アクティブ",
"delete": "削除",
"description": "説明",
"details": "詳細",
"diagnosis": "診断",
"disable": "無効",
"disabled": "無効化済み",
"dns": "DNS",
"domain": {
"cert": {
"types": {
"letsencrypt": "Let's Encrypt",
"other": "その他/不明",
"selfsigned": "自己署名"
},
"valid_for": "あと {days} 日有効"
},
"config": {
"edit": "ドメイン設定を編集する",
"title": "ドメイン設定"
},
"dns": {
"auto_config": "自動DNSレコード設定",
"auto_config_ignored": "上書きオプションを有効にしない限り、YunoHostによって変更されることはありません",
"auto_config_ok": "自動設定は問題ないようですね!",
"auto_config_zone": "現在のDNSゾーン",
"edit": "DNS設定を編集する",
"manual_config": "手動設定用の推奨DNSレコード",
"methods": {
"auto": "自動的",
"handled_in_parent": "親ドメインにて処理される",
"manual": "手動",
"none": "なし",
"semi_auto": "半自動"
},
"push": "DNSレコードをレジスターに登録する",
"push_force": "既存のレコードを上書きする",
"push_force_warning": "既存のDNSレコードのうち、いくつかはYunoHostが登録したもののように見えます。何をやっているのか自分で理解しているのであれば、上書きオプションを利用することもできます。",
"info": "DNSレコードの自動設定は実験的な機能です。<br>ここからレコードを操作する前に、DNSレジストラのインターフェイスから現在のDNSゾーンを保存することを検討してください。",
"push_force_confirm": "提案された全てのDNSレコードを登録してもよろしいですかこの操作によりあなたが手動で登録したり、レジスターが登録した重要なレコードが上書きされる可能性があります。"
},
"info": {
"apps_on_domain": "このドメインにインストールされているアプリ",
"certificate_authority": "SSL認証局",
"registrar": "レジスター"
},
"see_parent_domain": "親ドメインを見る",
"toggle_subdomains": "サブドメインを切り替える",
"types": {
"main_domain": "メインドメイン"
},
"explain": {
"main_domain": "メインドメインは、ユーザーがポータルに接続するためのドメインです(\"{domain}/yunohost/sso \"経由で)。<br>そのため、それを削除することはできません。<br>\"{domain}\"を削除したい場合は、まず別のドメインを選択または追加し、メインドメインとして設定する必要があります。"
}
},
"domain_add": "ドメインを追加する",
"domain_default_desc": "デフォルトドメインとは、ユーザーがログインするために接続するドメインです。",
"domain_default_longdesc": "それはあなたのデフォルトドメインです。",
"domain_delete_longdesc": "このドメインを削除する",
"domain_dns_conf_is_just_a_recommendation": "このセクションでは、*推奨される*設定を示します。あなたのためにDNSを設定することは*ありません*。この推奨に従ってDNSレジストラでDNSゾーンを設定するのはあなたの責任です。",
"domain_dns_config": "DNS設定",
"domain_dns_longdesc": "DNS設定を見る",
"domain_dns_push_failed_to_authenticate": "レジスターのAPI認証に失敗しました。おそらく <a href='#/domains/{domain}/config'>資格情報</a> が間違っていませんか? (Error: {error})",
"domain_name": "ドメイン名",
"domains": "ドメイン",
"download": "ダウンロード",
"enable": "有効か",
"enabled": "有効化済み",
"error": "エラー",
"error_modify_something": "なにか編集しなければなりません",
"error_server_unexpected": "予期せぬサーバーエラー",
"everything_good": "問題なし!",
"experimental": "実験的",
"footer": {
"donate": "寄付",
"help": "ヘルプが必要ですか?",
"documentation": "ドキュメント"
},
"footer_version": "Powered by <a href='https://yunohost.org'>YunoHost</a> {version} ({repo}).",
"form_errors": {
"alpha": "値はアルファベットである必要があります。",
"alphalownumdot_": "値は小文字の英数字である必要があります。",
"between": "値は{min}から{max}の間である必要があります。",
"domain": "不正なドメイン名: 小文字の英数字、.(ドット)、-(ダッシュ)である必要があります",
"dynDomain": "不正なドメイン名: 小文字の英数字、-(ダッシュ)である必要があります",
"invalid_form": "フォームにエラーがあります。",
"maxValue": "値は{max}より小さい必要があります。",
"minValue": "値は{min}より大きい必要があります。",
"email": "不正な電子メール: 小文字の英数字、<code>_.-</code> である必要があります (例: someone@example.com, s0me-1@example.com)",
"emailForward": "不正な電子メール転送: 小文字の英数字、<code>_.-</code> である必要があります (例: someone+tag@example.com, s0me-1+tag@example.com)",
"pattern": "{type}",
"remote": "{message}",
"required": "フィールドは必要です。",
"appRepoUrl": "YunoHostアプリリポジトリのURLは次のようになります https://domain.tld/path/to/repo_ynh",
"name": "名前に次の特殊文字を含めることはできません。 <code> ,.'-</code>",
"notInUsers": "ユーザー '{value}' は既に存在します。",
"passwordLenght": "パスワードは最低8文字必要です。",
"passwordMatch": "パスワードが一致しません。",
"number": "値は数値でなければなりません。"
},
"group": "グループ",
"group_admins": "管理者",
"group_visitors": "ビジター",
"history": {
"methods": {
"DELETE": "削除",
"GET": "読み取り",
"POST": "作成/実行",
"PUT": "編集"
},
"title": "履歴",
"is_empty": "現在は履歴がありません。",
"last_action": "最後のアクション:"
},
"home": "ホーム",
"hook_data_mail": "メール",
"human_routes": {
"reconnecting": "再接続",
"backups": {
"delete": "バックアップを削除’する {name}'",
"restore": "バックアップを復元する {name}",
"create": "バックアップを作成する"
},
"domains": {
"cert_install": "証明書 {name} をインストールする",
"cert_renew": "証明書 {name} を再発行する",
"delete": "ドメイン {name} を削除する",
"push_dns_changes": "{name} DNSレコードを登録する",
"set_default": "{name} をデフォルトドメインに設定",
"add": "ドメイン {name} を追加する",
"update_config": "ドメイン {name} の設定パネル {id} を更新"
},
"migrations": {
"run": "移行を実行する",
"skip": "移行をスキップする"
},
"reboot": "サーバーを再起動する",
"services": {
"restart": "サービス {name} をリスタートする",
"start": "サービス {name} をスタートする",
"stop": "サービス {name} をストップする"
},
"shutdown": "サーバーをシャットダウンする",
"update": "アップデートを確認する",
"upgrade": {
"app": "アプリ '{app}' をアップグレードする",
"apps": "全てのアプリをアップグレードする",
"system": "システムをアップグレードする"
},
"apps": {
"action_config": "{name} アプリのアクション {action}' を実行する",
"change_label": "ラベルを '{prevName}' から '{nextName}' に変更",
"change_url": "'{name}' のアクセスURLを変更",
"install": "アプリをインストール {name}",
"set_default": "'{domain}' ドメインのルートを '{name}' にリダイレクト",
"dismiss_notification": "'{name}' の通知を消去する",
"uninstall": "アプリ {name} を削除する",
"update_config": "'{name}' の {id} パネル設定をアップデートする"
},
"diagnosis": {
"ignore": {
"error": "エラーを無視する",
"warning": "警告を無視する"
},
"run": "診断を実行する",
"run_specific": "'{description}' 診断を実行する",
"unignore": {
"error": "エラーを無視しない",
"warning": "警告を無視しない"
}
},
"groups": {
"add": "'{user}' をグループ '{name}' に追加",
"create": "グループ {name} を作成する",
"delete": "グループ {name} を削除する",
"remove": "'{user}' をグループ '{name}' から削除する"
},
"users": {
"create": "ユーザー {name} を作成する",
"delete": "ユーザー {name} を削除する",
"update": "ユーザー {name} を更新する"
},
"firewall": {
"ports": "{action} ポート {port} ({protocol}, {connection})",
"upnp": "{action} UPnP"
},
"permissions": {
"add": "'{name}' に '{perm}' アクセスを許可する",
"remove": "'{name}' の '{perm}' アクセス許可を剥奪する"
},
"postinstall": "ポストインストールを実行する",
"settings": {
"update": "'{panel}' のグローバル設定を更新する"
},
"share_logs": "ログ '{name}' へのリンクを生成する"
},
"ignore": "無視",
"infos": "情報",
"install": "インストール",
"installed": "インストール済み",
"ipv4": "IPv4",
"ipv6": "IPv6",
"label": "ラベル",
"license": "ライセンス",
"login": "ログイン",
"logout": "ログアウト",
"logs": "ログ",
"logs_context": "コンテキスト",
"logs_ended_at": "終了",
"logs_error": "エラー",
"logs_path": "パス",
"logs_started_at": "開始",
"logs_suboperations": "サブ・オペレーション",
"next": "次",
"no": "No",
"nobody": "無人",
"ok": "OK",
"open": "開く",
"operations": "操作",
"others": "その他",
"password": "パスワード",
"path": "パス",
"placeholder": {
"domain": "my-domain.com",
"firstname": "太郎",
"lastname": "山田",
"username": "山田太郎",
"file": "ファイルを選択するかドラッグ&ドロップする",
"fullname": "山田 太郎",
"groupname": "グループ名"
},
"previous": "前",
"protocol": "プロトコル",
"readme": "Readme",
"restart": "リスタート",
"restore": "リストア",
"retry": "リトライ",
"run": "実行",
"running": "実行中",
"save": "保存",
"services": "サービス",
"size": "サイズ",
"skip": "スキップ",
"start": "スタート",
"status": "状態",
"stop": "ストップ",
"system": "システム",
"system_upgrade_btn": "アップグレード",
"tcp": "TCP",
"tools": "ツール",
"tools_reboot_btn": "再起動",
"tools_shutdown_btn": "シャットダウン",
"tools_shutdown_reboot": "シャットダウン/再起動",
"tools_webadmin": {
"cache": "キャッシュ",
"language": "言語",
"experimental": "実験的モード",
"fallback_language": "フォールバック言語",
"fallback_language_description": "主言語が利用できない際に使用される言語です。",
"theme": "ダークモード切り替え",
"transitions": "ページ推移アニメーション",
"cache_description": "この Web 管理画面を使いながら CLI 操作をする場合は、キャッシュを無効にすることを検討してください。",
"experimental_description": "実験的な機能にアクセスできます。これらは不安定であると見なされ、システムを壊す可能性があります。<br> 自分が何をしているかがわかっている場合にのみ有効にしてください。"
},
"traceback": "トレースバック",
"udp": "UDP",
"unknown": "未知",
"upnp": "UPnP",
"url": "URL",
"user_email": "電子メール",
"user_new_forward": "newforward@myforeigndomain.org",
"user_username": "ユーザー名",
"users": "ユーザー",
"words": {
"collapse": "たたむ",
"default": "デフォルト",
"link": "リンク",
"none": "なし",
"separator": ", ",
"valid": "有効",
"browse": "参照"
},
"yes": "はい",
"api_not_found": "Web管理者が存在しない何かを検索したようです。",
"app_choose_category": "カテゴリーを選択する",
"app_info_access_desc": "現在このアプリへアクセスが許可されている グループ / ユーザー:",
"app_info_changeurl_desc": "このアプリへアクセスするURLを変更します(ドメイン または パス)。",
"app_info_uninstall_desc": "このアプリケーションを削除する。",
"check": "チェック",
"code": "コード",
"confirm_delete": "{name} を削除してもよろしいですか?",
"confirm_firewall_allow": "開放してもよろしいですか? port {port} (protocol: {protocol}, connection: {connection})",
"confirm_group_add_access_permission": "本当に {perm} 権限を {name} へ許可しますか?このような権限は、 {name} が悪意のある人物であった場合、攻撃経路を大幅に増やします。この人物/グループを **信頼** できる場合にのみ許可してください。",
"confirm_install_app_inprogress": "警告!このアプリケーションはまだ実験段階であり、あなたのシステムを壊す可能性があります!あなたが何をやろうとしているか十分に理解していないのであれば、インストールをするべきではありません。リスクを承知で実行しますか?",
"confirm_install_custom_app": "警告!サードパーティのアプリケーションをインストールすると、システムの完全性とセキュリティが損なわれる可能性があります。あなたが何をやろうとしているか十分に理解していないのであれば、インストールをするべきではありません。リスクを承知で実行しますか?",
"confirm_update_system": "全てのシステムパッケージを更新してもよろしいですか?",
"confirm_update_specific_app": "{app} をアップデートしてもよろしいですか?",
"details_about": "{subject} について詳細を表示する",
"diagnosis_explanation": "診断機能は、サーバーのさまざまな側面における一般的な問題を特定し、すべてがスムーズに動作するように試みます。診断は1日2回自動的に実行され、問題が見つかった場合は管理者にメールが送信されます。特定の機能例えばXMPPを使用したくない場合、または複雑なセットアップを行った場合、いくつかのテストは適切でない可能性があります。そのような場合、また自分が何をしているかわかっている場合は、対応する問題や警告を無視してもかまいません。",
"diagnosis_first_run": "診断機能は、サーバーのさまざまな側面で一般的な問題を特定し、すべてがスムーズに動作するように試みます。サーバーをセットアップした直後に大量のエラーが表示されても慌てないでください。これは問題を特定し、解決するための指針を示すためのものです。また、診断は1日2回自動的に実行され、問題が見つかった場合は管理者にメールが送信されます。",
"domain_add_dyndns_forbidden": "DynDNSで既にドメインを登録している場合,DynDNSドメインの削除についてはフォーラムの<a href='//forum.yunohost.org/t/nohost-domain-recovery-suppression-de-domaine-en-nohost-me-noho-st-et-ynh-fr/442'>関連スレッド</a>で依頼することができます.",
"domain_delete_forbidden_desc": "'{domain}' はデフォルトドメインのため、削除することができません。削除したい場合は、別のドメインを選択 (または <a href='#/domains/add'>新しいドメインを追加</a>)し、メインドメインとして設定する必要があります。",
"firewall": "ファイアウォール",
"id": "ID",
"migrations": "移行",
"permissions": "権限",
"port": "ポート",
"ports": "ポート",
"uninstall": "アンインストール",
"version": "バージョン",
"group_add_member": "ユーザーを追加",
"group_add_permission": "権限を追加",
"group_all_users": "全てのユーザー",
"group_name": "グループ名",
"group_new": "新しいグループ",
"hook_adminjs_group_configuration": "システム設定",
"hook_conf_ldap": "ユーザーデータベース",
"hook_conf_manually_modified_files": "手動変更された設定",
"ignored": "{count} 回無視",
"local_archives": "ローカルアーカイブ",
"logs_access": "アクセス/BANのリスト",
"logs_app": "アプリログ",
"logs_history": "システムで実行されたコマンドログ",
"logs_more": "もっと表示する",
"logs_operation": "YunoHostによるシステム操作",
"logs_package": "Debianパッケージ管理履歴",
"logs_service": "サービスログ",
"logs_share_with_yunopaste": "ログをYunoPasteで共有する",
"mailbox_quota_example": "CDは700M, DVDは 4700M",
"multi_instance": "複数回インストール可能",
"only_decent_quality_apps": "ふさわしい品質のアプリのみ",
"only_highquality_apps": "高い品質のアプリのみ",
"only_working_apps": "機能するアプリのみ",
"orphaned": "メンテナンスされていない",
"password_confirmation": "パスワード確認",
"permission_main": "メインラベル",
"permission_show_tile_enabled": "ユーザーポータルでタイルに表示する",
"rerun_diagnosis": "診断を再実行",
"run_first_diagnosis": "初回診断を実行する",
"select_all": "全てを選択",
"select_none": "選択を外す",
"service_start_on_boot": "起動時にスタート",
"system_apps_nothing": "全てのアプリが最新になりました!",
"system_packages_nothing": "全てのシステムパッケージが最新になりました!",
"system_update": "システムアップデート",
"tools_reboot": "サーバーを再起動",
"tools_shutdown": "サーバーをシャットダウン",
"unignore": "無視しない",
"upnp_disabled": "UPnPは無効化されています。",
"upnp_enabled": "UPnPは有効化されています。",
"user_emailaliases": "メールエイリアス",
"user_mailbox_use": "メールボックス使用スペース",
"user_username_edit": "{name}のアカウントを編集する",
"users_import_delete": "リストにないユーザーを削除する",
"warnings": "{count} 件の警告",
"wrong_password_or_username": "パスワードかユーザー名が間違っています",
"yunohost_admin": "YunoHost 管理者",
"form_input_example": "例: {example}",
"from_to": "{0} から {1}",
"go_back": "戻る",
"group_specific_permissions": "ユーザー個別権限",
"groups_and_permissions": "グループと権限",
"groups_and_permissions_manage": "グループと権限を管理する",
"hook_conf_ynh_certs": "SSL証明書",
"hook_conf_ynh_settings": "YunoHost設定",
"hook_data_home": "ユーザーデータ",
"hook_data_home_desc": "/home/USER 配下のユーザーデータ",
"hook_data_mail_desc": "サーバー内に保存されている電子メールアドレス",
"hook_data_xmpp": "XMPPデータ",
"install_name": "インストール {id}",
"install_time": "インストール時間",
"installation_complete": "インストール完了",
"issues": "{count} 個の問題",
"label_for_manifestname": "{name} のラベル",
"last_ran": "最後の実行:",
"logs_no_logs_registered": "このカテゴリーにログが登録されていません",
"manage_domains": "ドメイン管理",
"manage_groups": "グループ管理",
"manage_users": "ユーザー管理",
"migrations_disclaimer_check_message": "私はこの免責条項を読み、理解しました",
"migrations_disclaimer_not_checked": "このマイグレーションを実行する前に、免責条項を確認する必要があります。",
"migrations_done": "以前のマイグレーション",
"migrations_no_done": "以前のマイグレーションはありません",
"migrations_no_pending": "中断したマイグレーションはありません",
"migrations_pending": "中断しているマイグレーション",
"logs_system": "カーネルログとその他低レベルログイベント",
"mailbox_quota_placeholder": "0にセットすると無効化します。",
"manage_apps": "アプリ管理",
"set_default": "デフォルトに設定",
"system_upgrade_all_applications_btn": "全てのアプリケーションをアップグレード",
"system_upgrade_all_packages_btn": "全てのパッケージをアップグレード",
"tools_webadmin_settings": "Web管理者設定",
"tools_yunohost_settings": "YunoHost設定",
"user_emailaliases_add": "メールエイリアスを追加する",
"user_emailforward": "メール転送",
"user_emailforward_add": "メール転送を追加する",
"user_fullname": "フルネーム",
"user_interface_link": "ユーザーインターフェイス",
"user_mailbox_quota": "メールボックス クォータ",
"users_export": "ユーザーをエクスポート",
"users_import": "ユーザーをインポート",
"users_import_csv_file": "CSVファイル",
"users_import_delete_desc": "チェックを入れた場合、既存のユーザーのうちCSVファイルに入っていないユーザーは削除されます。",
"users_import_delete_others": "リストにないユーザーを削除する",
"users_import_update": "既存のユーザーを更新する",
"users_import_update_desc": "チェックを入れた場合、CSVファイルに入っている全てのユーザー情報が新しい値に更新されます",
"users_new": "新しいユーザー",
"users_no": "ユーザーがいません。",
"domain_dns_push_managed_in_parent_domain": "自動 DNS レコード機能は、親ドメイン <a href='#/domains/{parent_domain}/dns'>{parent_domain}</a>で管理されます。",
"domain_dns_push_not_applicable": "自動DNSレコード機能はドメイン {domain}には適用されません。<br> 以下の <a href='https://yunohost.org/dns'>ドキュメント</a> と推奨される構成に従って、DNS レコードを手動で構成する必要があります。",
"error_connection_interrupted": "サーバーは接続に応答する代わりに接続を閉じました。nginxまたはyunohost-apiが何らかの理由で再起動または停止されていませんか?",
"hook_data_xmpp_desc": "ルームとユーザーの設定、ファイルのアップロード",
"important_yunohost_upgrade": "YunoHostのメジャーアップグレードが利用可能です。アップグレードする前に、フォーラムのリリースートを注意深く読むことを強くお勧めします: フォーラムの<a href='https://forum.yunohost.org/tag/ynh_release'>リリースノートを閲覧</a>",
"items": {
"apps": "アプリなし | アプリ | {c} 個のアプリ",
"backups": "バックアップなし | バックアップ | {c} 個のバックアップ",
"domains": "ドメインなし | ドメイン | {c} 個のドメイン",
"groups": "グループなし | グループ | {c} 個のグループ",
"installed_apps": "インストール済アプリなし | インストール済アプリ | {c} 個のインストール済アプリ",
"logs": "ログなし | ログ | {c} 個のログ",
"permissions": "権限なし | 権限 | {c} 個の権限",
"services": "サービスなし | サービス | {c} 個のサービス",
"users": "ユーザーなし | ユーザー | {c} 人のユーザー"
},
"mailbox_quota_description": "メールのストレージサイズ制限を設定します。<br>無効にするには 0 を設定します。",
"perform": "実行する",
"permission_corresponding_url": "対応する URL",
"postinstall": {
"force": "インストール後処理の強制",
"title": "インストール後処理",
"user": {
"first_user_help": "このユーザーには管理者権限が付与され、この管理インターフェイスへの接続と、SSH 経由でサーバーへの直接接続が許可されます。\n通常のユーザーであるため、資格情報を使用してユーザーポータル(SSO)に接続することもできます。\nインストール後処理が完了すると、他のユーザーを「admins」グループに追加することで管理者ユーザーを作成できるようになります。",
"title": "最初の管理者ユーザーを作成する"
}
},
"postinstall_intro_1": "やりましたYunoHostは正常にインストールされました。",
"postinstall_intro_2": "サーバーのサービスを有効化するには、さらに 2 つの設定手順が必要です。",
"search": {
"for": "{items}について検索…",
"not_found": "条件に合致する {items} が存在する。 | 条件に合致する1つの {items} が存在する。 | 条件に合致する {items} が存在する。"
},
"since": "から",
"text_selection_is_disabled": "テキスト選択は無効です。このログを共有したい場合は、[Yunopasteで共有]ボタンで *フル*ログ を共有してください。<br/><small>または、本当にテキストを選択したい場合は、次のキーを押します:↓↓↑↑。</small>",
"tip_about_user_email": "ユーザーは、username@domain.tld 形式の関連付けられた電子メール アドレス (および XMPP アカウント) を使用して作成されます。追加のメール エイリアスとメール転送については、管理者とユーザーの両方が後から追加できます。",
"unauthorized": "許可されていないアクセス",
"users_import_confirm_destructive": "このファイルに存在しないユーザーを削除してもよろしいですか?",
"users_import_csv_file_desc": "CSV ファイルは UTF-8 でエンコードされており、username, password, groups, email, quota の列が含まれている必要があります。よくわからない場合、一旦 <a href='/yunohost/api/users/export' target='_BLANK'>ユーザーを CSV ファイルにエクスポート</a> し、そのファイルを変更してください。",
"experimental_warning": "警告:この機能は実験的なものであり、安定しているとは見なされないため、自分が何をしているのかを知っている場合を除いて、使用しないでください。",
"good_practices_about_admin_password": "新しい管理者パスワードを設定しようとしています。パスワードは少なくとも8文字である必要がありますが、より長いパスワード(パスフレーズなど)を使用したり、さまざまな種類の文字(大文字、小文字、数字、特殊文字)を使用したりすることをお勧めします。",
"good_practices_about_user_password": "新しいユーザー・パスワードを定義しようとしています。パスワードは少なくとも8文字である必要がありますが、より長いパスワード(パスフレーズなど)を使用したり、さまざまな種類の文字(大文字、小文字、数字、特殊文字)を使用したりすることをお勧めします。",
"group_explain_all_users": "これは、サーバー上のすべてのユーザー アカウントを含む特別なグループです",
"group_explain_visitors": "これは匿名の訪問者を代表する特別なグループです",
"group_explain_visitors_needed_for_external_client": "一部のアプリケーションを外部クライアントで使用する場合は、訪問者に許可しておく必要があることに注意してください。たとえば、スマートフォンまたはデスクトップコンピューターで同期クライアントを使用する場合、Nextcloudの場合がこれに当てはまります。",
"group_format_name_help": "英数字の文字とアンダースコアを使用できます",
"items_verbose_count": "存在する {items}. | 存在する 1つの {items}. | 存在する {items}.",
"items_verbose_items_left": "{items} 個残っている。 | 1個の {items} が残っている。 | {items} が残っている。",
"label_for_manifestname_help": "これはユーザーポータルに表示される名前です。後で変更できます。",
"operation_failed_explanation": "この操作は失敗しました。本当に申し訳ありません :( あなたは <a href='https://yunohost.org/help'>ヘルプ</a>を試すことができます。あなたを助けてくれる人々に、操作の*完全なログ*を提供してください。これを行うには、[Yunopasteで共有] と書かれた緑色のボタンをクリックします。ログを共有する場合、YunoHostは自動的にドメイン名やIPなどの個人データの匿名化を試みます。",
"orphaned_details": "このアプリはかなり長い間メンテナンスされていません。まだ機能しているかもしれませんが、誰かがそれをメンテナンスと言い始めるまで、アップグレードを受け取りません。このアプリを復活させるために力を貸してください!",
"pending_migrations": "実行を待機している保留中の移行がいくつかあります。<a href='#/tools/migrations'>ツール > 移行</a> に移動して、移行を実行してください。",
"postinstall_domain": "これは、YunoHostサーバーにリンクされた最初のドメイン名ですが、サーバーのユーザーが認証ポータルにアクセスするために使用するドメイン名でもあります。したがって、誰にでも見えるものになりますので、慎重に選択してください。",
"postinstall_set_domain": "メインドメインの設定",
"purge_user_data_checkbox": "{name}のデータをパージ(削除)しますか?(これにより、ホームディレクトリとメールディレクトリの内容が削除されます)",
"purge_user_data_warning": "ユーザーのデータのパージ(削除)は一度行うと元に戻せません。自分が何をしようとしているのか、十分に理解してくださいね!",
"group_explain_admins": "これは管理者ユーザーに対応する特別なグループです。このグループのユーザーは、YunoHostのウェブ管理者にアクセスし、SSHでサーバーに接続し、「sudo」コマンドを使用できます。また、root@、admin@、admins@に送信された診断通知などの電子メールも受信します。このグループには、絶対に信頼できる人だけを追加する必要があります!",
"postinstall_intro_3": "詳細については、<a href='//yunohost.org/en/install/hardware:vps_debian#fa-cog-proceed-with-the-initial-configuration' target='_blank'>適切なドキュメントページ</a>を参照してください"
}

View file

@ -45,7 +45,7 @@
"nobody": "Ula yiwen",
"ok": "Ih",
"open": "Ldi",
"operations": "timhalin",
"operations": "Timhalin",
"logs": "Aɣmis",
"logs_error": "Tuccḍa",
"logs_ended_at": "Fin",
@ -84,7 +84,7 @@
},
"app_make_default": "Err-it d amezwer",
"applications": "Isnasen",
"backup": "Sekles",
"backup": "Asekles",
"backup_action": "Sekles",
"begin": "Bdu",
"cancel": "Sefsex",
@ -147,7 +147,7 @@
"tcp": "TCP",
"tools_reboot_btn": "Alles asekker",
"tools_shutdown_btn": "Sexsi",
"user_username": "Nom d'utilisateur",
"user_username": "Isem n useqdac",
"users": "Iseqdacen",
"administration_password": "Awal uffir n tedbelt",
"domain": {
@ -157,5 +157,14 @@
}
}
},
"group_admins": "Inedbalen"
"group_admins": "Inedbalen",
"footer_version": "Yezreɛ-it <a href='https://yunohost.org'>YunoHost</a> {version} ({repo}).",
"users_new": "Aseqdac amaynut",
"human_routes": {
"upgrade": {
"system": "Aleqqem n unagraw"
}
},
"tools_yunohost_settings": "Iɣewwaṛen n YunoHost",
"user_username_edit": "Ẓreg amaɣnu n {name}"
}

View file

@ -0,0 +1,41 @@
{
"action": "동작",
"add": "추가",
"address": {
"domain_description": {
"domain": "도메인을 선택하세요.",
"email": "이메일에 사용할 도메인을 선택하세요."
},
"local_part_description": {
"domain": "서브도메인을 선택하세요.",
"email": "이메일의 주소 부분(@의 오른쪽 부분)를 선택하세요."
}
},
"administration_password": "관리자 비밀번호",
"all": "모두",
"all_apps": "모든 앱",
"api": {
"partial_logs": "[…] (전체 로그는 기록에 있음)",
"processing": "서버가 동작을 수행 중입니다…",
"query_status": {
"error": "실패",
"pending": "실행 중",
"warning": "오류나 알림과 함께 성공적으로 완료됨",
"success": "성공적으로 완료됨"
},
"reconnecting": {
"reason": {
"reboot": "서버가 다시 시작되는 중이며 잠시동안 연결할 수 없습니다. 서버가 연결되면 로그인 프롬포트가 표시됩니다.",
"shutdown": "서버가 종료되는 중이며 더 이상 연결할 수 없습니다. 서버가 시작된 후 연결되면 로그인 프롬포트가 표시됩니다.",
"unknown": "알 수 없는 이유로 서버와의 연결이 종료되었습니다.",
"upgrade_system": "YunoHost 업그레이드를 위해 서버와의 연결이 종료되었습니다. 다시 연결될 때까지 잠시 기다리세요…"
},
"success": "서버와 연결되었습니다! 다시 로그인할 수 있습니다",
"title": "서버와 통신중…",
"failed": "서버가 응답하지 않는 것 같습니다. 다시 연결하거나 ssh를 통해 `systemctl restart yunohost-api` 명령을 실행하세요."
}
},
"api_error": {
"error_message": "오류 메시지:"
}
}

View file

@ -10,7 +10,7 @@
}
},
"api": {
"partial_logs": "[...] (visas išvestis rasite istorijoje)",
"partial_logs": "[] (visas išvestis rasite istorijoje)",
"reconnecting": {
"failed": "Atrodo, kad serveris neatsako. Galite pabandyti dar kartą prisijungti arba per ssh paleisti `systemctl restart yunohost-api`.",
"reason": {
@ -20,9 +20,9 @@
"upgrade_system": "Ryšys su serveriu nutrauktas dėl YunoHost atnaujinimo. Laukiama, kol serveris vėl bus pasiekiamas…"
},
"success": "Dabar serveris pasiekiamas! Galite pabandyti prisijungti",
"title": "Bandoma susisiekti su serveriu..."
"title": "Bandoma susisiekti su serveriu"
},
"processing": "Serveris apdoroja veiksmą...",
"processing": "Serveris apdoroja veiksmą",
"query_status": {
"error": "Nesėkminga",
"pending": "Vykdoma",
@ -40,13 +40,12 @@
},
"api_not_found": "Atrodo, kad žiniatinklio administratorius bandė pateikti užklausą apie tai, ko nėra.",
"api_not_responding": "\"YunoHost\" API neatsako. Galbūt 'yunohost-api' neveikia arba buvo paleista iš naujo?",
"api_waiting": "Laukiama serverio atsakymo...",
"api_waiting": "Laukiama serverio atsakymo",
"app": {
"open_this_app": "Atidarykite šią programėlę",
"doc": {
"notifications": {
"post_upgrade": "Pastabos po atnaujinimo",
"dismiss": "Atmesti",
"title": "Pranešimai",
"post_install": "Pastabos po diegimo"
},

View file

@ -7,7 +7,7 @@
"email": "одбери домен за вашиот емаил"
},
"local_part_description": {
"domain": "одбери под домен"
"domain": "одбери под домен"
}
}
}

View file

@ -22,8 +22,8 @@
"confirm_app_default": "Ben je zeker dat je dit de standaardapplicatie wil maken?",
"confirm_change_maindomain": "Ben je zeker dat je de domeinnaam wil wijzigen?",
"confirm_delete": "Ben je zeker dat je {name} wil verwijderen?",
"confirm_install_custom_app": "Waarschuwing: applicaties van derden installeren kan de veiligheid van je systeem in gevaar brengen. Gebruik op eigen risico.",
"confirm_install_domain_root": "Het zal niet meer mogelijk zijn om een andere app te installeren op {domain}. Verdergaan?",
"confirm_install_custom_app": "Waarschuwing: applicaties van derden installeren kan de veiligheid van je systeem in gevaar brengen. Gebruik op eigen risico?",
"confirm_install_domain_root": "Ben je zeker dat je deze app wilt installeren op '/'? Het zal niet meer mogelijk zijn om een andere app te installeren op {domain}",
"confirm_postinstall": "Je gaat zo het post-installatieproces starten op domein {domain}. Dit kan enkele minuten duren, *onderbreek het proces niet*.",
"confirm_restore": "Weet je zeker dat je {name} wilt herstellen?",
"confirm_uninstall": "Ben je zeker dat je de installatie van {name} ongedaan wilt maken?",
@ -34,10 +34,6 @@
"description": "Beschrijving",
"disable": "Uitschakelen",
"domain_add": "Domeinnaam toevoegen",
"domain_add_dns_doc": "... en ik heb <a href='//yunohost.org/dns_config' target='_blank'>mijn DNS correct ingesteld</a>.",
"domain_add_dyndns_doc": "... en ik wil een dynamische DNS-dienst (Dynamic DNS).",
"domain_add_panel_with_domain": "Ik heb al een domeinnaam…",
"domain_add_panel_without_domain": "Ik heb nog geen domeinnaam…",
"domain_default_desc": "De standaarddomeinnaam is de domeinnaam via dewelke gebruikers inloggen.",
"domain_name": "Domeinnaam",
"domains": "Domeinnamen",
@ -67,12 +63,10 @@
"local_archives": "Lokale archieven",
"login": "Inloggen",
"logout": "Uitloggen",
"mailbox_quota_description": "",
"manage_apps": "Apps beheren",
"manage_domains": "Domeinnamen beheren",
"manage_users": "Gebruikers beheren",
"multi_instance": "Meerdere instanties",
"myserver": "mijnserver",
"multi_instance": "Meerdere installaties mogelijk",
"next": "Volgende",
"no": "No",
"open": "Openen",
@ -125,14 +119,20 @@
"users_new": "Nieuwe gebruiker",
"users_no": "Geen gebruikers.",
"words": {
"default": "Standaard"
"default": "Standaard",
"link": "Link",
"separator": ", ",
"browse": "Blader",
"none": "Geen",
"valid": "Geldig",
"collapse": "Inklappen"
},
"yes": "Ja",
"app_info_changeurl_desc": "URL van deze applicatie veranderen (domein en/of locatie).",
"app_info_change_url_disabled_tooltip": "Functie is nog niet geïmplementeerd voor deze applicatie",
"app_state_inprogress": "functioneert nog niet",
"ok": "OK",
"app_state_highquality_explanation": "Deze applicatie is goed geïntegreerd met Yunohost. Ze werd en wordt beoordeel door de applicatie ploeg van Yunohost. Er kan gesteld worden dat ze veilig werkt en op lange termijn onderhouden zal worden.",
"app_state_highquality_explanation": "Deze applicatie is al minstens een jaar goed geïntegreerd met Yunohost.",
"app_state_lowquality_explanation": "Deze applicatie kan functioneren maar er zijn nog steeds openstaande problemen of ze is nog niet volledig geïntegreerd met Yunohost of ze respecteert de regels van de kunst niet.",
"app_state_lowquality": "lage kwaliteit",
"app_state_inprogress_explanation": "De persoon die deze applicatie onderhoudt, heeft verklaard dat ze nog niet klaar is voor een gebruik in productie. WEES VOORZICHTIG!",
@ -140,7 +140,7 @@
"all": "Alles",
"app_manage_label_and_tiles": "Naam en tegels beheren",
"app_choose_category": "Kies een categorie",
"api_waiting": "Aan het wachten op de reactie van de server...",
"api_waiting": "Aan het wachten op de reactie van de server",
"api_errors_titles": {
"APINotRespondingError": "YunoHost API reageert niet",
"APIError": "YunoHost kwam een onverwachte fout tegen",
@ -164,8 +164,19 @@
"pending": "Bezig",
"error": "Niet geslaagd"
},
"processing": "De server is aan het verwerken...",
"partial_logs": "[...] (kijk in de geschiedenis voor het volledige log)"
"processing": "De server is aan het verwerken…",
"partial_logs": "[…] (kijk in de geschiedenis voor het volledige log)",
"reconnecting": {
"failed": "De server lijkt niet te reageren. Je kunt proberen opnieuw verbinding te maken of je kunt de opdracht systemctl restart yunohost-api`uitvoeren via ssh.",
"reason": {
"shutdown": "Je server wordt afgesloten en is niet langer bereikbaar. Zet 'm weer aan en er verschijnt een login-prompt zodra de server bereikt kan worden.",
"unknown": "De verbinding met de server werd om onbekende reden gesloten.",
"reboot": "Je server is aan het herstarten en zal enige tijd niet bereikbaar zijn. Een login-prompt komt beschikbaar zodra de server terug is.",
"upgrade_system": "De verbinding met de server is gesloten vanwege een YunoHost upgrade. Wacht tot de server weer bereikbaar is…"
},
"success": "De server is nu bereikbaar! Je kan proberen in te loggen",
"title": "Poging met de server te communiceren…"
}
},
"address": {
"local_part_description": {
@ -189,9 +200,6 @@
"run_first_diagnosis": "Laat de eerste diagnose stellen",
"confirm_upnp_disable": "Weet je zeker dat je UPnP wilt uitschakelen?",
"api_not_found": "Het lijkt erop dat web-admin iets probeerde op te vragen wat niet bestaat.",
"app_config_panel": "Configuratiescherm",
"app_config_panel_label": "Richt deze app in",
"app_config_panel_no_panel": "Voor deze applicatie is geen inrichting beschikbaar",
"app_show_categories": "Categorieën tonen",
"confirm_reboot_action_shutdown": "Weet je zeker dat je de server wilt uitschakelen?",
"code": "Code",
@ -217,7 +225,46 @@
"push": "Stuurd de DNS-records door naar de registrar",
"push_force": "Bestaande records overschrijven",
"push_force_confirm": "Weet je zeker dat je alle voorgestelde DNS-records geforceerd wilt doorsturen? Houd er rekening mee dat handmatig ingerichte records kan overschrijven, of belangrijke standaardrecords die door je registrar ingericht zijn.",
"info": "De automatische DNS-record-inrichting is een experimentele functie. <br>Overweeg je huidige DNS zone op te slaan in de omgeving van je DNS-registratie voor je de inrichting vanuit hier door laat sturen."
"info": "De automatische DNS-record-inrichting is een experimentele functie. <br>Overweeg je huidige DNS zone op te slaan in de omgeving van je DNS-registratie voor je de inrichting vanuit hier door laat sturen.",
"methods": {
"auto": "Automatisch",
"handled_in_parent": "Beheerd door hoofddomein",
"manual": "Handmatig",
"none": "Geen",
"semi_auto": "Semi-automatisch"
}
},
"info": {
"certificate_authority": "SSL certificaat authoriteit",
"registrar": "register",
"dyn_dns_remove_and_unsubscribe": "Annuleer ook de registratie van dit domein bij de DynDNS dienst van YunoHost",
"apps_on_domain": "Apps geïnstalleerd op domein"
},
"cert": {
"types": {
"letsencrypt": "Let's Encrypt",
"other": "Andere/Onbekend",
"selfsigned": "Zelfondertekend"
},
"valid_for": "geldig voor {days}"
},
"see_parent_domain": "Zie moederdomein",
"toggle_subdomains": "Toon subdomeinen",
"add": {
"dyn_dns_password_desc": "Dit wachtwoord laat toe om later de controle over je domein terug te krijgen wanneer je jouw systeem herinstalleerd. Als je al eerder je domein geregistreerd hebt, gebruik dan hier je herstelwachtwoord om het terug te winnen.",
"dyn_dns_password": "Domein herstel wachtwoord",
"from_local": "Ik wil een domein enkel voor lokaal gebruik / tests",
"from_yunohost": "Ik bezit geen domein, ik wil een gratis DynDNS domein aangeboden door het YunoHost project registreren/gebruiken",
"from_local_desc": "Als je geen \"echt\" publiek domein wilt, kan je alles gebruiken dat eindigt met <code>.local</code> of <code>.test</code>. Domeinnamen eindigend in <code>.local</code> zijn bijzonder in de betekenis dat ze automatisch worden verwerkt door het lokaal netwerk, aangenomen dat de cliënt het Bonjour protocol ondersteund. Een alternatief is om het <code>/etc/hosts</code> bestand (of equivalent op Windows) aan te passen op elke cliënt waarop je dit domein wilt gebruiken, of om je lokale DNS invoer van je internetrouter te configereren.",
"from_registrar": "Ik wil een domein toevoegen dat ik al bezit, of een subdomein",
"from_yunohost_desc": "Het YunoHost project onderhoudt een gratis 'DynDNS' dienst. Deze is beperkt tot één domein per server (al kan je later wel sub-domeinen toevoegen via 'voeg een domein toe dat ik al bezit, of een subdomein' optie hierboven). De DNS configuratie zal automatisch worden behandeld door YunoHost. Dit is ideaal wanneer je begint met zelf te hosten in het algemeen en je nog niet wilt investeren in een domeinnaam. Maar, in de medium/langetermijn, raden we wel aan om een echt eigen domeinnaam te komen bij een register zodat je volledige eigendom hebt over je domein.",
"from_registrar_desc": "Je zal manueel je DNS-gegevens bij jouw register moeten afmaken om dit domein te configureren. De YunoHost diagnose zal je leiden naar wat je exact moet configureren in je DNS-gegevens."
},
"explain": {
"main_domain": "Het hoofddomein is het domein waarop de gebruikers connecteren op het portaal (via \"{domain}/yunohost/sso\").<br>Daarom is het niet mogelijk om het te verwijderen.<br>Als je \"{domain}\" wilt verwijderen, zul je eerst een ander domein moeten kiezen of toevoegen en als hoofddomein aanduiden."
},
"types": {
"main_domain": "Hoofddomein"
}
},
"disabled": "Uitgeschakeld",
@ -232,14 +279,417 @@
"diagnosis": "Diagnose",
"dns": "DNS",
"details": "Details",
"confirm_firewall_disallow": "Weet je zeker dat je poort {port} (protocol: {protocol}, verbinding: {connection}) wilt sluiten",
"domain_dns_conf_is_just_a_recommendation": "Deze pagina toont de *aanbevolen\" inrichting. De pagina richt DNS *niet* voor je in. Je moet zelf de DNS-zones bij je DNS-registratie inrichten volgens deze aanbeveling.",
"confirm_firewall_disallow": "Weet je zeker dat je poort {port} wilt sluiten? (protocol: {protocol}, verbinding: {connection})",
"domain_dns_conf_is_just_a_recommendation": "Deze sectie toont de *aanbevolen\" inrichting. De pagina richt DNS *niet* voor je in. Je moet zelf de DNS-zones bij je DNS-registratie inrichten volgens deze aanbeveling.",
"app_install_parameters": "Installatieparameters",
"confirm_firewall_allow": "Weet je zeker, dat je poort {port} (protocol: {protocol}, connectie: {connection}) wilt openen",
"confirm_firewall_allow": "Weet je zeker, dat je poort {port} wilt openen? (protocol: {protocol}, connectie: {connection})",
"confirm_install_app_inprogress": "WAARSCHUWING! Deze toepassing is nog experimenteel (als hij al niet volledig kapot is) en het kan maar zo zijn, dat hij je systeem om zeep helpt! Je kunt hem beter NIET installeren, behalve als je weet waar je mee bezig bent. Neem je het risico?",
"diagnosis_first_run": "De diagnosefunctie probeert veel voorkomende problemen in verschillende aspecten van je server in kaart te brengen, om er zeker van te zijn dat alles gladjes verloopt. Geen paniek als er iets mis is meteen nadat je je server geïnstalleerd hebt: de diagnose is precies bedoeld voor het opsporen van problemen en het bieden van hulp bij het oplossen ervan. De diagnose draait ook automatisch tweemaal per dag, en er wordt een email naar de beheerder gestuurd als er problemen gevonden worden.",
"diagnosis_first_run": "De diagnosefunctie probeert veel voorkomende problemen in verschillende aspecten van je server in kaart te brengen, om er zeker van te zijn dat alles vlot verloopt. Geen paniek als er iets mis is meteen nadat je je server geïnstalleerd hebt: de diagnose is precies bedoeld voor het opsporen van problemen en het bieden van hulp bij het oplossen ervan. De diagnose draait ook automatisch tweemaal per dag, en er wordt een email naar de beheerder gestuurd als er problemen gevonden worden.",
"diagnosis_explanation": "De diagnosefunctie probeert veel voorkomende problemen op verschillende aspecten van je server boven water te krijgen, zodat alles gladjes blijft lopen. De diagnose draait tweemaal per dag, er wordt een email naar de beheerder gestuurd als er problemen geconstateerd worden. Houdt er rekening mee dat niet alle controles per definitie relevant zijn als je specifieke functionaliteit niet gebruikt (XMPP, bijvoorbeeld) en dat er bij complexe opbouw van je server misschien vals alarm geslagen wordt. In die gevallen, en als je weet waar je mee bezig bent, is het geen probleem om de overeenkomstige waarschuwingen te negeren.",
"good_practices_about_user_password": "Je gaat nu een nieuw wachtwoord opgeven. Het wachtwoord moet minimaal 8 tekens lang zijn - hoewel het een goede gewoonte is om een langer wachtwoord te gebruiken (d.w.z. een wachtwoordzin) en/of verschillende soorten tekens te gebruiken (hoofdletters, kleine letters, cijfers en speciale tekens).",
"certificate_manage": "SSL-certificaat beheren",
"certificate": "Certificaat"
"certificate": "Certificaat",
"app": {
"info": {
"config_panel_error": "Een fout zorgt ervoor dat het configuratiepaneel niet getoond kan worden:",
"config_panel_error_please_report": "Rapporteer deze fout alsjeblieft aan het YunoHost-team om hem verholpen te krijgen!",
"forum": "Zoek of vraag op het forum!",
"problem": "Een probleem met deze app?"
},
"install": {
"license": "Licentie:{license}",
"notifs": {
"post": {
"title": "Post-install opmerkingen voor '{name}'",
"alert": "De installatie lijkt goed verlopen te zijn!\nHier zijn wat opmerkingen waarvan de packager denkt dat ze van belang zijn.\nJe kan het teruglezen op de informatiepagina van de app."
},
"pre": {
"critical": "De applicatie kan niet geinstalleerd worden",
"danger": "De installatie van de applicatie zal hoogstwaarschijnlijk tot problemen leiden",
"warning": "Belangrijk om te weten voorafgaand aan de installatie"
}
},
"problems": {
"arch": "Deze app kan enkel op specifieke architecturen ({required}) geinstalleerd worden, maar de architectuur van je YunoHost is {current}.",
"install": "Deze app is reeds geinstalleerd en kan niet meermaals geinstaleerd worden.",
"version": "Deze app heeft Yunohost >={required} nodig, maar de actieve versie is {current}. Overweeg om eerst YunoHost te upgraden.",
"broken": "Deze applicatie is kapot volgens de automatische tests van Yunohost, en draait waarschijnlijk je systeem in de soep! Je kan hem beter NIET installeren als je niet precies weet waar je mee bezig bent.",
"thirdparty": "Deze app is geen onderdeel van de officiele YunoHost-catalogus. De installatie van apps door derden kan de integriteit en veiligheid van je systeem ondermijnen. Je kan hem beter NIET installeren, als je niet precies weet waar je mee bezig bent.",
"ignore": "Ik begrijp dat deze installatie mijn Yunohost totaal in de war kan schoppen, maar ik wil het toch proberen.",
"inprogress": "Deze app is nog experimenteel (of zelfs totaal niet-werkend) end gooit waarschijnlijk je systeem in de soep! Je kunt hem beter NIET installeren als je niet precies weet waar je mee bezig bent.",
"lowquality": "Deze app doet het waarschijnlijk wel, maar hij is niet zo goed geintegreerd in YunoHost. Sommige functies, zoals bijvoorbeeld single-sign-on of backup/restore zijn niet beschikbaar, of de best-practices worden niet gevolgd.",
"ram": "Deze app heeft {required} RAM nodig ter installatie of upgrade, maar er is slechts {current} beschikbaar. Zelfs als de installatie slaagt, heeft de app zoveel geheugen nodig dat je server vast zou kunnen lopen."
},
"try_demo": "Probeer de demo",
"version": "Huidige versie: {version}"
},
"integration": {
"archs": "Ondersteunde architecturen:",
"ldap": {
"?": "Geen informatie over LDAP-integratie",
"false": "Geen ondersteuning voor inloggen met Yunohost-gebruikers (LDAP)",
"true": "Ondersteuning van inloggen met Yunohost-gebruikers (LDAP)"
},
"multi_instance": {
"false": "Kan slechts eenmaal geinstalleerd worden",
"true": "Kan meermaals geinstalleerd worden"
},
"resources": "Typisch gebruik van systeembronnen: {ram} RAM, {disk} opslagruimte",
"sso": {
"?": "Geen informatie over SSO-integratie",
"false": "Single-sign-on is niet beschikbaar (SSO)",
"true": "Single-sign-on is beschikbaar (SSO)"
},
"title": "Integratie met Yunohost"
},
"doc": {
"notifications": {
"understood": "Begrepen",
"post_install": "Post-install opmerkingen",
"post_upgrade": "Post-upgrade opmerkingen",
"title": "Notificaties"
},
"about": {
"description": "Omschrijving",
"title": "Over"
},
"admin": {
"title": "Documentatie voor beheerders"
}
},
"installed_version": "Geinstalleerde versie:",
"antifeatures": "Deze app heeft functionaliteit, die je mogelijk niet op prijs stelt:",
"links": {
"admindoc": "Officiële beheersdocumentatie",
"userdoc": "Officiële gebruikersdocumentatie",
"website": "Officiële website",
"forum": "Onderwerpen over deze app op het Yunohost-forum",
"code": "Officiële opslagplaats van code",
"package": "Opslagplaats van Yunohost-pakket",
"title": "Links",
"license": "App licentie",
"package_license": "Licentie Yunohost-pakket"
},
"potential_alternative_to": "Potentieel alternatief voor:",
"upgrade": {
"notifs": {
"pre": {
"alert": "Je zou deze meldingen moeten bekijken voor het upgraden, er kan belangrijke informatie om te weten zijn.",
"title": "Wees gewaarschuwd!"
},
"post": {
"title": "Meldingen na upgrade voor '{name}'",
"alert": "Het lijkt dat de upgrade goed is verlopen!\n Hier zijn een aantal meldingen die de pakket-ontwikkelaars belangrijk om te weten vinden over deze upgrade.\nJe kan deze opnieuw lezen op de infopagina van de app."
}
},
"stop": "Annuleer de upgrade van de volgende app",
"confirm": {
"apps": "Apps die zullen worden geüpgraded",
"title": "Bevestig app upgrade"
},
"continue": "Ga verder naar volgende app"
},
"uninstall": {
"purge_desc": "Verwijder de map met data die geassocieerd is met de app (dit is gewoonlijk de data die je zelf hebt geüpload bij het gebruiken van de app)."
},
"open_this_app": "Open deze app"
},
"human_routes": {
"migrations": {
"run": "Voer migratie uit",
"skip": "Sla migratie over"
},
"permissions": {
"remove": "Verwijder toegang van '{name}' tot '{perm}'",
"add": "Sta '{name}' toegang toe tot '{perm}'"
},
"share_logs": "Genereer link voor de log '{name}'",
"shutdown": "Sluit de server af",
"update": "Check voor updates",
"upgrade": {
"apps": "Upgrade alle apps",
"system": "Upgrade het systeem",
"app": "Upgrade '{app}' app"
},
"apps": {
"dismiss_notification": "Wijs melding voor '{name}' af",
"uninstall": "deïnstalleer app '{name}'",
"action_config": "Voer actie '{action}' van app '{name}' configuratie uit",
"change_url": "Verander toegangs-URL van '{name}'",
"install": "Installeer app '{name}'",
"update_config": "Update paneel '{id}' van app '{name}' configuratie",
"change_label": "Verander label van {prevName}' naar '{nextName}'",
"set_default": "Leid domein '{domain}' root naar '{name}' om"
},
"backups": {
"restore": "Herstel backup '{name}'",
"create": "Maak een backup",
"delete": "Verwijder backup '{name}'"
},
"domains": {
"add": "Voeg domein '{name}' toe",
"push_dns_changes": "Verzend DNS gegevens naar register voor '{name}'",
"set_default": "Zet '{name}' als standaarddomein",
"update_config": "Update paneel '{id}' van domein '{name}' configuratie",
"cert_install": "Installeer certificaat voor '{name}'",
"cert_renew": "Hernieuw certificaat voor '{name}'",
"delete": "Verwijder domein '{name}'"
},
"users": {
"create": "Maak gebruiker '{name}' aan",
"delete": "Verwijder gebruiker '{name}'",
"update": "Update gebruiker '{name}'"
},
"diagnosis": {
"run": "Voer diagnose uit",
"unignore": {
"warning": "Een waarschuwing niet negeren",
"error": "Een foutmelding niet negeren"
},
"ignore": {
"warning": "Negeer een waarschuwing",
"error": "Negeer een foutmelding"
},
"run_specific": "Voer '{description}'-diagnose uit"
},
"services": {
"restart": "Herstart de dienst '{name}'",
"stop": "Stop de dienst '{name}'",
"start": "Start de dienst '{name}'"
},
"firewall": {
"ports": "{action} port {port} ({protocol}, {connection})",
"upnp": "{action} UPnP"
},
"postinstall": "Voer de post-installatie uit",
"groups": {
"delete": "Verwijder groep '{name}'",
"create": "Maak groep '{name}'",
"add": "voeg '{user}' toe aan groep '{name}'",
"remove": "Verwijder '{user}' van groep '{name}'"
},
"settings": {
"update": "Update '{panel}' globale instellingen"
},
"reboot": "Herstart de server",
"reconnecting": "Herconnecteer"
},
"form_errors": {
"emailForward": "Ongeldig doorstuur-e-mailadres: mag enkel alfanumerische en <code>_.-+</code> tekens zijn (vb. iemand+label@voorbeeld.com, v00rbeeld-1+label@voorbeeld.com)",
"maxValue": "Waarde moet een getal gelijk aan of kleiner dan {max} zijn.",
"between": "De waarde moet tussen {min} en {max} zijn.",
"remote": "{message}",
"pattern": "{type}",
"domain": "Ongeldig domeinnaam: Mag enkel alfanumerische kleine letters, punten en streepjes-tekens zijn",
"alpha": "Invoer moeten uitsluitend alfabettekens zijn.",
"minValue": "Waarde moet een getal gelijk aan of groter dan {min} zijn.",
"name": "Namen mogen geen speciale tekens bevatten buiten <code> ,.'-</code>",
"dynDomain": "Ongeldige domeinnaam: Mag enkel alfanumerische kleine letters en streepjes-tekens zijn",
"required": "Veld is verplicht.",
"invalid_form": "Het formulier bevat een aantal fouten.",
"alphalownumdot_": "Invoer moet uitsluitend bestaan uit alfanumerische kleine letters, punten en liggende-streepjes-tekens zijn.",
"email": "Ongeldig e-mailadres: mag enkel alfanumerische en <code>_.-</code> tekens zijn (vb. iemand@voorbeeld.com, v00rbeeld-1@voorbeeld.com)",
"appRepoUrl": "YunoHost app opslagplaats URLs worden verwacht om eruit te zien als https://domain.tld/path/to/repo_ynh",
"notInUsers": "De gebruiker '{value}' bestaat al.",
"number": "Waarde moet een getal zijn.",
"passwordLenght": "Wachtwoord moet minstens 8 tekens lang zijn.",
"passwordMatch": "Wachtwoord komt niet overeen."
},
"group_visitors": "Bezoekers",
"history": {
"title": "Geschiedenis",
"last_action": "Laatste actie:",
"methods": {
"DELETE": "verwijder",
"POST": "maak/voer uit",
"PUT": "aanpassen",
"GET": "lees"
},
"is_empty": "Niets in geschiedenis op dit moment."
},
"items": {
"apps": "geen apps | app | {c} apps",
"logs": "geen logs | log | {c} logs",
"permissions": "geen privileges | privilege | {c} privilege",
"services": "geen diensten | dienst | {c} diensten",
"backups": "geen backups | backup | {c} backups",
"groups": "geen groepen | groep | {c} groepen",
"domains": "geen domein | domein | {c} domeins",
"users": "geen gebruikers | gebruiker | {c} gebruikers",
"installed_apps": "geen geïnstalleerde apps | geïnstalleerde app | {c} geïnstalleerde apps"
},
"hook_data_xmpp_desc": "Kamer en gebruiker configuraties, geüploade bestanden",
"ignored": "{count} genegeerd",
"tools_webadmin": {
"language": "Taal",
"cache": "Cache",
"fallback_language": "Terugvaltaal",
"transitions": "Paginatransitie animatie",
"fallback_language_description": "Taal die zal worden gebruikt in het geval er geen vertaling beschikbaar is in je hoofdtaal.",
"experimental": "Experimentele modus",
"theme": "Schakel nachtmodus in",
"cache_description": "Overweeg om de cache uit te schakelen als je van plan bent te werken met CLI terwijl je ook door dit beheersportaal navigeert.",
"experimental_description": "Geeft je toegang tot experimentele functies. Deze worden geacht onstabiel te zijn en kunnen je systeem kapot maken.<br>Schakel dit enkel in als je weet wat je doet."
},
"items_verbose_items_left": "Er zijn {items} over. | Er is 1 {items} over. | Er zijn {items} over.",
"logs_app": "Logbestanden van apps",
"logs_history": "Geschiedenis van commando uitgevoerd op systeem",
"logs_no_logs_registered": "Geen logbestanden geregistreerd in deze categorie",
"logs_service": "Logbestanden van services",
"migrations_disclaimer_not_checked": "Deze migratie vereist de erkenning van de disclaimer voor uitvoering.",
"migrations_done": "Vorige migraties",
"nobody": "Niemand",
"perform": "Uitvoeren",
"permissions": "Privileges",
"placeholder": {
"fullname": "Sam Smith",
"file": "Blader door bestanden of sleep en drop het",
"firstname": "Sam",
"username": "samsmith",
"domain": "mijn-domein.com",
"groupname": "Mijn groepsnaam",
"lastname": "Smith"
},
"restart": "Opnieuw opstarten",
"retry": "Opnieuw proberen",
"search": {
"for": "Zoeken voor {items}…",
"not_found": "Er zijn {items} die overeenkomen met jouw criteria. | Er is 1 {items} dat overeenkomt met jouw criteria. | Er zijn {items} die overeenkomen met jouw criteria."
},
"since": "sinds",
"system_upgrade_all_applications_btn": "Alle applicaties updaten",
"tools_webadmin_settings": "Web-beheersportaal instellingen",
"traceback": "Traceren",
"user_emailforward_add": "Voeg een e-mail-forward toe",
"users_export": "Exporteer gebruikers",
"users_import": "Importeer gebruikers",
"experimental_warning": "Waarschuwing: deze functie is experimenteel en nog niet stabiel. Je moet deze functie alleen gebruiken als je weet wat je doet.",
"logs_path": "Pad",
"users_import_delete_desc": "Als aangevinkt, zullen alle gebruikers die niet in het CSV bestand aanwezig zijn worden verwijderd (en gewist).",
"logs_started_at": "Start",
"logs_context": "Context",
"select_all": "Selecteer alles",
"run": "Uitvoeren",
"select_none": "Selecteer niets",
"skip": "Overslaan",
"purge_user_data_warning": "Het compleet verwijderen van de data van een gebruiker is onomkeerbaar. Zorg ervoor dat je weet wat je doet!",
"version": "Versie",
"only_decent_quality_apps": "Alleen apps van redelijke kwaliteit",
"from_to": "van {0} tot {1}",
"group_format_name_help": "Je kan alfanumerieke tekens en liggende streepjes gebruiken",
"group_name": "Groepsnaam",
"group": "Groep",
"group_all_users": "Alle gebruikers",
"ignore": "Negeren",
"everything_good": "Alles is OK!",
"warnings": "{count} waarschuwingen",
"rerun_diagnosis": "Voer diagnose opnieuw uit",
"others": "Anderen",
"issues": "{count} problemen",
"permission_show_tile_enabled": "Zichtbaar als tegel in het gebruikersportaal",
"migrations_no_pending": "Geen migraties in behandeling",
"tools_shutdown": "Server afsluiten",
"logs": "Logbestanden",
"logs_suboperations": "Deeloperaties",
"hook_conf_ynh_settings": "YunoHost configuraties",
"logs_ended_at": "Einde",
"logs_more": "Meer regels weergeven",
"migrations": "Migraties",
"unknown": "Onbekend",
"only_highquality_apps": "Alleen hoge-kwaliteit apps",
"migrations_no_done": "Geen vorige migraties",
"postinstall": {
"force": "Forceer de post-installatie",
"title": "Post-installatie",
"user": {
"title": "Maak eerste beheerder aan",
"first_user_help": "De gebruiker zal beheersprivileges krijgen en zal worden toegestaan om contact te maken via zowel de beheersinterface als rechtstreeks met SSH tot de server.\nAangezien het ook een gewone gebruiker is, zal je ook met deze gegevens contact kunnen maken met het gebruikersportaal (SSO).\nEenmaal de post-installatie volledig is, zal je de mogelijkheid hebben om andere beheerders te maken door ze toe te voegen in de 'beheerders'-groep."
}
},
"users_import_csv_file": "CSV Bestand",
"users_import_delete_others": "Verwijder gebruikers buiten deze lijst",
"good_practices_about_admin_password": "Je staat op het punt een nieuw beheerderswachtwoord in te voeren. Dit wachtwoord moet minimaal 8 tekens bevatten. Het is verstandig om een langer wachtwoord te gebruiken (zoals een lange lijst met woorden die niet makkelijk te raden zijn) en/of door verschillende tekens door elkaar heen te gebruiken (hoofdletters, kleine letters, cijfers en leestekens).",
"go_back": "Teruggaan",
"logs_share_with_yunopaste": "Deel met YunoPaste",
"logs_system": "Kernel-logbestanden en andere low-level gebeurtenissen",
"logs_operation": "Operaties gemaakt op systeem met YunoHost",
"logs_package": "Managementgeschiedenis van Debian-pakketten",
"orphaned": "Niet onderhouden",
"tools_reboot_btn": "Opnieuw opstarten",
"users_import_update": "Update bestaande gebruikers",
"yunohost_admin": "YunoHost beheerder",
"users_import_delete": "Verwijder gebruikers buiten de lijst",
"enabled": "ingeschakeld",
"experimental": "Experimenteel",
"footer": {
"help": "Hulp nodig?",
"documentation": "Documentatie",
"donate": "Doneer"
},
"form_input_example": "Voorbeeld: {example}",
"last_ran": "Laatste scan:",
"postinstall_set_domain": "Bepaal hoofddomein",
"license": "Licentie",
"user_emailaliases_add": "Voeg een e-mail alias toe",
"group_add_member": "Gebruiker toevoegen",
"group_new": "Nieuwe groep",
"group_explain_all_users": "Dit is een speciale groep die alle gebruikersaccounts op de server bevat",
"group_specific_permissions": "Gebruiker-specifieke toestemmingen",
"pending_migrations": "Er moeten nog een paar migraties uitgevoerd worden. Ga naar <a href='#/tools/migrations'>Tools > Migraties</a> om ze uit te voeren.",
"groups_and_permissions_manage": "Groepen en privileges beheren",
"unignore": "Niet negeren",
"domain_delete_longdesc": "Verwijder dit domein",
"domain_dns_config": "DNS-configuratie",
"domain_dns_longdesc": "DNS-configuratie weergeven",
"error_server_unexpected": "Onverwachte serverfout",
"error_connection_interrupted": "De server heeft de connectie verbroken in plaats van deze te beantwoorden. Zijn nginx of de yunohost-api opnieuw opgestart of gestopt?",
"app_state_broken": "kapot",
"domain_dns_push_failed_to_authenticate": "De authenticatie bij de API van het register is mislukt. Waarschijnlijk zijn de <a href='#/domains/{domain}/config'>credentials</a> incorrect? (Error: {error})",
"group_admins": "Beheerders",
"group_explain_visitors": "Dit is een speciale groep die anonieme bezoekers voorstelt",
"mailbox_quota_description": "Zet een opslaglimiet voor de e-mail inhoud.<br>Zet deze op 0 om uit te schakelen.",
"mailbox_quota_placeholder": "Vul 0 in om te deactiveren.",
"manage_groups": "Beheer groepen",
"only_working_apps": "Alleen werkende apps",
"migrations_pending": "Migraties in behandeling",
"permission_main": "Hoofdlabel",
"logs_access": "Lijst van toegang en bans",
"tools_yunohost_settings": "YunoHost instellingen",
"tools_reboot": "Server herstarten",
"user_mailbox_use": "Gebruikte ruimte door mailbox",
"tools_shutdown_reboot": "Afsluiten/Herstarten",
"tools_shutdown_btn": "Afsluiten",
"purge_user_data_checkbox": "Data van {name} verwijderen? (Dit zal de inhoud van hun home en mail-mappen volledig verwijderen.)",
"readme": "Lees-mij",
"groups_and_permissions": "Groepen en toestemmingen",
"items_verbose_count": "Er zijn {items}. | Er is 1 {items}. | Er zijn {items}.",
"hook_data_xmpp": "XMPP gegevens",
"domain_dns_push_managed_in_parent_domain": "De automatische DNS gegevens functie is beheerd door het moederdomein <a href='#/domains/{parent_domain}/dns'>{parent_domain}</a>.",
"hook_conf_manually_modified_files": "Handmatig aangepaste configuraties",
"label_for_manifestname_help": "Dit is de naam die wordt weergegeven op het gebruikersportaal. Dit kan later worden aangepast.",
"migrations_disclaimer_check_message": "Ik heb deze disclaimer gelezen en begrepen",
"system_upgrade_all_packages_btn": "Alle pakketten upgraden",
"users_import_update_desc": "Als aangevinkt, zullen alle bestaande gebruikers opgenomen in het CSV bestand worden geüpdated met de nieuwe waarde",
"details_about": "Toon meer details over {subject}",
"domain_add_dyndns_forbidden": "Je bent al geregistereerd/geabbonneerd op een DynDNS domein van het YunoHost project. Per ontwerp is deze toepassing gelimiteerd tot één zulk domein per server. Als je een ander subdomein van je bestaand geregistreerd domein wilt toevoegen, gebruik dan de 'voeg domein toe dat ik bezit, of subdomein' optie hierboven. Als je een totaal ander domein wilt gebruiken, zal je eerst je bestaande DynDNS domein moeten verwijderen. DynDNS domeinen zijn goed wanneer je start met zelf te hosten, maar op de medium/lange termijn raden we aan om je eigen domeinnaam te kopen bij een register zodat je volledige eigendom hebt van je domein.",
"confirm_install_app_broken": "WAARSCHUWING! Deze applicatie is kapot volgens de automatische tests van Yunhost en zal waarschijnlijk je systeem kapot maken! Je moet deze app waarschijnlijk NIET installeren tenzij je weet wat je doet. Wil je dat risico nemen?",
"group_add_permission": "Toestemming toevoegen",
"group_explain_admins": "Deze groep komt overeen met beheerders. Gebruikers in deze groep hebben toegang tot de YunoHost webadmin, kunnen connecteren met de server via SSH en kunnen het 'sudo' commando gebruiken. Ze zullen ook de e-mails verzonden aan root@, admin@ en admins@, en zulkse diagnose notificaties krijgen. Je zou enkel personen die je volledig vertrouwd mogen toevoegen in deze groep!",
"group_explain_visitors_needed_for_external_client": "Let op dat je sommige applicaties toegankelijk houdt voor bezoekers als je deze wilt gebruiken met externe cliënts. Dit is bijvoorbeeld het geval bij Nextcloud als je jouw smartphone of desktopcomputer wilt gebruiken als synchronisatiecliënt.",
"tip_about_user_email": "Gebruikers worden aangemaakt met een bijbehorend emailadres (en XMPP-account) in de vorm username@domain.tld. Extra email-aliassen en email-forwards kunnen later toegevoegd worden door de beheerders en de gebruiker.",
"mailbox_quota_example": "700M is een CD, 4700M is een DVD",
"operation_failed_explanation": "De operatie ging fout! Onze excuses :( Je kan proberen <a href='https://yunohost.org/help'>om hulp te vragen</a>. Toon alstublieft het *volledige logbestand* van de operatie aan de mensen die je helpen. Je kan dit doen door te klikken op de groene knop 'Deel met Yunopaste'. Bij het delen van deze logbestanden zal YunoHost automatisch proberem om de privédata, zoals domeinnamen en IP-addressen, te anonymiseren.",
"orphaned_details": "Deze app is al langere tijd niet onderhouden. Het zou nog kunnen werken, maar het zal geen updates meer ontvangen tot een vrijwilliger dit op zich neemt. Help mee om deze app nieuw leven in te blazen!",
"permission_corresponding_url": "Bijbehorende URL",
"text_selection_is_disabled": "Tekstselectie is uitgeschakeld. Als je de log wilt delen, deel dan de volledige log met de 'Deel met Yunopaste' knop.<br/><small>Of als je echt tekst wilt selecteren, druk dan de toetsen: ↓↓↑↑.</small>",
"users_import_confirm_destructive": "Ben je zeker dat je gebruikers wilt verwijderen die niet aanwezig zijn in dit bestand?",
"domain_delete_forbidden_desc": "je kan '{domain}' niet verwijderen aangezien het je standaarddomein is, je zal een ander domein moeten kiezen (of <a href='#/domains/add'>voeg nieuwe toe</a>) en het als je standaarddomein zetten om deze te kunnen verwijderen.",
"important_yunohost_upgrade": "Een belangrijke YunoHost upgrade is beschikbaar. Het is zeer sterk aangeraden om nauwgezet de uitgaveopmerking(en) op het forum te lezen voor het upgraden: <a href='https://forum.yunohost.org/tag/ynh_release'>Blader door de uitgaveopmerkingen op het forum</a>",
"logs_error": "Foutmelding",
"users_import_csv_file_desc": "Het CSV bestand moet in UTF-8 zijn en met de kolommen gebruikersnaam, wachtwoord, groepen, e-mail en quota. Als voorbeeld van een CSV bestand om te importeren, kan je <a href='/yunohost/api/users/export' target='_BLANK'>gebruikers exporteren in een CSV bestand</a> en het bestand aanpassen.",
"footer_version": "Mogelijk gemaakt door <a href='https://yunohost.org'>YunoHost</a> {version} ({repo}).",
"wrong_password_or_username": "Fout wachtwoord of gebruikersnaam",
"app_state_broken_explanation": "Deze applicatie is op dit moment kapot en is niet-installeerbaar volgens de automatische testen van YunoHost",
"domain_default_longdesc": "Dit is jouw standaarddomein.",
"domain_dns_push_not_applicable": "De automatische DNS gegevens functie is niet van toepassing op de domein {domain},<br> Je zal de DNS gegevens manueel moeten configureren volgens de <a href='https://yunohost.org/dns'>documentatie</a> en de aangeraden configuratie hieronder."
}

View file

@ -51,10 +51,6 @@
"disable": "Desactivar",
"dns": "DNS",
"domain_add": "Ajustar un domeni",
"domain_add_dns_doc": "… e ai <a href='//yunohost.org/dns_config' target='_blank'>>corrèctament configurat mos DNS</a>.",
"domain_add_dyndns_doc": "… e desiri un nom de domeni preconfigurat.",
"domain_add_panel_with_domain": "Ai ja mon nom de domeni…",
"domain_add_panel_without_domain": "Ai pas de nom de domeni…",
"domain_default_desc": "Los utilizaires se connectaràn al domeni per defaut.",
"domain_default_longdesc": "Aquò es vòstre domeni per defaut.",
"domain_delete_longdesc": "Suprimir aqueste domeni",
@ -102,7 +98,6 @@
"migrations_no_pending": "Pas cap de migracion en espèra",
"migrations_no_done": "Pas cap de migracion precedenta",
"multi_instance": "Pòt èsser installada mantun còp",
"myserver": "monservidor",
"next": "Seguent",
"no": "Non",
"ok": "OK",
@ -119,7 +114,7 @@
"restore": "Restaurar",
"run": "Lançar",
"running": "En execucion",
"save": "Salvagardar",
"save": "Enregistrar",
"service_start_on_boot": "Lançar en aviar",
"services": "Servicis",
"set_default": "Definir per defaut",
@ -157,7 +152,7 @@
"user_username": "Nom dutilizaire",
"users": "Utilizaires",
"users_new": "Nòu utilizaire",
"domain_dns_conf_is_just_a_recommendation": "Aquesta pagina mòstra la configuracion *recomandada*. Configura *pas* lo DNS per vos. Es vòstra responsabilitat la configuracion de la zòna DNS en çò vòstre registrar DNS amb aquesta recomandacion.",
"domain_dns_conf_is_just_a_recommendation": "Aquesta seccion mòstra la configuracion *recomandada*. Configura *pas* lo DNS per vos. Es vòstra responsabilitat la configuracion de la zòna DNS en çò vòstre registrar DNS amb aquesta recomandacion.",
"postinstall_domain": "Aquò es lo primièr nom de domeni ligat al servidor YunoHost, mas tanben lo que servirà al portanèl didentificacion. Serà doncas visible per totes los utilizaires, causissètz-lo amb suènh.",
"postinstall_intro_2": "Doas etapas mai son necessàrias per activar lo servidor.",
"postinstall_intro_3": "Podètz trapar mai dinformacion en anar a <a href='//yunohost.org/en/install/hardware:vps_debian#fa-cog-proceed-with-the-initial-configuration' target='_blank'> la pagina de documentacion en question</a>",
@ -228,7 +223,7 @@
"group_new": "Nòu grop",
"group_explain_all_users": "Aquò es un grop especial que conten totes los comptes dutilizaires del servidor",
"group_explain_visitors": "Aquò es un grop especial que representa los visitaires anonims",
"group_specific_permissions": "Permissions especificas de lutilizaire",
"group_specific_permissions": "Permissions per utilizaires individuals",
"groups_and_permissions": "Grops e permissions",
"groups_and_permissions_manage": "Gerir los grops e las permissions",
"ignore": "Ignorar",
@ -344,7 +339,7 @@
"reconnecting": "Reconnexion"
},
"search": {
"for": "Recercar {items}...",
"for": "Recercar {items}",
"not_found": "I a {items} que correspondon a vòstres critèris. | I a 1 {items} que correspond a vòstres critèris. | I a {items} que correspondon a vòstres critèris."
},
"tools_webadmin": {
@ -410,7 +405,7 @@
"notInUsers": "Lutilizaire « {value} » existís ja.",
"name": "Los noms devon pas conténer de caractèrs especials levats <code>,.'-</code>",
"domain": "Nom de domeni invalid: deu èsser compausat de minusculas alfranumericas, de punts e de jonhents bas",
"alphalownum_": "La valor deu sonque de caractèrs alfanumerics en minuscula e jonhent bas.",
"alphalownumdot_": "La valor deu sonque de caractèrs alfanumerics en minuscula e jonhent bas.",
"minValue": "La valor deu èsser un nombre egal o superiora a {min}.",
"between": "La valor deu èsser compresa entre {min} e {max}.",
"alpha": "La cadena de caractèrs deu conténer sonque de letras.",
@ -444,10 +439,8 @@
"code": "Còdi",
"app_show_categories": "Mostrar las categorias",
"app_install_parameters": "Paramètres dinstallacion",
"app_config_panel_label": "Configurar aquesta aplicacion",
"app_config_panel": "Panèl de configuracion",
"app_choose_category": "Causissètz una categoria",
"api_waiting": "En espèra de la responsa del servidor...",
"api_waiting": "En espèra de la responsa del servidor…",
"api_errors_titles": {
"APIConnexionError": "YunoHost a rescontrat una error de connexion",
"APIInternalError": "YunoHost a rescontrat una error intèrna",
@ -471,10 +464,10 @@
"pending": "En cors",
"error": "Fracàs"
},
"processing": "Lo servidor es a tractar laccion...",
"partial_logs": "[...] (veire listoric pels logs complèts)",
"processing": "Lo servidor es a tractar laccion",
"partial_logs": "[] (veire listoric pels logs complèts)",
"reconnecting": {
"title": "Temptativa de comunicacion amb lo servidor...",
"title": "Temptativa de comunicacion amb lo servidor",
"reason": {
"unknown": "La connexion amb lo servidor es estada copada per una rason desconeguda.",
"reboot": "Vòstre servidor tòrna aviar e serà pas contactable pendent un moment. Una fenèstra de connexion serà disponibla tre que lo servidor serà accessible.",
@ -491,7 +484,6 @@
"traceback": "Traça",
"migrations_disclaimer_not_checked": "Aquesta migracion requerís que vos assabentetz de la descarga de responsabilitat abans de lexecutar.",
"hook_data_xmpp_desc": "Configuracion de las salas e dels utilizaires, fichièrs enviats",
"app_config_panel_no_panel": "Aquesta aplicacion a pas cap de configuracion disponibla",
"api_not_found": "Ladministrator a ensajat d'accedir a quicòm quexistís pas.",
"domain": {
"config": {
@ -509,7 +501,35 @@
"push_force": "Espotir los enregistraments existents",
"push_force_warning": "Sembla que dunes enregistrament DNS que YunoHost auriá definit sián ja dins la configuracion del registrar. Podètz utilizar lopcion despotiment se sabètz çò que fasètz.",
"push_force_confirm": "Volètz vertadièrament forçar totes los enregistraments DNS sugerits?Vos cal saber quaquò pòt espotir manualament los enregistraments importants per defaut per vos o vòstre registrar.",
"info": "La configuracion automatica dels enregistraments DNS es una foncionalitats experimentala. <br>Pensatz de salvagardar vòstra zòna DNS actuala a partir de linterfàcia de vòstre registrar DNS abans de transferir los enregistraments a partir daquí."
"info": "La configuracion automatica dels enregistraments DNS es una foncionalitats experimentala. <br>Pensatz de salvagardar vòstra zòna DNS actuala a partir de linterfàcia de vòstre registrar DNS abans de transferir los enregistraments a partir daquí.",
"methods": {
"manual": "Manual",
"none": "Cap",
"semi_auto": "Semiautomatic",
"auto": "Automatic",
"handled_in_parent": "Gerit dins lo domeni parent"
}
},
"info": {
"certificate_authority": "Autoritat de certificacion SSL",
"apps_on_domain": "Aplicacions installada sul domeni"
},
"see_parent_domain": "Veire lo domeni parent",
"toggle_subdomains": "Veire los jos domenis",
"cert": {
"types": {
"letsencrypt": "Let's Encrypt",
"other": "Autre/Desconegut",
"selfsigned": "Auto-signat"
},
"valid_for": "valable pendent {days}"
},
"types": {
"main_domain": "Domeni màger"
},
"add": {
"dyn_dns_password": "Senhal de recuperacion del domeni",
"from_local": "Vòli un domeni per un usatge local / de provar sonque"
}
},
"users_import": "Importar los utilizaires",
@ -527,5 +547,104 @@
"users_import_delete_desc": "Se marcat, totes los utilizaires existents que son pas presents dins lo fichièr CSV seràn suprimits (e purgats).",
"domain_dns_push_not_applicable": "La foncionalitat enregistrament DNS automatica es pas aplicablas al domeni {domain},<br>Podètz configurar manualament vòstres enregistraments DNS en seguissent <a href='https://yunohost.org/dns'>documentation</a> e las suggestions de configuracion çai-jos.",
"text_selection_is_disabled": "La seleccion del tèxt es desactivada. Se volètz partejar aqueste log *complet*, o podètz far en clicant lo boton «Partejar amb Yunopaste».<br/><small>Autrament se volètz vertadièrament seleccionar de tèxt, quichatz aquestas tòcas: ↓↓↑↑.</small>",
"users_import_csv_file_desc": "Lo fichièr CSV deu èsser al format UTF-8 amb colomnas nom dutilizaire, senhal, grops, email e quota. Per un exemple dimportacion de fichièr CSV, podètz <a href='/yunohost/api/users/export' target='_BLANK'>exportar vòstres utilizaires dins un fichièr CSV</a> e modificar lo fichièr."
"users_import_csv_file_desc": "Lo fichièr CSV deu èsser al format UTF-8 amb colomnas nom dutilizaire, senhal, grops, email e quota. Per un exemple dimportacion de fichièr CSV, podètz <a href='/yunohost/api/users/export' target='_BLANK'>exportar vòstres utilizaires dins un fichièr CSV</a> e modificar lo fichièr.",
"app": {
"info": {
"config_panel_error": "Una error empacha lafichatge del panèl de configuracion :",
"config_panel_error_please_report": "Mercés de senhalar aquesta error a la còla de YunoHost per que siá corregida !",
"forum": "Cercatz o demandatz sul forum !",
"problem": "Un problèma amb aquesta aplicacion ?"
},
"install": {
"notifs": {
"pre": {
"critical": "Se pòt installar laplicacion",
"warning": "Çò que cal saber abans linstallacion",
"danger": "Linstallacion de laplicacion menarà plan probablament a de problèmas"
},
"post": {
"title": "Notificacion de post-installacion per « {name} »",
"alert": "Sembla que linstallacion se siá plan passada !\n Vaquí dunas notificacion que lo responsable del paquet considèra coma importantas de saber.\nLas podètz tornar trapar dins la pagina dinformacions de laplicacion."
}
},
"problems": {
"ignore": "Compreni quaquesta installacion pòt copar mon sistèma mas vòli ensajar ça que la.",
"install": "Aquesta aplicacion es ja installada e se pòt pas installar mai dun còp.",
"arch": "Se pòt sonque installar aquesta aplicacion sus darquitectura especificas ({required}). Larquitectura de vòstre servidor es {current}.",
"broken": "Aquesta aplicacion es copada segon los tests automatics de YunoHost e es susceptibla de copar vòstre sistèma ! Deuriatz probablament PAS linstallar levat se sabètz çò que fasètz.",
"thirdparty": "Aquesta aplicacion fa pas part del catalòg oficial de YunoHost, linstallacion daplicacions tèrças pòt comprometre lintegritat e la seguretat de vòstre sistèma. Deuriatz probablament PAS linstallar levar se sabètz çò que fasètz."
},
"try_demo": "Ensajar la demonstracion",
"version": "Version actuala : {version}",
"license": "Licéncia : {license}"
},
"integration": {
"archs": "Arquitectura presa en carga :",
"multi_instance": {
"false": "Se pòt installar quun còp",
"true": "Se pòt installar mai dun còp"
},
"sso": {
"false": "Lautentificacion unica (SSO) es pas disponibla",
"true": "Lautentificacion unica (SSO) es disponibla",
"?": "Cap dinformacion tocant lautentificacion unica (SSO)"
},
"title": "Integracion amb YunoHost",
"ldap": {
"false": "Permet pas dutilizar los compte YunoHost per se connectar (LDAP)",
"true": "Utilizar los comptes YunoHost per se connectar (LDAP)",
"?": "Cap dinformacion tocant lintegracion LDAP"
},
"resources": "Utilizacion classica de las ressorsas : {ram} RAM, {disk} disc"
},
"links": {
"website": "Site oficial",
"license": "Licéncia",
"admindoc": "Documentacion dadministracion oficiala",
"code": "Depaus oficial del còdi",
"package": "Depaus dels paquets de YunoHost",
"title": "Ligams",
"userdoc": "Documentacion utilizaire oficiala",
"forum": "Subjèctes tocant aquesta aplicacion sul forum de YunoHost"
},
"installed_version": "Version installada :",
"open_this_app": "Dobrir laplicacion",
"antifeatures": "Aquesta aplicacion a de foncionalitats que vos agradaràn benlèu pas :",
"doc": {
"about": {
"title": "A prepaus",
"description": "Descripcion"
},
"admin": {
"title": "Documentacion admin"
},
"notifications": {
"title": "Notificacions",
"post_upgrade": "Nòtas post mesa a nivèl",
"post_install": "Nòtas post installacion",
"understood": "Comprés"
}
},
"upgrade": {
"confirm": {
"title": "Confirmatz las mesas a novèl de las aplicacions",
"apps": "Aplicacions que seràn mesas a nivèl"
},
"continue": "Passar a laplicacion seguenta",
"notifs": {
"pre": {
"title": "Siatz avisat !"
},
"post": {
"title": "Notificacion de post mesa a nivèl per « {name} »"
}
},
"stop": "Anullar las mesas a jorn daplicacion venentas"
},
"potential_alternative_to": "Alternativa potenciala a :"
},
"app_state_broken_explanation": "Aquesta aplicacion es actualament copada e se pòt pas installar segon los contraròtles automatic de YunoHost",
"app_state_broken": "copada",
"details_about": "Mostrar mai de detalhs tocant {subject}",
"group_admins": "Admins"
}

View file

@ -44,11 +44,8 @@
"app_state_lowquality": "niska jakość",
"app_state_inprogress_explanation": "Opiekun tej aplikacji zadeklarował, że ta aplikacja nie jest jeszcze gotowa do użytku zewnętrznego. BĄDŹ OSTROŻNY!",
"app_show_categories": "Pokaż kategorie",
"app_config_panel_no_panel": "Konfiguracja dla tej aplikacji jest niedostępna",
"app_config_panel_label": "Skonfiguruj aplikację",
"app_config_panel": "Panel konfiguracji",
"app_choose_category": "Wybierz kategorię",
"api_waiting": "Czekam na odpowiedź serwera...",
"api_waiting": "Czekam na odpowiedź serwera…",
"all_apps": "Wszystkie aplikacje",
"api_errors_titles": {
"APIConnexionError": "YunoHost napotkał błąd połączenia",
@ -60,7 +57,7 @@
},
"api_error": {
"view_error": "Zobacz błąd",
"sorry": "Bardzo przepraszam za to.",
"sorry": "Bardzo za to przepraszam.",
"server_said": "Podczas wykonywania zadania serwer odpowiedział:",
"info": "Poniższe informacje mogą być przydatne dla osoby udzielającej Ci pomocy:",
"error_message": "Wiadomość błędu:",
@ -73,7 +70,7 @@
"pending": "W trakcie",
"error": "Nieudane"
},
"processing": "Serwer w trakcie wykonywania zadania...",
"processing": "Serwer w trakcie wykonywania zadania",
"reconnecting": {
"failed": "Wygląda na to, że serwer nie odpowiada. Spróbuj połączyć się ponownie lub poprzez SSH uruchom komendę `systemctl restart yunohost-api`.",
"reason": {
@ -82,10 +79,10 @@
"reboot": "Serwer jest uruchamiany ponownie i będzie nieosiągalny przez pewien czas. Logowanie stanie się możliwe, gdy serwer będzie ponownie dostępny.",
"upgrade_system": "Połączenie z serwerem przerwane z powodu aktualizacji YunoHost. Trwa oczekiwanie na połączenie…"
},
"title": "Trwa próba połączenia z serwerem...",
"title": "Trwa próba połączenia z serwerem",
"success": "Serwer jest już dostępny! Możesz się zalogować"
},
"partial_logs": "[...] sprawdź w historii pełne logi"
"partial_logs": "[] sprawdź w historii pełne logi"
},
"all": "Wszystko",
"address": {
@ -151,7 +148,7 @@
"auto_config_ok": "Automatyczna konfiguracja prawdopodobnie jest OK!",
"edit": "Edytuj konfiguracje DNS",
"auto_config_ignored": "pominięte, zmiany zostaną dokonane przy zaznaczeniu opcji nadpisywania",
"auto_config_zone": "Aktualna strefa DNS",
"auto_config_zone": "Aktualnie ustawione rekordy DNS",
"info": "Funkcja automatycznego ustawiania wpisów DNS jest na razie eksperymentalna. <br>Rozważ zapisanie aktualnej strefy DNS poprzez interfejs od Twojego dostawcy przed dokonywaniem zmian.",
"manual_config": "Proponowane wpisy DNS dla manualnej konfiguracji",
"push": "Przekaż wpisy DNS do dostawcy",
@ -177,7 +174,8 @@
"info": {
"apps_on_domain": "Aplikacje zainstalowane w domenie",
"certificate_authority": "Urząd certyfikacji SSL",
"registrar": "Rejestrator"
"registrar": "Rejestrator",
"dyn_dns_remove_and_unsubscribe": "Wyrejestruj także domenę z usługi DynDNS YunoHost"
},
"see_parent_domain": "Zobacz domenę nadrzędną",
"types": {
@ -186,13 +184,16 @@
"toggle_subdomains": "Przełącz subdomeny",
"explain": {
"main_domain": "Główna domena to taka domena, z której użytkownicy mogą łączyć się z portalem (przez \"{domain}/yunohost/sso\").<br> W związku z tym nie ma możliwości jej usunięcia. <br> Jeśli chcesz usunąć \"{domain}\", najpierw musisz zmienić lub dodać nową domenę i ustawić ją jako domenę główną."
},
"add": {
"dyn_dns_password": "Hasło odzyskiwania domeny",
"dyn_dns_password_desc": "To hasło pozwoli Ci później odzyskać kontrolę nad domeną, jeśli ponownie zainstalujesz system. Jeśli zarejestrowałeś już tę domenę wcześniej, użyj tutaj hasła odzyskiwania, aby ją odzyskać.",
"from_registrar": "Chcę dodać domenę, której jestem właścicielem, lub subdomenę",
"from_yunohost": "Nie posiadam domeny, chcę zarejestrować/korzystać z darmowej domeny DynDNS udostępnionej przez projekt YunoHost",
"from_local": "Chcę domenę wyłącznie do użytku lokalnego/testowania"
}
},
"domain_add_dns_doc": "...oraz mam <a href='//yunohost.org/dns_config' target='_blank'>poprawnie skonfigurowany DNS</a>.",
"domain_add_panel_without_domain": "Nie posiadam domeny…",
"domain_add_dyndns_forbidden": "Już subskrybujesz domenę DynDNS. Możesz poprosić o usunięcie aktualnej domeny DynDNS w <a href='//forum.yunohost.org/t/nohost-domain-recovery-suppression-de-domaine-en-nohost-me-noho-st-et-ynh-fr/442'>odpowiednim wątki w forum</a>.",
"domain_add_dyndns_doc": "… i chcę usługę dynamicznego DNS.",
"domain_add_panel_with_domain": "Posiadam swoją domenę…",
"domain_default_longdesc": "To twoja domyślna domena.",
"domain_default_desc": "Domyślna domena jest wykorzystywana do logowania użytkownika.",
"download": "Pobierz",
@ -202,7 +203,7 @@
"form_errors": {
"between": "Wartość musi mieścić się między {min} a {max}.",
"alpha": "Dozwolone są tylko litery.",
"alphalownum_": "Dozwolone są tylko małe litery oraz znak podkreślenia.",
"alphalownumdot_": "Dozwolone są tylko małe litery oraz znak podkreślenia.",
"domain": "Niepoprawna domena: może składać się tylko z małych liter, cyfr, kropek i kresek",
"dynDomain": "Niepoprawna domena: musi składać się tylko z małych liter, cyfr i kresek",
"email": "Niepoprawny e-mail: musi składać się z liter, cyfr oraz znaków<code>_.</code> (np. someone@example.com, s0me-1@example.com)",
@ -349,7 +350,6 @@
"logs_package": "Historia zarządzania pakietami Debiana",
"logs_no_logs_registered": "Brak logów dla tej kategorii",
"migrations_disclaimer_check_message": "Przeczytałem i zrozumiałem zrzeczenie odpowiedzialności",
"myserver": "mojserwer",
"port": "Port",
"permission_corresponding_url": "Powiązane URL",
"permission_main": "Główna etykieta",
@ -419,7 +419,7 @@
"skip": "Pomiń migracje"
},
"permissions": {
"remove": "Usuń '{name}' z dostępu do '{name}'",
"remove": "Usuń '{name}' z dostępu do '{perm}'",
"add": "Pozwól '{name}' na dostęp do '{perm}'"
},
"postinstall": "Uruchom post-instalację",
@ -486,7 +486,7 @@
"services": "Usługi",
"running": "W toku",
"search": {
"for": "Wyszukaj {items}...",
"for": "Wyszukaj {items}",
"not_found": "Znaleziono {items} pasujące do podanych kryteriów. | Jest 1 {items} pasujące do podanych kryteriów. | Znaleziono {items} pasujące do podanych kryteriów."
},
"save": "Zapisz",
@ -624,15 +624,17 @@
"title": "Dokumentacja administratora"
},
"notifications": {
"dismiss": "Odrzuć",
"title": "Powiadomienia",
"post_upgrade": "Uwagi po aktualizacji",
"post_install": "Uwagi po instalacji"
"post_install": "Uwagi po instalacji",
"understood": "Domyślny/Zrozumiano"
}
},
"info": {
"forum": "Szukaj lub zapytaj na forum!",
"problem": "Wystąpił problem z aplikacją?"
"problem": "Wystąpił problem z aplikacją?",
"config_panel_error_please_report": "Proszę zgłoś ten błąd do zespołu YunoHost, aby mogli go naprawić!",
"config_panel_error": "Błąd uniemożliwia wyświetlenie panelu konfiguracyjnego:"
},
"integration": {
"sso": {
@ -681,6 +683,9 @@
"continue": "Kontynuuj do następnej aplikacji",
"stop": "Anuluj kolejne aktualizacje aplikacji"
},
"potential_alternative_to": "Potencjalna alternatywa dla:"
"potential_alternative_to": "Potencjalna alternatywa dla:",
"uninstall": {
"purge_desc": "Usuń katalog danych powiązany z aplikacją (zazwyczaj są to dane, które sam przesłałeś za pomocą aplikacji)."
}
}
}

View file

@ -22,10 +22,6 @@
"description": "Descrição",
"disable": "Desativar",
"domain_add": "Adicionar domínio",
"domain_add_dns_doc": "… coloco <a href='//yunohost.org/dns_config' target='_blank'>para definir o meu DNS</a>.",
"domain_add_dyndns_doc": "... quero um serviço DNS dinâmico.",
"domain_add_panel_with_domain": "Já tenho um domínio registado…",
"domain_add_panel_without_domain": "Ainda não registei um domínio…",
"domain_default_desc": "O domínio pré-definido é o domínio a que o utilizador se liga para iniciar sessão.",
"domain_name": "Nome do domínio",
"domains": "Domínios",
@ -51,7 +47,6 @@
"manage_domains": "Gerir domínios",
"manage_users": "Gerir utilizadores",
"multi_instance": "Pode ser instalado várias vezes",
"myserver": "meuservidor",
"next": "Seguinte",
"no": "Não",
"open": "Abrir",
@ -70,7 +65,7 @@
"restore": "Restaurar",
"running": "Em execução",
"save": "Guardar",
"service_start_on_boot": "Iniciar no arranque: ",
"service_start_on_boot": "Iniciar no arranque",
"services": "Serviços",
"set_default": "Aplicar pré-definição",
"size": "Tamanho",
@ -78,8 +73,8 @@
"status": "Estado",
"stop": "Parar",
"system": "Sistema",
"system_apps_nothing": "Não existem aplicações para atualizar.",
"system_packages_nothing": "Não existem pacotes para atualizar.",
"system_apps_nothing": "Não existem aplicações para atualizar!",
"system_packages_nothing": "Não existem pacotes para atualizar!",
"system_update": "Atualização do sistema",
"system_upgrade_btn": "Atualizar",
"tcp": "TCP",
@ -162,7 +157,7 @@
"confirm_service_restart": "Tem certeza que deseja reiniciar {name}?",
"cancel": "Cancelar",
"items_verbose_items_left": "Faltam {items}.",
"items_verbose_count": "Não há {items}. | Existe 1 {item}. | Existem {items}.",
"items_verbose_count": "Não há {items}. | Existe 1 {items}. | Existem {items}.",
"items": {
"users": "nenhum usuário | usuário | {c} usuários",
"services": "nenhum serviço | serviço | {c} serviços",
@ -211,7 +206,7 @@
"group": "Grupo",
"go_back": "Voltar",
"from_to": "de {0} a {1}",
"form_input_example": "Exemplo: {exemple}",
"form_input_example": "Exemplo: {example}",
"form_errors": {
"required": "Campo obrigatório.",
"passwordMatch": "As senhas não são iguais.",
@ -225,7 +220,7 @@
"dynDomain": "Nome de domínio inválido: Deve ser composto somente por caracteres alfanuméricos e traço",
"domain": "Nome de domínio inválido: Deve ser composto somente por caracteres alfanuméricos minúsculos, ponto e traço",
"between": "O valor deve ser entre {min} e {max}.",
"alphalownum_": "O valor só deve conter caracteres alfanuméricos minúsculos e o underscore.",
"alphalownumdot_": "O valor só deve conter caracteres alfanuméricos minúsculos e o underscore.",
"alpha": "O valor só pode ter caracteres alfanuméricos.",
"maxValue": "O valor deve ser um número igual ou menor que {max}.",
"remote": "{message}",
@ -263,11 +258,8 @@
"app_show_categories": "Mostrar categorias",
"app_manage_label_and_tiles": "Gerir etiquetas e tiles",
"app_install_parameters": "Configurações de instalação",
"app_config_panel_no_panel": "Essa aplicação não tem nenhuma configuração disponível",
"app_config_panel_label": "Configurar esse app",
"app_config_panel": "Configurar painel",
"app_choose_category": "Escolha uma categoria",
"api_waiting": "Esperando a resposta do servidor...",
"api_waiting": "Esperando a resposta do servidor…",
"api_errors_titles": {
"APIConnexionError": "YunoHost encontrou um erro de conexão",
"APINotRespondingError": "A YunoHost API não está respondendo",
@ -291,8 +283,8 @@
"pending": "Em progresso",
"error": "Falhou"
},
"processing": "O servidor está processando a ação...",
"partial_logs": "[...] (verifique no histórico para logs completos)",
"processing": "O servidor está processando a ação",
"partial_logs": "[] (verifique no histórico para logs completos)",
"reconnecting": {
"failed": "Parece que o servidor não está respondendo. Você pode tentar se reconectar novamente ou tentar executar `systemctl restart yunohost-api` através do ssh.",
"success": "O servidor agora está acessível! Você pode tentar fazer o login",
@ -302,7 +294,7 @@
"shutdown": "Seu servidor está sendo desligado e não está mais acessível. Ligue-o novamente e um prompt de login estará disponível assim que o servidor estiver acessível.",
"unknown": "A conexão com o servidor foi encerrada por motivos desconhecidos."
},
"title": "Tentando se comunicar com o servidor..."
"title": "Tentando se comunicar com o servidor"
}
},
"address": {
@ -354,7 +346,7 @@
"select_all": "Selecionar tudo",
"search": {
"not_found": "Existem {items} que correspondem ao seu critério.",
"for": "Procurar por {items}..."
"for": "Procurar por {items}"
},
"run": "Executar",
"human_routes": {
@ -415,7 +407,7 @@
},
"backups": {
"restore": "Restaurar backup '{name}'",
"delete": "Deletar backup '{name]'",
"delete": "Deletar backup '{name}'",
"create": "Criar um backup"
},
"apps": {

View file

@ -14,8 +14,8 @@
"administration_password": "Senha de administração",
"all": "Todos",
"api": {
"partial_logs": "[...] (confira no histórico para logs completos)",
"processing": "O servidor está processando a ação...",
"partial_logs": "[] (confira no histórico para logs completos)",
"processing": "O servidor está processando a ação",
"query_status": {
"pending": "Em progresso",
"success": "Finalizado com sucesso"
@ -28,7 +28,7 @@
"upgrade_system": "A conexão com o servidor foi encerrada devido a atualização do YunoHost. Aguardando a disponibilidade do servidor…",
"reboot": "Seu servidor está reiniciando e não poderá funcionar por algum tempo. A tela de login estará disponível assim que o servidor estiver online."
},
"title": "Tentando se comunicar com o servidor...",
"title": "Tentando se comunicar com o servidor",
"success": "O servidor agora está online! Tente fazer login novamente"
}
},

View file

@ -30,8 +30,8 @@
"confirm_app_default": "Вы хотите сделать это приложение приложением по умолчанию?",
"confirm_change_maindomain": "Вы хотите изменить главный домен?",
"confirm_delete": "Вы хотите удалить {name}1 ?",
"confirm_firewall_allow": "Вы хотите открыть порт {port}1 ? (протокол {protocol}2, соединение {connection}3)",
"confirm_firewall_disallow": "Вы хотите закрыть порт {port}1 ? (протокол {protocol}2, соединение {connection}3)",
"confirm_firewall_allow": "Вы точно хотите открыть порт {port}? (протокол: {protocol}, соединение: {connection})",
"confirm_firewall_disallow": "Вы точно хотите закрыть порт {port}? (протокол: {protocol}, соединение: {connection})",
"confirm_install_custom_app": "ВНИМАНИЕ! Установка сторонних приложений может нарушить целостность и безопасность вашей системы. Устанавливаейте только если вы понимаете, что делаете. Вы уверены, что хотите взять этот риск на себя?",
"confirm_install_domain_root": "Вы уверены, что хотите установить это приложение на '/'? Вы больше не сможете устанавливать другие приложения на {domain}",
"confirm_restore": "Вы хотите восстановить {name}1 ?",
@ -49,14 +49,11 @@
"custom_app_install": "Установка пользовательских приложений",
"delete": "Удалить",
"description": "Описание",
"domain_dns_conf_is_just_a_recommendation": "Эта страница показывает вам *рекомендуемую* конфигурацию. Она *не* создаёт для вас конфигурацию DNS. Вы должны сами конфигурировать зону вашего DNS у вашего регистратора в соответствии с этой рекомендацией.",
"domain_dns_conf_is_just_a_recommendation": "Этот раздел показывает вам *рекомендуемую* конфигурацию. Она *не* создаёт для вас конфигурацию DNS. Вы должны сами конфигурировать зону вашего DNS у вашего регистратора в соответствии с этой рекомендацией.",
"diagnosis": "Диагностика",
"disable": "Отключить",
"dns": "DNS",
"domain_add": "Добавить домен",
"domain_add_dyndns_doc": "... и я хочу использовать сервис для динамического DNS.",
"domain_add_panel_with_domain": "У меня уже есть доменное имя…",
"domain_add_panel_without_domain": "У меня нет доменного имени…",
"domain_default_desc": "Домен по умолчанию — это домен, где пользователи вводят логин и пароль.",
"domain_default_longdesc": "Это ваш домен по умолчанию.",
"domain_delete_longdesc": "Удалить этот домен",
@ -70,7 +67,7 @@
"error_server_unexpected": "Неожиданная ошибка сервера",
"experimental_warning": "Внимание: это экспериментальная функция и она может работать нестабильно; используйте её, только если понимаете, что делаете.",
"firewall": "Файрволл",
"footer_version": "Создано<a href='https://yunohost.org'></a> {version} ({repo}).",
"footer_version": "Работает на <a href='https://yunohost.org'>YunoHost</a> {version} ({repo}).",
"form_input_example": "Например: {example}",
"home": "Дом",
"hook_adminjs_group_configuration": "Конфигурация",
@ -97,7 +94,6 @@
"migrations": "Миграция",
"migrations_done": "Предыдущие миграции",
"migrations_no_done": "Нет предыдущих миграций",
"myserver": "мой сервер",
"next": "Следующий",
"no": "Нет",
"open": "Открыть",
@ -119,7 +115,6 @@
"port": "Порт",
"ports": "Порты",
"confirm_postinstall": "Вы начинаете процесс конфигурации домена {domain}. Это займёт несколько минут, *не прерывайте процесс*.",
"domain_add_dns_doc": "… я <a href='//yunohost.org/dns_config' target='_blank'>set my DNS установил мой DNS правильно</a>.",
"tools": "Инструменты",
"tools_reboot": "Перезагрузите сервер",
"tools_reboot_btn": "Перезагрузить",
@ -148,7 +143,11 @@
"words": {
"default": "По умолчанию",
"browse": "Обзор",
"collapse": "Крах"
"collapse": "Свернуть",
"link": "Ссылка",
"valid": "Верно",
"separator": ", ",
"none": "Ничего"
},
"yes": "Да",
"certificate_manage": "Управлять SSL-сертификатом",
@ -177,7 +176,7 @@
"stop": "Стоп",
"system": "Система",
"system_apps_nothing": "Все приложения имеют самые новые версии!",
"system_packages_nothing": "Нет пакетов, нуждающихся в обновлении.",
"system_packages_nothing": "Все пакеты имеют последнюю версию!",
"system_update": "Обновить систему",
"system_upgrade_btn": "Обновить",
"system_upgrade_all_applications_btn": "Обновить все приложения",
@ -185,13 +184,13 @@
"tcp": "TCP",
"form_errors": {
"between": "Значение должно быть между {min} и {max}.",
"alphalownum_": "В значении могут быть только буквы в нижнем регистре, цифры и символ подчёркивания.",
"alphalownumdot_": "В значении могут быть только буквы в нижнем регистре, цифры и символ подчёркивания.",
"alpha": "Значением могут быть только буквы.",
"notInUsers": "Пользователь '{значение}' уже существует.",
"notInUsers": "Пользователь «{value}» уже существует.",
"number": "Значение должно быть числом.",
"maxValue": "Значение должно быть числом, меньшим или равным {min}.",
"remote": "{сообщение}",
"pattern": "{тип}",
"maxValue": "Значение должно быть меньше или равно {max}.",
"remote": "{message}",
"pattern": "{type}",
"invalid_form": "Форма содержит ошибки.",
"email": "Недействительный email: используйте только буквы, цифры и <code>_.-</code> символы (например, someone@example.com, s0me-1@example.com)",
"minValue": "Значение должно быть числом, большим или равным {min}.",
@ -215,7 +214,7 @@
"error": "Ошибка",
"enabled": "Включено",
"domain_delete_forbidden_desc": "Вы не можете удалить домен '{domain}', так как он является доменом по умолчанию. Вы должны сначала выбрать другой домен по умолчанию (либо <a href='#/domains/add'>создать новый</a>), после чего можно будет его удалить.",
"domain_add_dyndns_forbidden": "Вы уже подписаны на домен DynDNS, вы можете попросить удалить ваш домен DynDNS на форуме <a href='//forum.yunohost.org/t/nohost-domain-recovery-suppression-de-domaine-en-nohost-me-noho-st-et-ynh-fr/442'>в этой выделенной ветке</a>.",
"domain_add_dyndns_forbidden": "Вы уже зарегистрировали/подписались на домен DynDNS от проекта YunoHost. Эта функция ограничена одним доменом на сервер. Если вы хотите добавить поддомен домена, на который вы уже подписаны, пожалуйста, используйте опцию «Я хочу добавить свой домен или поддомен» выше. Если вы хотите использовать совершенно другой домен, вы должны сначала удалить ваш существующий домен DynDNS. Домены DynDNS хороши для начинающих, но в долгосрочной перспективе, мы рекомендуем купить ваше собственное доменное имя у какого-нибудь регистратора, чтобы иметь полный доступ к домену.",
"disabled": "Отключено",
"run_first_diagnosis": "Провести начальную диагностику",
"diagnosis_first_run": "Функция диагностики попробует найти типичные проблемы разных аспектов вашего сервера, для того, чтобы убедиться, что сервер работает стабильно. Пожалуйста, не паникуйте, если видите кучу ошибок сразу после поднятия сервера: данная функция создана как раз для того, чтобы найти ошибки и помочь вам их исправить. Диагностика будет запускаться дважды в день, после чего по электронной почте будет направляться отчёт администратору в случае обнаружения проблем.",
@ -242,11 +241,8 @@
"app_state_inprogress_explanation": "Создатель приложения пометил это приложение, как не готовое к ежедневному пользованию. БУДЬТЕ ОСТОРОЖНЫ!",
"app_show_categories": "Показать категории",
"app_manage_label_and_tiles": "Управление меткой и заголовками",
"app_config_panel_no_panel": "У этого приложения нет настроек",
"app_config_panel_label": "Настроить это приложение",
"app_config_panel": "Панель настроек",
"app_choose_category": "Выберите категорию",
"api_waiting": "Ожидание ответа сервера...",
"api_waiting": "Ожидание ответа сервера…",
"all_apps": "Все приложения",
"api_errors_titles": {
"APIConnexionError": "YunoHost столкнулся с ошибкой подключения",
@ -283,7 +279,7 @@
"error": "Неудачно"
},
"processing": "Сервер обрабатывает действие…",
"partial_logs": "[...] (посмотрите логи полностью в журнале логов)",
"partial_logs": "[…] (посмотрите логи полностью в истории)",
"reconnecting": {
"reason": {
"upgrade_system": "Соединение с сервером было закрыто в связи с обновлением YunoHost. Ждем, когда сервер снова станет доступным…",
@ -292,7 +288,7 @@
"reboot": "Ваш сервер перезагружается и будет недоступен некоторое время. Как только сервер будет доступен, появится приглашение к входу."
},
"failed": "Похоже, что сервер не отвечает. Вы можете попробовать подключиться снова или запустить `systemctl restart yunohost-api` через ssh.",
"title": "Пытаюсь установить связь с сервером...",
"title": "Пытаюсь установить связь с сервером",
"success": "Сервер снова доступен! Попробуйте войти"
}
},
@ -316,7 +312,46 @@
"auto_config_ok": "Автоматическая конфигурация, похоже, в порядке!",
"push_force_warning": "Похоже, что некоторые записи DNS, которые YunoHost должен установить, уже есть в конфигурации регистратора. Вы можете использовать опцию перезаписи, если знаете, что делаете.",
"auto_config_ignored": "игнорируется, YunoHost не будет изменен пока вы не отметите опцию перезаписи",
"push_force_confirm": "Вы уверены, что хотите принудительно перезаписать все предложенные записи dns? Имейте ввиду, что это может изменить важные записи: установленные по умолчанию, а также вами или вашим регистратором."
"push_force_confirm": "Вы уверены, что хотите принудительно перезаписать все предложенные записи DNS? Имейте ввиду, что это может изменить важные записи, установленные по умолчанию, а также вами или вашим регистратором.",
"methods": {
"auto": "Автоматически",
"none": "Ничего",
"manual": "Вручную",
"semi_auto": "Полуавтоматически",
"handled_in_parent": "Осуществляется в родительском домене"
}
},
"cert": {
"types": {
"other": "Другое/Неизвестно",
"selfsigned": "Самоподписанный",
"letsencrypt": "Let's Encrypt"
},
"valid_for": "действует в течение {days}"
},
"add": {
"dyn_dns_password": "Пароль восстановления домена",
"from_local": "Я хочу домен только для внутреннего использования / тестов",
"from_registrar": "Я хочу добавить свой домен или поддомен",
"from_yunohost": "У меня нет домена, я хочу зарегистрировать/использовать бесплатный DynDNS-домен, предоставленный проектом YunoHost",
"dyn_dns_password_desc": "Это пароль, который позволит вам восстановить контроль над доменом, если вы переустановите вашу систему. Если вы уже зарегистрировали этот домен, используйте пароль восстановления, чтобы восстановить доступ.",
"from_local_desc": "Если вы не хотите публичное доменное имя, вы можете использовать что-либо заканчивающееся на <code>.local</code> или <code>.test</code>. Доменные имена, заканчивающиеся на <code>.local</code> является специальными из-за того, что они автоматически распознаются в локальной сети, если клиенты поддерживают протокол Bonjour. Вам также может понадобиться отредактировать файл <code>/etc/hosts</code> (или эквивалент в Windows) на каждом клиенте, на которых вы хотите использовать локальные домены или настроить их на вашем маршрутизаторе.",
"from_registrar_desc": "Вам нужно будет вручную настроить DNS-записи у вашего регистратора, чтобы завершить настройку домена. Диагностика YunoHost покажет вам, какие DNS-записи вам нужно настроить.",
"from_yunohost_desc": "Проект YunoHost сопровождает бесплатный сервис «DynDNS». Этот сервис имеет ограничение на один домен на сервер (однако вы можете позже добавить поддомены используя опцию «Я хочу добавить свой домен или поддомен» выше. Настройка DNS будет автоматически осуществлена YunoHost. Этот вариант отлично подходит тогда, когда вы только начинаете администрировать и пока не хотите вкладываться в доменное имя. Однако в долгосрочной перспективе, мы рекомендуем купить ваше собственное доменное имя у какого-нибудь регистратора, чтобы иметь полный доступ к домену."
},
"info": {
"certificate_authority": "Орган сертификации SSL",
"registrar": "Регистратор",
"dyn_dns_remove_and_unsubscribe": "Также удалить домен с сервиса DynDNS",
"apps_on_domain": "Приложение, установленные на домен"
},
"see_parent_domain": "Смотрите родителский домен",
"toggle_subdomains": "Переключить поддомены",
"types": {
"main_domain": "Главный домен"
},
"explain": {
"main_domain": "Главный домен - это тот, с которого пользователи могут подключаться к порталу (через « {domain}/yunohost/sso»).<br>Исходя из этого, его нельзя удалить.<br>Если вы хотите удалить « {domain}», вам сначала нужно будет выбрать или добавить другой домен и пометить его как главный."
}
},
"select_all": "Выбрать все",
@ -340,7 +375,9 @@
"delete": "Удалить домен '{name}'",
"push_dns_changes": "Установить записи DNS для домена '{name}'",
"set_default": "Сделать '{name}' доменом по умолчанию",
"update_config": "Обновить конфигурацию '{name}'"
"update_config": "Обновление панели '{id}' конфигурации домена '{name}'",
"cert_install": "Установить сертификат для «{name}»",
"cert_renew": "Обновить сертификат для «{name}»"
},
"groups": {
"create": "Создать группу '{name}'",
@ -378,8 +415,10 @@
"change_url": "Изменить URL доступа к '{name}'",
"install": "Установить приложение '{name}'",
"uninstall": "Удалить приложение '{name}'",
"update_config": "Обновить конфигурацию приложения '{name}'",
"set_default": "Перенаправление корневого домена '{domain}' на '{name}'"
"update_config": "Обновление панели '{id}' конфигурации приложения '{name}'",
"set_default": "Перенаправление корневого домена '{domain}' на '{name}'",
"action_config": "Выполнить действие «{action}» конфигурации приложения «{name}»",
"dismiss_notification": "Пропустить уведомление для «{name}»"
},
"backups": {
"create": "Создать резервную копию",
@ -393,10 +432,13 @@
"postinstall": "Запустить программу post-install",
"share_logs": "Создать ссылку для лога '{name}'",
"shutdown": "Выключить сервер",
"reconnecting": "Переподключение"
"reconnecting": "Переподключение",
"settings": {
"update": "Обновить глобальные настройки «{panel}»"
}
},
"search": {
"for": "Искать {items}...",
"for": "Искать {items}",
"not_found": "Есть {items}, соответствующие вашим критериям. | Есть 1 {items}, соответствующий вашим критериям. | Есть {items}, соответствующие вашим критериям."
},
"select_none": "Не выбирать ничего",
@ -409,11 +451,12 @@
"experimental_description": "Дает вам доступ к экспериментальным функциям. Они считаются нестабильными и могут сломать вашу систему.<br> Включайте эту опцию, только если вы знаете, что делаете.",
"transitions": "Анимация перехода страниц",
"fallback_language": "Вспомогательный язык",
"cache_description": "Подумайте об отключении кэша, если вы планируете работать с CLI и одновременно осуществлять навигацию в веб-админке."
"cache_description": "Подумайте об отключении кэша, если вы планируете работать с CLI и одновременно осуществлять навигацию в веб-админке.",
"theme": "Переключить тёмный режим"
},
"domain_dns_push_managed_in_parent_domain": "Функция автоматической записи DNS управляется в родительском домене <a href='#/domains/{parent_domain}/dns'>{parent_domain}</a>.",
"purge_user_data_warning": "Очистка данных пользователя необратима. Надеемся, вы знаете, что делаете!",
"warnings": "{count} предупреждение",
"warnings": "{count} предупреждений",
"users_import_csv_file_desc": "CSV-файл должен быть в формате UTF-8 и содержать колонки: имя пользователя, пароль, группы, email и квоту. Для примера импорта CSV файла вы можете <a href='/yunohost/api/users/export' target='_BLANK'>экспортировать своих пользователей в CSV файл</a> и изменить его.",
"users_import_update_desc": "Если флажок установлен, всем пользователям в CSV-файле будут присвоены новые значения",
"users_import_delete_desc": "Если флажок установлен, все существующие пользователи, которых нет в CSV-файле, будут удалены (и очищены).",
@ -423,7 +466,7 @@
"user_mailbox_quota": "Квота почтового ящика",
"version": "Версия",
"api_not_found": "Похоже, что веб-администратор пытался запросить что-то несуществующее.",
"domain_dns_push_failed_to_authenticate": "Не удалось пройти аутентификацию на API регистратора. Может быть <a href='#/domains/{domain}/config'>учетные данные</a> указаны неверно? (Ошибка: {error})",
"domain_dns_push_failed_to_authenticate": "Не удалось пройти аутентификацию через API регистратора. Может быть <a href='#/domains/{domain}/config'>учетные данные</a> указаны неверно? (Ошибка: {error})",
"users_import": "Импорт пользователей",
"users_export": "Экспорт пользователей",
"users_import_csv_file": "CSV файл",
@ -433,7 +476,7 @@
"yunohost_admin": "Администратор YunoHost",
"purge_user_data_checkbox": "Очистить данные {name}? (Это удалит содержимое домашнего и почтового каталогов этого пользователя.)",
"domain_dns_push_not_applicable": "Функция автоматической настройки записей DNS не применима к домену {domain},<br> Вам следует вручную настроить записи DNS, следуя <a href='https://yunohost.org/dns'>документации</a> и предложенной ниже конфигурации.",
"label_for_manifestname": "Ярлык для {name} (имя, отображаемое на портале пользователя)",
"label_for_manifestname": "Ярлык для {name}",
"history": {
"last_action": "Последнее действие:",
"methods": {
@ -446,12 +489,13 @@
"is_empty": "Пока что в истории ничего нет."
},
"placeholder": {
"firstname": "Джон",
"firstname": "Сэм",
"groupname": "Название моей группы",
"domain": "my-domain.com",
"lastname": "Доу",
"lastname": "Смит",
"file": "Выберите файл или перетяните его",
"username": "johndoe"
"username": "ivanivanov",
"fullname": "Иван Иванов"
},
"only_highquality_apps": "Только высококачественные приложения",
"only_decent_quality_apps": "Только приложения достойного качества",
@ -493,7 +537,7 @@
"hook_data_xmpp": "Данные XMPP",
"hook_data_xmpp_desc": "Конфигурации комнат и пользователей, загрузка файлов",
"mailbox_quota_example": "700M размер CD-диска, а 4700M DVD",
"good_practices_about_admin_password": "Сейчас Вам предстоит установить новый пароль администратора. Пароль должен состоять как минимум из 8 символов хотя хорошей практикой является использование более длинного пароля (например фразы) и/или использование различных символов (прописных и строчных букв, цифр и специальных символов).",
"good_practices_about_admin_password": "Сейчас Вам предстоит установить новый пароль администратора. Пароль должен состоять как минимум из 8 символов хотя хорошей практикой является использование более длинного пароля (например, фразы) и/или использование различных символов (прописных и строчных букв, цифр и специальных символов).",
"group_add_member": "Добавить пользователя",
"group_explain_all_users": "Это специальная группа, содержащая учетные записи всех пользователей на сервере",
"group_explain_visitors": "Это специальная группа, представляющая анонимных посетителей",
@ -517,7 +561,11 @@
},
"postinstall": {
"force": "Принудительная пост-установка",
"title": "Пост-установка"
"title": "Пост-установка",
"user": {
"title": "Создать первого администратора",
"first_user_help": "Этому пользователю будут выданы права администартора и разрешено подключаться к этому веб-интерфейсу, также как и напрямую к серверу по SSH.\nТак как это также обычный пользователь, вы также сможете подключаться к порталу пользователя (SSO) со своими учётными данными.\nКогда первоначальная настройка будет завершена, вы сможете создать ещё администраторов, добавляя их в группу «admins»."
}
},
"items_verbose_items_left": "Осталось {items}. | Осталось 1 {items}. | Осталось {items}.",
"permission_main": "Основной ярлык",
@ -527,5 +575,121 @@
"traceback": "Откат",
"unignore": "Не игнорировать",
"unknown": "Неизвестный",
"retry": "Повторить"
"retry": "Повторить",
"app": {
"open_this_app": "Открыть это приложение",
"antifeatures": "В этом приложении есть функции, которые могут вам не понравиться:",
"doc": {
"about": {
"title": "О приложении",
"description": "Описание"
},
"admin": {
"title": "Документация администратора"
},
"notifications": {
"title": "Уведомления",
"post_upgrade": "Примечания после обновления",
"post_install": "Примечания после установки",
"understood": "Понятно"
}
},
"info": {
"forum": "Поищите сами или спросите на форуме!",
"problem": "Проблема с этим приложением?",
"config_panel_error": "Ошибка не позволяет показать панель конфигурации:",
"config_panel_error_please_report": "Пожалуйста, сообщите об этой ошибке команде YunoHost, чтобы ее исправили!"
},
"install": {
"license": "Лицензия: {license}",
"notifs": {
"post": {
"title": "Уведомления после установки для '{name}'",
"alert": "Похоже, что установка прошла успешно!\nВот некоторые уведомления, которые, по мнению упаковщика, важно знать.\nВы можете прочитать их снова на странице информации о приложении."
},
"pre": {
"warning": "Что нужно знать перед установкой",
"danger": "Установка приложения, скорее всего, приведет к проблемам",
"critical": "Приложение не может быть установлено"
}
},
"problems": {
"arch": "Это приложение может быть установлено только на определенных архитектурах ({required}), но архитектура вашего сервера {current}.",
"version": "Это приложение требует YunoHost >= {required}, но ваша текущая установленная версия {current}, сначала обновите YunoHost.",
"ignore": "Я понимаю, что установка этого приложения может сломать мою систему, но я все равно хочу попробовать.",
"inprogress": "Это приложение все еще является экспериментальным (если не сказать, что оно явно не работает) и может сломать вашу систему! Вам не следует устанавливать его, если вы не знаете, что делаете.",
"lowquality": "Это приложение может работать, но не очень хорошо интегрировано в YunoHost. Некоторые функции, такие как единая регистрация и резервное копирование/восстановление, могут быть недоступны, или же они не соответствуют стандартам.",
"broken": "Это приложение не работает согласно автоматическим тестам YunoHost и, скорее всего, сломает вашу систему! Вам не следует устанавливать его, если вы не знаете, что делаете.",
"thirdparty": "Это приложение не является частью официального каталога YunoHost, установка приложений сторонних производителей может нарушить целостность и безопасность вашей системы. Вам НЕ следует устанавливать его, если вы не знаете, что делаете.",
"install": "Приложение уже установлено и не может быть установлено еще раз.",
"ram": "Для установки/обновления этого приложения требуется {required} количество оперативной памяти, но сейчас доступно только {current}. Даже если это приложение может быть запущено, процесс его установки требует большого количества оперативной памяти, поэтому ваш сервер может зависнуть или выйти из строя."
},
"try_demo": "Попробуйте демо",
"version": "Текущая версия: {version}"
},
"integration": {
"archs": "Поддерживаемые архитектуры:",
"ldap": {
"true": "Используйте учетные записи YunoHost для входа в систему (LDAP)",
"?": "Нет информации об интеграции LDAP",
"false": "Не использует учетные записи YunoHost для входа в систему (LDAP)"
},
"multi_instance": {
"false": "Может быть установлено только один раз",
"true": "Можно устанавливать несколько раз"
},
"resources": "Обычное использование ресурсов: {ram} RAM, {disk} диск",
"sso": {
"false": "Единый вход в систему недоступен (SSO)",
"true": "Доступен единый вход в систему (SSO)",
"?": "Нет информации об интеграции SSO"
},
"title": "Интеграция YunoHost"
},
"links": {
"admindoc": "Официальная документация администратора",
"code": "Официальный репозиторий кода",
"forum": "Темы о данном приложении на форуме YunoHost",
"title": "Ссылки",
"userdoc": "Официальная документация для пользователей",
"website": "Официальный сайт",
"license": "Лицензия приложения",
"package": "Репозиторий пакетов YunoHost",
"package_license": "Лицензия пакета YunoHost"
},
"upgrade": {
"confirm": {
"title": "Подтвердите обновление приложений",
"apps": "Приложения, которые будут обновлены"
},
"continue": "Перейти к следующему приложению",
"notifs": {
"pre": {
"alert": "Вам следует проверить эти уведомления перед обновлением, там могут быть важные вещи, которые нужно знать.",
"title": "Будьте внимательны!"
},
"post": {
"alert": "Похоже, что обновление прошло успешно!\n Вот некоторые уведомления, которые, по мнению упаковщика, важно знать об этом обновлении.\nВы можете прочитать их еще раз на странице приложения.",
"title": "Уведомления после обновления для '{name}'"
}
},
"stop": "Отменить следующие обновления приложений"
},
"potential_alternative_to": "Возможная альтернатива:",
"installed_version": "Установленная версия:",
"uninstall": {
"purge_desc": "Удалить директорию с данными этого приложения (обычно это данные, которые вы сами загрузили используя это приложение)."
}
},
"app_state_broken": "сломано",
"app_state_broken_explanation": "Это приложение в настоящее время сломано и не может быть установлено согласно автоматическим тестам YunoHost",
"confirm_install_app_broken": "ВНИМАНИЕ! Это приложение сломано согласно автоматическим тестам YunoHost и, скорее всего, сломает вашу систему! Вам НЕ следует устанавливать его, если вы не знаете, что делаете. Вы готовы пойти на такой риск?",
"details_about": "Показать больше подробностей о {subject}",
"group_admins": "Администраторы",
"manage_groups": "Управлять группами",
"wrong_password_or_username": "Неправильный пароль или имя пользователя",
"label_for_manifestname_help": "Это имя, которое отображается в портале пользователя. Оно может быть изменено позже.",
"tools_yunohost_settings": "Настройки YunoHost",
"group_explain_admins": "Это специальная группа для пользователей-администраторов. Пользователи в этой группе имеют доступ к администраторскому веб-интерфейсу YunoHost, SSH-соединению и использованию команды `sudo`. Они также будут получать письма, отправленные на почтовые ящики root@, admin@ и admins@, такие как уведомления диагностики. Вы должны добавлять сюда только тех, кому полностью доверяете!",
"important_yunohost_upgrade": "Доступен большое обновление YunoHost. Очень рекомендуется внимательно прочитать заметки о выпуске на форуме перед обновлением :<a href='https://forum.yunohost.org/tag/ynh_release'>Найти заметки о выпуске на форуме</a>"
}

View file

@ -55,7 +55,6 @@
"api_not_responding": "YunoHost API nereaguje. Možno 'yunohost-api' nebeží alebo bolo reštartované?",
"api_waiting": "Čaká sa na odpoveď servera…",
"app_choose_category": "Vyberte kategóriu",
"app_config_panel_no_panel": "Táto aplikácia nemá dostupné žiadne nastavenia",
"app_info_access_desc": "Skupiny a používatelia, ktorí majú prístup k aplikácii:",
"app_info_change_url_disabled_tooltip": "Táto funkcia do tejto aplikácie zatiaľ nebola pridaná",
"app_info_uninstall_desc": "Odstrániť túto aplikáciu.",
@ -116,8 +115,6 @@
"details": "Podrobnosti",
"domain_dns_conf_is_just_a_recommendation": "Táto sekcia zobrazuje *odporúčané* nastavenia. *Nenastavuje* DNS za Vás. Nastavenie DNS je potrebné urobiť u správcu Vašej DNS zóny podľa týchto odporúčaní.",
"diagnosis": "Diagnostika",
"app_config_panel": "Konfiguračný panel",
"app_config_panel_label": "Nastaviť túto aplikáciu",
"app_info_default_desc": "Presmerovať koreň domény na túto aplikáciu ({domain}).",
"app_info_changeurl_desc": "Zmeniť prístupovú URL adresu tejto aplikácie (doména a/alebo cesta).",
"app_show_categories": "Zobraziť kategórie",
@ -163,7 +160,8 @@
"cert": {
"types": {
"letsencrypt": "Let's Encrypt",
"other": "Iné/Neznáme"
"other": "Iné/Neznáme",
"selfsigned": "Vlastnoručne podpísaný (self-signed)"
},
"valid_for": "platný počas {days}"
},
@ -176,14 +174,14 @@
"types": {
"main_domain": "Hlavná doména"
},
"toggle_subdomains": "Prepnúť subdomény"
"toggle_subdomains": "Prepnúť subdomény",
"add": {
"from_registrar": "Chcem pridať doménu, ktorú vlastník alebo subdoménu",
"from_yunohost": "Nevlastním doménu, chcem zaregistrovať/používať voľnú doménu DynDNS poskytovanú projektom YunoHost"
}
},
"domain_add": "Pridať doménu",
"domain_add_dns_doc": "...vykonaná <a href='//yunohost.org/dns_config' target='_blank'>konfigurácia DNS</a>.",
"domain_add_dyndns_doc": "... chcem využiť službu dynamického DNS.",
"domain_add_dyndns_forbidden": "Svoju doménu ste už na DynDNS zaregistrovali. V diskusnom fóre môžete požiadať o odobratie Vašej súčasnej DynDNS domény v <a href='//forum.yunohost.org/t/nohost-domain-recovery-suppression-de-domaine-en-nohost-me-noho-st-et-ynh-fr/442'>samostatnom príspevku</a>.",
"domain_add_panel_with_domain": "Už mám meno domény…",
"domain_add_panel_without_domain": "Nemám meno domény…",
"domain_default_desc": "Používatelia sa prihlasujú ku predvolenej doméne.",
"domain_default_longdesc": "Toto je predvolená doména.",
"domain_delete_longdesc": "Odstrániť túto doménu",
@ -211,7 +209,7 @@
},
"form_errors": {
"alpha": "Hodnota môže obsahovať iba čísla.",
"alphalownum_": "Hodnota môže obsahovať iba alfanumerické znaky a podčiarkovník.",
"alphalownumdot_": "Hodnota môže obsahovať iba alfanumerické znaky a podčiarkovník.",
"domain": "Nesprávny tvar mena domény: môže obsahovať iba malé alfanumerické znaky, bodku a pomlčku",
"dynDomain": "Nesprávny tvar mena domény: môže obsahovať iba malé alfanumerické znaky a pomlčku",
"email": "Neplatný e-mail: môže obsahovať iba alfanumerické znaky a <code>_.-</code> (napr. niekto@priklad.com, ni3kt0-1@priklad.com)",
@ -306,7 +304,7 @@
"mailbox_quota_example": "700M zodpovedá disku CD, 4700M zodpovedá disku DVD",
"mailbox_quota_placeholder": "Pre vypnutie nastavte na 0.",
"manage_apps": "Správa aplikácií",
"manage_domains": "Správa domén",
"manage_domains": "Spravovať domény",
"manage_users": "Správa používateľov",
"migrations": "Migrácie",
"migrations_pending": "Čakajúce migrácie",
@ -314,8 +312,7 @@
"migrations_no_done": "Žiadne predchádzajúce migrácie",
"migrations_disclaimer_not_checked": "Pred spustením tejto migrácie je vyžadovaný súhlas s prehlásením.",
"multi_instance": "Môže byť nainštalovaná viackrát",
"myserver": "môj server",
"groups_and_permissions_manage": "Správa skupín a oprávnení",
"groups_and_permissions_manage": "Spravovať skupiny a oprávnenia",
"hook_data_home_desc": "Údaje používateľov sa nachádzajú v /home/USER",
"hook_data_xmpp_desc": "Konfigurácie používateľov, miestností a nahrané súbory",
"install": "Inštalovať",
@ -363,7 +360,10 @@
"port": "Port",
"postinstall": {
"force": "Vynútiť spustenie poinštalačného skriptu",
"title": "Poinštalačný skript"
"title": "Poinštalačný skript",
"user": {
"title": "Vytvoriť prvý účet administrátora"
}
},
"postinstall_intro_1": "Gratulujeme! YunoHost bol úspešne nainštalovaný.",
"postinstall_intro_2": "Na aktiváciu služieb na serveri sú vyžadované ďalšie dva konfiguračné kroky.",
@ -466,7 +466,7 @@
"save": "Uložiť",
"search": {
"for": "Hľadanie {items}…",
"not_found": "Nájdených {item} zodpovedajúcich Vášmu zadaniu. | Nájdená 1 {items} zodpovedajúca Vášmu zadaniu. | Nájdené {items} zodpovedajúce Vášmu zadaniu."
"not_found": "Nájdených {items} zodpovedajúcich Vášmu zadaniu. | Nájdená 1 {items} zodpovedajúca Vášmu zadaniu. | Nájdené {items} zodpovedajúce Vášmu zadaniu."
},
"select_all": "Vybrať všetko",
"select_none": "Nevybrať nič",
@ -483,7 +483,7 @@
"status": "Stav",
"stop": "Zastaviť",
"system_packages_nothing": "Všetky systémové balíčky sú aktuálne!",
"system_upgrade_btn": "Aktualizácia",
"system_upgrade_btn": "Aktualizovať",
"system_upgrade_all_packages_btn": "Aktualizovať všetky balíčky",
"tcp": "TCP",
"tip_about_user_email": "Pri vytvorení používateľa je mu tiež pridelená e-mailová adresa (a účet XMPP) vo formáte menopouzivatela@domena.sk. Ďalšie e-mailové aliasy a presmerovania môžu pridať neskôr administrátor alebo samotný používateľ.",
@ -536,7 +536,8 @@
"words": {
"browse": "Prehliadať",
"collapse": "Zabaliť",
"default": "Predvolené"
"default": "Predvolené",
"none": "Žiadne"
},
"yes": "Áno",
"yunohost_admin": "Správca YunoHost",
@ -558,5 +559,82 @@
"app_state_broken_explanation": "Táto aplikácie je aktuálne pokazená a podľa automatizovaných testov YunoHostu ju nie je možné nainštalovať",
"confirm_install_app_broken": "VAROVANIE! Táto aplikácia je na základe automatizovaných testov YunoHostu pokazená a môže poškodiť váš systém! Pravdepodobne by ste ju NEMALI inštalovať, ak neviete, čo presne to môže spôsobiť. Ste ochotný podstúpiť toto riziko?",
"details_about": "Zobraziť viac podrobností o {subject}",
"group_admins": "Správcovia"
"group_admins": "Správcovia",
"app": {
"info": {
"config_panel_error_please_report": "Prosím, nahláste túto chybu tímu YunoHost, aby ju mohli opraviť!",
"forum": "Hľadajte alebo sa opýtajte na fóre!",
"problem": "Máte problém s aplikáciou?",
"config_panel_error": "Konfiguračný panel sa nezobrazuje kvôli chybe:"
},
"installed_version": "Nainštalovaná verzia:",
"open_this_app": "Otvoriť túto aplikáciu",
"antifeatures": "Táto aplikácia obsahuje funkcie, ktoré sa vám nemusia páčiť:",
"doc": {
"about": {
"title": "Informácie",
"description": "Popis"
},
"admin": {
"title": "Dokumentácia pre správcov"
},
"notifications": {
"title": "Upozornenia",
"post_upgrade": "Upozornenia o aktualizácii",
"post_install": "Upozornenia o inštalácii",
"understood": "Rozumiem"
}
},
"install": {
"license": "Licencia: {license}",
"notifs": {
"pre": {
"warning": "Veci, o ktorých by ste pred inštaláciou mali vedieť",
"danger": "Po nainštalovaní tejto aplikácie sa môžu vyskytnúť problémy",
"critical": "Aplikáciu nie je možné nainštalovať"
},
"post": {
"title": "Poinštalačné upozornenie pre '{name}'",
"alert": "Zdá sa, že inštalácia úspešne skončila!\nTu je niekoľko upozornení, ktoré autor(ka) balíčku považuje za dôležité.\nMôžete si ich znova prečítať na stránke s informáciami o aplikácii."
}
},
"problems": {
"ignore": "Beriem na zreteľ, že inštalovaním tejto aplikácie si môžem rozbiť systém, no i napriek tomu to chcem urobiť.",
"install": "Aplikácia je už nainštalovaná a nie je možné ju nainštalovať viac ako jedenkrát.",
"arch": "Túto aplikáciu je možné nainštalovať iba na konkrétnych architektúrach ({required}), no vaša architektúra je {current}.",
"broken": "Automatické testy YunoHost označili túto aplikáciu za rozbitú a je možné, že vám poškodí systém! Preto by ste ju pravdepodobne NEMALI inštalovať, pokiaľ si nie ste istý, že to tak chcete.",
"thirdparty": "Táto aplikácia nie je súčasťou oficiálneho katalógu YunoHost, inštalovaním aplikácií tretích strán môžete ohroziť integritu a bezpečnosť vášho systému. Pokiaľ neviete, čo robíte, aplikáciu by ste NEMALI inštalovať."
},
"version": "Aktuálna verzia: {version}",
"try_demo": "Vyskúšať demo"
},
"potential_alternative_to": "Prípadná alternatíva k:",
"integration": {
"ldap": {
"false": "Nepoužíva na prihlasovanie účty YunoHost (LDAP)",
"true": "Používa na prihlasovanie účty YunoHost (LDAP)",
"?": "Chýbajú informácie o LDAP integrácii"
},
"title": "Integrácia s YunoHost",
"archs": "Podporované architektúry:",
"multi_instance": {
"false": "Môže byť nainštalovaná iba raz",
"true": "Môže byť nainštalovaná niekoľkokrát"
}
},
"links": {
"code": "Oficiálny repozitár s kódom",
"forum": "Témy týkajúce sa tejto aplikácie na fóre YunoHost",
"title": "Odkazy",
"userdoc": "Oficiálna príručka používateľa",
"website": "Oficiálna webová stránka",
"license": "Licencia"
},
"upgrade": {
"confirm": {
"apps": "Aplikácie, ktoré budú aktualizované"
}
}
},
"manage_groups": "Spravovať skupiny"
}

View file

@ -13,14 +13,14 @@
"administration_password": "Upravljalno geslo",
"all": "Vse",
"api": {
"processing": "Strežnik obdeluje dejanje...",
"processing": "Strežnik obdeluje dejanje",
"query_status": {
"error": "Neuspešno",
"pending": "V teku",
"success": "Uspešno končano",
"warning": "Uspešno končano z napakami ali opozorili"
},
"partial_logs": "[...] (preveri zgodovino za polne zapise",
"partial_logs": "[] (preveri zgodovino za polne zapise",
"reconnecting": {
"reason": {
"upgrade_system": "Povezava s strežnikom se je zaprla zaradi YunoHost nadgradnje. Čakanje na strežnik, da bo ponovno dosegljiv…",
@ -28,7 +28,7 @@
"unknown": "Povezava s strežnikom je bila prekinjena iz neznanih razlogov.",
"shutdown": "Tvoj strežnik se ugaša in ni več dosegljiv. Ponovno ga vklopi in poziv za prijavo bo na razpolago takoj, ko bo strežnik dosegljiv."
},
"title": "Poskušam se povezati s strežnikom...",
"title": "Poskušam se povezati s strežnikom",
"failed": "Videti je, da se strežnik ne odziva. Lahko se poskusiš ponovno povezati ali poskusi zagnati `systemctl restart yunohost-api` thru ssh.",
"success": "Strežnik je zdaj dosegljiv! Lahko se poskusiš vpisati"
}
@ -51,11 +51,8 @@
},
"all_apps": "Vse aplikacije",
"api_not_found": "Kaže da je spletni-admin poskusil poizvesti po nečem neobstoječem.",
"api_waiting": "Čakam na strežnikov odziv...",
"api_waiting": "Čakam na strežnikov odziv",
"app_choose_category": "Izberi kategorijo",
"app_config_panel": "Nastavitvena plošča",
"app_config_panel_label": "Nastavi to aplikacijo",
"app_config_panel_no_panel": "Ta aplikacija ne ponuja nastavitev",
"app_info_access_desc": "Skupine / uporabniki, ki imajo dostop do te aplikacije:",
"app_info_default_desc": "Preusmeri korensko domeno na to aplikacijo ({domain}).",
"app_info_change_url_disabled_tooltip": "Ta funkcija še ni bila razvita v tej aplikaciji",
@ -103,7 +100,7 @@
"confirm_group_add_access_permission": "Ste prepričani da želi dodeliti {name} dostop do {perm}? Takšen dostop bistveno razširi napadalo polje, če se {name} izkaže za škodoželjo osebo. Stori to samo če res ZAUPAŠ tej osebi ali skupini.",
"confirm_install_custom_app": "POZOR! Namestitev neuradnih aplikacij lahko ogrozi celovitost in varnost vašega sistema. Verjetno NI dobro namestiti, razen če res veš kaj počneš. Si pripravljen_a sprejeti tveganje?",
"confirm_install_app_lowquality": "Pozor: aplikacija bi lahko delovala vendar ni dobro vključena v YunoHost. Nekatere funkcionalnosti, kot so poenoten vpis ter varnostno kopiranje/povrnitev, morda niso na voljo.",
"confirm_install_app_inprogress": "POZOR! Ta aplikacija je še vedno poskusna (če eksplicitno ne dela) in bo verjetno poškodovala tvoj sistem! Verjetno ga ne bi smel_a naložiti, razen če veš, kaj počneš. Ali si pripravljen_a tvegati?",
"confirm_install_app_inprogress": "POZOR! Ta aplikacija je še vedno poskusna (če eksplicitno ne dela) in bo verjetno poškodovala tvoj sistem! Verjetno ga ne bi smel_a naložiti, razen če veš, kaj počneš. Ali si pripravljen_a tvegati?",
"confirm_migrations_skip": "Ni priporočljivo preskočiti selitev podatkov. Ali si prepričan_a, da želiš to storiti?",
"confirm_postinstall": "Kmalu se bo začel post-namestitveni proces na domeni {domain}. Morda ti bo vzelo nekaj minut, *ne prekini operacije*.",
"confirm_restore": "Ali si prepričan_a, da želiš obnoviti {name}?",

View file

@ -7,7 +7,6 @@
"only_highquality_apps": "Endast högkvalitativa applikationer",
"only_decent_quality_apps": "Endast applikationer av god kvalitet",
"installed": "Installerad",
"domain_add_dyndns_doc": "… och jag vill använda en dynamisk DNS-tjänst.",
"ipv4": "IPv4",
"only_working_apps": "Endast fungerande applikationer",
"restore": "Återskapa",
@ -41,7 +40,6 @@
"label_for_manifestname": "Etikett för {name}",
"migrations_pending": "Kommande förflyttningar",
"infos": "Information",
"domain_add_panel_with_domain": "Jag har redan ett domännamn …",
"domain_delete_longdesc": "Radera den här domänen",
"run": "Kör",
"hook_conf_ynh_certs": "SSL-certifikat",
@ -56,7 +54,7 @@
"download": "Ladda ner",
"open": "Öppen",
"hook_data_home_desc": "Användardata i /home/ANVÄNDARE",
"service_start_on_boot": "Kör vid uppstart: ",
"service_start_on_boot": "Kör vid uppstart",
"migrations_no_pending": "Inga kommande förflyttningar",
"domain_default_desc": "Standarddomänen är den domän du vill att användare loggar in på.",
"logs_context": "Sammanhang",
@ -65,7 +63,6 @@
"logs_path": "Sökväg",
"add": "Lägg till",
"install_name": "Installera {id}",
"domain_add_dns_doc": "… och jag har <a href='//yunohost.org/dns_config' target='_blank'>konfigurerat min DNS korrekt</a>.",
"error_server_unexpected": "Oväntat serverfel",
"previous": "Föregående",
"save": "Spara",
@ -77,7 +74,6 @@
"domain_name": "Domännamn",
"logs_more": "Visa fler rader",
"domain_dns_longdesc": "Visa DNS-inställningar",
"domain_add_panel_without_domain": "Jag har inte något domännamn …",
"migrations_no_done": "Inga tidigare förflyttningar",
"logs": "Loggar",
"login": "Logga in",
@ -86,7 +82,6 @@
"path": "Sökväg",
"password_confirmation": "Lösenordsbekräftelse",
"logs_started_at": "Start",
"myserver": "minserver",
"manage_domains": "Hantera domäner",
"operations": "Handlingar",
"form_input_example": "Exempel: {example}",
@ -109,10 +104,7 @@
"view_error": "Se fel",
"help": "Du borde leta hjälp på <a href=\"https://forum.yunohost.org/\">forumet</a> eller <a href=\"https://chat.yunohost.org/\">chatten</a> för att lösa situationen, eller rapportera buggen i <a href=\"https://github.com/YunoHost/issues\">buggrapporteraren</a>."
},
"api_waiting": "Väntar på serverns svar...",
"app_config_panel": "Konfigurationspanel",
"app_config_panel_label": "Konfigurera den här appen",
"app_config_panel_no_panel": "Den här appen har ingen konfiguration tillgänglig",
"api_waiting": "Väntar på serverns svar…",
"app_install_parameters": "Installera inställningar",
"all": "Alla",
"api_not_responding": "YunoHost APIet svarar inte. Är \"yunohost-api\" nere eller är under omstart?",
@ -125,7 +117,7 @@
"reboot": "Din server håller på att starta om och kommer inte att kunna nås på ett tag. En inloggningsfråga kommer att finnas tillgänglig så snart servern är tillgänglig."
},
"failed": "Verkar som om servern inte svarar. Du kan försöka att återansluta eller försök köra `systemctl restart yunohost-api`genom ssh.",
"title": "Försöker kommunicera med servern...",
"title": "Försöker kommunicera med servern",
"success": "Servern är nu åtkomlig! Du kan försöka att logga in"
},
"query_status": {
@ -134,8 +126,8 @@
"success": "Framgångsrikt slutfört",
"warning": "Framgångsrikt slutfört med fel eller varningar"
},
"partial_logs": "[...](Kolla i historiken för hela loggar)",
"processing": "Servern processar åtgärden..."
"partial_logs": "[](Kolla i historiken för hela loggar)",
"processing": "Servern processar åtgärden"
},
"api_errors_titles": {
"APINotFoundError": "YunoHost API kunde inte hitta en rutt",

View file

@ -28,11 +28,11 @@
"upgrade_system": "YunoHost అప్ గ్రేడ్ కారణంగా సర్వర్తో కనెక్షన్ మూసివేయబడింది. సర్వర్ మళ్లీ చేరుకునే వరకు వేచి ఉంది…"
},
"success": "సర్వర్ ఇప్పుడు చేరుకోవచ్చు! మీరు లాగిన్ చేయడానికి ప్రయత్నించవచ్చు",
"title": "సర్వర్తో కమ్యూనికేట్ చేయడానికి ప్రయత్నిస్తోంది...",
"title": "సర్వర్తో కమ్యూనికేట్ చేయడానికి ప్రయత్నిస్తోంది",
"failed": "సర్వర్ ప్రతిస్పందించడం లేదని కనిపిస్తోంది. మీరు మళ్లీ కనెక్ట్ చేయడానికి ప్రయత్నించవచ్చు లేదా ssh ద్వారా 'systemctl restart yunohost-api'ని రన్ చేయడానికి ప్రయత్నించవచ్చు."
},
"partial_logs": "[...] (పూర్తి లాగ్ ల కోసం చరిత్రలో తనిఖీ చేయండి)",
"processing": "సర్వర్ చర్యను ప్రాసెస్ చేస్తోంది..."
"partial_logs": "[] (పూర్తి లాగ్ ల కోసం చరిత్రలో తనిఖీ చేయండి)",
"processing": "సర్వర్ చర్యను ప్రాసెస్ చేస్తోంది"
},
"api_error": {
"error_message": "దోష సందేశం:",
@ -51,13 +51,10 @@
"APIConnexionError": "YunoHost ఒక కనెక్షన్ దోషాన్ని ఎదుర్కొంది"
},
"all_apps": "అన్ని అనువర్తనాలు",
"api_waiting": "సర్వర్ ప్రతిస్పందన కోసం వేచి ఉంది...",
"api_waiting": "సర్వర్ ప్రతిస్పందన కోసం వేచి ఉంది",
"app_choose_category": "ఒక వర్గాన్ని ఎంచుకోండి",
"app_config_panel": "Config ప్యానెల్",
"app_config_panel_label": "ఈ అనువర్తనాన్ని కాన్ఫిగర్ చేయండి",
"app_config_panel_no_panel": "ఈ అనువర్తనానికి కాన్ఫిగరేషన్ అందుబాటులో లేదు",
"app_info_access_desc": "సమూహాలు / వినియోగదారులు ప్రస్తుతం ఈ అనువర్తనాన్ని యాక్సెస్ చేయడానికి అనుమతించారు:",
"app_info_default_desc": "ఈ అనువర్తనానికి డొమైన్ రూట్‌ను మళ్ళించండి ({డొమైన్}).",
"app_info_default_desc": "ఈ అనువర్తనానికి డొమైన్ రూట్‌ను మళ్ళించండి ({domain}).",
"app_info_changeurl_desc": "ఈ అప్లికేషన్ యొక్క యాక్సెస్ URL ను మార్చండి (డొమైన్ మరియు/లేదా మార్గం).",
"app_info_change_url_disabled_tooltip": "ఈ లక్షణం ఈ అనువర్తనంలో ఇంకా అమలు చేయబడలేదు",
"app_info_uninstall_desc": "ఈ అనువర్తనాన్ని తొలగించండి.",
@ -146,7 +143,6 @@
"title": "అడ్మిన్ డాక్యుమెంటేషన్"
},
"notifications": {
"dismiss": "రద్దుచేసే",
"title": "ప్రకటనలు",
"post_upgrade": "పోస్ట్అప్‌గ్రేడ్ నోట్స్",
"post_install": "పోస్ట్-ఇన్‌స్టాల్ నోట్స్"

View file

@ -23,7 +23,6 @@
"ipv6": "IPv6",
"login": "Giriş",
"logout": ıkış",
"myserver": "sunucum",
"no": "Hayır",
"open": "Aç",
"operations": "İşlemler",
@ -42,7 +41,11 @@
"words": {
"default": "Varsayılan",
"collapse": "Kapat",
"browse": "Tara"
"browse": "Tara",
"link": "Bağlantı",
"none": "Hiçbiri",
"valid": "Geçerli",
"separator": ", "
},
"yes": "Evet",
"ok": "Tamam",
@ -59,7 +62,7 @@
"app_state_lowquality_explanation": "Bu uygulama işlevsel olabilir, ancak yine de sorunlar içerebilir veya YunoHost ile tamamen entegre değildir veya iyi uygulamalara uymaz.",
"purge_user_data_checkbox": "{name} verileri temizlensin mi? (Bu işlem ana ve posta dizinlerinin içeriğini silecektir.)",
"app_info_change_url_disabled_tooltip": "Bu özellik bu uygulamada henüz uygulanmadı",
"app_info_default_desc": "Alan adı kökünü bu uygulamaya yönlendirin (% s).",
"app_info_default_desc": "Alan adı kökünü bu uygulamaya yönlendirin ({domain}).",
"app_state_inprogress": "Henüz çalışmıyor",
"app_info_changeurl_desc": "Bu uygulamanın erişim URL'sini değiştirin (alan adı ve / veya yol).",
"app_make_default": "Varsayılan yap",
@ -115,7 +118,7 @@
"passwordMatch": "Şifreler eşleşmiyor.",
"remote": "{message}",
"pattern": "{type}",
"alphalownum_": "Değer, yalnızca küçük harfler, alfasayısal ve alt çizgi karakterlerinden oluşmalıdır.",
"alphalownumdot_": "Değer, yalnızca küçük harfler, alfasayısal ve alt çizgi karakterlerinden oluşmalıdır.",
"between": "Değer {min} ile {max} arasında olmalıdır.",
"alpha": "Değer yalnızca alfabetik karakterler olmalıdır.",
"domain": "Geçersiz alan adı: Yalnızca küçük harfli, alfasayısal, nokta ve tire karakterlerinden oluşmalıdır",
@ -139,7 +142,8 @@
"username": "ahmetatici",
"firstname": "Ahmet",
"lastname": "Atıcı",
"domain": "domain.com"
"domain": "domain.com",
"fullname": "Sam Smith"
},
"from_to": "{0} ile {1} arasında",
"go_back": "Geri dön",
@ -154,7 +158,9 @@
"change_label": "'{prevName}' etiketini '{nextName}' ile değiştirin",
"change_url": "'{name}' erişim URL'sini değiştir",
"set_default": "'{domain}' alan kökünü '{name}' olarak yönlendirin",
"update_config": "{id}. paneldeki '{name}' uygulamasının yapılandırmasını güncelleyin"
"update_config": "{id}. paneldeki '{name}' uygulamasının yapılandırmasını güncelleyin",
"action_config": "Uygulama {name} için {action} eylemini çalıştır",
"dismiss_notification": "'{name}' için bildirimi iptal et"
},
"diagnosis": {
"run_specific": "'{description}' tanılamasını çalıştır",
@ -173,7 +179,9 @@
"add": "'{name}' alan adını ekle",
"update_config": "{id}. paneldeki '{name}' yapılandırmasını güncelleyin",
"delete": "'{name}' alan adını sil",
"set_default": "'{name}' alan adını varsayılan yap"
"set_default": "'{name}' alan adını varsayılan yap",
"cert_install": "{name} için sertifika kur",
"cert_renew": "{name} için sertifika yenile"
},
"firewall": {
"upnp": "{action} UPnP",
@ -218,7 +226,10 @@
},
"reconnecting": "Yeniden bağlanıyor",
"share_logs": "'{name}' günlüğü için bağlantı oluştur",
"update": "Güncellemeleri kontrol et"
"update": "Güncellemeleri kontrol et",
"settings": {
"update": "{panel} global ayarlarını güncelle"
}
},
"hook_data_xmpp": "XMPP verileri",
"domain": {
@ -237,7 +248,46 @@
"auto_config_zone": "Geçerli DNS bölgesi",
"info": "Otomatik DNS kayıtları yapılandırması deneysel bir özelliktir. <br>Kayıtları buradan göndermeden önce, mevcut DNS bölgenizi DNS kayıt operatörünüzün arayüzünden kaydetmeyi düşünün.",
"manual_config": "Manuel yapılandırma için önerilen DNS kayıtları",
"push_force_warning": "YunoHost'un ayarladığı bazı DNS kayıtları, kayıt operatörü yapılandırmasında zaten var gibi görünüyor. Ne yaptığınızı biliyorsanız, üzerine yazma seçeneğini kullanabilirsiniz."
"push_force_warning": "YunoHost'un ayarladığı bazı DNS kayıtları, kayıt operatörü yapılandırmasında zaten var gibi görünüyor. Ne yaptığınızı biliyorsanız, üzerine yazma seçeneğini kullanabilirsiniz.",
"methods": {
"handled_in_parent": "Ana alan adında işlenir",
"manual": "El ile",
"auto": "Otomatik",
"semi_auto": "Yarı otomatik",
"none": "Hiçbiri"
}
},
"cert": {
"types": {
"other": "Diğer/Bilinmeyen",
"letsencrypt": "Let's Encrypt (Ücretsiz SSL)",
"selfsigned": "Kendinden imzalı"
},
"valid_for": "{days} süresince geçerli"
},
"info": {
"apps_on_domain": "Alan adı üzerinde yüklü olan uygulamalar",
"certificate_authority": "SSL Sertifikası yetkilisi",
"dyn_dns_remove_and_unsubscribe": "Ayrıca YunoHost'un DynDNS hizmetinden alan adının kaydını kaldırın",
"registrar": "Kaydedici"
},
"see_parent_domain": "Ana alan adına bakın",
"toggle_subdomains": "Alt alan adlarını değiştir",
"add": {
"dyn_dns_password_desc": "Bu parola, sisteminizi yeniden yüklediğinizde alan adının kontrolünü tekrardan geri almanızı sağlayacaktır. Bu alan adını daha önce kaydettirdiyseniz, geri almak için kurtarma parolanızı burada kullanın.",
"from_yunohost_desc": "YunoHost projesi ücretsiz bir 'DynDNS' hizmeti sunmaktadır. Sunucu başına bir alan adı ile sınırlıdır (ancak daha sonra yukarıdaki diğer 'Sahip olduğum bir alan adını veya bir alt alan adını ekle' seçeneğini kullanarak alt alan adları da ekleyebilirsiniz). DNS yapılandırması YunoHost tarafından otomatik olarak yapılacaktır. Bu, genel olarak kendiniz üzerinde barındarmaya başlarken ve henüz bir alan adına yatırım yapmak istemediğinizde idealdir. Ancak, orta/uzun vadede, alan adınızın tam mülkiyetine sahip olmak için kendi alan adınızı bir kayıt kuruluşundan satın almanızı öneririz.",
"dyn_dns_password": "Alan adı kurtarma parolası",
"from_local": "Yalnızca lokalde kullanım / test için bir alan adı istiyorum",
"from_local_desc": "\"Gerçek\" bir genel alan adı istemiyorsanız, <code>.local</code> veya <code>.test</code> ile biten herhangi bir şey kullanabilirsiniz. <code>.local</code> ile biten alan adları, istemcilerin Bonjour protokolünü desteklediği varsayılarak, yerel ağda otomatik olarak çözülebilmeleri için özel anlam taşır. Alternatif olarak, bu alanı kullanmak istediğiniz her istemcide <code>/etc/hosts</code> dosyasını (veya Windows'ta eşdeğerini) ayarlamanız veya ağ ayarlarınızda yerel DNS girişlerini yapılandırmanız gerekebilir.",
"from_registrar": "Sahip olduğum bir alan adını veya bir alt alan adını (subdomain) eklemek istiyorum",
"from_registrar_desc": "Bu alan adının yapılandırmasını tamamlamak için kayıt kuruluşunuzda DNS kayıtlarını manuel olarak yapılandırmanız gerekecektir. YunoHost'un teşhis sistemi, tam olarak hangi DNS kayıtlarının yapılandırılacağı konusunda size yol gösterecektir.",
"from_yunohost": "Bir alan adım yok, YunoHost projesi tarafından sağlanan ücretsiz bir DynDNS alan adını kaydetmek/kullanmak istiyorum"
},
"explain": {
"main_domain": "Ana alan adı, kullanıcıların giriş yapabildiği alan adıdır (\"{domain}/yunohost/sso\"). <br> Bu nedenle silinmesi mümkün değildir. <br> {domain} 'u silmek istiyorsanız, önce başka bir alan adı seçmeniz veya eklemeniz ve bunu ana alan adı olarak ayarlamanız gerekir."
},
"types": {
"main_domain": "Ana alan adı"
}
},
"migrations_disclaimer_check_message": "Bu sorumluluk reddini okudum ve anladım",
@ -247,7 +297,7 @@
"groups_and_permissions_manage": "Gruplar ve izinleri yönet",
"confirm_restore": "{name}'yi geri yüklemek istediğinizden emin misiniz?",
"confirm_upnp_enable": "UPnP'yi etkinleştirmek istediğinizden emin misiniz?",
"created_at": "Oluşturuldu:",
"created_at": "Oluşturuldu",
"domain_default_longdesc": "Bu, varsayılan alan adınızdır.",
"domain_dns_config": "DNS yapılandırması",
"firewall": "Güvenlik Duvarı",
@ -283,11 +333,11 @@
"reboot": "Sunucunuz yeniden başlatılıyor ve bir süreliğine erişilemeyecek. Sunucu tekrar erişilebilir olduğunda bir oturum açma ekranı sunulacaktır."
},
"success": "Sunucu artık erişilebilir durumda! Giriş yapabilirsiniz",
"title": "Sunucuyla iletişim kurulmaya çalışılıyor...",
"title": "Sunucuyla iletişim kurulmaya çalışılıyor",
"failed": "Sunucu yanıt vermiyor gibi görünüyor. Yeniden bağlanmayı deneyebilir veya ssh aracılığıyla `systemctl restart yunohost-api` çalıştırmayı deneyebilirsiniz."
},
"partial_logs": "[...] (tam günlükler için geçmişe bakın)",
"processing": "Sunucu eylemi işliyor..."
"partial_logs": "[] (tam günlükler için geçmişe bakın)",
"processing": "Sunucu eylemi işliyor"
},
"install": "Yükle",
"readme": "Beni oku",
@ -295,8 +345,6 @@
"license": "Lisans",
"path": "Yol",
"app_choose_category": "Kategori seç",
"app_config_panel": "Ayar paneli",
"app_config_panel_label": "Bu uygulamayı ayarla",
"logs": "Günlükler",
"perform": "Yap",
"only_decent_quality_apps": "Yalnızca kaliteli uygulamalar",
@ -317,16 +365,19 @@
"APIBadRequestError": "YunoHost bir hatayla karşılaştı",
"APIInternalError": "YunoHost \"internal\" bir hata ile karşılaştı"
},
"app_config_panel_no_panel": "Bu uygulamada herhangi bir yapılandırma mevcut değil",
"app_show_categories": "Kategorileri göster",
"confirm_firewall_allow": "{port} bağlantı noktasını açmak istediğinizden emin misiniz? (protokol: {protokol}, bağlantı: {connection})",
"confirm_firewall_allow": "{port} bağlantı noktasını açmak istediğinizden emin misiniz? (protokol: {protocol}, bağlantı: {connection})",
"domain_add_dyndns_forbidden": "Zaten bir DynDNS etki alanına abone oldunuz, mevcut DynDNS etki alanınızı <a href='//forum.yunohost.org/t/nohost-domain-recovery-suppression-de-domaine-en-nohost-me-noho-st-et-ynh-fr/442'>bu linkteki forumundan kaldırmayı isteyebilirsiniz. </a>.",
"domain_dns_push_failed_to_authenticate": "Kayıt şirketinin API'sinde kimlik doğrulanamadı. <a href='#/domains/{domain}/config'>kimlik bilgileri</a> yanlış olabilir mi? (Hata: {error})",
"experimental_warning": "Uyarı: Bu özellik deneyseldir ve istikrarlı olarak kabul edilmez, ne yaptığınızı bilmiyorsanız kullanmamalısınız.",
"mailbox_quota_example": "Bir CD 700 MB, bir DVD 4.7GB'dir",
"postinstall": {
"force": "Post-install işlemini zorla yap",
"title": "Kurulum sonrası"
"title": "Kurulum sonrası",
"user": {
"title": "İlk yöneticiyi oluşturma",
"first_user_help": "Bu kullanıcıya yönetici ayrıcalıkları verilecek ve bu yönetim arayüzünün yanı sıra SSH aracılığıyla doğrudan sunucuya bağlanmasına izin verilecektir.\nNormal bir kullanıcı olduğu için, kimlik bilgileriyle kullanıcı portalına (SSO) da bağlanabileceksiniz.\nKurulum sonrası tamamlandığında, 'admins' grubuna ekleyerek başka yönetici kullanıcılar oluşturabileceksiniz."
}
},
"retry": "Tekrar dene",
"backup": "Yedek",
@ -342,14 +393,14 @@
}
},
"api_not_found": "Görünüşe göre web yöneticisi var olmayan bir şeyi sorgulamaya çalıştı.",
"api_waiting": "Sunucunun yanıtı bekleniyor...",
"api_waiting": "Sunucunun yanıtı bekleniyor",
"app_install_parameters": "Kurulum ayarları",
"backup_content": "Yedek içeriği",
"backup_create": "Yedek oluştur",
"backup_new": "Yeni yedek",
"confirm_app_change_url": "Uygulama erişim URL'sini değiştirmek istediğinizden emin misiniz?",
"confirm_app_default": "Bu uygulamayı varsayılan yapmak istediğinizden emin misiniz?",
"confirm_firewall_disallow": "{port} bağlantı noktasını kapatmak istediğinizden emin misiniz? (protokol: {protokol}, bağlantı: {connection})",
"confirm_firewall_disallow": "{port} bağlantı noktasını kapatmak istediğinizden emin misiniz? (protokol: {protocol}, bağlantı: {connection})",
"confirm_group_add_access_permission": "{name} için {perm} erişimi vermek istediğinizden emin misiniz? {name} kötü niyetli bir kişi olursa, bu tür erişim saldırı yüzeyini önemli ölçüde artırır. Bunu yalnızca bu kişiye/gruba GÜVENİYORSANIZ yapmalısınız.",
"confirm_install_custom_app": "UYARI! 3. taraf uygulamaları yüklemek, sisteminizin bütünlüğünü ve güvenliğini tehlikeye atabilir. Ne yaptığınızı bilmiyorsanız muhtemelen KURMAMALISINIZ. Bu riski almaya hazır mısınız?",
"confirm_install_domain_root": "Bu uygulamayı kök dizin '/' üzerine kurmak istediğinizden emin misiniz? {domain} alan adına başka bir uygulama yükleyemeyeceksiniz",
@ -374,10 +425,6 @@
"diagnosis_first_run": "Tanılama özelliği, her şeyin sorunsuz çalıştığından emin olmak için sunucunuzun farklı yönlerindeki ortak sorunları belirlemeye çalışacaktır. Sunucunuzu kurduktan hemen sonra bir sürü hata görürseniz lütfen panik yapmayın: tam olarak sorunları belirlemenize ve düzeltmeniz için size rehberlik etmeye yöneliktir. Teşhis ayrıca günde iki kez otomatik olarak çalışır ve sorun bulunursa yöneticiye bir e-posta gönderilir.",
"diagnosis_explanation": "Tanılama özelliği, her şeyin sorunsuz çalıştığından emin olmak için sunucunuzun farklı yönlerindeki ortak sorunları belirlemeye çalışacaktır. Tanılama günde iki kez otomatik olarak çalışır ve sorun bulunursa yöneticiye bir e-posta gönderilir. Bazı belirli özellikleri (örneğin XMPP) kullanmak istemiyorsanız bazı testlerin uygun olmayabileceğini veya karmaşık bir kurulumunuz varsa başarısız olabileceğini unutmayın. Bu gibi durumlarda ve ne yaptığınızı biliyorsanız, ilgili sorunları veya uyarıları göz ardı etmenizde bir sakınca yoktur.",
"domain_add": "Alan adı ekle",
"domain_add_dns_doc": "… ve <a href='//yunohost.org/dns_config' target='_blank'>DNS'imi doğru ayarladım</a>.",
"domain_add_dyndns_doc": "… ve dinamik DNS hizmeti istiyorum.",
"domain_add_panel_with_domain": "Zaten bir alan adım var…",
"domain_add_panel_without_domain": "Bir alan adına sahip değilim…",
"domain_default_desc": "Varsayılan alan adı, kullanıcıların oturum açtığı alan adıdır.",
"domain_delete_longdesc": "Bu alan adını sil",
"domain_delete_forbidden_desc": "'{domain}' varsayılan alan adı olduğundan kaldıramazsınız, bu alan adını kaldırabilmek için başka bir alan seçmeniz (veya <a href='#/domains/add'>yeni bir alan eklemeniz</a>) ve varsayılan alan olarak ayarlamanız gerekir.",
@ -462,7 +509,8 @@
"fallback_language_description": "Çevirinin ana dilde olmaması durumunda kullanılacak dil.",
"cache": "Önbellek",
"cache_description": "Bu web-yöneticisi ile aynı anda CLI ile de çalışmayı planlıyorsanız, önbelleği devre dışı bırakın.",
"transitions": "Sayfa geçiş animasyonları"
"transitions": "Sayfa geçiş animasyonları",
"theme": "Karanlık modu aç / kapat"
},
"users_import_update": "Varolan kullanıcıları güncelle",
"items_verbose_items_left": "{items} öğe kaldı. | {items} öğe kaldı. | {items} öğe kaldı.",
@ -480,8 +528,8 @@
"user_username_edit": "{name} adlı kullanıcının hesabını düzenleyin",
"tools_shutdown": "Sunucuyu kapat",
"search": {
"for": "{items} öğelerini ara...",
"not_found": "Kriterlerinizle eşleşen {items} öğe var. | Kriterlerinize uyan 1 {item} öğe var. | Kriterlerinizle eşleşen {items} öğe var."
"for": "{items} öğelerini ara",
"not_found": "Kriterlerinizle eşleşen {items} öğe var. | Kriterlerinize uyan 1 {items} öğe var. | Kriterlerinizle eşleşen {items} öğe var."
},
"users_import": "Kullanıcıları içe aktar",
"users_export": "Kullanıcıları dışa aktar",
@ -566,15 +614,17 @@
"title": "Yönetici belgelendirmesi"
},
"notifications": {
"dismiss": "Göz ardı et",
"title": "Bildirimler",
"post_upgrade": "Yükseltme sonrası notları",
"post_install": "Kurulum sonrası notları"
"post_install": "Kurulum sonrası notları",
"understood": "Anlaşıldı"
}
},
"info": {
"forum": "Ara veya foruma sor!",
"problem": "Uygulamayla ilgili bir sorun mu var?"
"problem": "Uygulamayla ilgili bir sorun mu var?",
"config_panel_error_please_report": "Düzeltilmesi için lütfen bu hatayı YunoHost ekibine bildirin!",
"config_panel_error": "Bir hata yapılandırma panelinin görüntülenmesini engelliyor:"
},
"integration": {
"archs": "Desteklenen işlemci mimarileri:",
@ -590,8 +640,56 @@
"resources": "Olağan kaynak kullanımı: {ram} RAM, {disk} disk",
"sso": {
"false": "Çoklu oturum açma kullanılabilir değil (SSO)",
"true": "Çoklu oturum açma kullanılabilir (SSO)"
}
"true": "Çoklu oturum açma kullanılabilir (SSO)",
"?": "SSO entegrasyonu hakkında bilgi yok"
},
"title": "YunoHost Entegrasyonu"
},
"links": {
"admindoc": "Resmi Yönetici belgeleri",
"code": "Resmi kod deposu",
"package": "YunoHost paket deposu",
"forum": "YunoHost'un forumunda bu uygulama hakkında konular",
"package_license": "YunoHost paket lisansı",
"title": "Bağlantılar",
"userdoc": "Resmi Kullanıcı dökümantasyonları",
"website": "Resmi Website",
"license": "Uygulama Lisansı"
},
"potential_alternative_to": "Potansiyel alternatif:",
"upgrade": {
"continue": "Sonraki uygulamaya devam et",
"notifs": {
"post": {
"title": "{name} yükseltme sonrası bildirimler",
"alert": "Görünüşe göre yükseltme sorunsuz tamamlandı!\n İşte yapımcının bu yükseltme hakkında bilinmesi gerektiğini düşündüğü bazı bildirimler.\nUygulama bilgi sayfasından da tekrar okuyabilirsiniz."
},
"pre": {
"alert": "Yükseltmeden önce bu bildirimleri kontrol etmelisiniz, bilmeniz gereken önemli şeyler olabilir.",
"title": "Dikkatli olun!"
}
},
"confirm": {
"apps": "Yükseltme yapılacak uygulamalar",
"title": "Uygulama yükseltmelerini onayla"
},
"stop": "Sonraki uygulama yükseltmelerini iptal et"
},
"uninstall": {
"purge_desc": "Uygulama ile ilişkili verileri kaldırın (bu genellikle uygulamayı kullanarak kendi yüklediğiniz verilerdir)."
}
}
},
"since": "beri",
"traceback": "Geri izleme",
"group_admins": "Yöneticiler",
"app_state_broken": "Hatalı",
"app_state_broken_explanation": "YunoHost'un otomatik testlerine göre bu uygulama şu anda hatalı ve yüklenemiyor",
"label_for_manifestname_help": "Bu, kullanıcı portalında görüntülenen addır. Bu daha sonra değiştirilebilir.",
"group_explain_admins": "Bu, yönetici haklarına sahip kullanıcılara karşılık gelen özel bir gruptur. Bu gruptaki kullanıcılar YunoHost'un web yöneticisine erişebilir, SSH ile sunucuya bağlanabilir ve `sudo` komutunu kullanabilir. Ayrıca root@, admin@ ve admins@'e gönderilen özel bildirimler gibi e-postaları da alacaklardır. Bu gruba yalnızca kesinlikle güvendiğiniz kişileri eklemelisiniz!",
"confirm_install_app_broken": "UYARI! Bu uygulama YunoHost'un otomatik testlerine göre hatalıdır ve sisteminizi bozması muhtemeldir! Ne yaptığınızı emin değilseniz yüklememelisiniz. Bu riski yine de almak istiyor musunuz?",
"wrong_password_or_username": "Yanlış şifre veya kullanıcı adı",
"manage_groups": "Grupları yönet",
"details_about": "{subject} hakkında daha fazla ayrıntı göster",
"important_yunohost_upgrade": "Büyük bir YunoHost yükseltmesi mevcuttur. Yükseltme yapmadan önce forumdaki sürüm notlarını dikkatlice okumanız şiddetle tavsiye edilir: <a href='https://forum.yunohost.org/tag/ynh_release'>Forumdaki sürüm notlarına göz atın</a>",
"tools_yunohost_settings": "YunoHost ayarları"
}

View file

@ -20,7 +20,7 @@
"confirm_migrations_skip": "Не рекомендовано пропускати міграції. Ви точно в цьому впевнені?",
"confirm_install_app_lowquality": "Увага: цей застосунок може працювати, але його погано інтегровано з YunoHost. Деякі можливості типу SSO або резервних копій можуть бути не доступні.",
"confirm_app_install": "Ви справді бажаєте встановити цей застосунок?",
"confirm_install_domain_root": "Ви більше не зможете встановлювати застосунки на {domain}. Продовжити?",
"confirm_install_domain_root": "Ви впевнені, що хочете встановити цю програму на '/'? Ви не зможете встановити іншу програму на {domain}",
"confirm_install_custom_app": "ПОПЕРЕДЖЕННЯ! Встановлення застосунків сторонніх виробників може порушити цілісність і безпеку вашої системи. Вам, імовірно, НЕ слід встановлювати їх, якщо ви не знаєте, що робите. Чи готові ви піти на такий ризик?",
"confirm_group_add_access_permission": "Ви справді бажаєте надати {perm} доступ до {name}? Такий доступ значно збільшує ділянку нападу, якщо {name} виявиться зловмисником. Ви повинні робити це тільки в тому випадку, якщо ви довіряєте цій людині/групі.",
"confirm_firewall_disallow": "Ви справді бажаєте закрити порт {port} (протокол: {protocol}, з'єднання: {connection})",
@ -62,11 +62,8 @@
"app_info_default_desc": "Ця дія перенаправить корінь (root) сайту в цей застосунок ({domain}).",
"app_info_changeurl_desc": "Змінити посилання доступу до цього застосунку (домен і/чи шлях).",
"app_info_access_desc": "Групи / користувачі, у яких є доступ до цього застосунку:",
"app_config_panel_no_panel": "Цей застосунок не має доступної конфігурації",
"app_config_panel_label": "Конфігурувати цей застосунок",
"app_config_panel": "Панель конфігурації",
"app_choose_category": "Оберіть категорію",
"api_waiting": "Очікування відповіді сервера...",
"api_waiting": "Очікування відповіді сервера…",
"api_not_responding": "API YunoHost не відповідає. Може 'yunohost-api' не працює або щойно перезапускався?",
"api_not_found": "Схоже, що вебадміністрування намагалося запросити щось відсутнє.",
"all_apps": "Усі застосунки",
@ -93,8 +90,8 @@
"pending": "Обробляється",
"error": "Невдало"
},
"processing": "Оброблення дії сервером...",
"partial_logs": "[...] (перевірте в історії повні журнали)",
"processing": "Оброблення дії сервером",
"partial_logs": "[] (перевірте в історії повні журнали)",
"reconnecting": {
"failed": "Схоже, сервер не відповідає. Ви можете спробувати знову з'єднатися або спробувати запустити `systemctl restart yunohost-api` через ssh.",
"reason": {
@ -103,7 +100,7 @@
"shutdown": "Ваш сервер вимикається, і він більше не доступний. Увімкніть його знову, і запит на вхід з’явиться, щойно сервер стане доступним.",
"upgrade_system": "З'єднання з сервером було закрито через оновлення YunoHost. Очікуємо, поки сервер знову буде доступний…"
},
"title": "Спробування зв'язатися з сервером...",
"title": "Спробування зв'язатися з сервером",
"success": "Тепер сервер доступний! Ви можете спробувати увійти"
}
},
@ -132,10 +129,6 @@
"disabled": "Вимкнено",
"dns": "DNS",
"domain_add": "Додати домен",
"domain_add_dns_doc": "… я <a href='//yunohost.org/dns_config' target='_blank'>встановив мій DNS правильно</a>.",
"domain_add_dyndns_doc": "... і я хочу використовувати службу для динамічного DNS.",
"domain_add_panel_with_domain": "У мене вже є доменне ім'я…",
"domain_add_panel_without_domain": "У мене немає доменного імені…",
"domain_default_desc": "Типовий домен — це домен, де користувачі вводять логін і пароль.",
"domain_default_longdesc": "Це ваш типовий домен.",
"domain_delete_longdesc": "Видалити цей домен",
@ -171,7 +164,7 @@
"passwordLenght": "Пароль має складатися не менше ніж з 8 символів.",
"passwordMatch": "Паролі не збігаються.",
"required": "Обов'язкове поле.",
"alphalownum_": "У значенні можуть бути тільки букви в нижньому регістрі, числа та знак нижнього підкреслення.",
"alphalownumdot_": "У значенні можуть бути тільки букви в нижньому регістрі, числа та знак нижнього підкреслення.",
"emailForward": "Неприпустима переадресація е-пошти: в ній мають бути лише букви та числа <code>_.-</code> (на зразок cholovyaha@example.com, ch0lov-1@example.com)",
"remote": "{message}",
"pattern": "{type}",
@ -256,7 +249,6 @@
"migrations": "Міграція",
"migrations_done": "Попередні міграції",
"migrations_no_done": "Попередніх міграцій немає",
"myserver": "мій сервер",
"next": "Далі",
"no": "Ні",
"nobody": "Ніхто",
@ -399,7 +391,7 @@
"running": "Виконується",
"save": "Зберегти",
"search": {
"for": "Пошук {items}...",
"for": "Пошук {items}",
"not_found": "Наявно {items}, що відповідають критеріям. | Наявний {items}, що відповідає критеріям. | Наявно {items}, що відповідають критеріям."
},
"select_all": "Вибрати все",
@ -470,7 +462,7 @@
"link": "Посилання",
"none": "Немає",
"separator": ", ",
"valid": "Дійсн."
"valid": "Дійсний"
},
"yes": "Так",
"certificate_manage": "Управляти сертифікатом безпеки SSL",
@ -478,12 +470,12 @@
"domain_dns_conf_is_just_a_recommendation": "У цьому розділі показано *рекомендовану* конфігурацію. Вона *не* конфігурує DNS для вас. Ви самі повинні конфігурувати свою зону DNS в реєстраторі DNS відповідно до цих рекомендацій.",
"diagnosis_first_run": "Функція діагностики спробує знайти типові проблеми різних аспектів вашого сервера, для того, щоб переконатися, що сервер працює стабільно. Будь ласка, не панікуйте, якщо Ви бачите купу помилок одразу після підняття сервера: ця функція якраз розроблена для того, щоб знайти помилки та допомогти вам їх полагодити. Діагностика буде запускатися двічі на день, після чого буде направлятися е-поштою звіт адміністратору в разі виявлення проблем.",
"diagnosis_explanation": "Функція діагностики намагається виявити загальні проблеми в різних аспектах вашого сервера, щоб переконатися, що все працює без збоїв. Діагностика виконується автоматично два рази на день, і в разі виявлення проблем адміністратору надсилається електронний лист. Зверніть увагу, що деякі тести можуть бути недоречні, якщо ви не хочете використовувати деякі специфічні функції (наприклад, XMPP) або можуть не спрацювати, якщо у вас складні налаштування. У таких випадках, якщо ви знаєте, що робите, можна нехтувати відповідними проблемами або попередженнями.",
"domain_add_dyndns_forbidden": "Ви вже підписані на домен DynDNS, ви можете попросити видалити ваш домен DynDNS на форумі <a href='//forum.yunohost.org/t/nohost-domain-recovery-suppression-de-domaine-en-nohost-me-noho-st-et-ynh-fr/442'>в цій виділеній гілці</a>.",
"domain_add_dyndns_forbidden": "Ви вже зареєстрували/підписалися на DynDNS домен у проекті YunoHost. За задумом, ця функція обмежена одним таким доменом на сервер. Якщо ви бажаєте використовувати субдомен вашого вже підписаного домену, будь ласка, скористайтеся опцією \"Додати домен, яким я володію, або субдомен\", наведеною вище. Якщо ви хочете використовувати зовсім інший домен, вам слід спочатку видалити існуючий домен DynDNS. Домени DynDNS добре підходять для початку самостійного хостингу, але в середньостроковій і довгостроковій перспективі ми рекомендуємо придбати власне доменне ім'я у якогось реєстратора, щоб мати повне право власності на свій домен.",
"domain_delete_forbidden_desc": "Ви не можете видалити домен '{domain}', бо він є типовим. Ви повинні спочатку вибрати інший типовий домен (чи <a href='#/domains/add'>Створити новий</a>), після чого можна буде його видалити.",
"error_connection_interrupted": "Сервер закрив з'єднання замість відповіді. Чи перезавантажувався Nginx або API YunoHost, чи вони не працюють з якоїсь причини?",
"experimental_warning": "Попередження: ця функція є експериментальною і не вважається стабільною, ви не повинні використовувати її, якщо тільки ви знаєте, що робите.",
"good_practices_about_admin_password": "Зараз ви маєте визначити новий пароль адміністратора. Пароль повинен складатися щонайменше з 8 символів - хоча хорошою практикою є використання довшого пароля (тобто парольної фрази) і/або використання різних символів (великих, малих, чисел і спеціальних символів).",
"good_practices_about_user_password": "Зараз ви маєте визначити новий пароль користувача. Пароль повинен складатися щонайменше з 8 символів - хоча хорошою практикою є використання довшого пароля (тобто парольної фрази) і/або використання різних символів (великих, малих, чисел і спеціальних символів).",
"good_practices_about_admin_password": "Зараз ви маєте встановити новий пароль адміністратора. Пароль повинен містити щонайменше 8 символів - хоча рекомендується використовувати довший пароль (наприклад, парольну фразу) та/або використовувати різні типи символів (великі та малі літери, цифри та спеціальні символи).",
"good_practices_about_user_password": "Зараз ви маєте встановити новий пароль користувача. Пароль повинен містити щонайменше 8 символів - хоча рекомендується використовувати довший пароль (наприклад, парольну фразу) та/або використовувати різні типи символів (великі та малі літери, цифри та спеціальні символи).",
"group_explain_all_users": "Це спеціальна група, що містить усі облікові записи користувачів на сервері",
"group_explain_visitors_needed_for_external_client": "Будьте уважні, деякі застосунки мають бути дозволеними для відвідувачів, якщо ви збираєтеся використовувати їх із зовнішніми клієнтами. Наприклад, це стосується Nextcloud, якщо ви збираєтеся використовувати клієнт синхронізації на смартфоні або настільному комп'ютері.",
"hook_data_xmpp_desc": "Конфігурації кімнат і користувачів, вивантаження файлів",
@ -508,7 +500,7 @@
"tools_shutdown": "Вимкнути цей сервер",
"user_mailbox_quota": "Квота поштової скриньки",
"users": "Користувачі",
"purge_user_data_checkbox": "Очистити дані {name}? (це видалить вміст його домівки та поштових каталогів).",
"purge_user_data_checkbox": "Очистити дані {name}? (Це призведе до видалення вмісту домашньої та поштової директорій.)",
"purge_user_data_warning": "Очищення даних користувача не є відновлюваним. Будьте впевнені, що ви знаєте, що робите!",
"users_import": "Імпорт користувачів",
"users_export": "Експорт користувачів",
@ -560,17 +552,28 @@
"info": {
"apps_on_domain": "Застосунки встановлені на домені",
"certificate_authority": "Центр сертифікації SSL",
"registrar": "Реєстратор"
"registrar": "Реєстратор",
"dyn_dns_remove_and_unsubscribe": "Також скасувати реєстрацію домену в сервісі DynDNS від YunoHost"
},
"see_parent_domain": "Переглянути батьківський домен",
"types": {
"main_domain": "Основний домен"
},
"toggle_subdomains": "Перемкнути піддомени"
"toggle_subdomains": "Перемкнути піддомени",
"add": {
"from_local_desc": "Якщо вам не потрібне «справжнє» ім’я загальнодоступного домену, ви можете використовувати будь-яке, що закінчується на <code>.local</code> або <code>.test</code>. Доменні імена, що закінчуються на <code>.local</code>, є особливими в тому сенсі, що можуть автоматично розпізнаватися в локальній мережі за умови, що клієнти підтримують протокол Bonjour. Крім того, вам може знадобитися налаштувати файл <code>/etc/hosts</code> (або еквівалент у Windows) на кожному клієнті, з якого ви хочете використовувати цей домен, або налаштувати локальні записи DNS на вашому інтернет-маршрутизаторі.",
"from_yunohost_desc": "Проект YunoHost підтримує безкоштовну послугу DynDNS. Він обмежений одним таким доменом на сервер (хоча ви також можете додати субдомени пізніше, використовуючи опцію \"Додати домен, яким я володію, або субдомен\", наведену вище). Конфігурація DNS буде автоматично оброблена YunoHost. Це ідеальний варіант, якщо ви тільки починаєте користуватися хостингом і не хочете поки що інвестувати в доменне ім'я. Однак у середньо- та довгостроковій перспективі ми рекомендуємо придбати власне доменне ім'я у якого-небудь реєстратора, щоб мати повне право власності на ваш домен.",
"dyn_dns_password": "Пароль для відновлення домену",
"dyn_dns_password_desc": "Цей пароль дозволить вам пізніше відновити контроль над доменом, якщо ви перевстановите систему. Якщо ви вже реєстрували цей домен раніше, скористайтеся паролем відновлення тут, щоб відновити його.",
"from_local": "Я хочу домен для локального використання / тестування",
"from_registrar": "Я хочу додати власний домен або субдомен",
"from_registrar_desc": "Вам потрібно буде вручну налаштувати DNS-записи у вашого реєстратора, щоб завершити конфігурацію цього домену. Діагностика YunoHost підкаже вам, які саме DNS-записи потрібно налаштувати.",
"from_yunohost": "У мене немає власного домену, я хочу зареєструвати/використовувати безкоштовний DynDNS домен від проекту YunoHost"
}
},
"domain_dns_push_managed_in_parent_domain": "Функцією автоматичних записів DNS керує батьківський домен <a href='#/domains/{parent_domain}/dns'>{parent_domain}</a>.",
"domain_dns_push_failed_to_authenticate": "Не вдалося автентифікуватися API реєстратора. Швидше за все, <a href='#/domains/{domain}/config'> облікові дані</a> неправильні? (Помилка: {error})",
"domain_dns_push_not_applicable": "Автоматична функція DNS-записів не застосовується до домену {domain}, ви повинні вручну налаштувати записи DNS, що слідують за <a href='https://yunohost.org/dns'> документацією</a> та запропонованою конфігурацією",
"domain_dns_push_failed_to_authenticate": "Помилка автентифікації в API реєстратора. Швидше за все, <a href='#/domains/{domain}/config'>облікові дані</a> неправильні? (Помилка: {error})",
"domain_dns_push_not_applicable": "Функція автоматичних записів DNS не застосовується до домену {domain},<br> Вам слід вручну налаштувати записи DNS відповідно до <a href='https://yunohost.org/dns'>документації</a> та запропонованої нижче конфігурації.",
"text_selection_is_disabled": "Виділення тексту вимкнено. Якщо ви хочете поділитися цим журналом, надішліть журнал *повний* за допомогою кнопки \"Поділитися через Yunopaste\".<br/><small>Або якщо ви дійсно хочете виділити текст, натисніть ці клавіші: ↓↓↑↑.</small>",
"retry": "Спробувати знову",
"app_state_broken": "зламано",
@ -642,15 +645,17 @@
"title": "Адмін документації"
},
"notifications": {
"dismiss": "Відхилити",
"title": "Сповіщення",
"post_upgrade": "Примітки після оновлення",
"post_install": "Примітки після встановлення"
"post_install": "Примітки після встановлення",
"understood": "зрозуміло"
}
},
"info": {
"forum": "Пошукайте або запитайте на форумі!",
"problem": "Проблеми з цим застосунком?"
"problem": "Проблеми з цим застосунком?",
"config_panel_error": "Помилка перешкоджає відображенню панелі конфігурації:",
"config_panel_error_please_report": "Будь ласка, повідомте про цю помилку команді YunoHost, щоб її виправити!"
},
"integration": {
"archs": "Підтримувані архітектури:",
@ -681,6 +686,9 @@
"userdoc": "Офіційна документація користувача",
"website": "Офіційний вебсайт"
},
"potential_alternative_to": "Потенційна альтернатива для:"
"potential_alternative_to": "Потенційна альтернатива для:",
"uninstall": {
"purge_desc": "Видаліть каталог даних, пов'язаний з додатком (зазвичай це дані, які ви завантажили за допомогою додатка)."
}
}
}

View file

@ -95,7 +95,7 @@
"domain": "域名无效:仅可包含小写字母数字、点和短划线字符",
"dynDomain": "域名无效:仅可包含小写字母数字和短划线字符",
"between": "值必须介于 {min} 和 {max} 之间。",
"alphalownum_": "值仅可包含小写字母数字和下划线字符。",
"alphalownumdot_": "值仅可包含小写字母数字和下划线字符。",
"alpha": "值仅可包含字母字符。",
"remote": "{message}",
"pattern": "{type}",
@ -120,7 +120,6 @@
"domain_dns_longdesc": "查看 DNS 配置",
"domain_dns_config": "DNS 配置",
"domain_delete_longdesc": "删除此域",
"domain_add_panel_without_domain": "我没有域…",
"domain_default_longdesc": "这是您的默认域。",
"domain_add": "添加域",
"dns": "DNS",
@ -139,7 +138,7 @@
"lastname": "姓",
"firstname": "名"
},
"api_waiting": "正在等待服务器的响应...",
"api_waiting": "正在等待服务器的响应",
"address": {
"domain_description": {
"email": "为您的邮箱选择一个域。",
@ -186,13 +185,10 @@
"error_modify_something": "您应该修改一些东西",
"domain_delete_forbidden_desc": "您无法删除 '{domain}',因为它是默认域,您需要选择另一个域(或<a href='#/domains/add'>添加一个新域</a>)并将其设置为默认域能够删除它。",
"domain_default_desc": "默认域是用户登录的连接域。",
"domain_add_dyndns_forbidden": "您已经订阅了一个 DynDNS 域,您可以在论坛上要求删除您当前的 DynDNS 域 <a href='//forum.yunohost.org/t/nohost-domain-recovery-suppression-de-domaine-en-nohost-me-noho-st-et-ynh-fr/442'>在独立的帖子中</a>。",
"domain_add_dyndns_doc": "…并且我想要一个动态 DNS 服务。",
"domain_add_dns_doc": "…并且我已经<a href='//yunohost.org/dns_config' target='_blank'>正确设置了我的 DNS</a>。",
"domain_add_dyndns_forbidden": "您已经在 YunoHost 项目中注册/订阅了一个 DynDNS 域。根据设计,每个服务器只能使用一个这样的域。如果您想添加一个已订阅域的子域,请使用上面的“添加一个我拥有的域或子域”选项。如果您想使用一个完全不同的域,应首先删除现有的 DynDNS 域名。DynDNS 域在开始使用自托管时是个不错的选择,但从中长期来看,我们建议您向某些注册商购买自己的域名,以拥有域的完全所有权。",
"diagnosis_explanation": "诊断功能将尝试识别服务器不同方面的常见问题,以确保一切顺利运行。诊断每天自动运行两次,如果发现问题,会向管理员发送电子邮件。请注意,如果您不想使用某些特定功能(例如 XMPP则某些测试可能不相关或者如果您有复杂的设置则可能会失败。在这种情况下如果您知道自己在做什么则可以忽略相应的问题或警告。",
"diagnosis_first_run": "诊断功能将尝试识别服务器不同方面的常见问题,以确保一切顺利运行。如果您在设置服务器后立即看到一堆错误,请不要惊慌:它正是为了帮助您识别问题并指导您修复它们。诊断还将每天自动运行两次,如果发现问题,则会向管理员发送电子邮件。",
"domain_dns_conf_is_just_a_recommendation": "本节向您展示*推荐*配置。它*不会*为您配置 DNS。您有责任根据此建议在您的 DNS 注册商中配置您的 DNS 区域。",
"domain_add_panel_with_domain": "我已经有一个域…",
"confirm_app_install": "您确定要安装此应用吗?",
"confirm_install_domain_root": "您确定要在 '/' 上安装此应用吗?您将无法在 {domain} 上安装任何其它应用",
"confirm_install_custom_app": "警告!安装第三方应用可能会损害系统的完整性和安全性。除非您知道自己在做什么,否则您最好不要安装它。您愿意冒这个风险吗?",
@ -210,9 +206,6 @@
"app_install_parameters": "安装设置",
"app_info_changeurl_desc": "更改此应用的访问网址(域和/或路径)。",
"app_info_access_desc": "当前允许访问此应用的群组/用户:",
"app_config_panel_no_panel": "此应用程序没有任何可用的配置",
"app_config_panel_label": "配置此应用",
"app_config_panel": "配置面板",
"app_choose_category": "选择类别",
"api_not_responding": "YunoHost API 没有响应。也许 'yunohost-api' 已关闭或重启?",
"api_not_found": "网站管理员似乎试图查询不存在的内容。",
@ -239,8 +232,8 @@
"pending": "进行中",
"error": "未成功"
},
"processing": "服务器正在处理操作...",
"partial_logs": "[...](查看完整日志的历史记录)",
"processing": "服务器正在处理操作",
"partial_logs": "[](查看完整日志的历史记录)",
"reconnecting": {
"failed": "看起来服务器没有响应。您可以尝试重新连接或尝试通过 ssh 运行 `systemctl restart yunohost-api`。",
"reason": {
@ -250,7 +243,7 @@
"shutdown": "您的服务器正在关闭并且无法再访问。请重新启机,当服务器可以访问时,登录提示将会出现。"
},
"success": "服务器现在可以访问了!您可以尝试登录",
"title": "正在尝试与服务器通信..."
"title": "正在尝试与服务器通信"
}
},
"ignored": "{count} 已忽略",
@ -273,7 +266,6 @@
"nobody": "无人",
"no": "否",
"next": "下一步",
"myserver": "我的服务器",
"multi_instance": "可以多次安装",
"migrations_disclaimer_not_checked": "此迁移要求您在运行之前确认其免责声明。",
"migrations_disclaimer_check_message": "我已阅读并理解此免责声明",
@ -405,7 +397,7 @@
"select_all": "全选",
"search": {
"not_found": "{items}符合您的条件。 | 有 1 个{items}符合您的条件。 | 共有{items}符合您的条件。",
"for": "搜索{items}..."
"for": "搜索{items}"
},
"save": "保存",
"running": "正在运行",
@ -546,7 +538,8 @@
"info": {
"apps_on_domain": "安装在域上的应用",
"certificate_authority": "SSL 证书颁发机构",
"registrar": "注册商"
"registrar": "注册商",
"dyn_dns_remove_and_unsubscribe": "同时从 YunoHost 的 DynDNS 服务中取消注册此域"
},
"explain": {
"main_domain": "主域是用户可以连接到门户的域(通过 \"{domain}/yunohost/sso\")。<br>因此,无法删除它。<br>如果想要删除\"{domain}\",您首先必须选择或添加另一个域并将其设置为主域。"
@ -555,6 +548,16 @@
"toggle_subdomains": "切换子域",
"types": {
"main_domain": "主域"
},
"add": {
"dyn_dns_password": "域恢复密码",
"dyn_dns_password_desc": "此密码将允许您在重新安装系统后恢复对此域的控制。如果您之前已经注册了此域,请在此处使用您的恢复密码来重新获取控制权。",
"from_local": "我想要一个仅供本地使用/测试的域",
"from_registrar": "我想添加一个我拥有的域或子域",
"from_registrar_desc": "您需要在注册商处手动配置 DNS 记录以最终完成此域名的配置。YunoHost 的诊断将指导您具体配置哪些 DNS 记录。",
"from_yunohost": "我没有域,我想注册/使用 YunoHost 项目提供的免费 DynDNS 域",
"from_yunohost_desc": "YunoHost 项目提供免费的 'DynDNS' 服务。每台服务器仅限使用一个这样的域不过您也可以稍后使用上述“添加一个我拥有的域或子域”选项以添加子域。DNS 配置将由 YunoHost 自动处理。当您刚开始使用自托管服务并且还不想投资购买域名时,这是理想的选择。不过,从中长期来看,我们建议您向某些注册商购买自己的域名,以拥有域的完全所有权。",
"from_local_desc": "如果您不想要一个“真实的”公共域名,您可以使用以 <code>.local</code> 或 <code>.test</code> 结尾的任何域名。以 <code>.local</code> 结尾的域名在某种意义上是特殊的,因为在本地网络中可以自动解析,前提是客户端支持 Bonjour 协议。或者,您可能需要在每个要从中使用该域名的客户端上调整 <code>/etc/hosts</code> 文件(或 Windows 上的等效文件),或者在您的互联网路由器上配置本地 DNS 条目。"
}
},
"domain_dns_push_managed_in_parent_domain": "自动 DNS 记录功能在父域 <a href='#/domains/{parent_domain}/dns'>{parent_domain}</a> 中管理。",
@ -573,16 +576,16 @@
"title": "管理文档"
},
"notifications": {
"dismiss": "忽略",
"title": "通知",
"post_upgrade": "升级后注意事项",
"post_install": "安装后注意事项"
"post_install": "安装后注意事项",
"understood": "了解"
}
},
"install": {
"notifs": {
"post": {
"alert": "看来安装进展顺利!\n 以下是打包者认为重要的一些通知。\n您可以在应用信息页面中再次阅读。",
"alert": "看来安装进展顺利!\n以下是打包者认为重要的一些通知。\n您可以在应用信息页面中再次阅读。",
"title": "'{name}' 的安装后通知"
},
"pre": {
@ -628,12 +631,13 @@
"links": {
"userdoc": "官方用户文档",
"website": "官方网站",
"license": "许可证",
"license": "应用许可证",
"admindoc": "官方管理文档",
"code": "官方代码仓库",
"forum": "YunoHost 论坛上有关此应用的主题",
"package": "Yunohost 软件包存储库",
"title": "链接"
"title": "链接",
"package_license": "YunoHost 软件包许可证"
},
"potential_alternative_to": "潜在的替代方案:",
"upgrade": {
@ -658,9 +662,14 @@
"antifeatures": "此应用可能有您不喜欢的功能:",
"info": {
"forum": "搜索或询问论坛!",
"problem": "有相关此应用的问题?"
"problem": "有相关此应用的问题?",
"config_panel_error": "无法显示配置面板,发生错误:",
"config_panel_error_please_report": "请向 YunoHost 团队报告此错误,以便修复!"
},
"installed_version": "已安装版本:"
"installed_version": "已安装版本:",
"uninstall": {
"purge_desc": "移除与应用相关的数据目录(这通常是您自己使用该应用上传的数据)。"
}
},
"users_import_update_desc": "如果选中CSV 文件中包含的所有现有用户都将更新为新值",
"group_admins": "管理员",

View file

@ -6,135 +6,135 @@
export default {
ar: {
name: 'عربي'
name: 'عربي',
},
bn_BD: {
name: 'বাংলা',
dateFnsLocale: 'bn'
dateFnsLocale: 'bn',
},
br: {
name: 'Brezhoneg',
dateFnsLocale: 'fr'
dateFnsLocale: 'fr',
},
ca: {
name: 'Català'
name: 'Català',
},
ckb: {
name: 'کوردی',
dateFnsLocale: 'fa-IR'
dateFnsLocale: 'fa-IR',
// FIXME fallback to Farsi (`fa-IR`) is arbitrary, some would probably prefer Arabic (`ar`)...
},
cs: {
name: 'Čeština'
name: 'Čeština',
},
da: {
name: 'Dansk'
name: 'Dansk',
},
de: {
name: 'Deutsch'
name: 'Deutsch',
},
el: {
name: 'Eλληνικά'
name: 'Eλληνικά',
},
en: {
name: 'English',
dateFnsLocale: 'en-GB'
dateFnsLocale: 'en-GB',
},
eo: {
name: 'Esperanto'
name: 'Esperanto',
},
es: {
name: 'Español'
name: 'Español',
},
eu: {
name: 'Euskara'
name: 'Euskara',
},
fa: {
name: 'فارسی',
dateFnsLocale: 'fa-IR'
dateFnsLocale: 'fa-IR',
},
fi: {
name: 'Suomi'
name: 'Suomi',
},
fr: {
name: 'Français'
name: 'Français',
},
gl: {
name: 'Galego'
name: 'Galego',
},
he: {
name: 'עברית'
name: 'עברית',
},
hi: {
name: 'हिन्दी'
name: 'हिन्दी',
},
hu: {
name: 'Magyar'
name: 'Magyar',
},
id: {
name: 'Bahasa Indonesia'
name: 'Bahasa Indonesia',
},
it: {
name: 'Italiano'
name: 'Italiano',
},
kab: {
name: 'Taqbaylit',
dateFnsLocale: 'ar-DZ'
dateFnsLocale: 'ar-DZ',
},
lt: {
name: 'Lietuvių'
name: 'Lietuvių',
},
mk: {
name: 'македонски'
name: 'македонски',
},
nb_NO: {
name: 'Norsk bokmål',
dateFnsLocale: 'nb'
dateFnsLocale: 'nb',
},
ne: {
name: 'नेपाली',
dateFnsLocale: 'en-GB'
dateFnsLocale: 'en-GB',
},
nl: {
name: 'Nederlands'
name: 'Nederlands',
},
oc: {
name: 'Occitan',
dateFnsLocale: 'ca'
dateFnsLocale: 'ca',
},
pl: {
name: 'Polski'
name: 'Polski',
},
pt: {
name: 'Português'
name: 'Português',
},
pt_BR: {
name: 'Português brasileiro',
dateFnsLocale: 'pt-BR'
dateFnsLocale: 'pt-BR',
},
ru: {
name: 'Русский'
name: 'Русский',
},
sk: {
name: 'Slovak'
name: 'Slovak',
},
sl: {
name: 'Slovenščina'
name: 'Slovenščina',
},
sv: {
name: 'Svenska'
name: 'Svenska',
},
te: {
name: 'Telugu'
name: 'Telugu',
},
tr: {
name: 'Türkçe'
name: 'Türkçe',
},
uk: {
name: 'Українська'
name: 'Українська',
},
zh_Hans: {
name: '简化字',
dateFnsLocale: 'zh-CN'
}
dateFnsLocale: 'zh-CN',
},
}

View file

@ -10,20 +10,19 @@ import i18n from './i18n'
import { registerGlobalErrorHandlers } from './api'
import { initDefaultLocales } from './i18n/helpers'
Vue.config.productionTip = false
// Styles are imported in `src/App.vue` <style>
Vue.use(BootstrapVue, {
BSkeleton: { animation: 'none' },
BAlert: { show: true },
BBadge: { pill: true }
BBadge: { pill: true },
})
Vue.use(VueShowdown, {
options: {
emoji: true
}
emoji: true,
},
})
// Ugly wrapper for `$bvModal.msgBoxConfirm` to set default i18n button titles
@ -34,14 +33,18 @@ Vue.prototype.$askConfirmation = function (message, props) {
cancelTitle: this.$i18n.t('cancel'),
bodyBgVariant: 'warning',
centered: true,
bodyClass: ['font-weight-bold', 'rounded-top', store.state.theme ? 'text-white' : 'text-black'],
...props
bodyClass: [
'font-weight-bold',
'rounded-top',
store.state.theme ? 'text-white' : 'text-black',
],
...props,
})
}
Vue.prototype.$askMdConfirmation = function (markdown, props, ok = false) {
const content = this.$createElement('vue-showdown', {
props: { markdown, flavor: 'github', options: { headerLevelStart: 4 } }
props: { markdown, flavor: 'github', options: { headerLevelStart: 4 } },
})
return this.$bvModal['msgBox' + (ok ? 'Ok' : 'Confirm')](content, {
okTitle: this.$i18n.t('yes'),
@ -49,15 +52,15 @@ Vue.prototype.$askMdConfirmation = function (markdown, props, ok = false) {
headerBgVariant: 'warning',
headerClass: store.state.theme ? 'text-white' : 'text-black',
centered: true,
...props
...props,
})
}
// Register global components
const globalComponentsModules = import.meta.glob([
'@/components/globals/*.vue',
'@/components/globals/*/*.vue'
], { eager: true })
const globalComponentsModules = import.meta.glob(
['@/components/globals/*.vue', '@/components/globals/*/*.vue'],
{ eager: true },
)
Object.values(globalComponentsModules).forEach((module) => {
const component = module.default
Vue.component(component.name, component)
@ -71,7 +74,7 @@ initDefaultLocales().then(() => {
store,
router,
i18n,
render: h => h(App)
render: (h) => h(App),
})
app.$mount('#app')

Some files were not shown because too many files have changed in this diff Show more