From 5b9adb48ef2d8e8b4a60abcf6f617a5ff6eec715 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 00:58:54 +0100 Subject: [PATCH 001/292] readme_generator: remove '**' from some string to facilitate translation (and not confusing translators) (#2179) * remove '**' from some string to facilitate translation (and not confusing translators) * edit the test readme accordingly to the PR --- tools/readme_generator/templates/README.md.j2 | 6 +++--- tools/readme_generator/tests/README.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/readme_generator/templates/README.md.j2 b/tools/readme_generator/templates/README.md.j2 index 3f9529dd28..c532f300c2 100644 --- a/tools/readme_generator/templates/README.md.j2 +++ b/tools/readme_generator/templates/README.md.j2 @@ -32,11 +32,11 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in ## {{ _("Overview") }} {% if description %}{{description}}{% else %}{{manifest.description[lang]}}{% endif %} -{{ _("**Shipped version:**") }} {% if upstream.version %}{{upstream.version}}{% else %}{{manifest.version}} +**{{ _("Shipped version:") }}** {% if upstream.version %}{{upstream.version}}{% else %}{{manifest.version}} {% endif -%} {% if upstream.demo %} -{{ _("**Demo:**") }} <{{upstream.demo}}> +**{{ _("Demo:") }}** <{{upstream.demo}}> {% endif -%} {% if screenshots %} @@ -79,7 +79,7 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in {{ _("Please send your pull request to the [testing branch](%(testing_branch_url)s)")|format(testing_branch_url="https://github.com/YunoHost-Apps/" + manifest.id + "_ynh/tree/testing") }}, -{{ _("To try the testing branch, please proceed like that.") }} +{{ _("To try the testing branch, please proceed like that:") }} ```bash sudo yunohost app install https://github.com/YunoHost-Apps/{{manifest.id}}_ynh/tree/testing --debug diff --git a/tools/readme_generator/tests/README.md b/tools/readme_generator/tests/README.md index 877dfbaf00..7fd50ab299 100644 --- a/tools/readme_generator/tests/README.md +++ b/tools/readme_generator/tests/README.md @@ -50,7 +50,7 @@ Please note that this package uses the ["i'm so tired" software license 1.0](htt Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/gotosocial_ynh/tree/testing), -To try the testing branch, please proceed like that. +To try the testing branch, please proceed like that: ```bash sudo yunohost app install https://github.com/YunoHost-Apps/gotosocial_ynh/tree/testing --debug From 84243ad0db0ecc3f4aebf7ded004b39698e1c4e0 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 01:02:56 +0100 Subject: [PATCH 002/292] readme_generator: fix the all_readme.md markdown (#2178) * fix the all_readme.md markdown * fix double final break lines --------- Co-authored-by: Bram --- tools/readme_generator/templates/ALL_README.md.j2 | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/tools/readme_generator/templates/ALL_README.md.j2 b/tools/readme_generator/templates/ALL_README.md.j2 index 5ce5e9419f..2bdcfe2d85 100644 --- a/tools/readme_generator/templates/ALL_README.md.j2 +++ b/tools/readme_generator/templates/ALL_README.md.j2 @@ -1,14 +1,13 @@ # All available README files by language -[Read the README in English](README.md) - -{% for filename, translated_sentence in links_to_other_READMEs %} +- [Read the README in English](README.md) +{% for filename, translated_sentence in links_to_other_READMEs -%} - [{{ translated_sentence }}]({{ filename }}) -{% endfor %} +{% endfor -%} -{% if False %} +{% if False -%} Yes this is a hack to add the translatable string to messages.pot -{{ _("Read the README in %(language)s") }} -{% endif %} +{{- _("Read the README in %(language)s") }} +{% endif -%} From 52a3d387d08809eac560610ce7135ec96e941b06 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 01:10:37 +0100 Subject: [PATCH 003/292] update messages.pot --- tools/readme_generator/messages.pot | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/readme_generator/messages.pot b/tools/readme_generator/messages.pot index b41a274724..ffad45574b 100644 --- a/tools/readme_generator/messages.pot +++ b/tools/readme_generator/messages.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-23 03:25+0100\n" +"POT-Creation-Date: 2024-03-25 01:09+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.14.0\n" -#: templates/ALL_README.md.j2:12 +#: templates/ALL_README.md.j2:11 #, python-format msgid "Read the README in %(language)s" msgstr "" @@ -120,11 +120,11 @@ msgid "Overview" msgstr "" #: templates/README.md.j2:35 -msgid "**Shipped version:**" +msgid "Shipped version:" msgstr "" #: templates/README.md.j2:39 -msgid "**Demo:**" +msgid "Demo:" msgstr "" #: templates/README.md.j2:43 @@ -184,7 +184,7 @@ msgid "" msgstr "" #: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that." +msgid "To try the testing branch, please proceed like that:" msgstr "" #: templates/README.md.j2:86 From 8664ef21a06c2f04b8a1af0a13efb2ad30a49373 Mon Sep 17 00:00:00 2001 From: Laurent Peuch Date: Mon, 25 Mar 2024 01:12:41 +0100 Subject: [PATCH 004/292] chore(list_builder): add a requirements.txt --- tools/requirements.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 tools/requirements.txt diff --git a/tools/requirements.txt b/tools/requirements.txt new file mode 100644 index 0000000000..8716473c3d --- /dev/null +++ b/tools/requirements.txt @@ -0,0 +1,2 @@ +tqdm +GitPython From 71aef2ec0c0e727592cb4f39f2f9a1bbf47591e4 Mon Sep 17 00:00:00 2001 From: Laurent Peuch Date: Mon, 25 Mar 2024 01:18:58 +0100 Subject: [PATCH 005/292] ci: add auto_messages_pot.yml --- .github/workflows/auto_messages_pot.yml | 43 +++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 .github/workflows/auto_messages_pot.yml diff --git a/.github/workflows/auto_messages_pot.yml b/.github/workflows/auto_messages_pot.yml new file mode 100644 index 0000000000..8beb44b273 --- /dev/null +++ b/.github/workflows/auto_messages_pot.yml @@ -0,0 +1,43 @@ +name: Auto updates messages.pot for readme_generator +on: + push: + branches: + - master + +jobs: + pybabel: + name: Auto updates messages.pot for readme_generator + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Set up Python 3.10 + uses: actions/setup-python@v5 + with: + python-version: 3.10 + - name: Install dependencies + run: | + cd tools/readme_generator/ + pip install -r requirements.txt + - name: Try to generate messages.pot + run: | + cd tools/readme_generator/ + pip install -r requirements.txt + pybabel extract --ignore-dirs venv -F babel.cfg -o messages.pot . + - shell: pwsh + id: check_files_changed + run: | + # Diff HEAD with the previous commit + $diff = git diff + $HasDiff = $diff.Length -gt 0 + Write-Host "::set-output name=files_changed::$HasDiff" + - name: Create Pull Request + if: steps.check_files_changed.outputs.files_changed == 'true' + uses: peter-evans/create-pull-request@v6 + with: + token: ${{ secrets.GITHUB_TOKEN }} + title: "Update messages.pot for readme_generator" + commit-message: "chore(readme_generator): update messages.pot" + body: | + This pull request has been generated using the command `pybabel extract --ignore-dirs venv -F babel.cfg -o messages.pot .` + base: ${{ github.head_ref }} # Creates pull request onto pull request or commit branch + branch: actions/auto_messages_pot From f7301bcd81f5d78b4c42a430751c6704a4d14e99 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 00:07:51 +0000 Subject: [PATCH 006/292] Translated readme-generator using Weblate (French) Currently translated at 100.0% (37 of 37 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/fr/ --- .../translations/fr/LC_MESSAGES/messages.mo | Bin 5733 -> 5732 bytes .../translations/fr/LC_MESSAGES/messages.po | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/readme_generator/translations/fr/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/fr/LC_MESSAGES/messages.mo index 1ca494f77c08cf2435667d9bca9479a1a24f3f11..1ae0c7570df797d8b9c461c64f401dc8d168ea99 100644 GIT binary patch delta 223 zcmXZWzY76z7{~FCZ`pJ?cVy6QI>QZ8`~yl^B;^md`~x;jSd12fMVVz$r!4#d27|xA z;&#ep^1f0}&#ULD=SLhogTpa3?MZrNr2w0@l*i%U1y-pyxWgOzILb*S++qdKXkm;s z{9qS-NAhrtWn3en3n`hqJ8FrY`qG$V#+BZ<#0JjzCOLS*K0dIB^@79=bo0+gGIZ=;1d|s ztifdQI}ncha0mD2?mzt9J~tgndX*#}yOvbJ@!uJ?saLqc3pR05mg=}h507Z#6Fd09 zA$qptVvG%3BB2v0o4eZTiJkh=NU-QgZ=7R*3EyM~4;bPNYZz1|ZfJl8MrmxE&3sG! L#ny4t$TA8)@(&*_ diff --git a/tools/readme_generator/translations/fr/LC_MESSAGES/messages.po b/tools/readme_generator/translations/fr/LC_MESSAGES/messages.po index d0f407e408..f17ba0843c 100644 --- a/tools/readme_generator/translations/fr/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/fr/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-23 03:25+0100\n" -"PO-Revision-Date: 2024-03-24 19:03+0000\n" +"PO-Revision-Date: 2024-03-25 00:10+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: French \n" @@ -43,7 +43,7 @@ msgstr "" msgid "Edit the `manifest.toml` with app specific info" msgstr "" "Éditez le `manifest.toml` avec les informations spécifiques à cette " -"application." +"application" #: templates/README.md.j2:6 msgid "" From 6399f1033e3282fdb467cfd7ec7260627bfb7a35 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 00:04:12 +0000 Subject: [PATCH 007/292] Translated readme-generator using Weblate (Catalan) Currently translated at 86.4% (32 of 37 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/ca/ --- .../translations/ca/LC_MESSAGES/messages.mo | Bin 3884 -> 4437 bytes .../translations/ca/LC_MESSAGES/messages.po | 16 +++++----------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/tools/readme_generator/translations/ca/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/ca/LC_MESSAGES/messages.mo index f54ec2cd711ef45223d494a899a02acf61482288..9550fd2b69142748f3ac989fe35ef0bc3450f204 100644 GIT binary patch delta 1272 zcma*lJ7^R^9LMo7#%FvR->)%>i6P!KK|xUQ5h8*hLIjnV%$<|m=-%#nJ4Z~K1VjYU zLV^|=5fMaCv4~ixpd^)zPi%vBT4`lrA%6dRCI%~q?0t52Co}W^%|2NBv95n?QT0_t zThFzcYvUB9ve;C`5A6%eyRSG4Yo;nyi%W10HsU?phV$?fZoqH23Kv&b=F4Iu{SI7+ z7jcnN{c4DtIvza2Yxo}5pqs`bcmZW&H*qFD#U>oZgZLfS;m+x79#7z0Jclyx6|BL> zIDjwl1MZ%oR5R615K&j*f&d1kygH*;)lIWXVNn!{kiMuEpeTHxF9m=@d ztSa-4;&S|qt@snS;2z?uWqlRP4W7qlypFf<4K`v#IWpmOlxUx08Z~aE{|#Gk6Av{8 z*npRjh}9Ep!dEEk{J;UMp}KyF;u1G|uya9W;2mtI{}!dP3 zG3eAij7%#?Vw-neF0WnK6%8MpnoO4xozdn@nc)}*E^qQ~bXc352@`#if=V`Lg20rv z6ddJx7dYQ%v<-AF@(esaa=&f-;rKihAMz|PBhT6!#tXZlXn02gGl1O*>PZFk>(}78=FBL0gTFGSeA)y$VC8+-!L1uXQ?AmF+ E0rG1EWdHyG delta 725 zcmYk)yDx)L7{~EPZ*En$x>K|UghWILV+B*$ToPhnF}8z*rQOTaut;1YAw=9dm?SJV zlNjClC)kDW@2!X@Ip_1{eczn(JkL4L;j>WkwaT+)L@T425iBt4LcfcNxWsn6!eV^F zAikg=)xna@)gQf zDm#71)FYNMcsY(Bd?~ zX)oP#x\n" "Language-Team: Catalan \n" @@ -30,25 +30,19 @@ msgid "Packaging an app, starting from this example" msgstr "Empaquetar una aplicació, comença amb aquest exemple" #: templates/README.md.j2:4 -#, fuzzy -#| msgid "" -#| "Copy this app before working on it, using the ['Use this template']" -#| "(https://github.com/YunoHost/example_ynh/generate) button on the Github " -#| "repo." msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " "the Github repo." msgstr "" "Copia aquesta aplicació abans de treballar-hi, utilitza el botó [«Utilitza " -"aquesta plantilla»](https://github.com/YunoHost/example_ynh/generate) al " -"repositori de Github." +"aquesta plantilla»](YunoHost/example_ynh/" +"generatenew?template_name=example_ynh&template_owner=YunoHost) al repositori " +"de Github." #: templates/README.md.j2:5 -#, fuzzy -#| msgid "Edit the `manifest.json` with app specific info." msgid "Edit the `manifest.toml` with app specific info" -msgstr "Edita el `manifest.json`amb la informació específica de l'aplicació." +msgstr "Edita el `manifest.toml`amb la informació específica de l'aplicació." #: templates/README.md.j2:6 #, fuzzy From 49d79ead99892a22b5287ee86a000e411a441761 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 00:06:39 +0000 Subject: [PATCH 008/292] Translated readme-generator using Weblate (Basque) Currently translated at 27.0% (10 of 37 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/eu/ --- .../translations/eu/LC_MESSAGES/messages.mo | Bin 1287 -> 1295 bytes .../translations/eu/LC_MESSAGES/messages.po | 8 +++----- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/tools/readme_generator/translations/eu/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/eu/LC_MESSAGES/messages.mo index 962a7ed8d419f1b9daa2608e8a8dd93f6c710629..b45019dc0d06d9cc859559eb3f7127fd37e1cdf3 100644 GIT binary patch delta 483 zcmYMv&r8B!7zgmzW|`}U8AVbQFBYW8Ye;z!jV7BZI2AR@y0qv;1l!7OT|IWR*r`9D zx&{3Qo+IkoKhUlIfjZRJGTfD>|c z+iA@_vpEgbY~9EjrWF>;{M2Y!Of~C`W0tn-CaW3=Dwc|@%+DKU!_b+mSv)~&id1H5 zk;xLx787bNvR^DHVqP;XR&8mz+0-nfm7tlOe4Z90RiQ~mm2&wlNtVk>rLu`zb?1KQ zU>w$Mt&T`;J24?H>{K&OLs)jaLU?|UZF8Ns`dPdD2&tULqwCR_b1RhkKl3T9Izji_ E4?c5QvH$=8 delta 490 zcmZwDy-OoO7zXf-yVZ&j!jhBZLL@?yOn0sY}8w{6bc^8z^7#%3y0Xu z&Qq47woTX<$6n5`EMu5RU2!C%cjo0tHs|D4N*RV`)_4@tR>=LR&*LC;$PeC@p*T!L zFCeSK!V3L0?|{p`)d>y?Sm1jJ_i(aE)YZsW)z=r)gr3)vxT~uA?B@;Pix5}CBYrw$ cowr4w*j6@gF?FLijN!*9-Iz~VYSDOl1?UWLu>b%7 diff --git a/tools/readme_generator/translations/eu/LC_MESSAGES/messages.po b/tools/readme_generator/translations/eu/LC_MESSAGES/messages.po index 31e8db2641..bf48a6fa11 100644 --- a/tools/readme_generator/translations/eu/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/eu/LC_MESSAGES/messages.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-23 03:25+0100\n" -"PO-Revision-Date: 2024-03-23 13:39+0000\n" -"Last-Translator: xabirequejo \n" +"PO-Revision-Date: 2024-03-25 00:10+0000\n" +"Last-Translator: OniriCorpe \n" "Language-Team: Basque \n" "Language: eu\n" @@ -38,10 +38,8 @@ msgid "" msgstr "" #: templates/README.md.j2:5 -#, fuzzy -#| msgid "Edit the `manifest.json` with app specific info." msgid "Edit the `manifest.toml` with app specific info" -msgstr "Editatu `manifest.json` aplikazioaren informazio zehatzarekin." +msgstr "Editatu `manifest.toml` aplikazioaren informazio zehatzarekin" #: templates/README.md.j2:6 msgid "" From 09656690e981ab4b6f62281a465258d7c74db222 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 00:05:00 +0000 Subject: [PATCH 009/292] Translated readme-generator using Weblate (Galician) Currently translated at 86.4% (32 of 37 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/gl/ --- .../translations/gl/LC_MESSAGES/messages.mo | Bin 3788 -> 4320 bytes .../translations/gl/LC_MESSAGES/messages.po | 17 ++++++----------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/tools/readme_generator/translations/gl/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/gl/LC_MESSAGES/messages.mo index 0386fc0c7572375466eea3334fa090c50b57113e..d9d713e424fdc1542d3b44d7704afe9bab034bce 100644 GIT binary patch delta 1233 zcma*lOGs2v9LMpKPL`TIG<#d8m#<`|MI}Tk64FzMC?Uf1%*+|**33P_%oP;`qZUEY zB8FNeZGzlL3tdzjgP~n7YF*f_R<&*segAh#!c_;apL^%td;aJ5KlgRh;_j)>^^yCE zv72KD$G#Ox#jvA-e~hmv_r75@)>bOD5gTz0w&M(T;#yq9z4#rsV?(4oUkuy19>NWH z8|#&tQV%)V!w*mK0e-+H^j1;?Z=oz~8du{B?7$NC;}6`0-Bm0euV5YCM49&<*5W)~ z$CvmKdsiuSi2ACLS*74<9KbY6k_B9cZ*iKgd`6jYvZlO{N4Sma8I<=+_zJ(^W_&_b zjSILH7x5VW#CGhYeT~#taZaSA2khx^G~ zOG6g1bLpzQjS@hZ?d+_jvHRELlb_w zdFhU88}n_x>(Z$2PP#(SrsJbQKvn*v+=*~Powqp`E&i%F7wb!UL3n34YkV(d3qdq+ z+03vWdbxm`gUe?V=|{Jn8+D5z zyhA4z(TA_-#xJbHABVvn?g=e^hH(112rN{^xRe$@%ai0BUfrUwUIq+!(-HjbJ&b87{m{3MQ6?5+{6nkV3>Gf_=!ObG3^RYU`8i6XQ7kdqYY`y zda#}sAz1N}p7kHnESH`ur(u;2psDD@TJ>C-mL{i7Y0(#*se4$U9+|+bH)?M&$)MuU$_`QDgXcg diff --git a/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po b/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po index 4f264a3a36..c2c4db3157 100644 --- a/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-23 03:25+0100\n" -"PO-Revision-Date: 2024-03-24 19:10+0000\n" +"PO-Revision-Date: 2024-03-25 00:10+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: Galician \n" @@ -30,24 +30,19 @@ msgid "Packaging an app, starting from this example" msgstr "A empaquetar unha app, mira este exemplo" #: templates/README.md.j2:4 -#, fuzzy -#| msgid "" -#| "Copy this app before working on it, using the ['Use this template']" -#| "(https://github.com/YunoHost/example_ynh/generate) button on the Github " -#| "repo." msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " "the Github repo." msgstr "" -"Copia esta app antes de traballar nela, usando o botón ['Usa este modelo']" -"(https://github.com/YunoHost/example_ynh/generate) no repo en Github." +"Copia esta app antes de traballar nela, usando o botón ['Usa este " +"modelo'](https://github.com/YunoHost/example_ynh/" +"generatenew?template_name=example_ynh&template_owner=YunoHost) no repo en " +"Github." #: templates/README.md.j2:5 -#, fuzzy -#| msgid "Edit the `manifest.json` with app specific info." msgid "Edit the `manifest.toml` with app specific info" -msgstr "Edita o `manifest.json` con información específica da app." +msgstr "Edita o `manifest.toml` con información específica da app." #: templates/README.md.j2:6 #, fuzzy From 2aa56c3ed5be184640d391368a85b614f50c1341 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 00:05:38 +0000 Subject: [PATCH 010/292] Translated readme-generator using Weblate (Polish) Currently translated at 86.4% (32 of 37 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/pl/ --- .../translations/pl/LC_MESSAGES/messages.mo | Bin 3858 -> 4407 bytes .../translations/pl/LC_MESSAGES/messages.po | 17 +++++------------ 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/tools/readme_generator/translations/pl/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/pl/LC_MESSAGES/messages.mo index dd8a8eeeb60c1a025c53b6f44507e354c3bdbdda..21a7de7352ec773c10f98c74fa991f3e01405801 100644 GIT binary patch delta 1243 zcma*lUx-aX9Ki9h*56(Kmi7P7Sh8%}y^11*g#0P_7n0aL_wMYyb9e8V(>>>O-Se_a zQr=jU@WP816iP`bOP)O7N!h&Ni9C3a@co^eO`c45&Sz%M+?o0P=A2u2zinW+rSXEI zET+zj`F7@vs_bjD>%EyyN zL)H~nnHGumPm$Emp>k_VQ`O+jhJ6E@T~O0e(T3U!0-ZCxu3~i6Rr;)7(9YL3>eO*4 zov3K^k@f?jsZWngIq3Hy(|&Y$F^Yn4T{c^=Q8CVC@~)iqO?Bg+8C||tHtWrCk3X2M znqOQt^2V*G`lhn}aO}J7E{s;_TpUI0%1^f2mM*9(CUBX-pACDmTYGGjzUeM|zU?(( zl!;uqzgt(CnMM!>CU1LfUR%G{-Q6|%*4V=SJ{Q=yq@$rrOzF3MUcN*#VTH1;xFm4- z#J46)wD0w3-wvJ9LB-26C4Tm>R`p6lr}B&>wY&}cV#xu+EN2Q%hl!W#cYaJ3&Na$o-X82 zD^F9lR(`{!33I54zLoC3QQz~}i_asdm5-uU9xu6$VeWTvAMY{5{<1*2+Oi$g4bG7@ zC5MCffFtOj-#s{qTIm}4FpWXHMD4^QuHpyY;ye$BF+`R6-6GCn3KN>)CljsQ!iBf7_\n" "Language-Team: Polish \n" @@ -31,25 +31,18 @@ msgid "Packaging an app, starting from this example" msgstr "Pakowanie aplikacji, zaczynając od tego przykładu" #: templates/README.md.j2:4 -#, fuzzy -#| msgid "" -#| "Copy this app before working on it, using the ['Use this template']" -#| "(https://github.com/YunoHost/example_ynh/generate) button on the Github " -#| "repo." msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " "the Github repo." msgstr "" -"Skopiuj tę aplikację zanim rozpoczniesz nad nią pracę używając przycisku " -"['Użyj tego szablonu'](https://github.com/YunoHost/example_ynh/generate) na " -"GitHubie." +"Skopiuj tę aplikację zanim rozpoczniesz nad nią pracę używając przycisku [" +"'Użyj tego szablonu'](https://github.com/YunoHost/example_ynh/" +"generatenew?template_name=example_ynh&template_owner=YunoHost) na GitHubie." #: templates/README.md.j2:5 -#, fuzzy -#| msgid "Edit the `manifest.json` with app specific info." msgid "Edit the `manifest.toml` with app specific info" -msgstr "Edytuj `manifest.json` z informacjami o danej aplikacji." +msgstr "Edytuj `manifest.toml` z informacjami o danej aplikacji." #: templates/README.md.j2:6 #, fuzzy From 3acc6791f34528fcbbdcd0cadea1a4de46f9707f Mon Sep 17 00:00:00 2001 From: Weblate Date: Mon, 25 Mar 2024 01:10:46 +0100 Subject: [PATCH 011/292] Update translation files for readme-generator Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/ --- .../translations/ar/LC_MESSAGES/messages.po | 10 +++---- .../bn_BD/LC_MESSAGES/messages.po | 10 +++---- .../translations/br/LC_MESSAGES/messages.po | 10 +++---- .../translations/ca/LC_MESSAGES/messages.po | 21 ++++++++----- .../translations/ckb/LC_MESSAGES/messages.po | 10 +++---- .../translations/cs/LC_MESSAGES/messages.po | 10 +++---- .../translations/da/LC_MESSAGES/messages.po | 10 +++---- .../translations/de/LC_MESSAGES/messages.po | 29 ++++++++++-------- .../translations/el/LC_MESSAGES/messages.po | 10 +++---- .../translations/eo/LC_MESSAGES/messages.po | 10 +++---- .../translations/es/LC_MESSAGES/messages.po | 10 +++---- .../translations/eu/LC_MESSAGES/messages.po | 10 +++---- .../translations/fa/LC_MESSAGES/messages.po | 10 +++---- .../translations/fi/LC_MESSAGES/messages.po | 10 +++---- .../translations/fr/LC_MESSAGES/messages.po | 30 +++++++++++-------- .../translations/gl/LC_MESSAGES/messages.po | 23 ++++++++------ .../translations/he/LC_MESSAGES/messages.po | 10 +++---- .../translations/hi/LC_MESSAGES/messages.po | 10 +++---- .../translations/hu/LC_MESSAGES/messages.po | 10 +++---- .../translations/id/LC_MESSAGES/messages.po | 10 +++---- .../translations/it/LC_MESSAGES/messages.po | 10 +++---- .../translations/ja/LC_MESSAGES/messages.po | 10 +++---- .../translations/kab/LC_MESSAGES/messages.po | 10 +++---- .../translations/ko/LC_MESSAGES/messages.po | 10 +++---- .../translations/lt/LC_MESSAGES/messages.po | 10 +++---- .../translations/mk/LC_MESSAGES/messages.po | 10 +++---- .../nb_NO/LC_MESSAGES/messages.po | 10 +++---- .../translations/ne/LC_MESSAGES/messages.po | 10 +++---- .../translations/nl/LC_MESSAGES/messages.po | 27 +++++++++-------- .../translations/oc/LC_MESSAGES/messages.po | 10 +++---- .../translations/pl/LC_MESSAGES/messages.po | 22 +++++++++----- .../translations/pt/LC_MESSAGES/messages.po | 10 +++---- .../pt_BR/LC_MESSAGES/messages.po | 10 +++---- .../translations/ru/LC_MESSAGES/messages.po | 10 +++---- .../translations/sk/LC_MESSAGES/messages.po | 10 +++---- .../translations/sl/LC_MESSAGES/messages.po | 10 +++---- .../translations/sv/LC_MESSAGES/messages.po | 10 +++---- .../translations/te/LC_MESSAGES/messages.po | 10 +++---- .../translations/tr/LC_MESSAGES/messages.po | 10 +++---- .../translations/uk/LC_MESSAGES/messages.po | 10 +++---- .../zh_Hans/LC_MESSAGES/messages.po | 23 +++++++------- 41 files changed, 273 insertions(+), 242 deletions(-) diff --git a/tools/readme_generator/translations/ar/LC_MESSAGES/messages.po b/tools/readme_generator/translations/ar/LC_MESSAGES/messages.po index e9d1483c35..0617c0da41 100644 --- a/tools/readme_generator/translations/ar/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/ar/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-23 03:25+0100\n" +"POT-Creation-Date: 2024-03-25 01:09+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.14.0\n" -#: templates/ALL_README.md.j2:12 +#: templates/ALL_README.md.j2:11 #, python-format msgid "Read the README in %(language)s" msgstr "" @@ -120,11 +120,11 @@ msgid "Overview" msgstr "" #: templates/README.md.j2:35 -msgid "**Shipped version:**" +msgid "Shipped version:" msgstr "" #: templates/README.md.j2:39 -msgid "**Demo:**" +msgid "Demo:" msgstr "" #: templates/README.md.j2:43 @@ -183,7 +183,7 @@ msgid "" msgstr "" #: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that." +msgid "To try the testing branch, please proceed like that:" msgstr "" #: templates/README.md.j2:86 diff --git a/tools/readme_generator/translations/bn_BD/LC_MESSAGES/messages.po b/tools/readme_generator/translations/bn_BD/LC_MESSAGES/messages.po index 09258d120b..d2bc1dba65 100644 --- a/tools/readme_generator/translations/bn_BD/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/bn_BD/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-23 03:25+0100\n" +"POT-Creation-Date: 2024-03-25 01:09+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.14.0\n" -#: templates/ALL_README.md.j2:12 +#: templates/ALL_README.md.j2:11 #, python-format msgid "Read the README in %(language)s" msgstr "" @@ -120,11 +120,11 @@ msgid "Overview" msgstr "" #: templates/README.md.j2:35 -msgid "**Shipped version:**" +msgid "Shipped version:" msgstr "" #: templates/README.md.j2:39 -msgid "**Demo:**" +msgid "Demo:" msgstr "" #: templates/README.md.j2:43 @@ -183,7 +183,7 @@ msgid "" msgstr "" #: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that." +msgid "To try the testing branch, please proceed like that:" msgstr "" #: templates/README.md.j2:86 diff --git a/tools/readme_generator/translations/br/LC_MESSAGES/messages.po b/tools/readme_generator/translations/br/LC_MESSAGES/messages.po index 1c01af1c7f..f0d2e58894 100644 --- a/tools/readme_generator/translations/br/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/br/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-23 03:25+0100\n" +"POT-Creation-Date: 2024-03-25 01:09+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.14.0\n" -#: templates/ALL_README.md.j2:12 +#: templates/ALL_README.md.j2:11 #, python-format msgid "Read the README in %(language)s" msgstr "" @@ -120,11 +120,11 @@ msgid "Overview" msgstr "" #: templates/README.md.j2:35 -msgid "**Shipped version:**" +msgid "Shipped version:" msgstr "" #: templates/README.md.j2:39 -msgid "**Demo:**" +msgid "Demo:" msgstr "" #: templates/README.md.j2:43 @@ -183,7 +183,7 @@ msgid "" msgstr "" #: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that." +msgid "To try the testing branch, please proceed like that:" msgstr "" #: templates/README.md.j2:86 diff --git a/tools/readme_generator/translations/ca/LC_MESSAGES/messages.po b/tools/readme_generator/translations/ca/LC_MESSAGES/messages.po index 6de7219ec2..ec226b40f8 100644 --- a/tools/readme_generator/translations/ca/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/ca/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-23 03:25+0100\n" +"POT-Creation-Date: 2024-03-25 01:09+0100\n" "PO-Revision-Date: 2024-03-25 00:10+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: Catalan \n" "Language-Team: Czech \n" "Language-Team: German \n" "Language-Team: Basque \n" "Language-Team: French \n" "Language-Team: Galician \n" "Language-Team: Dutch \n" "Language-Team: Polish \n" "Language-Team: Chinese (Simplified) Date: Mon, 25 Mar 2024 00:11:36 +0000 Subject: [PATCH 012/292] Translated readme-generator using Weblate (French) Currently translated at 100.0% (37 of 37 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/fr/ --- .../translations/fr/LC_MESSAGES/messages.mo | Bin 5732 -> 5724 bytes .../translations/fr/LC_MESSAGES/messages.po | 14 ++++---------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/tools/readme_generator/translations/fr/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/fr/LC_MESSAGES/messages.mo index 1ae0c7570df797d8b9c461c64f401dc8d168ea99..590c79e6488c62842bbf209eac45f8698d479014 100644 GIT binary patch delta 900 zcmY+?&r4KM6u|NG-Wzj%t4o+=?8fr+Lp+Sit-h_*& zmCb~-$)#xv2j+paX%)4qMOwHp48oRy{Re%|RfH}x?{nXed+xpGo-Ox>JL`H;OQh(C z>=%)z0g**~iFJ6HOC$E<2^_}5IE~#{#tgp00=DcEIfpaYgFYU>O>Dt!JdRGi$Q&l? z#gk4t?|IOQ8+Zi&Vh|g-xY&k6IDlPP#st=|0oPFj|HcRgLn6%>!xDDm8ZO`kd=wTl zZ#C?RqVne@`iSF5Z0TdLX6h22##^Wx zdXBo0H+Ubv;VfS9SmrRDuc#j+$d?Abw(DK&<^C});WD1YG4iQ_OLz)jqi*06_ThKD ziovMJQOuwo*+b+f^IUXXu11HLva$Q(4?f}Eig64$gBNj%Rq4c49L05P$Fm1_&UO$r zV;LktrheK`v!WAsR$kaqkKkrG$50!q+-ryE5p=H+=)b1XJNQ$qrdqWSv>G+v6qace zt|a+uDzuSRbDnYJ$a+l9=nK0Nip*?54^|t+Bh-OON2D_3B>l4U*>WcGDgS2Os?$7j zFIOmJ@5HCG4~n_`WXg9#&nzqDuY|AL{+WheJ2dcNX(IotR89FenreY)dgsG7Kd9LMqB?6zvxR7WD$Bn~)98&Pc{hzOh5ly=jNmy1j}h!bVw z<&9uCv65x-yt=dlfwOC>JlxcS(PJ$Mc`;RJ5Q57>-zXaoPnW!TQ{MsWvz!Yb~? zJIUI7lgU6Dpy4wOwnLv@EqD-PcpRS*kzTZcX9)|xD#>iN&(|<(0({VyljHvf_Jf-_i?P?6z1>-@w9=T<2HPa zwvivW2j}qw=F(CYZ=xO9Q{+Cx$ZWM!S$&jQ>(CC?vXA75vWAc;Rqly*W\n" "Language-Team: French \n" @@ -148,16 +148,12 @@ msgid "Overview" msgstr "Vue d'ensemble" #: templates/README.md.j2:35 -#, fuzzy -#| msgid "**Shipped version:**" msgid "Shipped version:" -msgstr "**Version incluse :**" +msgstr "Version incluse :" #: templates/README.md.j2:39 -#, fuzzy -#| msgid "**Demo:**" msgid "Demo:" -msgstr "**Démo:**" +msgstr "Démo :" #: templates/README.md.j2:43 msgid "Screenshots" @@ -217,10 +213,8 @@ msgstr "" "(%(testing_branch_url)s)" #: templates/README.md.j2:82 -#, fuzzy -#| msgid "To try the testing branch, please proceed like that." msgid "To try the testing branch, please proceed like that:" -msgstr "Pour essayer la branche testing, procédez comme suit." +msgstr "Pour essayer la branche testing, procédez comme suit :" #: templates/README.md.j2:86 msgid "or" From 5d4ce6b652b532a20ff1be7eb586672804f17fb5 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 00:12:35 +0000 Subject: [PATCH 013/292] Translated readme-generator using Weblate (Catalan) Currently translated at 86.4% (32 of 37 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/ca/ --- .../translations/ca/LC_MESSAGES/messages.mo | Bin 4437 -> 4421 bytes .../translations/ca/LC_MESSAGES/messages.po | 14 ++++---------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/tools/readme_generator/translations/ca/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/ca/LC_MESSAGES/messages.mo index 9550fd2b69142748f3ac989fe35ef0bc3450f204..0bf5f71681e822fee41313f60e81435687ebaf63 100644 GIT binary patch delta 790 zcmX}q&r8#B9LMqZ_H8=1%vEM9&E_-+S$dJ69Y-b+r670`?8}*rCh!pwVHA&~A1JjSdlAI`k*lrRQri-|*q_`F_5i@8`$+{oPG&C10f6qh=O$ z%&Hj25PrmC_!$Rr4|{PRN3rLK*)U$i})y@i)sI-^D7vezL%e$ z&t(&ja|?_4Vj=C<+g1XBw0}K39rQj#euu8+H1~D%ffJk2oKJotU${G0T%1k&k*=4_ I^(ry{AITk9NdN!< delta 808 zcmY+?K}Zx)7{KvwXLVb5Z8dc*t+s88kjJ)r5d{x{%SIq{6190+Vz})kMRONs~1c)#0$2VBPkN6GyPlJNAAbq;NeC#ah53S&H z+(Cm5(dd3FE*(wndkj*IJ&X_VCSGGQjg#1g^QbA_z$|W~9{39@7$-c<#2glIwE5_} z7dXuL3u<6F>P1)FBApN&0th10^pO3ap6q$jwC<^s(a|QYj5TZe1KPMAK|9M^vqM#a z`=qtz3Iqps;y`TfyB>%TQa`fb%u+f!qc&h%Yf\n" "Language-Team: Catalan \n" @@ -143,16 +143,12 @@ msgid "Overview" msgstr "Visió general" #: templates/README.md.j2:35 -#, fuzzy -#| msgid "**Shipped version:**" msgid "Shipped version:" -msgstr "**Versió inclosa:**" +msgstr "Versió inclosa:" #: templates/README.md.j2:39 -#, fuzzy -#| msgid "**Demo:**" msgid "Demo:" -msgstr "**Demo:**" +msgstr "Demo:" #: templates/README.md.j2:43 msgid "Screenshots" @@ -210,10 +206,8 @@ msgid "" msgstr "Envieu les pull request a la [branca testing](%(testing_branch_url)s)" #: templates/README.md.j2:82 -#, fuzzy -#| msgid "To try the testing branch, please proceed like that." msgid "To try the testing branch, please proceed like that:" -msgstr "Per provar la branca testing, procedir com descrit a continuació." +msgstr "Per provar la branca testing, procedir com descrit a continuació:" #: templates/README.md.j2:86 msgid "or" From 677befdaa4f727223d7b447c65cf9a31da6959bf Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 00:11:52 +0000 Subject: [PATCH 014/292] Translated readme-generator using Weblate (German) Currently translated at 100.0% (37 of 37 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/de/ --- .../translations/de/LC_MESSAGES/messages.mo | Bin 5684 -> 5668 bytes .../translations/de/LC_MESSAGES/messages.po | 16 +++++----------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/tools/readme_generator/translations/de/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/de/LC_MESSAGES/messages.mo index 368a4ab2e1b7db0129f899e77c1d6d61203b4a9c..c821889caef252c5b5befca7c755ac6d8012afa6 100644 GIT binary patch delta 896 zcmY+?Pe>F|9KiA4&g`bHshjJc{Fke%OUR@}b!ag#c94R+?2;&6ooc~y*)0zq97Qm? zWbQ`Mp_^2637n7!Bf3{m9U=np;$1JE{r(;q^x)0s&G6ov-}}AaJ7?W_?D+AJNXZsC zE+P-YBCqiYM({F^ddy%Fv)F-i*pFqL#P?Xh#$zHwxQqiB;0fHuM%=?*w5vp(Vya4f z>0VYv7U#6tvH4*c4Ha)a0Bb`7wX2lSc}y)A~9^jMeN6)_!2MRd{oST z-$s3raXx(IgPydH)eU$aEzIC^GBk?%gB{Xzk$0QF>WMC~=r>+Rk{~G-x1xh*&_z8^ z5r=RU=kXJ+VA?0l5eA=e5H0eh8=pfB$VE+M4%cx3_2fw==~Z0C9-KzbAS*bGYna1t zn84n+$Z5=A6VCj7&o40`7eoWNJ8>vWL@8pAMlBMCCu z&`gkVQ!8DSH7oA3shpx~$l8eRUu$QiMR3&E=)b1-(MG3OO|@zvXbQA4DJ;`8f)rgN z(xyeAQ6}hI*?_qW#wG_8nK_bPtTu|r{#x0zEJR{ z6LVg%l%Ktu4xE~Yp-?*5jNY(~=CF5O6%E`037-rfd-88206E5I> zycu8KZ!zwR4Ab$M4!xnntY$ofCZ5I_B60?G;U&VN5o=(#4ouzDA#b0RQ$%M#0yn>qYLUpBM4mpd|a2mhiZyaURAm+%+R(ysdxQIHwrG5E; z7Djo`AOR6F7>?J&XpQWwJ~R`)Zn?g($y(EEFnO(M{8pP*o#sPhPLYMl)&kI&>aMGe z0+YRb^<>(Jk`U4G>Vz>ZRCX9Atul&4w(-@(YW0PQMM4#pf7NJh@5_5-D>pgro$x9X zV%vl6Rqvo}^OU_@D3#oc)-|_WDR|>_2Ia^HBRF37F%opgZW~5_un<3Mrq)k7Hd(pk hjuqUzTb^*O;r~<3rj!{t&G(`~E%BDA)w{_j{{U&}X?g$v diff --git a/tools/readme_generator/translations/de/LC_MESSAGES/messages.po b/tools/readme_generator/translations/de/LC_MESSAGES/messages.po index 55a98691fd..66f51a17c2 100644 --- a/tools/readme_generator/translations/de/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/de/LC_MESSAGES/messages.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 01:09+0100\n" -"PO-Revision-Date: 2024-03-24 15:57+0000\n" -"Last-Translator: Christian Wehrli \n" +"PO-Revision-Date: 2024-03-25 00:12+0000\n" +"Last-Translator: OniriCorpe \n" "Language-Team: German \n" "Language: de\n" @@ -147,16 +147,12 @@ msgid "Overview" msgstr "Übersicht" #: templates/README.md.j2:35 -#, fuzzy -#| msgid "**Shipped version:**" msgid "Shipped version:" -msgstr "**Ausgelieferte Version:**" +msgstr "Ausgelieferte Version:" #: templates/README.md.j2:39 -#, fuzzy -#| msgid "**Demo:**" msgid "Demo:" -msgstr "**Demo:**" +msgstr "Demo:" #: templates/README.md.j2:43 msgid "Screenshots" @@ -216,10 +212,8 @@ msgstr "" "(%(testing_branch_url)s)" #: templates/README.md.j2:82 -#, fuzzy -#| msgid "To try the testing branch, please proceed like that." msgid "To try the testing branch, please proceed like that:" -msgstr "Um den Testing-Branch auszuprobieren, gehen Sie bitte wie folgt vor." +msgstr "Um den Testing-Branch auszuprobieren, gehen Sie bitte wie folgt vor:" #: templates/README.md.j2:86 msgid "or" From 0974944816b4da3eda2204ab3d8b5da3739e5aa9 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 00:13:15 +0000 Subject: [PATCH 015/292] Translated readme-generator using Weblate (Galician) Currently translated at 78.3% (29 of 37 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/gl/ --- .../translations/gl/LC_MESSAGES/messages.mo | Bin 4320 -> 4079 bytes .../translations/gl/LC_MESSAGES/messages.po | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/readme_generator/translations/gl/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/gl/LC_MESSAGES/messages.mo index d9d713e424fdc1542d3b44d7704afe9bab034bce..219c90ce0e97a82ebabda3766ed74906d1b15bf6 100644 GIT binary patch delta 710 zcmX}qPbhi2$r@B8b0pWpL5Z#nuJN#FbJd&1~shL~=PNFRQpjzg!;>RR*;WX}xq-B*wmUCVpTE*XWOdlVrDqE2s%vpeFplC2e6rBIXCR zKf1yDLRZXw)4ud7Z;FZTS5bIzJCy2c%ur0?VhQgB4K=B1%OsiXbS#Q_Cb7+|@R_Y!-=7i0DBO zJV?=#!HZx(&_i-iFBOAFMf7ZmHwB@dJ^6pTG!Hhv-A(e|%zLvk)*Y`e4`-ezVw`I) z*MT)kO=8~RgZPE=-EZ80gKL%AhFRQ*E;exrH)9ubxPp6dB$MWwM3?7T+=>rzSgE>t z#?5|SyuqjV4fmnnM-hC0vaklO$M=}W4qnE;IEH7|v3Q)pO?V$A?_(UqHr~Y#_#LPF zl{!v+l_jebyod$#P;Y^IW?s+>OoN`^|x>r3v3~gE8wo%m&D!gocbpB+HT?=#^-O;gUb!@A#U%8=+ zk*SotybkBAsahRILCNyZIsX>F@l5Mg|8*yq=1x)nkza;ER3g188wxlB=lYIZ iF_DpPiYC%VM`qrv7NUZrE?Zruveh-~$BWZLum1yyw0!&k diff --git a/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po b/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po index 07eb0fbcf2..833ed02b58 100644 --- a/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 01:09+0100\n" -"PO-Revision-Date: 2024-03-25 00:10+0000\n" +"PO-Revision-Date: 2024-03-25 00:14+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: Galician \n" @@ -146,13 +146,13 @@ msgstr "Vista xeral" #, fuzzy #| msgid "**Shipped version:**" msgid "Shipped version:" -msgstr "**Versión proporcionada**" +msgstr "Versión proporcionada:" #: templates/README.md.j2:39 #, fuzzy #| msgid "**Demo:**" msgid "Demo:" -msgstr "**Demo**" +msgstr "Demo:" #: templates/README.md.j2:43 msgid "Screenshots" @@ -213,7 +213,7 @@ msgstr "Envía a túa colaboración á [rama testing](%(testing_branch_url)s)" #, fuzzy #| msgid "To try the testing branch, please proceed like that." msgid "To try the testing branch, please proceed like that:" -msgstr "Para probar a rama testing, procede deste xeito." +msgstr "Para probar a rama testing, procede deste xeito:" #: templates/README.md.j2:86 msgid "or" From 4de58899be4e939684d8263967030b4608dbc4c5 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 00:13:39 +0000 Subject: [PATCH 016/292] Translated readme-generator using Weblate (Dutch) Currently translated at 94.5% (35 of 37 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/nl/ --- .../translations/nl/LC_MESSAGES/messages.mo | Bin 5131 -> 5115 bytes .../translations/nl/LC_MESSAGES/messages.po | 12 ++++-------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/tools/readme_generator/translations/nl/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/nl/LC_MESSAGES/messages.mo index cd1aa93a7b65582b49734d78faf2c15447710bbf..7a6817fd5e56d2d5d899760bda167af563426603 100644 GIT binary patch delta 846 zcmXxi%S#(k6u{w=j4?i6Wahhf?#-Qh&YZQLzt7hDoUl)1+!6_i z$eRL@3@%~-Tey{D2X^2fHsJ(zVG>{AHYV^l4&Zd5NEFjpiCL_|b8N>u+{D75IMPCA zFDO!j-?14lun2!)AO68s?Bro5j$j$aQ8)aErMQa~c!Zzv6tD0_F~MM{gu`PLHLx!w zj>r=_>pbw|H{2p4ho~D5lNKN2DbxsF^VS_qA;C%+yVPMAyRp|BkKuF1vp9(xxPm`% z2vfYYA2SXeJ@Jj_J?cg|+{acX+c1k7!L2v`hXf@N^4p71)B{go7k)y`&;j<~F|wuH zAV2xR?JK^_(YdFyM0gs>boenvOQ@gZ67`P{s2R#32{F;@dOd{JMss?>A9k2D#{|=k#YQd-pMo)s!ZZay8cib$=5$&dgc~*GsWa7F6pd*S zPl`eKt|tD{bidW@Cap7{^?p9)4hNR4it)GcM8ckle6W+L`21YV%@$=WcQth43yj#h ZYN-6$svNc7*{qncAJ^G2H&|8R{|_3ESy%u7 delta 864 zcmYk)&ubGw6u|M9tZC9FrfE}uG@2j%mDV*y5WR>6YXy<&rGe5Oa?6$m+9pj!JP4}+ zixLlo;4cbZE$G3r5Rb*HARZ$0T6!t^7X;s0gE_>Rb0efEMc%q`n#KpHNtgZz}t8k@1q|4G3wQ9 zqh{zEPT)^u3u$5n?*$0sh)xyt#2e98imIp)AENsKYK8(73JDNyM$Yq)D7Pl!wRLaQ z)+*|3eAI3+dS~0C)@~<54MkTUh($ diff --git a/tools/readme_generator/translations/nl/LC_MESSAGES/messages.po b/tools/readme_generator/translations/nl/LC_MESSAGES/messages.po index f2ee52abf7..2c515756f9 100644 --- a/tools/readme_generator/translations/nl/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/nl/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 01:09+0100\n" -"PO-Revision-Date: 2024-03-24 19:07+0000\n" +"PO-Revision-Date: 2024-03-25 00:14+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: Dutch \n" @@ -145,16 +145,12 @@ msgid "Overview" msgstr "Overzicht" #: templates/README.md.j2:35 -#, fuzzy -#| msgid "**Shipped version:**" msgid "Shipped version:" -msgstr "**Geleverde versie:**" +msgstr "Geleverde versie:" #: templates/README.md.j2:39 -#, fuzzy -#| msgid "**Demo:**" msgid "Demo:" -msgstr "**Demo:**" +msgstr "Demo:" #: templates/README.md.j2:43 msgid "Screenshots" @@ -216,7 +212,7 @@ msgstr "" #: templates/README.md.j2:82 #, fuzzy msgid "To try the testing branch, please proceed like that:" -msgstr "Om de testing-branch uit te proberen, ga als volgt te werk." +msgstr "Om de testing-branch uit te proberen, ga als volgt te werk:" #: templates/README.md.j2:86 msgid "or" From ea649b630806eaf8a2ec2402c50df522c2d3687c Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 00:13:59 +0000 Subject: [PATCH 017/292] Translated readme-generator using Weblate (Polish) Currently translated at 86.4% (32 of 37 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/pl/ --- .../translations/pl/LC_MESSAGES/messages.mo | Bin 4407 -> 4391 bytes .../translations/pl/LC_MESSAGES/messages.po | 14 ++++---------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/tools/readme_generator/translations/pl/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/pl/LC_MESSAGES/messages.mo index 21a7de7352ec773c10f98c74fa991f3e01405801..e2037e5c98281750471171d2bd323e61a4750463 100644 GIT binary patch delta 793 zcmXxiJ4jnm7{Ku_xrs&-H8#E<)ut6%5fxfWo24L85EKLldXY^wRgP6rHxP?dfx>Do?)^NIBJcKcPhni3U>u?W`TqNeR zL>}=XS6zzm08e?oLSm7h+}4acsQb=PGr7fA7@~Yyi80hlEZw_;gFI(&6Aw`LnPj7t z+(13|hsC0b#UVb&6CA|=;XcI}YUUO;;U;QJipW+u#}NL(6#mCuOp#_3-%uv~K8C+LUzj$Nk^HZU6_+cLAN8%e?SIvOz0rj3z4kvdLQ!*JF+Tr3WhUd@OYEPCNAk6G KX|~&T@Y@~M)mq;G delta 811 zcmYk)J4l;R6u|M5#7CO=YHg~m&%}aq5fu~_2SLbEp*RTLY6%)Jf+lFGkmW06P;^lu zF6v?hT}1E`)DBfp3L-evPJ+SBvEtB4(Es^-;DwvtcW>_NoO@S8+o73y>xGE;JtD6$ zfO%+e4co8)FR%vxVHp-@i8Nv(8vKGUaSC7IB8G4S=kX6#U@V(Ga01J5DO)V@^6`_7 zdOX07c!gEinIrNZ`!F9)1ql50~)@bzGWg zG?Tw9K6K$T)B{{&Gv43_Y~t8;m_&{I2fo4Is8@213>6n)C9x0>aSFrOQ*=LX4nNc0 zMm=DFAI*eS%Lkco(y1xaPO|R|V(q7*r>%Ty-A7+cTMw;oM+?uxDH>2Im0NM%liqa} zmA&O1^;v0k?pZtBRDC=e4Othi(kUA4W6{*VrFzrn?uJTZ!qMS)hcRMI?_eyEhz?YL zi;j-P;v;mXeV$$W$dhr~J2{gsSA*Tpb>tL5gYVRME;E&i-CX diff --git a/tools/readme_generator/translations/pl/LC_MESSAGES/messages.po b/tools/readme_generator/translations/pl/LC_MESSAGES/messages.po index 6fe835f5bd..b90f476a33 100644 --- a/tools/readme_generator/translations/pl/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/pl/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 01:09+0100\n" -"PO-Revision-Date: 2024-03-25 00:10+0000\n" +"PO-Revision-Date: 2024-03-25 00:14+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: Polish \n" @@ -144,16 +144,12 @@ msgid "Overview" msgstr "Przegląd" #: templates/README.md.j2:35 -#, fuzzy -#| msgid "**Shipped version:**" msgid "Shipped version:" -msgstr "**Dostarczona wersja:**" +msgstr "Dostarczona wersja:" #: templates/README.md.j2:39 -#, fuzzy -#| msgid "**Demo:**" msgid "Demo:" -msgstr "**Demo:**" +msgstr "Demo:" #: templates/README.md.j2:43 msgid "Screenshots" @@ -211,10 +207,8 @@ msgid "" msgstr "Wyślij swój pull request do [gałęzi testowej](%(testing_branch_url)s)" #: templates/README.md.j2:82 -#, fuzzy -#| msgid "To try the testing branch, please proceed like that." msgid "To try the testing branch, please proceed like that:" -msgstr "Aby wypróbować gałąź testową postępuj zgodnie z instrukcjami." +msgstr "Aby wypróbować gałąź testową postępuj zgodnie z instrukcjami:" #: templates/README.md.j2:86 msgid "or" From 22340c71bd31b3548ddc1e60838f381e55ac8aaf Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 00:16:11 +0000 Subject: [PATCH 018/292] Translated readme-generator using Weblate (Catalan) Currently translated at 86.4% (32 of 37 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/ca/ --- .../translations/ca/LC_MESSAGES/messages.mo | Bin 4421 -> 4440 bytes .../translations/ca/LC_MESSAGES/messages.po | 7 ++++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/readme_generator/translations/ca/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/ca/LC_MESSAGES/messages.mo index 0bf5f71681e822fee41313f60e81435687ebaf63..f0d591f6139eccaa3b807da05e39307fd21541bc 100644 GIT binary patch delta 277 zcmXZX%?bfg7{>8;goGI%p;=IjjYLwDg{+k3Dkxlp<+y;6#aw`$WFa+KSy{LNv$18R zxCQ0UIGf*j-t+aIvvD={J;lC@$Tlt#!9_x(f-aWufI9kU;R~B+CPi{M`8z|C?BEJd zSjVv%+~;7Gyh9By*uk4BwhWl)RLeNR8rqn}4L0zI-v=L<#y8GUOVJ!Iv5!+0zx&rX eL?83m&IIQyRLK1IH#G6OAwT9m!$q%\n" "Language-Team: Catalan \n" @@ -36,8 +36,9 @@ msgid "" "the Github repo." msgstr "" "Copia aquesta aplicació abans de treballar-hi, utilitza el botó [«Utilitza " -"aquesta plantilla»](YunoHost/example_ynh/generatenew?" -"template_name=example_ynh&template_owner=YunoHost) al repositori de Github." +"aquesta plantilla»](https://github.com/YunoHost/example_ynh/" +"generatenew?template_name=example_ynh&template_owner=YunoHost) al repositori " +"de Github." #: templates/README.md.j2:5 msgid "Edit the `manifest.toml` with app specific info" From 0dc8d125274bccc83435669cc68dcad8a6107598 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 00:17:04 +0000 Subject: [PATCH 019/292] Translated readme-generator using Weblate (Catalan) Currently translated at 86.4% (32 of 37 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/ca/ --- .../translations/ca/LC_MESSAGES/messages.mo | Bin 4440 -> 4411 bytes .../translations/ca/LC_MESSAGES/messages.po | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/readme_generator/translations/ca/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/ca/LC_MESSAGES/messages.mo index f0d591f6139eccaa3b807da05e39307fd21541bc..20eb2ac02960d5174396fe6ed0923bfa6ef6653e 100644 GIT binary patch delta 277 zcmXZXzY76z7{~GF=t{WrqZ5nbEE1b2S;&w7L0S9*C&_wNnPf4sm`v(ou`(G97NbFS zv&Eb9U0&bM^L&5w+{}Zytt$3OL^ggA75f2^G>$Nd3ryf1+jzkO#)BdTHve|8NVaf= zYs_IobKkQtL!P0IJ1pT*6I+^W-V{<;qnpJZMsbRHT;lh`GlubwV|?Ki2O*I6IWz(y zI@a&@&>)X+f@{p66};Uy!Zi68HQZnx|AOL3nMs^#607)v4n}c?SzO`u!6Sz8j6>8y zG>6|\n" "Language-Team: Catalan \n" @@ -36,9 +36,9 @@ msgid "" "the Github repo." msgstr "" "Copia aquesta aplicació abans de treballar-hi, utilitza el botó [«Utilitza " -"aquesta plantilla»](https://github.com/YunoHost/example_ynh/" -"generatenew?template_name=example_ynh&template_owner=YunoHost) al repositori " -"de Github." +"aquesta plantilla»](https://github.com/" +"new?template_name=example_ynh&template_owner=YunoHost) al repositori de " +"Github." #: templates/README.md.j2:5 msgid "Edit the `manifest.toml` with app specific info" From bfb2abafe74e0e16b865f74f290bfc1180946748 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 00:17:36 +0000 Subject: [PATCH 020/292] Translated readme-generator using Weblate (Czech) Currently translated at 21.6% (8 of 37 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/cs/ --- .../translations/cs/LC_MESSAGES/messages.mo | Bin 1356 -> 1758 bytes .../translations/cs/LC_MESSAGES/messages.po | 14 +++++--------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/tools/readme_generator/translations/cs/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/cs/LC_MESSAGES/messages.mo index 56caa803fa0509339b35627e28942d2a6285ac9a..92b9dc4d68e0bca26a55c78324a179b8f33cd773 100644 GIT binary patch delta 620 zcmb7-b-Od|#-`+{XDWwgS z1&J1Pn0PTpDhir)6AMUajfOyH>wmy^?;@ciely>EX7b*=A4j)O$GfMK!|xSz3!a7> z@HqS#&UFUw!RPP<{H~zXB=`X=gI~aV;BW8^SQt`j8QcQzfIq=~#QuOMcz+xo{C79{ zeY)x`E)Njc2Is&G+ywuE&p|(;)LrlxM4d|^+#mWTI0~b_LTy!qb0K}8N9;F90vnU| zo@(YLM}|5aHLY8tE<3VPrXKs;` z=`8%qSamuy^X9e22eZ22g8P>d?l=?8KT8}x=2&K_mWZG!PTp;7v0soP+j5x33vZ86kjZ!JmsNf@iNY*W`wnLH=ipga)1Htd$jNqf xt;H_+ukoK;H$OK#x6@ujucy6w+M|%OLx;^QIZao#iLIo&*^aGz`&E2ZxBy=9v3dXi delta 216 zcmX}mu?fOJ7>42ROrnwy(O?nKQm{xmv9hss0V}}`#0k_k1K7DmT)-|uHb}S;bOOQm zEd1f&4aeQ(Y+Q$DoA_5TeN3@Kgd5yc7~zQo4RX9N!^B7zx~5zDpaYtAq&wep>dv*E x6w^0d(htp~jTXLiVqs6+&n+F&RUmO*MC|cKs{i?T3duRH`t^93sm6$bzS diff --git a/tools/readme_generator/translations/cs/LC_MESSAGES/messages.po b/tools/readme_generator/translations/cs/LC_MESSAGES/messages.po index 8a55102216..f533e46a52 100644 --- a/tools/readme_generator/translations/cs/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/cs/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 01:09+0100\n" -"PO-Revision-Date: 2024-03-24 19:10+0000\n" +"PO-Revision-Date: 2024-03-25 00:19+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: Czech \n" @@ -30,19 +30,15 @@ msgid "Packaging an app, starting from this example" msgstr "Připravuji aplikaci, začínám od tohoto příkladu" #: templates/README.md.j2:4 -#, fuzzy -#| msgid "" -#| "Copy this app before working on it, using the ['Use this template']" -#| "(https://github.com/YunoHost/example_ynh/generate) button on the Github " -#| "repo." msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " "the Github repo." msgstr "" -"Před úpravami proveďte kopii této aplikace, použijte ['Použít tuto šablonu']" -"(https://github.com/YunoHost/example_ynh/generate) odpovídající možnosti na " -"Github repositáři." +"Před úpravami proveďte kopii této aplikace, použijte ['Použít tuto " +"šablonu'](https://github.com/" +"new?template_name=example_ynh&template_owner=YunoHost) odpovídající možnosti " +"na Github repositáři." #: templates/README.md.j2:5 #, fuzzy From 4ed5511cd96f563a704e8a4ad0de69b07a45e23f Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 00:18:02 +0000 Subject: [PATCH 021/292] Translated readme-generator using Weblate (Galician) Currently translated at 78.3% (29 of 37 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/gl/ --- .../translations/gl/LC_MESSAGES/messages.mo | Bin 4079 -> 4050 bytes .../translations/gl/LC_MESSAGES/messages.po | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/readme_generator/translations/gl/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/gl/LC_MESSAGES/messages.mo index 219c90ce0e97a82ebabda3766ed74906d1b15bf6..73d82f03e7bcc9211bb1922a565e2512e66d75b1 100644 GIT binary patch delta 236 zcmXBP%?bel6vgo~O-jSC@RcSF!iWd3u_aHS*zo|KK-rMBl+CP_tfuA-Y!ul@*;si2 zYdil*-THMqi+k?Jy}LopSR5o(EUADOEaMxCXeOjCmav6m%;5^N=wkx|+~E_eI7>;sG*I3lA{_%+t? Lt!H+^hvme6)T|va delta 257 zcmXBPI}3qv6vy%N6y^3XxFyLYBnG>Tya9t%Px{AzB)ODgGZ>Yf7a(OZE190f8?Y!g zi^arO>eT0)&TxL`5`9K@No{%(k+?%7h\n" "Language-Team: Galician \n" @@ -35,9 +35,9 @@ msgid "" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " "the Github repo." msgstr "" -"Copia esta app antes de traballar nela, usando o botón ['Usa este modelo']" -"(https://github.com/YunoHost/example_ynh/generatenew?" -"template_name=example_ynh&template_owner=YunoHost) no repo en Github." +"Copia esta app antes de traballar nela, usando o botón ['Usa este " +"modelo'](https://github.com/" +"new?template_name=example_ynh&template_owner=YunoHost) no repo en Github." #: templates/README.md.j2:5 msgid "Edit the `manifest.toml` with app specific info" From 6c85fbc5690d06c928ecb02578663e234b06a3b5 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 00:18:20 +0000 Subject: [PATCH 022/292] Translated readme-generator using Weblate (Polish) Currently translated at 86.4% (32 of 37 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/pl/ --- .../translations/pl/LC_MESSAGES/messages.mo | Bin 4391 -> 4362 bytes .../translations/pl/LC_MESSAGES/messages.po | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/readme_generator/translations/pl/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/pl/LC_MESSAGES/messages.mo index e2037e5c98281750471171d2bd323e61a4750463..d34d9231af3ee8b4c5d295522f4324c7529e244b 100644 GIT binary patch delta 277 zcmXZXtq;Lb6vpuf6TJMq%n&43F@;U=GEq@Qo1!Q-(Pl$ZRLLfoK*U62g6wZFNz(+$ z_lH|P_nbZF?B2DRm~F)|I!d~GB{wd7QXE&9#1lsGhDCf~2D5%CjE%n?%ux?{&_NfIIK>NGAUoP(0>5#H zf4IWosdSB%*kON!Rr(qFAGJt~D1`y!-hD(hzdCYk@Aud~GmrIF_ukY7?dD~}w9P}k NXS`0ZIQK$*YX^KcDuMt2 diff --git a/tools/readme_generator/translations/pl/LC_MESSAGES/messages.po b/tools/readme_generator/translations/pl/LC_MESSAGES/messages.po index b90f476a33..a002d179d3 100644 --- a/tools/readme_generator/translations/pl/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/pl/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 01:09+0100\n" -"PO-Revision-Date: 2024-03-25 00:14+0000\n" +"PO-Revision-Date: 2024-03-25 00:19+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: Polish \n" @@ -36,9 +36,9 @@ msgid "" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " "the Github repo." msgstr "" -"Skopiuj tę aplikację zanim rozpoczniesz nad nią pracę używając przycisku " -"['Użyj tego szablonu'](https://github.com/YunoHost/example_ynh/generatenew?" -"template_name=example_ynh&template_owner=YunoHost) na GitHubie." +"Skopiuj tę aplikację zanim rozpoczniesz nad nią pracę używając przycisku [" +"'Użyj tego szablonu'](https://github.com/" +"new?template_name=example_ynh&template_owner=YunoHost) na GitHubie." #: templates/README.md.j2:5 msgid "Edit the `manifest.toml` with app specific info" From 4d3a97e606db28341e0935e9b3ea848d867cff0b Mon Sep 17 00:00:00 2001 From: Laurent Peuch Date: Mon, 25 Mar 2024 01:23:32 +0100 Subject: [PATCH 023/292] ci(auto_messages_pot): github actions is an idiot and thinks 3.10 == 3.1 -_- --- .github/workflows/auto_messages_pot.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/auto_messages_pot.yml b/.github/workflows/auto_messages_pot.yml index 8beb44b273..5ab8a60a9d 100644 --- a/.github/workflows/auto_messages_pot.yml +++ b/.github/workflows/auto_messages_pot.yml @@ -10,10 +10,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Set up Python 3.10 + - name: Set up Python 3.11 uses: actions/setup-python@v5 with: - python-version: 3.10 + python-version: 3.11 - name: Install dependencies run: | cd tools/readme_generator/ From f49802fc1d98228e815ba2023a79ef8704bd5f09 Mon Sep 17 00:00:00 2001 From: Laurent Peuch Date: Mon, 25 Mar 2024 01:34:17 +0100 Subject: [PATCH 024/292] ci(auto_messages_pot): don't reinstall dependencies twice --- .github/workflows/auto_messages_pot.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/auto_messages_pot.yml b/.github/workflows/auto_messages_pot.yml index 5ab8a60a9d..5a00f73f7e 100644 --- a/.github/workflows/auto_messages_pot.yml +++ b/.github/workflows/auto_messages_pot.yml @@ -21,7 +21,6 @@ jobs: - name: Try to generate messages.pot run: | cd tools/readme_generator/ - pip install -r requirements.txt pybabel extract --ignore-dirs venv -F babel.cfg -o messages.pot . - shell: pwsh id: check_files_changed From adc9e6c2cc1804ccf9373e191963843fe92f3edc Mon Sep 17 00:00:00 2001 From: yunohost-bot Date: Sat, 23 Mar 2024 22:21:00 +0100 Subject: [PATCH 025/292] Add Teable to wishlist --- wishlist.toml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/wishlist.toml b/wishlist.toml index e1cb0f4834..cb8165e3ac 100644 --- a/wishlist.toml +++ b/wishlist.toml @@ -1,5 +1,3 @@ -#:schema https://github.com/YunoHost/apps/raw/master/schemas/wishlist.toml.schema.json - [access-to-memory-atom] name = "Access to Memory (AtoM)" description = "Standards-based archival description and access in a multilingual, multi-repository environment." @@ -1887,6 +1885,13 @@ upstream = "https://github.com/GothenburgBitFactory/taskwarrior" website = "https://taskwarrior.org" added_date = 1695656621 # 2023/09/25 + +[teable] +name = "Teable" +description = "Developer-friendly, No-code database" +upstream = "https://github.com/teableio/teable" +website = "https://teable.io/" + [teddy-io] name = "Teddy.io" description = "Document manager" From 1e0aa35911eca83fef1736e11c295214bdf289e7 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 01:29:10 +0100 Subject: [PATCH 026/292] update description --- wishlist.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wishlist.toml b/wishlist.toml index cb8165e3ac..e02a94f9fb 100644 --- a/wishlist.toml +++ b/wishlist.toml @@ -1888,7 +1888,7 @@ added_date = 1695656621 # 2023/09/25 [teable] name = "Teable" -description = "Developer-friendly, No-code database" +description = "Spreadsheet-like Web database which can be connected to traditional databases" upstream = "https://github.com/teableio/teable" website = "https://teable.io/" From 3f552ca54cbe9acbb06596db398aeac73d7b8c6a Mon Sep 17 00:00:00 2001 From: Laurent Peuch Date: Mon, 25 Mar 2024 02:30:34 +0100 Subject: [PATCH 027/292] ci(auto_messages_pot): add a super small custom script to compare .pot files --- .github/diff_pot_files.py | 29 +++++++++++++++++++++++++ .github/workflows/auto_messages_pot.yml | 8 ++++--- 2 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 .github/diff_pot_files.py diff --git a/.github/diff_pot_files.py b/.github/diff_pot_files.py new file mode 100644 index 0000000000..53082f9761 --- /dev/null +++ b/.github/diff_pot_files.py @@ -0,0 +1,29 @@ +#! /usr/bin/env python3 + +""" +Super small script for github action to detect if 2 .pot files have changed for +github/workflows/auto_messages_pot.yml +""" + +import sys +from babel.messages.pofile import PoFileParser + + +def load_pot_file(file_path): + poparser = PoFileParser({}) + poparser.parse(open(file_path)) + return poparser.catalog + + +def main(): + file_1 = load_pot_file(sys.argv[1]) + file_2 = load_pot_file(sys.argv[2]) + + if [x for x in file_1.keys() if x] == [x for x in file_2.keys() if x]: + sys.exit(1) + else: + sys.exit(0) + + +if __name__ == "__main__": + main() diff --git a/.github/workflows/auto_messages_pot.yml b/.github/workflows/auto_messages_pot.yml index 5a00f73f7e..c290b6f813 100644 --- a/.github/workflows/auto_messages_pot.yml +++ b/.github/workflows/auto_messages_pot.yml @@ -18,6 +18,10 @@ jobs: run: | cd tools/readme_generator/ pip install -r requirements.txt + - name: Save old messges.pot for diffing later + run: | + cd tools/readme_generator/ + cp messages.pot messages.pot.old - name: Try to generate messages.pot run: | cd tools/readme_generator/ @@ -25,9 +29,7 @@ jobs: - shell: pwsh id: check_files_changed run: | - # Diff HEAD with the previous commit - $diff = git diff - $HasDiff = $diff.Length -gt 0 + $HasDiff = python .github/diff_pot_files.py tools/readme_generator/messages.pot.old tools/readme_generator/messages.pot Write-Host "::set-output name=files_changed::$HasDiff" - name: Create Pull Request if: steps.check_files_changed.outputs.files_changed == 'true' From 84409c9ce10ecc894156fa063c6c8298680a979a Mon Sep 17 00:00:00 2001 From: Laurent Peuch Date: Mon, 25 Mar 2024 02:32:20 +0100 Subject: [PATCH 028/292] ci(auto_messages_pot): github actions seems to expect a string on stdout --- .github/diff_pot_files.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/diff_pot_files.py b/.github/diff_pot_files.py index 53082f9761..6d37c5c326 100644 --- a/.github/diff_pot_files.py +++ b/.github/diff_pot_files.py @@ -20,9 +20,9 @@ def main(): file_2 = load_pot_file(sys.argv[2]) if [x for x in file_1.keys() if x] == [x for x in file_2.keys() if x]: - sys.exit(1) + print("false") else: - sys.exit(0) + print("true") if __name__ == "__main__": From bcfb00d05aeff71d08187b6d3109acc48acdcc75 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 06:31:10 +0100 Subject: [PATCH 029/292] another bunch of readme improvements --- tools/readme_generator/messages.pot | 89 ++++++++++--------- tools/readme_generator/templates/README.md.j2 | 17 ++-- 2 files changed, 58 insertions(+), 48 deletions(-) diff --git a/tools/readme_generator/messages.pot b/tools/readme_generator/messages.pot index ffad45574b..ba7d1fb07e 100644 --- a/tools/readme_generator/messages.pot +++ b/tools/readme_generator/messages.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 06:29+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this " "template'](https://github.com/new?template_name=example_ynh&template_owner=YunoHost)" -" button on the Github repo." +" button on the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,13 +40,13 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, " -"and any relevant conf files in `conf/`." +"and any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" "Using the [script helpers " -"documentation.](https://yunohost.org/packaging_apps_helpers)" +"documentation](https://yunohost.org/packaging_apps_helpers)" msgstr "" #: templates/README.md.j2:8 @@ -56,142 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant " -"to necessarily be the LICENSE of the upstream app - it is only the " -"LICENSE you want this package's code to published with ;). We recommend " -"to use [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE " +"as the upstream app - it is only the LICENSE you want this package's code" +" to published with and you can freely choose it! (If you don't know which" +" to choose, we recommend [the " +"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 +msgid "Edit files under the `doc/` directory" +msgstr "" + +#: templates/README.md.j2:12 msgid "" "The `README.md` files are to be automatically generated by " "" msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by " "\n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and " -"simply on a YunoHost server.\n" +"simply on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the " -"guide](https://yunohost.org/#/install) to learn how to install it." +"guide](https://yunohost.org/install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" "Please send your pull request to the [testing " -"branch](%(testing_branch_url)s)" +"branch](%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 +#: templates/README.md.j2:83 msgid "To try the testing branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/templates/README.md.j2 b/tools/readme_generator/templates/README.md.j2 index c532f300c2..8b2088a0ed 100644 --- a/tools/readme_generator/templates/README.md.j2 +++ b/tools/readme_generator/templates/README.md.j2 @@ -1,12 +1,13 @@ {% if manifest.id == "example" -%} # {{ _('Packaging an app, starting from this example') }} -- {{ _("Copy this app before working on it, using the ['Use this template'](https://github.com/new?template_name=example_ynh&template_owner=YunoHost) button on the Github repo.") }} +- {{ _("Copy this app before working on it, using the ['Use this template'](https://github.com/new?template_name=example_ynh&template_owner=YunoHost) button on the Github repo") }} - {{ _("Edit the `manifest.toml` with app specific info") }} -- {{ _("Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and any relevant conf files in `conf/`.") }} - - {{ _("Using the [script helpers documentation.](https://yunohost.org/packaging_apps_helpers)") }} +- {{ _("Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and any relevant conf files in `conf/`") }} + - {{ _("Using the [script helpers documentation](https://yunohost.org/packaging_apps_helpers)") }} - {{ _("Edit the `change_url` and `config` scripts too, or remove them if you have no use of them") }} -- {{ _("Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to necessarily be the LICENSE of the upstream app - it is only the LICENSE you want this package's code to published with ;). We recommend to use [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt).") }} +- {{ _("Add a `LICENSE` file for the package.") }} + - {{ _("NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as the upstream app - it is only the LICENSE you want this package's code to published with and you can freely choose it! (If you don't know which to choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))") }} - {{ _("Edit files under the `doc/` directory") }} - {{ _("The `README.md` files are to be automatically generated by ") }} @@ -26,12 +27,13 @@ It shall NOT be edited by hand.") }} *[{{ _("Read this README is other languages.") }}](./ALL_README.md)* -> *{{ _("This package allows you to install %(application_name)s quickly and simply on a YunoHost server. -If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/install) to learn how to install it.")|format(application_name=manifest.name) }}* +> *{{ _("This package allows you to install %(application_name)s quickly and simply on a YunoHost server.")|format(application_name=manifest.name) }}* +> *{{ _("If you don't have YunoHost, please consult [the guide](https://yunohost.org/install) to learn how to install it.") }}* ## {{ _("Overview") }} {% if description %}{{description}}{% else %}{{manifest.description[lang]}}{% endif %} + **{{ _("Shipped version:") }}** {% if upstream.version %}{{upstream.version}}{% else %}{{manifest.version}} {% endif -%} @@ -76,8 +78,7 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in ## {{ _("Developer info") }} -{{ _("Please send your pull request to the [testing branch](%(testing_branch_url)s)")|format(testing_branch_url="https://github.com/YunoHost-Apps/" + manifest.id + "_ynh/tree/testing") }}, - +{{ _("Please send your pull request to the [testing branch](%(testing_branch_url)s).")|format(testing_branch_url="https://github.com/YunoHost-Apps/" + manifest.id + "_ynh/tree/testing") }} {{ _("To try the testing branch, please proceed like that:") }} From f5e5398e5e6097697753fd10340dcb529012204f Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 06:36:51 +0100 Subject: [PATCH 030/292] update test readme accordingly --- tools/readme_generator/tests/README.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tools/readme_generator/tests/README.md b/tools/readme_generator/tests/README.md index 7fd50ab299..5dea8f442b 100644 --- a/tools/readme_generator/tests/README.md +++ b/tools/readme_generator/tests/README.md @@ -11,8 +11,8 @@ It shall NOT be edited by hand. *[Read this README is other languages.](./ALL_README.md)* -> *This package allows you to install GoToSocial quickly and simply on a YunoHost server. -If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/install) to learn how to install it.* +> *This package allows you to install GoToSocial quickly and simply on a YunoHost server.* +> *If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/install) to learn how to install it.* ## Overview @@ -47,8 +47,7 @@ Please note that this package uses the ["i'm so tired" software license 1.0](htt ## Developer info -Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/gotosocial_ynh/tree/testing), - +Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/gotosocial_ynh/tree/testing). To try the testing branch, please proceed like that: From ebee6cab07e2874f8a48ad411f926df30b671ec3 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 06:39:24 +0100 Subject: [PATCH 031/292] forgotten things on test readme updating --- tools/readme_generator/tests/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/readme_generator/tests/README.md b/tools/readme_generator/tests/README.md index 5dea8f442b..b8a99f4b33 100644 --- a/tools/readme_generator/tests/README.md +++ b/tools/readme_generator/tests/README.md @@ -12,7 +12,7 @@ It shall NOT be edited by hand. *[Read this README is other languages.](./ALL_README.md)* > *This package allows you to install GoToSocial quickly and simply on a YunoHost server.* -> *If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/install) to learn how to install it.* +> *If you don't have YunoHost, please consult [the guide](https://yunohost.org/install) to learn how to install it.* ## Overview @@ -25,6 +25,7 @@ The documentation for this YunoHost package [can be read here](./doc/DOCS.md) an Please note that this package uses the ["i'm so tired" software license 1.0](https://github.com/YunoHost-Apps/gotosocial_ynh/blob/master/LICENSE), please read it and accept it before proceeding with installation. + **Shipped version:** 0.13.3~ynh1 ## Screenshots From 95cfdcd1b46f4aa8412af8969653fe11ab4bc2d6 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 06:48:06 +0100 Subject: [PATCH 032/292] put 'testing' in 'testing branch' under codequotes --- tools/readme_generator/messages.pot | 6 +++--- tools/readme_generator/templates/README.md.j2 | 4 ++-- tools/readme_generator/tests/README.md | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tools/readme_generator/messages.pot b/tools/readme_generator/messages.pot index ba7d1fb07e..a0ac33ff24 100644 --- a/tools/readme_generator/messages.pot +++ b/tools/readme_generator/messages.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 06:29+0100\n" +"POT-Creation-Date: 2024-03-25 06:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -188,12 +188,12 @@ msgstr "" #: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing " +"Please send your pull request to the [`testing` " "branch](%(testing_branch_url)s)." msgstr "" #: templates/README.md.j2:83 -msgid "To try the testing branch, please proceed like that:" +msgid "To try the `testing` branch, please proceed like that:" msgstr "" #: templates/README.md.j2:87 diff --git a/tools/readme_generator/templates/README.md.j2 b/tools/readme_generator/templates/README.md.j2 index 8b2088a0ed..9691b3aa77 100644 --- a/tools/readme_generator/templates/README.md.j2 +++ b/tools/readme_generator/templates/README.md.j2 @@ -78,9 +78,9 @@ It shall NOT be edited by hand.") }} ## {{ _("Developer info") }} -{{ _("Please send your pull request to the [testing branch](%(testing_branch_url)s).")|format(testing_branch_url="https://github.com/YunoHost-Apps/" + manifest.id + "_ynh/tree/testing") }} +{{ _("Please send your pull request to the [`testing` branch](%(testing_branch_url)s).")|format(testing_branch_url="https://github.com/YunoHost-Apps/" + manifest.id + "_ynh/tree/testing") }} -{{ _("To try the testing branch, please proceed like that:") }} +{{ _("To try the `testing` branch, please proceed like that:") }} ```bash sudo yunohost app install https://github.com/YunoHost-Apps/{{manifest.id}}_ynh/tree/testing --debug diff --git a/tools/readme_generator/tests/README.md b/tools/readme_generator/tests/README.md index b8a99f4b33..d969cea9b7 100644 --- a/tools/readme_generator/tests/README.md +++ b/tools/readme_generator/tests/README.md @@ -48,9 +48,9 @@ Please note that this package uses the ["i'm so tired" software license 1.0](htt ## Developer info -Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/gotosocial_ynh/tree/testing). +Please send your pull request to the [`testing` branch](https://github.com/YunoHost-Apps/gotosocial_ynh/tree/testing). -To try the testing branch, please proceed like that: +To try the `testing` branch, please proceed like that: ```bash sudo yunohost app install https://github.com/YunoHost-Apps/gotosocial_ynh/tree/testing --debug From b939e3db7a95f5b1220b96ad03c8398159784d24 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 06:53:21 +0100 Subject: [PATCH 033/292] smol wording --- tools/readme_generator/messages.pot | 4 ++-- tools/readme_generator/templates/README.md.j2 | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/readme_generator/messages.pot b/tools/readme_generator/messages.pot index a0ac33ff24..487ecf23a6 100644 --- a/tools/readme_generator/messages.pot +++ b/tools/readme_generator/messages.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 06:47+0100\n" +"POT-Creation-Date: 2024-03-25 06:53+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -63,7 +63,7 @@ msgstr "" msgid "" "NB: this `LICENSE` file is not meant to necessarily be the same LICENSE " "as the upstream app - it is only the LICENSE you want this package's code" -" to published with and you can freely choose it! (If you don't know which" +" to published with and you can choose it freely! (If you don't know which" " to choose, we recommend [the " "AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" diff --git a/tools/readme_generator/templates/README.md.j2 b/tools/readme_generator/templates/README.md.j2 index 9691b3aa77..2f58488a57 100644 --- a/tools/readme_generator/templates/README.md.j2 +++ b/tools/readme_generator/templates/README.md.j2 @@ -7,7 +7,7 @@ - {{ _("Using the [script helpers documentation](https://yunohost.org/packaging_apps_helpers)") }} - {{ _("Edit the `change_url` and `config` scripts too, or remove them if you have no use of them") }} - {{ _("Add a `LICENSE` file for the package.") }} - - {{ _("NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as the upstream app - it is only the LICENSE you want this package's code to published with and you can freely choose it! (If you don't know which to choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))") }} + - {{ _("NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as the upstream app - it is only the LICENSE you want this package's code to published with and you can choose it freely! (If you don't know which to choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))") }} - {{ _("Edit files under the `doc/` directory") }} - {{ _("The `README.md` files are to be automatically generated by ") }} From 564b59e97bead87565afab246e5730404149ccf5 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 07:00:21 +0100 Subject: [PATCH 034/292] adding page link about document packages --- tools/readme_generator/messages.pot | 6 ++++-- tools/readme_generator/templates/README.md.j2 | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/tools/readme_generator/messages.pot b/tools/readme_generator/messages.pot index 487ecf23a6..56b603557d 100644 --- a/tools/readme_generator/messages.pot +++ b/tools/readme_generator/messages.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 06:53+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -69,7 +69,9 @@ msgid "" msgstr "" #: templates/README.md.j2:11 -msgid "Edit files under the `doc/` directory" +msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" msgstr "" #: templates/README.md.j2:12 diff --git a/tools/readme_generator/templates/README.md.j2 b/tools/readme_generator/templates/README.md.j2 index 2f58488a57..9ee472e36b 100644 --- a/tools/readme_generator/templates/README.md.j2 +++ b/tools/readme_generator/templates/README.md.j2 @@ -8,7 +8,7 @@ - {{ _("Edit the `change_url` and `config` scripts too, or remove them if you have no use of them") }} - {{ _("Add a `LICENSE` file for the package.") }} - {{ _("NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as the upstream app - it is only the LICENSE you want this package's code to published with and you can choose it freely! (If you don't know which to choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))") }} -- {{ _("Edit files under the `doc/` directory") }} +- {{ _("Edit files under the `doc/` directory ([see the page about documenting packages](https://yunohost.org/packaging_app_doc))") }} - {{ _("The `README.md` files are to be automatically generated by ") }} --- From 9c585606480a9ac986044865afa0d470fccb7a43 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 01:45:43 +0000 Subject: [PATCH 035/292] Translated readme-generator using Weblate (Catalan) Currently translated at 86.4% (32 of 37 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/ca/ --- .../readme_generator/translations/ca/LC_MESSAGES/messages.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/readme_generator/translations/ca/LC_MESSAGES/messages.po b/tools/readme_generator/translations/ca/LC_MESSAGES/messages.po index 3737797ec2..60f5696307 100644 --- a/tools/readme_generator/translations/ca/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/ca/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 01:09+0100\n" -"PO-Revision-Date: 2024-03-25 00:19+0000\n" +"PO-Revision-Date: 2024-03-25 02:05+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: Catalan \n" @@ -53,7 +53,7 @@ msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " "any relevant conf files in `conf/`." msgstr "" -"Edita els scripts `install`, `upgrade`, `remove`, `backup`, i `restore`, i " +"Edita els scripts `install`, `upgrade`, `remove`, `backup` i `restore`, i " "tots els arxius rellevants de `conf/`." #: templates/README.md.j2:7 From e114f0a1f14826025713cf0720fe5292e27fab1d Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 01:46:04 +0000 Subject: [PATCH 036/292] Translated readme-generator using Weblate (Galician) Currently translated at 78.3% (29 of 37 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/gl/ --- .../readme_generator/translations/gl/LC_MESSAGES/messages.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po b/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po index f87b6b4968..c7e7324298 100644 --- a/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 01:09+0100\n" -"PO-Revision-Date: 2024-03-25 00:19+0000\n" +"PO-Revision-Date: 2024-03-25 02:05+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: Galician \n" @@ -52,7 +52,7 @@ msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " "any relevant conf files in `conf/`." msgstr "" -"Edita os scripts `install`, `upgrade`, `remove`, `backup`, e `restore`, así " +"Edita os scripts `install`, `upgrade`, `remove`, `backup` e `restore`, así " "como os ficheiros conf necesarios en `conf/`." #: templates/README.md.j2:7 From 6ee46fc1f607349d58172756eaec21bc6506d54e Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 04:59:35 +0000 Subject: [PATCH 037/292] Translated readme-generator using Weblate (Catalan) Currently translated at 86.4% (32 of 37 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/ca/ --- .../translations/ca/LC_MESSAGES/messages.mo | Bin 4411 -> 4410 bytes .../translations/ca/LC_MESSAGES/messages.po | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/readme_generator/translations/ca/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/ca/LC_MESSAGES/messages.mo index 20eb2ac02960d5174396fe6ed0923bfa6ef6653e..0c0edc46a2db51e344d9b175fbc8adbbfa7627af 100644 GIT binary patch delta 216 zcmXZVI}QN>6ouhKq7Y-er)ETAgih3A9(zzIBx=d5V3eY=0a4h1WN0XL8ifVefI_YE z52`QsoSfXVeX{qnR1`?M<)j{3hEzrG?-={sbKK$%JLu-6Mv`L_*J$Da2Y5jr-&n^X zWgDkh#uavPV=DMQyb=@%9=O04-Z3mlBlIbg!4fBU#2Qvgznv31>1Q^!j8^6Y06!Vj delta 218 zcmXZVKMuhF9L4chi9uBTNgHcbBs7@BPPDy)#3FWy3$TjG1y~$F(lD^v3-_&dZ7_Y}9dLmvk@sgmSa#Wh-Zz%E`ez&E\n" "Language-Team: Catalan \n" @@ -42,7 +42,7 @@ msgstr "" #: templates/README.md.j2:5 msgid "Edit the `manifest.toml` with app specific info" -msgstr "Edita el `manifest.toml`amb la informació específica de l'aplicació." +msgstr "Edita el `manifest.toml`amb la informació específica de l'aplicació" #: templates/README.md.j2:6 #, fuzzy From 2229eda2552dbb4856575acbfbc22d0648409001 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 05:00:18 +0000 Subject: [PATCH 038/292] Translated readme-generator using Weblate (Czech) Currently translated at 24.3% (9 of 37 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/cs/ --- .../translations/cs/LC_MESSAGES/messages.mo | Bin 1758 -> 1895 bytes .../translations/cs/LC_MESSAGES/messages.po | 6 ++---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/tools/readme_generator/translations/cs/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/cs/LC_MESSAGES/messages.mo index 92b9dc4d68e0bca26a55c78324a179b8f33cd773..8406ed76a39a3c0a6b3e5c34f2009851f0ed9e68 100644 GIT binary patch delta 394 zcmZY4Jxjw-6vpur+xk*y(M}2-?%*IOcJc#=2%W^KlS4yH$fZdWlT^{cx;i>^5kG*7 zE_D)J%;w|=&~D=9%Or086QPR-9)9HBlXJME%3HNRsuc%9l}Vj=q(bgUR-fdOe31q@ zH$>*}5o`F2EBJwnSf3C%!F6om16FaNAaX;`5Qd3-iDF6-y2_d(tFFzdm_^} Zt@KI-{O;+FX=&BVdXs-khJI42JOYLV+%DJ(v)=s4t#}?jjjHV>@aEcyY@xa*= zFWj%~-}|9cd}p8u7hMkK*v2Cc@r`|q%2FNA$e#ajT>NwetHge>TNdTR`_i%;fm I#UCd!U;l6&OaK4? diff --git a/tools/readme_generator/translations/cs/LC_MESSAGES/messages.po b/tools/readme_generator/translations/cs/LC_MESSAGES/messages.po index f533e46a52..4d244da58a 100644 --- a/tools/readme_generator/translations/cs/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/cs/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 01:09+0100\n" -"PO-Revision-Date: 2024-03-25 00:19+0000\n" +"PO-Revision-Date: 2024-03-25 05:01+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: Czech \n" @@ -41,10 +41,8 @@ msgstr "" "na Github repositáři." #: templates/README.md.j2:5 -#, fuzzy -#| msgid "Edit the `manifest.json` with app specific info." msgid "Edit the `manifest.toml` with app specific info" -msgstr "Pro úpravu specifických inforamací o aplikaci upravte `manifest.json`." +msgstr "Pro úpravu specifických inforamací o aplikaci upravte `manifest.toml`" #: templates/README.md.j2:6 #, fuzzy From cb2825c2dc4bd796084c20131b9d57f60f7dda73 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 04:59:51 +0000 Subject: [PATCH 039/292] Translated readme-generator using Weblate (Galician) Currently translated at 78.3% (29 of 37 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/gl/ --- .../translations/gl/LC_MESSAGES/messages.mo | Bin 4050 -> 4049 bytes .../translations/gl/LC_MESSAGES/messages.po | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/readme_generator/translations/gl/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/gl/LC_MESSAGES/messages.mo index 73d82f03e7bcc9211bb1922a565e2512e66d75b1..392c792daa3c891d7aeaab027ea20852a07ebb95 100644 GIT binary patch delta 200 zcmW;FuL{Co7=`gOSQ&FJ_-A3rRB(uPi`C&R_@&_mcmaZ7a2K#-ShkoHb_EuLV9>DQ zm6-HlaNq~$<>kDiS9D!i`?;i^D^1W~2QzGAfiYh2h!qZT(~w%2;|Nd4Ne>)jg$e#J u#Ke;ZxW+CXaEgVeSv_>8*in4&iL0j6$Jplyml)s~iEicBN}bZUTl){u>>1Gj delta 202 zcmW;FtqQ_m0EOZ6fkoyt_!nf%3I3p9G#RIO3DY9(0_=id(F<5vS+\n" "Language-Team: Galician \n" @@ -41,7 +41,7 @@ msgstr "" #: templates/README.md.j2:5 msgid "Edit the `manifest.toml` with app specific info" -msgstr "Edita o `manifest.toml` con información específica da app." +msgstr "Edita o `manifest.toml` con información específica da app" #: templates/README.md.j2:6 #, fuzzy From 4b538e26553aa1ce31112a51e884c36a91bf7a5e Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 05:00:05 +0000 Subject: [PATCH 040/292] Translated readme-generator using Weblate (Polish) Currently translated at 86.4% (32 of 37 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/pl/ --- .../translations/pl/LC_MESSAGES/messages.mo | Bin 4362 -> 4361 bytes .../translations/pl/LC_MESSAGES/messages.po | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/readme_generator/translations/pl/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/pl/LC_MESSAGES/messages.mo index d34d9231af3ee8b4c5d295522f4324c7529e244b..32b8eac64d469260e798453e9d40b933da5dd51f 100644 GIT binary patch delta 216 zcmXZWF$)249LDj-bqmfR#bENcV7Qcl7jP+~Q86f4yaSQNa$bS5c>%h*&0?{72Nu(9 zMrHH8-1O=B_4M>Rn81XK%&sr#lb1T^IZ_!XsVnS~w|K@2CcSY%s^bQ0c*HD**uyK1 z@Qp1TxRSv+R&kF_Jh>W*j&2+(_`o&3@Q%}>9;kZIZdr~PtrRpHL>GJMI8T~qeouh0gssUMmed9ORV4y(|E=%#^~b< z>)3ZCgA**{25Y!?H546PIF#^)3w+=egS<3AQ}_+cFd&DRJo-c``b3SCow3?c%emWM D8B-dw diff --git a/tools/readme_generator/translations/pl/LC_MESSAGES/messages.po b/tools/readme_generator/translations/pl/LC_MESSAGES/messages.po index a002d179d3..df72e1497e 100644 --- a/tools/readme_generator/translations/pl/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/pl/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 01:09+0100\n" -"PO-Revision-Date: 2024-03-25 00:19+0000\n" +"PO-Revision-Date: 2024-03-25 05:01+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: Polish \n" @@ -42,7 +42,7 @@ msgstr "" #: templates/README.md.j2:5 msgid "Edit the `manifest.toml` with app specific info" -msgstr "Edytuj `manifest.toml` z informacjami o danej aplikacji." +msgstr "Edytuj `manifest.toml` z informacjami o danej aplikacji" #: templates/README.md.j2:6 #, fuzzy From 2fe7085270c2093f366154b36ce6f35c50be8d11 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 05:28:41 +0000 Subject: [PATCH 041/292] Translated readme-generator using Weblate (French) Currently translated at 100.0% (37 of 37 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/fr/ --- .../translations/fr/LC_MESSAGES/messages.mo | Bin 5724 -> 5738 bytes .../translations/fr/LC_MESSAGES/messages.po | 16 ++++++++-------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tools/readme_generator/translations/fr/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/fr/LC_MESSAGES/messages.mo index 590c79e6488c62842bbf209eac45f8698d479014..fd2a4ea5ea41c8405ce2c25a597f788f29f2bf4a 100644 GIT binary patch delta 285 zcmcbk^GavK9>#ic1_p*eK?VjtlYz7DNN54+Jy8C0DE(WQ!H%I3D8Vnn z!0-`BPXyAIK)M;|8g(GO7f6Q!>8C(i0!Ukn0WAU2AwZf5NT+YEWO~5I{HS5(xmzH0wP+VH1kdvxVkeHmEn4X!Ju8;y!GFR{hSZSG1D40GY^d3y_5!M9Jo1Y2$ MFfo=)HWt$a0R6f>B>(^b delta 271 zcmaE*b4O>x9>#i61_p*eK?Vj8oerc8fOIX8UJ0bv0cmw09U;WPAOoZufV2jXo(rV; zfb=mSZ3LvR0_gxC%^}RdAP1x)fwU@+t^m?N#4ry?fb?ww(m*2_ZbQZ23NzR-Gy(+} zMHm=90_kQTZ3(1Hfvy2rydFr00_p2OS^`MxiZL(%?P72P(o8@)a&slq13pIe$uWYO zQtFv`Y5Bzp#id0GIjIT-iOJcC>6v-y3MuN77Yp71DykC-1(Mf<-UG=K!kUcgo4*MA MFfkTSb`;YD07xS*kN^Mx diff --git a/tools/readme_generator/translations/fr/LC_MESSAGES/messages.po b/tools/readme_generator/translations/fr/LC_MESSAGES/messages.po index a391ba012b..cffe9ce773 100644 --- a/tools/readme_generator/translations/fr/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/fr/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 01:09+0100\n" -"PO-Revision-Date: 2024-03-25 00:12+0000\n" +"PO-Revision-Date: 2024-03-25 06:24+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: French \n" @@ -111,11 +111,11 @@ msgstr "%(application_name)s pour YunoHost" #: templates/README.md.j2:23 msgid "Integration level" -msgstr "Niveau d'intégration" +msgstr "Niveau d’intégration" #: templates/README.md.j2:23 msgid "Working status" -msgstr "Status du fonctionnement" +msgstr "Statut du fonctionnement" #: templates/README.md.j2:23 msgid "Maintenance status" @@ -145,7 +145,7 @@ msgstr "" #: templates/README.md.j2:32 msgid "Overview" -msgstr "Vue d'ensemble" +msgstr "Vue d’ensemble" #: templates/README.md.j2:35 msgid "Shipped version:" @@ -157,12 +157,12 @@ msgstr "Démo :" #: templates/README.md.j2:43 msgid "Screenshots" -msgstr "Captures d'écran" +msgstr "Captures d’écran" #: templates/README.md.j2:46 #, python-format msgid "Screenshot of %(application_name)s" -msgstr "Capture d'écran de %(application_name)s" +msgstr "Capture d’écran de %(application_name)s" #: templates/README.md.j2:51 msgid "Disclaimers / important information" @@ -186,7 +186,7 @@ msgstr "Documentation officielle utilisateur :" #: templates/README.md.j2:70 msgid "Official admin documentation:" -msgstr "Documentation officielle de l'admin :" +msgstr "Documentation officielle de l’admin :" #: templates/README.md.j2:72 msgid "Upstream app code repository:" @@ -222,7 +222,7 @@ msgstr "ou" #: templates/README.md.j2:90 msgid "More info regarding app packaging:" -msgstr "Plus d'infos sur le packaging d'applications :" +msgstr "Plus d’infos sur le packaging d’applications :" #~ msgid "Add a `LICENSE` file for the package." #~ msgstr "Ajoutez un fichier `LICENCE` for le paquet." From 896e77059784125e554046c565ff8649dcce1961 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20M?= Date: Mon, 25 Mar 2024 05:06:49 +0000 Subject: [PATCH 042/292] Translated readme-generator using Weblate (Galician) Currently translated at 100.0% (37 of 37 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/gl/ --- .../translations/gl/LC_MESSAGES/messages.mo | Bin 4049 -> 5439 bytes .../translations/gl/LC_MESSAGES/messages.po | 24 ++++++++---------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/tools/readme_generator/translations/gl/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/gl/LC_MESSAGES/messages.mo index 392c792daa3c891d7aeaab027ea20852a07ebb95..5218e4e2b9c830f997e5f8ba4cf266c3cc24700e 100644 GIT binary patch delta 2143 zcma)*U1%It6vuBiZBrZjVVWAP)!u%jUnaYS)|aiK{fHvOQd_N75%*^1W_Re!-0940 z(r96YKKLj$*0(-dTCfP+mkJf3LD7dk6d!~NeNs>m)VIC}{?6=fNI}HQ&i?Mqo;l~- z|M~Bo&0p_n-5XkVQL%P#ZQ`2jQ|cLbuEZDXSie$R;Hz*wzh&@Y?mt|n)D`#%Tn?Y( zYYjXMx54A^2{;2s;RSdK-hc@lTA@@$sg^p=W)BbA@DX?q4#7X+R@gtF)TeLI zH^85uH2fD_3D@v721np4@Ce)tFTm~aI$RBZgp&6cI7of9@*$<0AjV11;^>Kqnw}0qtEXM6^M=)l@lKn%E$gF)syqlX-Hq#naUZ)}N7lr-&Yg~} zXS2+tK{%(UY>}ZC@1~2}W|HNpHIX(+qQ`ZR>lR5|%nMSl7d_{idbUU^HM?Ex%(Ulx z(mI_qr@|m>SYOWuc|#xAUDj_{om$UDk&S%`X=YZxEjbUqbZl~b-#fb+d7fm|N@aF- zwp@>!WtY|~Vc-qhII~&B)RS<0UwLmiKb!9^&)+J2*&n&;{Mr83TcSv&o3U>@qSSon zRchJ~sF%BRPEGinLrT@WhKcL;-DVorw4slh=i=$0UelSE21%aLm>biGo7%|D6beN; znAURMhT%cnX}qIWRAg>-QU`ICn=q`6=~^?Xr^dIk?c|Z&6r*Y;-Lk38=*%wG9V@yq z@f?LiJ0r?UXT=mV9mJhRE4A{HvqUBirpeR3+utg!JJAS|1ifc$nguSdw%=TFvTy%u zPUmT7bUC3xT-Q^niM_^{PC{!KL6SPp@?IF6mgAbdI)828V#%fLgDY?KwI<@aK}gi4 z7q4N1)GhI1Vp5}-wmH+Zxwz2frm87~LwnIZ%fv3$xs5fUI%86W7qOzj5X8GhZ~3M$ zA2`!&bsNN0<2qYt>xHZQ8H$u|9Yi9Dv2r13$8?@a$>lAy{h;o&U-Z)Ludv~9@gNp7 zk;60m7yi?Pn|dz%R}+?2eYgAwMybw!zv@(ry4m8fGfKxfV)=Z!MhuXyux2qtD(5Cz zxEjlAJ^MXiQ1NTmo_MmUZ5TvBY(j|_Cl+sV1jdr7i54bj7)x^fUq@1>=SO^)EnGv` z$US(P!i~L=QG`Jj&Gjs4bbH(2jnc?TvEM>F7GEVU^{}GxO|^Y@^<>}PV`3M6nBwe4 erzSEuqHra46dy9?&cx2zAV=2GwV(I9ruqkVvI=Pc delta 732 zcmX}q&nrYx6u|NGX2xJJm>Iu+%$Q*?lu~T$WKfz75oKd7e}Gb>Sd6luhsBhlEQrkF zEo3DrB#IP8N&W##7K-nAgIo7~?z^{l&pr3Nlh|D_`Qme}3$31BOD{A;TJa0DZ8=05 za2pHp40rJsy*TR>iC_wA@BlmT5@Yy@r5JIE_^=DZIEWh}NttF)$AlwCqzpr-2kFK< z9Km*+!~`y35FfD-Kd=aE-Pw&}SipM%=Wzn>@d-7~VXnv+UZa=z5+O=46P>t8*1f1F ze9g~(;PhlOZomrWuP}sfScOia^k8ht-rnYM2?%n$=%$YM5c~h57CsxB5zs9afot J$S_v}`#&=4NIn1n diff --git a/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po b/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po index 7b1d369df4..9dee1b0524 100644 --- a/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 01:09+0100\n" -"PO-Revision-Date: 2024-03-25 05:01+0000\n" -"Last-Translator: OniriCorpe \n" +"PO-Revision-Date: 2024-03-25 06:24+0000\n" +"Last-Translator: \"José M.\" \n" "Language-Team: Galician \n" "Language: gl\n" @@ -44,10 +44,6 @@ msgid "Edit the `manifest.toml` with app specific info" msgstr "Edita o `manifest.toml` con información específica da app" #: templates/README.md.j2:6 -#, fuzzy -#| msgid "" -#| "Edit the `install`, `upgrade`, `remove`, `backup`, and `restore` scripts, " -#| "and any relevant conf files in `conf/`." msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " "any relevant conf files in `conf/`." @@ -68,6 +64,8 @@ msgid "" "Edit the `change_url` and `config` scripts too, or remove them if you have " "no use of them" msgstr "" +"Editar tamén os scripts `change_url` e `config` , ou eliminalos se non os " +"usaches" #: templates/README.md.j2:9 msgid "" @@ -76,10 +74,14 @@ msgid "" "want this package's code to published with ;). We recommend to use [the " "AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." msgstr "" +"Engadir un ficheiro `LICENSE` para o paquete. Nota: este ficheiro LICENSE " +"non ten que ser necesariamente o LICENSE da app da que procede - só é a " +"LICENZA coa que queres publicar o código deste paquete ;). Recomendamos usar " +"[the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." #: templates/README.md.j2:10 msgid "Edit files under the `doc/` directory" -msgstr "" +msgstr "Editar os ficheiros dentro do directorio `doc/`" #: templates/README.md.j2:11 msgid "" @@ -143,14 +145,10 @@ msgid "Overview" msgstr "Vista xeral" #: templates/README.md.j2:35 -#, fuzzy -#| msgid "**Shipped version:**" msgid "Shipped version:" msgstr "Versión proporcionada:" #: templates/README.md.j2:39 -#, fuzzy -#| msgid "**Demo:**" msgid "Demo:" msgstr "Demo:" @@ -210,14 +208,12 @@ msgid "" msgstr "Envía a túa colaboración á [rama testing](%(testing_branch_url)s)" #: templates/README.md.j2:82 -#, fuzzy -#| msgid "To try the testing branch, please proceed like that." msgid "To try the testing branch, please proceed like that:" msgstr "Para probar a rama testing, procede deste xeito:" #: templates/README.md.j2:86 msgid "or" -msgstr "" +msgstr "ou" #: templates/README.md.j2:90 msgid "More info regarding app packaging:" From 572431a9c2bfacfdf353fd0d90ff8e6d1d35b601 Mon Sep 17 00:00:00 2001 From: Weblate Date: Mon, 25 Mar 2024 07:24:05 +0100 Subject: [PATCH 043/292] Update translation files for readme-generator Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/ --- .../translations/ar/LC_MESSAGES/messages.po | 93 ++++++----- .../bn_BD/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/br/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/ca/LC_MESSAGES/messages.po | 143 ++++++++++------ .../translations/ckb/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/cs/LC_MESSAGES/messages.po | 121 ++++++++------ .../translations/da/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/de/LC_MESSAGES/messages.po | 151 +++++++++++------ .../translations/el/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/eo/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/es/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/eu/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/fa/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/fi/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/fr/LC_MESSAGES/messages.po | 151 +++++++++++------ .../translations/gl/LC_MESSAGES/messages.po | 157 ++++++++++++------ .../translations/he/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/hi/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/hu/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/id/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/it/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/ja/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/kab/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/ko/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/lt/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/mk/LC_MESSAGES/messages.po | 93 ++++++----- .../nb_NO/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/ne/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/nl/LC_MESSAGES/messages.po | 143 +++++++++++----- .../translations/oc/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/pl/LC_MESSAGES/messages.po | 144 ++++++++++------ .../translations/pt/LC_MESSAGES/messages.po | 93 ++++++----- .../pt_BR/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/ru/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/sk/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/sl/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/sv/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/te/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/tr/LC_MESSAGES/messages.po | 93 ++++++----- .../translations/uk/LC_MESSAGES/messages.po | 93 ++++++----- .../zh_Hans/LC_MESSAGES/messages.po | 121 +++++++++----- 41 files changed, 2467 insertions(+), 1733 deletions(-) diff --git a/tools/readme_generator/translations/ar/LC_MESSAGES/messages.po b/tools/readme_generator/translations/ar/LC_MESSAGES/messages.po index 0617c0da41..6278d0695c 100644 --- a/tools/readme_generator/translations/ar/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/ar/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/bn_BD/LC_MESSAGES/messages.po b/tools/readme_generator/translations/bn_BD/LC_MESSAGES/messages.po index d2bc1dba65..e29b4077af 100644 --- a/tools/readme_generator/translations/bn_BD/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/bn_BD/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/br/LC_MESSAGES/messages.po b/tools/readme_generator/translations/br/LC_MESSAGES/messages.po index f0d2e58894..e2a7d437ce 100644 --- a/tools/readme_generator/translations/br/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/br/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/ca/LC_MESSAGES/messages.po b/tools/readme_generator/translations/ca/LC_MESSAGES/messages.po index 00584f0d01..6cbffd6ad6 100644 --- a/tools/readme_generator/translations/ca/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/ca/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: 2024-03-25 05:01+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: Catalan " @@ -90,7 +111,7 @@ msgstr "" "Els fitxers `README.md` estan generats automàticament per " -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" @@ -100,126 +121,148 @@ msgstr "" "YunoHost/apps/tree/master/tools/readme_generator>\n" "NO s'ha de modificar manualment." -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "%(application_name)s per YunoHost" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "Nivell d'integració" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "Estat de funcionament" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "Estat de manteniment" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "Instal·la %(application_name)s amb YunoHosth" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "Llegeix aquest README en altres idiomes." -#: templates/README.md.j2:29 -#, python-format +#: templates/README.md.j2:30 +#, fuzzy, python-format +#| msgid "" +#| "This package allows you to install %(application_name)s quickly and " +#| "simply on a YunoHost server.\n" +#| "If you don't have YunoHost, please consult [the guide](https://yunohost." +#| "org/#/install) to learn how to install it." msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" +"Aquest paquet et permet instal·lar %(application_name)s de forma ràpida i " +"senzilla en un servidor YunoHost.\n" +"Si no tens YunoHost, consulta [la guia](https://yunohost.org/#/install) per " +"saber com instal·lar-lo." + +#: templates/README.md.j2:31 +#, fuzzy +#| msgid "" +#| "This package allows you to install %(application_name)s quickly and " +#| "simply on a YunoHost server.\n" +#| "If you don't have YunoHost, please consult [the guide](https://yunohost." +#| "org/#/install) to learn how to install it." +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" "Aquest paquet et permet instal·lar %(application_name)s de forma ràpida i " "senzilla en un servidor YunoHost.\n" "Si no tens YunoHost, consulta [la guia](https://yunohost.org/#/install) per " "saber com instal·lar-lo." -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "Visió general" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "Versió inclosa:" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "Demo:" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "Captures de pantalla" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "Captures de pantalla de %(application_name)s" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "Avís / informació important" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "Anticaracterístiques" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "Documentació i recursos" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "Lloc web oficial de l'aplicació:" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "Documentació oficial per l'usuari:" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "Documentació oficial per l'administrador:" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "Repositori oficial del codi de l'aplicació:" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "Botiga YunoHost:" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "Reportar un error:" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "Informació per a desenvolupadors" -#: templates/README.md.j2:79 -#, python-format +#: templates/README.md.j2:81 +#, fuzzy, python-format +#| msgid "" +#| "Please send your pull request to the [testing branch]" +#| "(%(testing_branch_url)s)" msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "Envieu les pull request a la [branca testing](%(testing_branch_url)s)" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +#, fuzzy +#| msgid "To try the testing branch, please proceed like that:" +msgid "To try the `testing` branch, please proceed like that:" msgstr "Per provar la branca testing, procedir com descrit a continuació:" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "Més informació sobre l'empaquetatge d'aplicacions:" -#~ msgid "Add a `LICENSE` file for the package." -#~ msgstr "Afegeix un fitxer `LICENSE` per al paquet." - #~ msgid "Edit `doc/DISCLAIMER*.md`" #~ msgstr "Edita `doc/DISCLAIMER*.md`" diff --git a/tools/readme_generator/translations/ckb/LC_MESSAGES/messages.po b/tools/readme_generator/translations/ckb/LC_MESSAGES/messages.po index 965cd752a7..ed2f948f5a 100644 --- a/tools/readme_generator/translations/ckb/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/ckb/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/cs/LC_MESSAGES/messages.po b/tools/readme_generator/translations/cs/LC_MESSAGES/messages.po index 4d244da58a..21cb31f706 100644 --- a/tools/readme_generator/translations/cs/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/cs/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: 2024-03-25 05:01+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: Czech " @@ -90,7 +111,7 @@ msgstr "" "Soubory `README.md` jsou automaticky generovány pomocí " -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 #, fuzzy #| msgid "" #| "The `README.md` files are to be automatically generated by https://github." @@ -103,122 +124,124 @@ msgstr "" "Soubory `README.md` jsou automaticky generovány pomocí " -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "Úroveň integrace" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "Stav funkčnosti" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "Stav údržby" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, fuzzy, python-format msgid "Install %(application_name)s with YunoHost" msgstr "Instalovat %(application_name)s do YunoHost" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "Přečíst toto README v jiných jazycích." -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" -#~ msgid "Add a `LICENSE` file for the package." -#~ msgstr "Přidat `LICENSE` soubor pro balíček." - #~ msgid "Edit `doc/DISCLAIMER*.md`" #~ msgstr "Upravit `doc/DISCLAIMER*.md`" diff --git a/tools/readme_generator/translations/da/LC_MESSAGES/messages.po b/tools/readme_generator/translations/da/LC_MESSAGES/messages.po index d164b3352c..2f94edc7b2 100644 --- a/tools/readme_generator/translations/da/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/da/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/de/LC_MESSAGES/messages.po b/tools/readme_generator/translations/de/LC_MESSAGES/messages.po index 66f51a17c2..b758b25ff5 100644 --- a/tools/readme_generator/translations/de/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/de/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: 2024-03-25 00:12+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: German " @@ -93,7 +125,7 @@ msgstr "" "Die `README.md`-Dateien werden automatisch generiert durch " -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" @@ -103,128 +135,153 @@ msgstr "" "tree/master/tools/readme_generator> generiert.\n" "Sie darf NICHT von Hand bearbeitet werden." -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "%(application_name)s für YunoHost" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "Integrations-Level" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "Funktionsstatus" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "Wartungsstatus" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "%(application_name)s mit YunoHost installieren" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "Dieses README in anderen Sprachen lesen." -#: templates/README.md.j2:29 -#, python-format +#: templates/README.md.j2:30 +#, fuzzy, python-format +#| msgid "" +#| "This package allows you to install %(application_name)s quickly and " +#| "simply on a YunoHost server.\n" +#| "If you don't have YunoHost, please consult [the guide](https://yunohost." +#| "org/#/install) to learn how to install it." msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" +"Mit diesem Paket können Sie %(application_name)s schnell und einfach auf " +"einem YunoHost-Server installieren.\n" +"Wenn Sie YunoHost nicht haben, lesen Sie bitte [die Anleitung](https://" +"yunohost.org/#/install), um zu erfahren, wie Sie es installieren." + +#: templates/README.md.j2:31 +#, fuzzy +#| msgid "" +#| "This package allows you to install %(application_name)s quickly and " +#| "simply on a YunoHost server.\n" +#| "If you don't have YunoHost, please consult [the guide](https://yunohost." +#| "org/#/install) to learn how to install it." +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" "Mit diesem Paket können Sie %(application_name)s schnell und einfach auf " "einem YunoHost-Server installieren.\n" "Wenn Sie YunoHost nicht haben, lesen Sie bitte [die Anleitung](https://" "yunohost.org/#/install), um zu erfahren, wie Sie es installieren." -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "Übersicht" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "Ausgelieferte Version:" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "Demo:" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "Bildschirmfotos" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "Bildschirmfotos von %(application_name)s" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "Haftungsausschlüsse / wichtige Informationen" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "Anti-Eigenschaften" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "Dokumentation und Ressourcen" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "Offizielle Website der App:" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "Offizielle Benutzerdokumentation:" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "Offizielle Verwaltungsdokumentation:" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "Upstream App Repository:" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "YunoHost-Shop:" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "Einen Fehler melden:" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "Entwicklerinformationen" -#: templates/README.md.j2:79 -#, python-format +#: templates/README.md.j2:81 +#, fuzzy, python-format +#| msgid "" +#| "Please send your pull request to the [testing branch]" +#| "(%(testing_branch_url)s)" msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" "Bitte senden Sie Ihren Pull-Request an den [testing branch]" "(%(testing_branch_url)s)" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +#, fuzzy +#| msgid "To try the testing branch, please proceed like that:" +msgid "To try the `testing` branch, please proceed like that:" msgstr "Um den Testing-Branch auszuprobieren, gehen Sie bitte wie folgt vor:" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "oder" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "Weitere Informationen zur App-Paketierung:" -#~ msgid "Add a `LICENSE` file for the package." -#~ msgstr "Fügen Sie eine `LICENSE`-Datei für das Paket hinzu." +#~ msgid "Edit files under the `doc/` directory" +#~ msgstr "Dateien unter dem Verzeichnis `doc/` bearbeiten" #~ msgid "Edit `doc/DISCLAIMER*.md`" #~ msgstr "Bearbeite `doc/DISCLAIMER*.md`" diff --git a/tools/readme_generator/translations/el/LC_MESSAGES/messages.po b/tools/readme_generator/translations/el/LC_MESSAGES/messages.po index 824a1e56e7..ec053d813a 100644 --- a/tools/readme_generator/translations/el/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/el/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/eo/LC_MESSAGES/messages.po b/tools/readme_generator/translations/eo/LC_MESSAGES/messages.po index 4a49303d55..5498fd84fe 100644 --- a/tools/readme_generator/translations/eo/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/eo/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/es/LC_MESSAGES/messages.po b/tools/readme_generator/translations/es/LC_MESSAGES/messages.po index 97d0245186..8c625c7d7f 100644 --- a/tools/readme_generator/translations/es/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/es/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/eu/LC_MESSAGES/messages.po b/tools/readme_generator/translations/eu/LC_MESSAGES/messages.po index 4e6a6db40a..b678cb3193 100644 --- a/tools/readme_generator/translations/eu/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/eu/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: 2024-03-25 00:10+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: Basque " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "Irakurri README hau beste hizkuntzatan." -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "Pantaila-argazkiak" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "%(application_name)s(r)en pantaila-argazkia" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "Dokumentazioa eta baliabideak" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "Aplikazioaren webgune nagusia:" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "YunoHost Denda:" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "Eman errore baten berri:" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "Garatzaileentzako informazioa" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "Informazio gehiago aplikazioaren paketatzeari buruz:" diff --git a/tools/readme_generator/translations/fa/LC_MESSAGES/messages.po b/tools/readme_generator/translations/fa/LC_MESSAGES/messages.po index f3bf4d854d..7079baa4e2 100644 --- a/tools/readme_generator/translations/fa/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/fa/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/fi/LC_MESSAGES/messages.po b/tools/readme_generator/translations/fi/LC_MESSAGES/messages.po index 3a5836e074..f8559a70e1 100644 --- a/tools/readme_generator/translations/fi/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/fi/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/fr/LC_MESSAGES/messages.po b/tools/readme_generator/translations/fr/LC_MESSAGES/messages.po index cffe9ce773..a415b7d921 100644 --- a/tools/readme_generator/translations/fr/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/fr/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: 2024-03-25 06:24+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: French " @@ -94,7 +126,7 @@ msgstr "" "Les fichiers `README.md` sont automatiquement généré par " -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" @@ -104,128 +136,153 @@ msgstr "" "YunoHost/apps/tree/master/tools/readme_generator>\n" "Il NE doit PAS être modifié à la main." -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "%(application_name)s pour YunoHost" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "Niveau d’intégration" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "Statut du fonctionnement" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "Statut de maintenance" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "Installer %(application_name)s avec YunoHost" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "Lire le README dans d'autres langues." -#: templates/README.md.j2:29 -#, python-format +#: templates/README.md.j2:30 +#, fuzzy, python-format +#| msgid "" +#| "This package allows you to install %(application_name)s quickly and " +#| "simply on a YunoHost server.\n" +#| "If you don't have YunoHost, please consult [the guide](https://yunohost." +#| "org/#/install) to learn how to install it." msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" +"Ce package vous permet d’installer %(application_name)s rapidement et " +"simplement sur un serveur YunoHost.\n" +"Si vous n’avez pas YunoHost, consultez [ce guide](https://yunohost.org/#/" +"install) pour savoir comment l’installer et en profiter." + +#: templates/README.md.j2:31 +#, fuzzy +#| msgid "" +#| "This package allows you to install %(application_name)s quickly and " +#| "simply on a YunoHost server.\n" +#| "If you don't have YunoHost, please consult [the guide](https://yunohost." +#| "org/#/install) to learn how to install it." +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" "Ce package vous permet d’installer %(application_name)s rapidement et " "simplement sur un serveur YunoHost.\n" "Si vous n’avez pas YunoHost, consultez [ce guide](https://yunohost.org/#/" "install) pour savoir comment l’installer et en profiter." -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "Vue d’ensemble" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "Version incluse :" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "Démo :" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "Captures d’écran" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "Capture d’écran de %(application_name)s" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "Avertissements / informations importantes" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "Anti-fonctionnalités" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "Documentations et ressources" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "Site officiel de l’app :" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "Documentation officielle utilisateur :" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "Documentation officielle de l’admin :" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "Dépôt de code officiel de l’app :" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "YunoHost Store :" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "Signaler un bug :" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "Informations pour les développeurs" -#: templates/README.md.j2:79 -#, python-format +#: templates/README.md.j2:81 +#, fuzzy, python-format +#| msgid "" +#| "Please send your pull request to the [testing branch]" +#| "(%(testing_branch_url)s)" msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" "Merci de faire vos pull request sur la [branche testing]" "(%(testing_branch_url)s)" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +#, fuzzy +#| msgid "To try the testing branch, please proceed like that:" +msgid "To try the `testing` branch, please proceed like that:" msgstr "Pour essayer la branche testing, procédez comme suit :" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "ou" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "Plus d’infos sur le packaging d’applications :" -#~ msgid "Add a `LICENSE` file for the package." -#~ msgstr "Ajoutez un fichier `LICENCE` for le paquet." +#~ msgid "Edit files under the `doc/` directory" +#~ msgstr "Modifier des fichiers dans le dossier `doc/`" #~ msgid "Edit `doc/DISCLAIMER*.md`" #~ msgstr "Éditez `doc/DISCLAIMER*.md`" diff --git a/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po b/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po index 9dee1b0524..b220a5ab8b 100644 --- a/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: 2024-03-25 06:24+0000\n" "Last-Translator: \"José M.\" \n" "Language-Team: Galician " @@ -91,7 +123,7 @@ msgstr "" "Os ficheiros `README.md` créanse automáticamente con " -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" @@ -101,126 +133,151 @@ msgstr "" "YunoHost/apps/tree/master/tools/readme_generator>\n" "NON debe editarse manualmente." -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "%(application_name)s para YunoHost" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "Nivel de integración" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "Estado de funcionamento" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "Estado de mantemento" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "Instalar %(application_name)s con YunoHost" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "Le este README en outros idiomas." -#: templates/README.md.j2:29 -#, python-format +#: templates/README.md.j2:30 +#, fuzzy, python-format +#| msgid "" +#| "This package allows you to install %(application_name)s quickly and " +#| "simply on a YunoHost server.\n" +#| "If you don't have YunoHost, please consult [the guide](https://yunohost." +#| "org/#/install) to learn how to install it." msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" +"Este paquete permíteche instalar %(application_name)s de xeito rápido e " +"doado nun servidor YunoHost.\n" +"Se non usas YunoHost, le a [documentación](https://yunohost.org/#/install) " +"para saber como instalalo." + +#: templates/README.md.j2:31 +#, fuzzy +#| msgid "" +#| "This package allows you to install %(application_name)s quickly and " +#| "simply on a YunoHost server.\n" +#| "If you don't have YunoHost, please consult [the guide](https://yunohost." +#| "org/#/install) to learn how to install it." +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" "Este paquete permíteche instalar %(application_name)s de xeito rápido e " "doado nun servidor YunoHost.\n" "Se non usas YunoHost, le a [documentación](https://yunohost.org/#/install) " "para saber como instalalo." -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "Vista xeral" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "Versión proporcionada:" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "Demo:" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "Capturas de pantalla" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "Captura de pantalla de %(application_name)s" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "Avisos / información importante" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "Caraterísticas cuestionables" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "Documentación e recursos" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "Web oficial da app:" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "Documentación oficial para usuarias:" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "Documentación oficial para admin:" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "Repositorio de orixe do código:" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "Tenda YunoHost:" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "Informar dun problema:" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "Info de desenvolvemento" -#: templates/README.md.j2:79 -#, python-format +#: templates/README.md.j2:81 +#, fuzzy, python-format +#| msgid "" +#| "Please send your pull request to the [testing branch]" +#| "(%(testing_branch_url)s)" msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "Envía a túa colaboración á [rama testing](%(testing_branch_url)s)" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +#, fuzzy +#| msgid "To try the testing branch, please proceed like that:" +msgid "To try the `testing` branch, please proceed like that:" msgstr "Para probar a rama testing, procede deste xeito:" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "ou" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "Máis info sobre o empaquetado da app:" -#~ msgid "Add a `LICENSE` file for the package." -#~ msgstr "Engade un ficheiro `LICENSE` para o paquete." +#~ msgid "Edit files under the `doc/` directory" +#~ msgstr "Editar os ficheiros dentro do directorio `doc/`" #~ msgid "Edit `doc/DISCLAIMER*.md`" #~ msgstr "Edita `doc/DISCLAIMER*.md`" diff --git a/tools/readme_generator/translations/he/LC_MESSAGES/messages.po b/tools/readme_generator/translations/he/LC_MESSAGES/messages.po index 47220de53b..f80cb0fe4e 100644 --- a/tools/readme_generator/translations/he/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/he/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/hi/LC_MESSAGES/messages.po b/tools/readme_generator/translations/hi/LC_MESSAGES/messages.po index ceb8cd7657..c900ffe82b 100644 --- a/tools/readme_generator/translations/hi/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/hi/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/hu/LC_MESSAGES/messages.po b/tools/readme_generator/translations/hu/LC_MESSAGES/messages.po index b1f19ae8fc..f8c9da0751 100644 --- a/tools/readme_generator/translations/hu/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/hu/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/id/LC_MESSAGES/messages.po b/tools/readme_generator/translations/id/LC_MESSAGES/messages.po index 6e505c41c0..140d187c1a 100644 --- a/tools/readme_generator/translations/id/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/id/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/it/LC_MESSAGES/messages.po b/tools/readme_generator/translations/it/LC_MESSAGES/messages.po index 0d12571048..b41991411e 100644 --- a/tools/readme_generator/translations/it/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/it/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/ja/LC_MESSAGES/messages.po b/tools/readme_generator/translations/ja/LC_MESSAGES/messages.po index 7f240f0d0f..c21f5a8a94 100644 --- a/tools/readme_generator/translations/ja/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/ja/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/kab/LC_MESSAGES/messages.po b/tools/readme_generator/translations/kab/LC_MESSAGES/messages.po index 241444cd4c..2f42d35bdf 100644 --- a/tools/readme_generator/translations/kab/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/kab/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/ko/LC_MESSAGES/messages.po b/tools/readme_generator/translations/ko/LC_MESSAGES/messages.po index 54f6f2773c..5b7d75ff6a 100644 --- a/tools/readme_generator/translations/ko/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/ko/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/lt/LC_MESSAGES/messages.po b/tools/readme_generator/translations/lt/LC_MESSAGES/messages.po index 23990f8c7f..5a3729197f 100644 --- a/tools/readme_generator/translations/lt/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/lt/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/mk/LC_MESSAGES/messages.po b/tools/readme_generator/translations/mk/LC_MESSAGES/messages.po index edb33e31c3..e62011eb98 100644 --- a/tools/readme_generator/translations/mk/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/mk/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/nb_NO/LC_MESSAGES/messages.po b/tools/readme_generator/translations/nb_NO/LC_MESSAGES/messages.po index 4d7af79b69..082e89005c 100644 --- a/tools/readme_generator/translations/nb_NO/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/nb_NO/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/ne/LC_MESSAGES/messages.po b/tools/readme_generator/translations/ne/LC_MESSAGES/messages.po index 82d98c10e4..4249d3efef 100644 --- a/tools/readme_generator/translations/ne/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/ne/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/nl/LC_MESSAGES/messages.po b/tools/readme_generator/translations/nl/LC_MESSAGES/messages.po index 2c515756f9..804944b430 100644 --- a/tools/readme_generator/translations/nl/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/nl/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: 2024-03-25 00:14+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: Dutch " @@ -91,7 +123,7 @@ msgstr "" "De `README.md`-bestanden worden automatisch gegenereerd door " -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" @@ -101,123 +133,146 @@ msgstr "" "apps/tree/master/tools/readme_generator>\n" "Hij mag NIET handmatig aangepast worden." -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "%(application_name)s voor Yunohost" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "Integratieniveau" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "Mate van functioneren" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "Onderhoudsstatus" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "%(application_name)s met Yunohost installeren" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "Deze README in een andere taal lezen." -#: templates/README.md.j2:29 -#, python-format +#: templates/README.md.j2:30 +#, fuzzy, python-format +#| msgid "" +#| "This package allows you to install %(application_name)s quickly and " +#| "simply on a YunoHost server.\n" +#| "If you don't have YunoHost, please consult [the guide](https://yunohost." +#| "org/#/install) to learn how to install it." msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" +"Met dit pakket kun je %(application_name)s snel en eenvoudig op een YunoHost-" +"server installeren.\n" +"Als je nog geen YunoHost hebt, lees dan [de installatiehandleiding](https://" +"yunohost.org/#/install), om te zien hoe je 'm installeert." + +#: templates/README.md.j2:31 +#, fuzzy +#| msgid "" +#| "This package allows you to install %(application_name)s quickly and " +#| "simply on a YunoHost server.\n" +#| "If you don't have YunoHost, please consult [the guide](https://yunohost." +#| "org/#/install) to learn how to install it." +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" "Met dit pakket kun je %(application_name)s snel en eenvoudig op een YunoHost-" "server installeren.\n" "Als je nog geen YunoHost hebt, lees dan [de installatiehandleiding](https://" "yunohost.org/#/install), om te zien hoe je 'm installeert." -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "Overzicht" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "Geleverde versie:" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "Demo:" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "Schermafdrukken" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "Schermafdrukken van %(application_name)s" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "Uitsluitingen / belangrijke informatie" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "Anti-eigenschappen" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "Documentatie en bronnen" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "Officiele website van de app:" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "Officiele gebruikersdocumentatie:" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "Officiele beheerdersdocumentatie:" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "Upstream app codedepot:" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "YunoHost-store:" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "Meld een bug:" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "Ontwikkelaarsinformatie" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, fuzzy, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" "Stuur je pull request alsjeblieft naar de [testing-branch]" "(%(testing_branch_url)s)" -#: templates/README.md.j2:82 +#: templates/README.md.j2:83 #, fuzzy -msgid "To try the testing branch, please proceed like that:" +msgid "To try the `testing` branch, please proceed like that:" msgstr "Om de testing-branch uit te proberen, ga als volgt te werk:" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "of" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "Verdere informatie over app-packaging:" + +#~ msgid "Edit files under the `doc/` directory" +#~ msgstr "Bestanden in de `doc/`-directory bewerken" diff --git a/tools/readme_generator/translations/oc/LC_MESSAGES/messages.po b/tools/readme_generator/translations/oc/LC_MESSAGES/messages.po index e467e5836e..a2f4d38337 100644 --- a/tools/readme_generator/translations/oc/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/oc/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/pl/LC_MESSAGES/messages.po b/tools/readme_generator/translations/pl/LC_MESSAGES/messages.po index df72e1497e..73754657bf 100644 --- a/tools/readme_generator/translations/pl/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/pl/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: 2024-03-25 05:01+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: Polish " @@ -90,7 +112,7 @@ msgstr "" "Pliki `README.md` są automatycznie generowane przez " -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" @@ -100,126 +122,148 @@ msgstr "" "YunoHost/apps/tree/master/tools/readme_generator>\n" "Nie powinno być ono edytowane ręcznie." -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "%(application_name)s dla YunoHost" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "Poziom integracji" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "Status działania" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "Status utrzymania" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "Zainstaluj %(application_name)s z YunoHost" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "Przeczytaj README w innym języku." -#: templates/README.md.j2:29 -#, python-format +#: templates/README.md.j2:30 +#, fuzzy, python-format +#| msgid "" +#| "This package allows you to install %(application_name)s quickly and " +#| "simply on a YunoHost server.\n" +#| "If you don't have YunoHost, please consult [the guide](https://yunohost." +#| "org/#/install) to learn how to install it." msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" +"Ta aplikacja pozwala na szybką i prostą instalację %(application_name)s na " +"serwerze YunoHost.\n" +"Jeżeli nie masz YunoHost zapoznaj się z [poradnikiem](https://yunohost.org/#/" +"install) instalacji." + +#: templates/README.md.j2:31 +#, fuzzy +#| msgid "" +#| "This package allows you to install %(application_name)s quickly and " +#| "simply on a YunoHost server.\n" +#| "If you don't have YunoHost, please consult [the guide](https://yunohost." +#| "org/#/install) to learn how to install it." +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" "Ta aplikacja pozwala na szybką i prostą instalację %(application_name)s na " "serwerze YunoHost.\n" "Jeżeli nie masz YunoHost zapoznaj się z [poradnikiem](https://yunohost.org/#/" "install) instalacji." -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "Przegląd" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "Dostarczona wersja:" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "Demo:" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "Zrzuty ekranu" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "Zrzut ekranu z %(application_name)s" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "Zastrzeżenia / ważne informacje" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "Niepożądane funkcje" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "Dokumentacja i zasoby" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "Oficjalna strona aplikacji:" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "Oficjalna dokumentacja:" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "Oficjalna dokumentacja dla administratora:" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "Repozytorium z kodem źródłowym:" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "Sklep YunoHost:" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "Zgłaszanie błędów:" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "Informacje od twórców" -#: templates/README.md.j2:79 -#, python-format +#: templates/README.md.j2:81 +#, fuzzy, python-format +#| msgid "" +#| "Please send your pull request to the [testing branch]" +#| "(%(testing_branch_url)s)" msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "Wyślij swój pull request do [gałęzi testowej](%(testing_branch_url)s)" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +#, fuzzy +#| msgid "To try the testing branch, please proceed like that:" +msgid "To try the `testing` branch, please proceed like that:" msgstr "Aby wypróbować gałąź testową postępuj zgodnie z instrukcjami:" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "Więcej informacji o tworzeniu paczek aplikacji:" -#~ msgid "Add a `LICENSE` file for the package." -#~ msgstr "Dodaj plik `LICENSE` dla paczki." - #~ msgid "Edit `doc/DISCLAIMER*.md`" #~ msgstr "Edytuj `doc/DISCLAIMER*.md`" diff --git a/tools/readme_generator/translations/pt/LC_MESSAGES/messages.po b/tools/readme_generator/translations/pt/LC_MESSAGES/messages.po index 6c7e29d9a8..a7be8ba090 100644 --- a/tools/readme_generator/translations/pt/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/pt/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/pt_BR/LC_MESSAGES/messages.po b/tools/readme_generator/translations/pt_BR/LC_MESSAGES/messages.po index 8a92282a14..5d9a795107 100644 --- a/tools/readme_generator/translations/pt_BR/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/pt_BR/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/ru/LC_MESSAGES/messages.po b/tools/readme_generator/translations/ru/LC_MESSAGES/messages.po index 8f10d2848e..a405801872 100644 --- a/tools/readme_generator/translations/ru/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/ru/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/sk/LC_MESSAGES/messages.po b/tools/readme_generator/translations/sk/LC_MESSAGES/messages.po index b610552005..dac368e7ff 100644 --- a/tools/readme_generator/translations/sk/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/sk/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/sl/LC_MESSAGES/messages.po b/tools/readme_generator/translations/sl/LC_MESSAGES/messages.po index 145234c0a4..55ee5cdf8c 100644 --- a/tools/readme_generator/translations/sl/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/sl/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/sv/LC_MESSAGES/messages.po b/tools/readme_generator/translations/sv/LC_MESSAGES/messages.po index 2a15723e47..bff8cd77f0 100644 --- a/tools/readme_generator/translations/sv/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/sv/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/te/LC_MESSAGES/messages.po b/tools/readme_generator/translations/te/LC_MESSAGES/messages.po index 39733f9e39..91e1384c2d 100644 --- a/tools/readme_generator/translations/te/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/te/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/tr/LC_MESSAGES/messages.po b/tools/readme_generator/translations/tr/LC_MESSAGES/messages.po index b1083e1650..664f1c62a5 100644 --- a/tools/readme_generator/translations/tr/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/tr/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/uk/LC_MESSAGES/messages.po b/tools/readme_generator/translations/uk/LC_MESSAGES/messages.po index 712b664e28..07d9a04dcd 100644 --- a/tools/readme_generator/translations/uk/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/uk/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -30,7 +30,7 @@ msgstr "" msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " -"the Github repo." +"the Github repo" msgstr "" #: templates/README.md.j2:5 @@ -40,12 +40,12 @@ msgstr "" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " -"any relevant conf files in `conf/`." +"any relevant conf files in `conf/`" msgstr "" #: templates/README.md.j2:7 msgid "" -"Using the [script helpers documentation.](https://yunohost.org/" +"Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" @@ -56,140 +56,151 @@ msgid "" msgstr "" #: templates/README.md.j2:9 -msgid "" -"Add a `LICENSE` file for the package. NB: this LICENSE file is not meant to " -"necessarily be the LICENSE of the upstream app - it is only the LICENSE you " -"want this package's code to published with ;). We recommend to use [the " -"AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +msgid "Add a `LICENSE` file for the package." msgstr "" #: templates/README.md.j2:10 -msgid "Edit files under the `doc/` directory" +msgid "" +"NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " +"the upstream app - it is only the LICENSE you want this package's code to " +"published with and you can choose it freely! (If you don't know which to " +"choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" #: templates/README.md.j2:11 msgid "" +"Edit files under the `doc/` directory ([see the page about documenting " +"packages](https://yunohost.org/packaging_app_doc))" +msgstr "" + +#: templates/README.md.j2:12 +msgid "" "The `README.md` files are to be automatically generated by " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" diff --git a/tools/readme_generator/translations/zh_Hans/LC_MESSAGES/messages.po b/tools/readme_generator/translations/zh_Hans/LC_MESSAGES/messages.po index 974a028531..690953408b 100644 --- a/tools/readme_generator/translations/zh_Hans/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/zh_Hans/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 01:09+0100\n" +"POT-Creation-Date: 2024-03-25 07:00+0100\n" "PO-Revision-Date: 2024-03-24 15:57+0000\n" "Last-Translator: Poesty Li \n" "Language-Team: Chinese (Simplified) " msgstr "" -#: templates/README.md.j2:17 +#: templates/README.md.j2:18 msgid "" "N.B.: This README was automatically generated by \n" "It shall NOT be edited by hand." msgstr "" -#: templates/README.md.j2:21 +#: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Integration level" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Working status" msgstr "" -#: templates/README.md.j2:23 +#: templates/README.md.j2:24 msgid "Maintenance status" msgstr "维护状态" -#: templates/README.md.j2:25 +#: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" msgstr "" -#: templates/README.md.j2:27 +#: templates/README.md.j2:28 msgid "Read this README is other languages." msgstr "" -#: templates/README.md.j2:29 +#: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " -"on a YunoHost server.\n" +"on a YunoHost server." +msgstr "" + +#: templates/README.md.j2:31 +msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" -"#/install) to learn how to install it." +"install) to learn how to install it." msgstr "" -#: templates/README.md.j2:32 +#: templates/README.md.j2:33 msgid "Overview" msgstr "" -#: templates/README.md.j2:35 +#: templates/README.md.j2:37 msgid "Shipped version:" msgstr "" -#: templates/README.md.j2:39 +#: templates/README.md.j2:41 msgid "Demo:" msgstr "" -#: templates/README.md.j2:43 +#: templates/README.md.j2:45 msgid "Screenshots" msgstr "" -#: templates/README.md.j2:46 +#: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" msgstr "" -#: templates/README.md.j2:51 +#: templates/README.md.j2:53 msgid "Disclaimers / important information" msgstr "" -#: templates/README.md.j2:57 +#: templates/README.md.j2:59 msgid "Antifeatures" msgstr "" -#: templates/README.md.j2:64 +#: templates/README.md.j2:66 msgid "Documentation and resources" msgstr "" -#: templates/README.md.j2:66 +#: templates/README.md.j2:68 msgid "Official app website:" msgstr "" -#: templates/README.md.j2:68 +#: templates/README.md.j2:70 msgid "Official user documentation:" msgstr "" -#: templates/README.md.j2:70 +#: templates/README.md.j2:72 msgid "Official admin documentation:" msgstr "" -#: templates/README.md.j2:72 +#: templates/README.md.j2:74 msgid "Upstream app code repository:" msgstr "" -#: templates/README.md.j2:74 +#: templates/README.md.j2:76 msgid "YunoHost Store:" msgstr "" -#: templates/README.md.j2:75 +#: templates/README.md.j2:77 msgid "Report a bug:" msgstr "" -#: templates/README.md.j2:77 +#: templates/README.md.j2:79 msgid "Developer info" msgstr "" -#: templates/README.md.j2:79 +#: templates/README.md.j2:81 #, python-format msgid "" -"Please send your pull request to the [testing branch](%(testing_branch_url)s)" +"Please send your pull request to the [`testing` branch]" +"(%(testing_branch_url)s)." msgstr "" -#: templates/README.md.j2:82 -msgid "To try the testing branch, please proceed like that:" +#: templates/README.md.j2:83 +msgid "To try the `testing` branch, please proceed like that:" msgstr "" -#: templates/README.md.j2:86 +#: templates/README.md.j2:87 msgid "or" msgstr "" -#: templates/README.md.j2:90 +#: templates/README.md.j2:91 msgid "More info regarding app packaging:" msgstr "" From 9d556bfcf4ec9c1e96deb0e7841915b517271dd4 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 06:45:18 +0000 Subject: [PATCH 044/292] Translated readme-generator using Weblate (French) Currently translated at 97.4% (38 of 39 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/fr/ --- .../translations/fr/LC_MESSAGES/messages.mo | Bin 5738 -> 5409 bytes .../translations/fr/LC_MESSAGES/messages.po | 78 +++++------------- 2 files changed, 20 insertions(+), 58 deletions(-) diff --git a/tools/readme_generator/translations/fr/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/fr/LC_MESSAGES/messages.mo index fd2a4ea5ea41c8405ce2c25a597f788f29f2bf4a..362ab9d43a986c2ea8fd2977bf8c420fc04e1f0f 100644 GIT binary patch delta 1332 zcmZ|OTWAzl9LMpqb#vQIj3ybQwWgycx|^n1lqh(4i=v^TrA??-G`rc1*~K^$cV?`K zNMhP5f>h+F4XIERq2!_TVTs~}D)<(VDnVaFL7&726-9)yrTzXVm-eLx&VFXjOwReA z-<-T?y4X1Qq$+$)(N@wwqPK^XT7#!P;D?r+qtsGNVFP}PA?*pGSKg`e`WgC{Vd)S!CLMIQqzi4-bN|> zA(rA>Y{CM5j&TM*#sRFyQLMmQxQzAHT`r;wyvBK0z#*(CWB2$2uEkd<3$KVM)q$H( zc07ueIEE71H5?(un<#~M5Z5Po7^UFLIDyx(jP=#`lp~Ry#yI9tcJvre;-9!5zhkx2 z_!_^!Ayz$(lh}k`Q++L-Kw0Q#Y{79H!xt#?pCw+I|92dWaq)-?o~bZ-uSNsE#I0C| z7q9_uU^PC)MtnDYZ!#$3E&LqAttbUg;09bbzWvrX3ekY27jXUBp_Bn8e{ z&^WNce}#NoX>us#d#|8#=!3HWLDZbJpvh;H#t{mVtI}i?K1(rhl!e%eT(| zJG6Xu=X+uevFVsPyK*Tzo$2&*y>U0*obRe04e4QH(SLHhWMm_IVj0itb7h}}NK9{7 GkoX6!2=XNW delta 1712 zcmb7@PiP!f9LL{g^Ut*Tw@F&-pY+xI*`_4BlIWpn1#65V#58SVOD&a5W?y!POlH=3 zGl{9n+D1@3X-A9Hiwf1oi(nLbu&3ZfP>>29g!WVfPwK&of_~oYCd8wU%=^4IdGq`I z-uL_4j}HAhT)Ca8e@`$5c^=@IN(u2Oe5H1D0W?QHZ<{6|u(R5HB`hC%g?a@HhAnOg9N}1rEXo;Z4{B ze}<;u-(fRsV;Y8g;j{2bxF24I{qPIe3V(to?p?Tx{G$0DAv$=`4PS!;@D}_8J_0Ya zR1<#=PqY6Hnw$3T5~3ZBK_k`#d>@6Lf+oQoWIDyZj;yBO(|q&|bRnU|C?EHcUmRsI z1m~c+(Ob~m=O9;7+=1FlYTh3Au_DLzApU=bNw$xN z-c6d<^o428K5<+K`YahVa`G!M-kM<~LU|#1Oyd{{&ES%Po=a|Id^Uq#610WrjL)Wz zSLE~)<1#EcT24JPF*$u|QZ6{IlI%S{luOF;LK*tfQ?}CD3LJM;&MQ7p+voj-WE+)r z7$|E=TII4Fkxpo0_#WqX9$xh$xst>*Da%&HUbKoTtEKH12>El<2G6>tijxYg#m-24o& zrMJ1B*y02VaZtR#><~(Bekfh5YSF}`EL4k6yvB)C?QTaB{g zLu*;t1R|nKmCJsl&E%>J(j?(kVjIp;bM+2V`&gg2NSVgIX}+4SIcRwW-_x>?jY0>T z(c+w&{r@(`AMd^t|C64K{nj2ld%gA5fj}0N-qMW>7HO!j;A@>oUhwVwT)fuyH|Hzu zvm4KM^wu?P8D$LpAam6idaM0#C#|#^d49>)VbV)|ac{@b{WHcZ^CMWLY&5Di15I0P Rj`&QsL+r(teEdgu{$J=HY(oG5 diff --git a/tools/readme_generator/translations/fr/LC_MESSAGES/messages.po b/tools/readme_generator/translations/fr/LC_MESSAGES/messages.po index a415b7d921..2ad142a5bd 100644 --- a/tools/readme_generator/translations/fr/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/fr/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 07:00+0100\n" -"PO-Revision-Date: 2024-03-25 06:24+0000\n" +"PO-Revision-Date: 2024-03-25 07:12+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: French \n" @@ -30,20 +30,14 @@ msgid "Packaging an app, starting from this example" msgstr "Packager une application, à partir de cet exemple" #: templates/README.md.j2:4 -#, fuzzy -#| msgid "" -#| "Copy this app before working on it, using the ['Use this template']" -#| "(https://github.com/new?" -#| "template_name=example_ynh&template_owner=YunoHost) button on the Github " -#| "repo." msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " "the Github repo" msgstr "" -"Copiez cette application avant de travailler dessus, en utilisant le bouton " -"['Utilisez ce template'](https://github.com/new?" -"template_name=example_ynh&template_owner=YunoHost) sur ce dépôt Github." +"Copiez cette application avant de travailler dessus, en utilisant le bouton [" +"'Utilisez ce template'](https ://github.com/new " +"?template_name=example_ynh&template_owner=YunoHost) sur ce dépôt Github" #: templates/README.md.j2:5 msgid "Edit the `manifest.toml` with app specific info" @@ -52,27 +46,19 @@ msgstr "" "application" #: templates/README.md.j2:6 -#, fuzzy -#| msgid "" -#| "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, " -#| "and any relevant conf files in `conf/`." msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " "any relevant conf files in `conf/`" msgstr "" "Éditez les scripts `install`, `upgrade`, `remove`, `backup` et `restore` " -"ainsi que tous les fichiers de configurations pertinents dans `conf/`." +"ainsi que tous les fichiers de configurations pertinents dans `conf/`" #: templates/README.md.j2:7 -#, fuzzy -#| msgid "" -#| "Using the [script helpers documentation.](https://yunohost.org/" -#| "packaging_apps_helpers)" msgid "" "Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" -"Utilisez la [documentation des helpers.](https://yunohost.org/" +"Utilisez la [documentation des helpers](https ://yunohost.org/" "packaging_apps_helpers)" #: templates/README.md.j2:8 @@ -100,23 +86,19 @@ msgid "" "published with and you can choose it freely! (If you don't know which to " "choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" -"Ajouter un fichier `LICENSE` pour le paquet. NB : ce fichier LICENSE n'est " -"pas censé être nécessairement identique à la LICENCE de l'application " -"packagée - c'est seulement la LICENCE avec laquelle vous voulez que le code " -"de ce paquet soit publié ;). Nous recommandons d'utiliser [l'AGPL-3](https://" -"www.gnu.org/licenses/agpl-3.0.txt)." +"NB : ce fichier LICENSE ne doit pas nécessairement être identique à la " +"LICENCE de l'application packagée - c'est seulement la LICENCE avec laquelle " +"vous voulez que le code de ce paquet soit publié et vos pouvez librement la " +"choisir ! (Si vous ne savez pas laquelle choisir, nous recommandons " +"[l'AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" #: templates/README.md.j2:11 -#, fuzzy -#| msgid "" -#| "Using the [script helpers documentation.](https://yunohost.org/" -#| "packaging_apps_helpers)" msgid "" "Edit files under the `doc/` directory ([see the page about documenting " "packages](https://yunohost.org/packaging_app_doc))" msgstr "" -"Utilisez la [documentation des helpers.](https://yunohost.org/" -"packaging_apps_helpers)" +"Modifiez les fichiers du dossier `doc/` ([voir la page concernant la " +"documentation des packages](https://yunohost.org/packaging_app_doc))" #: templates/README.md.j2:12 msgid "" @@ -163,35 +145,20 @@ msgid "Read this README is other languages." msgstr "Lire le README dans d'autres langues." #: templates/README.md.j2:30 -#, fuzzy, python-format -#| msgid "" -#| "This package allows you to install %(application_name)s quickly and " -#| "simply on a YunoHost server.\n" -#| "If you don't have YunoHost, please consult [the guide](https://yunohost." -#| "org/#/install) to learn how to install it." +#, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " "on a YunoHost server." msgstr "" "Ce package vous permet d’installer %(application_name)s rapidement et " -"simplement sur un serveur YunoHost.\n" -"Si vous n’avez pas YunoHost, consultez [ce guide](https://yunohost.org/#/" -"install) pour savoir comment l’installer et en profiter." +"simplement sur un serveur YunoHost." #: templates/README.md.j2:31 -#, fuzzy -#| msgid "" -#| "This package allows you to install %(application_name)s quickly and " -#| "simply on a YunoHost server.\n" -#| "If you don't have YunoHost, please consult [the guide](https://yunohost." -#| "org/#/install) to learn how to install it." msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" "install) to learn how to install it." msgstr "" -"Ce package vous permet d’installer %(application_name)s rapidement et " -"simplement sur un serveur YunoHost.\n" -"Si vous n’avez pas YunoHost, consultez [ce guide](https://yunohost.org/#/" +"Si vous n’avez pas YunoHost, consultez [ce guide](https ://yunohost.org/" "install) pour savoir comment l’installer et en profiter." #: templates/README.md.j2:33 @@ -256,22 +223,17 @@ msgid "Developer info" msgstr "Informations pour les développeurs" #: templates/README.md.j2:81 -#, fuzzy, python-format -#| msgid "" -#| "Please send your pull request to the [testing branch]" -#| "(%(testing_branch_url)s)" +#, python-format msgid "" "Please send your pull request to the [`testing` branch]" "(%(testing_branch_url)s)." msgstr "" -"Merci de faire vos pull request sur la [branche testing]" -"(%(testing_branch_url)s)" +"Merci de faire vos pull request sur la [branche " +"`testing`](%(testing_branch_url)s)." #: templates/README.md.j2:83 -#, fuzzy -#| msgid "To try the testing branch, please proceed like that:" msgid "To try the `testing` branch, please proceed like that:" -msgstr "Pour essayer la branche testing, procédez comme suit :" +msgstr "Pour essayer la branche `testing`, procédez comme suit :" #: templates/README.md.j2:87 msgid "or" From d00fb54742124a5ca60da0bf351298a0a7c47143 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 06:58:49 +0000 Subject: [PATCH 045/292] Translated readme-generator using Weblate (Catalan) Currently translated at 89.7% (35 of 39 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/ca/ --- .../translations/ca/LC_MESSAGES/messages.mo | Bin 4410 -> 4789 bytes .../translations/ca/LC_MESSAGES/messages.po | 58 ++++-------------- 2 files changed, 13 insertions(+), 45 deletions(-) diff --git a/tools/readme_generator/translations/ca/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/ca/LC_MESSAGES/messages.mo index 0c0edc46a2db51e344d9b175fbc8adbbfa7627af..f04e0667e7a0c559bf981aa45761adc7d250f39a 100644 GIT binary patch delta 1333 zcma*lPizcP9Ki9n?dtZQw*FQ9?Ni(MleHzmi6B%e6(P7e%-EgX4!bjJX0~Y$vJHuY z1Cd7$BuYXguGI^YI=Hy_cOj8*agdNWNW@8ee^ZO2U;6g*=Jm~c@AsScuy3Zn_I_dV znj+G)m9!lRrMBUT27ZXmjY_S-E!dAou^q?p9$vtCm`y6xfm?Ac?!^^YL?6%N0Di*? zuH~hTO4Za=Itv(>#fA6^`|u-9Vya20Rd^GZ;A517zQ$(!iW&TYhp|7UR4|%fQgU$p4Ev#nYMcj^`Q8w;tQR+DEM#*pzJMk{wpjtC16*|JIWTZlr zgWkla_yEa8jZ-$6S3_C%HukW;nx!KpdW-vUh~wt)GH$|exER;4ySN><;xJC(1j@#m zQ^^LyD4(E={7YRyN$3_1;TzPbyEx2xI(z6y=}%z>&!TK}ANf^Ghi2-N6K|rghUORQzcmJ|NWMlgI#b=gKV)gxraGETba_lAxMuDNRaR z54o#7wAT6nE~iQMT#Go8zonRQPy{YAbxG4{q{(fSSVZGW#3ALB;3~wIPO_2=&6(D2 z^RuBNozH7qTL%y99Xxb&(9#9BwOQDb=4kFn1QC+q7ZpK4Ti zvP;zAOx209#d22m?UX`o2V-tEl#0xiB-DAQUI_EN zZODA++-X*Kt()#{Z)x}^#kQtpq`0eND$%PBbIMBKkJ^DQ+4^K)dpSPopJeT>bCRr? LYVI+M7OeXPBsQyt+A4`fD1rx3swoHxJ(Plo*c^(ngw?iNsa{gl zgLqMR8pI+&JSe?MtW__fqC!1*5Go$5S9|kZ5dF`_MjyQVcK2mx-kaI^u9uyq<#_mx zFm^DvGIv@cy_i|Y590^w+6p#fG$isE+c1K!u?0V18kcYjuA;_Cg+=z@0LE|}<9HQ2 zMM_fUqRfLAxD5x1nnVwEL)WkYA7BRO@C1Ir4(wXbrZI;Ojv;|%8lyOit@sFM@Hu|Q z1GY#X`Nbi+Cho^!96>$N0&c+fI7?NQP%AOfRNLTfe8>G9vKP5PHeJ7n8t*Q);WHe- zPng9NW!#8IRr1S8F8a{J3O+LF4qr-Dn{P4hHWFZI;bU_D~<%|Lyg= zT5{bG1(d|!=NgYOCMkY5F=>C$FYUP|)zY^!b!a*NAAF0!$3&r|kx5H~7U=h|HnehD ze%c&VM@%-rY&A{lcib_P^f^1;U+)_g2e|%a*A`zj8a>Trh*qq3E$7{F{Yh ozLp`;vhpv(DZ9Pe(OS_AH=ToI_~`VQSFvP$3*TZ_g3!Z%0EH-c1poj5 diff --git a/tools/readme_generator/translations/ca/LC_MESSAGES/messages.po b/tools/readme_generator/translations/ca/LC_MESSAGES/messages.po index 6cbffd6ad6..eb4d4c0ffe 100644 --- a/tools/readme_generator/translations/ca/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/ca/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 07:00+0100\n" -"PO-Revision-Date: 2024-03-25 05:01+0000\n" +"PO-Revision-Date: 2024-03-25 07:12+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: Catalan \n" @@ -30,47 +30,34 @@ msgid "Packaging an app, starting from this example" msgstr "Empaquetar una aplicació, comença amb aquest exemple" #: templates/README.md.j2:4 -#, fuzzy -#| msgid "" -#| "Copy this app before working on it, using the ['Use this template']" -#| "(https://github.com/new?" -#| "template_name=example_ynh&template_owner=YunoHost) button on the Github " -#| "repo." msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " "the Github repo" msgstr "" "Copia aquesta aplicació abans de treballar-hi, utilitza el botó [«Utilitza " -"aquesta plantilla»](https://github.com/new?" -"template_name=example_ynh&template_owner=YunoHost) al repositori de Github." +"aquesta plantilla»](https://github.com/" +"new?template_name=example_ynh&template_owner=YunoHost) al repositori de " +"Github" #: templates/README.md.j2:5 msgid "Edit the `manifest.toml` with app specific info" msgstr "Edita el `manifest.toml`amb la informació específica de l'aplicació" #: templates/README.md.j2:6 -#, fuzzy -#| msgid "" -#| "Edit the `install`, `upgrade`, `remove`, `backup`, and `restore` scripts, " -#| "and any relevant conf files in `conf/`." msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " "any relevant conf files in `conf/`" msgstr "" "Edita els scripts `install`, `upgrade`, `remove`, `backup` i `restore`, i " -"tots els arxius rellevants de `conf/`." +"tots els arxius rellevants de `conf/`" #: templates/README.md.j2:7 -#, fuzzy -#| msgid "" -#| "Using the [script helpers documentation.](https://yunohost.org/" -#| "packaging_apps_helpers)" msgid "" "Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" -"Utilitza la [documentació dels script helpers.](https://yunohost.org/" +"Utilitza la [documentació dels script helpers](https://yunohost.org/" "packaging_apps_helpers)" #: templates/README.md.j2:8 @@ -148,35 +135,20 @@ msgid "Read this README is other languages." msgstr "Llegeix aquest README en altres idiomes." #: templates/README.md.j2:30 -#, fuzzy, python-format -#| msgid "" -#| "This package allows you to install %(application_name)s quickly and " -#| "simply on a YunoHost server.\n" -#| "If you don't have YunoHost, please consult [the guide](https://yunohost." -#| "org/#/install) to learn how to install it." +#, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " "on a YunoHost server." msgstr "" "Aquest paquet et permet instal·lar %(application_name)s de forma ràpida i " -"senzilla en un servidor YunoHost.\n" -"Si no tens YunoHost, consulta [la guia](https://yunohost.org/#/install) per " -"saber com instal·lar-lo." +"senzilla en un servidor YunoHost." #: templates/README.md.j2:31 -#, fuzzy -#| msgid "" -#| "This package allows you to install %(application_name)s quickly and " -#| "simply on a YunoHost server.\n" -#| "If you don't have YunoHost, please consult [the guide](https://yunohost." -#| "org/#/install) to learn how to install it." msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" "install) to learn how to install it." msgstr "" -"Aquest paquet et permet instal·lar %(application_name)s de forma ràpida i " -"senzilla en un servidor YunoHost.\n" -"Si no tens YunoHost, consulta [la guia](https://yunohost.org/#/install) per " +"Si no tens YunoHost, consulta [la guia](https://yunohost.org/install) per " "saber com instal·lar-lo." #: templates/README.md.j2:33 @@ -241,20 +213,16 @@ msgid "Developer info" msgstr "Informació per a desenvolupadors" #: templates/README.md.j2:81 -#, fuzzy, python-format -#| msgid "" -#| "Please send your pull request to the [testing branch]" -#| "(%(testing_branch_url)s)" +#, python-format msgid "" "Please send your pull request to the [`testing` branch]" "(%(testing_branch_url)s)." -msgstr "Envieu les pull request a la [branca testing](%(testing_branch_url)s)" +msgstr "" +"Envieu les pull request a la [branca `testing`](%(testing_branch_url)s)." #: templates/README.md.j2:83 -#, fuzzy -#| msgid "To try the testing branch, please proceed like that:" msgid "To try the `testing` branch, please proceed like that:" -msgstr "Per provar la branca testing, procedir com descrit a continuació:" +msgstr "Per provar la branca `testing`, procedir com descrit a continuació:" #: templates/README.md.j2:87 msgid "or" From 553b516058a7e1c7d1c5aa85e45730d2d7be43cc Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 07:04:34 +0000 Subject: [PATCH 046/292] Translated readme-generator using Weblate (Czech) Currently translated at 28.2% (11 of 39 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/cs/ --- .../translations/cs/LC_MESSAGES/messages.mo | Bin 1895 -> 2255 bytes .../translations/cs/LC_MESSAGES/messages.po | 27 +++++------------- 2 files changed, 7 insertions(+), 20 deletions(-) diff --git a/tools/readme_generator/translations/cs/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/cs/LC_MESSAGES/messages.mo index 8406ed76a39a3c0a6b3e5c34f2009851f0ed9e68..d7442dbe7bf84f64d5e16fca11f84c2877b9a572 100644 GIT binary patch delta 656 zcma*jJxjw-6b9gvTE9QAE-ns7P#i3F@&||%6~sk!aq!+Yw>2~-;U+B>)av9UBE`Y6 zlP2uB{&3W6Gp4&v_u`hl=I9;d#)H*7Gx<`eF z4WeN<2#??tbm2Qp!R1)v`90W&xdxN)3=Y93xCL99h!)@u?12yP%%BRrp&7wNt(oW+ z-oOob*g`Z7`&%0?7O)$$569s)9EIm_6F$Qwm}w*Gg%=PRDUSL+xQb3YKCzZM!wns1 zuq*lp0O37^420l~Ghv!6S6BS3Ta}~}aMpEl z(PE!1hebH1#Gieu(y{8t#)MISjeQzJmMMcjiG8=2L0(V0oRRkB$PY}jK9Id!IbuO?egR&vV*>Wm{z{1<<)LDHe!^y^z#Gir_F0d^);5N IF19AV0A+KbR{#J2 delta 299 zcmX}nv1-Cl6vpxIny67|s18!W!NEaj(aF8y(n%b|sR(Wgf`Pikq4o_rgf4l4PF>>I zsf!?jeSq4vqjf6X{71n9A3yHla1M8q`*G*rdHY3FmXyetT#$DX*DrY`dr~K%k#e}g zJbvK~?y!QTg!F_>?BNHxShS=CGgbWLy|tw~X|A{AY0)3XhqEcEfme8qZG6NT-s3-B zVlOSR?_9KxpKvfkxGPqQJI7*N+?HAs&o57hqlfaq^MbAkO)cstI>yw3XQv)*t)&Up M$u-?V+COz~55`<4&j0`b diff --git a/tools/readme_generator/translations/cs/LC_MESSAGES/messages.po b/tools/readme_generator/translations/cs/LC_MESSAGES/messages.po index 21cb31f706..7c06681541 100644 --- a/tools/readme_generator/translations/cs/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/cs/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 07:00+0100\n" -"PO-Revision-Date: 2024-03-25 05:01+0000\n" +"PO-Revision-Date: 2024-03-25 07:12+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: Czech \n" @@ -30,47 +30,34 @@ msgid "Packaging an app, starting from this example" msgstr "Připravuji aplikaci, začínám od tohoto příkladu" #: templates/README.md.j2:4 -#, fuzzy -#| msgid "" -#| "Copy this app before working on it, using the ['Use this template']" -#| "(https://github.com/new?" -#| "template_name=example_ynh&template_owner=YunoHost) button on the Github " -#| "repo." msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " "the Github repo" msgstr "" -"Před úpravami proveďte kopii této aplikace, použijte ['Použít tuto šablonu']" -"(https://github.com/new?template_name=example_ynh&template_owner=YunoHost) " -"odpovídající možnosti na Github repositáři." +"Před úpravami proveďte kopii této aplikace, použijte ['Použít tuto " +"šablonu'](https://github.com/" +"new?template_name=example_ynh&template_owner=YunoHost) odpovídající možnosti " +"na Github repositáři" #: templates/README.md.j2:5 msgid "Edit the `manifest.toml` with app specific info" msgstr "Pro úpravu specifických inforamací o aplikaci upravte `manifest.toml`" #: templates/README.md.j2:6 -#, fuzzy -#| msgid "" -#| "Edit the `install`, `upgrade`, `remove`, `backup`, and `restore` scripts, " -#| "and any relevant conf files in `conf/`." msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " "any relevant conf files in `conf/`" msgstr "" "Upravte skripty `install`, `upgrade`, `remove`, `backup`, a `restore`, a " -"další relevantní konfigurační soubory v `conf/`." +"další relevantní konfigurační soubory v `conf/`" #: templates/README.md.j2:7 -#, fuzzy -#| msgid "" -#| "Using the [script helpers documentation.](https://yunohost.org/" -#| "packaging_apps_helpers)" msgid "" "Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" -"Použít [dokumentaci pro pomocníky skriptů.](https://yunohost.org/" +"Použít [dokumentaci pro pomocníky skriptů](https://yunohost.org/" "packaging_apps_helpers)" #: templates/README.md.j2:8 From 4c75c06e35b1282356fb5c921b274322502ce17b Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 06:57:00 +0000 Subject: [PATCH 047/292] Translated readme-generator using Weblate (German) Currently translated at 92.3% (36 of 39 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/de/ --- .../translations/de/LC_MESSAGES/messages.mo | Bin 5668 -> 4949 bytes .../translations/de/LC_MESSAGES/messages.po | 59 +++++------------- 2 files changed, 14 insertions(+), 45 deletions(-) diff --git a/tools/readme_generator/translations/de/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/de/LC_MESSAGES/messages.mo index c821889caef252c5b5befca7c755ac6d8012afa6..0f850beca43a65efb11903ac08f859caf565a0f5 100644 GIT binary patch delta 953 zcmZY7Pe_w-9LMqBvu9h6n>y#*D*Cf$+QdQ^Y0;q(Q-%;hDKbeSSjG}-tz?tH%Z6a& zVMP4Ms6&^8>X4VwAt)3ILQlH{JBddjJOmv&N$>AtcIgYhy?%T6J-NwjbRdvOv+@Cin73s0a7 zYJoV)yaVWGeKk&}jR%uh!6Ihy7s`T}CYn4)IpI16uz?cNHohRWA1D(q`1cZgi*k@n zY~W9nq&A4}Al9*u_0={VIZ1@=&EWtp;0mVjEUP}oSxn$A%EW!_g04!TBzP5Qtx&A9T zuPn{S;*=~Kr%6syoYeUWBp*}9%#Z}{q$6_U&Xsd6Cn;?NBl@=4uOGQT=%nYm{_Odx z=e_;f@?F*$U);J>D3)&K^R^x}!?n8irO}iv<%*^0!cHz2Y0z-@=Jn zmw(G>9{%!aDp#<_rgL^qyIXqn`PLmB58QdZ8Zh))+mK%CSgg5%zyF^r7J6mqYWVpd D+!=K$ delta 1678 zcmb8tTWB0*6bJBcvzw;rHfb(xV`(*~O}nPDm)f)sMgu0hsV&A3o1|)^(AnLyyJKc& zhM8}&W)Zg{RD4h|W7QV)DPHhJa79GCAbCDG;b#8rhWh5HchnV3?i;o}|n!8I3G>M*PjJP23dF}MaFf*(K^4(w1Wr&LQlg@@blp$+@t4LAV*fJb1wOR1M&3f>GqhWp@; zPy+rF?u5PgNy8y{A1uIOxCW2HcVQ3w4$8W}!6f!qJG+(Y!-u`_GCT&qfp5T5u(@k< z<9FZ%ynhKL)1yhH_P{YH#md8LsL&ZG8~lPYoyL0{yGlZLVA2n82BHWmg~>zMU#0Po zfdwcTc`yf`hfVk?yaLA&<=yZzn1vlEmn?iclz<9QDmf3=;S*3YAHg7L#aSq=EJNg= zuE5q^cz6L1^YAN3@W`N2qc9KmLTl^&Nr+g~+i*Yp5MG8~!@uBp3@*TP=+8~?Irt!a z6Usc9B!Tw91RUP4PAXI=D#s8+#iPR_eU`|#U)V$4g8OjzYRB-R{39W3zoZEVaN~qV zM^w5mdCPIcVTvxUFlu zG9>VsmSoY%d*)^`V~>p1w08aRT&~e*WUF?Nb-ZfMGD~dx?B|TCYh}i=C$jo6eLSls zZEaTA(1FLk$~)mJ@z-P7a3Zl3cWJb!x#O?QN#NHI9m&VV7!YaxFHH zh3h#bMyi&%EHyRsc(~AgCYEhq@9yo0O^5F#M_ZMRkE(2EqdpZ(#;mPIWeSF7lj?zw zUYVturY0&|^{tKdpkh`LxD35GJ$sQPrNyoOWG2xcpG_N0VjoS?WCz~1(P`8`V?u+i zQjJ?4&10c5+mx3UVO3O>=8R?5KCQ5~@qVSkwnn{c7}Ibp3q)-*J>t4s;TpcAX-VSw z{~hb0W+2-%(0sPTpOU|$2cPeLbTfNwwHa)g>vVy=CL;_RCu^&DMK-)5o4S3XCmzGZ zvEHe0GQO`pxaZgZHjnyWlja4z&lDExQML=4t<6kDEh8iFn*sV&G})7Msx0YBX^N)S UjMK_gajdGQ6~`M7KN)!WABg^HMgRZ+ diff --git a/tools/readme_generator/translations/de/LC_MESSAGES/messages.po b/tools/readme_generator/translations/de/LC_MESSAGES/messages.po index b758b25ff5..4fbe826b11 100644 --- a/tools/readme_generator/translations/de/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/de/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 07:00+0100\n" -"PO-Revision-Date: 2024-03-25 00:12+0000\n" +"PO-Revision-Date: 2024-03-25 07:12+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: German \n" @@ -30,43 +30,29 @@ msgid "Packaging an app, starting from this example" msgstr "Paketierung einer Applikation, ausgehend von diesem Beispiel" #: templates/README.md.j2:4 -#, fuzzy -#| msgid "" -#| "Copy this app before working on it, using the ['Use this template']" -#| "(https://github.com/new?" -#| "template_name=example_ynh&template_owner=YunoHost) button on the Github " -#| "repo." msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " "the Github repo" msgstr "" "Kopieren Sie diese Appikation, bevor Sie diese bearbeiten, indem Sie die " -"Schaltfläche ['Diese Vorlage verwenden'](https://github.com/new?" -"template_name=example_ynh&template_owner=YunoHost) im Git-Repository " -"verwenden." +"Schaltfläche ['Diese Vorlage verwenden'](https://github.com/" +"new?template_name=example_ynh&template_owner=YunoHost) im Git-Repository " +"verwenden" #: templates/README.md.j2:5 msgid "Edit the `manifest.toml` with app specific info" msgstr "Die `manifest.toml`mit App-spezifischen Informationen bearbeiten" #: templates/README.md.j2:6 -#, fuzzy -#| msgid "" -#| "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, " -#| "and any relevant conf files in `conf/`." msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " "any relevant conf files in `conf/`" msgstr "" "Die Skripte `install`, `upgrade`, `remove`, `backup` und `restore` sowie " -"alle relevanten Konfigurations-Dateien in `conf/` bearbeiten." +"alle relevanten Konfigurations-Dateien in `conf/` bearbeiten" #: templates/README.md.j2:7 -#, fuzzy -#| msgid "" -#| "Using the [script helpers documentation.](https://yunohost.org/" -#| "packaging_apps_helpers)" msgid "" "Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" @@ -162,36 +148,22 @@ msgid "Read this README is other languages." msgstr "Dieses README in anderen Sprachen lesen." #: templates/README.md.j2:30 -#, fuzzy, python-format -#| msgid "" -#| "This package allows you to install %(application_name)s quickly and " -#| "simply on a YunoHost server.\n" -#| "If you don't have YunoHost, please consult [the guide](https://yunohost." -#| "org/#/install) to learn how to install it." +#, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " "on a YunoHost server." msgstr "" "Mit diesem Paket können Sie %(application_name)s schnell und einfach auf " -"einem YunoHost-Server installieren.\n" -"Wenn Sie YunoHost nicht haben, lesen Sie bitte [die Anleitung](https://" -"yunohost.org/#/install), um zu erfahren, wie Sie es installieren." +"einem YunoHost-Server installieren." #: templates/README.md.j2:31 -#, fuzzy -#| msgid "" -#| "This package allows you to install %(application_name)s quickly and " -#| "simply on a YunoHost server.\n" -#| "If you don't have YunoHost, please consult [the guide](https://yunohost." -#| "org/#/install) to learn how to install it." msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" "install) to learn how to install it." msgstr "" -"Mit diesem Paket können Sie %(application_name)s schnell und einfach auf " -"einem YunoHost-Server installieren.\n" -"Wenn Sie YunoHost nicht haben, lesen Sie bitte [die Anleitung](https://" -"yunohost.org/#/install), um zu erfahren, wie Sie es installieren." +"Wenn Sie YunoHost nicht haben, lesen Sie bitte [die " +"Anleitung](https://yunohost.org/#/install), um zu erfahren, wie Sie es " +"installieren." #: templates/README.md.j2:33 msgid "Overview" @@ -255,22 +227,19 @@ msgid "Developer info" msgstr "Entwicklerinformationen" #: templates/README.md.j2:81 -#, fuzzy, python-format -#| msgid "" -#| "Please send your pull request to the [testing branch]" -#| "(%(testing_branch_url)s)" +#, python-format msgid "" "Please send your pull request to the [`testing` branch]" "(%(testing_branch_url)s)." msgstr "" -"Bitte senden Sie Ihren Pull-Request an den [testing branch]" -"(%(testing_branch_url)s)" +"Bitte senden Sie Ihren Pull-Request an den [`testing` " +"branch](%(testing_branch_url)s)." #: templates/README.md.j2:83 #, fuzzy #| msgid "To try the testing branch, please proceed like that:" msgid "To try the `testing` branch, please proceed like that:" -msgstr "Um den Testing-Branch auszuprobieren, gehen Sie bitte wie folgt vor:" +msgstr "Um den `Testing`-Branch auszuprobieren, gehen Sie bitte wie folgt vor:" #: templates/README.md.j2:87 msgid "or" From 5d7887328ba3aeb27ef10a316d7fa89ef96cb5f6 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 07:00:07 +0000 Subject: [PATCH 048/292] Translated readme-generator using Weblate (Galician) Currently translated at 94.8% (37 of 39 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/gl/ --- .../translations/gl/LC_MESSAGES/messages.mo | Bin 5439 -> 4879 bytes .../translations/gl/LC_MESSAGES/messages.po | 58 ++++-------------- 2 files changed, 12 insertions(+), 46 deletions(-) diff --git a/tools/readme_generator/translations/gl/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/gl/LC_MESSAGES/messages.mo index 5218e4e2b9c830f997e5f8ba4cf266c3cc24700e..ab93ea75bc290bb00587c6ebd9421ee912592301 100644 GIT binary patch delta 935 zcmYk(Pe{{Y7{Kvof7_;R%WbKY?q{|U&Kej6QQ4tG#WF1Bp@P`Y*wj#GKNn;LtAx4) zl`jNEqeGCVx{MA55rjn0#cOoU=nxb|he1K#XCV2)_`GcIp1*JU@1*YzR8t}{=Mibe z2e^b!(TB&qB4Ny9AD+X_cneSA6D;Fj%;GeEn#CISW7sdU5%*#{=5Q;X#rt^OFIDO0 z(z!t-fqQTZ9>V}m;s820f{!tYKX4mHdDMoxQ3D^s7A#>D9lVAMSU_)(99Trn`zTly z8RhbdFSOHWNF;(ubYm84E|Edh1S>?>f_|X}uo&AC4xvu$3wGc)w9rd+U6{g?cn~k) zBJRVMDp^Zh4r4z)N1en+jN^AqqnE05WEs>#-eL?_F@+7(&Xcsg9W!_Y^QbGUVK2VK zP522jSpCUG6ZNntt$Y_=#T;s3?{N^bEYQL+EZ_p_`_D*j`GY#KR;prP%{A%o3|2b% z=+Tww(LyXfJoQTtmp=2%o!r69nziX5*N%qN0cvk+NBfDGhC3N#ip}mlrq>hGXU*BD zEWEiOs+W)%_T?+dfvcgDQ-Et?zuK@$k&%xEYTI65;|v8SdibHbCTulOIjf`v+P zt};0@UN9E|mTPDIUf`lDA^EaZaptYcMA7>H;C5)D{yWs+b`?#yEp2+k@66Y*ZRR7( zW+-~VG-BiRE71?@Lk_oh5wg_2=<1dc+p(=#r#xmmmTfuqw7o9$<@kBC8bAFH5wU-; delta 1542 zcmbW#PiP!v7{~E5wpR0|Y2v0yc7yShS~ZQaNRv{cC|XMMX7-aIY;1RyMa0Ul)0UyD)a0u7%RlI@$cDD*q zz_WM=8~7mpj@|ed9>8=)h)-}hBkJN&4!-8X9{dgWD4eVk`l)ee4uo7VAJBn0sX_Tg=mn4#HT%%M%@C@x@#tN3l5gTov=!?-rGchM$s z5qt3}4&%>gBfEokkaOhPgBxhK;yYwU@h9f+4$k5Lx!Wx(;Q*e+hwuW9V*M%ycA;Bn zC;tcE!##ArhHE&1ixf%x2o-Lit?y-8o>(V zlhaxdnNX{$R6!uerE6>t-=ltK@v2{wD@jkgWT5KK8>*xqkEG)lY3s|Nwp4MWvM$OM z*OcYqk-U6G%TPOhwW__MEvZFXp0Z7+kDZ(wpFEu_8xurRg~H0pO1|XP@_tw*))rd_3QLDtYcm*1Vz)laUvTzEfC~ zMVG~mAFjrqH-ArQrR9lOX7@KnTR%-@jE;=!mExZ=vT-|8OQqW4^DT3!!T46oaQ92T zG~w3cZ`ZA6%c*?hdbY2r$qnPX?Zf2n8#N{AqnW@dYd7@oN9*~XG}@DI*0hWmE7=7$ zK@kP@{}mQh5p6Iwts5d)Qj^5h=L=52>f++HL zFMrpUTRRdz-T5Q8v~?Y6eA)Fwihz0iwS9Yhy!&;!Ue6Zd8{MP-0*wh)I{*Lx diff --git a/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po b/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po index b220a5ab8b..354ba1d359 100644 --- a/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 07:00+0100\n" -"PO-Revision-Date: 2024-03-25 06:24+0000\n" -"Last-Translator: \"José M.\" \n" +"PO-Revision-Date: 2024-03-25 07:12+0000\n" +"Last-Translator: OniriCorpe \n" "Language-Team: Galician \n" "Language: gl\n" @@ -30,47 +30,33 @@ msgid "Packaging an app, starting from this example" msgstr "A empaquetar unha app, mira este exemplo" #: templates/README.md.j2:4 -#, fuzzy -#| msgid "" -#| "Copy this app before working on it, using the ['Use this template']" -#| "(https://github.com/new?" -#| "template_name=example_ynh&template_owner=YunoHost) button on the Github " -#| "repo." msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " "the Github repo" msgstr "" -"Copia esta app antes de traballar nela, usando o botón ['Usa este modelo']" -"(https://github.com/new?template_name=example_ynh&template_owner=YunoHost) " -"no repo en Github." +"Copia esta app antes de traballar nela, usando o botón ['Usa este " +"modelo'](https://github.com/" +"new?template_name=example_ynh&template_owner=YunoHost) no repo en Github" #: templates/README.md.j2:5 msgid "Edit the `manifest.toml` with app specific info" msgstr "Edita o `manifest.toml` con información específica da app" #: templates/README.md.j2:6 -#, fuzzy -#| msgid "" -#| "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, " -#| "and any relevant conf files in `conf/`." msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " "any relevant conf files in `conf/`" msgstr "" "Edita os scripts `install`, `upgrade`, `remove`, `backup` e `restore`, así " -"como os ficheiros conf necesarios en `conf/`." +"como os ficheiros conf necesarios en `conf/`" #: templates/README.md.j2:7 -#, fuzzy -#| msgid "" -#| "Using the [script helpers documentation.](https://yunohost.org/" -#| "packaging_apps_helpers)" msgid "" "Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" -"Usar a [documentación dos asistentes para scripts.](https://yunohost.org/" +"Usar a [documentación dos asistentes para scripts](https://yunohost.org/" "packaging_apps_helpers)" #: templates/README.md.j2:8 @@ -160,34 +146,19 @@ msgid "Read this README is other languages." msgstr "Le este README en outros idiomas." #: templates/README.md.j2:30 -#, fuzzy, python-format -#| msgid "" -#| "This package allows you to install %(application_name)s quickly and " -#| "simply on a YunoHost server.\n" -#| "If you don't have YunoHost, please consult [the guide](https://yunohost." -#| "org/#/install) to learn how to install it." +#, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " "on a YunoHost server." msgstr "" "Este paquete permíteche instalar %(application_name)s de xeito rápido e " -"doado nun servidor YunoHost.\n" -"Se non usas YunoHost, le a [documentación](https://yunohost.org/#/install) " -"para saber como instalalo." +"doado nun servidor YunoHost." #: templates/README.md.j2:31 -#, fuzzy -#| msgid "" -#| "This package allows you to install %(application_name)s quickly and " -#| "simply on a YunoHost server.\n" -#| "If you don't have YunoHost, please consult [the guide](https://yunohost." -#| "org/#/install) to learn how to install it." msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" "install) to learn how to install it." msgstr "" -"Este paquete permíteche instalar %(application_name)s de xeito rápido e " -"doado nun servidor YunoHost.\n" "Se non usas YunoHost, le a [documentación](https://yunohost.org/#/install) " "para saber como instalalo." @@ -253,20 +224,15 @@ msgid "Developer info" msgstr "Info de desenvolvemento" #: templates/README.md.j2:81 -#, fuzzy, python-format -#| msgid "" -#| "Please send your pull request to the [testing branch]" -#| "(%(testing_branch_url)s)" +#, python-format msgid "" "Please send your pull request to the [`testing` branch]" "(%(testing_branch_url)s)." -msgstr "Envía a túa colaboración á [rama testing](%(testing_branch_url)s)" +msgstr "Envía a túa colaboración á [rama `testing`](%(testing_branch_url)s)." #: templates/README.md.j2:83 -#, fuzzy -#| msgid "To try the testing branch, please proceed like that:" msgid "To try the `testing` branch, please proceed like that:" -msgstr "Para probar a rama testing, procede deste xeito:" +msgstr "Para probar a rama `testing`, procede deste xeito:" #: templates/README.md.j2:87 msgid "or" From 6cc5ef2151fc84a75f2b287dd96080e77a0d90f7 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 07:01:22 +0000 Subject: [PATCH 049/292] Translated readme-generator using Weblate (Dutch) Currently translated at 89.7% (35 of 39 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/nl/ --- .../translations/nl/LC_MESSAGES/messages.mo | Bin 5115 -> 4658 bytes .../translations/nl/LC_MESSAGES/messages.po | 58 +++++------------- 2 files changed, 15 insertions(+), 43 deletions(-) diff --git a/tools/readme_generator/translations/nl/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/nl/LC_MESSAGES/messages.mo index 7a6817fd5e56d2d5d899760bda167af563426603..0c50203f6d36bc8718152cb423b7e9d4d690fdb5 100644 GIT binary patch delta 1071 zcmajdO=uHA6u|L`ZDO~!iAk)jn%cD=Ce_rU6qSl-k41z)3AL2k-PpBhS(2J;4n4&$ zM8ShFSijJNAc9_`K?;KQ;z2xk=v6&?RPZQ*|F=!0o*dZz=1n>?Z{EzWBVNSoxQ0VG zPPP)?#sQ47yCiz5TJK~~7P9dP-o$;FBsg5Gjz_%eRw{%KG!bPe7C= z*Cmyc5Z^Zs)jen!{%{qviH;wJ4PhtEkkYV1d{~qL|(j-wT?mt>? z%73(=;(Rfrg~cH`a6_IH?~8-|JlHh<<3C(cg@|rqM##vt8HJ zha1{zuR>lRlW`rp?3iVzFk>zjDy;Y37xJd GGx7(F@0`m3 delta 1523 zcmajd--{bn6u|KtvuVukrgpnsTdj4k?yv5)NwgJ_?t}Pa5n(CP!q&1Xna$iyrkR}y znVXI4K17AS`A`_~C;mV|il`3;@j>Vx;6tejeJ=Q;zUYG>E(qfHOp;bX@RH;+cXH?4 zbI#n)r~jP0aI`a?QtEVCsZpg=bx5g;XfcC__}Pt9IEBaXAgZ z)B?shhL>5{;f_+badCkgx8VEuIvx2CCGa9`Nily8rGhfM zzKIc1tjZH*KaS%p9_i0d;XLzm_%yzX=kXVO03$Xn;KdFXlJV8P*HHrP;JY}#E&C>?qa596muNOcwYsGsCg_+kfeH9FG&`7re*YsLacEd`k ztX+@YY}nk2pBeg^rL&o1*&wox@9X&f^hEc^j7@bv&e~LJI6jkEPEExhWM<>Z+!AXq z=l6HFbHArLE1{`sV}hIQFRU4YP{C%%E2tSu@%1{`u>Tfl09l*BdPYnCJy}C;l*?Z) z7=IlcKa$yvg_}+wb7{KEbLV<*w!^D+7n5CxWP-Z!|NWHYz+*|*CB)5ql76q5P2-dO zDr^3y%m2}2?WCQc7>6UD(2|3r<(Z^#!g)!qy*?Li^qB+IHqCmxIeLxtEBObzW4k{~ hbtm?mmlnU0KTC^$$QR\n" "Language-Team: Dutch \n" @@ -30,47 +30,33 @@ msgid "Packaging an app, starting from this example" msgstr "Package een app, uitgaand van dit voorbeeld" #: templates/README.md.j2:4 -#, fuzzy -#| msgid "" -#| "Copy this app before working on it, using the ['Use this template']" -#| "(https://github.com/new?" -#| "template_name=example_ynh&template_owner=YunoHost) button on the Github " -#| "repo." msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " "the Github repo" msgstr "" "Kopieer deze app voordat je er aan werkt, met de knop ['Gebruik dit " -"template'](https://github.com/new?" -"template_name=example_ynh&template_owner=YunoHost)." +"template'](https://github.com/" +"new?template_name=example_ynh&template_owner=YunoHost)" #: templates/README.md.j2:5 msgid "Edit the `manifest.toml` with app specific info" msgstr "Bewerk `manifest.toml` met app-specifieke informatie" #: templates/README.md.j2:6 -#, fuzzy -#| msgid "" -#| "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, " -#| "and any relevant conf files in `conf/`." msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " "any relevant conf files in `conf/`" msgstr "" "Bewerk de scripts `install`, `upgrade`, `remove`, `backup` en `restore` , en " -"alle overige relevante configuratiebestanden in `conf/`." +"alle overige relevante configuratiebestanden in `conf/`" #: templates/README.md.j2:7 -#, fuzzy -#| msgid "" -#| "Using the [script helpers documentation.](https://yunohost.org/" -#| "packaging_apps_helpers)" msgid "" "Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" -"Gebruik de [script helpers documentatie.](https://yunohost.org/" +"Gebruik de [script helpers documentatie](https://yunohost.org/" "packaging_apps_helpers)" #: templates/README.md.j2:8 @@ -112,7 +98,7 @@ msgid "" "Edit files under the `doc/` directory ([see the page about documenting " "packages](https://yunohost.org/packaging_app_doc))" msgstr "" -"Gebruik de [script helpers documentatie.](https://yunohost.org/" +"Gebruik de [script helpers documentatie](https://yunohost.org/" "packaging_apps_helpers)" #: templates/README.md.j2:12 @@ -160,36 +146,22 @@ msgid "Read this README is other languages." msgstr "Deze README in een andere taal lezen." #: templates/README.md.j2:30 -#, fuzzy, python-format -#| msgid "" -#| "This package allows you to install %(application_name)s quickly and " -#| "simply on a YunoHost server.\n" -#| "If you don't have YunoHost, please consult [the guide](https://yunohost." -#| "org/#/install) to learn how to install it." +#, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " "on a YunoHost server." msgstr "" "Met dit pakket kun je %(application_name)s snel en eenvoudig op een YunoHost-" -"server installeren.\n" -"Als je nog geen YunoHost hebt, lees dan [de installatiehandleiding](https://" -"yunohost.org/#/install), om te zien hoe je 'm installeert." +"server installeren." #: templates/README.md.j2:31 -#, fuzzy -#| msgid "" -#| "This package allows you to install %(application_name)s quickly and " -#| "simply on a YunoHost server.\n" -#| "If you don't have YunoHost, please consult [the guide](https://yunohost." -#| "org/#/install) to learn how to install it." msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" "install) to learn how to install it." msgstr "" -"Met dit pakket kun je %(application_name)s snel en eenvoudig op een YunoHost-" -"server installeren.\n" -"Als je nog geen YunoHost hebt, lees dan [de installatiehandleiding](https://" -"yunohost.org/#/install), om te zien hoe je 'm installeert." +"Als je nog geen YunoHost hebt, lees dan [de " +"installatiehandleiding](https://yunohost.org/install), om te zien hoe je 'm " +"installeert." #: templates/README.md.j2:33 msgid "Overview" @@ -253,18 +225,18 @@ msgid "Developer info" msgstr "Ontwikkelaarsinformatie" #: templates/README.md.j2:81 -#, fuzzy, python-format +#, python-format msgid "" "Please send your pull request to the [`testing` branch]" "(%(testing_branch_url)s)." msgstr "" -"Stuur je pull request alsjeblieft naar de [testing-branch]" -"(%(testing_branch_url)s)" +"Stuur je pull request alsjeblieft naar de " +"[`testing`-branch](%(testing_branch_url)s)." #: templates/README.md.j2:83 #, fuzzy msgid "To try the `testing` branch, please proceed like that:" -msgstr "Om de testing-branch uit te proberen, ga als volgt te werk:" +msgstr "Om de `testing`-branch uit te proberen, ga als volgt te werk:" #: templates/README.md.j2:87 msgid "or" From d34da3bfa321b3ee36274ab39ef97d8bdd4ee985 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 07:02:46 +0000 Subject: [PATCH 050/292] Translated readme-generator using Weblate (Polish) Currently translated at 87.1% (34 of 39 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/pl/ --- .../translations/pl/LC_MESSAGES/messages.mo | Bin 4361 -> 4555 bytes .../translations/pl/LC_MESSAGES/messages.po | 60 ++++-------------- 2 files changed, 14 insertions(+), 46 deletions(-) diff --git a/tools/readme_generator/translations/pl/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/pl/LC_MESSAGES/messages.mo index 32b8eac64d469260e798453e9d40b933da5dd51f..f67f48f88b33a8f950b733f9fb2658fd0d452cfb 100644 GIT binary patch delta 1198 zcma*lPe@cj9Ki9})m;CjoA$@FZ2SkMwgv@Jmx@vlx9AT=P{=%YpZaoryX-y(WVsK%qdQAi5S_s$-W<74-eRt?<~u?C1Ap=gs`)H}7WqYRBBihVna# z)50g=TXq9D3wP6)@VGq{g8GMSvxB)B5m8!#9?7$Xm!6TT(ODOBEVh(>` zw^DN|!`qt}xQh+AfbF=1^Y{sO;&g>lTktkYqR+4rUtur4!_)W+cj2j+Ql04IMzkpF zKEfJY!8rS?cLdiMSVMy&tSTEW<9QiJIoZJ~rRs42-&3UvD3$4EHH}G>1SfF`uOqpu zqm*kK4xr2*MwxdFUG`V=1PAdartkpiQW|v+r83KZ{DAv-{(_IOiL7MaB1)-0qihr< zOL9}qxF0)l2ruGpe1cMmH#oPI;2VM5Su9>ERS!1udHF-6>78!4)m(evvfl`x_NY;{&G)X|(c6xIdm99Zf*hH7o%6A~G z!9I#M?%hlzX;62?T`E2VRZXX?VcK#;sT239+U#1ir!$?_jyB1`xvDQapX!F14_ST)+ z<48U=%wF|YZp=CovZJT3{ynGtUUSI4s81IYwO=Du|FSQoZB5;lVzMq5v2OgVq;B8F G5B~-!d)74o delta 1008 zcmXxiOGs2v9LMow;blVrQ7Hrb|SP;L7DuX^Cj=ic%7KmYSP^R9ZLYV=Ey`?_LO zGRv9U45fBqAd3&i63X9xVm{`%lzM<==)pN$i*KfVj-TxBD{)K zN{y;X9wzzX8E(O2RNa6Pl!nGI8*gI(XRr-FV+Gc%p=msfJ`5v;)p^XrXEmds)_xTkLt4VAv}p)C?|S?1^5ORNM#WviJ9Ex2H)dz-oGQgs9Wq-iuX{~y+Aq0 zSKN!gQIcpNMoHq7$o^`8heo`JckmI)!s8rAqP&1ocnWjyG48=xJc7T_kNfCaP9DS( z97DO1X=I6diN*KboTR{6?7#_>PJf^z@dpV)abRcg|B7o?o0zh} z>X4?luD;-UrrbFJIt_qxB~a^hDyMTZNyxc#iA^@#$ds`~&t(nY}{^Z`SFJ+h86P}xfH)$o3p-7(&cul*_n=*`C{m*^W zsMf8X+NKjxGZ`N?ll_*tvd-*|2O~ZG0W&se1rwGTi${AbtJfS14X~y^m~7UsvRm1x z(Nk(y_nVUB2D+lyAwXlv>fW74GoY_*d$7F4yf$#RuyWb@ttYap|PV z*V}Tid)Q15$KtQ;?r1ugxn}kS=dWbO=VzUkqUp@I8H*;8nH#ZG*c|DL_C`XMIbwz) ciDW!A&=U?0g_^a$uzk5FU6E6!9~M^q2d{yjOaK4? diff --git a/tools/readme_generator/translations/pl/LC_MESSAGES/messages.po b/tools/readme_generator/translations/pl/LC_MESSAGES/messages.po index 73754657bf..277f7472da 100644 --- a/tools/readme_generator/translations/pl/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/pl/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 07:00+0100\n" -"PO-Revision-Date: 2024-03-25 05:01+0000\n" +"PO-Revision-Date: 2024-03-25 07:12+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: Polish \n" @@ -31,47 +31,33 @@ msgid "Packaging an app, starting from this example" msgstr "Pakowanie aplikacji, zaczynając od tego przykładu" #: templates/README.md.j2:4 -#, fuzzy -#| msgid "" -#| "Copy this app before working on it, using the ['Use this template']" -#| "(https://github.com/new?" -#| "template_name=example_ynh&template_owner=YunoHost) button on the Github " -#| "repo." msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " "the Github repo" msgstr "" -"Skopiuj tę aplikację zanim rozpoczniesz nad nią pracę używając przycisku " -"['Użyj tego szablonu'](https://github.com/new?" -"template_name=example_ynh&template_owner=YunoHost) na GitHubie." +"Skopiuj tę aplikację zanim rozpoczniesz nad nią pracę używając przycisku [" +"'Użyj tego szablonu'](https://github.com/" +"new?template_name=example_ynh&template_owner=YunoHost) na GitHubie" #: templates/README.md.j2:5 msgid "Edit the `manifest.toml` with app specific info" msgstr "Edytuj `manifest.toml` z informacjami o danej aplikacji" #: templates/README.md.j2:6 -#, fuzzy -#| msgid "" -#| "Edit the `install`, `upgrade`, `remove`, `backup`, and `restore` scripts, " -#| "and any relevant conf files in `conf/`." msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " "any relevant conf files in `conf/`" msgstr "" -"Edytuj skrypty `install`, `upgrade`, `remove`, `backup`, i `restore` i inne " -"powiązane pliki w `conf/`." +"Edytuj skrypty `install`, `upgrade`, `remove`, `backup` i `restore` i inne " +"powiązane pliki w `conf/`" #: templates/README.md.j2:7 -#, fuzzy -#| msgid "" -#| "Using the [script helpers documentation.](https://yunohost.org/" -#| "packaging_apps_helpers)" msgid "" "Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" -"Używa [dokumentacji do skryptów pomocniczych.](https://yunohost.org/" +"Używa [dokumentacji do skryptów pomocniczych](https://yunohost.org/" "packaging_apps_helpers)" #: templates/README.md.j2:8 @@ -149,36 +135,21 @@ msgid "Read this README is other languages." msgstr "Przeczytaj README w innym języku." #: templates/README.md.j2:30 -#, fuzzy, python-format -#| msgid "" -#| "This package allows you to install %(application_name)s quickly and " -#| "simply on a YunoHost server.\n" -#| "If you don't have YunoHost, please consult [the guide](https://yunohost." -#| "org/#/install) to learn how to install it." +#, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " "on a YunoHost server." msgstr "" "Ta aplikacja pozwala na szybką i prostą instalację %(application_name)s na " -"serwerze YunoHost.\n" -"Jeżeli nie masz YunoHost zapoznaj się z [poradnikiem](https://yunohost.org/#/" -"install) instalacji." +"serwerze YunoHost." #: templates/README.md.j2:31 -#, fuzzy -#| msgid "" -#| "This package allows you to install %(application_name)s quickly and " -#| "simply on a YunoHost server.\n" -#| "If you don't have YunoHost, please consult [the guide](https://yunohost." -#| "org/#/install) to learn how to install it." msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" "install) to learn how to install it." msgstr "" -"Ta aplikacja pozwala na szybką i prostą instalację %(application_name)s na " -"serwerze YunoHost.\n" -"Jeżeli nie masz YunoHost zapoznaj się z [poradnikiem](https://yunohost.org/#/" -"install) instalacji." +"Jeżeli nie masz YunoHost zapoznaj się z [poradnikiem](https://yunohost.org/" +"#/install) instalacji." #: templates/README.md.j2:33 msgid "Overview" @@ -242,20 +213,17 @@ msgid "Developer info" msgstr "Informacje od twórców" #: templates/README.md.j2:81 -#, fuzzy, python-format -#| msgid "" -#| "Please send your pull request to the [testing branch]" -#| "(%(testing_branch_url)s)" +#, python-format msgid "" "Please send your pull request to the [`testing` branch]" "(%(testing_branch_url)s)." -msgstr "Wyślij swój pull request do [gałęzi testowej](%(testing_branch_url)s)" +msgstr "Wyślij swój pull request do [gałęzi `testing`](%(testing_branch_url)s)." #: templates/README.md.j2:83 #, fuzzy #| msgid "To try the testing branch, please proceed like that:" msgid "To try the `testing` branch, please proceed like that:" -msgstr "Aby wypróbować gałąź testową postępuj zgodnie z instrukcjami:" +msgstr "Aby wypróbować gałąź `testing` postępuj zgodnie z instrukcjami:" #: templates/README.md.j2:87 msgid "or" From f0dfbe4bdd47ca64224ed6e04475717ffca2e2e1 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 07:07:24 +0000 Subject: [PATCH 051/292] Translated readme-generator using Weblate (Chinese (Simplified)) Currently translated at 17.9% (7 of 39 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/zh_Hans/ --- .../zh_Hans/LC_MESSAGES/messages.mo | Bin 2401 -> 1667 bytes .../zh_Hans/LC_MESSAGES/messages.po | 25 +++++------------- 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/tools/readme_generator/translations/zh_Hans/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/zh_Hans/LC_MESSAGES/messages.mo index e24f146cb5e022bc592df2f83b536fc458ccf7f8..405a540edc49f494aa935bac065d06ead74e06ed 100644 GIT binary patch delta 235 zcmXYrJqtl$7>4ij!8wKHWK85Y81!bdQ=G{ro59EV56bVb zxL!PUbv@7fareBUS#J7_{I#eM3ebTJY{1qHws40w3>|5J6I{V{SBh{Sm+=G_@gARe zli-+n?n^CPO-Um=B`yDCxn_Lkg!V?c1%7vm`iXq%W&}le@Px` delta 984 zcmb7>Pe>F|9LImFZfWF2!An8!5Y$3D8+ZvlSx8hOMP$ShI_^Gq2X|+NeQ(+Jw5CQS znk?EMHV=joYuFkHHtZ^00>g9XAle!2RGp$ueP?zx=;njpe0cAD=llJ=_a<7uwB6OA&J4fS2R(A$4K*E_^Uv;=1(MvBQeXQmn%RbyOX{pY)| zpb1tJ_SR&W>xN`WuIiFWgXuiNg-}ykBFl!k=dhmuimp&7lgTJCJ*^n2SSX=IxGuN|sWCGV>}*!fD)NpDDEW^?pE76q zw(;$1$Pe5QnjZ6742wugGbM}jgvnEaMU6-rky4eKp)3DVvT5Cj8$x<9wFAIn5XTmS z^?w6v+YOt(oK@c4T&-5t?df~YyNW%vxc3@(4Cl#x?0g*?ch-u|0NXJN&*O7_$;4(q&Fg79E>On(6+`dXj> diff --git a/tools/readme_generator/translations/zh_Hans/LC_MESSAGES/messages.po b/tools/readme_generator/translations/zh_Hans/LC_MESSAGES/messages.po index 690953408b..27989b557e 100644 --- a/tools/readme_generator/translations/zh_Hans/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/zh_Hans/LC_MESSAGES/messages.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 07:00+0100\n" -"PO-Revision-Date: 2024-03-24 15:57+0000\n" -"Last-Translator: Poesty Li \n" +"PO-Revision-Date: 2024-03-25 07:12+0000\n" +"Last-Translator: OniriCorpe \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_Hans\n" @@ -30,36 +30,25 @@ msgid "Packaging an app, starting from this example" msgstr "打包应用,从这个示例开始" #: templates/README.md.j2:4 -#, fuzzy -#| msgid "" -#| "Copy this app before working on it, using the ['Use this template']" -#| "(https://github.com/new?" -#| "template_name=example_ynh&template_owner=YunoHost) button on the Github " -#| "repo." msgid "" "Copy this app before working on it, using the ['Use this template'](https://" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " "the Github repo" msgstr "" -"使用 Github 代码库中的['使用此模板'](https://github.com/new?" -"template_name=example_ynh&template_owner=YunoHost)按钮复制此应用,然后再对其" -"进行操作。" +"使用 Github 代码库中的['使用此模板'](https://github.com/new?template_name=exa" +"mple_ynh&template_owner=YunoHost)按钮复制此应用,然后再对其进行操作" #: templates/README.md.j2:5 msgid "Edit the `manifest.toml` with app specific info" msgstr "编辑 `manifest.toml` 文件以补充应用特定信息" #: templates/README.md.j2:6 -#, fuzzy -#| msgid "" -#| "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, " -#| "and any relevant conf files in `conf/`." msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " "any relevant conf files in `conf/`" msgstr "" -"编辑 `install`, `upgrade`, `remove`, `backup` 和 `restore` 脚本,以及 `conf/" -"` 中的任何相关配置文件。" +"编辑 `install`, `upgrade`, `remove`, `backup` 和 `restore` 脚本,以及 `conf/`" +" 中的任何相关配置文件" #: templates/README.md.j2:7 #, fuzzy @@ -106,7 +95,7 @@ msgstr "" msgid "" "Edit files under the `doc/` directory ([see the page about documenting " "packages](https://yunohost.org/packaging_app_doc))" -msgstr "使用[脚本帮助文档。](https://yunohost.org/packaging_apps_helpers)" +msgstr "使用[脚本帮助文档](https://yunohost.org/packaging_apps_helpers)" #: templates/README.md.j2:12 msgid "" From 6987f53eaee37fd235295b7591a00bed144eaeb7 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 07:14:10 +0000 Subject: [PATCH 052/292] Translated readme-generator using Weblate (French) Currently translated at 97.4% (38 of 39 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/fr/ --- .../translations/fr/LC_MESSAGES/messages.mo | Bin 5409 -> 5397 bytes .../translations/fr/LC_MESSAGES/messages.po | 10 +++++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/readme_generator/translations/fr/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/fr/LC_MESSAGES/messages.mo index 362ab9d43a986c2ea8fd2977bf8c420fc04e1f0f..71c8438ac858a099d87408e5b29468151b04dcbe 100644 GIT binary patch delta 322 zcmXZWze_@46vpw#YX+K@SFc!5Eg{*}2*l07$v>bU|3OnYv@|t%iKdH#$V)9D;wUJH zmzK7mwZ+9&mxgGHwg&s&Xn8;Hc@CU&2JW3Zxr%r%lAe-M9KDpZhdv(Q7`JhbK7L~p zTkBE>Kkx*vH>6v9#WEhJr98GUhxb^;5e{*I;rzBO?{C4QEfoo7NKZdl!DL1{#X9by z!2(V(i*M-S=YO3i4D%At4c0L{_!(<>=t%o`foIrtICGQFI{`DaL<=*4Z#^W;GTI0( ZQ$5R^uWkj!bbrOfV>_mkSTkSF(J!^QF1r8# delta 342 zcmXZWu}cDB7{~FS*Ab*yXPxLE5=5j&bP$I_{R7T52#raYL}fpO?<@4cBnjk`j1\n" "Language-Team: French \n" @@ -36,8 +36,8 @@ msgid "" "the Github repo" msgstr "" "Copiez cette application avant de travailler dessus, en utilisant le bouton [" -"'Utilisez ce template'](https ://github.com/new " -"?template_name=example_ynh&template_owner=YunoHost) sur ce dépôt Github" +"'Utilisez ce template'](https://github.com/" +"new?template_name=example_ynh&template_owner=YunoHost) sur ce dépôt Github" #: templates/README.md.j2:5 msgid "Edit the `manifest.toml` with app specific info" @@ -58,7 +58,7 @@ msgid "" "Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" -"Utilisez la [documentation des helpers](https ://yunohost.org/" +"Utilisez la [documentation des helpers](https://yunohost.org/" "packaging_apps_helpers)" #: templates/README.md.j2:8 @@ -158,7 +158,7 @@ msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" "install) to learn how to install it." msgstr "" -"Si vous n’avez pas YunoHost, consultez [ce guide](https ://yunohost.org/" +"Si vous n’avez pas YunoHost, consultez [ce guide](https://yunohost.org/" "install) pour savoir comment l’installer et en profiter." #: templates/README.md.j2:33 From 1b5a105e88aca98241a8d5c3352a34088d0fc988 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 03:16:56 +0100 Subject: [PATCH 053/292] autoupdater: fix a break line in the matrix message --- tools/autoupdate_app_sources/autoupdate_app_sources.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/autoupdate_app_sources/autoupdate_app_sources.py b/tools/autoupdate_app_sources/autoupdate_app_sources.py index ded21e888d..ed6d944682 100755 --- a/tools/autoupdate_app_sources/autoupdate_app_sources.py +++ b/tools/autoupdate_app_sources/autoupdate_app_sources.py @@ -718,7 +718,7 @@ def main() -> None: if apps_failed: paste_message += f"\n{'=' * 80}\nApps failed:" - matrix_message += f"\n- {len(apps_failed)} failed apps updates: {', '.join(str(app) for app in apps_failed.keys())}" + matrix_message += f"\n- {len(apps_failed)} failed apps updates: {', '.join(str(app) for app in apps_failed.keys())}\n" for app, logs in apps_failed.items(): paste_message += f"\n{'='*40}\n{app}\n{'-'*40}\n{logs[0]}\n{logs[1]}\n\n" From d1da0119206ae01e0e2ca24ab0794953dd4a6a55 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 07:19:51 +0000 Subject: [PATCH 054/292] Translated readme-generator using Weblate (French) Currently translated at 100.0% (39 of 39 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/fr/ --- .../translations/fr/LC_MESSAGES/messages.mo | Bin 5397 -> 6071 bytes .../translations/fr/LC_MESSAGES/messages.po | 12 +++--------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/tools/readme_generator/translations/fr/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/fr/LC_MESSAGES/messages.mo index 71c8438ac858a099d87408e5b29468151b04dcbe..195728d1d609cbd4c9f7b3c665a9d021f6b42967 100644 GIT binary patch delta 1555 zcmb8tPiP!v7{~F~CK|W3)}(5+wf3ohx=EVN7Gt%fc+e6g(3WCaM5>Uw+#Ac&~YW3fU(dshm2@cYbeq*q^RQuU_btX19%-D!JGIl?&>pUKTUptyZL?f zPGj!Fe^56tP%wsDQ^pZIgeTDA9=wQ;;T7CUee*XrTA;Amm@PPh_uwI1!AYFP@9`dvp=HoT4+-kN)VJ34Dl8;Ac36*YIIH$f|l4PU3c4#$kM``}Gh}PW4Q04E?&ge@yR(O&)FEtw^Uc8gUhBnKBdK53ojAe?IET~!O z&XOR@pEc6V*KJUfAWfwtk=KP>!X%xs@$!;uNHbr!rKQs#oDb$~F_X|$Sldb3n2DpT zYAe!=d{u&^B047w5(%r$W%TD|wr*{_v{wcvXY>D7TvGHhpSY$pt5I0hg*tDKNYhH) zhOSn#EOlCYdG`4eM@wU+R|c!zr`dS9+-x>S=aR;#tIw6=D6~mtvvM$(#-*{*1Ec;` zKQy#{uJ1;H$bMV-d|X0HQeic+^;@z_tW+GmrR0&c*YeDwx}~g__NPQ6QHA?xp<$){ zk;FkKlOq$t#^WNXQ9AIEOS-AF*Q^|tuxK+cnQg?j*3z|ZnHVhEkl(Br^W7F*Bhx>z zT^23EqdZiWr{PpzW1+l7&A7cL{9bf?1lL$(P8`j2+oc5QMOjp5yQDl7brzpvj~PXm o^G*I&xclx1$A%6%Ve{QwlF8|~*h%|;g}wSy|IYP~`xkot1^oU%ssI20 delta 864 zcmX}qO-PhM7y#hO-O5evXWiO`SSfe(Ibu z(YYw45~sL=&za{dw($ce*|0dJ4ZOjXe9B1tHS77EJ)GlScA4DBVQ%3xoA`un)=x7! z4JN*FIp=teO*y;g74GC0#=;#-QX1rL#*U}Cj1@-F9&$<*A2SjkRIYBGVI+K$FZhT# z>!-4GqGV(2;vL40-f)aRc!DEVyUI`8&ta>Ma)v$JC;K8t7z<5uJ8!eXcZ}~}Qr`If zJ(joXywveq`o(Q*RQChyXA8&K&bw^pTbB5Feq1ye^W7fj+0RJ$8F#U_@b`Wl=Ya7w zuIBqfI#xU5-zK7Td1T7poRo&rU54GeR|L2i(Do7Ka}ZwRO2_5$6`+&ZL&=(afG~b+-Ov KuG(9;nE3+$l2cLu diff --git a/tools/readme_generator/translations/fr/LC_MESSAGES/messages.po b/tools/readme_generator/translations/fr/LC_MESSAGES/messages.po index b516262d2a..7e1b89fd19 100644 --- a/tools/readme_generator/translations/fr/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/fr/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 07:00+0100\n" -"PO-Revision-Date: 2024-03-25 07:16+0000\n" +"PO-Revision-Date: 2024-03-25 21:08+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: French \n" @@ -74,20 +74,14 @@ msgid "Add a `LICENSE` file for the package." msgstr "Ajoutez un fichier `LICENCE` for le paquet." #: templates/README.md.j2:10 -#, fuzzy -#| msgid "" -#| "Add a `LICENSE` file for the package. NB: this LICENSE file is not meant " -#| "to necessarily be the LICENSE of the upstream app - it is only the " -#| "LICENSE you want this package's code to published with ;). We recommend " -#| "to use [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." msgid "" "NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " "the upstream app - it is only the LICENSE you want this package's code to " "published with and you can choose it freely! (If you don't know which to " "choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" -"NB : ce fichier LICENSE ne doit pas nécessairement être identique à la " -"LICENCE de l'application packagée - c'est seulement la LICENCE avec laquelle " +"NB : ce fichier `LICENSE` ne doit pas nécessairement être identique à la " +"LICENCE de l'application packagée ; c'est seulement la LICENCE avec laquelle " "vous voulez que le code de ce paquet soit publié et vos pouvez librement la " "choisir ! (Si vous ne savez pas laquelle choisir, nous recommandons " "[l'AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" From 518b61a8fbd696798a6ab14b175ccab0225fe9dd Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 07:22:22 +0000 Subject: [PATCH 055/292] Translated readme-generator using Weblate (German) Currently translated at 92.3% (36 of 39 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/de/ --- .../translations/de/LC_MESSAGES/messages.mo | Bin 4949 -> 4947 bytes .../translations/de/LC_MESSAGES/messages.po | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/readme_generator/translations/de/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/de/LC_MESSAGES/messages.mo index 0f850beca43a65efb11903ac08f859caf565a0f5..f704b05fff4063109f5f554e9b50d75df160d687 100644 GIT binary patch delta 216 zcmXZWF$)0!7{>93Zjz2eQo2yOMDYcL3^r%eO_%isqcU;R4d-iIS=9|DyHXbMX$<~i z`n}KF+uQSW9?mJr>?27VQ|jXzOV}$&j2dAV=a}FY+h`Z1I!>{LKISmQAs%pvS8QU# zk~%oS3I_kYvosSwb!1V+GlqD_H7;mV!wY)&!tec{{3|#{gY2e3c9lAEbdz)(k}`0)E-A`xK(b; zzxR22dwU+<(>o=`E|L^jQWxJ?#7t01oUK AmH+?% diff --git a/tools/readme_generator/translations/de/LC_MESSAGES/messages.po b/tools/readme_generator/translations/de/LC_MESSAGES/messages.po index 4fbe826b11..bc3cd09c10 100644 --- a/tools/readme_generator/translations/de/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/de/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 07:00+0100\n" -"PO-Revision-Date: 2024-03-25 07:12+0000\n" +"PO-Revision-Date: 2024-03-25 21:08+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: German \n" @@ -162,7 +162,7 @@ msgid "" "install) to learn how to install it." msgstr "" "Wenn Sie YunoHost nicht haben, lesen Sie bitte [die " -"Anleitung](https://yunohost.org/#/install), um zu erfahren, wie Sie es " +"Anleitung](https://yunohost.org/install), um zu erfahren, wie Sie es " "installieren." #: templates/README.md.j2:33 From a063c1decfae960dffac637752fc4b1853a08a9c Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 07:22:28 +0000 Subject: [PATCH 056/292] Translated readme-generator using Weblate (Galician) Currently translated at 94.8% (37 of 39 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/gl/ --- .../translations/gl/LC_MESSAGES/messages.mo | Bin 4879 -> 4877 bytes .../translations/gl/LC_MESSAGES/messages.po | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/readme_generator/translations/gl/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/gl/LC_MESSAGES/messages.mo index ab93ea75bc290bb00587c6ebd9421ee912592301..a352aaf7b29503858e397eaa17a308f865f137c2 100644 GIT binary patch delta 224 zcmW;FzY0NN0EY3`mkFJ7{2x##Uk(|Zo4{gl1!s_ZP)Y`ilFi~4&Y;d@nUzhM zJWRiOd+XWRtvyDGOgT9f$}^R+G0NR?UJ< zF!;{&z~R6-n{XSR4%T8SDe|N?9x;zM%;5_|bbM)t2J3jiEIzS`A538-kXmT4k0UJM z9&32U0^ZT!JJ9eyR8C7pf*#IsfXT5dcCnL@syM+hE-~ppkZpa@MmL_>zH2q&wYPG9 DCUqLZ diff --git a/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po b/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po index 354ba1d359..ad4fc256de 100644 --- a/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/gl/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 07:00+0100\n" -"PO-Revision-Date: 2024-03-25 07:12+0000\n" +"PO-Revision-Date: 2024-03-25 21:08+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: Galician \n" @@ -159,7 +159,7 @@ msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" "install) to learn how to install it." msgstr "" -"Se non usas YunoHost, le a [documentación](https://yunohost.org/#/install) " +"Se non usas YunoHost, le a [documentación](https://yunohost.org/install) " "para saber como instalalo." #: templates/README.md.j2:33 From 594734368b22279f8dbb4d4270ed2d0020a9ace9 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 07:22:15 +0000 Subject: [PATCH 057/292] Translated readme-generator using Weblate (Polish) Currently translated at 87.1% (34 of 39 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/pl/ --- .../translations/pl/LC_MESSAGES/messages.mo | Bin 4555 -> 4553 bytes .../translations/pl/LC_MESSAGES/messages.po | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/readme_generator/translations/pl/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/pl/LC_MESSAGES/messages.mo index f67f48f88b33a8f950b733f9fb2658fd0d452cfb..bd9a2661818d20086d3c12d2ee56a3abfb5daec7 100644 GIT binary patch delta 208 zcmXZWuL{C&6vgqQXb_oBgek1;7yOe11x;q%x@kdQV`X7=*#}rz9V{(c1X=VIwE7Hw zhnD-{z`d7Kn};dVR(z4Pv7{wlafG+OPh64Tn4vTH?N#WKUpPSxr5;RijUEPg!Z~K> uVT}%c&|ufrUi{X=md3cn2m?Ih9h<`$twQv%DVQ_(p{hK#cl|Q44xKMAnirt} delta 210 zcmXZWu@1p-6vg4wrb#1Gtw<0ye}l3}7+CBLc7s9UExPak9-y;WY?6*0Ekul7fz>1U zHM-m{C%O0L+|9#W4%TifY3xaTOt6aA!WRz7A3S2S^54s_O@3noZC@&33rE<+Ij*pW yC+y%8>-a^3ZlIa?twA8waEdW5af3I^4?|k5ae;ZkGlL(>(#W2aEtBrO$oT\n" "Language-Team: Polish \n" @@ -149,7 +149,7 @@ msgid "" "install) to learn how to install it." msgstr "" "Jeżeli nie masz YunoHost zapoznaj się z [poradnikiem](https://yunohost.org/" -"#/install) instalacji." +"install) instalacji." #: templates/README.md.j2:33 msgid "Overview" From 47ba03ed98f4a318cb079e2fbe3834c4bde427d2 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 25 Mar 2024 07:20:45 +0000 Subject: [PATCH 058/292] Translated readme-generator using Weblate (Chinese (Simplified)) Currently translated at 17.9% (7 of 39 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/zh_Hans/ --- .../translations/zh_Hans/LC_MESSAGES/messages.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/readme_generator/translations/zh_Hans/LC_MESSAGES/messages.po b/tools/readme_generator/translations/zh_Hans/LC_MESSAGES/messages.po index 27989b557e..70b27d5cb1 100644 --- a/tools/readme_generator/translations/zh_Hans/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/zh_Hans/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 07:00+0100\n" -"PO-Revision-Date: 2024-03-25 07:12+0000\n" +"PO-Revision-Date: 2024-03-25 21:08+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: Chinese (Simplified) \n" @@ -58,7 +58,7 @@ msgstr "" msgid "" "Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" -msgstr "使用[脚本帮助文档。](https://yunohost.org/packaging_apps_helpers)" +msgstr "使用[脚本帮助文档](https://yunohost.org/packaging_apps_helpers)" #: templates/README.md.j2:8 msgid "" From 9ba11ff90c1d738bc94ffb7096f26554821e3535 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Tue, 26 Mar 2024 21:34:48 +0100 Subject: [PATCH 059/292] tag ffsync as replaced-by-another-app --- apps.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.toml b/apps.toml index de84cd6efa..d1629a5b23 100644 --- a/apps.toml +++ b/apps.toml @@ -1065,7 +1065,7 @@ url = "https://github.com/YunoHost-Apps/fastapi_ynh" [ffsync] added_date = 1674232499 # 2023/01/20 -antifeatures = [ "deprecated-software" ] +antifeatures = [ "deprecated-software", "replaced-by-another-app" ] category = "synchronization" deprecated_date = 1660842060 # 2022/08/18 level = 6 From aaab5280e5604459f05f707769e7851744125c84 Mon Sep 17 00:00:00 2001 From: Christian Wehrli Date: Tue, 26 Mar 2024 16:24:12 +0000 Subject: [PATCH 060/292] Translated readme-generator using Weblate (German) Currently translated at 94.8% (37 of 39 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/de/ --- .../translations/de/LC_MESSAGES/messages.mo | Bin 4947 -> 5089 bytes .../translations/de/LC_MESSAGES/messages.po | 8 +++----- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/tools/readme_generator/translations/de/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/de/LC_MESSAGES/messages.mo index f704b05fff4063109f5f554e9b50d75df160d687..1b1560b33e259e1e8c9d2fcc70bb083ddede7319 100644 GIT binary patch delta 845 zcmYk(%WG3X6u{xrBvxZ>o2JHEs&;Hm)DjH{Em~ZNMK=|xG>RfhUX$e7ytuhlj6y0> zi|c5mU~%DVD|9CnSK>xDx^W?b|A4x2srWn5g#(lC+?zS~oSFF;`?|OJB^;p!3k_PjGK6NFpe(H;3FKyAGilYEb7K_)bCDV z7xg7i5aNZ43wRq-7zk1XEo$M1cotux?liPnq!))#4=aHyoZcbS0`I#1p5%Ab4MjP& zPk0#h#QNxFfci2(Z~zmiJGz7oY~UjP#AA4as&{Z558@Qn^}{Y|LyI_u_wWh6M%{Ui z-RV`_MZL7dc}B}QA_{-KVM zwf+8h=R~qgwh}i5TV&a+V@<~KJZr8I<*TKFXRcP=$<})K!5^At Bb0Yu% delta 720 zcmXxiODKd<6u|K_50B6LIcSXMj5o6w7BY(0IBocp~sKQ)D4O6)OVc$n49A&W>4E?fCw1Z^Vq zIDool5%cf>&oGV|7_f^J;1D+AI683)r_sb!{6H_x@~1VCupAP!@!|)Iu{Beq1pBZ7 zLm0<(bYXUuNI5p4ChW&-oW>4Zz%e|+T6{$}>Y{w`pziC#T+WwCf+AilU<5aC9=}iz zoG_UB9<{mYr22rnY4s$SqevD#xlHiu04r}Ru z3kI u@;~YbSSB^h2J^x?Q|=+sGIfw>>Jr_i%jUGyU-jBLGOtdICBqypjr{_>*hR7c diff --git a/tools/readme_generator/translations/de/LC_MESSAGES/messages.po b/tools/readme_generator/translations/de/LC_MESSAGES/messages.po index bc3cd09c10..7c042b40b5 100644 --- a/tools/readme_generator/translations/de/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/de/LC_MESSAGES/messages.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 07:00+0100\n" -"PO-Revision-Date: 2024-03-25 21:08+0000\n" -"Last-Translator: OniriCorpe \n" +"PO-Revision-Date: 2024-03-26 22:06+0000\n" +"Last-Translator: Christian Wehrli \n" "Language-Team: German \n" "Language: de\n" @@ -236,10 +236,8 @@ msgstr "" "branch](%(testing_branch_url)s)." #: templates/README.md.j2:83 -#, fuzzy -#| msgid "To try the testing branch, please proceed like that:" msgid "To try the `testing` branch, please proceed like that:" -msgstr "Um den `Testing`-Branch auszuprobieren, gehen Sie bitte wie folgt vor:" +msgstr "Um den `testing` Branch auszuprobieren, gehen Sie bitte wie folgt vor:" #: templates/README.md.j2:87 msgid "or" From 0b623f8891b4f4e52dad42212b41991ce2f00290 Mon Sep 17 00:00:00 2001 From: Tommi Date: Tue, 26 Mar 2024 09:21:48 +0000 Subject: [PATCH 061/292] Translated readme-generator using Weblate (Italian) Currently translated at 100.0% (39 of 39 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/it/ --- .../translations/it/LC_MESSAGES/messages.mo | Bin 0 -> 5952 bytes .../translations/it/LC_MESSAGES/messages.po | 90 ++++++++++++------ 2 files changed, 61 insertions(+), 29 deletions(-) create mode 100644 tools/readme_generator/translations/it/LC_MESSAGES/messages.mo diff --git a/tools/readme_generator/translations/it/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/it/LC_MESSAGES/messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..64ad0256b29db5f79f9f9fe7e97b6cd605d4f033 GIT binary patch literal 5952 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 LNoyH~kXHW&b(3\n" +"Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.3.1\n" "Generated-By: Babel 2.14.0\n" #: templates/ALL_README.md.j2:11 #, python-format msgid "Read the README in %(language)s" -msgstr "" +msgstr "Leggi il “README” in %(language)s" #: templates/README.md.j2:2 msgid "Packaging an app, starting from this example" -msgstr "" +msgstr "Creare il pacchetto di un’app, partendo da questo esempio" #: templates/README.md.j2:4 msgid "" @@ -32,32 +35,42 @@ msgid "" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " "the Github repo" msgstr "" +"Prima di lavorarci, copia quest’app usando [il bottone “Use this template” " +"nella repository su GitHub](https://github.com/" +"new?template_name=example_ynh&template_owner=YunoHost)" #: templates/README.md.j2:5 msgid "Edit the `manifest.toml` with app specific info" msgstr "" +"Modifica il file `manifest.toml` con le informazioni specifiche dell’app" #: templates/README.md.j2:6 msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " "any relevant conf files in `conf/`" msgstr "" +"Modifica gli script `install`, `upgrade`, `remove`, `backup` e `restore`, " +"oltre a i possibili file di configurazione in `conf/`" #: templates/README.md.j2:7 msgid "" "Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" +"Usa [la documentazione per “script helpers”](https://yunohost.org/" +"packaging_apps_helpers)" #: templates/README.md.j2:8 msgid "" "Edit the `change_url` and `config` scripts too, or remove them if you have " "no use of them" msgstr "" +"Modifica anche gli script `change_url` and `config`, oppure rimuovili se non " +"servono" #: templates/README.md.j2:9 msgid "Add a `LICENSE` file for the package." -msgstr "" +msgstr "Aggiungi un file `LICENSE` per il pacchetto." #: templates/README.md.j2:10 msgid "" @@ -66,18 +79,27 @@ msgid "" "published with and you can choose it freely! (If you don't know which to " "choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" +"NB: questo file `LICENSE` non deve necessariamente essere la stessa licenza " +"dell’app upstream, è unicamente la licenza con cui vuoi sia pubblicato il " +"codice di questo pacchetto e puoi sceglierla liberamente! (Se non sai quale " +"scegliere, ti raccomandiamo la licenza [AGPL-3](https://www.gnu.org/licenses/" +"agpl-3.0.txt))" #: templates/README.md.j2:11 msgid "" "Edit files under the `doc/` directory ([see the page about documenting " "packages](https://yunohost.org/packaging_app_doc))" msgstr "" +"Modifica i file nella cartella `doc` ([vedi la pagina riguardo la " +"documentazione dei pacchetti](https://yunohost.org/packaging_app_doc))" #: templates/README.md.j2:12 msgid "" "The `README.md` files are to be automatically generated by " msgstr "" +"I file `README.md` sono generati automaticamente da " #: templates/README.md.j2:18 msgid "" @@ -85,32 +107,35 @@ msgid "" "YunoHost/apps/tree/master/tools/readme_generator>\n" "It shall NOT be edited by hand." msgstr "" +"N.B.: Questo README è stato automaticamente generato da \n" +"NON DEVE essere modificato manualmente." #: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" -msgstr "" +msgstr "%(application_name)s per YunoHost" #: templates/README.md.j2:24 msgid "Integration level" -msgstr "" +msgstr "Livello di integrazione" #: templates/README.md.j2:24 msgid "Working status" -msgstr "" +msgstr "Stato di funzionamento" #: templates/README.md.j2:24 msgid "Maintenance status" -msgstr "" +msgstr "Stato di manutenzione" #: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" -msgstr "" +msgstr "Installa %(application_name)s con YunoHost" #: templates/README.md.j2:28 msgid "Read this README is other languages." -msgstr "" +msgstr "Leggi questo README in altre lingue." #: templates/README.md.j2:30 #, python-format @@ -118,73 +143,77 @@ msgid "" "This package allows you to install %(application_name)s quickly and simply " "on a YunoHost server." msgstr "" +"Questo pacchetto ti permette di installare %(application_name)s su un server " +"YunoHost in modo semplice e veloce." #: templates/README.md.j2:31 msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" "install) to learn how to install it." msgstr "" +"Se non hai YunoHost, consulta [la guida](https://yunohost.org/install) per " +"imparare a installarlo." #: templates/README.md.j2:33 msgid "Overview" -msgstr "" +msgstr "Panoramica" #: templates/README.md.j2:37 msgid "Shipped version:" -msgstr "" +msgstr "Versione pubblicata:" #: templates/README.md.j2:41 msgid "Demo:" -msgstr "" +msgstr "Prova:" #: templates/README.md.j2:45 msgid "Screenshots" -msgstr "" +msgstr "Screenshot" #: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" -msgstr "" +msgstr "Screenshot di %(application_name)s" #: templates/README.md.j2:53 msgid "Disclaimers / important information" -msgstr "" +msgstr "Attenzione/informazioni importanti" #: templates/README.md.j2:59 msgid "Antifeatures" -msgstr "" +msgstr "Anti-funzionalità" #: templates/README.md.j2:66 msgid "Documentation and resources" -msgstr "" +msgstr "Documentazione e risorse" #: templates/README.md.j2:68 msgid "Official app website:" -msgstr "" +msgstr "Sito web ufficiale dell’app:" #: templates/README.md.j2:70 msgid "Official user documentation:" -msgstr "" +msgstr "Documentazione ufficiale per gli utenti:" #: templates/README.md.j2:72 msgid "Official admin documentation:" -msgstr "" +msgstr "Documentazione ufficiale per gli amministratori:" #: templates/README.md.j2:74 msgid "Upstream app code repository:" -msgstr "" +msgstr "Repository upstream del codice dell’app:" #: templates/README.md.j2:76 msgid "YunoHost Store:" -msgstr "" +msgstr "Store di YunoHost:" #: templates/README.md.j2:77 msgid "Report a bug:" -msgstr "" +msgstr "Segnala un problema:" #: templates/README.md.j2:79 msgid "Developer info" -msgstr "" +msgstr "Informazioni per sviluppatori" #: templates/README.md.j2:81 #, python-format @@ -192,15 +221,18 @@ msgid "" "Please send your pull request to the [`testing` branch]" "(%(testing_branch_url)s)." msgstr "" +"Si prega di inviare la tua pull request alla [branch di " +"`testing`](%(testing_branch_url)s)." #: templates/README.md.j2:83 msgid "To try the `testing` branch, please proceed like that:" msgstr "" +"Per provare la branch di `testing`, si prega di procedere in questo modo:" #: templates/README.md.j2:87 msgid "or" -msgstr "" +msgstr "o" #: templates/README.md.j2:91 msgid "More info regarding app packaging:" -msgstr "" +msgstr "Maggiori informazioni riguardo il pacchetto di quest’app:" From 48073fd4be7a17b40b43eddad8a5861aed5a03fe Mon Sep 17 00:00:00 2001 From: Poesty Li Date: Tue, 26 Mar 2024 11:50:34 +0000 Subject: [PATCH 062/292] Translated readme-generator using Weblate (Chinese (Simplified)) Currently translated at 97.4% (38 of 39 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/zh_Hans/ --- .../zh_Hans/LC_MESSAGES/messages.mo | Bin 1667 -> 5464 bytes .../zh_Hans/LC_MESSAGES/messages.po | 92 +++++++++--------- 2 files changed, 44 insertions(+), 48 deletions(-) diff --git a/tools/readme_generator/translations/zh_Hans/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/zh_Hans/LC_MESSAGES/messages.mo index 405a540edc49f494aa935bac065d06ead74e06ed..a7de0ffb0074fa95fbb5530deecfa1f76eb7b2e5 100644 GIT binary patch literal 5464 zcmcIoYiwI*8UBD>Amcg)mY5iE>e?bP0AS2h)?V<_M!GU-nqof zBqXOz(p;NlO|v%1XhV}O>(->BZR+OI{FpQe1QHS;{vo9K9NPk^zxXjEB%b%2W5*pW z7il|+{rG&>_kG^yeZQ~$^SyVRV0bF=`5Hd0A7Sh<;K)bug(vhe#gbO+qj)`t50-FZO7_x2>l7d2@{8UJ?Q=gqcX;mv9G|b?gYc9d z@{@dkB%O!ssl*2%a2`%=2*Ko8t@p1bi){E(I*88{e;aEXWZHSDQx zYN-$LPB|`kr>b!yCU{Z`ACjWN&uSGz?i7+?YC>mw)MPihWt~gOB<~OyEqF@R4#`TC zs|uHm8gACu1E>7 zOS~vyf@tqnVh@*k)RZE$UC)_{`n0MW)x5(r3~Y)&+HJ419@j)tWpyH<2Jzh`;%ZW8 zTvj^KDC^<4BqxNX^8l9#c(>cgk;F7!s^tpnGlNMym3j1U_D(mwJ@BokI05Y zlFm&ff>mkPP(%#}LOddCB5bHyH?L~b1vyO=Mg^BTRMX%X0LA;sgN8Xhu}QB8^n`spr1zd9fYGwJOLQsAs8 zZCm3QBPre3H!iw}RWi(DOIEmJXCPFzUqVu#D>!Ya2{@BN^c+#?NfDMi<**yG2G{h6 zs#F@T1I6&yaOgvVE7(Xk;|6adf}*Az5w~I1^ROBmaZJ?|9#d2F;&nj1e%9d9z_(R_ z{!{k36%7X0V_2Lw?QcaYa{+m~>qBD^KWo|@ghpW0`zi!l z6xHAfK~V;Kia>Jck|x7UEJIPyk;2@oD;&O1o0-&Mm6UM2_knAUg;WKTsJA$nbeeJ& zrk%Z1snikV2$oiP((H)KdJJ~DfKuhYq64T9J?1zfI{9T9+(Rtl6oPxj= z?Pmv|8fTIxO!&5~DvlClqPA7*#eRgUH~=xlCK@je(rFQ@v^Z)y%xI9cgb^J@k3m8x zLbpn@vLQNaiOI<%!VNxjBwCQQ!iA8#n?Dh8Pc38%vJCz~e;;<p?B+4c8>}k6LB1k`pwGQl707W4<)_bn_A7D^^Sh8*p*yq zq0=GARE;%j>Q8Yp`Whm>A9^9=dt$O8kg8QJL<5Swh*a~c;^gWIS1`UtJt{|hyUnQX zYgL21qItjXfasD*2EIDf!XSUHzV?8xalfywmOs5e*x2yMkM}p#SL{RG^R+_SI&K`Q z7UWMI+_#T6)uOOIQQuhGu$j+R)W5xAk4lFKTfteI(brVvQfO`bVwhYgXS%esd;2H)0Kn~pK5L!5XrDZW%VOc^X#QM}*9X__xwF~KvHX=@ zdv%=U)~E85scA= zxho*@f5|}ST6kl9kXhp+_A4tz1IjOl*2^RArHd|y`QB-J_DzssojYv*d^VdIEzG9j z5VedgTNnF5j5TnkaB9Bfj91G3>vhoCr*s`GZIoSGu*Qap*FNsXKfAV;-8hk($$)`E z-)L@Q$t9??>HF@4ZZDR~&n;MeeQroeXiL+@FggC%hZpmkC+%O(f!tC#g>NO&+w75} z*61s@q1JP?I=kARf9)(Nf|1tJVE$~MwRD6O?uoispt#$4>$9sc({B%q=N5;p)pIPj zcG(`9&ke2E=^o}r-gUwrJdUIyh0I*G<~?snhxVmKyLSw~AmQSfnwxy z2bPXlW9RLY%LtE^8L?+);8VHYz3MPFVP%d$#V*U>q_mWEZ6%wTr0HWQLkqATR20&K z_VDXB)*;>jSI!s!Mdwa06nc*5mlxas7Ke@40~6V`H|=AK`O$IS_Wxh*oHScHX-{3t zEzRY|``y%aYKGJ5F|aX_d*jqrD{7BDaCK{}eeST;e}%bmcc(z0*|lT&%~RRTc~qh7 z^y7Efm7)SKMGsj&GN_a4T{+j!S5R^eyldA@tgv#ur2yS6=RXq\n" +"PO-Revision-Date: 2024-03-26 22:06+0000\n" +"Last-Translator: Poesty Li \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_Hans\n" @@ -51,10 +51,6 @@ msgstr "" " 中的任何相关配置文件" #: templates/README.md.j2:7 -#, fuzzy -#| msgid "" -#| "Using the [script helpers documentation.](https://yunohost.org/" -#| "packaging_apps_helpers)" msgid "" "Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" @@ -68,40 +64,35 @@ msgstr "同时编辑 `change_url` 和 `config` 脚本,如果不需要,可将 #: templates/README.md.j2:9 msgid "Add a `LICENSE` file for the package." -msgstr "" +msgstr "为软件包添加 `LICENSE` 文件。" #: templates/README.md.j2:10 -#, fuzzy -#| msgid "" -#| "Add a `LICENSE` file for the package. NB: this LICENSE file is not meant " -#| "to necessarily be the LICENSE of the upstream app - it is only the " -#| "LICENSE you want this package's code to published with ;). We recommend " -#| "to use [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." msgid "" "NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " "the upstream app - it is only the LICENSE you want this package's code to " "published with and you can choose it freely! (If you don't know which to " "choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" -"为软件包添加 `LICENSE` 文件。注意:此 LICENSE 文件不一定是上游应用的 LICENSE " -"- 它只是您希望此软件包的代码发布时使用的 LICENSE ;)。我们建议使用 [AGPL-3]" -"(https://www.gnu.org/licenses/agpl-3.0.txt)。" +"注意:此 `LICENSE` 文件不一定与上游应用的 LICENSE 相同 - " +"它只是您希望此软件包的代码发布时使用的 LICENSE " +"并且您可以自由选择!(如果您不知道该如何选择,我们推荐 [AGPL-3](https://www." +"gnu.org/licenses/agpl-3.0.txt))" #: templates/README.md.j2:11 -#, fuzzy -#| msgid "" -#| "Using the [script helpers documentation.](https://yunohost.org/" -#| "packaging_apps_helpers)" msgid "" "Edit files under the `doc/` directory ([see the page about documenting " "packages](https://yunohost.org/packaging_app_doc))" -msgstr "使用[脚本帮助文档](https://yunohost.org/packaging_apps_helpers)" +msgstr "" +"编辑 `doc/` 目录下的文件([请参阅有关文档化软件包的页面](https://yunohost." +"org/packaging_app_doc))" #: templates/README.md.j2:12 msgid "" "The `README.md` files are to be automatically generated by " msgstr "" +"`README.md` 文件将由 自动生成" #: templates/README.md.j2:18 msgid "" @@ -109,19 +100,22 @@ msgid "" "YunoHost/apps/tree/master/tools/readme_generator>\n" "It shall NOT be edited by hand." msgstr "" +"注意:此 README 由 自动生成\n" +"请勿手动编辑。" #: templates/README.md.j2:22 -#, python-format +#, fuzzy, python-format msgid "%(application_name)s for YunoHost" -msgstr "" +msgstr "YunoHost 的 %(application_name)s" #: templates/README.md.j2:24 msgid "Integration level" -msgstr "" +msgstr "集成程度" #: templates/README.md.j2:24 msgid "Working status" -msgstr "" +msgstr "工作状态" #: templates/README.md.j2:24 msgid "Maintenance status" @@ -130,101 +124,103 @@ msgstr "维护状态" #: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" -msgstr "" +msgstr "使用 YunoHost 安装 %(application_name)s" #: templates/README.md.j2:28 msgid "Read this README is other languages." -msgstr "" +msgstr "阅读此 README 的其它语言版本。" #: templates/README.md.j2:30 #, python-format msgid "" "This package allows you to install %(application_name)s quickly and simply " "on a YunoHost server." -msgstr "" +msgstr "通过此软件包,您可以在 YunoHost 服务器上快速、简单地安装 " +"%(application_name)s。" #: templates/README.md.j2:31 msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" "install) to learn how to install it." -msgstr "" +msgstr "如果您还没有 YunoHost,请参阅[指南](https://yunohost.org/" +"install)了解如何安装它。" #: templates/README.md.j2:33 msgid "Overview" -msgstr "" +msgstr "概况" #: templates/README.md.j2:37 msgid "Shipped version:" -msgstr "" +msgstr "分发版本:" #: templates/README.md.j2:41 msgid "Demo:" -msgstr "" +msgstr "演示:" #: templates/README.md.j2:45 msgid "Screenshots" -msgstr "" +msgstr "截图" #: templates/README.md.j2:48 #, python-format msgid "Screenshot of %(application_name)s" -msgstr "" +msgstr "%(application_name)s 的截图" #: templates/README.md.j2:53 msgid "Disclaimers / important information" -msgstr "" +msgstr "免责声明 / 重要信息" #: templates/README.md.j2:59 msgid "Antifeatures" -msgstr "" +msgstr "负面特征" #: templates/README.md.j2:66 msgid "Documentation and resources" -msgstr "" +msgstr "文档与资源" #: templates/README.md.j2:68 msgid "Official app website:" -msgstr "" +msgstr "官方应用网站:" #: templates/README.md.j2:70 msgid "Official user documentation:" -msgstr "" +msgstr "官方用户文档:" #: templates/README.md.j2:72 msgid "Official admin documentation:" -msgstr "" +msgstr "官方管理文档:" #: templates/README.md.j2:74 msgid "Upstream app code repository:" -msgstr "" +msgstr "上游应用代码库:" #: templates/README.md.j2:76 msgid "YunoHost Store:" -msgstr "" +msgstr "YunoHost 商店:" #: templates/README.md.j2:77 msgid "Report a bug:" -msgstr "" +msgstr "报告 bug:" #: templates/README.md.j2:79 msgid "Developer info" -msgstr "" +msgstr "开发者信息" #: templates/README.md.j2:81 #, python-format msgid "" "Please send your pull request to the [`testing` branch]" "(%(testing_branch_url)s)." -msgstr "" +msgstr "请向 [`testing` 分支](%(testing_branch_url)s) 发送拉取请求。" #: templates/README.md.j2:83 msgid "To try the `testing` branch, please proceed like that:" -msgstr "" +msgstr "如要尝试 `testing` 分支,请这样操作:" #: templates/README.md.j2:87 msgid "or" -msgstr "" +msgstr "或" #: templates/README.md.j2:91 msgid "More info regarding app packaging:" -msgstr "" +msgstr "有关应用打包的更多信息:" From 2921474a89dee27e2d1a3f660a85e9fcc1d2cd26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20M?= Date: Wed, 27 Mar 2024 07:27:42 +0000 Subject: [PATCH 063/292] Translated readme-generator using Weblate (Galician) Currently translated at 100.0% (39 of 39 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/gl/ --- .../translations/gl/LC_MESSAGES/messages.mo | Bin 4877 -> 5757 bytes .../translations/gl/LC_MESSAGES/messages.po | 26 ++++++------------ 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/tools/readme_generator/translations/gl/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/gl/LC_MESSAGES/messages.mo index a352aaf7b29503858e397eaa17a308f865f137c2..d934f1bb877e11d1d99cba79e438155e37c5f366 100644 GIT binary patch delta 1685 zcmajdPiP!f9Ki9{Buz|XY>n2cRr`y!P1^j~VzHJ;g(^iOHG~8~UB!KwdD$JiJ8wEO z>t>6vMNfjoL$O7$hkB`krv`+a1Opy=5`-Q+6cp;klLw(-1;4-9B-E3S%zidI@6Yf3 ze!mL`|C#LE8tMDoFvfYF;CW}8G0)+bJ$x{dUSme_EFQp%ct5V;HT)5`W87!V1DNA8 z_%ZIqYuLthd<#!7+2ds_8PhQX{T#v%&*NeI8Xv@;aRhJU(|89j;obpbCJ6F6KFR;L z?lWdL-bKB@$e=NNH6@(H<2a8F_u+TAA8+C?=bOLzq6ZA_FlGoRaTgxP^EitYyn)AX zf=PPt625`wQEz?|cj9f-{+EWk0j;5~{~fP!zUgDNrtn+bgV#~;20n&= z;3v49-52mPT*2S)1uPS7h?ns&-bKyG7-@VMPvAjZK+Rwq_Yv4G(%aF-3kahDY zk7k^9{-tL}q<7Mu-W*yT?EpHi7_@GY2MtXJ`70_uhP1zVibq>Yb3s=YL-U|RTT$Ci zTX|^p_1^Nf*OsHY%cL2HE|t9Iq!Rj|RFN=BU6A{`7@kAy>XZK0+yLEGJ)?KRtDH>fP~Lo+sH%snlwH5a9P3rTS5$@Nw>BEMOm@iK|DlB{1{iDD}@ zaA{y!u~iwH3R@)hY}4ict<8(WA5j~h+Zl0L?zRrRr%bVrC3mr~STY);s1OCBDlsek zR<=WqrW&AAlhg-}7^Wm!UzPQ52(T#2+b79>cM8)|`mIw`Ar z=BZaEuI^T%RO-=E>Wagu$)clwVpei73FP0el5;!x03U^E1Q(C7I@J@DS=z2o=0=Y7BLyEgQ&HowwYc#>4j=rztY zr8LU9oDVggPiZGFu*%!qz^7d1D>n0dA*FU+gahTIynn`IsEtw4Z zp}i%gO+3O*p5-oH<02Q>$DVa5ZQ)^N3udeDQyk(f$N7T&T;(2?JhYLcjQ>5!HvQA2 zNy!hhyvO^jv#?$h-efd>&P#mD*lDSlQV07PVGVOhdLxVmAKLyd=qKa-irAKUjFH$^ zcI%(MnN(P?ysfNqg2#D>k9d@Ay58U^4)Qf4iI3dO@2oLrRgu^LVM^3?%%Wl;6(e@A!-&fjqZ@sC`2Dzc1y{;Swp zw0DuRD)@}N#FmxaWj7=;${TUJqGHP~QC5*>lsl3gsvW0dV>*Aesd1utCf8VLJ\n" +"PO-Revision-Date: 2024-03-27 09:54+0000\n" +"Last-Translator: \"José M.\" \n" "Language-Team: Galician \n" "Language: gl\n" @@ -72,34 +72,24 @@ msgid "Add a `LICENSE` file for the package." msgstr "Engade un ficheiro `LICENSE` para o paquete." #: templates/README.md.j2:10 -#, fuzzy -#| msgid "" -#| "Add a `LICENSE` file for the package. NB: this LICENSE file is not meant " -#| "to necessarily be the LICENSE of the upstream app - it is only the " -#| "LICENSE you want this package's code to published with ;). We recommend " -#| "to use [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." msgid "" "NB: this `LICENSE` file is not meant to necessarily be the same LICENSE as " "the upstream app - it is only the LICENSE you want this package's code to " "published with and you can choose it freely! (If you don't know which to " "choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" -"Engadir un ficheiro `LICENSE` para o paquete. Nota: este ficheiro LICENSE " -"non ten que ser necesariamente o LICENSE da app da que procede - só é a " -"LICENZA coa que queres publicar o código deste paquete ;). Recomendamos usar " -"[the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt)." +"Nota: este ficheiro `LICENSE` non ten que ser necesariamente o LICENSE da " +"app da que procede - só é a LICENZA coa que queres publicar o código deste " +"paquete. Podes elexir libremente! (Se non o tes claro, recomendamos usar a " +"licenza [AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" #: templates/README.md.j2:11 -#, fuzzy -#| msgid "" -#| "Using the [script helpers documentation.](https://yunohost.org/" -#| "packaging_apps_helpers)" msgid "" "Edit files under the `doc/` directory ([see the page about documenting " "packages](https://yunohost.org/packaging_app_doc))" msgstr "" -"Usar a [documentación dos asistentes para scripts.](https://yunohost.org/" -"packaging_apps_helpers)" +"Editar os ficheiros dentro do directorio `doc/` ([le a páxina acerca de " +"documentar os paquetes](https://yunohost.org/packaging_app_doc))" #: templates/README.md.j2:12 msgid "" From 9ae92a3dbca84e40e148c3af1c46f3fce93bafa3 Mon Sep 17 00:00:00 2001 From: Laurent Peuch Date: Fri, 29 Mar 2024 06:46:00 +0100 Subject: [PATCH 064/292] feat(readme-generator): add Aleks' script to regen README in batch --- .../readme_generator/regen_readme_in_batch.py | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 tools/readme_generator/regen_readme_in_batch.py diff --git a/tools/readme_generator/regen_readme_in_batch.py b/tools/readme_generator/regen_readme_in_batch.py new file mode 100644 index 0000000000..59ce000740 --- /dev/null +++ b/tools/readme_generator/regen_readme_in_batch.py @@ -0,0 +1,71 @@ +import time +import json +import os +import hmac +import shlex +import asyncio +import tempfile + +from make_readme import generate_READMEs + +github_webhook_secret = open("github_webhook_secret", "r").read().strip() + +login = open("login").read().strip() +token = open("token").read().strip() + +my_env = os.environ.copy() +my_env["GIT_TERMINAL_PROMPT"] = "0" +my_env["GIT_AUTHOR_NAME"] = "yunohost-bot" +my_env["GIT_AUTHOR_EMAIL"] = "yunohost@yunohost.org" +my_env["GIT_COMMITTER_NAME"] = "yunohost-bot" +my_env["GIT_COMMITTER_EMAIL"] = "yunohost@yunohost.org" + + +async def git(cmd, in_folder=None): + + if not isinstance(cmd, list): + cmd = cmd.split() + if in_folder: + cmd = ["-C", in_folder] + cmd + cmd = ["git"] + cmd + cmd = " ".join(map(shlex.quote, cmd)) + print(cmd) + command = await asyncio.create_subprocess_shell(cmd, env=my_env, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.STDOUT) + data = await command.stdout.read() + return data.decode().strip() + + +async def regen_readme(repository, branch): + + print(f"{repository} -> branch '{branch}'") + + with tempfile.TemporaryDirectory() as folder: + await git(["clone", f"https://{login}:{token}@github.com/{repository}", "--single-branch", "--branch", branch, folder]) + generate_READMEs(folder) + + await git(["add", "README*.md"], in_folder=folder) + + diff_not_empty = await asyncio.create_subprocess_shell(" ".join(["git", "diff", "HEAD", "--compact-summary"]), cwd=folder, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.STDOUT) + diff_not_empty = await diff_not_empty.stdout.read() + diff_not_empty = diff_not_empty.decode().strip() + if not diff_not_empty: + print("nothing to do") + return + + await git(["commit", "-a", "-m", "Auto-update README", "--author='yunohost-bot '"], in_folder=folder) + await git(["push", "origin", branch, "--quiet"], in_folder=folder) + + print("Updated {repo}") + +skip = True +apps = json.load(open("../../builds/default/v3/apps.json"))["apps"] +for app, infos in apps.items(): + if not "github.com" in infos["git"]["url"]: + continue + if app == "dendrite": + skip = False + if skip: + continue + print(app) + time.sleep(2) + asyncio.run(regen_readme(infos["git"]["url"].replace("https://github.com/", ""), infos["git"]["branch"])) From 7e9c3db73869dc12c746597c3b2cc15bfa251b01 Mon Sep 17 00:00:00 2001 From: Laurent Peuch Date: Fri, 29 Mar 2024 06:46:40 +0100 Subject: [PATCH 065/292] refactor(readme-generator/regen_readme_in_batch): add main and remove unused import --- .../readme_generator/regen_readme_in_batch.py | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/tools/readme_generator/regen_readme_in_batch.py b/tools/readme_generator/regen_readme_in_batch.py index 59ce000740..9bdadf0e9d 100644 --- a/tools/readme_generator/regen_readme_in_batch.py +++ b/tools/readme_generator/regen_readme_in_batch.py @@ -1,7 +1,6 @@ import time import json import os -import hmac import shlex import asyncio import tempfile @@ -57,15 +56,17 @@ async def regen_readme(repository, branch): print("Updated {repo}") -skip = True -apps = json.load(open("../../builds/default/v3/apps.json"))["apps"] -for app, infos in apps.items(): - if not "github.com" in infos["git"]["url"]: - continue - if app == "dendrite": - skip = False - if skip: - continue - print(app) - time.sleep(2) - asyncio.run(regen_readme(infos["git"]["url"].replace("https://github.com/", ""), infos["git"]["branch"])) + +if __name__ == '__main__': + skip = True + apps = json.load(open("../../builds/default/v3/apps.json"))["apps"] + for app, infos in apps.items(): + if "github.com" not in infos["git"]["url"]: + continue + if app == "dendrite": + skip = False + if skip: + continue + print(app) + time.sleep(2) + asyncio.run(regen_readme(infos["git"]["url"].replace("https://github.com/", ""), infos["git"]["branch"])) From 750a92f49d926ee7c9bf6a4f456659bd42473094 Mon Sep 17 00:00:00 2001 From: Laurent Peuch Date: Fri, 29 Mar 2024 06:48:21 +0100 Subject: [PATCH 066/292] feat(readme-generator/regen_readme_in_batch): git add ALL_README.md --- tools/readme_generator/regen_readme_in_batch.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/readme_generator/regen_readme_in_batch.py b/tools/readme_generator/regen_readme_in_batch.py index 9bdadf0e9d..431e7a1350 100644 --- a/tools/readme_generator/regen_readme_in_batch.py +++ b/tools/readme_generator/regen_readme_in_batch.py @@ -43,6 +43,7 @@ async def regen_readme(repository, branch): generate_READMEs(folder) await git(["add", "README*.md"], in_folder=folder) + await git(["add", "ALL_README.md"], in_folder=folder) diff_not_empty = await asyncio.create_subprocess_shell(" ".join(["git", "diff", "HEAD", "--compact-summary"]), cwd=folder, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.STDOUT) diff_not_empty = await diff_not_empty.stdout.read() From cd0d4aecbd4d717f35f96f18cf0161cdf15e6ce6 Mon Sep 17 00:00:00 2001 From: Laurent Peuch Date: Fri, 29 Mar 2024 06:50:47 +0100 Subject: [PATCH 067/292] fix(readme-generator/regen_readme_in_batch): generate_READMEs expect a Path object now --- tools/readme_generator/regen_readme_in_batch.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/readme_generator/regen_readme_in_batch.py b/tools/readme_generator/regen_readme_in_batch.py index 431e7a1350..de65745ba0 100644 --- a/tools/readme_generator/regen_readme_in_batch.py +++ b/tools/readme_generator/regen_readme_in_batch.py @@ -6,6 +6,7 @@ import tempfile from make_readme import generate_READMEs +from pathlib import Path github_webhook_secret = open("github_webhook_secret", "r").read().strip() @@ -40,7 +41,7 @@ async def regen_readme(repository, branch): with tempfile.TemporaryDirectory() as folder: await git(["clone", f"https://{login}:{token}@github.com/{repository}", "--single-branch", "--branch", branch, folder]) - generate_READMEs(folder) + generate_READMEs(Path(folder)) await git(["add", "README*.md"], in_folder=folder) await git(["add", "ALL_README.md"], in_folder=folder) From 9c25346255b9b6f44aaa1bbb44dbb1fcc632e1a2 Mon Sep 17 00:00:00 2001 From: Laurent Peuch Date: Fri, 29 Mar 2024 06:53:08 +0100 Subject: [PATCH 068/292] fix(readme-generator/regen_readme_in_batch): f-string missing a f --- tools/readme_generator/regen_readme_in_batch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/readme_generator/regen_readme_in_batch.py b/tools/readme_generator/regen_readme_in_batch.py index de65745ba0..2c7f3d1e4b 100644 --- a/tools/readme_generator/regen_readme_in_batch.py +++ b/tools/readme_generator/regen_readme_in_batch.py @@ -56,7 +56,7 @@ async def regen_readme(repository, branch): await git(["commit", "-a", "-m", "Auto-update README", "--author='yunohost-bot '"], in_folder=folder) await git(["push", "origin", branch, "--quiet"], in_folder=folder) - print("Updated {repo}") + print(f"Updated {repository}") if __name__ == '__main__': From 96380acab4c79203454c6c14bc5fdf8c59db4dfa Mon Sep 17 00:00:00 2001 From: Laurent Peuch Date: Fri, 29 Mar 2024 06:53:54 +0100 Subject: [PATCH 069/292] feat(readme-generator/regen_readme_in_batch): make debug output more readable --- tools/readme_generator/regen_readme_in_batch.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/readme_generator/regen_readme_in_batch.py b/tools/readme_generator/regen_readme_in_batch.py index 2c7f3d1e4b..6d2a150dd2 100644 --- a/tools/readme_generator/regen_readme_in_batch.py +++ b/tools/readme_generator/regen_readme_in_batch.py @@ -37,7 +37,9 @@ async def git(cmd, in_folder=None): async def regen_readme(repository, branch): + print() print(f"{repository} -> branch '{branch}'") + print("=" * len(f"{repository} -> branch '{branch}'")) with tempfile.TemporaryDirectory() as folder: await git(["clone", f"https://{login}:{token}@github.com/{repository}", "--single-branch", "--branch", branch, folder]) From 8207d763e6f450034f13c8966ce7498f049c9a69 Mon Sep 17 00:00:00 2001 From: Laurent Peuch Date: Fri, 29 Mar 2024 06:54:18 +0100 Subject: [PATCH 070/292] feat(readme-generator/regen_readme_in_batch): output link to repository --- tools/readme_generator/regen_readme_in_batch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/readme_generator/regen_readme_in_batch.py b/tools/readme_generator/regen_readme_in_batch.py index 6d2a150dd2..174ac47cdb 100644 --- a/tools/readme_generator/regen_readme_in_batch.py +++ b/tools/readme_generator/regen_readme_in_batch.py @@ -58,7 +58,7 @@ async def regen_readme(repository, branch): await git(["commit", "-a", "-m", "Auto-update README", "--author='yunohost-bot '"], in_folder=folder) await git(["push", "origin", branch, "--quiet"], in_folder=folder) - print(f"Updated {repository}") + print(f"Updated https://github.com/{repository}") if __name__ == '__main__': From 2d3b6bf280e41895e8a5c8b0bd921dd09bd9a9e5 Mon Sep 17 00:00:00 2001 From: Laurent Peuch Date: Fri, 29 Mar 2024 06:57:44 +0100 Subject: [PATCH 071/292] refactor(readme-generator/regen_readme_in_batch): blep, make core more readable --- tools/readme_generator/regen_readme_in_batch.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/tools/readme_generator/regen_readme_in_batch.py b/tools/readme_generator/regen_readme_in_batch.py index 174ac47cdb..a63a1e534a 100644 --- a/tools/readme_generator/regen_readme_in_batch.py +++ b/tools/readme_generator/regen_readme_in_batch.py @@ -22,16 +22,19 @@ async def git(cmd, in_folder=None): - if not isinstance(cmd, list): cmd = cmd.split() + if in_folder: cmd = ["-C", in_folder] + cmd + cmd = ["git"] + cmd cmd = " ".join(map(shlex.quote, cmd)) print(cmd) + command = await asyncio.create_subprocess_shell(cmd, env=my_env, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.STDOUT) data = await command.stdout.read() + return data.decode().strip() @@ -43,6 +46,7 @@ async def regen_readme(repository, branch): with tempfile.TemporaryDirectory() as folder: await git(["clone", f"https://{login}:{token}@github.com/{repository}", "--single-branch", "--branch", branch, folder]) + generate_READMEs(Path(folder)) await git(["add", "README*.md"], in_folder=folder) @@ -51,26 +55,29 @@ async def regen_readme(repository, branch): diff_not_empty = await asyncio.create_subprocess_shell(" ".join(["git", "diff", "HEAD", "--compact-summary"]), cwd=folder, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.STDOUT) diff_not_empty = await diff_not_empty.stdout.read() diff_not_empty = diff_not_empty.decode().strip() - if not diff_not_empty: + if diff_not_empty: print("nothing to do") return await git(["commit", "-a", "-m", "Auto-update README", "--author='yunohost-bot '"], in_folder=folder) await git(["push", "origin", branch, "--quiet"], in_folder=folder) - print(f"Updated https://github.com/{repository}") + print(f"Updated https://github.com/{repository}") if __name__ == '__main__': skip = True apps = json.load(open("../../builds/default/v3/apps.json"))["apps"] + for app, infos in apps.items(): if "github.com" not in infos["git"]["url"]: continue + if app == "dendrite": skip = False + if skip: continue - print(app) + time.sleep(2) asyncio.run(regen_readme(infos["git"]["url"].replace("https://github.com/", ""), infos["git"]["branch"])) From 2a55e79ca6ef5655507a1e36509fe7bf7a00dc74 Mon Sep 17 00:00:00 2001 From: Laurent Peuch Date: Fri, 29 Mar 2024 06:58:59 +0100 Subject: [PATCH 072/292] refactor(readme-generator/regen_readme_in_batch): upsi, broke condition --- tools/readme_generator/regen_readme_in_batch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/readme_generator/regen_readme_in_batch.py b/tools/readme_generator/regen_readme_in_batch.py index a63a1e534a..372ae9c375 100644 --- a/tools/readme_generator/regen_readme_in_batch.py +++ b/tools/readme_generator/regen_readme_in_batch.py @@ -55,7 +55,7 @@ async def regen_readme(repository, branch): diff_not_empty = await asyncio.create_subprocess_shell(" ".join(["git", "diff", "HEAD", "--compact-summary"]), cwd=folder, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.STDOUT) diff_not_empty = await diff_not_empty.stdout.read() diff_not_empty = diff_not_empty.decode().strip() - if diff_not_empty: + if not diff_not_empty: print("nothing to do") return From 2aa13b993f6027817cecfce61c59fc4b28515205 Mon Sep 17 00:00:00 2001 From: ButterflyOfFire Date: Fri, 29 Mar 2024 02:20:21 +0000 Subject: [PATCH 073/292] Translated readme-generator using Weblate (Arabic) Currently translated at 5.1% (2 of 39 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/ar/ --- .../translations/ar/LC_MESSAGES/messages.mo | Bin 0 -> 770 bytes .../translations/ar/LC_MESSAGES/messages.po | 14 +++++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 tools/readme_generator/translations/ar/LC_MESSAGES/messages.mo diff --git a/tools/readme_generator/translations/ar/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/ar/LC_MESSAGES/messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..1678ff55e3a4e38791aac4b245f55ff6a7695d73 GIT binary patch literal 770 zcmY*XO>fgc5H(*HA2}m2msYLXjpKfx%83hxI5bk+L}?0?6We6#xFl<9cZ1q%RY2+i zap4Cb4hcmdKu8FF2wGo|_$SOZEfFI<&CJ`G**Et7zJB$Mg?0sT1F?d*hNvTqJwYrY zDB>pK72?k&%ld>qM7+LiSqtcYp-1}6%q&bN)})=MG){O7lmpGOMUaXLWr#hI4nXx1 z3G9FlvOcp~jCPS>&dl#txFy-A(NDQ5D2=PbYO00 z$kUBfs(HJ`vQ#J%$vEkfyTe$LcItuMY>*avmY6P5p^AC169z33HAp3ZjfNN179KY? zL%U9;B5gsr>{FEr531YsI&220ryNE>t$rt{R9fNI);g9>q>(nGgMU)WJ*6_~IgUCX z!U~5du7~0Zsfe9yvW0XmSV!RA14d%TnJ{-cR5;V=9#CONwJ4k}?G}pmy_74)QR-oa zyC`;`oUBh1UV=`K3dxke-L8_gX`NBC#{>y^C+*@7@L+8>QFgOG6tqvOsTfEPcy^Xb z|5gbmq0fE42)CgKc!f?riGj6fC?k~ga>?AJxuIX5wp1G!N1@qOC{fOMZ zSk!}uY!^Q>gVn-v!L=>@E`OoF>5+a5`lJ4uKiBU;pX%>=oS)=J`H4x#$ev=!SpUE@ lf2lv~5$I8VjQj`Vt^7!TF*ES^{3T(rDLB?Yk^ApW{RKCE|4;w` literal 0 HcmV?d00001 diff --git a/tools/readme_generator/translations/ar/LC_MESSAGES/messages.po b/tools/readme_generator/translations/ar/LC_MESSAGES/messages.po index 6278d0695c..c5c05b0d02 100644 --- a/tools/readme_generator/translations/ar/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/ar/LC_MESSAGES/messages.po @@ -8,23 +8,27 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 07:00+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" +"PO-Revision-Date: 2024-03-29 17:24+0000\n" +"Last-Translator: ButterflyOfFire \n" +"Language-Team: Arabic \n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" +"X-Generator: Weblate 5.3.1\n" "Generated-By: Babel 2.14.0\n" #: templates/ALL_README.md.j2:11 #, python-format msgid "Read the README in %(language)s" -msgstr "" +msgstr "قراءة README باللغة %(language)s" #: templates/README.md.j2:2 msgid "Packaging an app, starting from this example" -msgstr "" +msgstr "أنشاء حزمة تطبيقية بمتابعة هذا المثال" #: templates/README.md.j2:4 msgid "" From 83d8513618c9d75f99121f7d0a37d345af764db9 Mon Sep 17 00:00:00 2001 From: Psycojoker <41827+Psycojoker@users.noreply.github.com> Date: Sat, 30 Mar 2024 00:05:33 +0000 Subject: [PATCH 074/292] :art: Format Python code with Black --- .../readme_generator/regen_readme_in_batch.py | 45 ++++++++++++++++--- 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/tools/readme_generator/regen_readme_in_batch.py b/tools/readme_generator/regen_readme_in_batch.py index 372ae9c375..99bb0cc392 100644 --- a/tools/readme_generator/regen_readme_in_batch.py +++ b/tools/readme_generator/regen_readme_in_batch.py @@ -32,7 +32,12 @@ async def git(cmd, in_folder=None): cmd = " ".join(map(shlex.quote, cmd)) print(cmd) - command = await asyncio.create_subprocess_shell(cmd, env=my_env, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.STDOUT) + command = await asyncio.create_subprocess_shell( + cmd, + env=my_env, + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.STDOUT, + ) data = await command.stdout.read() return data.decode().strip() @@ -45,27 +50,50 @@ async def regen_readme(repository, branch): print("=" * len(f"{repository} -> branch '{branch}'")) with tempfile.TemporaryDirectory() as folder: - await git(["clone", f"https://{login}:{token}@github.com/{repository}", "--single-branch", "--branch", branch, folder]) + await git( + [ + "clone", + f"https://{login}:{token}@github.com/{repository}", + "--single-branch", + "--branch", + branch, + folder, + ] + ) generate_READMEs(Path(folder)) await git(["add", "README*.md"], in_folder=folder) await git(["add", "ALL_README.md"], in_folder=folder) - diff_not_empty = await asyncio.create_subprocess_shell(" ".join(["git", "diff", "HEAD", "--compact-summary"]), cwd=folder, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.STDOUT) + diff_not_empty = await asyncio.create_subprocess_shell( + " ".join(["git", "diff", "HEAD", "--compact-summary"]), + cwd=folder, + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.STDOUT, + ) diff_not_empty = await diff_not_empty.stdout.read() diff_not_empty = diff_not_empty.decode().strip() if not diff_not_empty: print("nothing to do") return - await git(["commit", "-a", "-m", "Auto-update README", "--author='yunohost-bot '"], in_folder=folder) + await git( + [ + "commit", + "-a", + "-m", + "Auto-update README", + "--author='yunohost-bot '", + ], + in_folder=folder, + ) await git(["push", "origin", branch, "--quiet"], in_folder=folder) print(f"Updated https://github.com/{repository}") -if __name__ == '__main__': +if __name__ == "__main__": skip = True apps = json.load(open("../../builds/default/v3/apps.json"))["apps"] @@ -80,4 +108,9 @@ async def regen_readme(repository, branch): continue time.sleep(2) - asyncio.run(regen_readme(infos["git"]["url"].replace("https://github.com/", ""), infos["git"]["branch"])) + asyncio.run( + regen_readme( + infos["git"]["url"].replace("https://github.com/", ""), + infos["git"]["branch"], + ) + ) From 9d4b632d323c9c32c3c15a62fdd6978ee9359df7 Mon Sep 17 00:00:00 2001 From: tituspijean Date: Sun, 31 Mar 2024 21:13:02 +0200 Subject: [PATCH 075/292] readme_generator: Fix typo while linking to ALL_README.md (#2193) Co-authored-by: OniriCorpe Co-authored-by: OniriCorpe --- tools/readme_generator/messages.pot | 4 ++-- tools/readme_generator/templates/README.md.j2 | 2 +- tools/readme_generator/tests/README.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/readme_generator/messages.pot b/tools/readme_generator/messages.pot index 56b603557d..539dd2f7b8 100644 --- a/tools/readme_generator/messages.pot +++ b/tools/readme_generator/messages.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 07:00+0100\n" +"POT-Creation-Date: 2024-03-31 19:33+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -110,7 +110,7 @@ msgid "Install %(application_name)s with YunoHost" msgstr "" #: templates/README.md.j2:28 -msgid "Read this README is other languages." +msgid "Read this README in other languages." msgstr "" #: templates/README.md.j2:30 diff --git a/tools/readme_generator/templates/README.md.j2 b/tools/readme_generator/templates/README.md.j2 index 9ee472e36b..bd1e6182f7 100644 --- a/tools/readme_generator/templates/README.md.j2 +++ b/tools/readme_generator/templates/README.md.j2 @@ -25,7 +25,7 @@ It shall NOT be edited by hand.") }} [![{{ _("Install %(application_name)s with YunoHost")|format(application_name=manifest.name) }}](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app={{manifest.id}}) -*[{{ _("Read this README is other languages.") }}](./ALL_README.md)* +*[{{ _("Read this README in other languages.") }}](./ALL_README.md)* > *{{ _("This package allows you to install %(application_name)s quickly and simply on a YunoHost server.")|format(application_name=manifest.name) }}* > *{{ _("If you don't have YunoHost, please consult [the guide](https://yunohost.org/install) to learn how to install it.") }}* diff --git a/tools/readme_generator/tests/README.md b/tools/readme_generator/tests/README.md index d969cea9b7..0f3147ae27 100644 --- a/tools/readme_generator/tests/README.md +++ b/tools/readme_generator/tests/README.md @@ -9,7 +9,7 @@ It shall NOT be edited by hand. [![Install GoToSocial with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=gotosocial) -*[Read this README is other languages.](./ALL_README.md)* +*[Read this README in other languages.](./ALL_README.md)* > *This package allows you to install GoToSocial quickly and simply on a YunoHost server.* > *If you don't have YunoHost, please consult [the guide](https://yunohost.org/install) to learn how to install it.* From 16c6e23d3446a97ba370d1c79236a1107fade357 Mon Sep 17 00:00:00 2001 From: ewilly Date: Fri, 29 Mar 2024 11:31:15 +0000 Subject: [PATCH 076/292] Update apps.toml --- apps.toml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/apps.toml b/apps.toml index d1629a5b23..c45a218806 100644 --- a/apps.toml +++ b/apps.toml @@ -1638,6 +1638,11 @@ state = "working" subtags = [ "accounting" ] url = "https://github.com/YunoHost-Apps/ihatemoney_ynh" +[immich] +category = "multimedia" +state = "working" +url = "https://github.com/YunoHost-Apps/immich_ynh" + [incus] added_date = 1710508401 # 2024/03/15 category = "system_tools" From 53f932502ce27b49b1801111722c565d875d2c28 Mon Sep 17 00:00:00 2001 From: ewilly Date: Fri, 29 Mar 2024 11:39:22 +0000 Subject: [PATCH 077/292] Update wishlist.toml --- wishlist.toml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/wishlist.toml b/wishlist.toml index e02a94f9fb..8af2a949a6 100644 --- a/wishlist.toml +++ b/wishlist.toml @@ -827,14 +827,6 @@ upstream = "https://gitlab.xiph.org/xiph/icecast-server/" website = "https://www.icecast.org" added_date = 1695656621 # 2023/09/25 -[immich] -name = "Immich" -description = "Self-hosted backup solution for photos and videos on mobile device. Alternative to Google Photo." -upstream = "https://github.com/immich-app/immich" -website = "https://immich.app/" -draft = "https://github.com/YunoHost-Apps/immich_ynh" -added_date = 1703009167 # 2023/12/19 - [infcloud] name = "InfCloud" description = "A contacts, calendar and tasks web client for CalDAV and CardDAV" From 6517b804988e44952f17e9647354bb8045ec8ce7 Mon Sep 17 00:00:00 2001 From: xabirequejo Date: Sun, 31 Mar 2024 13:39:55 +0000 Subject: [PATCH 078/292] Translated readme-generator using Weblate (Basque) Currently translated at 100.0% (39 of 39 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/eu/ --- .../translations/eu/LC_MESSAGES/messages.mo | Bin 1295 -> 5840 bytes .../translations/eu/LC_MESSAGES/messages.po | 71 ++++++++++++------ 2 files changed, 47 insertions(+), 24 deletions(-) diff --git a/tools/readme_generator/translations/eu/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/eu/LC_MESSAGES/messages.mo index b45019dc0d06d9cc859559eb3f7127fd37e1cdf3..7b0e2ff1d65d6579b9307607e5f2dad47cf12a5c 100644 GIT binary patch literal 5840 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 delta 421 zcmYMuze~eF6bJBEjj3(5O^QW94Y3Lxg1Fcv=pb}(b8vF=te0{cl8_$?F2T*M!{H## z>MRbf&LZd{IQbXotm2^G)T$4@d>*-b@A5F;EvC;^<(N<(GTY*oAZO435Iv{`nKkc7MVO%nuNqpdW|RL@8Yk_8Pi}%ee3g7onvP8E_Le zU?pJJW@o4`XBLjuZC&n=kGB4UoF1JT|eNVDLluQ z=Sp3UsFr+JXKQPYBie$wCJO>{pKnDX=C*t+v@08l=db!vY_7+C$nC4Q(rHd!mks$* tZpb68DR=ayu@bmqmmLV7h1|>LJBi0lk9CqrFk6bTL+x)*i+kJ5rf=-4NPz$V diff --git a/tools/readme_generator/translations/eu/LC_MESSAGES/messages.po b/tools/readme_generator/translations/eu/LC_MESSAGES/messages.po index b678cb3193..2e92379631 100644 --- a/tools/readme_generator/translations/eu/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/eu/LC_MESSAGES/messages.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-03-25 07:00+0100\n" -"PO-Revision-Date: 2024-03-25 00:10+0000\n" -"Last-Translator: OniriCorpe \n" +"PO-Revision-Date: 2024-03-31 19:13+0000\n" +"Last-Translator: xabirequejo \n" "Language-Team: Basque \n" "Language: eu\n" @@ -21,14 +21,13 @@ msgstr "" "Generated-By: Babel 2.14.0\n" #: templates/ALL_README.md.j2:11 -#, fuzzy, python-format +#, python-format msgid "Read the README in %(language)s" -msgstr "Irakurri README %(language)s" +msgstr "Irakurri README %(language)sz" #: templates/README.md.j2:2 -#, fuzzy msgid "Packaging an app, starting from this example" -msgstr "Aplikazio bat paketatzen, honako adibidetik" +msgstr "Aplikazio bat paketatzen, honako adibidea oinarritzat hartuz" #: templates/README.md.j2:4 msgid "" @@ -36,6 +35,9 @@ msgid "" "github.com/new?template_name=example_ynh&template_owner=YunoHost) button on " "the Github repo" msgstr "" +"Kopiatu aplikazio hau aldaketak egin baino lehen, Github gordailuko [" +"'Erabili txantiloi hau'](https://github.com/" +"new?template_name=example_ynh&template_owner=YunoHost) botoia erabiliz" #: templates/README.md.j2:5 msgid "Edit the `manifest.toml` with app specific info" @@ -46,22 +48,28 @@ msgid "" "Edit the `install`, `upgrade`, `remove`, `backup` and `restore` scripts, and " "any relevant conf files in `conf/`" msgstr "" +"Editatu `install`, `upgrade`, `remove`, `backup` eta `restore` scriptak, eta " +"konfigurazio fitxategiak `conf/` direktorioan, beharrezkoak badira" #: templates/README.md.j2:7 msgid "" "Using the [script helpers documentation](https://yunohost.org/" "packaging_apps_helpers)" msgstr "" +"Erabili [scripten laguntza-dokumentazioa](https://yunohost.org/" +"packaging_apps_helpers)" #: templates/README.md.j2:8 msgid "" "Edit the `change_url` and `config` scripts too, or remove them if you have " "no use of them" msgstr "" +"Editatu `change_url` eta `config` scriptak ere, edo kendu ez badute inolako " +"betekizunik" #: templates/README.md.j2:9 msgid "Add a `LICENSE` file for the package." -msgstr "" +msgstr "Gehitu `LICENSE` fitxategia paketerako." #: templates/README.md.j2:10 msgid "" @@ -70,18 +78,26 @@ msgid "" "published with and you can choose it freely! (If you don't know which to " "choose, we recommend [the AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt))" msgstr "" +"Ohart ongi: `LICENSE` fitxategiak ez du zertan jatorrizko aplikazioaren " +"lizentzia bera izan: pakete honen kodeak izatea nahi duzun lizentzia baino " +"ez da eta aske zara berau aukeratzeko! (Ez badakizu zein aukeratu, guk " +"[AGPL-3](https://www.gnu.org/licenses/agpl-3.0.txt) gomendatzen dugu)" #: templates/README.md.j2:11 msgid "" "Edit files under the `doc/` directory ([see the page about documenting " "packages](https://yunohost.org/packaging_app_doc))" msgstr "" +"Editatu `doc/` direktorioko fitxategiak ([ikus paketeak dokumentatzeari " +"buruzko orria](https://yunohost.org/packaging_app_doc))" #: templates/README.md.j2:12 msgid "" "The `README.md` files are to be automatically generated by " msgstr "" +"`README.md` fitxategiak automatikoki sortuko dira ri esker" #: templates/README.md.j2:18 msgid "" @@ -89,28 +105,31 @@ msgid "" "YunoHost/apps/tree/master/tools/readme_generator>\n" "It shall NOT be edited by hand." msgstr "" +"Ohart ongi: README hau automatikoki sortu da ri esker\n" +"EZ editatu eskuz." #: templates/README.md.j2:22 #, python-format msgid "%(application_name)s for YunoHost" -msgstr "" +msgstr "%(application_name)s YunoHost-erako" #: templates/README.md.j2:24 msgid "Integration level" -msgstr "" +msgstr "Integrazio maila" #: templates/README.md.j2:24 msgid "Working status" -msgstr "" +msgstr "Funtzionamendu egoera" #: templates/README.md.j2:24 msgid "Maintenance status" -msgstr "" +msgstr "Mantentze egoera" #: templates/README.md.j2:26 #, python-format msgid "Install %(application_name)s with YunoHost" -msgstr "" +msgstr "Instalatu %(application_name)s YunoHost-ekin" #: templates/README.md.j2:28 msgid "Read this README is other languages." @@ -122,24 +141,28 @@ msgid "" "This package allows you to install %(application_name)s quickly and simply " "on a YunoHost server." msgstr "" +"Pakete honek %(application_name)s YunoHost zerbitzari batean azkar eta " +"zailtasunik gabe instalatzea ahalbidetzen dizu." #: templates/README.md.j2:31 msgid "" "If you don't have YunoHost, please consult [the guide](https://yunohost.org/" "install) to learn how to install it." msgstr "" +"YunoHost ez baduzu, kontsultatu [gida](https://yunohost.org/install) nola " +"instalatu ikasteko." #: templates/README.md.j2:33 msgid "Overview" -msgstr "" +msgstr "Aurreikuspena" #: templates/README.md.j2:37 msgid "Shipped version:" -msgstr "" +msgstr "Paketatutako bertsioa:" #: templates/README.md.j2:41 msgid "Demo:" -msgstr "" +msgstr "Demoa:" #: templates/README.md.j2:45 msgid "Screenshots" @@ -152,11 +175,11 @@ msgstr "%(application_name)s(r)en pantaila-argazkia" #: templates/README.md.j2:53 msgid "Disclaimers / important information" -msgstr "" +msgstr "Ezespena / informazio garrantzitsua" #: templates/README.md.j2:59 msgid "Antifeatures" -msgstr "" +msgstr "Ezaugarri zalantzagarriak" #: templates/README.md.j2:66 msgid "Documentation and resources" @@ -164,19 +187,19 @@ msgstr "Dokumentazioa eta baliabideak" #: templates/README.md.j2:68 msgid "Official app website:" -msgstr "Aplikazioaren webgune nagusia:" +msgstr "Aplikazioaren webgune ofiziala:" #: templates/README.md.j2:70 msgid "Official user documentation:" -msgstr "" +msgstr "Erabiltzaileen dokumentazio ofiziala:" #: templates/README.md.j2:72 msgid "Official admin documentation:" -msgstr "" +msgstr "Administratzaileen dokumentazio ofiziala:" #: templates/README.md.j2:74 msgid "Upstream app code repository:" -msgstr "" +msgstr "Jatorrizko aplikazioaren kode-gordailua:" #: templates/README.md.j2:76 msgid "YunoHost Store:" @@ -195,15 +218,15 @@ msgstr "Garatzaileentzako informazioa" msgid "" "Please send your pull request to the [`testing` branch]" "(%(testing_branch_url)s)." -msgstr "" +msgstr "Bidali `pull request`a [`testing` abarrera](%(testing_branch_url)s)." #: templates/README.md.j2:83 msgid "To try the `testing` branch, please proceed like that:" -msgstr "" +msgstr "`testing` abarra probatzeko, ondorengoa egin:" #: templates/README.md.j2:87 msgid "or" -msgstr "" +msgstr "edo" #: templates/README.md.j2:91 msgid "More info regarding app packaging:" From da4aae26dfbf569c733b868251d8bdf9481fb4eb Mon Sep 17 00:00:00 2001 From: Weblate Date: Sun, 31 Mar 2024 21:13:09 +0200 Subject: [PATCH 079/292] Update translation files for readme-generator Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/ --- .../translations/ar/LC_MESSAGES/messages.po | 8 +++-- .../bn_BD/LC_MESSAGES/messages.po | 4 +-- .../translations/br/LC_MESSAGES/messages.po | 4 +-- .../translations/ca/LC_MESSAGES/messages.po | 11 +++---- .../translations/ckb/LC_MESSAGES/messages.po | 4 +-- .../translations/cs/LC_MESSAGES/messages.po | 13 ++++---- .../translations/da/LC_MESSAGES/messages.po | 4 +-- .../translations/de/LC_MESSAGES/messages.po | 19 ++++++------ .../translations/el/LC_MESSAGES/messages.po | 4 +-- .../translations/eo/LC_MESSAGES/messages.po | 4 +-- .../translations/es/LC_MESSAGES/messages.po | 4 +-- .../translations/eu/LC_MESSAGES/messages.po | 12 ++++---- .../translations/fa/LC_MESSAGES/messages.po | 4 +-- .../translations/fi/LC_MESSAGES/messages.po | 4 +-- .../translations/fr/LC_MESSAGES/messages.po | 16 +++++----- .../translations/gl/LC_MESSAGES/messages.po | 12 ++++---- .../translations/he/LC_MESSAGES/messages.po | 4 +-- .../translations/hi/LC_MESSAGES/messages.po | 4 +-- .../translations/hu/LC_MESSAGES/messages.po | 4 +-- .../translations/id/LC_MESSAGES/messages.po | 4 +-- .../translations/it/LC_MESSAGES/messages.po | 14 +++++---- .../translations/ja/LC_MESSAGES/messages.po | 4 +-- .../translations/kab/LC_MESSAGES/messages.po | 4 +-- .../translations/ko/LC_MESSAGES/messages.po | 4 +-- .../translations/lt/LC_MESSAGES/messages.po | 4 +-- .../translations/mk/LC_MESSAGES/messages.po | 4 +-- .../nb_NO/LC_MESSAGES/messages.po | 4 +-- .../translations/ne/LC_MESSAGES/messages.po | 4 +-- .../translations/nl/LC_MESSAGES/messages.po | 19 ++++++------ .../translations/oc/LC_MESSAGES/messages.po | 4 +-- .../translations/pl/LC_MESSAGES/messages.po | 15 ++++++---- .../translations/pt/LC_MESSAGES/messages.po | 4 +-- .../pt_BR/LC_MESSAGES/messages.po | 4 +-- .../translations/ru/LC_MESSAGES/messages.po | 4 +-- .../translations/sk/LC_MESSAGES/messages.po | 4 +-- .../translations/sl/LC_MESSAGES/messages.po | 4 +-- .../translations/sv/LC_MESSAGES/messages.po | 4 +-- .../translations/te/LC_MESSAGES/messages.po | 4 +-- .../translations/tr/LC_MESSAGES/messages.po | 4 +-- .../translations/uk/LC_MESSAGES/messages.po | 4 +-- .../zh_Hans/LC_MESSAGES/messages.po | 30 +++++++++++-------- 41 files changed, 155 insertions(+), 134 deletions(-) diff --git a/tools/readme_generator/translations/ar/LC_MESSAGES/messages.po b/tools/readme_generator/translations/ar/LC_MESSAGES/messages.po index c5c05b0d02..dc04d94ea2 100644 --- a/tools/readme_generator/translations/ar/LC_MESSAGES/messages.po +++ b/tools/readme_generator/translations/ar/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-25 07:00+0100\n" +"POT-Creation-Date: 2024-03-31 19:33+0200\n" "PO-Revision-Date: 2024-03-29 17:24+0000\n" "Last-Translator: ButterflyOfFire \n" "Language-Team: Arabic \n" "Language-Team: Catalan \n" "Language-Team: Czech \n" "Language-Team: German \n" "Language-Team: Basque \n" "Language-Team: French \n" "Language-Team: Galician \n" "Language-Team: Italian \n" "Language-Team: Dutch \n" "Language-Team: Polish \n" "Language-Team: Chinese (Simplified) Date: Sun, 31 Mar 2024 19:16:58 +0000 Subject: [PATCH 080/292] Translated readme-generator using Weblate (French) Currently translated at 100.0% (39 of 39 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/fr/ --- .../translations/fr/LC_MESSAGES/messages.mo | Bin 6071 -> 6071 bytes .../translations/fr/LC_MESSAGES/messages.po | 4 +--- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/tools/readme_generator/translations/fr/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/fr/LC_MESSAGES/messages.mo index 195728d1d609cbd4c9f7b3c665a9d021f6b42967..bd15d94f8659a5100beaa2e89b82d38684e84fd8 100644 GIT binary patch delta 47 qcmdn4zg>UB875H%C=iA*fVAr5hfKwcGMhu0C$ll;ZGOplju!yf%L*|7 delta 47 rcmdn4zg>UB875Ix1_%&_(jZD^@\n" "Language-Team: French \n" @@ -135,8 +135,6 @@ msgid "Install %(application_name)s with YunoHost" msgstr "Installer %(application_name)s avec YunoHost" #: templates/README.md.j2:28 -#, fuzzy -#| msgid "Read this README is other languages." msgid "Read this README in other languages." msgstr "Lire le README dans d'autres langues." From 7d10e69c9bdc168bfe87b669309bce54aeef78ea Mon Sep 17 00:00:00 2001 From: xabirequejo Date: Sun, 31 Mar 2024 20:30:50 +0000 Subject: [PATCH 081/292] Translated readme-generator using Weblate (Basque) Currently translated at 100.0% (39 of 39 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/eu/ --- .../translations/eu/LC_MESSAGES/messages.mo | Bin 5840 -> 5840 bytes .../translations/eu/LC_MESSAGES/messages.po | 4 +--- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/tools/readme_generator/translations/eu/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/eu/LC_MESSAGES/messages.mo index 7b0e2ff1d65d6579b9307607e5f2dad47cf12a5c..6f6414e67cd9f9a32ddbcc36638bd5d037401dfe 100644 GIT binary patch delta 47 qcmcbhdqH=@875H%C=iA*fVAr5hfKwcGMhu0C$ll;ZGOr5oCg5mL<)BR delta 47 rcmcbhdqH=@875Ix1_%&_(jZD^@\n" "Language-Team: Basque \n" @@ -132,8 +132,6 @@ msgid "Install %(application_name)s with YunoHost" msgstr "Instalatu %(application_name)s YunoHost-ekin" #: templates/README.md.j2:28 -#, fuzzy -#| msgid "Read this README is other languages." msgid "Read this README in other languages." msgstr "Irakurri README hau beste hizkuntzatan." From fe26610538c63742b6b9708e9904387210a4e0a2 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 1 Apr 2024 03:12:33 +0200 Subject: [PATCH 082/292] store: edit 'Anti-features' in 'Antifeatures' (#2201) --- store/messages.pot | 4 ++-- store/templates/app.html | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/store/messages.pot b/store/messages.pot index 131eee4002..6af8cf7953 100644 --- a/store/messages.pot +++ b/store/messages.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -202,7 +202,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/templates/app.html b/store/templates/app.html index c39413ea62..85c039dea4 100644 --- a/store/templates/app.html +++ b/store/templates/app.html @@ -121,7 +121,7 @@

{{ _("Important infos before {% endif %} {% if infos["antifeatures"] %} -

{{ _("Anti-features") }}

+

{{ _("Antifeatures") }}

{{ _("(This app has features you may not like)") }}

+ + + +
+ + +

Informations sur l'upstream

-

Intégration

-

Cette partie sert à indiquer comment le logiciel est intégré à Yunohost.

+
+

Le terme upstream désigne le projet original qui maintient l'app

+ {{ main_form.license.label}} {{ main_form.license()}} +
+ {{ main_form.website.label}} {{ main_form.website()}}
+ {{ main_form.demo.label}} {{ main_form.demo()}} +
+ {{ main_form.admindoc.label}} {{ main_form.admindoc()}} +
+ {{ main_form.userdoc.label}} {{ main_form.userdoc()}} +
+ {{ main_form.code.label}} {{ main_form.code()}} +
+ + +
+ + +

Informations sur le paquet et l'intégration dans YunoHost

+ +
{{ main_form.version.label}} {{ main_form.version()}}
{{ main_form.maintainers.label}} {{ main_form.maintainers(style="width: 60%;")}} @@ -285,58 +317,83 @@

Intégration


{{ main_form.sso.label}} {{ main_form.sso()}}
+
-

Informations sur le logiciel

-

Cette partie donne des informations génériques sur le logiciel.

-
- {{ main_form.license.label}} {{ main_form.license()}} -
- {{ main_form.website.label}} {{ main_form.website()}} -
- {{ main_form.demo.label}} {{ main_form.demo()}} + +
+ + + +

Questions à poser pendant l'installation

+ +
+

+ Cette partie sert à indiquer les questions qui devront être posées. +
+ NB: seules des questions standard sont proposées ici, il faudra éventuellement compléter à la main en + suivant le modèle des autres questions. +

+ + {{ main_form.domain_and_path.label}} {{ main_form.domain_and_path()}}
- {{ main_form.admindoc.label}} {{ main_form.admindoc()}} + + {{ main_form.init_main_permission.label}} {{ main_form.init_main_permission()}}
- {{ main_form.userdoc.label}} {{ main_form.userdoc()}} + + {{ main_form.init_admin_permission.label}} {{ main_form.init_admin_permission()}}
- {{ main_form.code.label}} {{ main_form.code()}} + + {{ main_form.language.label}} {{ main_form.language()}} +
-

Paramétrage de l'application

-

Cette partie sert à indiquer comment configurer l'application côté Yunohost.

+
-
- Dossier des données - {{ main_form.data_dir.label}} {{ main_form.data_dir()}} -
- {{ main_form.data_subdirs.label}} {{ main_form.data_subdirs()}} -
-
- {{ main_form.supports_change_url.label}} {{ main_form.supports_change_url()}} +

Ressources à initialiser

+ +
+

+ Il s'agit d'éléments techniques configurés avant que le "vrai" script d'install de l'app ne soit lancé. Typiquement : créer un user système, télécharger les sources de l'app, initialiser le dossier d'install et de données, installer des dépendances avec apt, créer une base de donnée SQL, ... +

+ + Sources du logiciel +
+ {{ main_form.source_url.label}} {{ main_form.source_url()}} +
+ {{ main_form.sha256sum.label}} {{ main_form.sha256sum()}} +
+ {{ main_form.auto_update.label}} {{ main_form.auto_update()}} +
+
+ + + {{ main_form.system_user.label}} {{ main_form.system_user()}}
+ {{ main_form.install_dir.label}} {{ main_form.install_dir()}} +
-
- Paramètres de langue -
-
- {{ main_form.language.label}} {{ main_form.language()}} -
-
- {{ main_form.default_language.label}} {{ - main_form.default_language()}} + {{ main_form.data_dir.label}} {{ main_form.data_dir()}} +
-
+ {{ main_form.apt_dependencies.label}} {{ main_form.apt_dependencies(style="width:40%;")}} +
-
-
+ {{ main_form.ports.label}} {{ main_form.ports()}} +
+ + {{ main_form.database.label }} {{ main_form.database() }} +
+ +
- +

Technologies spécifiques (to be reworked)

- {{ main_form.visibility.label}} {{ main_form.visibility()}} + {{ main_form.supports_change_url.label}} {{ main_form.supports_change_url()}}
+ {{ main_form.use_logrotate.label}} {{ main_form.use_logrotate()}}
@@ -444,33 +501,6 @@

Paramétrage de l'application

--> -

Questions à poser pendant l'installation

-

Cette partie sert à indiquer les questions qui devront être posées. -
- NB: seules des questions standard sont proposées ici, il faudra éventuellement compléter à la main en - suivant le modèle des autres questions. -

- - {{ main_form.use_whole_domain.label}} {{ main_form.use_whole_domain()}} -
- - -

Source du logiciel et dépendances

- - {{ main_form.source_url.label}} {{ main_form.source_url()}} -
- {{ main_form.sha256sum.label}} {{ main_form.sha256sum()}} -
- {{ main_form.auto_update.label}} {{ main_form.auto_update()}} -
- {{ main_form.dependencies.label}} {{ main_form.dependencies(style="width:40%;")}} -

- - - {{ main_form.use_db.label }} {{ main_form.use_db() }} -
- -

Utilisation de PHP

{{ main_form.use_php.label}} {{ main_form.use_php(onchange="showForm(this, 'PHP')") }}
From fd094a6457349b8607b4238fc9a01c94d90fd373 Mon Sep 17 00:00:00 2001 From: lapineige Date: Sun, 29 Oct 2023 15:44:02 +0100 Subject: [PATCH 110/292] Update tools/app_generator/templates/change_url.j2 Co-authored-by: eric_G <46165813+ericgaspar@users.noreply.github.com> --- tools/app_generator/templates/change_url.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/app_generator/templates/change_url.j2 b/tools/app_generator/templates/change_url.j2 index 9d577d2ac9..92a1d85e68 100644 --- a/tools/app_generator/templates/change_url.j2 +++ b/tools/app_generator/templates/change_url.j2 @@ -1,5 +1,5 @@ #!/bin/bash -#### App file generated with YoloGen, the Yunohost app generator, version {{ parameters['GENERATOR_VERSION'] }}. +#### App file generated with YoloGen, the YunoHost app generator, version {{ parameters['GENERATOR_VERSION'] }}. {% if parameters["tutorial"] -%} # This is the tutorial version of the app. # It contains extra commands to explain what should be done in case you want to adjust some part of the script. # Once you are done, you may remove them. From 40494fb4ac436417cd6b0673a498139f056bddd5 Mon Sep 17 00:00:00 2001 From: lapineige Date: Sun, 29 Oct 2023 15:44:16 +0100 Subject: [PATCH 111/292] Fix YunoHost typo Co-authored-by: eric_G <46165813+ericgaspar@users.noreply.github.com> --- tools/app_generator/templates/remove.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/app_generator/templates/remove.j2 b/tools/app_generator/templates/remove.j2 index af2ee266e9..c9cd966c2d 100644 --- a/tools/app_generator/templates/remove.j2 +++ b/tools/app_generator/templates/remove.j2 @@ -1,5 +1,5 @@ #!/bin/bash -#### App file generated with YoloGen, the Yunohost app generator, version {{ parameters['GENERATOR_VERSION'] }}. +#### App file generated with YoloGen, the YunoHost app generator, version {{ parameters['GENERATOR_VERSION'] }}. {% if parameters["tutorial"] -%} # This is the tutorial version of the app. # It contains extra commands to explain what should be done in case you want to adjust some part of the script. # Once you are done, you may remove them. From c5a0ddec9fa416fc89b34deb475d3c85eca7c5ea Mon Sep 17 00:00:00 2001 From: lapineige Date: Sun, 29 Oct 2023 15:44:33 +0100 Subject: [PATCH 112/292] Fix YunoHost typo Co-authored-by: eric_G <46165813+ericgaspar@users.noreply.github.com> --- tools/app_generator/templates/config.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/app_generator/templates/config.j2 b/tools/app_generator/templates/config.j2 index 4d16aa8da5..acc66a0111 100644 --- a/tools/app_generator/templates/config.j2 +++ b/tools/app_generator/templates/config.j2 @@ -1,5 +1,5 @@ #!/bin/bash -#### App file generated with YoloGen, the Yunohost app generator, version {{ parameters['GENERATOR_VERSION'] }}. +#### App file generated with YoloGen, the YunoHost app generator, version {{ parameters['GENERATOR_VERSION'] }}. {% if parameters["tutorial"] -%} # This is the tutorial version of the app. # It contains extra commands to explain what should be done in case you want to adjust some part of the script. # Once you are done, you may remove them. From dfef75b52edab55828c6d8afd983d54090f90d13 Mon Sep 17 00:00:00 2001 From: lapineige Date: Sun, 29 Oct 2023 15:44:39 +0100 Subject: [PATCH 113/292] Fix YunoHost typo Co-authored-by: eric_G <46165813+ericgaspar@users.noreply.github.com> --- tools/app_generator/templates/restore.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/app_generator/templates/restore.j2 b/tools/app_generator/templates/restore.j2 index e95c451b2b..5ecef1f17c 100644 --- a/tools/app_generator/templates/restore.j2 +++ b/tools/app_generator/templates/restore.j2 @@ -1,5 +1,5 @@ #!/bin/bash -#### App file generated with YoloGen, the Yunohost app generator, version {{ parameters['GENERATOR_VERSION'] }}. +#### App file generated with YoloGen, the YunoHost app generator, version {{ parameters['GENERATOR_VERSION'] }}. {% if parameters["tutorial"] -%} # This is the tutorial version of the app. # It contains extra commands to explain what should be done in case you want to adjust some part of the script. # Once you are done, you may remove them. From c0109ed08fa7fbe5cd763238732836c4c4da20c2 Mon Sep 17 00:00:00 2001 From: lapineige Date: Sun, 29 Oct 2023 15:44:47 +0100 Subject: [PATCH 114/292] Fix YunoHost typo Co-authored-by: eric_G <46165813+ericgaspar@users.noreply.github.com> --- tools/app_generator/templates/backup.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/app_generator/templates/backup.j2 b/tools/app_generator/templates/backup.j2 index 1fcdc2c4e7..495cce9491 100644 --- a/tools/app_generator/templates/backup.j2 +++ b/tools/app_generator/templates/backup.j2 @@ -1,5 +1,5 @@ #!/bin/bash -#### App file generated with YoloGen, the Yunohost app generator, version {{ parameters['GENERATOR_VERSION'] }}. +#### App file generated with YoloGen, the YunoHost app generator, version {{ parameters['GENERATOR_VERSION'] }}. {% if parameters["tutorial"] -%} # This is the tutorial version of the app. # It contains extra commands to explain what should be done in case you want to adjust some part of the script. # Once you are done, you may remove them. From 9ec78eb23d5bf1cb91e9e926fe98d6057432117b Mon Sep 17 00:00:00 2001 From: lapineige Date: Sun, 29 Oct 2023 15:44:54 +0100 Subject: [PATCH 115/292] Fix YunoHost typo Co-authored-by: eric_G <46165813+ericgaspar@users.noreply.github.com> --- tools/app_generator/templates/upgrade.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/app_generator/templates/upgrade.j2 b/tools/app_generator/templates/upgrade.j2 index 709922275a..4e001ca15b 100644 --- a/tools/app_generator/templates/upgrade.j2 +++ b/tools/app_generator/templates/upgrade.j2 @@ -1,5 +1,5 @@ #!/bin/bash -#### App file generated with YoloGen, the Yunohost app generator, version {{ parameters['GENERATOR_VERSION'] }}. +#### App file generated with YoloGen, the YunoHost app generator, version {{ parameters['GENERATOR_VERSION'] }}. {% if parameters["tutorial"] -%} # This is the tutorial version of the app. # It contains extra commands to explain what should be done in case you want to adjust some part of the script. # Once you are done, you may remove them. From f6845e9580bcae1c1575157fd8a23a6246e267e3 Mon Sep 17 00:00:00 2001 From: lapineige Date: Sun, 29 Oct 2023 15:45:23 +0100 Subject: [PATCH 116/292] Fix YunoHost typo Co-authored-by: eric_G <46165813+ericgaspar@users.noreply.github.com> --- tools/app_generator/templates/install.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/app_generator/templates/install.j2 b/tools/app_generator/templates/install.j2 index c3a926b2d9..f6e07073f3 100644 --- a/tools/app_generator/templates/install.j2 +++ b/tools/app_generator/templates/install.j2 @@ -1,5 +1,5 @@ #!/bin/bash -#### App file generated with YoloGen, the Yunohost app generator, version {{ parameters['GENERATOR_VERSION'] }}. +#### App file generated with YoloGen, the YunoHost app generator, version {{ parameters['GENERATOR_VERSION'] }}. {% if parameters["tutorial"] -%} # This is the tutorial version of the app. # It contains extra commands to explain what should be done in case you want to adjust some part of the script. # Once you are done, you may remove them. From 09edb1540ac779c1278496c8b7ec44c1d9dbac04 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Wed, 8 Nov 2023 17:40:01 +0100 Subject: [PATCH 117/292] appgenerator: simplify/rework the HTML/form structure using Flask-Bootstrap's macro --- tools/app_generator/app_generator.py | 151 ++++----- tools/app_generator/static/stylesheet.css | 319 +----------------- tools/app_generator/templates/index.html | 391 +++++++++------------- 3 files changed, 228 insertions(+), 633 deletions(-) diff --git a/tools/app_generator/app_generator.py b/tools/app_generator/app_generator.py index 98325aec33..d2a520e2c7 100644 --- a/tools/app_generator/app_generator.py +++ b/tools/app_generator/app_generator.py @@ -13,6 +13,7 @@ # Form libraries from flask_wtf import FlaskForm +from flask_bootstrap import Bootstrap from wtforms import ( StringField, RadioField, @@ -42,6 +43,7 @@ #### Create FLASK and Jinja Environments app = Flask(__name__) +Bootstrap(app) app.config["SECRET_KEY"] = token_urlsafe(16) # Necessary for the form CORS cors = CORS(app) @@ -77,9 +79,10 @@ def markdown_file_to_html_string(file): ## PHP forms -class Form_PHP_Config(FlaskForm): +class Form_PHP(FlaskForm): + use_php = BooleanField("Nécessite PHP", default=False) php_config_file = SelectField( - "Type de fichier PHP :", + "Type de fichier PHP", choices=[ ( "php-fpm.conf", @@ -102,7 +105,7 @@ class Form_PHP_Config(FlaskForm): # 'title': "Choisir un fichier permettant un paramétrage d'options complémentaires. C'est généralement recommandé." php_config_file_content = TextAreaField( - "Saisissez le contenu du fichier de configuration PHP :", + "Saisissez le contenu du fichier de configuration PHP", validators=[Optional()], render_kw={ "class": "form-control", @@ -113,15 +116,11 @@ class Form_PHP_Config(FlaskForm): ) -class Form_PHP(Form_PHP_Config): - use_php = BooleanField("Nécessite PHP", default=False) - - ## NodeJS forms class Form_NodeJS(FlaskForm): use_nodejs = BooleanField("Nécessite NodeJS", default=False) use_nodejs_version = StringField( - "Version de NodeJS :", + "Version de NodeJS", render_kw={ "placeholder": "20", "class": "form-control", @@ -145,7 +144,7 @@ class Form_Python(FlaskForm): "Nécessite Python", default=False ) ## TODO -> python3, python3-pip, python3-ven dependencies by default python_dependencies_type = SelectField( - "Configuration des dépendances Python :", + "Configuration des dépendances Python", choices=[ ("requirements.txt", Markup("Fichier requirements.txt")), ("manual_list", "Liste manuelle"), @@ -154,7 +153,7 @@ class Form_Python(FlaskForm): validators=[DataRequired(), Optional()], ) python_requirements = TextAreaField( - "La liste de dépendances inclue dans le fichier requirements.txt :", + "La liste de dépendances inclue dans le fichier requirements.txt", render_kw={ "class": "form-control", "style": "width: 50%;height:5.5em;min-height: 5.5em; max-height: 55em;flex-grow: 1;box-sizing: border-box;", @@ -163,7 +162,7 @@ class Form_Python(FlaskForm): }, ) python_dependencies_list = StringField( - "Liste de dépendances python :", + "Liste de dépendances python", render_kw={ "placeholder": "tensorflow uvicorn fastapi", "class": "form-control", @@ -175,45 +174,33 @@ class GeneralInfos(FlaskForm): app_id = StringField( Markup( - """Identifiant (id) de l'application (en minuscule et sans espaces) :""" + "Identifiant (id) de l'application" ), + description="En minuscule et sans espace.", validators=[DataRequired(), Regexp("[a-z_1-9]+.*(?.btn { - padding:.25rem .5rem; - //font-size:.7875rem; - line-height:1.5; - border-radius:.2rem; -} - - -.form-control { - #display: block; - #width: 100%; - #height: calc(1.5em + .75rem + 2px); - padding: .375rem .75rem; - padding-right: 0.5rem; - margin-left:0.75rem; - font-size: .9rem; - font-weight: 400; - line-height: 1.5; - color: var(--gray-700); - background-color: var(--white); - background-clip: padding-box; - border: 1px solid var(--gray-400); - border-radius: .25rem; - transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out; -} -.form-control.is-invalid { - border-color: var(--red); - padding-right: calc(1.5em + .75rem) !important; - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='var%28--red%29' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='var%28--red%29' stroke='none'/%3e%3c/svg%3e"); - background-repeat: no-repeat; - background-position: right calc(.375em + .1875rem) center; - background-size: calc(.75em + .375rem) calc(.75em + .375rem); -} - - - -.custom-select { - - display: inline-block; - width: 100%; - height: calc(1.5em + .75rem + 2px); - padding: .375rem 1.75rem .375rem .75rem; - font-size: .9rem; - font-weight: 400; - line-height: 1.5; - color: var(--gray-700); - vertical-align: middle; - background: var(--white) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='var%28--gray-800%29' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat; - border: 1px solid var(--gray-400); - border-radius: .25rem; - appearance: none; - -} - - -.nav { - display:flex; - flex-wrap:wrap; - padding-left:0; - margin-bottom:0; - list-style:none -} -.nav-tabs .nav-item.show .nav-link { - color:var(--gray-700); - background-color:var(--white); - border-color:var(--gray-300) var(--gray-300) var(--white) -} - -nav a { - margin-left: 50px; - // text-decoration: none; // removing links underline is a bad idea -} - -footer .nav-item:before { - /* content:"\2022"; */ - width:1rem; - display:inline-block; - margin-left:-1.15rem; - padding-top:1rem!important; - margin-top:auto!important; -} - - -.test { - color:red; -} \ No newline at end of file diff --git a/tools/app_generator/templates/index.html b/tools/app_generator/templates/index.html index bde208c4cc..5a2317783a 100644 --- a/tools/app_generator/templates/index.html +++ b/tools/app_generator/templates/index.html @@ -1,9 +1,17 @@ - - - - - +{% import "bootstrap/wtf.html" as wtf %} +{% extends "bootstrap/base.html" %} + +{% block title %} +YunoHost app generator +{% endblock %} + +{% block styles %} +{{super()}} + +{% endblock %} + +{% block content %} - YunoHost app generator - +
+

Formulaire de génération d'une application Yunohost

-

Formulaire de génération d'une application Yunohost

- + {{ main_form.hidden_tag() }} - - - {{ main_form.generator_mode.label }} {{ main_form.generator_mode() }} - {# TODO : this doesn't work, should be changed on the fly. Is it worth the trouble ? - {% if main_form.generator_mode %} - L'application générée contiendra des commentaires additionnels pour faciliter la compréhension - {% else %} - L'application générée ne contiendra que le minimum nécessaire - {% endif %} -
- #} -
- En mode tutoriel, l'application générée contiendra des commentaires additionnels pour faciliter la compréhension. En version épurée, l'application générée ne contiendra que le minimum nécessaire. - - - -
- - - -

Informations générales

- -
- {{ main_form.app_name.label }} {{ main_form.app_name()}} -
- {{ main_form.app_id.label}} {{ main_form.app_id() }} -
- - -
- {{ main_form.description_en.label}} - {{ main_form.description_en(style="height: - 2.5em;min-height: 2em; max-height: 4em;flex-grow: 1;box-sizing: border-box;")}} + {{ wtf.form_errors(main_form, hiddens="only") }} + + {{ wtf.form_field(main_form.generator_mode) }} + +
+
+

1/6 - Informations générales

+
+
+
+ {{ wtf.form_field(main_form.app_name) }} + {{ wtf.form_field(main_form.app_id) }} + {{ wtf.form_field(main_form.description_en) }} + {{ wtf.form_field(main_form.description_fr) }} +
+
-
-
- {{ main_form.description_fr.label}} {{ main_form.description_fr(style=" - height: - 2.5em;min-height: 1em; max-height: 4em;flex-grow: 1;box-sizing: border-box;")}} -
-
- - - -
-

Informations sur l'upstream

- -
-

Le terme upstream désigne le projet original qui maintient l'app

- {{ main_form.license.label}} {{ main_form.license()}} -
- {{ main_form.website.label}} {{ main_form.website()}} -
- {{ main_form.demo.label}} {{ main_form.demo()}} -
- {{ main_form.admindoc.label}} {{ main_form.admindoc()}} -
- {{ main_form.userdoc.label}} {{ main_form.userdoc()}} -
- {{ main_form.code.label}} {{ main_form.code()}} +
+
+

2/6 - Informations sur l'upstream

+
+
+

Le terme upstream désigne le projet original qui maintient l'app

+
+ {{ wtf.form_field(main_form.license) }} + {{ wtf.form_field(main_form.website) }} + {{ wtf.form_field(main_form.demo) }} + {{ wtf.form_field(main_form.admindoc) }} + {{ wtf.form_field(main_form.userdoc) }} + {{ wtf.form_field(main_form.code) }} +
+
- - - -
- - -

Informations sur le paquet et l'intégration dans YunoHost

- -
- {{ main_form.version.label}} {{ main_form.version()}} -
- {{ main_form.maintainers.label}} {{ main_form.maintainers(style="width: 60%;")}} -
- {{ main_form.multi_instance.label}} {{ main_form.multi_instance()}} -
-
- {{ main_form.architectures.label}} {{ main_form.architectures()}} +
+
+

3/6 - Intégration dans YunoHost

+
+
+
+ {{ wtf.form_field(main_form.version) }} + {{ wtf.form_field(main_form.maintainers) }} + {{ wtf.form_field(main_form.multi_instance) }} + {{ wtf.form_field(main_form.architectures) }} + {{ wtf.form_field(main_form.ldap) }} + {{ wtf.form_field(main_form.sso) }} +
+
-
- {{ main_form.ldap.label}} {{ main_form.ldap()}} -
- {{ main_form.sso.label}} {{ main_form.sso()}} -
-
- - -
- -

Questions à poser pendant l'installation

- -
-

- Cette partie sert à indiquer les questions qui devront être posées. -
- NB: seules des questions standard sont proposées ici, il faudra éventuellement compléter à la main en - suivant le modèle des autres questions. -

- - {{ main_form.domain_and_path.label}} {{ main_form.domain_and_path()}} -
- - {{ main_form.init_main_permission.label}} {{ main_form.init_main_permission()}} -
- - {{ main_form.init_admin_permission.label}} {{ main_form.init_admin_permission()}} -
- - {{ main_form.language.label}} {{ main_form.language()}} +
+
+

4/6 - Questions à poser pendant l'installation

+
+
+

+ Cette partie sert à indiquer les questions qui devront être posées. +
+ NB: seules des questions standard sont proposées ici, il faudra éventuellement compléter à la main en + suivant le modèle des autres questions. +

+ +
+ {{ wtf.form_field(main_form.domain_and_path) }} + {{ wtf.form_field(main_form.init_main_permission) }} + {{ wtf.form_field(main_form.init_admin_permission) }} + {{ wtf.form_field(main_form.language) }} +
+
- -
- - -

Ressources à initialiser

- -
-

- Il s'agit d'éléments techniques configurés avant que le "vrai" script d'install de l'app ne soit lancé. Typiquement : créer un user système, télécharger les sources de l'app, initialiser le dossier d'install et de données, installer des dépendances avec apt, créer une base de donnée SQL, ... -

- - Sources du logiciel -
- {{ main_form.source_url.label}} {{ main_form.source_url()}} -
- {{ main_form.sha256sum.label}} {{ main_form.sha256sum()}} -
- {{ main_form.auto_update.label}} {{ main_form.auto_update()}} -
+
+
+

5/6 - Ressources à initialiser

+
+
+

+ Il s'agit d'éléments techniques configurés avant que le "vrai" script d'install de l'app ne soit lancé. Typiquement : créer un user système, télécharger les sources de l'app, initialiser le dossier d'install et de données, installer des dépendances avec apt, créer une base de donnée SQL, ... +

+ +

Sources du logiciel

+
+ {{ wtf.form_field(main_form.source_url) }} + {{ wtf.form_field(main_form.sha256sum) }} + {{ wtf.form_field(main_form.auto_update) }} +
+ + +
+ {{ wtf.form_field(main_form.system_user) }} + {{ wtf.form_field(main_form.install_dir) }} + {{ wtf.form_field(main_form.data_dir) }} + {{ wtf.form_field(main_form.apt_dependencies) }} + {{ wtf.form_field(main_form.ports) }} + {{ wtf.form_field(main_form.database) }} +
+
- {{ main_form.system_user.label}} {{ main_form.system_user()}} -
- {{ main_form.install_dir.label}} {{ main_form.install_dir()}} -
- - {{ main_form.data_dir.label}} {{ main_form.data_dir()}} -
- - {{ main_form.apt_dependencies.label}} {{ main_form.apt_dependencies(style="width:40%;")}} -
- - {{ main_form.ports.label}} {{ main_form.ports()}} -
- - {{ main_form.database.label }} {{ main_form.database() }} -
- -
- - -

Technologies spécifiques (to be reworked)

+

6/6 - Options et technologies spécifiques (to be reworked)

{{ main_form.supports_change_url.label}} {{ main_form.supports_change_url()}}
@@ -476,30 +418,6 @@

Technologies spécifiques (to be reworked)

- -

Utilisation de PHP

{{ main_form.use_php.label}} {{ main_form.use_php(onchange="showForm(this, 'PHP')") }}
@@ -870,6 +788,5 @@

Fichier de configuration de tâche CRON (task.cron) {% endif %} - - - +

+{% endblock %} From 14e735a725000eda617db329dd9667abeab47371 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Thu, 9 Nov 2023 18:12:15 +0100 Subject: [PATCH 118/292] appgenerator: more refactoring of the way we handled the specific technology --- tools/app_generator/app_generator.py | 317 ++++++++----------- tools/app_generator/templates/index.html | 383 ++++++++++------------- 2 files changed, 297 insertions(+), 403 deletions(-) diff --git a/tools/app_generator/app_generator.py b/tools/app_generator/app_generator.py index d2a520e2c7..ccfbf15121 100644 --- a/tools/app_generator/app_generator.py +++ b/tools/app_generator/app_generator.py @@ -77,99 +77,6 @@ def markdown_file_to_html_string(file): ### Forms - -## PHP forms -class Form_PHP(FlaskForm): - use_php = BooleanField("Nécessite PHP", default=False) - php_config_file = SelectField( - "Type de fichier PHP", - choices=[ - ( - "php-fpm.conf", - Markup( - 'Fichier de configuration PHP complet (php-fpm.conf)' - ), - ), - ( - "php_extra-fpm.conf", - Markup( - 'Fichier de configuration PHP particulier (extra_php-fpm.conf)' - ), - ), - ], - default="php_extra-fpm.conf", - validators=[DataRequired()], - ) - ## TODO : figure out how to include these comments/title values - # 'title': 'Remplace la configuration générée par défaut par un fichier de configuration complet. À éviter si possible. - # 'title': "Choisir un fichier permettant un paramétrage d'options complémentaires. C'est généralement recommandé." - - php_config_file_content = TextAreaField( - "Saisissez le contenu du fichier de configuration PHP", - validators=[Optional()], - render_kw={ - "class": "form-control", - "style": "width: 50%;height:11em;min-height: 5.5em; max-height: 55em;flex-grow: 1;box-sizing: border-box;", - "title": "TODO", - "placeholder": "; Additional php.ini defines, specific to this pool of workers. \n\nphp_admin_value[upload_max_filesize] = 100M \nphp_admin_value[post_max_size] = 100M", - }, - ) - - -## NodeJS forms -class Form_NodeJS(FlaskForm): - use_nodejs = BooleanField("Nécessite NodeJS", default=False) - use_nodejs_version = StringField( - "Version de NodeJS", - render_kw={ - "placeholder": "20", - "class": "form-control", - "title": "Saisissez la version de NodeJS à installer. Cela peut-être une version majeure (ex: 20) ou plus précise (ex: 20.1).", - }, - ) # TODO : this should be validated using a regex, should be only numbers and any (≥0) number of dots in between - use_nodejs_needs_yarn = BooleanField( - "Nécessite Yarn", - default=False, - render_kw={ - "title": "Faut-il installer automatiquement Yarn ? Cela configurera les dépôts spécifiques à Yarn." - }, - ) - - -## Python forms - - -class Form_Python(FlaskForm): - use_python = BooleanField( - "Nécessite Python", default=False - ) ## TODO -> python3, python3-pip, python3-ven dependencies by default - python_dependencies_type = SelectField( - "Configuration des dépendances Python", - choices=[ - ("requirements.txt", Markup("Fichier requirements.txt")), - ("manual_list", "Liste manuelle"), - ], - default="requirements.txt", - validators=[DataRequired(), Optional()], - ) - python_requirements = TextAreaField( - "La liste de dépendances inclue dans le fichier requirements.txt", - render_kw={ - "class": "form-control", - "style": "width: 50%;height:5.5em;min-height: 5.5em; max-height: 55em;flex-grow: 1;box-sizing: border-box;", - "title": "Lister les dépendances à installer, une par ligne, avec un numéro de version derrière.\nEx: 'dépendance==1.0'.", - "placeholder": "tensorflow==2.3.1 \nuvicorn==0.12.2 \nfastapi==0.63.0", - }, - ) - python_dependencies_list = StringField( - "Liste de dépendances python", - render_kw={ - "placeholder": "tensorflow uvicorn fastapi", - "class": "form-control", - "title": "Lister les dépendances à installer, séparées d'un espace.", - }, - ) - class GeneralInfos(FlaskForm): app_id = StringField( @@ -192,17 +99,24 @@ class GeneralInfos(FlaskForm): }, ) - description_en = TextAreaField( + description_en = StringField( "Description courte (en)", description="Expliquez en *quelques* (10~15) mots l'utilité de l'app ou ce qu'elle fait (l'objectif est de donner une idée grossière pour des utilisateurs qui naviguent dans un catalogue de 100+ apps)", validators=[DataRequired()], ) - description_fr = TextAreaField( + description_fr = StringField( "Description courte (fr)", description="Expliquez en *quelques* (10~15) mots l'utilité de l'app ou ce qu'elle fait (l'objectif est de donner une idée grossière pour des utilisateurs qui naviguent dans un catalogue de 100+ apps)", validators=[DataRequired()], ) + + # TODO : + + # long descriptions that go into doc/DESCRIPTION.md + # screenshot + + class IntegrationInfos(FlaskForm): # TODO : people shouldnt have to put the ~ynh1 ? This should be added automatically when rendering the app files ? @@ -245,7 +159,7 @@ class IntegrationInfos(FlaskForm): ldap = SelectField( "L'app s'intègrera avec le LDAP", - description="c-à-d pouvoir se connecter en utilisant ses identifiants YunoHost", + description="c-à-d pouvoir se connecter en utilisant ses identifiants YunoHost. 'LDAP' corresponds à la technologie utilisée par YunoHost comme base de compte utilisateurs centralisée. L'interface entre l'app et le LDAP de YunoHost nécessite le plus souvent de remplir des paramètres dans la configuration de l'app (voir plus tard)", choices=[ ("false", "No"), ("true", "Yes"), @@ -256,7 +170,7 @@ class IntegrationInfos(FlaskForm): ) sso = SelectField( "L'app s'intègrera avec le SSO (Single Sign On) de YunoHost", - description="c-à-d être connecté automatiquement à l'app si connecté au portail YunoHost", + description="c-à-d être connecté automatiquement à l'app si connecté au portail YunoHost. Le SSO de YunoHost se base sur le principe du 'Basic HTTP auth header', c'est à vous de vérifier si l'application supporte ce mécanisme de SSO.", choices=[ ("false", "Yes"), ("true", "No"), @@ -328,19 +242,17 @@ class InstallQuestions(FlaskForm): ) init_main_permission = BooleanField( - "Demander qui pourra accéder à l'app (parmi visitors/all_users/admins)", + "Demander qui pourra accéder à l'app", + description="Parmis les groupes d'utilisateurs : par défaut au moins 'visitors', 'all_users' et 'admins' existent. (Corresponds anciennement à la notion d'app privée/publique)", default=True, ) init_admin_permission = BooleanField( - "Demander qui pourra accéder à l'interface d'admin (ceci suppose que l'app dispose d'une interface d'admin)", + "Demander qui pourra accéder à l'interface d'admin", + description="Ceci est suppose apriori que l'app dispose d'une interface d'admin", default=False, ) - # admin_password_help_message = BooleanField("TODO ", default=False, - # render_kw={"class": "", - # "title": "TODO"}) - language = SelectMultipleField( "Langues supportées", choices=[ @@ -407,7 +319,7 @@ class Resources(FlaskForm): ) database = SelectField( - "Initialiser une base de données", + "Initialiser une base de données SQL", choices=[ ("false", "Non"), ("mysql", "MySQL/MariaDB"), @@ -422,37 +334,117 @@ class Resources(FlaskForm): ) install_dir = BooleanField( - "Initialiser un dossier d'installation de l'app (typiquement /var/www/$app)", + "Initialiser un dossier d'installation de l'app", + description="Par défaut il s'agit de /var/www/$app", default=True, ) data_dir = BooleanField( - "Initialiser un dossier pour les données de l'app (typiquement /home/yunohost.app/$app)", + "Initialiser un dossier destiné à stocker les données de l'app", + description="Par défaut il s'agit de /home/yunohost.app/$app", default=False, ) - ports = BooleanField( - "L'app aura besoin d'un port interne pour le reverse proxy entre nginx et l'app", - description="(généralement pas nécessaire pour les apps statiques ou php, mais généralement nécessaire pour les apps de type nodejs, python, ruby, ...)", - ) -## Main form -class GeneratorForm( - GeneralInfos, IntegrationInfos, UpstreamInfos, InstallQuestions, Resources, - Form_PHP, Form_NodeJS, Form_Python -): - generator_mode = SelectField( - "Mode du générateur", - description="En mode tutoriel, l'application générée contiendra des commentaires additionnels pour faciliter la compréhension. En version épurée, l'application générée ne contiendra que le minimum nécessaire.", - choices=[("false", "Version épurée"), ("true", "Version tutoriel")], - default="true", +class SpecificTechnology(FlaskForm): + + main_technology = SelectField( + "Technologie principale de l'app", + choices=[ + ("none", "None / Static"), + ("php", "PHP"), + ("nodejs", "NodeJS"), + ("python", "Python"), + ("ruby", "Ruby"), + ("other", "Other"), + ], + default="none", validators=[DataRequired()], ) + install_snippet = TextAreaField( + "Commandes spécifiques d'installation", + description="Ces commandes seront éxécutées depuis le répertoire d'installation de l'app (par défaut, /var/www/$app) après que les sources aient été déployées. Le champ est pré-rempli avec un exemple classique basé sur la technologie sélectionnée. Vous devriez sans-doute le comparer et l'adapter en fonction de la doc d'installation de l'app.", + validators=[Optional()], + render_kw={ + "spellcheck": "false" + } + ) + + # + # PHP + # + + # TODO : add a tip about adding the PHP dependencies in the APT deps earlier + + # TODO : add a tip about the auto-prepared nginx config that will include the fastcgi snippet + + + use_composer = BooleanField( + "Utiliser composer", + description="Composer est un gestionnaire de dépendance PHP utilisé par certaines apps", + default=False, + ) + + # + # NodeJS + # + + nodejs_version = StringField( + "Version de NodeJS", + description="For example: 16.4, 18, 18.2, 20, 20.1, ...", + render_kw={ + "placeholder": "20", + }, + ) + + use_yarn = BooleanField( + "Installer et utiliser Yarn", + default=False, + ) + # NodeJS / Python / Ruby / ... + + # TODO : add a tip about the auto-prepared nginx config that will include a proxy_pass / reverse proxy to an auto-prepared systemd service + + systemd_execstart = StringField( + "Commande pour lancer le daemon de l'app (depuis le service systemd)", + description="Corresponds to 'ExecStart' statement in systemd. You can use '__INSTALL_DIR__' to refer to the install directory, or '__APP__' to refer to the app id", + render_kw={ + "placeholder": "__INSTALL_DIR__/bin/app --some-option", + }, + ) + + +class AppConfig(FlaskForm): + + use_custom_config_file = BooleanField( + "L'app utilise un fichier de configuration spécifique", + description="Typiquement : .env, config.json, conf.ini, params.yml, ...", + default=True, + ) + + custom_config_file = StringField( + "Nom ou chemin du fichier à utiliser", + validators=[Optional()], + render_kw={ + "placeholder": "config.json", + }, + ) + + custom_config_file_content = TextAreaField( + "Modèle de fichier de configuration de l'app", + description="Dans ce modèle, vous pouvez utilisez la syntaxe __FOOBAR__ qui sera automatiquement remplacé par la valeur de la variable $foobar", + validators=[Optional()], + render_kw={ + "spellcheck": "false" + } + ) + +class MoreAdvanced(FlaskForm): supports_change_url = BooleanField( - "L'application autorise le changement d'adresse (changement de domaine ou de chemin)", + "Gérer le changement d'URL d'installation (script change_url)", default=True, render_kw={ "title": "Faut-il permettre le changement d'URL pour l'application ? (fichier change_url)" @@ -460,7 +452,7 @@ class GeneratorForm( ) use_logrotate = BooleanField( - "Utiliser logrotate pour gérer les journaux", + "Utiliser logrotate pour les journaux de l'app", default=True, render_kw={ "title": "Si l'application genère des journaux (log), cette option permet d'en gérer l'archivage. Recommandé." @@ -477,18 +469,15 @@ class GeneratorForm( ) use_cron = BooleanField( "Ajouter une tâche CRON pour cette application", + description="Corresponds à des opérations périodiques de l'application", default=False, - render_kw={ - "title": "Créer une tâche cron pour gérer des opérations périodiques de l'application." - }, ) cron_config_file = TextAreaField( "Saisissez le contenu du fichier CRON", validators=[Optional()], render_kw={ "class": "form-control", - "style": "width: 50%;height:22em;min-height: 5.5em; max-height: 55em;flex-grow: 1;box-sizing: border-box;", - "title": "Saisir le contenu du fichier de la tâche CRON.", + "spellcheck": "false", }, ) @@ -503,71 +492,17 @@ class GeneratorForm( }, ) - nginx_config_file = TextAreaField( - "Saisissez le contenu du fichier de configuration du serveur NGINX", - validators=[Optional()], - render_kw={ - "class": "form-control", - "style": "width: 50%;height:22em;min-height: 5.5em; max-height: 55em;flex-grow: 1;box-sizing: border-box;", - "title": "Saisir le contenu du fichier de configuration du serveur NGINX.", - "placeholder": "location __PATH__/ {\n \n proxy_pass http://127.0.0.1:__PORT__;\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header Host $host;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n \n # Include SSOWAT user panel.\n include conf.d/yunohost_panel.conf.inc;\n }", - }, - ) - - use_systemd_service = BooleanField( - "Utiliser un service système (via systemd) pour gérer le fonctionnement de l'application ", - default=False, - render_kw={ - "title": "Un service systemd s'occupera de démarrer l'application avec le système, et permettra de l'arrêter ou la redémarrer. Recommandé." - }, - ) - systemd_config_file = TextAreaField( - "Saisissez le contenu du fichier de configuration du service SystemD", - validators=[Optional()], - render_kw={ - "class": "form-control", - "style": "width: 50%;height:22em;min-height: 5.5em; max-height: 55em;flex-grow: 1;box-sizing: border-box;", - "title": "Saisir le contenu du fichier de configuration du service systemd.", - }, - ) - systemd_service_description = StringField( - "Description du service de l'application", - validators=[Optional()], - render_kw={ - "placeholder": "A short description of the app", - "class": "form-control", - "style": "width: 30%;", - "title": "Décrire en une ligne ce que fait ce service. Ceci sera affiché dans l'interface d'administration.", - }, - ) - - use_custom_config_file = BooleanField( - "Utiliser un fichier de configuration personnalisé ", - default=False, - render_kw={ - "title": "Est-ce que l'application nécessite un fichier de configuration personnalisé ? (du type .env, config.json, parameters.yaml, …)" - }, - ) - custom_config_file = StringField( - "Nom du fichier à utiliser", - validators=[Optional()], - render_kw={ - "placeholder": "config.json", - "class": "form-control", - "style": "width: 30%;", - "title": "Décrire en une ligne ce que fait ce service. Ceci sera affiché dans l'interface d'administration.", - }, - ) - - custom_config_file_content = TextAreaField( - "Saisissez le contenu du fichier de configuration personnalisé", - validators=[Optional()], - render_kw={ - "class": "form-control", - "style": "width: 50%;height:22em;min-height: 5.5em; max-height: 55em;flex-grow: 1;box-sizing: border-box;", - "title": "Saisir le contenu du fichier de configuration personnalisé.", - }, +## Main form +class GeneratorForm( + GeneralInfos, IntegrationInfos, UpstreamInfos, InstallQuestions, Resources, SpecificTechnology, AppConfig, MoreAdvanced +): + generator_mode = SelectField( + "Mode du générateur", + description="En mode tutoriel, l'application générée contiendra des commentaires additionnels pour faciliter la compréhension. En version épurée, l'application générée ne contiendra que le minimum nécessaire.", + choices=[("false", "Version épurée"), ("true", "Version tutoriel")], + default="true", + validators=[DataRequired()], ) submit = SubmitField("Soumettre") diff --git a/tools/app_generator/templates/index.html b/tools/app_generator/templates/index.html index 5a2317783a..ba22c9f1c4 100644 --- a/tools/app_generator/templates/index.html +++ b/tools/app_generator/templates/index.html @@ -1,5 +1,24 @@ {% import "bootstrap/wtf.html" as wtf %} +{% macro form_field(field, + form_type="basic", + horizontal_columns=('lg', 2, 10), + button_map={}) %} +{% if field.widget.input_type == 'checkbox' %} +
+ + {%- if field.description -%} +

{{field.description|safe}}

+ {%- endif %} +
+{% else %} + {{ wtf.form_field(field, form_type, horizontal_columns, button_map) }} +{% endif %} +{% endmacro %} + + {% extends "bootstrap/base.html" %} {% block title %} @@ -13,39 +32,6 @@ {% block content %} +
+
+
+

7/8 - Configuration de l'app

+
+
+ {{ form_field(main_form.use_custom_config_file) }} + +
+ {{ form_field(main_form.custom_config_file) }} + {{ form_field(main_form.custom_config_file_content) }} +
+
+ +
-

6/6 - Options et technologies spécifiques (to be reworked)

- - {{ main_form.supports_change_url.label}} {{ main_form.supports_change_url()}} -
- - {{ main_form.use_logrotate.label}} {{ main_form.use_logrotate()}} -
- - - {{ main_form.use_fail2ban.label}} {{ main_form.use_fail2ban(onchange="showForm(this, 'fail2ban')")}} - - {%- if parameters['use_fail2ban'] == True -%} {# Not shown by default, so we show it if needed #} - - {%- else -%} - - {%- endif -%} -
- Configuration pour fail2ban - {{ main_form.fail2ban_regex.label}} {{ main_form.fail2ban_regex(style="width:60%;")}} -
- -
- - - - {{ main_form.use_cron.label }} {{ main_form.use_cron(onchange="showForm(this, 'cron')") }} - - {%- if parameters['use_cron'] == True -%} {# Not shown by default, so we show it if needed #} - - {%- else -%} - - {%- endif -%} -
- Configuration pour CRON - {{ main_form.cron_config_file.label}} {{ main_form.cron_config_file()}} -
- -
- - - - -
- Configuration pour le serveur NGINX - {{ main_form.nginx_config_file.label }}
- {{ main_form.nginx_config_file() }} -
-
- - - - {{ main_form.use_systemd_service.label}} {{ main_form.use_systemd_service(onchange="showForm(this, 'SystemD')")}} -
- - {%- if parameters['use_systemd_service'] == True -%} {# Not shown by default, so we show it if needed #} - - {%- else -%} - - {%- endif -%} -
- Configuration pour le service SystemD - {{ main_form.systemd_service_description.label }} {{ main_form.systemd_service_description() }}
- - {{ main_form.systemd_config_file.label }}
- {{ main_form.systemd_config_file() }} -
-
- - - {{ main_form.use_custom_config_file.label}} {{ main_form.use_custom_config_file(onchange="showForm(this, - 'custom_config')")}} -
- - {%- if parameters['use_custom_config_file'] == True -%} {# Not shown by default, so we show it if needed #} - - {%- else -%} - - {%- endif -%} -
- Fichier de configuration personnalisé - {{ main_form.custom_config_file.label }} {{ main_form.custom_config_file() }}
- - {{ main_form.custom_config_file_content.label }}
- {{ main_form.custom_config_file_content() }} -
- - - -

Utilisation de PHP

- {{ main_form.use_php.label}} {{ main_form.use_php(onchange="showForm(this, 'PHP')") }}
- - {%- if parameters['use_php'] == True -%} {# Not shown by default, so we show it if needed #} - - {%- else -%} - - {%- endif -%} -
- Fichier de configuration pour PHP - {{ main_form.php_config_file.label }} {{ main_form.php_config_file()}}
- {{ main_form.php_config_file_content.label }} {{ main_form.php_config_file_content()}}
- -
- - -

Utilisation de NodeJS

- {{ main_form.use_nodejs.label}} {{ main_form.use_nodejs(onchange="showForm(this, 'NodeJS')") }}
- - {%- if parameters['use_nodejs'] == True -%} {# Not shown by default, so we show it if needed #} - - {%- else -%} - - {%- endif -%} -
- Configuration pour NodeJS - {{ main_form.use_nodejs_version.label}} {{ main_form.use_nodejs_version() }}
- {{ main_form.use_nodejs_needs_yarn.label}} {{ main_form.use_nodejs_needs_yarn() }}
- -
- - -

Utilisation de Python

- {{ main_form.use_python.label}} {{ main_form.use_python(onchange="showForm(this, 'Python')") }}
- - {%- if parameters['use_python'] == True -%} {# Not shown by default, so we show it if needed #} - - {%- else -%} - - {%- endif -%} -
- Configuration pour Python - {{ main_form.python_dependencies_type.label}} {{ main_form.python_dependencies_type(onchange="showForm(this, - 'Python_dependencies')") }}
- -
- {%- if parameters['python_dependencies_type'] == 'requirements.txt' -%} - {{ main_form.python_requirements.label}} {{ main_form.python_requirements() }} - {%- else -%} - {{ main_form.python_dependencies_list.label}} {{ main_form.python_dependencies_list() }} - {%- endif -%} -
-
-
+
+
+

8/8 - Options avancées

+
+
+ {{ form_field(main_form.supports_change_url) }} + {{ form_field(main_form.use_logrotate) }} + {{ form_field(main_form.use_fail2ban) }} + {{ form_field(main_form.fail2ban_regex) }} + {{ form_field(main_form.use_cron) }} + {{ form_field(main_form.cron_config_file) }} +
+
-
- {{ main_form.submit(class="btn btn-primary btn-sm btn-center") }} +
+ {{ main_form.submit(class="btn btn-primary") }} +
{% if parameters['invalid_form'] %}

Formulaire invalide, veuillez vérifier quel champ contient une erreur svp.

From faab2b3953dec2e8305a9f00fb5a4bac376c0c51 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Thu, 9 Nov 2023 18:13:34 +0100 Subject: [PATCH 119/292] appgenerator: forgot to add Flask-Bootstrap in requirements.txt earlier ... running pip freeze --- tools/app_generator/requirements.txt | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/tools/app_generator/requirements.txt b/tools/app_generator/requirements.txt index 675c4d779b..e98492ff16 100644 --- a/tools/app_generator/requirements.txt +++ b/tools/app_generator/requirements.txt @@ -1,9 +1,17 @@ +blinker==1.6.3 +cffi==1.16.0 +click==8.1.7 +dominate==2.8.0 Flask==3.0.0 -Flask_Misaka==1.0.0 -Flask_WTF==1.2.1 +Flask-Bootstrap==3.3.7.1 +Flask-Cors==4.0.0 +Flask-Misaka==1.0.0 +Flask-WTF==1.2.1 +itsdangerous==2.1.2 Jinja2==3.1.2 +MarkupSafe==2.1.3 misaka==2.1.1 +pycparser==2.21 +visitor==0.1.3 +Werkzeug==3.0.0 WTForms==3.0.1 -flask_cors==4.0.0 -werkzeug==3.0.0 -markupsafe==2.1.3 From 8f74aa2c229cbb79ff651c56dcac75eb14bfc333 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Thu, 9 Nov 2023 22:48:54 +0100 Subject: [PATCH 120/292] appgenerator: propagate changes to template files + rework preview/zipdownload with two submit buttons mapped to the same route --- tools/app_generator/app_generator.py | 308 +++--------- tools/app_generator/templates/_common.sh.j2 | 12 +- tools/app_generator/templates/backup.j2 | 86 ++-- tools/app_generator/templates/change_url.j2 | 28 +- tools/app_generator/templates/config.j2 | 109 ----- tools/app_generator/templates/index.html | 497 +------------------- tools/app_generator/templates/install.j2 | 196 +++----- tools/app_generator/templates/manifest.j2 | 158 +++---- tools/app_generator/templates/nginx.j2 | 35 ++ tools/app_generator/templates/remove.j2 | 41 +- tools/app_generator/templates/restore.j2 | 66 +-- tools/app_generator/templates/systemd.j2 | 54 +++ tools/app_generator/templates/upgrade.j2 | 90 ++-- 13 files changed, 459 insertions(+), 1221 deletions(-) delete mode 100644 tools/app_generator/templates/config.j2 create mode 100644 tools/app_generator/templates/nginx.j2 create mode 100644 tools/app_generator/templates/systemd.j2 diff --git a/tools/app_generator/app_generator.py b/tools/app_generator/app_generator.py index ccfbf15121..810d79a07c 100644 --- a/tools/app_generator/app_generator.py +++ b/tools/app_generator/app_generator.py @@ -1,4 +1,7 @@ #### Imports +from io import BytesIO +import re +import os import jinja2 as j2 from flask import ( Flask, @@ -301,16 +304,6 @@ class Resources(FlaskForm): default=False, ) - ## TODO - # These infos are used by https://github.com/YunoHost/apps/blob/master/tools/autoupdate_app_sources/autoupdate_app_sources.py - # to auto-update the previous asset urls and sha256sum + manifest version - # assuming the upstream's code repo is on github and relies on tags or releases - # See the 'sources' resource documentation for more details - - # autoupdate.strategy = "latest_github_tag" - - - apt_dependencies = StringField( "Dépendances à installer via apt (séparées par des virgules et/ou espaces)", render_kw={ @@ -375,11 +368,6 @@ class SpecificTechnology(FlaskForm): # PHP # - # TODO : add a tip about adding the PHP dependencies in the APT deps earlier - - # TODO : add a tip about the auto-prepared nginx config that will include the fastcgi snippet - - use_composer = BooleanField( "Utiliser composer", description="Composer est un gestionnaire de dépendance PHP utilisé par certaines apps", @@ -405,8 +393,6 @@ class SpecificTechnology(FlaskForm): # NodeJS / Python / Ruby / ... - # TODO : add a tip about the auto-prepared nginx config that will include a proxy_pass / reverse proxy to an auto-prepared systemd service - systemd_execstart = StringField( "Commande pour lancer le daemon de l'app (depuis le service systemd)", description="Corresponds to 'ExecStart' statement in systemd. You can use '__INSTALL_DIR__' to refer to the install directory, or '__APP__' to refer to the app id", @@ -443,7 +429,7 @@ class AppConfig(FlaskForm): class MoreAdvanced(FlaskForm): - supports_change_url = BooleanField( + enable_change_url = BooleanField( "Gérer le changement d'URL d'installation (script change_url)", default=True, render_kw={ @@ -462,7 +448,7 @@ class MoreAdvanced(FlaskForm): # custom_log_file = "/var/log/$app/$app.log" "/var/log/nginx/${domain}-error.log" use_fail2ban = BooleanField( "Protéger l'application des attaques par force brute (via fail2ban)", - default=True, + default=False, render_kw={ "title": "Si l'application genère des journaux (log) d'erreurs de connexion, cette option permet de bannir automatiquement les IP au bout d'un certain nombre d'essais de mot de passe. Recommandé." }, @@ -497,247 +483,95 @@ class MoreAdvanced(FlaskForm): class GeneratorForm( GeneralInfos, IntegrationInfos, UpstreamInfos, InstallQuestions, Resources, SpecificTechnology, AppConfig, MoreAdvanced ): + + class Meta: + csrf = False + generator_mode = SelectField( "Mode du générateur", description="En mode tutoriel, l'application générée contiendra des commentaires additionnels pour faciliter la compréhension. En version épurée, l'application générée ne contiendra que le minimum nécessaire.", - choices=[("false", "Version épurée"), ("true", "Version tutoriel")], + choices=[("simple", "Version épurée"), ("tutorial", "Version tutoriel")], default="true", validators=[DataRequired()], ) - submit = SubmitField("Soumettre") + submit_preview = SubmitField("Prévisualiser") + submit_download = SubmitField("Télécharger le .zip") #### Web pages @app.route("/", methods=["GET", "POST"]) def main_form_route(): - parameters = {} main_form = GeneratorForm() + app_files = [] if request.method == "POST": - result = request.form - results = dict(result) - # print("[DEBUG] This is a POST request") - # print(results) - for key, value in results.items(): - parameters[key] = value - parameters["preview"] = True - if main_form.validate_on_submit(): - parameters["invalid_form"] = False - print() - print("formulaire valide") - # print(main_form.data.items()) - - for key, value in main_form.data.items(): - parameters[key] = value # TODO change the name - - templates = ( - "templates/manifest.j2", - "templates/install.j2", - "templates/remove.j2", - "templates/backup.j2", - "templates/restore.j2", - "templates/upgrade.j2", - "templates/config.j2", - "templates/change_url.j2", - "templates/_common.sh.j2", - ) - markdown_to_html = dict() - for template in templates: - markdown_content, html_content = markdown_file_to_html_string(template) - template_key = template.split("templates/")[1].split(".j2")[ - 0 - ] # Let's retrieve what's the exact template used - markdown_to_html[template_key] = { - "markdown_content": markdown_content, - "html_content": html_content, - } - # print(markdown_to_html["markdown_content"]) - # print(markdown_to_html["html_content"]) - - ## Prepare the file contents for the download button - # print(markdown_to_html['manifest']['markdown_content']) - - # Workaround so /download_zip can access the content - FIXME ? - global template_manifest_content - global template_install_content - global template_remove_content - global template_backup_content - global template_restore_content - global template_upgrade_content - global template_config_content - global template_change_url_content - global template_common_sh_content - global custom_config_file - global nginx_config_file - global systemd_config_file - global cron_config_file - - template_manifest_content = render_template_string( - markdown_to_html["manifest"]["markdown_content"], - parameters=parameters, - main_form=main_form, - ) - template_install_content = render_template_string( - markdown_to_html["install"]["markdown_content"], - parameters=parameters, - main_form=main_form, - markdown_to_html=markdown_to_html["install"], - ) - - template_remove_content = render_template_string( - markdown_to_html["remove"]["markdown_content"], - parameters=parameters, - main_form=main_form, - markdown_to_html=markdown_to_html["remove"], - ) - - template_backup_content = render_template_string( - markdown_to_html["backup"]["markdown_content"], - parameters=parameters, - main_form=main_form, - markdown_to_html=markdown_to_html["backup"], - ) - - template_restore_content = render_template_string( - markdown_to_html["restore"]["markdown_content"], - parameters=parameters, - main_form=main_form, - markdown_to_html=markdown_to_html["restore"], - ) + if not main_form.validate_on_submit(): + print("not validated?") + print(main_form.errors) - template_upgrade_content = render_template_string( - markdown_to_html["upgrade"]["markdown_content"], - parameters=parameters, - main_form=main_form, - markdown_to_html=markdown_to_html["upgrade"], - ) - - template_config_content = render_template_string( - markdown_to_html["config"]["markdown_content"], - parameters=parameters, - main_form=main_form, - markdown_to_html=markdown_to_html["config"], - ) - - template_common_sh_content = render_template_string( - markdown_to_html["_common.sh"]["markdown_content"], - parameters=parameters, - main_form=main_form, - markdown_to_html=markdown_to_html["_common.sh"], - ) - - if parameters["supports_change_url"]: - template_change_url_content = render_template_string( - markdown_to_html["change_url"]["markdown_content"], - parameters=parameters, - main_form=main_form, - markdown_to_html=markdown_to_html["change_url"], - ) - else: - template_change_url_content = False - - print(parameters["custom_config_file"]) - print(parameters["use_custom_config_file"]) return render_template( - "index.html", - parameters=parameters, - main_form=main_form, - markdown_to_html=markdown_to_html, - template_manifest_content=template_manifest_content, - template_install_content=template_install_content, - template_remove_content=template_remove_content, - template_backup_content=template_backup_content, - template_restore_content=template_restore_content, - template_upgrade_content=template_upgrade_content, - template_config_content=template_config_content, - template_change_url_content=template_change_url_content, - template_common_sh_content=template_common_sh_content, - nginx_config_file=parameters["nginx_config_file"], - systemd_config_file=parameters["systemd_config_file"], - custom_config_file=parameters["custom_config_file"], - cron_config_file=parameters["cron_config_file"], + "index.html", main_form=main_form, generated_files={} ) - else: - print("[DEBUG] Formulaire invalide: ", main_form.errors) - parameters["preview"] = False - parameters["invalid_form"] = True - elif request.method == "GET": - parameters["preview"] = False + submit_mode = "preview" if main_form.submit_preview.data else "download" + + class AppFile: + def __init__(self, id_, destination_path=None): + self.id = id_ + self.destination_path = destination_path + self.content = None + + app_files = [ + AppFile("manifest", "manifest.toml"), + AppFile("_common.sh", "scripts/_common.sh"), + AppFile("install", "scripts/install"), + AppFile("remove", "scripts/remove"), + AppFile("backup", "scripts/backup"), + AppFile("restore", "scripts/restore"), + AppFile("upgrade", "scripts/upgrade"), + AppFile("nginx", "conf/nginx.conf"), + ] + + if main_form.enable_change_url: + app_files.append(AppFile("change_url", "scripts/change_url")) + + if main_form.main_technology not in ["none", "php"]: + app_files.append(AppFile("systemd", "conf/systemd.service")) + + if main_form.main_technology == "php": + app_files.append(AppFile("php", "conf/extra_php-fpm.conf")) + + template_dir = os.path.dirname(__file__) + "/templates/" + for app_file in app_files: + template = open(template_dir + app_file.id + ".j2").read() + app_file.content = render_template_string(template, data=dict(request.form)) + app_file.content = re.sub(r'\n\s+$', '\n', app_file.content, flags=re.M) + app_file.content = re.sub(r'\n{3,}', '\n\n', app_file.content, flags=re.M) + + # TODO + #if main_form.use_custom_config_file: + # app_files.append(AppFile("appconf", "conf/" + main_form.custom_config_file)) + # app_files[-1].content = main_form.custom_config_file_content + + # TODO : same for cron job + + if submit_mode == "download": + # Generate the zip file + f = BytesIO() + with zipfile.ZipFile(f, "w") as zf: + for app_file in app_files: + print(app_file.id) + zf.writestr(app_file.destination_path, app_file.content) + f.seek(0) + # Send the zip file to the user + return send_file(f, as_attachment=True, download_name=request.form["app_id"] + ".zip") return render_template( - "index.html", parameters=parameters, main_form=main_form - ) - - -@app.route("/download_zip", methods=("GET", "POST")) -def telecharger_zip(): - # Retrieve arguments - print("Génération du .zip") - app_id = request.args.get("app_id") - print("Génération du .zip pour " + app_id) - - custom_config_file = parse.unquote(request.args.get("custom_config_file")) - custom_config_file_content = parse.unquote( - request.args.get("custom_config_file_content") - ) - systemd_config_file = parse.unquote(request.args.get("systemd_config_file")) - nginx_config_file = parse.unquote(request.args.get("nginx_config_file")) - cron_config_file = parse.unquote(request.args.get("cron_config_file")) - - global template_manifest_content - global template_install_content - global template_remove_content - global template_backup_content - global template_restore_content - global template_upgrade_content - global template_config_content - global template_change_url_content - global template_common_sh_content - - # global custom_config_file - - use_php = request.args.get("use_php") - print("PHP") - print(use_php) - php_config_file = parse.unquote(request.args.get("php_config_file")) - php_config_file_content = parse.unquote(request.args.get("php_config_file_content")) - - archive_name = ( - app_id + ".zip" - ) # Actually it's the javascript that decide of the filename… this is only an internal name - - # Generate the zip file (will be stored in the working directory) - with zipfile.ZipFile(archive_name, "w") as zf: - # Add text in directly in the ZIP, as a file - zf.writestr("manifest.toml", template_manifest_content) - zf.writestr("scripts/install", template_install_content) - zf.writestr("scripts/remove", template_remove_content) - zf.writestr("scripts/backup", template_backup_content) - zf.writestr("scripts/restore", template_restore_content) - zf.writestr("scripts/upgrade", template_upgrade_content) - zf.writestr("scripts/_common_sh", template_common_sh_content) - - if template_config_content: - zf.writestr("scripts/config", template_config_content) - if template_change_url_content: - zf.writestr("scripts/change_url", template_change_url_content) - if custom_config_file: - zf.writestr("conf/" + custom_config_file, custom_config_file_content) - if systemd_config_file: - zf.writestr("conf/systemd.service", systemd_config_file) - if nginx_config_file: - zf.writestr("conf/nginx.conf", nginx_config_file) - if cron_config_file: - zf.writestr("conf/task.conf", cron_config_file) - if use_php == "True": - zf.writestr("conf/" + php_config_file, php_config_file_content) - - # Send the zip file to the user - return send_file(archive_name, as_attachment=True) + "index.html", main_form=main_form, generated_files=app_files + ) #### Running the web server diff --git a/tools/app_generator/templates/_common.sh.j2 b/tools/app_generator/templates/_common.sh.j2 index ea830fd7c6..eb200e9020 100644 --- a/tools/app_generator/templates/_common.sh.j2 +++ b/tools/app_generator/templates/_common.sh.j2 @@ -4,17 +4,11 @@ # COMMON VARIABLES #================================================= -{% if parameters["use_nodejs"] -%} -nodejs_version={{ parameters["use_nodejs_version"]}} +{% if data.use_nodejs -%} +nodejs_version={{ data.nodejs_version }} {% endif -%} -#================================================= -# PERSONAL HELPERS -#================================================= #================================================= -# EXPERIMENTAL HELPERS +# PERSONAL HELPERS #================================================= -#================================================= -# FUTURE OFFICIAL HELPERS -#================================================= diff --git a/tools/app_generator/templates/backup.j2 b/tools/app_generator/templates/backup.j2 index 495cce9491..db3c8be86f 100644 --- a/tools/app_generator/templates/backup.j2 +++ b/tools/app_generator/templates/backup.j2 @@ -1,9 +1,9 @@ #!/bin/bash -#### App file generated with YoloGen, the YunoHost app generator, version {{ parameters['GENERATOR_VERSION'] }}. -{% if parameters["tutorial"] -%} # This is the tutorial version of the app. +#### App file generated with YoloGen, the YunoHost app generator, version {{ data.GENERATOR_VERSION }}. +{% if data.generator_mode == 'tutorial' -%} # This is the tutorial version of the app. # It contains extra commands to explain what should be done in case you want to adjust some part of the script. # Once you are done, you may remove them. -{% endif -%} +{% endif %} #================================================= # GENERIC START #================================================= @@ -19,91 +19,63 @@ source /usr/share/yunohost/helpers #================================================= ynh_print_info --message="Declaring files to be backed up..." -{% if parameters["tutorial"] -%} +{% if data.generator_mode == 'tutorial' -%} ### N.B. : the following 'ynh_backup' calls are only a *declaration* of what needs ### to be backuped and not an actual copy of any file. The actual backup that ### creates and fill the archive with the files happens in the core after this ### script is called. Hence ynh_backups calls takes basically 0 seconds to run. -{% endif -%} - -#================================================= -# BACKUP THE APP MAIN DIR -#================================================= +{% endif %} +{% if data.data_dir -%} ynh_backup --src_path="$install_dir" +{% endif %} -{% if parameters["data_dir"] -%} -#================================================= -# BACKUP THE DATA DIR -#================================================= - - {% if parameters["tutorial"] -%} +{% if data.data_dir -%} +{% if data.generator_mode == 'tutorial' -%} # The --is_big parameters ensure this folder is not included in the backup by default (taking less space), except if BACKUP_CORE_ONLY=0 is passed before the backup command. You might want to document that for your users. - {% endif -%} -# Only relevant if there is a "data_dir" resource for this app +{% endif %} ynh_backup --src_path="$data_dir" --is_big -{% endif -%} -#================================================= -# BACKUP THE NGINX CONFIGURATION -#================================================= +{% endif %} ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf" -{% if parameters["use_php"] -%} -#================================================= -# BACKUP THE PHP-FPM CONFIGURATION -#================================================= - +{% if data.main_technology == "php" -%} ynh_backup --src_path="/etc/php/$phpversion/fpm/pool.d/$app.conf" -{% endif -%} -{% if parameters["use_fail2ban"] -%} -#================================================= -# BACKUP FAIL2BAN CONFIGURATION -#================================================= +{% endif %} +{% if data.use_fail2ban -%} ynh_backup --src_path="/etc/fail2ban/jail.d/$app.conf" ynh_backup --src_path="/etc/fail2ban/filter.d/$app.conf" -{% endif -%} -{% if parameters["use_logrotate"] -%} -#================================================= -# SPECIFIC BACKUP -#================================================= -# BACKUP LOGROTATE -#================================================= +{% endif %} +{% if data.use_logrotate -%} ynh_backup --src_path="/etc/logrotate.d/$app" -{% endif -%} -{% if parameters["use_systemd_service"] -%} -#================================================= -# BACKUP SYSTEMD -#================================================= +{% endif %} +{% if data.main_technology not in ["php", "none"] -%} ynh_backup --src_path="/etc/systemd/system/$app.service" -{% endif -%} -#================================================= -# BACKUP VARIOUS FILES -#================================================= -{% if parameters["use_cron"] -%} -ynh_backup --src_path="/etc/cron.d/$app" -{% endif -%} -ynh_backup --src_path="/etc/$app/" +{% endif %} +{% if data.use_cron -%} +ynh_backup --src_path="/etc/cron.d/$app" +{% endif %} -{% if parameters["use_db"] -%} +{% if data.database != 'false' -%} #================================================= # BACKUP THE DATABASE #================================================= -ynh_print_info --message="Backing up the {{ parameters['use_db'] }} database..." +ynh_print_info --message="Backing up the {{ data.database }} database..." ### (However, things like MySQL dumps *do* take some time to run, though the ### copy of the generated dump to the archive still happens later) -{% if parameters["use_db"] == 'mysql' -%} +{% if data.use_db == 'mysql' -%} ynh_mysql_dump_db --database="$db_name" > db.sql -{% elif parameters["use_db"] == 'postgresql' -%} +{% elif data.use_db == 'postgresql' -%} ynh_psql_dump_db --database="$db_name" > db.sql -{% endif -%} -{% endif -%} +{% endif %} +{% endif %} + #================================================= # END OF SCRIPT #================================================= diff --git a/tools/app_generator/templates/change_url.j2 b/tools/app_generator/templates/change_url.j2 index 92a1d85e68..bfd0a14c42 100644 --- a/tools/app_generator/templates/change_url.j2 +++ b/tools/app_generator/templates/change_url.j2 @@ -1,9 +1,11 @@ #!/bin/bash -#### App file generated with YoloGen, the YunoHost app generator, version {{ parameters['GENERATOR_VERSION'] }}. -{% if parameters["tutorial"] -%} # This is the tutorial version of the app. + +{% if data.generator_mode == 'tutorial' -%} +# This is the tutorial version of the app. # It contains extra commands to explain what should be done in case you want to adjust some part of the script. # Once you are done, you may remove them. -{% endif -%} +{% endif %} + #================================================= # GENERIC STARTING #================================================= @@ -13,20 +15,19 @@ source _common.sh source /usr/share/yunohost/helpers +{% if data.main_technology not in ["php", "none"] -%} #================================================= -# STANDARD MODIFICATIONS -#================================================= -{% if parameters["use_systemd_service"] -%} # STOP SYSTEMD SERVICE #================================================= -ynh_script_progression --message="Stopping a systemd service..." --weight=1 +ynh_script_progression --message="Stopping a systemd service..." ynh_systemd_action --service_name=$app --action="stop" --log_path="/var/log/$app/$app.log" -{% endif -%} +{% endif %} + #================================================= # MODIFY URL IN NGINX CONF #================================================= -ynh_script_progression --message="Updating NGINX web server configuration..." --weight=1 +ynh_script_progression --message="Updating NGINX web server configuration..." ynh_change_url_nginx_config @@ -36,16 +37,15 @@ ynh_change_url_nginx_config # ... #================================================= +{% if data.main_technology not in ["php", "none"] -%} #================================================= -# GENERIC FINALISATION -#================================================= -{% if parameters["use_systemd_service"] -%} # START SYSTEMD SERVICE #================================================= -ynh_script_progression --message="Starting a systemd service..." --weight=1 +ynh_script_progression --message="Starting a systemd service..." ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" -{% endif -%} +{% endif %} + #================================================= # END OF SCRIPT #================================================= diff --git a/tools/app_generator/templates/config.j2 b/tools/app_generator/templates/config.j2 deleted file mode 100644 index acc66a0111..0000000000 --- a/tools/app_generator/templates/config.j2 +++ /dev/null @@ -1,109 +0,0 @@ -#!/bin/bash -#### App file generated with YoloGen, the YunoHost app generator, version {{ parameters['GENERATOR_VERSION'] }}. -{% if parameters["tutorial"] -%} # This is the tutorial version of the app. -# It contains extra commands to explain what should be done in case you want to adjust some part of the script. -# Once you are done, you may remove them. -{% endif -%} - -{% if parameters["tutorial"] -%} -# In simple cases, you don't need a config script. - -# With a simple config_panel.toml, you can write in the app settings, in the -# upstream config file or replace complete files (logo ...) and restart services. - -# The config scripts allows you to go further, to handle specific cases -# (validation of several interdependent fields, specific getter/setter for a value, -# display dynamic informations or choices, pre-loading of config type .cube... ). -{% endif -%} -#================================================= -# GENERIC STARTING -#================================================= -# IMPORT GENERIC HELPERS -#================================================= - -source /usr/share/yunohost/helpers - -ynh_abort_if_errors - -#================================================= -# RETRIEVE ARGUMENTS -#================================================= - -install_dir=$(ynh_app_setting_get --app=$app --key=install_dir) - -#================================================= -# SPECIFIC GETTERS FOR TOML SHORT KEY -#================================================= - -get__amount() { - # Here we can imagine to have an API call to stripe to know the amount of donation during a month - local amount = 200 - - # It's possible to change some properties of the question by overriding it: - if [ $amount -gt 100 ] - then - cat << EOF -style: success -value: $amount -ask: - en: A lot of donation this month: **$amount €** -EOF - else - cat << EOF -style: danger -value: $amount -ask: - en: Not so much donation this month: $amount € -EOF - fi -} - -get__prices() { - local prices = "$(grep "DONATION\['" "$install_dir/settings.py" | sed -r "s@^DONATION\['([^']*)'\]\['([^']*)'\] = '([^']*)'@\1/\2/\3@g" | sed -z 's/\n/,/g;s/,$/\n/')" - if [ "$prices" == "," ]; - then - # Return YNH_NULL if you prefer to not return a value at all. - echo YNH_NULL - else - echo $prices - fi -} - - -#================================================= -# SPECIFIC VALIDATORS FOR TOML SHORT KEYS -#================================================= -validate__publishable_key() { - - # We can imagine here we test if the key is really a publisheable key - (is_secret_key $publishable_key) && - echo 'This key seems to be a secret key' -} - -#================================================= -# SPECIFIC SETTERS FOR TOML SHORT KEYS -#================================================= -set__prices() { - - #--------------------------------------------- - # IMPORTANT: setter are trigger only if a change is detected - #--------------------------------------------- - for price in $(echo $prices | sed "s/,/ /"); do - frequency=$(echo $price | cut -d/ -f1) - currency=$(echo $price | cut -d/ -f2) - price_id=$(echo $price | cut -d/ -f3) - sed "d/DONATION\['$frequency'\]\['$currency'\]" "$install_dir/settings.py" - - echo "DONATION['$frequency']['$currency'] = '$price_id'" >> "$install_dir/settings.py" - done - - #--------------------------------------------- - # IMPORTANT: to be able to upgrade properly, you have to saved the value in settings too - #--------------------------------------------- - ynh_app_setting_set $app prices $prices -} - -#================================================= -# GENERIC FINALIZATION -#================================================= -ynh_app_config_run $1 diff --git a/tools/app_generator/templates/index.html b/tools/app_generator/templates/index.html index ba22c9f1c4..10a14486da 100644 --- a/tools/app_generator/templates/index.html +++ b/tools/app_generator/templates/index.html @@ -31,189 +31,14 @@ {% endblock %} {% block content %} - - - -

Formulaire de génération d'une application Yunohost

{{ main_form.hidden_tag() }} +
{{ wtf.form_errors(main_form, hiddens="only") }} +
{{ form_field(main_form.generator_mode) }} @@ -265,7 +90,6 @@

3/8 - Intégration dans YunoHost

-

4/8 - Questions à poser pendant l'installation

@@ -423,7 +247,7 @@

7/8 - Configuration de l'app

8/8 - Options avancées

- {{ form_field(main_form.supports_change_url) }} + {{ form_field(main_form.enable_change_url) }} {{ form_field(main_form.use_logrotate) }} {{ form_field(main_form.use_fail2ban) }} {{ form_field(main_form.fail2ban_regex) }} @@ -434,317 +258,26 @@

8/8 - Options avancées

- {{ main_form.submit(class="btn btn-primary") }} + {{ main_form.submit_preview(class="btn btn-primary") }} + {{ main_form.submit_download(class="btn btn-primary") }}
- - {% if parameters['invalid_form'] %} -

Formulaire invalide, veuillez vérifier quel champ contient une erreur svp.

- {% endif %}
-{% if parameters['preview'] %} {# is defined #} -
- Afficher le code des fichiers principaux -

Voici le code de l'application {{parameters['app.name']}}

- - - - - - -

Manifeste (manifest.toml)

-
-
-
-{% set lines = template_manifest_content.splitlines() %}
-{% for line in lines %} {{ line }}
-{% endfor %}
-
-
-
- - - - - - - - - -

Script d'installation (install)

-
-
-
-{% set lines = template_install_content.splitlines() %}
-{% for line in lines %} {{ line }}
-{% endfor %}
-
-
-
- - - - - - - - - -

Script de suppression (remove)

-
-
-
-{% set lines = template_remove_content.splitlines() %}
-{% for line in lines %} {{ line }}
-{% endfor %}
-
-
-
- - - - - - - - - -

Script de sauvegarde (backup)

-
-
-
-{% set lines = template_backup_content.splitlines() %}
-{% for line in lines %} {{ line }}
-{% endfor %}
-
-
-
- - - - - - - - - -

Script de restauration (restore)

-
-
-
-{% set lines = template_restore_content.splitlines() %}
-{% for line in lines %} {{ line }}
-{% endfor %}
-
-
-
- - - - - - - - - -

Script de mise à jour (upgrade)

-
-
-
-{% set lines = template_upgrade_content.splitlines() %}
-{% for line in lines %} {{ line }}
-{% endfor %}
-
-
-
- - - - - - - - - -

Script de configuration spéciale (config)

-
-
-
-{% set lines = template_config_content.splitlines() %}
-{% for line in lines %} {{ line }}
-{% endfor %}
-
-
+{% if generated_files %} +

Code généré

+{% for file in generated_files %} +
+
+

{{ file.destination_path }}

+
+
+
{{ file.content }}
+
- - - - - - - - - - {%- if template_change_url_content -%} -

Script de changement d'URL (change_url)

-
-
-
-{% set lines = template_change_url_content.splitlines() %}
-{% for line in lines %} {{ line }}
 {% endfor %}
-
-
-
- - - - - - - {% endif %} - - - {%- if systemd_config_file -%} -

Fichier de configuration du service SystemD (systemd.service)

-
-
-            
-            {{parameters['systemd_config_file']}}
-            
-        
-
- - - - - - - {% endif %} - - - {%- if nginx_config_file -%} -

Fichier de configuration de NGINX (nginx.conf)

-
-
-            
-            {{parameters['nginx_config_file']}}
-            
-        
-
- - - - - - - {% endif %} - - - {%- if custom_config_file -%} -

Fichier de configuration personnalisé ({{custom_config_file}})

-
-
-            
-            {{parameters['custom_config_file_content']}}
-            
-        
-
- - - - - - - {% endif %} - - - {%- if cron_config_file -%} -

Fichier de configuration de tâche CRON (task.cron)

-
-
-            
-            {{parameters['cron_config_file']}}
-            
-        
-
- - - - - - - {% endif %} - - -
- -

- -

- {% endif %}
diff --git a/tools/app_generator/templates/install.j2 b/tools/app_generator/templates/install.j2 index f6e07073f3..cef50dbd50 100644 --- a/tools/app_generator/templates/install.j2 +++ b/tools/app_generator/templates/install.j2 @@ -1,9 +1,11 @@ #!/bin/bash -#### App file generated with YoloGen, the YunoHost app generator, version {{ parameters['GENERATOR_VERSION'] }}. -{% if parameters["tutorial"] -%} # This is the tutorial version of the app. + +{% if data.generator_mode == 'tutorial' -%} +# This is the tutorial version of the app. # It contains extra commands to explain what should be done in case you want to adjust some part of the script. # Once you are done, you may remove them. -{% endif -%} +{% endif %} + #================================================= # GENERIC START #================================================= @@ -12,7 +14,7 @@ source _common.sh source /usr/share/yunohost/helpers -{% if parameters["tutorial"] -%} +{% if data.generator_mode == 'tutorial' -%} # Install parameters are automatically saved as settings # # Settings are automatically loaded as bash variables @@ -33,121 +35,70 @@ source /usr/share/yunohost/helpers # $app is the app id (i.e. 'example' for first install, # or 'example__2', '__3', ... for multi-instance installs) # -{% endif -%} +{% endif %} #================================================= # INSTALL DEPENDENCIES #================================================= -ynh_script_progression --message="Installing dependencies..." --weight=10 -{% if parameters["use_nodejs_needs_yarn"] -%} +{% if data.main_technology == "nodejs" -%} +ynh_script_progression --message="Installing NodeJS..." --weight=10 + # Install Nodejs ynh_exec_warn_less ynh_install_nodejs --nodejs_version=$nodejs_version -{% endif -%} +ynh_use_nodejs +{% endif %} #================================================= # APP "BUILD" (DEPLOYING SOURCES, VENV, COMPILING ETC) #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= -ynh_script_progression --message="Setting up source files..." --weight=1 +ynh_script_progression --message="Setting up source files..." -{% if parameters["tutorial"] -%} +{% if data.generator_mode == 'tutorial' -%} ### `ynh_setup_source` is used to install an app from a zip or tar.gz file, -### downloaded from an upstream source, like a git repository. -### `ynh_setup_source` use the file conf/app.src -{% endif -%} +### downloaded from an upstream source, as defined in the manifest.toml +{% endif %} -# Download, check integrity, uncompress and patch the source from app.src ynh_setup_source --dest_dir="$install_dir" -{% if parameters["tutorial"] -%} +{% if data.generator_mode == 'tutorial' -%} # $install_dir will automatically be initialized with some decent # permission by default ... however, you may need to recursively reapply # ownership to all files such as after the ynh_setup_source step -{% endif -%} -chown -R $app:www-data "$install_dir" {# TODO : we may need to allow people to configure this #} +{% endif %} +chown -R $app:www-data "$install_dir" #================================================= # SYSTEM CONFIGURATION #================================================= -ynh_script_progression --message="Adding system configurations related to $app..." --weight=1 -{% if use_php -%} - -{% if version == "tutorial" -%} -### `ynh_add_fpm_config` is used to set up a PHP config. -### You can remove it if your app doesn't use PHP. -### `ynh_add_fpm_config` will use the files conf/php-fpm.conf -### If you're not using these lines: -### - You can remove these files in conf/. -### - Remove the section "BACKUP THE PHP-FPM CONFIGURATION" in the backup script -### - Remove also the section "REMOVE PHP-FPM CONFIGURATION" in the remove script -### - As well as the section "RESTORE THE PHP-FPM CONFIGURATION" in the restore script -### with the reload at the end of the script. -### - And the section "PHP-FPM CONFIGURATION" in the upgrade script -### But wait : This should have been handled by our app generator ;) -{% endif -%} - -ynh_script_progression --message="Adding {{php_version}} configurations related to $app..." --weight=1 -# Create a dedicated PHP-FPM config using the conf/php-fpm.conf or conf/extra_php-fpm.conf -ynh_add_fpm_config -{% endif -%} +ynh_script_progression --message="Adding system configurations related to $app..." - -{% if use_php -%} - - {% if version == "tutorial" -%} -### `ynh_add_fpm_config` is used to set up a PHP config. -### You can remove it if your app doesn't use PHP. -### `ynh_add_fpm_config` will use the files conf/php-fpm.conf -### If you're not using these lines: -### - You can remove these files in conf/. -### - Remove the section "BACKUP THE PHP-FPM CONFIGURATION" in the backup script -### - Remove also the section "REMOVE PHP-FPM CONFIGURATION" in the remove script -### - As well as the section "RESTORE THE PHP-FPM CONFIGURATION" in the restore script -### with the reload at the end of the script. -### - And the section "PHP-FPM CONFIGURATION" in the upgrade script - {% endif -%} - -ynh_script_progression --message="Adding {{php_version}} configurations related to $app..." --weight=1 -# Create a dedicated PHP-FPM config using the conf/php-fpm.conf or conf/extra_php-fpm.conf +{% if data.main_technology == "php" -%} +# Create a dedicated PHP-FPM config +# conf/extra_php-fpm.conf will be appended to the auto-generated config, which will go in /etc/php/X.Y/fpm/pool.d/ ynh_add_fpm_config -{% endif -%} +{% endif %} # Create a dedicated NGINX config using the conf/nginx.conf template ynh_add_nginx_config -{% if parameters["use_systemd_service"] -%} - {% if version == "tutorial" -%} -### `ynh_systemd_config` is used to configure a systemd script for an app. -### It can be used for apps that use sysvinit (with adaptation) or systemd. -### Have a look at the app to be sure this app needs a systemd script. -### `ynh_systemd_config` will use the file conf/systemd.service -### If you're not using these lines: -### - You can remove those files in conf/. -### - Remove the section "BACKUP SYSTEMD" in the backup script -### - Remove also the section "STOP AND REMOVE SERVICE" in the remove script -### - As well as the section "RESTORE SYSTEMD" in the restore script -### - And the section "SETUP SYSTEMD" in the upgrade script - {% endif -%} - +{% if data.main_technology not in ["php", "none"] -%} +{% if data.generator_mode == 'tutorial' -%} +### `ynh_systemd_config` is used to configure a systemd script for an app, using the conf/systemd.service template +{% endif %} # Create a dedicated systemd config ynh_add_systemd_config - {% if version == "tutorial" -%} +{% if data.generator_mode == 'tutorial' -%} ### `yunohost service add` integrates a service in YunoHost. It then gets ### displayed in the admin interface and through the others `yunohost service` commands. -### (N.B.: this line only makes sense if the app adds a service to the system!) -### If you're not using these lines: -### - You can remove these files in conf/. -### - Remove the section "REMOVE SERVICE INTEGRATION IN YUNOHOST" in the remove script -### - As well as the section "INTEGRATE SERVICE IN YUNOHOST" in the restore script -### - And the section "INTEGRATE SERVICE IN YUNOHOST" in the upgrade script - {% endif -%} +{% endif %} -yunohost service add $app --description="{{ parameters['systemd_service_description'] }}" --log="/var/log/$app/$app.log" +yunohost service add $app --log="/var/log/$app/$app.log" - {% if version == "tutorial" -%} +{% if data.generator_mode == 'tutorial' -%} ### Additional options starting with 3.8: ### ### --needs_exposed_ports "$port" a list of ports that needs to be publicly exposed @@ -163,43 +114,35 @@ yunohost service add $app --description="{{ parameters['systemd_service_descript ### to proceed if you later realize that you need to enable some flags that ### weren't enabled on old installs (be careful it'll override the existing ### service though so you should re-provide all relevant flags when doing so) - -### `ynh_use_logrotate` is used to configure a logrotate configuration for the logs of this app. -### Use this helper only if there is effectively a log file for this app. -### If you're not using this helper: -### - Remove the section "BACKUP LOGROTATE" in the backup script -### - Remove also the section "REMOVE LOGROTATE CONFIGURATION" in the remove script -### - As well as the section "RESTORE THE LOGROTATE CONFIGURATION" in the restore script -### - And the section "SETUP LOGROTATE" in the upgrade script - {% endif -%} {% endif -%} +{% endif %} +{% if data.use_logrotate %} # Use logrotate to manage application logfile(s) ynh_use_logrotate +{% endif %} -{% if parameters["use_fail2ban"] -%} +{% if data.use_fail2ban -%} # Create a dedicated Fail2Ban config -ynh_add_fail2ban_config --logpath="/var/log/nginx/${domain}-error.log" --failregex="{{ parameters['fail2ban_regex'] }}" -{% endif -%} +ynh_add_fail2ban_config --logpath="/var/log/nginx/${domain}-error.log" --failregex="{{ data.fail2ban_regex }}" +{% endif %} -{% if parameters["use_cron"] -%} -#================================================= -# ADD A CRON JOB -#================================================= +{% if data.use_cron -%} +# Add cron job cron_path="/etc/cron.d/$app" ynh_add_config --template="../conf/task.cron" --destination="$cron_path" chown root: "$cron_path" chmod 644 "$cron_path" -{% endif -%} +{% endif %} #================================================= # APP INITIAL CONFIGURATION #================================================= # ADD A CONFIGURATION #================================================= -ynh_script_progression --message="Adding a configuration file..." --weight=1 +ynh_script_progression --message="Adding app's configuration file..." -{% if version == "tutorial" -%} +{% if data.generator_mode == 'tutorial' -%} ### You can add specific configuration files. ### ### Typically, put your template conf file in ../conf/your_config_file @@ -211,73 +154,60 @@ ynh_script_progression --message="Adding a configuration file..." --weight=1 ### if it's found that the file was manually modified ### ### Check the documentation of `ynh_add_config` for more info. -{% endif -%} +{% endif %} -ynh_add_config --template="{{ parameters['custom_config_file'] }}" --destination="$install_dir/{{ parameters['custom_config_file'] }}" +ynh_add_config --template="{{ data.custom_config_file }}" --destination="$install_dir/{{ data.custom_config_file }}" # FIXME: this should be handled by the core in the future # You may need to use chmod 600 instead of 400, # for example if the app is expected to be able to modify its own config -chmod 400 "$install_dir/{{ parameters['custom_config_file'] }}" -chown $app:$app "$install_dir/{{ parameters['custom_config_file'] }}" +chmod 400 "$install_dir/{{ data.custom_config_file }}" +chown $app:$app "$install_dir/{{ data.custom_config_file }}" +{% if data.generator_mode == 'tutorial' -%} ### For more complex cases where you want to replace stuff using regexes, ### you shoud rely on ynh_replace_string (which is basically a wrapper for sed) ### When doing so, you also need to manually call ynh_store_file_checksum ### ### ynh_replace_string --match_string="match_string" --replace_string="replace_string" --target_file="$install_dir/some_config_file" ### ynh_store_file_checksum --file="$install_dir/some_config_file" +{% endif %} -{% if parameters["use_nodejs_needs_yarn"] -%} +{% if data.install_snippet -%} #================================================= -# INSTALL YARN +# INSTALL APP #================================================= -ynh_script_progression --message="Installing yarn dependency..." --weight=15 +ynh_script_progression --message="Installing app..." --weight=5 pushd $install_dir - ynh_use_nodejs - ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH yarn install +{{ data.install_snippet }} popd -{% endif -%} +{% endif %} #================================================= -# SETUP APPLICATION WITH CURL +# FINALIZE APP INSTALL WITH CURL #================================================= -{% if version == "tutorial" -%} +{% if data.generator_mode == 'tutorial' -%} ### Use these lines only if the app installation needs to be finalized through ### web forms. We generally don't want to ask the final user, ### so we're going to use curl to automatically fill the fields and submit the ### forms. -{% endif -%} +{% endif %} -#### TODO in Yunohost App Generator -# Installation with curl -ynh_script_progression --message="Finalizing installation..." --weight=1 -ynh_local_curl "/INSTALL_PATH" "key1=value1" "key2=value2" "key3=value3" +# REMOVEME? ynh_script_progression --message="Finalizing installation..." +# REMOVEME? ynh_local_curl "/INSTALL_PATH" "key1=value1" "key2=value2" "key3=value3" +{% if data.main_technology not in ["php", "none"] -%} #================================================= -# GENERIC FINALIZATION -#================================================= -{% if parameters["use_systemd_service"] -%} # START SYSTEMD SERVICE #================================================= -ynh_script_progression --message="Starting a systemd service..." --weight=1 - - -{% if version == "tutorial" -%} -### `ynh_systemd_action` is used to start a systemd service for an app. -### Only needed if you have configure a systemd service -### If you're not using these lines: -### - Remove the section "STOP SYSTEMD SERVICE" and "START SYSTEMD SERVICE" in the backup script -### - As well as the section "START SYSTEMD SERVICE" in the restore script -### - As well as the section"STOP SYSTEMD SERVICE" and "START SYSTEMD SERVICE" in the upgrade script -### - And the section "STOP SYSTEMD SERVICE" and "START SYSTEMD SERVICE" in the change_url script -{% endif -%} +ynh_script_progression --message="Starting app's systemd service..." # Start a systemd service ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" -{% endif -%} +{% endif %} + #================================================= # END OF SCRIPT #================================================= diff --git a/tools/app_generator/templates/manifest.j2 b/tools/app_generator/templates/manifest.j2 index 54b7bf4453..244c035ef0 100644 --- a/tools/app_generator/templates/manifest.j2 +++ b/tools/app_generator/templates/manifest.j2 @@ -1,101 +1,93 @@ packaging_format = 2 -id = "{{ parameters['app_id'] }}" -name = "{{ parameters['app_name'] }}" +id = "{{ data.app_id }}" +name = "{{ data.app_name }}" -{% if parameters['tutorial'] -%} -{% endif -%} - - -description.en = "{{ parameters['description_en'] }}" -description.fr = "{{ parameters['description_fr'] }}" +description.en = "{{ data.description_en }}" +description.fr = "{{ data.description_fr }}" -version = "{{ parameters['version'] }}" +version = "{{ data.version }}" -maintainers = ["{{ parameters['maintainers'] }}"] +{% if data.maintainers -%} +maintainers = ["{{ data.maintainers }}"] +{%- endif %} [upstream] -# NB: Only the "license" key is mandatory. Remove entries for which there's no relevant data -license = "{{ parameters['license'] }}" -website = "{{ parameters['website'] }}" -demo = "{{ parameters['demo'] }}" -admindoc = "{{ parameters['admindoc'] }}" -userdoc = "{{ parameters['userdoc'] }}" -code = "{{ parameters['code'] }}" -# FIXME: optional but recommended if relevant, this is meant to contain the Common Platform Enumeration, which is sort of a standard id for applications defined by the NIST. In particular, YunoHost may use this is in the future to easily track CVE (=security reports) related to apps. The CPE may be obtained by searching here: https://nvd.nist.gov/products/cpe/search. For example, for Nextcloud, the CPE is 'cpe:2.3:a:nextcloud:nextcloud' (no need to include the version number) -cpe = "???" -# FIXME: optional but recommended (or remove if irrelevant / not applicable). This is meant to be an URL where people can financially support this app, especially when its development is based on volunteers and/or financed by its community. YunoHost may later advertise it in the webadmin. -fund = "???" - +license = "{{ data.license }}" +{% if data.website -%}website = "{{ data.website }}"{%- endif %} +{% if data.demo -%}demo = "{{ data.demo }}"{%- endif %} +{% if data.admindoc -%}admindoc = "{{ data.admindoc }}"{%- endif %} +{% if data.userdoc -%}userdoc = "{{ data.userdoc }}"{%- endif %} +{% if data.code -%}code = "{{ data.code }}"{%- endif %} [integration] -{% if parameters['yunohost_required_version'] -%} -yunohost = '>= {{ parameters['yunohost_required_version'] }}' -{% else -%} -yunohost = ">= 11.1.21" -{% endif -%} - -{% if parameters['tutorial'] -%} +yunohost = '>= {{ data.yunohost_required_version or '11.2'}}' +{% if data.generator_mode == "tutorial" -%} # List of supported archs using the dpkg --print-architecture nomenclature (amd64/i386/armhf/arm64), for example: ["amd64", "i386'] {% endif -%} -architectures = "{{ parameters['architectures'] }}" # TODO : handle the "all" option (no ["all"]) -multi_instance = {{% if parameters['multi_instance'] -%} true {% else -%} false {% endif -%} -ldap = "{{ parameters['ldap'] }}" -sso = "{{ parameters['sso'] }}" +architectures = "{{ data.architectures }}" # TODO : handle the "all" option (no ["all"]) +multi_instance = {% if data.multi_instance -%} true {% else -%} false {% endif -%} +ldap = "{{ data.ldap }}" # TODO : fixme, use actual booleans + handle the "not_relevant" value +sso = "{{ data.sso }}" # FIXME: replace with an **estimate** minimum disk and RAM requirements. e.g. 20M, 400M, 1G... You may have have a look at CI results disk = "50M" ram.build = "50M" ram.runtime = "50M" [install] + + {% if data.domain_and_path != "false" -%} [install.domain] - {% if parameters['tutorial'] -%} + {% if data.generator_mode == "tutorial" -%} # this is a generic question - ask strings are automatically handled by YunoHost's core {% endif -%} type = "domain" - {% if not parameters['use_whole_domain'] -%} + {% if data.domain_and_path != "full_domain" -%} [install.path] - {% if parameters['tutorial'] -%} + {% if data.generator_mode == "tutorial" -%} # this is a generic question - ask strings are automatically handled by YunoHost's core {% endif -%} type = "path" default = "/example" {% endif -%} + {% endif %} + {% if data.init_main_permission -%} [install.init_main_permission] + {% if data.generator_mode == "tutorial" -%} # this is a generic question - ask strings are automatically handled by YunoHost's core # This won't be saved as setting and will instead be used to initialize the SSOwat permission + {% endif -%} type = "group" - default = "{{ parameters['visibility'] }}" + default = "visitors" + {% endif %} + {% if data.language != "_" -%} [install.language] ask.en = "Choose the application language" ask.fr = "Choisissez la langue de l'application" type = "select" - choices = {{ parameters['language'] |safe }} - default = "{{ parameters['default_language'] }}" + choices = {{ data.language |safe }} + {% endif %} - [install.admin] - {% if parameters['tutorial'] -%} + {% if data.init_admin_permission -%} + [install.init_admin_permission] + {% if data.generator_mode == "tutorial" -%} # this is a generic question - ask strings are automatically handled by YunoHost's core - type = "user" + # This won't be saved as setting and will instead be used to initialize the SSOwat permission {% endif -%} + type = "group" + default = "admins" + {% endif %} - [install.password] - {% if parameters['tutorial'] -%} - # this is a generic question - ask strings are automatically handled by YunoHost's core - # Note that user-provided passwords questions are not automatically saved as setting - {% endif -%} - help.en = "Use the help field to add an information for the admin about this question." - help.fr = "Utilisez le champ aide pour ajouter une information à l'intention de l'administrateur à propos de cette question." - type = "password" [resources] - {% if parameters['tutorial'] -%} + {% if data.generator_mode == "tutorial" -%} # See the packaging documentation for the full set # of explanation regarding the behavior and properties for each of those - {% endif -%} + # https://yunohost.org/packaging_apps_resources + {% endif %} [resources.sources] @@ -103,77 +95,79 @@ ram.runtime = "50M" # This will pre-fetch the asset which can then be deployed during the install/upgrade scripts with : # ynh_setup_source --dest_dir="$install_dir" # You can also define other assets than "main" and add --source_id="foobar" in the previous command - url = "{{parameters['source_url']}}" - sha256 = "{{parameters['sha256sum']}}" + url = "{{data.source_url}}" + sha256 = "{{data.sha256sum}}" # These infos are used by https://github.com/YunoHost/apps/blob/master/tools/autoupdate_app_sources/autoupdate_app_sources.py # to auto-update the previous asset urls and sha256sum + manifest version # assuming the upstream's code repo is on github and relies on tags or releases # See the 'sources' resource documentation for more details - {% if parameters['auto_update'] -%} + {% if data.auto_update -%} autoupdate.strategy = "latest_github_tag" {% else -%} # autoupdate.strategy = "latest_github_tag" - {% endif -%} + {% endif %} + {% if data.system_user -%} [resources.system_user] - {% if parameters['tutorial'] -%} + {% if data.generator_mode == "tutorial" -%} # This will provision/deprovision a unix system user - {% endif -%} + {%- endif -%} + {%- endif %} + {% if data.install_dir -%} [resources.install_dir] - {% if parameters['tutorial'] -%} + {% if data.generator_mode == "tutorial" -%} # This will create/remove the install dir as /var/www/$app # and store the corresponding setting $install_dir - {% endif -%} + {%- endif -%} + {%- endif %} - {% if parameters['data_dir'] %} + {% if data.data_dir -%} [resources.data_dir] - {% if parameters['tutorial'] -%} + {% if data.generator_mode == "tutorial" -%} # This will create/remove the data dir as /home/yunohost.app/$app # and store the corresponding setting $data_dir - {% endif -%} - {% if parameters['data_subdirs'] -%} - subdirs = {{ parameters['data_subdirs'].split(",") |safe}} - {% endif -%} - {% endif -%} + {%- endif -%} + {%- endif %} [resources.permissions] - {% if parameters['tutorial'] -%} + {% if data.generator_mode == "tutorial" -%} # This will configure SSOwat permission for $domain/$path/ # The initial allowed group of user is configured via the init_main_permission question (public=visitors, private=all_users) {% endif -%} main.url = "/" + {% if data.main_technology not in ['none', 'php'] -%} [resources.ports] - {% if parameters['tutorial'] -%} + {% if data.generator_mode == "tutorial" -%} # This will pick a random port for reverse-proxying and store it as the $port setting {% endif -%} + {%- endif %} - {% if parameters['dependencies'] or parameters['use_nodejs_needs_yarn'] -%} + {%- if data.apt_dependencies or data.use_yarn -%} [resources.apt] - {% if parameters['tutorial'] -%} + {% if data.generator_mode == "tutorial" -%} # This will automatically install/uninstall the following apt packages # and implicitly define the $phpversion setting as 8.0 (if phpX.Y-foobar dependencies are listed) {% endif -%} - packages = "{{ parameters['dependencies'] }} {% if parameters['use_db'] != 'false' -%} {{ parameters['use_db'] }} {% endif -%} {% if parameters['use_python'] -%} python3-venv {% endif -%}" - {% endif -%} + packages = "{{ data.apt_dependencies }} {% if data.database == 'mysql' -%} mariadb-server {% elif data.database == 'postgresql' %} postgresql {% endif -%} {% if data.main_technology == 'python' -%} python3 python3-venv {% endif -%}" + {%- endif %} - {% if parameters['tutorial'] -%} - {% if parameters['use_nodejs_needs_yarn'] -%} + {%- if data.use_nodejs_needs_yarn -%} + {% if data.generator_mode == "tutorial" -%} # This will configure an extra repository to install yarn dependency + {% endif -%} extras.yarn.repo = "deb https://dl.yarnpkg.com/debian/ stable main" extras.yarn.key = "https://dl.yarnpkg.com/debian/pubkey.gpg" extras.yarn.packages = "yarn" - {% endif -%} - {% endif -%} + {%- endif %} - {% if parameters['use_db'] != 'false' -%} + {%- if data.database != 'false' -%} [resources.database] - {% if parameters['tutorial'] -%} + {% if data.generator_mode == "tutorial" -%} # This will automatically provision/deprovison a database and store the corresponding credentials in settings $db_user, $db_name, $db_pwd - {% endif -%} - type = "{{ parameters['use_db'] }}" {% endif -%} - + type = "{{ data.database }}" + {%- endif -%} diff --git a/tools/app_generator/templates/nginx.j2 b/tools/app_generator/templates/nginx.j2 new file mode 100644 index 0000000000..66124e28af --- /dev/null +++ b/tools/app_generator/templates/nginx.j2 @@ -0,0 +1,35 @@ +#sub_path_only rewrite ^__PATH__$ __PATH__/ permanent; +location __PATH__/ { + +{% if data.main_technology in ["none", "php"] %} + # Path to source + alias __INSTALL_DIR__/; +{% endif %} + + client_max_body_size 10M; + +{% if data.main_technology == "php" %} + try_files $uri $uri/ index.php; + location ~ [^/]\.php(/|$) { + fastcgi_split_path_info ^(.+?\.php)(/.*)$; + fastcgi_pass unix:/var/run/php/php__PHPVERSION__-fpm-__NAME__.sock; + + fastcgi_index index.php; + include fastcgi_params; + fastcgi_param REMOTE_USER $remote_user; + fastcgi_param PATH_INFO $fastcgi_path_info; + fastcgi_param SCRIPT_FILENAME $request_filename; + } +{% elif data.main_technology not in ["php", "none"] %} + proxy_pass http://127.0.0.1:__PORT__; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + + # preserve client IP + proxy_set_header X-Forwarded-For $remote_addr; +{% endif %} + + # Include SSOWAT user panel's shortcut tile. + include conf.d/yunohost_panel.conf.inc; +} diff --git a/tools/app_generator/templates/remove.j2 b/tools/app_generator/templates/remove.j2 index c9cd966c2d..82c423691e 100644 --- a/tools/app_generator/templates/remove.j2 +++ b/tools/app_generator/templates/remove.j2 @@ -1,9 +1,10 @@ #!/bin/bash -#### App file generated with YoloGen, the YunoHost app generator, version {{ parameters['GENERATOR_VERSION'] }}. -{% if parameters["tutorial"] -%} # This is the tutorial version of the app. + +{% if data.generator_mode == 'tutorial' -%} # This is the tutorial version of the app. # It contains extra commands to explain what should be done in case you want to adjust some part of the script. # Once you are done, you may remove them. -{% endif -%} +{% endif %} + #================================================= # GENERIC START #================================================= @@ -12,7 +13,7 @@ source _common.sh source /usr/share/yunohost/helpers -{% if parameters["tutorial"] -%} +{% if data.generator_mode == 'tutorial' -%} # Settings are automatically loaded as bash variables # in every app script context, therefore typically these will exist: # - $domain @@ -25,50 +26,48 @@ source /usr/share/yunohost/helpers # For remove operations : # - the core will deprovision every resource defined in the manifest **after** this script is ran # this includes removing the install directory, and data directory (if --purge was used) -{% endif -%} +{% endif %} #================================================= # REMOVE SYSTEM CONFIGURATIONS #================================================= # REMOVE SYSTEMD SERVICE #================================================= -ynh_script_progression --message="Removing system configurations related to $app..." --weight=1 +ynh_script_progression --message="Removing system configurations related to $app..." -{% if parameters["tutorial"] -%} +{% if data.generator_mode == 'tutorial' -%} # This should be a symetric version of what happens in the install script -{% endif -%} +{% endif %} -{% if parameters["use_systemd_service"] -%} +{% if data.main_technology not in ["php", "none"] -%} # Remove the service from the list of services known by YunoHost (added from `yunohost service add`) if ynh_exec_warn_less yunohost service status $app >/dev/null then - ynh_script_progression --message="Removing $app service integration..." --weight=1 + ynh_script_progression --message="Removing $app service integration..." yunohost service remove $app fi ynh_remove_systemd_config -{% endif -%} +{% endif %} ynh_remove_nginx_config -{% if parameters["use_php"] -%} +{% if data.main_technology == "php" -%} ynh_remove_fpm_config -{% endif -%} +{% endif %} -{% if parameters["use_logrotate"] -%} +{% if data.use_logrotate -%} ynh_remove_logrotate -{% endif -%} +{% endif %} -{% if parameters["use_fail2ban"] -%} +{% if data.use_fail2ban -%} ynh_remove_fail2ban_config -{% endif -%} +{% endif %} # Remove other various files specific to the app... such as : -{% if parameters["use_cron"] -%} +{% if data.use_cron -%} ynh_secure_remove --file="/etc/cron.d/$app" -{% endif -%} - -ynh_secure_remove --file="/etc/$app" +{% endif %} ynh_secure_remove --file="/var/log/$app" diff --git a/tools/app_generator/templates/restore.j2 b/tools/app_generator/templates/restore.j2 index 5ecef1f17c..b039e8b1d1 100644 --- a/tools/app_generator/templates/restore.j2 +++ b/tools/app_generator/templates/restore.j2 @@ -1,9 +1,10 @@ #!/bin/bash -#### App file generated with YoloGen, the YunoHost app generator, version {{ parameters['GENERATOR_VERSION'] }}. -{% if parameters["tutorial"] -%} # This is the tutorial version of the app. + +{% if data.generator_mode == 'tutorial' -%} # This is the tutorial version of the app. # It contains extra commands to explain what should be done in case you want to adjust some part of the script. # Once you are done, you may remove them. -{% endif -%} +{% endif %} + #================================================= # GENERIC START #================================================= @@ -14,6 +15,7 @@ source ../settings/scripts/_common.sh source /usr/share/yunohost/helpers +{% if data.install_dir %} #================================================= # RESTORE THE APP MAIN DIR #================================================= @@ -21,14 +23,15 @@ ynh_script_progression --message="Restoring the app main directory..." --weight= ynh_restore_file --origin_path="$install_dir" -{% if parameters["tutorial"] -%} +{% if data.generator_mode == 'tutorial' -%} # $install_dir will automatically be initialized with some decent # permission by default ... however, you may need to recursively reapply # ownership to all files such as after the ynh_setup_source step -{% endif -%} +{% endif %} chown -R $app:www-data "$install_dir" +{% endif %} -{% if parameters["data_dir"] -%} +{% if data.data_dir -%} #================================================= # RESTORE THE DATA DIRECTORY #================================================= @@ -38,73 +41,72 @@ ynh_restore_file --origin_path="$data_dir" --not_mandatory # (Same as for install dir) chown -R $app:www-data "$data_dir" -{% endif -%} +{% endif %} -{% if parameters["use_db"] -%} +{% if data.database -%} #================================================= # RESTORE THE MYSQL DATABASE #================================================= - {% if parameters["use_db"] == 'mysql' -%} +{% if data.datase == 'mysql' -%} ynh_script_progression --message="Restoring the MySQL database..." --weight=1 ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < ./db.sql - {% endif -%} +{% endif %} - {% if parameters["use_db"] == 'postgresql' -%} +{% if data.database == 'postgresql' -%} ynh_script_progression --message="Restoring the PostgreSQL database..." --weight=1 ynh_psql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < ./db.sql - {% endif -%} -{% endif -%} +{% endif %} +{% endif %} + #================================================= # RESTORE SYSTEM CONFIGURATIONS #================================================= -# RESTORE THE PHP-FPM CONFIGURATION -#================================================= ynh_script_progression --message="Restoring system configurations related to $app..." --weight=1 # This should be a symetric version of what happens in the install script -{% if parameters["use_php"] -%} +{% if data.main_technology == "php" -%} ynh_restore_file --origin_path="/etc/php/$phpversion/fpm/pool.d/$app.conf" -{% endif -%} +{% endif %} ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" -{% if parameters["use_systemd_service"] -%} +{% if data.main_technology not in ["php", "none"] -%} ynh_restore_file --origin_path="/etc/systemd/system/$app.service" systemctl enable $app.service --quiet -yunohost service add $app --description="{{ parameters['systemd_service_description'] }}" --log="/var/log/$app/$app.log" -{% endif -%} +yunohost service add $app --log="/var/log/$app/$app.log" +{% endif %} -{% if parameters["use_logrotate"] -%} +{% if data.use_logrotate -%} ynh_restore_file --origin_path="/etc/logrotate.d/$app" -{% endif -%} -{% if parameters["use_fail2ban"] -%} +{% endif %} + +{% if data.use_fail2ban -%} ynh_restore_file --origin_path="/etc/fail2ban/jail.d/$app.conf" ynh_restore_file --origin_path="/etc/fail2ban/filter.d/$app.conf" ynh_systemd_action --action=restart --service_name=fail2ban -{% endif -%} -# Other various files... +{% endif %} +# Other various files... +{% if data.use_cron -%} ynh_restore_file --origin_path="/etc/cron.d/$app" -ynh_restore_file --origin_path="/etc/$app/" +{% endif %} -#================================================= -# GENERIC FINALIZATION #================================================= # RELOAD NGINX AND PHP-FPM OR THE APP SERVICE #================================================= ynh_script_progression --message="Reloading NGINX web server and $app's service..." --weight=1 # Typically you only have either $app or php-fpm but not both at the same time... -{% if parameters["use_systemd_service"] -%} +{% if data.main_technology not in ["php", "none"] -%} ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" -{% endif -%} -{% if parameters["use_php"] -%} +{% endif %} +{% if data.main_technology == "php" -%} ynh_systemd_action --service_name=php$phpversion-fpm --action=reload -{% endif -%} +{% endif %} ynh_systemd_action --service_name=nginx --action=reload diff --git a/tools/app_generator/templates/systemd.j2 b/tools/app_generator/templates/systemd.j2 new file mode 100644 index 0000000000..ff53a24d54 --- /dev/null +++ b/tools/app_generator/templates/systemd.j2 @@ -0,0 +1,54 @@ +[Unit] +Description=Service for {{ data.app_name }} (__APP__) +After=network.target + +[Service] +Type=simple +User=__APP__ +Group=__APP__ +{% if data.custom_config_file == ".env" %} +EnvironmentFile=__INSTALL_DIR__/.env +{% endif %} +WorkingDirectory=__INSTALL_DIR__/ +ExecStart={{ data.systemd_execstart }} +StandardOutput=append:/var/log/__APP__/__APP__.log +StandardError=inherit +Restart=on-failure +RestartSec=10 + +# Sandboxing options to harden security +# Depending on specificities of your service/app, you may need to tweak these +# .. but this should be a good baseline +# Details for these options: https://www.freedesktop.org/software/systemd/man/systemd.exec.html +NoNewPrivileges=yes +PrivateTmp=yes +PrivateDevices=yes +RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 AF_NETLINK +RestrictNamespaces=yes +RestrictRealtime=yes +DevicePolicy=closed +ProtectClock=yes +ProtectHostname=yes +ProtectProc=invisible +ProtectSystem=full +ProtectControlGroups=yes +ProtectKernelModules=yes +ProtectKernelTunables=yes +LockPersonality=yes +SystemCallArchitectures=native +SystemCallFilter=~@clock @debug @module @mount @obsolete @reboot @setuid @swap @cpu-emulation @privileged + +# Denying access to capabilities that should not be relevant for webapps +# Doc: https://man7.org/linux/man-pages/man7/capabilities.7.html +CapabilityBoundingSet=~CAP_RAWIO CAP_MKNOD +CapabilityBoundingSet=~CAP_AUDIT_CONTROL CAP_AUDIT_READ CAP_AUDIT_WRITE +CapabilityBoundingSet=~CAP_SYS_BOOT CAP_SYS_TIME CAP_SYS_MODULE CAP_SYS_PACCT +CapabilityBoundingSet=~CAP_LEASE CAP_LINUX_IMMUTABLE CAP_IPC_LOCK +CapabilityBoundingSet=~CAP_BLOCK_SUSPEND CAP_WAKE_ALARM +CapabilityBoundingSet=~CAP_SYS_TTY_CONFIG +CapabilityBoundingSet=~CAP_MAC_ADMIN CAP_MAC_OVERRIDE +CapabilityBoundingSet=~CAP_NET_ADMIN CAP_NET_BROADCAST CAP_NET_RAW +CapabilityBoundingSet=~CAP_SYS_ADMIN CAP_SYS_PTRACE CAP_SYSLOG + +[Install] +WantedBy=multi-user.target diff --git a/tools/app_generator/templates/upgrade.j2 b/tools/app_generator/templates/upgrade.j2 index 4e001ca15b..8802ab424b 100644 --- a/tools/app_generator/templates/upgrade.j2 +++ b/tools/app_generator/templates/upgrade.j2 @@ -1,9 +1,10 @@ #!/bin/bash -#### App file generated with YoloGen, the YunoHost app generator, version {{ parameters['GENERATOR_VERSION'] }}. -{% if parameters["tutorial"] -%} # This is the tutorial version of the app. + +{% if data.generator_mode == 'tutorial' -%} # This is the tutorial version of the app. # It contains extra commands to explain what should be done in case you want to adjust some part of the script. # Once you are done, you may remove them. -{% endif -%} +{% endif %} + #================================================= # GENERIC START #================================================= @@ -13,7 +14,7 @@ source _common.sh source /usr/share/yunohost/helpers -{% if parameters["tutorial"] -%} +{% if data.generator_mode == 'tutorial' -%} # Settings are automatically loaded as bash variables # in every app script context, therefore typically these will exist: # - $domain @@ -33,7 +34,7 @@ source /usr/share/yunohost/helpers ### - UPGRADE_PACKAGE if only the YunoHost package has changed ### ynh_check_app_version_changed will stop the upgrade if the app is up to date. ### UPGRADE_APP should be used to upgrade the core app only if there's an upgrade to do. -{% endif -%} +{% endif %} upgrade_type=$(ynh_check_app_version_changed) #================================================= @@ -41,8 +42,8 @@ upgrade_type=$(ynh_check_app_version_changed) #================================================= # ENSURE DOWNWARD COMPATIBILITY #================================================= -{% if parameters["tutorial"] -%} -#ynh_script_progression --message="Ensuring downward compatibility..." --weight=1 +{% if data.generator_mode == 'tutorial' -%} +#ynh_script_progression --message="Ensuring downward compatibility..." # # N.B. : the followings setting migrations snippets are provided as *EXAMPLES* @@ -51,26 +52,27 @@ upgrade_type=$(ynh_check_app_version_changed) # # If db_name doesn't exist, create it -#if [ -z "$db_name" ]; then +#if [ -z "${db_name:-}" ]; then # db_name=$(ynh_sanitize_dbid --db_name=$app) # ynh_app_setting_set --app=$app --key=db_name --value=$db_name #fi # If install_dir doesn't exist, create it -#if [ -z "$install_dir" ]; then +#if [ -z "${install_dir:-}" ]; then # install_dir=/var/www/$app # ynh_app_setting_set --app=$app --key=install_dir --value=$install_dir #fi -{% endif -%} +{% endif %} -{% if parameters["use_systemd_service"] -%} +{% if data.main_technology not in ["php", "none"] -%} #================================================= # STOP SYSTEMD SERVICE #================================================= -ynh_script_progression --message="Stopping a systemd service..." --weight=1 +ynh_script_progression --message="Stopping a systemd service..." ynh_systemd_action --service_name=$app --action="stop" --log_path="/var/log/$app/$app.log" -{% endif -%} +{% endif %} + #================================================= # "REBUILD" THE APP (DEPLOY NEW SOURCES, RERUN NPM BUILD...) #================================================= @@ -79,100 +81,98 @@ ynh_systemd_action --service_name=$app --action="stop" --log_path="/var/log/$app if [ "$upgrade_type" == "UPGRADE_APP" ] then - ynh_script_progression --message="Upgrading source files..." --weight=1 + ynh_script_progression --message="Upgrading source files..." # Download, check integrity, uncompress and patch the source from app.src ynh_setup_source --dest_dir="$install_dir" fi -{% if parameters["tutorial"] -%} +{% if data.generator_mode == 'tutorial' -%} # $install_dir will automatically be initialized with some decent # permission by default ... however, you may need to recursively reapply # ownership to all files such as after the ynh_setup_source step -{% endif -%} +{% endif %} chown -R $app:www-data "$install_dir" #================================================= # REAPPLY SYSTEM CONFIGURATIONS #================================================= -ynh_script_progression --message="Upgrading system configurations related to $app..." --weight=1 +ynh_script_progression --message="Upgrading system configurations related to $app..." -{% if parameters["tutorial"] -%} +{% if data.generator_mode == 'tutorial' -%} # This should be a literal copypasta of what happened in the install's "System configuration" section -{% endif -%} +{% endif %} -{% if parameters["use_php"] -%} +{% if data.main_technology == "php" -%} ynh_add_fpm_config -{% endif -%} +{% endif %} ynh_add_nginx_config -{% if parameters["use_systemd_service"] -%} +{% if data.main_technology not in ["php", "none"] -%} ynh_add_systemd_config -yunohost service add $app --description="{{ parameters['systemd_service_description'] }}" --log="/var/log/$app/$app.log" -{% endif -%} +yunohost service add $app --log="/var/log/$app/$app.log" +{% endif %} -{% if parameters["use_logrotate"] -%} +{% if data.use_logrotate -%} ynh_use_logrotate --non-append -{% endif -%} +{% endif %} -{% if parameters["use_fail2ban"] -%} +{% if data.use_fail2ban -%} # Create a dedicated Fail2Ban config -ynh_add_fail2ban_config --logpath="/var/log/nginx/${domain}-error.log" --failregex="{{ parameters['fail2ban_regex'] }}" -{% endif -%} +ynh_add_fail2ban_config --logpath="/var/log/nginx/${domain}-error.log" --failregex="{{ data.fail2ban_regex }}" +{% endif %} -{% if parameters["use_cron"] -%} -#================================================= -# UPDATE THE CRON JOB -#================================================= +{% if data.use_cron -%} cron_path="/etc/cron.d/$app" ynh_add_config --template="../conf/task.cron" --destination="$cron_path" chown root: "$cron_path" chmod 644 "$cron_path" -{% endif -%} +{% endif %} #================================================= # RECONFIGURE THE APP (UPDATE CONF, APPLY MIGRATIONS...) #================================================= # UPDATE A CONFIG FILE #================================================= -ynh_script_progression --message="Updating a configuration file..." --weight=1 +ynh_script_progression --message="Updating a configuration file..." -{% if parameters["tutorial"] -%} +{% if data.generator_mode == 'tutorial' -%} ### Same as during install ### ### The file will automatically be backed-up if it's found to be manually modified (because ### ynh_add_config keeps track of the file's checksum) -{% endif -%} +{% endif %} -ynh_add_config --template="{{ parameters['custom_config_file'] }}" --destination="$install_dir/{{ parameters['custom_config_file'] }}" +ynh_add_config --template="{{ data.custom_config_file }}" --destination="$install_dir/{{ data.custom_config_file }}" -{% if parameters["tutorial"] -%} +{% if data.generator_mode == 'tutorial' -%} # FIXME: this should be handled by the core in the future # You may need to use chmod 600 instead of 400, # for example if the app is expected to be able to modify its own config -{% endif -%} +{% endif %} chmod 400 "$install_dir/some_config_file" chown $app:$app "$install_dir/some_config_file" -{% if parameters["tutorial"] -%} +{% if data.generator_mode == 'tutorial' -%} ### For more complex cases where you want to replace stuff using regexes, ### you shoud rely on ynh_replace_string (which is basically a wrapper for sed) ### When doing so, you also need to manually call ynh_store_file_checksum ### ### ynh_replace_string --match_string="match_string" --replace_string="replace_string" --target_file="$install_dir/some_config_file" ### ynh_store_file_checksum --file="$install_dir/some_config_file" -{% endif -%} +{% endif %} -{% if parameters["use_systemd_service"] -%} +{% if data.main_technology not in ["php", "none"] -%} #================================================= # START SYSTEMD SERVICE #================================================= -ynh_script_progression --message="Starting a systemd service..." --weight=1 +ynh_script_progression --message="Starting a systemd service..." ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" -{% endif -%} +{% endif %} + #================================================= # END OF SCRIPT #================================================= From f80fd234cc563b68fb4662bf2e9ad7ad19265b1d Mon Sep 17 00:00:00 2001 From: lapineige Date: Sun, 25 Feb 2024 14:32:18 +0100 Subject: [PATCH 121/292] v0.8.1 --- tools/app_generator/app_generator.py | 126 +++++++++++++++++++++++---- 1 file changed, 107 insertions(+), 19 deletions(-) diff --git a/tools/app_generator/app_generator.py b/tools/app_generator/app_generator.py index 810d79a07c..6ab74d233d 100644 --- a/tools/app_generator/app_generator.py +++ b/tools/app_generator/app_generator.py @@ -44,6 +44,10 @@ from urllib import parse from secrets import token_urlsafe +#### GLOBAL VARIABLES +YOLOGEN_VERSION = "0.8.1" +GENERATOR_DICT = {"GENERATOR_VERSION": YOLOGEN_VERSION} + #### Create FLASK and Jinja Environments app = Flask(__name__) Bootstrap(app) @@ -114,12 +118,6 @@ class GeneralInfos(FlaskForm): ) - # TODO : - - # long descriptions that go into doc/DESCRIPTION.md - # screenshot - - class IntegrationInfos(FlaskForm): # TODO : people shouldnt have to put the ~ynh1 ? This should be added automatically when rendering the app files ? @@ -420,13 +418,73 @@ class AppConfig(FlaskForm): custom_config_file_content = TextAreaField( "Modèle de fichier de configuration de l'app", - description="Dans ce modèle, vous pouvez utilisez la syntaxe __FOOBAR__ qui sera automatiquement remplacé par la valeur de la variable $foobar", + description="Dans ce modèle, vous pouvez utilisez la syntaxe __FOO_BAR__ qui sera automatiquement remplacé par la valeur de la variable $foo_bar", validators=[Optional()], render_kw={ "spellcheck": "false" } ) +class Documentation(FlaskForm): + # TODO : # screenshot + description = TextAreaField( + Markup('''Saisissez le contenu du fichier DESCRIPTION.md.
\ + N'indiquez pas de titre du logiciel au début, car ce sera intégré dans une sous-partie "Overview" '''), + validators=[Optional()], + render_kw={ + "class": "form-control", + "spellcheck": "false", + }, + ) + disclaimer = TextAreaField( + "Saisissez le contenu du fichier DISCLAIMER.md, qui liste des avertissements et points d'attention.", + validators=[Optional()], + render_kw={ + "class": "form-control", + "spellcheck": "false", + }, + ) + pre_install = TextAreaField( + "Saisissez le contenu du fichier PRE_INSTALL.md", + validators=[Optional()], + render_kw={ + "class": "form-control", + "spellcheck": "false", + }, + ) + post_install = TextAreaField( + "Saisissez le contenu du fichier POST_INSTALL.md", + validators=[Optional()], + render_kw={ + "class": "form-control", + "spellcheck": "false", + }, + ) + pre_upgrade = TextAreaField( + "Saisissez le contenu du fichier PRE_UPGRADE.md", + validators=[Optional()], + render_kw={ + "class": "form-control", + "spellcheck": "false", + }, + ) + post_upgrade = TextAreaField( + "Saisissez le contenu du fichier POST_UPGRADE.md", + validators=[Optional()], + render_kw={ + "class": "form-control", + "spellcheck": "false", + }, + ) + admin = TextAreaField( + "Saisissez le contenu du fichier ADMIN.md", + validators=[Optional()], + render_kw={ + "class": "form-control", + "spellcheck": "false", + }, + ) + class MoreAdvanced(FlaskForm): enable_change_url = BooleanField( @@ -481,7 +539,7 @@ class MoreAdvanced(FlaskForm): ## Main form class GeneratorForm( - GeneralInfos, IntegrationInfos, UpstreamInfos, InstallQuestions, Resources, SpecificTechnology, AppConfig, MoreAdvanced + GeneralInfos, IntegrationInfos, UpstreamInfos, InstallQuestions, Resources, SpecificTechnology, AppConfig, Documentation, MoreAdvanced ): class Meta: @@ -497,6 +555,9 @@ class Meta: submit_preview = SubmitField("Prévisualiser") submit_download = SubmitField("Télécharger le .zip") + submit_demo = SubmitField('Remplir avec des valeurs de démonstration', render_kw={"onclick": "fillFormWithDefaultValues()", + "title": "Générer une application minimaliste complète et fonctionnelle à partir de laquelle itérer" + }) #### Web pages @@ -509,14 +570,19 @@ def main_form_route(): if request.method == "POST": if not main_form.validate_on_submit(): - print("not validated?") + print("Form not validated?") print(main_form.errors) return render_template( - "index.html", main_form=main_form, generated_files={} + "index.html", main_form=main_form, generator_info=GENERATOR_DICT, generated_files={} ) - submit_mode = "preview" if main_form.submit_preview.data else "download" + if main_form.submit_preview.data: + submit_mode = "preview" + elif main_form.submit_demo.data: + submit_mode = "demo" # TODO : for now this always trigger a preview. Not sure if that's an issue + else: + submit_mode = "download" class AppFile: def __init__(self, id_, destination_path=None): @@ -534,20 +600,42 @@ def __init__(self, id_, destination_path=None): AppFile("upgrade", "scripts/upgrade"), AppFile("nginx", "conf/nginx.conf"), ] - - if main_form.enable_change_url: + + if main_form.enable_change_url.data: app_files.append(AppFile("change_url", "scripts/change_url")) - if main_form.main_technology not in ["none", "php"]: + if main_form.main_technology.data not in ["none", "php"]: app_files.append(AppFile("systemd", "conf/systemd.service")) - if main_form.main_technology == "php": - app_files.append(AppFile("php", "conf/extra_php-fpm.conf")) + # TODO : buggy, tries to open php.j2 + # if main_form.main_technology.data == "php": + # app_files.append(AppFile("php", "conf/extra_php-fpm.conf")) + + if main_form.description.data: + app_files.append(AppFile("DESCRIPTION", "docs/DESCRIPTION.md")) + + if main_form.disclaimer.data: + app_files.append(AppFile("DISCLAIMER", "docs/DISCLAIMER.md")) + + if main_form.pre_install.data: + app_files.append(AppFile("PRE_INSTALL", "docs/PRE_INSTALL.md")) + + if main_form.post_install.data: + app_files.append(AppFile("POST_INSTALL", "docs/POST_INSTALL.md")) + + if main_form.pre_upgrade.data: + app_files.append(AppFile("PRE_UPGRADE", "docs/PRE_UPGRADE.md")) + + if main_form.post_upgrade.data: + app_files.append(AppFile("POST_UPGRADE", "docs/POST_UPGRADE.md")) + + if main_form.admin.data: + app_files.append(AppFile("ADMIN", "docs/ADMIN.md")) template_dir = os.path.dirname(__file__) + "/templates/" for app_file in app_files: template = open(template_dir + app_file.id + ".j2").read() - app_file.content = render_template_string(template, data=dict(request.form)) + app_file.content = render_template_string(template, data=dict(request.form | GENERATOR_DICT)) app_file.content = re.sub(r'\n\s+$', '\n', app_file.content, flags=re.M) app_file.content = re.sub(r'\n{3,}', '\n\n', app_file.content, flags=re.M) @@ -557,11 +645,11 @@ def __init__(self, id_, destination_path=None): # app_files[-1].content = main_form.custom_config_file_content # TODO : same for cron job - if submit_mode == "download": # Generate the zip file f = BytesIO() with zipfile.ZipFile(f, "w") as zf: + print("Exporting zip archive for app: " + request.form["app_id"]) for app_file in app_files: print(app_file.id) zf.writestr(app_file.destination_path, app_file.content) @@ -570,7 +658,7 @@ def __init__(self, id_, destination_path=None): return send_file(f, as_attachment=True, download_name=request.form["app_id"] + ".zip") return render_template( - "index.html", main_form=main_form, generated_files=app_files + "index.html", main_form=main_form, generator_info=GENERATOR_DICT, generated_files=app_files, ) From c55c8a7396f3a6a6b6a18c2f4b98d7ece9f9bf8a Mon Sep 17 00:00:00 2001 From: lapineige Date: Sun, 25 Feb 2024 13:33:12 +0000 Subject: [PATCH 122/292] v0.8.1 --- tools/app_generator/static/stylesheet.css | 28 +++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tools/app_generator/static/stylesheet.css b/tools/app_generator/static/stylesheet.css index 466d7c77bb..d21d076279 100644 --- a/tools/app_generator/static/stylesheet.css +++ b/tools/app_generator/static/stylesheet.css @@ -15,3 +15,31 @@ h2 { .checkbox label { font-weight: bold; } + + + +.active, .collapse-button:hover { + background-color: #318ddc; +} + +.collapse-title:after { + content: '\002B'; + color: white; + font-weight: bold; + float: right; + margin-left: 5px; +} + +.expanded .collapse-title::after { + content: "\2212"; +} + +.collapsed { + padding: 0px 15px 0px 15px; +} + +.collapsible { + max-height: 0px; + overflow: hidden; + transition: max-height 0.2s ease-out; +} \ No newline at end of file From 5fbe1c2bb53ae55b56b0c6a52efa72d80eea7855 Mon Sep 17 00:00:00 2001 From: lapineige Date: Sun, 25 Feb 2024 13:34:05 +0000 Subject: [PATCH 123/292] v0.8.1 --- tools/app_generator/templates/ADMIN.j2 | 3 + tools/app_generator/templates/DESCRIPTION.j2 | 1 + tools/app_generator/templates/DISCLAIMER.j2 | 1 + tools/app_generator/templates/POST_INSTALL.j2 | 7 + tools/app_generator/templates/POST_UPGRADE.j2 | 1 + tools/app_generator/templates/PRE_INSTALL.j2 | 1 + tools/app_generator/templates/PRE_UPGRADE.j2 | 1 + tools/app_generator/templates/backup.j2 | 3 +- tools/app_generator/templates/change_url.j2 | 1 + tools/app_generator/templates/index.html | 132 ++++++++++++++---- tools/app_generator/templates/install.j2 | 1 + tools/app_generator/templates/remove.j2 | 1 + tools/app_generator/templates/restore.j2 | 1 + tools/app_generator/templates/tests.j2 | 82 +++++++++++ tools/app_generator/templates/upgrade.j2 | 1 + 15 files changed, 208 insertions(+), 29 deletions(-) create mode 100644 tools/app_generator/templates/ADMIN.j2 create mode 100644 tools/app_generator/templates/DESCRIPTION.j2 create mode 100644 tools/app_generator/templates/DISCLAIMER.j2 create mode 100644 tools/app_generator/templates/POST_INSTALL.j2 create mode 100644 tools/app_generator/templates/POST_UPGRADE.j2 create mode 100644 tools/app_generator/templates/PRE_INSTALL.j2 create mode 100644 tools/app_generator/templates/PRE_UPGRADE.j2 create mode 100644 tools/app_generator/templates/tests.j2 diff --git a/tools/app_generator/templates/ADMIN.j2 b/tools/app_generator/templates/ADMIN.j2 new file mode 100644 index 0000000000..c9b522536f --- /dev/null +++ b/tools/app_generator/templates/ADMIN.j2 @@ -0,0 +1,3 @@ +This is a dummy admin doc for this app + +The app install dir is `__INSTALL_DIR__` diff --git a/tools/app_generator/templates/DESCRIPTION.j2 b/tools/app_generator/templates/DESCRIPTION.j2 new file mode 100644 index 0000000000..3f2e57a7c0 --- /dev/null +++ b/tools/app_generator/templates/DESCRIPTION.j2 @@ -0,0 +1 @@ +This is a dummy description of this app features diff --git a/tools/app_generator/templates/DISCLAIMER.j2 b/tools/app_generator/templates/DISCLAIMER.j2 new file mode 100644 index 0000000000..a46cd0bb8f --- /dev/null +++ b/tools/app_generator/templates/DISCLAIMER.j2 @@ -0,0 +1 @@ +This is a dummy disclaimer that will be added to the README.MD of your app. diff --git a/tools/app_generator/templates/POST_INSTALL.j2 b/tools/app_generator/templates/POST_INSTALL.j2 new file mode 100644 index 0000000000..f42358dca9 --- /dev/null +++ b/tools/app_generator/templates/POST_INSTALL.j2 @@ -0,0 +1,7 @@ +This is a dummy disclaimer to display after the install + +The app url is + +The app install dir is `__INSTALL_DIR__` + +The app id is `__ID__` diff --git a/tools/app_generator/templates/POST_UPGRADE.j2 b/tools/app_generator/templates/POST_UPGRADE.j2 new file mode 100644 index 0000000000..a58e2ae47e --- /dev/null +++ b/tools/app_generator/templates/POST_UPGRADE.j2 @@ -0,0 +1 @@ +This is a dummy disclaimer to display after upgrades diff --git a/tools/app_generator/templates/PRE_INSTALL.j2 b/tools/app_generator/templates/PRE_INSTALL.j2 new file mode 100644 index 0000000000..eb3ab3a9cc --- /dev/null +++ b/tools/app_generator/templates/PRE_INSTALL.j2 @@ -0,0 +1 @@ +This is a dummy disclaimer to display prior to the install diff --git a/tools/app_generator/templates/PRE_UPGRADE.j2 b/tools/app_generator/templates/PRE_UPGRADE.j2 new file mode 100644 index 0000000000..780fc15b73 --- /dev/null +++ b/tools/app_generator/templates/PRE_UPGRADE.j2 @@ -0,0 +1 @@ +This is a dummy disclaimer to display prior to any upgrade diff --git a/tools/app_generator/templates/backup.j2 b/tools/app_generator/templates/backup.j2 index db3c8be86f..0a5f28baa0 100644 --- a/tools/app_generator/templates/backup.j2 +++ b/tools/app_generator/templates/backup.j2 @@ -1,5 +1,6 @@ #!/bin/bash -#### App file generated with YoloGen, the YunoHost app generator, version {{ data.GENERATOR_VERSION }}. +#### App file generated with YoloGen, the YunoHost app generator, version {{ data['GENERATOR_VERSION'] }}. + {% if data.generator_mode == 'tutorial' -%} # This is the tutorial version of the app. # It contains extra commands to explain what should be done in case you want to adjust some part of the script. # Once you are done, you may remove them. diff --git a/tools/app_generator/templates/change_url.j2 b/tools/app_generator/templates/change_url.j2 index bfd0a14c42..fe196d8fde 100644 --- a/tools/app_generator/templates/change_url.j2 +++ b/tools/app_generator/templates/change_url.j2 @@ -1,4 +1,5 @@ #!/bin/bash +### App file generated with YoloGen, the Yunohost app generator, version {{ data['GENERATOR_VERSION'] }}. {% if data.generator_mode == 'tutorial' -%} # This is the tutorial version of the app. diff --git a/tools/app_generator/templates/index.html b/tools/app_generator/templates/index.html index 10a14486da..b2a4c39212 100644 --- a/tools/app_generator/templates/index.html +++ b/tools/app_generator/templates/index.html @@ -30,9 +30,11 @@ {% endblock %} + {% block content %}

Formulaire de génération d'une application Yunohost

+

Version: {{ generator_info['GENERATOR_VERSION'] }}

{{ main_form.hidden_tag() }} @@ -42,11 +44,12 @@

Formulaire de génération d'une application Yun {{ form_field(main_form.generator_mode) }} +
-
-

1/8 - Informations générales

+
+

1/9 - Informations générales

-
+

    From 00a2662dca70d66dce82df793afe305576a6c0cf Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 1 Apr 2024 03:13:07 +0200 Subject: [PATCH 083/292] wishlist: fix beatbump demo link (#2200) --- wishlist.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wishlist.toml b/wishlist.toml index 8af2a949a6..ce1c873034 100644 --- a/wishlist.toml +++ b/wishlist.toml @@ -142,7 +142,7 @@ added_date = 1702560948 # 2023/12/14 name = "Beatbump" description = "An alternative frontend for YouTube Music" upstream = "https://github.com/snuffyDev/Beatbump" -website = "https://beatbump.ml/home" +website = "https://beatbump.io/home" draft = "https://github.com/YunoHost-Apps/beatbump_ynh" added_date = 1695656621 # 2023/09/25 From 01b188cb887b353139dcc08ad212ff2d1d997c7b Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 1 Apr 2024 03:13:29 +0200 Subject: [PATCH 084/292] wishlist: fix autobd links (#2199) --- wishlist.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wishlist.toml b/wishlist.toml index ce1c873034..b12e8acc00 100644 --- a/wishlist.toml +++ b/wishlist.toml @@ -99,8 +99,8 @@ added_date = 1695656621 # 2023/09/25 [autobd] name = "AutoBD" description = "Comics creation tools" -upstream = "https://forge.aeif.fr/achampollion/autobd" -website = "https://achampollion.forge.aeif.fr/autobd/" +upstream = "https://forge.apps.education.fr/educajou/autobd" +website = "https://educajou.forge.apps.education.fr/autobd/" added_date = 1706453581 # 2024/01/28 [automatisch] From 86617093fe018cee8c39bf9c3911598fcdedb871 Mon Sep 17 00:00:00 2001 From: Weblate Date: Mon, 1 Apr 2024 03:12:41 +0200 Subject: [PATCH 085/292] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: YunoHost/store Translate-URL: https://translate.yunohost.org/projects/yunohost/apps/ --- store/translations/ar/LC_MESSAGES/messages.po | 4 ++-- .../translations/bn_BD/LC_MESSAGES/messages.po | 4 ++-- store/translations/br/LC_MESSAGES/messages.po | 4 ++-- store/translations/ca/LC_MESSAGES/messages.po | 18 ++++++++++-------- store/translations/ckb/LC_MESSAGES/messages.po | 4 ++-- store/translations/cs/LC_MESSAGES/messages.po | 4 ++-- store/translations/da/LC_MESSAGES/messages.po | 4 ++-- store/translations/de/LC_MESSAGES/messages.po | 6 ++++-- store/translations/el/LC_MESSAGES/messages.po | 4 ++-- store/translations/eo/LC_MESSAGES/messages.po | 4 ++-- store/translations/es/LC_MESSAGES/messages.po | 4 ++-- store/translations/eu/LC_MESSAGES/messages.po | 10 ++++++---- store/translations/fa/LC_MESSAGES/messages.po | 4 ++-- store/translations/fi/LC_MESSAGES/messages.po | 4 ++-- store/translations/fr/LC_MESSAGES/messages.po | 10 ++++++---- store/translations/gl/LC_MESSAGES/messages.po | 6 ++++-- store/translations/he/LC_MESSAGES/messages.po | 4 ++-- store/translations/hi/LC_MESSAGES/messages.po | 4 ++-- store/translations/hu/LC_MESSAGES/messages.po | 4 ++-- store/translations/id/LC_MESSAGES/messages.po | 4 ++-- store/translations/it/LC_MESSAGES/messages.po | 4 ++-- store/translations/ja/LC_MESSAGES/messages.po | 4 ++-- store/translations/kab/LC_MESSAGES/messages.po | 4 ++-- store/translations/ko/LC_MESSAGES/messages.po | 4 ++-- store/translations/lt/LC_MESSAGES/messages.po | 4 ++-- store/translations/mk/LC_MESSAGES/messages.po | 4 ++-- .../translations/nb_NO/LC_MESSAGES/messages.po | 4 ++-- store/translations/ne/LC_MESSAGES/messages.po | 4 ++-- store/translations/nl/LC_MESSAGES/messages.po | 4 ++-- store/translations/oc/LC_MESSAGES/messages.po | 4 ++-- store/translations/pl/LC_MESSAGES/messages.po | 4 ++-- store/translations/pt/LC_MESSAGES/messages.po | 4 ++-- .../translations/pt_BR/LC_MESSAGES/messages.po | 4 ++-- store/translations/ru/LC_MESSAGES/messages.po | 4 ++-- store/translations/sk/LC_MESSAGES/messages.po | 4 ++-- store/translations/sl/LC_MESSAGES/messages.po | 4 ++-- store/translations/sv/LC_MESSAGES/messages.po | 4 ++-- store/translations/te/LC_MESSAGES/messages.po | 4 ++-- store/translations/tr/LC_MESSAGES/messages.po | 4 ++-- store/translations/uk/LC_MESSAGES/messages.po | 4 ++-- .../zh_Hans/LC_MESSAGES/messages.po | 4 ++-- 41 files changed, 102 insertions(+), 92 deletions(-) diff --git a/store/translations/ar/LC_MESSAGES/messages.po b/store/translations/ar/LC_MESSAGES/messages.po index d0a691cd75..013c76f011 100644 --- a/store/translations/ar/LC_MESSAGES/messages.po +++ b/store/translations/ar/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:04+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: ar \n" @@ -204,7 +204,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/bn_BD/LC_MESSAGES/messages.po b/store/translations/bn_BD/LC_MESSAGES/messages.po index bbe091ca7e..1dd2830352 100644 --- a/store/translations/bn_BD/LC_MESSAGES/messages.po +++ b/store/translations/bn_BD/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:05+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: bn_BD \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/br/LC_MESSAGES/messages.po b/store/translations/br/LC_MESSAGES/messages.po index d00051798b..55b52c7aa3 100644 --- a/store/translations/br/LC_MESSAGES/messages.po +++ b/store/translations/br/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:05+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: br \n" @@ -207,7 +207,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/ca/LC_MESSAGES/messages.po b/store/translations/ca/LC_MESSAGES/messages.po index 12f546055f..1b13995904 100644 --- a/store/translations/ca/LC_MESSAGES/messages.po +++ b/store/translations/ca/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-03-23 19:04+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: Catalan you can see its page here." msgstr "" -"Una aplicació amb el nom %(slug)s ja existeix al catàleg, podeu veure la seva pàgina aquí." +"Una aplicació amb el nom %(slug)s ja existeix al catàleg, podeu veure la seva pàgina aquí." #: app.py:386 #, python-format @@ -239,7 +239,9 @@ msgid "Important infos before installing" msgstr "Informació important abans d'instal·lar" #: templates/app.html:124 -msgid "Anti-features" +#, fuzzy +#| msgid "Anti-features" +msgid "Antifeatures" msgstr "Anticaracterístiques" #: templates/app.html:125 @@ -319,8 +321,8 @@ msgid "" msgstr "" "Fet amb fent " "servir Flask i TailwindCSS" +"com'>Flask i TailwindCSS" #: templates/base.html:198 msgid "Source" @@ -431,8 +433,8 @@ msgid "" "to integrate it, and is merely a source of inspiration for packaging " "volunteers." msgstr "" -"La llista de desitjos és el lloc on les persones poden suggerir i votar col·" -"lectivament les aplicacions que els agradaria veure empaquetades i " +"La llista de desitjos és el lloc on les persones poden suggerir i votar " +"col·lectivament les aplicacions que els agradaria veure empaquetades i " "disponibles al catàleg oficial d'aplicacions de YunoHost. No obstant això, " "el fet que les aplicacions s'enumeren aquí no s'ha d'interpretar de cap " "manera com un fet que el projecte YunoHost té previst integrar-lo, i és " diff --git a/store/translations/ckb/LC_MESSAGES/messages.po b/store/translations/ckb/LC_MESSAGES/messages.po index d1341682a2..f926cedae3 100644 --- a/store/translations/ckb/LC_MESSAGES/messages.po +++ b/store/translations/ckb/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:08+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: ckb \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/cs/LC_MESSAGES/messages.po b/store/translations/cs/LC_MESSAGES/messages.po index c947abe6d3..88cee582c5 100644 --- a/store/translations/cs/LC_MESSAGES/messages.po +++ b/store/translations/cs/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:09+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: cs \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/da/LC_MESSAGES/messages.po b/store/translations/da/LC_MESSAGES/messages.po index f63d5a3e93..c641fe983f 100644 --- a/store/translations/da/LC_MESSAGES/messages.po +++ b/store/translations/da/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:05+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: da \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/de/LC_MESSAGES/messages.po b/store/translations/de/LC_MESSAGES/messages.po index 7d92edb92b..1a9b0bdd1d 100644 --- a/store/translations/de/LC_MESSAGES/messages.po +++ b/store/translations/de/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-03-23 19:04+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: German \n" "Language-Team: el \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/eo/LC_MESSAGES/messages.po b/store/translations/eo/LC_MESSAGES/messages.po index cd2d72f981..930fb4a628 100644 --- a/store/translations/eo/LC_MESSAGES/messages.po +++ b/store/translations/eo/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:06+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: eo \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/es/LC_MESSAGES/messages.po b/store/translations/es/LC_MESSAGES/messages.po index f285cbd12c..82b795ceb8 100644 --- a/store/translations/es/LC_MESSAGES/messages.po +++ b/store/translations/es/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-03-23 00:54+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: Spanish \n" "Language-Team: Basque you can see its page here." msgstr "" -"Lehendik ere dago %(slug)s izena duen aplikazioa katalogoan, hemen ikus dezakezu." +"Lehendik ere dago %(slug)s izena duen aplikazioa katalogoan, hemen ikus dezakezu." #: app.py:386 #, python-format @@ -236,7 +236,9 @@ msgid "Important infos before installing" msgstr "Informazio garrantzitsua instalatu baino lehen" #: templates/app.html:124 -msgid "Anti-features" +#, fuzzy +#| msgid "Anti-features" +msgid "Antifeatures" msgstr "Ezaugarri zalantzagarriak" #: templates/app.html:125 diff --git a/store/translations/fa/LC_MESSAGES/messages.po b/store/translations/fa/LC_MESSAGES/messages.po index 3dbb6c07e4..534c10408c 100644 --- a/store/translations/fa/LC_MESSAGES/messages.po +++ b/store/translations/fa/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:08+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: fa \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/fi/LC_MESSAGES/messages.po b/store/translations/fi/LC_MESSAGES/messages.po index 43472a89ff..8c29487425 100644 --- a/store/translations/fi/LC_MESSAGES/messages.po +++ b/store/translations/fi/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:06+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: fi \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/fr/LC_MESSAGES/messages.po b/store/translations/fr/LC_MESSAGES/messages.po index 0d6f64f0a6..3989ea025a 100644 --- a/store/translations/fr/LC_MESSAGES/messages.po +++ b/store/translations/fr/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-03-23 19:04+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: French you can see its page here." msgstr "" -"Une app nommée %(slug)s existe déjà dans le catalogue, vous pouvez voir sa page ici." +"Une app nommée %(slug)s existe déjà dans le catalogue, vous pouvez voir sa page ici." #: app.py:386 #, python-format @@ -238,7 +238,9 @@ msgid "Important infos before installing" msgstr "Informations importantes avant l'installation" #: templates/app.html:124 -msgid "Anti-features" +#, fuzzy +#| msgid "Anti-features" +msgid "Antifeatures" msgstr "Anti-fonctionnalités" #: templates/app.html:125 diff --git a/store/translations/gl/LC_MESSAGES/messages.po b/store/translations/gl/LC_MESSAGES/messages.po index 0ab14cd126..4b8b3c785b 100644 --- a/store/translations/gl/LC_MESSAGES/messages.po +++ b/store/translations/gl/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-03-23 19:04+0000\n" "Last-Translator: OniriCorpe \n" "Language-Team: Galician \n" "Language-Team: he \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/hi/LC_MESSAGES/messages.po b/store/translations/hi/LC_MESSAGES/messages.po index 0943767f83..801136ade5 100644 --- a/store/translations/hi/LC_MESSAGES/messages.po +++ b/store/translations/hi/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:06+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: hi \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/hu/LC_MESSAGES/messages.po b/store/translations/hu/LC_MESSAGES/messages.po index 12ae25344a..1f30d13cfc 100644 --- a/store/translations/hu/LC_MESSAGES/messages.po +++ b/store/translations/hu/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:06+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: hu \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/id/LC_MESSAGES/messages.po b/store/translations/id/LC_MESSAGES/messages.po index 60b2c594e6..d79e8069c3 100644 --- a/store/translations/id/LC_MESSAGES/messages.po +++ b/store/translations/id/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:06+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: id \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/it/LC_MESSAGES/messages.po b/store/translations/it/LC_MESSAGES/messages.po index cb139e9c9d..d34f7ddc53 100644 --- a/store/translations/it/LC_MESSAGES/messages.po +++ b/store/translations/it/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:07+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: it \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/ja/LC_MESSAGES/messages.po b/store/translations/ja/LC_MESSAGES/messages.po index ea558051fb..5c57d1b30e 100644 --- a/store/translations/ja/LC_MESSAGES/messages.po +++ b/store/translations/ja/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:07+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: ja \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/kab/LC_MESSAGES/messages.po b/store/translations/kab/LC_MESSAGES/messages.po index 813e4751bf..767f6b6b13 100644 --- a/store/translations/kab/LC_MESSAGES/messages.po +++ b/store/translations/kab/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:07+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: kab \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/ko/LC_MESSAGES/messages.po b/store/translations/ko/LC_MESSAGES/messages.po index 1ea9a9fd39..3c075ab378 100644 --- a/store/translations/ko/LC_MESSAGES/messages.po +++ b/store/translations/ko/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:05+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: ko \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/lt/LC_MESSAGES/messages.po b/store/translations/lt/LC_MESSAGES/messages.po index 13e0116984..6821bf8658 100644 --- a/store/translations/lt/LC_MESSAGES/messages.po +++ b/store/translations/lt/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:07+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: lt \n" @@ -204,7 +204,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/mk/LC_MESSAGES/messages.po b/store/translations/mk/LC_MESSAGES/messages.po index feaaf4573d..8145b1d6a1 100644 --- a/store/translations/mk/LC_MESSAGES/messages.po +++ b/store/translations/mk/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:07+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: mk \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/nb_NO/LC_MESSAGES/messages.po b/store/translations/nb_NO/LC_MESSAGES/messages.po index a8fafd4755..249e6cc946 100644 --- a/store/translations/nb_NO/LC_MESSAGES/messages.po +++ b/store/translations/nb_NO/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:07+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: nb_NO \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/ne/LC_MESSAGES/messages.po b/store/translations/ne/LC_MESSAGES/messages.po index 4daad44061..ea8e807212 100644 --- a/store/translations/ne/LC_MESSAGES/messages.po +++ b/store/translations/ne/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:07+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: ne \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/nl/LC_MESSAGES/messages.po b/store/translations/nl/LC_MESSAGES/messages.po index e138b3aeed..4548a2e2cc 100644 --- a/store/translations/nl/LC_MESSAGES/messages.po +++ b/store/translations/nl/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:07+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: nl \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/oc/LC_MESSAGES/messages.po b/store/translations/oc/LC_MESSAGES/messages.po index 0cee524ad4..86cb502c0b 100644 --- a/store/translations/oc/LC_MESSAGES/messages.po +++ b/store/translations/oc/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:08+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: oc \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/pl/LC_MESSAGES/messages.po b/store/translations/pl/LC_MESSAGES/messages.po index 1147eed3be..e6ae02630d 100644 --- a/store/translations/pl/LC_MESSAGES/messages.po +++ b/store/translations/pl/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:08+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: pl \n" @@ -204,7 +204,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/pt/LC_MESSAGES/messages.po b/store/translations/pt/LC_MESSAGES/messages.po index 19d4af67ee..0ab9e9a5a7 100644 --- a/store/translations/pt/LC_MESSAGES/messages.po +++ b/store/translations/pt/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:08+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: pt \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/pt_BR/LC_MESSAGES/messages.po b/store/translations/pt_BR/LC_MESSAGES/messages.po index a55f3442a3..a9c34933e8 100644 --- a/store/translations/pt_BR/LC_MESSAGES/messages.po +++ b/store/translations/pt_BR/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:08+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: pt_BR \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/ru/LC_MESSAGES/messages.po b/store/translations/ru/LC_MESSAGES/messages.po index 18ca80810f..9e32d89435 100644 --- a/store/translations/ru/LC_MESSAGES/messages.po +++ b/store/translations/ru/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:08+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: ru \n" @@ -204,7 +204,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/sk/LC_MESSAGES/messages.po b/store/translations/sk/LC_MESSAGES/messages.po index 16742257c7..a5e31cb2c3 100644 --- a/store/translations/sk/LC_MESSAGES/messages.po +++ b/store/translations/sk/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:08+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: sk \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/sl/LC_MESSAGES/messages.po b/store/translations/sl/LC_MESSAGES/messages.po index 0510774d65..345fa5ac16 100644 --- a/store/translations/sl/LC_MESSAGES/messages.po +++ b/store/translations/sl/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:08+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: sl \n" @@ -204,7 +204,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/sv/LC_MESSAGES/messages.po b/store/translations/sv/LC_MESSAGES/messages.po index 1b330ff199..c59aa6cdc3 100644 --- a/store/translations/sv/LC_MESSAGES/messages.po +++ b/store/translations/sv/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:09+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: sv \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/te/LC_MESSAGES/messages.po b/store/translations/te/LC_MESSAGES/messages.po index 39e685f259..df97abd5b4 100644 --- a/store/translations/te/LC_MESSAGES/messages.po +++ b/store/translations/te/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:09+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: te \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/tr/LC_MESSAGES/messages.po b/store/translations/tr/LC_MESSAGES/messages.po index f81499e232..c006a8dd4b 100644 --- a/store/translations/tr/LC_MESSAGES/messages.po +++ b/store/translations/tr/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:09+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: tr \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/uk/LC_MESSAGES/messages.po b/store/translations/uk/LC_MESSAGES/messages.po index d630958eae..3ea3bf1202 100644 --- a/store/translations/uk/LC_MESSAGES/messages.po +++ b/store/translations/uk/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:09+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: uk \n" @@ -204,7 +204,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 diff --git a/store/translations/zh_Hans/LC_MESSAGES/messages.po b/store/translations/zh_Hans/LC_MESSAGES/messages.po index 448f5d96a8..a66e7a7f66 100644 --- a/store/translations/zh_Hans/LC_MESSAGES/messages.po +++ b/store/translations/zh_Hans/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-03-22 04:59+0100\n" +"POT-Creation-Date: 2024-04-01 00:57+0200\n" "PO-Revision-Date: 2024-02-21 06:05+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: zh_Hans \n" @@ -203,7 +203,7 @@ msgid "Important infos before installing" msgstr "" #: templates/app.html:124 -msgid "Anti-features" +msgid "Antifeatures" msgstr "" #: templates/app.html:125 From 42ee5adf33c42e2b9a8c9a38d532b711caf95973 Mon Sep 17 00:00:00 2001 From: Thomas <51749973+Thovi98@users.noreply.github.com> Date: Mon, 1 Apr 2024 16:59:14 +0200 Subject: [PATCH 086/292] Update immich logo --- logos/immich.png | Bin 16942 -> 29802 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/logos/immich.png b/logos/immich.png index 6fc783ef3b3d7983f7c4c03ccee900884178288d..d22306256860b10e47e6058d5377fd56dcefe12d 100644 GIT binary patch literal 29802 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≶wh-)}Of#9>2APnw!d)?Z$e__Io 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

    -xC{oOq+1+oAJp*~1~JpH2&_ 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 literal 16942 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∾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 From 689c0209e42b3743b4bce00da7a040bd5c9e3484 Mon Sep 17 00:00:00 2001 From: Bram Date: Mon, 1 Apr 2024 18:14:22 +0200 Subject: [PATCH 087/292] Regen readme testing branch (#2197) --- .../readme_generator/regen_readme_in_batch.py | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/tools/readme_generator/regen_readme_in_batch.py b/tools/readme_generator/regen_readme_in_batch.py index 99bb0cc392..be5b3bab88 100644 --- a/tools/readme_generator/regen_readme_in_batch.py +++ b/tools/readme_generator/regen_readme_in_batch.py @@ -4,6 +4,7 @@ import shlex import asyncio import tempfile +import requests from make_readme import generate_READMEs from pathlib import Path @@ -49,6 +50,19 @@ async def regen_readme(repository, branch): print(f"{repository} -> branch '{branch}'") print("=" * len(f"{repository} -> branch '{branch}'")) + branches = requests.get( + f"https://api.github.com/repos/{repository}/branches", + headers={ + "Authorization": f"Bearer {token}", + "X-GitHub-Api-Version": "2022-11-28", + "Accept": "application/vnd.github+json", + } + ).json() + + branches = {x["name"] for x in branches} + if "testing" in branches: + branch = "testing" + with tempfile.TemporaryDirectory() as folder: await git( [ @@ -93,24 +107,17 @@ async def regen_readme(repository, branch): print(f"Updated https://github.com/{repository}") -if __name__ == "__main__": - skip = True +if __name__ == '__main__': apps = json.load(open("../../builds/default/v3/apps.json"))["apps"] for app, infos in apps.items(): if "github.com" not in infos["git"]["url"]: continue - if app == "dendrite": - skip = False - - if skip: - continue - time.sleep(2) asyncio.run( regen_readme( infos["git"]["url"].replace("https://github.com/", ""), infos["git"]["branch"], ) - ) + ) \ No newline at end of file From 737dc44e726480f9a73203f8e5f24393e8e68053 Mon Sep 17 00:00:00 2001 From: tituspijean <8769166+tituspijean@users.noreply.github.com> Date: Mon, 1 Apr 2024 16:14:44 +0000 Subject: [PATCH 088/292] :art: Format Python code with Black --- tools/readme_generator/regen_readme_in_batch.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/readme_generator/regen_readme_in_batch.py b/tools/readme_generator/regen_readme_in_batch.py index be5b3bab88..b607525c7f 100644 --- a/tools/readme_generator/regen_readme_in_batch.py +++ b/tools/readme_generator/regen_readme_in_batch.py @@ -56,7 +56,7 @@ async def regen_readme(repository, branch): "Authorization": f"Bearer {token}", "X-GitHub-Api-Version": "2022-11-28", "Accept": "application/vnd.github+json", - } + }, ).json() branches = {x["name"] for x in branches} @@ -107,7 +107,7 @@ async def regen_readme(repository, branch): print(f"Updated https://github.com/{repository}") -if __name__ == '__main__': +if __name__ == "__main__": apps = json.load(open("../../builds/default/v3/apps.json"))["apps"] for app, infos in apps.items(): @@ -120,4 +120,4 @@ async def regen_readme(repository, branch): infos["git"]["url"].replace("https://github.com/", ""), infos["git"]["branch"], ) - ) \ No newline at end of file + ) From 78ed46db24f4d7cb747b607bf3d04c0b3566f684 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 1 Apr 2024 21:07:58 +0200 Subject: [PATCH 089/292] fix some wislist broken links (#2205) --- wishlist.toml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/wishlist.toml b/wishlist.toml index b12e8acc00..60c531377e 100644 --- a/wishlist.toml +++ b/wishlist.toml @@ -1078,7 +1078,7 @@ added_date = 1695656621 # 2023/09/25 name = "Mailtrain" description = "Newsletter app" upstream = "https://github.com/Mailtrain-org/mailtrain" -website = "https://mailtrain.org/" +website = "https://mailtrain.unice.fr/" added_date = 1695656621 # 2023/09/25 [majola] @@ -1113,7 +1113,7 @@ added_date = 1700423402 # 2023/11/19 name = "Mealie" description = "Recipe manager and meal planner" upstream = "https://github.com/hay-kot/mealie/" -website = "https://hay-kot.github.io/mealie/" +website = "https://mealie.io/" added_date = 1695656621 # 2023/09/25 [mediagoblin] @@ -1135,7 +1135,7 @@ added_date = 1695656621 # 2023/09/25 [megaglest] name = "Megaglest" description = "realtime stategy game" -upstream = "https://megaglest.org/linux-packages.html" +upstream = "https://github.com/MegaGlest" website = "https://megaglest.org/" added_date = 1695656621 # 2023/09/25 @@ -1222,11 +1222,11 @@ upstream = "https://github.com/netbirdio/netbird" website = "https://netbird.io/" added_date = 1695656621 # 2023/09/25 -[netlify-cms] -name = "Netlify CMS" -description = "A CMS for any static site generator that connects to a Gitlab/Github repo (requires netlify/gotrue)" -upstream = "https://github.com/netlify/netlify-cms" -website = "https://netlifycms.org/" +[decap-cms] +name = "Decap CMS" +description = "A Git-based CMS for Static Site Generators" +upstream = "https://github.com/decaporg/decap-cms" +website = "https://decapcms.org/" added_date = 1695656621 # 2023/09/25 [netrunner] @@ -1908,7 +1908,7 @@ added_date = 1699512427 # 2023/11/09 [theia-ide] name = "Theia-IDE" description = "VS Code-like cloud IDE" -upstream = "https://hub.docker.com/r/theiaide/theia-full" +upstream = "https://github.com/eclipse-theia/theia" website = "https://theia-ide.org/" added_date = 1695656621 # 2023/09/25 From 0eed3465c9ca656d5fd56845c7f914ff0f8bcfac Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 1 Apr 2024 21:19:53 +0200 Subject: [PATCH 090/292] wishlist: remove some deprecated softwares (#2206) * remove some deprecated sowtware from the wishlist * remove 'megaglest' because it's not selfhostable * undo 'logitech-media-server' removing --------- Co-authored-by: Alexandre Aubin <4533074+alexAubin@users.noreply.github.com> --- wishlist.toml | 35 ----------------------------------- 1 file changed, 35 deletions(-) diff --git a/wishlist.toml b/wishlist.toml index 60c531377e..61b748c21b 100644 --- a/wishlist.toml +++ b/wishlist.toml @@ -237,13 +237,6 @@ upstream = "https://gitlab.com/cactus-comments" website = "https://cactus.chat/" added_date = 1695656621 # 2023/09/25 -[cagette] -name = "Cagette" -description = "A marketplace for local farmers and producers" -upstream = "https://github.com/CagetteNet/cagette" -website = "https://www.cagette.net/" -added_date = 1695656621 # 2023/09/25 - [cal-com] name = "Cal.com" description = "Formerly Calendso. Volunteer shift management and meeting scheduling. Alternative to Calendly." @@ -1132,13 +1125,6 @@ website = "https://pymedusa.com/" draft = "https://github.com/YunoHost-Apps/medusa_ynh" added_date = 1695656621 # 2023/09/25 -[megaglest] -name = "Megaglest" -description = "realtime stategy game" -upstream = "https://github.com/MegaGlest" -website = "https://megaglest.org/" -added_date = 1695656621 # 2023/09/25 - [meshery] name = "Meshery" description = "Cloudnative solution to bind multiple Service-Meshes together, not only K8s" @@ -1591,13 +1577,6 @@ upstream = "https://github.com/bestpractical/rt" website = "https://bestpractical.com" added_date = 1695656621 # 2023/09/25 -[restya] -name = "Restya" -description = "Trello like kanban board. Based on Restya platform." -upstream = "https://github.com/RestyaPlatform/board/" -website = "https://restya.com" -added_date = 1695656621 # 2023/09/25 - [retroshare] name = "Retroshare" description = "Friend-2-Friend, secure decentralised communication platform." @@ -1656,13 +1635,6 @@ website = "https://scribe.rip/" draft = "https://github.com/YunoHost-Apps/scribe_ynh" added_date = 1695656621 # 2023/09/25 -[script-server] -name = "script-server" -description = "Web UI for your scripts with execution management" -upstream = "https://github.com/bugy/script-server" -website = "https://script-server.net/" -added_date = 1707934203 # 2024/02/14 - [semantic-mediawiki] name = "Semantic MediaWiki" description = "Store and query data withxadin MediaWiki's pages" @@ -2054,13 +2026,6 @@ upstream = "https://github.com/benbusby/whoogle-search" website = "" added_date = 1695656621 # 2023/09/25 -[wikiless] -name = "Wikiless" -description = "An alternative Wikipedia front-end focused on privacy." -upstream = "https://codeberg.org/orenom/wikiless" -website = "https://wikiless.org/" -added_date = 1695656621 # 2023/09/25 - [wikisuite] name = "WikiSuite" description = "An integrated enterprise solution" From c5564601b17a02aeda8b1d7a0cf07b73a660ed87 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Mon, 1 Apr 2024 21:20:20 +0200 Subject: [PATCH 091/292] 'Logitech Media Server' is now 'Lyrion Music Server' (#2207) --- wishlist.toml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/wishlist.toml b/wishlist.toml index 61b748c21b..a97946cc2a 100644 --- a/wishlist.toml +++ b/wishlist.toml @@ -1039,11 +1039,11 @@ upstream = "https://github.com/locomotivecms/engine" website = "https://www.locomotivecms.com/" added_date = 1695656621 # 2023/09/25 -[logitech-media-server] -name = "Logitech Media Server" -description = "A streaming audio server (formerly SlimServer, SqueezeCenter and Squeezebox Server)" -upstream = "http://mysqueezebox.com/download" -website = "https://en.wikipedia.org/wiki/Logitech_Media_Server" +[lyrion-music-server] +name = "Lyrion Music Server" +description = "A streaming audio server (formerly Logitech Mediaserver, SlimServer, SqueezeCenter, SqueezeboxServer, SliMP3)" +upstream = "https://github.com/LMS-Community/slimserver" +website = "https://lyrion.org/" added_date = 1695656621 # 2023/09/25 [loomio] From 23585d611b47529b577e4e6cc0604bb352205639 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 29 Mar 2024 17:34:04 +0000 Subject: [PATCH 092/292] Update app levels according to CI results --- apps.toml | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/apps.toml b/apps.toml index c45a218806..28331f3175 100644 --- a/apps.toml +++ b/apps.toml @@ -366,7 +366,7 @@ url = "https://github.com/YunoHost-Apps/cesium_ynh" added_date = 1684063245 # 2023/05/14 antifeatures = [ "non-free-network" ] category = "small_utilities" -level = 7 +level = 8 state = "working" url = "https://github.com/YunoHost-Apps/chatgpt-web_ynh" @@ -488,7 +488,7 @@ url = "https://github.com/YunoHost-Apps/coin_ynh" [collabora] added_date = 1674232499 # 2023/01/20 category = "office" -level = 6 +level = 8 potential_alternative_to = [ "Apple Pages", "G Suite", "Google Docs", "Microsoft Excel", "Microsoft Office", "Microsoft Word" ] state = "working" subtags = [ "impress", "spreadsheet", "text" ] @@ -754,7 +754,7 @@ added_date = 1674232499 # 2023/01/20 antifeatures = [ "deprecated-software" ] category = "communication" deprecated_date = 1709075769 # 2024/02/27 -level = 8 +level = 7 state = "working" subtags = [ "chat" ] url = "https://github.com/YunoHost-Apps/dispatch_ynh" @@ -785,7 +785,7 @@ url = "https://github.com/YunoHost-Apps/django-for-runners_ynh" [django-fritzconnection] added_date = 1674232499 # 2023/01/20 category = "system_tools" -level = 6 +level = 3 state = "working" subtags = [ "network" ] url = "https://github.com/YunoHost-Apps/django-fritzconnection_ynh" @@ -793,7 +793,7 @@ url = "https://github.com/YunoHost-Apps/django-fritzconnection_ynh" [django_example] added_date = 1674232499 # 2023/01/20 category = "dev" -level = 8 +level = 3 state = "working" subtags = [ "programming" ] url = "https://github.com/YunoHost-Apps/django_example_ynh" @@ -926,7 +926,7 @@ url = "https://github.com/YunoHost-Apps/element_ynh" [element-call] added_date = 1697570605 # 2023/10/17 category = "communication" -level = 6 +level = 7 potential_alternative_to = [ "Skype", "Zoom" ] state = "working" subtags = [ "meeting" ] @@ -935,7 +935,7 @@ url = "https://github.com/YunoHost-Apps/element-call_ynh" [eleventy] added_date = 1683960849 # 2023/05/13 category = "publishing" -level = 7 +level = 8 potential_alternative_to = [ "Blogger", "Blogspot", "Wix" ] state = "working" subtags = [ "blog", "website" ] @@ -952,7 +952,7 @@ url = "https://github.com/YunoHost-Apps/emailpoubelle_ynh" [emoncms] added_date = 1674232499 # 2023/01/20 category = "iot" -level = 6 +level = 8 state = "working" url = "https://github.com/YunoHost-Apps/emoncms_ynh" @@ -1184,7 +1184,7 @@ url = "https://github.com/YunoHost-Apps/forgejo_ynh" [framaforms] added_date = 1674232499 # 2023/01/20 category = "productivity_and_management" -level = 0 +level = 8 potential_alternative_to = [ "Google Forms" ] state = "working" subtags = [ "poll" ] @@ -1539,14 +1539,14 @@ url = "https://github.com/YunoHost-Apps/homarr_ynh" [homeassistant] added_date = 1674232499 # 2023/01/20 category = "iot" -level = 8 +level = 6 state = "working" url = "https://github.com/YunoHost-Apps/homeassistant_ynh" [horde] added_date = 1674232499 # 2023/01/20 category = "communication" -level = 4 +level = 7 state = "working" subtags = [ "email" ] url = "https://github.com/YunoHost-Apps/horde_ynh" @@ -1753,7 +1753,7 @@ url = "https://github.com/YunoHost-Apps/jellyfin-vue_ynh" [jellyseerr] added_date = 1683832079 # 2023/05/11 category = "multimedia" -level = 7 +level = 8 potential_alternative_to = [ "Overseerr" ] state = "working" url = "https://github.com/YunoHost-Apps/jellyseerr_ynh" @@ -1768,7 +1768,7 @@ url = "https://github.com/YunoHost-Apps/jenkins_ynh" [jirafeau] added_date = 1674232499 # 2023/01/20 category = "synchronization" -level = 6 +level = 8 potential_alternative_to = [ "ImageShack", "Imgur" ] state = "working" subtags = [ "files" ] @@ -1940,7 +1940,7 @@ url = "https://github.com/YunoHost-Apps/leed_ynh" [lemmy] added_date = 1674232499 # 2023/01/20 category = "social_media" -level = 6 +level = 8 potential_alternative_to = [ "Hacker News", "Lobste.rs", "Reddit" ] state = "working" url = "https://github.com/YunoHost-Apps/lemmy_ynh" @@ -2172,7 +2172,7 @@ url = "https://github.com/YunoHost-Apps/mastodon_ynh" [matomo] added_date = 1674232499 # 2023/01/20 category = "publishing" -level = 8 +level = 6 potential_alternative_to = [ "Google Analytics", "Xiti" ] state = "working" subtags = [ "analytics" ] @@ -2377,7 +2377,7 @@ url = "https://github.com/YunoHost-Apps/moncycle_ynh" added_date = 1674232499 # 2023/01/20 branch = "main" category = "system_tools" -level = 8 +level = 0 state = "working" subtags = [ "db" ] url = "https://github.com/YunoHost-Apps/mongo-express_ynh" @@ -2439,7 +2439,7 @@ url = "https://github.com/YunoHost-Apps/movim_ynh" [mstream] added_date = 1683054560 # 2023/05/02 category = "multimedia" -level = 7 +level = 8 potential_alternative_to = [ "Anchor", "Deezer", "SoundCloud", "Spotify" ] state = "working" subtags = [ "music" ] @@ -3015,7 +3015,7 @@ url = "https://github.com/YunoHost-Apps/piped_ynh" [piwigo] added_date = 1674232499 # 2023/01/20 category = "multimedia" -level = 6 +level = 8 potential_alternative_to = [ "Google Photos", "Keepeek", "Koken", "Orkis Ajaris", "Orphéa" ] state = "working" subtags = [ "pictures" ] @@ -3084,7 +3084,7 @@ url = "https://github.com/YunoHost-Apps/pluxml_ynh" [pmwiki] added_date = 1674232499 # 2023/01/20 category = "publishing" -level = 8 +level = 0 state = "working" subtags = [ "wiki" ] url = "https://github.com/YunoHost-Apps/pmwiki_ynh" @@ -3142,7 +3142,7 @@ url = "https://github.com/YunoHost-Apps/prosody_ynh" [prowlarr] added_date = 1674232499 # 2023/01/20 category = "multimedia" -level = 6 +level = 8 state = "working" url = "https://github.com/YunoHost-Apps/prowlarr_ynh" @@ -3548,7 +3548,7 @@ url = "https://github.com/YunoHost-Apps/silverbullet_ynh" [simple-file-manager] added_date = 1699776105 # 2023/11/12 category = "small_utilities" -level = 6 +level = 7 state = "working" url = "https://github.com/YunoHost-Apps/simple-file-manager_ynh" @@ -3631,7 +3631,7 @@ url = "https://github.com/YunoHost-Apps/snserver_ynh" added_date = 1674232499 # 2023/01/20 antifeatures = [ "package-not-maintained" ] category = "office" -level = 6 +level = 7 state = "working" subtags = [ "text" ] url = "https://github.com/YunoHost-Apps/snweb_ynh" @@ -4053,7 +4053,7 @@ url = "https://github.com/YunoHost-Apps/uptime-kuma_ynh" [vaultwarden] added_date = 1674232499 # 2023/01/20 category = "synchronization" -level = 6 +level = 8 potential_alternative_to = [ "1Password", "Dashlane", "Enpass", "LastPass" ] state = "working" subtags = [ "password" ] @@ -4126,7 +4126,7 @@ url = "https://github.com/YunoHost-Apps/webmin_ynh" [webtrees] added_date = 1674232499 # 2023/01/20 category = "wat" -level = 6 +level = 1 state = "working" url = "https://github.com/YunoHost-Apps/webtrees_ynh" @@ -4206,7 +4206,7 @@ url = "https://github.com/YunoHost-Apps/woodpecker_ynh" added_date = 1674232499 # 2023/01/20 antifeatures = [ "non-free-addons", "paid-content" ] category = "publishing" -level = 6 +level = 8 potential_alternative_to = [ "Blogger", "Blogspot", "Wix" ] state = "working" subtags = [ "blog", "website" ] @@ -4257,7 +4257,7 @@ url = "https://github.com/YunoHost-Apps/yacy_ynh" [yellow] added_date = 1674232499 # 2023/01/20 category = "publishing" -level = 6 +level = 8 state = "working" subtags = [ "website" ] url = "https://github.com/YunoHost-Apps/yellow_ynh" From 9d9bd0dcc7ab14b219e042ce328ae15677a05d6c Mon Sep 17 00:00:00 2001 From: Alexandre Aubin <4533074+alexAubin@users.noreply.github.com> Date: Mon, 1 Apr 2024 20:02:27 +0200 Subject: [PATCH 093/292] Update apps.toml: revert django_example level --- apps.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.toml b/apps.toml index 28331f3175..7bfb8ee110 100644 --- a/apps.toml +++ b/apps.toml @@ -793,7 +793,7 @@ url = "https://github.com/YunoHost-Apps/django-fritzconnection_ynh" [django_example] added_date = 1674232499 # 2023/01/20 category = "dev" -level = 3 +level = 8 state = "working" subtags = [ "programming" ] url = "https://github.com/YunoHost-Apps/django_example_ynh" From 05a68a492bfa0d4d3fe78e604904f27b4f7acbac Mon Sep 17 00:00:00 2001 From: Alexandre Aubin <4533074+alexAubin@users.noreply.github.com> Date: Mon, 1 Apr 2024 20:05:43 +0200 Subject: [PATCH 094/292] Update apps.toml: revert homeassistant level --- apps.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.toml b/apps.toml index 7bfb8ee110..12bf9d4c2c 100644 --- a/apps.toml +++ b/apps.toml @@ -1539,7 +1539,7 @@ url = "https://github.com/YunoHost-Apps/homarr_ynh" [homeassistant] added_date = 1674232499 # 2023/01/20 category = "iot" -level = 6 +level = 8 state = "working" url = "https://github.com/YunoHost-Apps/homeassistant_ynh" From fe1b9e87c29dd7321afe14c589b859bb83da6761 Mon Sep 17 00:00:00 2001 From: tituspijean Date: Mon, 1 Apr 2024 23:44:44 +0200 Subject: [PATCH 095/292] Update apps.toml: revert pmwiki level --- apps.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.toml b/apps.toml index 12bf9d4c2c..0485b1e4e0 100644 --- a/apps.toml +++ b/apps.toml @@ -3084,7 +3084,7 @@ url = "https://github.com/YunoHost-Apps/pluxml_ynh" [pmwiki] added_date = 1674232499 # 2023/01/20 category = "publishing" -level = 0 +level = 8 state = "working" subtags = [ "wiki" ] url = "https://github.com/YunoHost-Apps/pmwiki_ynh" From ffb3555d7f927da198f37eb0a0c4d281111f7710 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= Date: Tue, 2 Apr 2024 12:36:24 +0200 Subject: [PATCH 096/292] Handle non existing executable for logging_sender.py --- tools/appslib/logging_sender.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/appslib/logging_sender.py b/tools/appslib/logging_sender.py index d65c257956..bba28cc870 100644 --- a/tools/appslib/logging_sender.py +++ b/tools/appslib/logging_sender.py @@ -34,6 +34,8 @@ def notify(message: str, channel: str, markdown: bool = False) -> None: try: subprocess.call(command, stdout=subprocess.DEVNULL) + except FileNotFoundError: + logging.warning("The logging sender tool /var/www/webhooks/matrix-commander does not exist.") except subprocess.CalledProcessError as e: logging.warning( f"""Could not send a notification on {channel}. From 58fef77debf9abcbdb0ea6aa4795265dfdf8588e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= Date: Tue, 2 Apr 2024 13:27:24 +0200 Subject: [PATCH 097/292] Allow prereleases in autoupdater. Mainly to support Vikunja. --- schemas/manifest.v2.schema.json | 6 +++++- tools/autoupdate_app_sources/autoupdate_app_sources.py | 9 ++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/schemas/manifest.v2.schema.json b/schemas/manifest.v2.schema.json index fa8fcdb8f7..6f38292e92 100644 --- a/schemas/manifest.v2.schema.json +++ b/schemas/manifest.v2.schema.json @@ -575,6 +575,10 @@ }, "force_version": { "type": "string" + }, + "allow_prereleases": { + "type": "boolean", + "description": "Allow prereleases when using strategy = latest_X_release" } } } @@ -633,4 +637,4 @@ "resources" ], "additionalProperties": false -} \ No newline at end of file +} diff --git a/tools/autoupdate_app_sources/autoupdate_app_sources.py b/tools/autoupdate_app_sources/autoupdate_app_sources.py index ed6d944682..1960a3f788 100755 --- a/tools/autoupdate_app_sources/autoupdate_app_sources.py +++ b/tools/autoupdate_app_sources/autoupdate_app_sources.py @@ -447,6 +447,7 @@ def get_latest_version_and_asset( ) -> Optional[tuple[str, Union[str, dict[str, str]], str]]: upstream = autoupdate.get("upstream", self.main_upstream).strip("/") version_re = autoupdate.get("version_regex", None) + allow_prereleases = autoupdate.get("allow_prereleases", False) _, remote_type, revision_type = strategy.split("_") api: Union[GithubAPI, GitlabAPI, GiteaForgejoAPI] @@ -464,8 +465,14 @@ def get_latest_version_and_asset( releases: dict[str, dict[str, Any]] = { release["tag_name"]: release for release in api.releases() - if not release["draft"] and not release["prerelease"] } + + if not allow_prereleases: + releases = { + name: info for name, info in releases.items() + if not info["draft"] and not info["prerelease"] + } + latest_version_orig, latest_version = self.relevant_versions( list(releases.keys()), self.app_id, version_re ) From 1b0e80c835c6cbb095da3c24d526ed31e6d4fee8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20M?= Date: Mon, 1 Apr 2024 08:45:20 +0000 Subject: [PATCH 098/292] Translated readme-generator using Weblate (Galician) Currently translated at 100.0% (39 of 39 strings) Translation: YunoHost/readme-generator Translate-URL: https://translate.yunohost.org/projects/yunohost/readme-generator/gl/ --- .../translations/gl/LC_MESSAGES/messages.mo | Bin 5757 -> 5757 bytes .../translations/gl/LC_MESSAGES/messages.po | 4 +--- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/tools/readme_generator/translations/gl/LC_MESSAGES/messages.mo b/tools/readme_generator/translations/gl/LC_MESSAGES/messages.mo index d934f1bb877e11d1d99cba79e438155e37c5f366..21c30aa95792c2ecc9b9eab282eb5d7664930e3d 100644 GIT binary patch delta 47 qcmeyX^H*oX875H%C=iA*fVAr5hfKwcGMhu0C$ll;ZGOo)g$Drea0+|? delta 47 rcmeyX^H*oX875Ix1_%&_(jZD^@\n" "Language-Team: Galician \n" @@ -132,8 +132,6 @@ msgid "Install %(application_name)s with YunoHost" msgstr "Instalar %(application_name)s con YunoHost" #: templates/README.md.j2:28 -#, fuzzy -#| msgid "Read this README is other languages." msgid "Read this README in other languages." msgstr "Le este README en outros idiomas." From 82d45708def7bcbadff99b6d74498b16699841b6 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Tue, 2 Apr 2024 17:45:11 +0200 Subject: [PATCH 099/292] antifeatures: add space after french titles (#2189) --- antifeatures.toml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/antifeatures.toml b/antifeatures.toml index c53af78595..9dbb115683 100644 --- a/antifeatures.toml +++ b/antifeatures.toml @@ -8,7 +8,7 @@ description.it = "Ti traccia e/o riporta la tua attività a chi mantiene il codi icon = "user-secret" title.en = "Tracking" title.eu = "Jarraipena" -title.fr = "Pistage" +title.fr = "Pistage " title.it = "Tracciamento" [non-free-network] @@ -19,7 +19,7 @@ description.it = "Promuove o dipende interamente da servizi di rete non liberi." icon = "sitemap" title.en = "Non-free Network Services" title.eu = "Libreak ez diren sareko zerbitzuak" -title.fr = "Services réseau non libres" +title.fr = "Services réseau non libres " title.it = "Servizi di rete non liberi" [non-free-addons] @@ -30,7 +30,7 @@ description.it = "Promoove altre applicazioni o plugin non liberi" icon = "puzzle-piece" title.en = "Non-free Addons" title.eu = "Libreak ez diren gehigarriak" -title.fr = "Extensions non libres" +title.fr = "Extensions non libres " title.it = "Estensioni non libere" [non-free-dependencies] @@ -41,7 +41,7 @@ description.it = "Per funzionare, si basa su dipendenze software non libere." icon = "book" title.en = "Non-free dependencies" title.eu = "Libreak ez diren dependentziak" -title.fr = "Dépendances non libres" +title.fr = "Dépendances non libres " title.it = "Dipendenze non libere" [non-free-assets] @@ -52,7 +52,7 @@ description.it = "Contiene ed utilizza risorse mediatiche non libere. Il caso pi icon = "file-image-o" title.en = "Non-free assets" title.eu = "Libreak ez diren baliabideak" -title.fr = "Ressources non libres" +title.fr = "Ressources non libres " title.it = "Risorse non libere" [bad-security-reputation] @@ -63,7 +63,7 @@ description.it = "Ha una cattiva reputazione in termini di sicurezza (per esempi icon = "bug" title.en = "Bad security reputation" title.eu = "Segurtasun txarreko ospea" -title.fr = "Mauvaise réputation en matière de sécurité" +title.fr = "Mauvaise réputation en matière de sécurité " title.it = "Cattiva reputazione di sicurezza" [deprecated-software] @@ -74,7 +74,7 @@ description.it = "Questo software non è più mantenuto. Ci si può aspettare ch icon = "trash-o" title.en = "Upstream not maintained" title.eu = "Jatorrizko garapena utzita" -title.fr = "Application non maintenue" +title.fr = "Application non maintenue " title.it = "Applicazione non mantenuta" [package-not-maintained] @@ -85,7 +85,7 @@ description.it = "Questo pacchetto di YunoHost non è più mantenuto e necessita icon = "user-times" title.en = "Package not maintained" title.eu = "Mantendu gabeko paketea" -title.fr = "Paquet non maintenu" +title.fr = "Paquet non maintenu " title.it = "Pacchetto non mantenuto" [paid-content] @@ -96,7 +96,7 @@ description.it = "Promuove o dipende, interamente o parzialmente, da un servizio icon = "money" title.en = "Paid content" title.eu = "Ordainpeko edukia" -title.fr = "Contenu payant" +title.fr = "Contenu payant " title.it = "Contenuti a pagamento" [arbitrary-limitations] @@ -107,7 +107,7 @@ description.it = "Contiene limitazioni arbitrarie. Fare riferimento al file “R icon = "star-half-empty" title.en = "Arbitrary limitations" title.eu = "Muga arbitrarioak" -title.fr = "Limitations arbitraires" +title.fr = "Limitations arbitraires " title.it = "Limitazioni arbitrarie" [replaced-by-another-app] @@ -118,7 +118,7 @@ description.it = "Quest’app è stata sostituita da un’altra app. Fare riferi icon = "repeat" title.en = "Replaced by another app" title.eu = "Beste aplikazio batek ordeztu du" -title.fr = "Remplacé par une autre application" +title.fr = "Remplacé par une autre application " title.it = "Sostituita da un’altra app" [alpha-software] @@ -129,7 +129,7 @@ description.it = "Questo software è all’inizio della sua fase di sviluppo. Po icon = "flask" title.en = "Alpha software" title.eu = "Alfa softwarea" -title.fr = "Logiciel en version alpha" +title.fr = "Logiciel en version alpha " title.it = "Software in versione alpha" [not-totally-free-upstream] @@ -140,7 +140,7 @@ description.it = "Quest’applicazione è protetta da licenza generalmente liber icon = "lock" title.en = "Not totally free upstream" title.eu = "Jatorrizkoa ez da erabat librea" -title.fr = "Application sous licence libre restreinte" +title.fr = "Application sous licence libre restreinte " title.it = "Applicazione con licenza parzialmente libera" [not-totally-free-package] @@ -150,4 +150,4 @@ description.fr = "Le package YunoHost de cette application est sous une licence icon = "archive" title.en = "Not totally free package" title.eu = "Paketea ez da erabat librea" -title.fr = "Package sous licence libre restreinte" +title.fr = "Package sous licence libre restreinte " From d52a3adf7e7297e57a91546a6e09ea351eead712 Mon Sep 17 00:00:00 2001 From: Tagadda <36127788+Tagadda@users.noreply.github.com> Date: Tue, 2 Apr 2024 15:45:34 +0000 Subject: [PATCH 100/292] :art: Format Python code with Black --- tools/appslib/logging_sender.py | 4 +++- tools/autoupdate_app_sources/autoupdate_app_sources.py | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/tools/appslib/logging_sender.py b/tools/appslib/logging_sender.py index bba28cc870..a257668d27 100644 --- a/tools/appslib/logging_sender.py +++ b/tools/appslib/logging_sender.py @@ -35,7 +35,9 @@ def notify(message: str, channel: str, markdown: bool = False) -> None: try: subprocess.call(command, stdout=subprocess.DEVNULL) except FileNotFoundError: - logging.warning("The logging sender tool /var/www/webhooks/matrix-commander does not exist.") + logging.warning( + "The logging sender tool /var/www/webhooks/matrix-commander does not exist." + ) except subprocess.CalledProcessError as e: logging.warning( f"""Could not send a notification on {channel}. diff --git a/tools/autoupdate_app_sources/autoupdate_app_sources.py b/tools/autoupdate_app_sources/autoupdate_app_sources.py index 1960a3f788..bb03c8a15b 100755 --- a/tools/autoupdate_app_sources/autoupdate_app_sources.py +++ b/tools/autoupdate_app_sources/autoupdate_app_sources.py @@ -463,13 +463,13 @@ def get_latest_version_and_asset( if revision_type == "release": releases: dict[str, dict[str, Any]] = { - release["tag_name"]: release - for release in api.releases() + release["tag_name"]: release for release in api.releases() } if not allow_prereleases: releases = { - name: info for name, info in releases.items() + name: info + for name, info in releases.items() if not info["draft"] and not info["prerelease"] } From a5b373b8eeddcf5c5091b5bbdd8c189aaf9f970f Mon Sep 17 00:00:00 2001 From: lapineige Date: Fri, 13 Oct 2023 16:18:06 +0200 Subject: [PATCH 101/292] Create YunohostAppGenerator.py --- tools/yunopackage/YunohostAppGenerator.py | 577 ++++++++++++++++++++++ 1 file changed, 577 insertions(+) create mode 100644 tools/yunopackage/YunohostAppGenerator.py diff --git a/tools/yunopackage/YunohostAppGenerator.py b/tools/yunopackage/YunohostAppGenerator.py new file mode 100644 index 0000000000..cdd8536f5b --- /dev/null +++ b/tools/yunopackage/YunohostAppGenerator.py @@ -0,0 +1,577 @@ +#### Imports +import jinja2 as j2 +from flask import Flask, render_template, render_template_string, request, redirect, flash, send_file +from markupsafe import Markup # No longer imported from Flask +# Form libraries +from flask_wtf import FlaskForm +from wtforms import StringField, RadioField, SelectField, SubmitField, TextAreaField, BooleanField, SelectMultipleField +from wtforms.validators import DataRequired, InputRequired, Optional, Regexp, URL, Length +# Markdown to HTML - for debugging purposes +from misaka import Markdown, HtmlRenderer +# Managing zipfiles +import zipfile +from flask_cors import CORS +from urllib import parse +from secrets import token_urlsafe + +#### GLOBAL VARIABLES +YOLOGEN_VERSION = '0.7.5' +GENERATOR_DICT = {'GENERATOR_VERSION': YOLOGEN_VERSION} + +#### Create FLASK and Jinja Environments +url_prefix = '' +# url_prefix = '/yunohost-app-generator' + +# app = Flask(__name__) +app = Flask(__name__) # Blueprint('main', __name__, url_prefix=url_prefix) +app.config['SECRET_KEY'] = token_urlsafe(16) # Necessary for the form CORS +cors = CORS(app) + +environment = j2.Environment(loader=j2.FileSystemLoader("templates/")) + + +#### Custom functions + +# Define custom filter +@app.template_filter('render_markdown') +def render_markdown(text): + renderer = HtmlRenderer() + markdown = Markdown(renderer) + return markdown(text) + + +# Add custom filter +j2.filters.FILTERS['render_markdown'] = render_markdown + + +# Converting markdown to html +def markdown_file_to_html_string(file): + with open(file, 'r') as file: + markdown_content = file.read() + # Convert content from Markdown to HTML + html_content = render_markdown(markdown_content) + # Return Markdown and HTML contents + return markdown_content, html_content + + +### Forms + +## PHP forms +class Form_PHP_Config(FlaskForm): + php_config_file = SelectField('Type de fichier PHP :', choices=[ + ('php-fpm.conf', Markup('Fichier de configuration PHP complet (php-fpm.conf)')), + ('php_extra-fpm.conf', + Markup('Fichier de configuration PHP particulier (extra_php-fpm.conf)'))], + default='php_extra-fpm.conf', validators=[DataRequired()]) + ## TODO : figure out how to include these comments/title values + # 'title': 'Remplace la configuration générée par défaut par un fichier de configuration complet. À éviter si possible. + # 'title': "Choisir un fichier permettant un paramétrage d'options complémentaires. C'est généralement recommandé." + + php_config_file_content = TextAreaField("Saisissez le contenu du fichier de configuration PHP :", + validators=[Optional()], + render_kw={"class": "form-control", + "style": "width: 50%;height:11em;min-height: 5.5em; max-height: 55em;flex-grow: 1;box-sizing: border-box;", + "title": "TODO", + "placeholder": "; Additional php.ini defines, specific to this pool of workers. \n\nphp_admin_value[upload_max_filesize] = 100M \nphp_admin_value[post_max_size] = 100M"}) + + +class Form_PHP(Form_PHP_Config): + use_php = BooleanField('Nécessite PHP', default=False) + + +## NodeJS forms +class Form_NodeJS(FlaskForm): + use_nodejs = BooleanField('Nécessite NodeJS', default=False) + use_nodejs_version = StringField("Version de NodeJS :", + render_kw={"placeholder": "20", "class": "form-control", + "title": "Saisissez la version de NodeJS à installer. Cela peut-être une version majeure (ex: 20) ou plus précise (ex: 20.1)."}) # TODO : this should be validated using a regex, should be only numbers and any (≥0) number of dots in between + use_nodejs_needs_yarn = BooleanField('Nécessite Yarn', default=False, render_kw={ + "title": "Faut-il installer automatiquement Yarn ? Cela configurera les dépôts spécifiques à Yarn."}) + + +## Python forms + +class Form_Python(FlaskForm): + use_python = BooleanField('Nécessite Python', + default=False) ## TODO -> python3, python3-pip, python3-ven dependencies by default + python_dependencies_type = SelectField('Configuration des dépendances Python :', choices=[ + ('requirements.txt', Markup('Fichier requirements.txt')), + ('manual_list', 'Liste manuelle')], + default='requirements.txt', validators=[DataRequired(), Optional()]) + python_requirements = TextAreaField("La liste de dépendances inclue dans le fichier requirements.txt :", + render_kw={"class": "form-control", + "style": "width: 50%;height:5.5em;min-height: 5.5em; max-height: 55em;flex-grow: 1;box-sizing: border-box;", + "title": "Lister les dépendances à installer, une par ligne, avec un numéro de version derrière.\nEx: 'dépendance==1.0'.", + "placeholder": "tensorflow==2.3.1 \nuvicorn==0.12.2 \nfastapi==0.63.0"}) + python_dependencies_list = StringField("Liste de dépendances python :", + render_kw={"placeholder": "tensorflow uvicorn fastapi", + "class": "form-control", + "title": "Lister les dépendances à installer, séparées d'un espace."}) + + +## Manifest form +# Dependencies form +class DependenciesForm(FlaskForm): + auto_update = BooleanField("Activer le robot de mise à jour automatiques  :", default=False, + render_kw={ + "title": "Si le logiciel est disponible sur github et publie des releases ou des tags pour ses nouvelles versions, un robot proposera automatiquement des mises à jours."}) + + ## TODO + # These infos are used by https://github.com/YunoHost/apps/blob/master/tools/autoupdate_app_sources/autoupdate_app_sources.py + # to auto-update the previous asset urls and sha256sum + manifest version + # assuming the upstream's code repo is on github and relies on tags or releases + # See the 'sources' resource documentation for more details + + # autoupdate.strategy = "latest_github_tag" + + dependencies = StringField("Dépendances de l'application (liste des paquets apt) à installer :", + render_kw={"placeholder": "foo foo2.1-ext somerandomdep", "class": "form-control", + "title": "Lister les paquets dont dépend l'application, séparés par un espace."}) + + use_db = SelectField("Configurer une base de données :", choices=[ + ('false', "Non"), + ('mysql', "MySQL/MariaDB"), + ('postgresql', "PostgreSQL")], + default='false', + render_kw={"title": "L'application nécessite-t-elle une base de données ?"}) + + +# manifest +class manifestForm(DependenciesForm): + version = StringField('Version', validators=[Regexp('\d{1,4}.\d{1,4}(.\d{1,4})?(.\d{1,4})?~ynh\d+')], + render_kw={"class": "form-control", + "placeholder": "1.0~ynh1"}) + description_en = TextAreaField("Description en quelques lignes de l'application, en anglais :", + validators=[DataRequired()], + render_kw={"class": "form-control", "style": "resize: none;", + "title": "Explain in *a few (10~15) words* the purpose of the app \\" + "or what it actually does (it is meant to give a rough idea to users browsing a catalog of 100+ apps)"}) + description_fr = TextAreaField("Description en quelques lignes de l'application :", validators=[DataRequired()], + render_kw={"class": "form-control", "style": "resize: none;", + "title": "Expliquez en *quelques* (10~15) mots l'utilité de l'app \\" + "ou ce qu'elle fait (l'objectif est de donner une idée grossière pour des utilisateurs qui naviguent dans un catalogue de 100+ apps)"}) + + # TODO : handle multiple names separated by commas (.split(',') ? + maintainers = StringField('Mainteneurs et mainteneuses', render_kw={"class": "form-control", + "placeholder": "Généralement vous mettez votre nom ici… Si vous êtes d'accord ;)"}) # TODO : Usually you put your name here… if you like ;) + architectures = SelectMultipleField('Architectures supportées :', choices=[ + ('all', 'Toutes les architectures'), + ('amd64', 'amd64'), + ('arm64', 'arm64'), + ('i386', 'i386'), + ('todo', 'TODO : list more architectures')], + default=['all'], validators=[DataRequired()]) + yunohost_required_version = StringField('Mainteneurs et mainteneuses', render_kw={"class": "form-control", + "placeholder": "11.1.21", + "title": "Version minimale de Yunohost pour que l'application fonctionne."}) + + multi_instance = BooleanField("Application multi-instance", default=False, + render_kw={"class": "", + "title": "Peux-t-on installer simultannément plusieurs fois l'application sur un même serveur ?"}) + + ldap = SelectField('Integrate with LDAP (user can login using Yunohost credentials :', choices=[ + ('false', 'False'), + ('true', 'True'), + ('not_relevant', 'Not relevant')], default='not_relevant', validators=[DataRequired()], render_kw={ + "title": """Not to confuse with the "sso" key: the "ldap" key corresponds to wether or not a user *can* login on the app using its YunoHost credentials."""}) + sso = SelectField('Integrate with Yunohost SingleSignOn (SSO) :', choices=[ + ('false', 'False'), + ('true', 'True'), + ('not_relevant', 'Not relevant')], default='not_relevant', validators=[DataRequired()], render_kw={ + "title": """Not to confuse with the "ldap" key: the "sso" key corresponds to wether or not a user is *automatically logged-in* on the app when logged-in on the YunoHost portal."""}) + + license = StringField('Licence', validators=[DataRequired()], render_kw={"class": "form-control", + "placeholder": "GPL"}) + + website = StringField('Site web', validators=[URL(), Optional()], render_kw={"class": "form-control", + "placeholder": "https://awesome-app-website.com"}) + demo = StringField('Site de démonstration', validators=[URL(), Optional()], render_kw={"class": "form-control", + "placeholder": "https://awesome-app-website.com/demo"}) + admindoc = StringField("Documentation d'aministration", validators=[URL(), Optional()], + render_kw={"class": "form-control", + "placeholder": "https://awesome-app-website.com/doc/admin"}) + userdoc = StringField("Documentation d'utilisation", validators=[URL(), Optional()], + render_kw={"class": "form-control", + "placeholder": "https://awesome-app-website.com/doc/user"}) + code = StringField('Dépôt de code', validators=[URL(), Optional()], render_kw={"class": "form-control", + "placeholder": "https://awesome-app-website.com/get-the-code"}) + + data_dir = BooleanField("L'application nécessite un répertoire dédié pour ses données", default=False, + render_kw={"title": "Faut-il créer un répertoire /home/yunohost.app/votreApplication ?"}) + data_subdirs = StringField('Si nécessaire, lister les sous-répertoires à configurer :', + validators=[Optional()], render_kw={"class": "form-control", + "placeholder": "data, uploads, themes"}) + use_whole_domain = BooleanField("L'application nécessite d'utiliser tout un domaine (installation à la racine) :", + default=False, + render_kw={ + "title": "Doit-on installer l'application à la racine du domaine ? Sinon, on pourra l'installer dans un sous-dossier, par exemple /mon_app."}) + supports_change_url = BooleanField( + "L'application autorise le changement d'adresse (changement de domaine ou de chemin)", default=True, + render_kw={"title": "Faut-il permettre le changement d'URL pour l'application ? (fichier change_url)"}) + + needs_admin = BooleanField("L'application nécessite de configurer un compte d'administration :", default=False, + render_kw={"class": "", + "title": "Faut-il configurer un compte admin à l'installation ?"}) + + # admin_password_help_message = BooleanField("TODO  :", default=False, + # render_kw={"class": "", + # "title": "TODO"}) + + language = SelectMultipleField('Langues supportées :', choices=[ + ('en', 'English'), + ('fr', 'Français'), + ('en', 'Spanish'), + ('it', 'Italian'), + ('de', 'German'), + ('zh', 'Chinese'), + ('jp', 'Japanese'), + ('da', 'Danish'), + ('pt', 'Portugese'), + ('nl', 'Dutch'), + ('ru', 'Russian')], + default=['en'], validators=[DataRequired()]) + + default_language = SelectField('Langues par défaut :', choices=[ + ('en', 'English'), + ('fr', 'Français'), + ('en', 'Spanish'), + ('it', 'Italian'), + ('zh', 'Chinese'), + ('jp', 'Japanese'), + ('da', 'Danish'), + ('pt', 'Portugese'), + ('nl', 'Dutch'), + ('ru', 'Russian')], + default=['en']) + + visibility = RadioField("Visibilité de l'application :", choices=[ + ('admin', "Administrateur/administratrice uniquement"), + ('all_users', "Personnes connectées"), + ('visitors', "Publique")], + default='all_users', validators=[DataRequired()]) + + source_url = StringField("Code source ou exécutable de l'application", validators=[DataRequired(), URL()], + render_kw={"class": "form-control", + "placeholder": "https://github.com/foo/bar/archive/refs/tags/v1.2.3.tar.gz"}) # Application source code URL + sha256sum = StringField('Empreinte du code source (format sha256sum)', + validators=[DataRequired(), Length(min=64, max=64)], + render_kw={"class": "form-control", + "placeholder": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef", + "title": "Sha256sum of the archive. Should be 64 characters-long."}) # Source code hash (sha256sum format) + + +## Main form + +class appGeneratorForm(manifestForm, DependenciesForm, Form_PHP, Form_NodeJS, Form_Python): + app_name = StringField("Nom de l'application :", validators=[DataRequired()], + render_kw={"placeholder": "My Great App", "class": "form-control", + "title": "Définir le nom de l'application, affiché dans l'interface"}) + app_id = StringField( + Markup( + """Identifiant (id) de l'application (en minuscule et sans espaces) :"""), + validators=[DataRequired(), Regexp("[a-z_1-9]+.*(? Date: Fri, 13 Oct 2023 16:19:21 +0200 Subject: [PATCH 102/292] Initial release - v0.7.5 --- tools/yunopackage/requirements.txt | 9 + tools/yunopackage/static/stylesheet.css | 316 ++++++++ tools/yunopackage/templates/_common.sh.j2 | 20 + tools/yunopackage/templates/backup.j2 | 111 +++ tools/yunopackage/templates/change_url.j2 | 53 ++ tools/yunopackage/templates/config.j2 | 109 +++ tools/yunopackage/templates/index.html | 887 ++++++++++++++++++++++ tools/yunopackage/templates/install.j2 | 284 +++++++ tools/yunopackage/templates/manifest.j2 | 179 +++++ tools/yunopackage/templates/remove.j2 | 79 ++ tools/yunopackage/templates/restore.j2 | 115 +++ tools/yunopackage/templates/upgrade.j2 | 180 +++++ 12 files changed, 2342 insertions(+) create mode 100644 tools/yunopackage/requirements.txt create mode 100644 tools/yunopackage/static/stylesheet.css create mode 100644 tools/yunopackage/templates/_common.sh.j2 create mode 100644 tools/yunopackage/templates/backup.j2 create mode 100644 tools/yunopackage/templates/change_url.j2 create mode 100644 tools/yunopackage/templates/config.j2 create mode 100644 tools/yunopackage/templates/index.html create mode 100644 tools/yunopackage/templates/install.j2 create mode 100644 tools/yunopackage/templates/manifest.j2 create mode 100644 tools/yunopackage/templates/remove.j2 create mode 100644 tools/yunopackage/templates/restore.j2 create mode 100644 tools/yunopackage/templates/upgrade.j2 diff --git a/tools/yunopackage/requirements.txt b/tools/yunopackage/requirements.txt new file mode 100644 index 0000000000..e955e75a8c --- /dev/null +++ b/tools/yunopackage/requirements.txt @@ -0,0 +1,9 @@ +Flask==3.0.0 +Flask_Misaka==1.0.0 +Flask_WTF==1.2.1 +Jinja2==3.1.2 +misaka==2.1.1 +WTForms==3.0.1 +flask_cors==4.0.0 +werkzeug==3.0.0 +markupsafe=2.1.3 diff --git a/tools/yunopackage/static/stylesheet.css b/tools/yunopackage/static/stylesheet.css new file mode 100644 index 0000000000..14fda0f5bd --- /dev/null +++ b/tools/yunopackage/static/stylesheet.css @@ -0,0 +1,316 @@ +:root { + color-scheme:light; + --yiq-contrasted-threshold: 150; + --white: hsl(0, 0%, 100%); + --white-h: 0; + --white-s: 0%; + --white-l: 100%; + --black: hsl(0, 0%, 0%); + --black-h: 0; + --black-s: 0%; + --black-l: 0%; + --blue: hsl(211, 64%, 50%); + --blue-h: 211; + --blue-s: 64%; + --blue-l: 50%; + --indigo: hsl(263, 90%, 51%); + --indigo-h: 263; + --indigo-s: 90%; + --indigo-l: 51%; + --purple: hsl(280, 61%, 50%); + --purple-h: 280; + --purple-s: 61%; + --purple-l: 50%; + --pink: hsl(332, 79%, 58%); + --pink-h: 332; + --pink-s: 79%; + --pink-l: 58%; + --red: hsl(354, 70%, 54%); + --red-h: 354; + --red-s: 70%; + --red-l: 54%; + --orange: hsl(27, 98%, 54%); + --orange-h: 27; + --orange-s: 98%; + --orange-l: 54%; + --yellow: hsl(45, 100%, 66%); + --yellow-h: 45; + --yellow-s: 100%; + --yellow-l: 66%; + --green: hsl(134, 61%, 41%); + --green-h: 134; + --green-s: 61%; + --green-l: 41%; + --teal: hsl(162, 73%, 46%); + --teal-h: 162; + --teal-s: 73%; + --teal-l: 46%; + --cyan: hsl(188, 78%, 41%); + --cyan-h: 188; + --cyan-s: 78%; + --cyan-l: 41%; + --gray-100: hsl(210, 17%, 98%); + --gray-100-h: 210; + --gray-100-s: 17%; + --gray-100-l: 98%; + --gray-200: hsl(210, 16%, 93%); + --gray-200-h: 210; + --gray-200-s: 16%; + --gray-200-l: 93%; + --gray-300: hsl(210, 14%, 89%); + --gray-300-h: 210; + --gray-300-s: 14%; + --gray-300-l: 89%; + --gray-400: hsl(210, 14%, 83%); + --gray-400-h: 210; + --gray-400-s: 14%; + --gray-400-l: 83%; + --gray-500: hsl(210, 11%, 71%); + --gray-500-h: 210; + --gray-500-s: 11%; + --gray-500-l: 71%; + --gray-600: hsl(208, 7%, 46%); + --gray-600-h: 208; + --gray-600-s: 7%; + --gray-600-l: 46%; + --gray-700: hsl(210, 9%, 31%); + --gray-700-h: 210; + --gray-700-s: 9%; + --gray-700-l: 31%; + --gray-800: hsl(210, 10%, 23%); + --gray-800-h: 210; + --gray-800-s: 10%; + --gray-800-l: 23%; + --gray-900: hsl(210, 11%, 15%); + --gray-900-h: 210; + --gray-900-s: 11%; + --gray-900-l: 15% +} + + + +h1,.h1 { + font-size:2.25rem + align="center"; +} + +h2, .h2 { + font-size: 1.35rem; +} + +h3, .h3 { + font-size: 1.26rem; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin-top:.8rem; + margin-bottom:.2rem; + font-weight:500; + line-height:1.2; +} + +body { + /* font-family: 'source_sans_proregular'; */ + font-family: FiraGO,Fira Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"; + font-size: 1em; + line-height: 2.2; + color: var(--gray-900); + text-align: left; + + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; + max-width: 85%; +} + + + + +.message { + padding: 10px; + margin: 5px; + background-color: #2980b9; + color:#FFF; +} + +.text-secondary { + color: var(--gray-600) !important; +} + +.alert { + padding: 20px; + margin: 5px; + color: #970020; + background-color: #ffd5de; +} + +.grayed_hint { + color: darkgray; +} + +.box { + border:20px solid black + padding: 50px auto; + position: relative; +} + +.code-block { + background-color: #282c34; + color: #ebf2ff; + border-radius: 5px; + padding: 10px; + + overflow: auto; + height: 400px; + + white-space: pre; + + font-family: 'Courier New', Courier, monospace; + font-size: 14px; + line-height: 1.5; +} + + + +.btn { + display:inline-block; + font-weight:400; + color:var(--gray-900); + text-align:center; + vertical-align:middle; + user-select:none; + background-color:transparent; + border:1px solid transparent; + padding:.375rem .75rem; + font-size:.9rem; + line-height:1.5; + border-radius:.25rem; + transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out +} + +.btn-primary { + color:hsla(0,0%,calc(-100 * (var(--blue-l) - calc(calc(var(--yiq-contrasted-threshold) / 2.56) * 1%))),1); + background-color:var(--blue); + border-color:var(--blue); + font-size: larger; +} +.btn-primary:hover { + color:hsla(0,0%,calc(-100 * (calc(var(--blue-l) + -7.5%) - calc(calc(var(--yiq-contrasted-threshold) / 2.56) * 1%))),1); + background-color:hsla(var(--blue-h),var(--blue-s),calc(var(--blue-l) + -7.5%),var(--blue-a, 1)); + border-color:hsla(var(--blue-h),var(--blue-s),calc(var(--blue-l) + -10%),var(--blue-a, 1)) +} +.btn-primary:focus, +.btn-primary.focus { + color:hsla(0,0%,calc(-100 * (calc(var(--blue-l) + -7.5%) - calc(calc(var(--yiq-contrasted-threshold) / 2.56) * 1%))),1); + background-color:hsla(var(--blue-h),var(--blue-s),calc(var(--blue-l) + -7.5%),var(--blue-a, 1)); + border-color:hsla(var(--blue-h),var(--blue-s),calc(var(--blue-l) + -10%),var(--blue-a, 1)); + box-shadow:0 0 0 .2rem hsla(calc((0 + var(--blue-h)) / 2),calc((0% + var(--blue-s)) / 2),calc((calc(-100 * (var(--blue-l) - calc(calc(var(--yiq-contrasted-threshold) / 2.56) * 1%))) + var(--blue-l)) / 2),.5) +} +.btn-primary.disabled, +.btn-primary:disabled { + color:hsla(0,0%,calc(-100 * (var(--blue-l) - calc(calc(var(--yiq-contrasted-threshold) / 2.56) * 1%))),1); + background-color:var(--blue); + border-color:var(--blue) +} + +.btn-center { + margin-left:auto; + margin-right:auto; + display: flex; + align-items: center; +} + +.btn-sm, +.btn-group-sm>.btn { + padding:.25rem .5rem; + //font-size:.7875rem; + line-height:1.5; + border-radius:.2rem; +} + + +.form-control { + #display: block; + #width: 100%; + #height: calc(1.5em + .75rem + 2px); + padding: .375rem .75rem; + padding-right: 0.5rem; + margin-left:0.75rem; + font-size: .9rem; + font-weight: 400; + line-height: 1.5; + color: var(--gray-700); + background-color: var(--white); + background-clip: padding-box; + border: 1px solid var(--gray-400); + border-radius: .25rem; + transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out; +} +.form-control.is-invalid { + border-color: var(--red); + padding-right: calc(1.5em + .75rem) !important; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='var%28--red%29' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='var%28--red%29' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(.375em + .1875rem) center; + background-size: calc(.75em + .375rem) calc(.75em + .375rem); +} + + + +.custom-select { + + display: inline-block; + width: 100%; + height: calc(1.5em + .75rem + 2px); + padding: .375rem 1.75rem .375rem .75rem; + font-size: .9rem; + font-weight: 400; + line-height: 1.5; + color: var(--gray-700); + vertical-align: middle; + background: var(--white) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='var%28--gray-800%29' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat; + border: 1px solid var(--gray-400); + border-radius: .25rem; + appearance: none; + +} + + +.nav { + display:flex; + flex-wrap:wrap; + padding-left:0; + margin-bottom:0; + list-style:none +} +.nav-tabs .nav-item.show .nav-link { + color:var(--gray-700); + background-color:var(--white); + border-color:var(--gray-300) var(--gray-300) var(--white) +} + +nav a { + margin-left: 50px; + // text-decoration: none; // removing links underline is a bad idea +} + +footer .nav-item:before { + /* content:"\2022"; */ + width:1rem; + display:inline-block; + margin-left:-1.15rem; + padding-top:1rem!important; + margin-top:auto!important; +} + + +.test { + color:red; +} \ No newline at end of file diff --git a/tools/yunopackage/templates/_common.sh.j2 b/tools/yunopackage/templates/_common.sh.j2 new file mode 100644 index 0000000000..ea830fd7c6 --- /dev/null +++ b/tools/yunopackage/templates/_common.sh.j2 @@ -0,0 +1,20 @@ +#!/bin/bash + +#================================================= +# COMMON VARIABLES +#================================================= + +{% if parameters["use_nodejs"] -%} +nodejs_version={{ parameters["use_nodejs_version"]}} +{% endif -%} +#================================================= +# PERSONAL HELPERS +#================================================= + +#================================================= +# EXPERIMENTAL HELPERS +#================================================= + +#================================================= +# FUTURE OFFICIAL HELPERS +#================================================= diff --git a/tools/yunopackage/templates/backup.j2 b/tools/yunopackage/templates/backup.j2 new file mode 100644 index 0000000000..1fcdc2c4e7 --- /dev/null +++ b/tools/yunopackage/templates/backup.j2 @@ -0,0 +1,111 @@ +#!/bin/bash +#### App file generated with YoloGen, the Yunohost app generator, version {{ parameters['GENERATOR_VERSION'] }}. +{% if parameters["tutorial"] -%} # This is the tutorial version of the app. +# It contains extra commands to explain what should be done in case you want to adjust some part of the script. +# Once you are done, you may remove them. +{% endif -%} +#================================================= +# GENERIC START +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +# Keep this path for calling _common.sh inside the execution's context of backup and restore scripts +source ../settings/scripts/_common.sh +source /usr/share/yunohost/helpers + +#================================================= +# DECLARE DATA AND CONF FILES TO BACKUP +#================================================= +ynh_print_info --message="Declaring files to be backed up..." + +{% if parameters["tutorial"] -%} +### N.B. : the following 'ynh_backup' calls are only a *declaration* of what needs +### to be backuped and not an actual copy of any file. The actual backup that +### creates and fill the archive with the files happens in the core after this +### script is called. Hence ynh_backups calls takes basically 0 seconds to run. +{% endif -%} + +#================================================= +# BACKUP THE APP MAIN DIR +#================================================= + +ynh_backup --src_path="$install_dir" + +{% if parameters["data_dir"] -%} +#================================================= +# BACKUP THE DATA DIR +#================================================= + + {% if parameters["tutorial"] -%} +# The --is_big parameters ensure this folder is not included in the backup by default (taking less space), except if BACKUP_CORE_ONLY=0 is passed before the backup command. You might want to document that for your users. + {% endif -%} +# Only relevant if there is a "data_dir" resource for this app +ynh_backup --src_path="$data_dir" --is_big +{% endif -%} +#================================================= +# BACKUP THE NGINX CONFIGURATION +#================================================= + +ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf" + +{% if parameters["use_php"] -%} +#================================================= +# BACKUP THE PHP-FPM CONFIGURATION +#================================================= + +ynh_backup --src_path="/etc/php/$phpversion/fpm/pool.d/$app.conf" +{% endif -%} +{% if parameters["use_fail2ban"] -%} +#================================================= +# BACKUP FAIL2BAN CONFIGURATION +#================================================= + +ynh_backup --src_path="/etc/fail2ban/jail.d/$app.conf" +ynh_backup --src_path="/etc/fail2ban/filter.d/$app.conf" +{% endif -%} +{% if parameters["use_logrotate"] -%} +#================================================= +# SPECIFIC BACKUP +#================================================= +# BACKUP LOGROTATE +#================================================= + +ynh_backup --src_path="/etc/logrotate.d/$app" +{% endif -%} +{% if parameters["use_systemd_service"] -%} +#================================================= +# BACKUP SYSTEMD +#================================================= + +ynh_backup --src_path="/etc/systemd/system/$app.service" +{% endif -%} +#================================================= +# BACKUP VARIOUS FILES +#================================================= +{% if parameters["use_cron"] -%} +ynh_backup --src_path="/etc/cron.d/$app" +{% endif -%} +ynh_backup --src_path="/etc/$app/" + + +{% if parameters["use_db"] -%} +#================================================= +# BACKUP THE DATABASE +#================================================= +ynh_print_info --message="Backing up the {{ parameters['use_db'] }} database..." + +### (However, things like MySQL dumps *do* take some time to run, though the +### copy of the generated dump to the archive still happens later) + +{% if parameters["use_db"] == 'mysql' -%} +ynh_mysql_dump_db --database="$db_name" > db.sql +{% elif parameters["use_db"] == 'postgresql' -%} +ynh_psql_dump_db --database="$db_name" > db.sql +{% endif -%} +{% endif -%} +#================================================= +# END OF SCRIPT +#================================================= + +ynh_print_info --message="Backup script completed for $app. (YunoHost will then actually copy those files to the archive)." diff --git a/tools/yunopackage/templates/change_url.j2 b/tools/yunopackage/templates/change_url.j2 new file mode 100644 index 0000000000..9d577d2ac9 --- /dev/null +++ b/tools/yunopackage/templates/change_url.j2 @@ -0,0 +1,53 @@ +#!/bin/bash +#### App file generated with YoloGen, the Yunohost app generator, version {{ parameters['GENERATOR_VERSION'] }}. +{% if parameters["tutorial"] -%} # This is the tutorial version of the app. +# It contains extra commands to explain what should be done in case you want to adjust some part of the script. +# Once you are done, you may remove them. +{% endif -%} +#================================================= +# GENERIC STARTING +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +source _common.sh +source /usr/share/yunohost/helpers + +#================================================= +# STANDARD MODIFICATIONS +#================================================= +{% if parameters["use_systemd_service"] -%} +# STOP SYSTEMD SERVICE +#================================================= +ynh_script_progression --message="Stopping a systemd service..." --weight=1 + +ynh_systemd_action --service_name=$app --action="stop" --log_path="/var/log/$app/$app.log" +{% endif -%} +#================================================= +# MODIFY URL IN NGINX CONF +#================================================= +ynh_script_progression --message="Updating NGINX web server configuration..." --weight=1 + +ynh_change_url_nginx_config + +#================================================= +# SPECIFIC MODIFICATIONS +#================================================= +# ... +#================================================= + +#================================================= +# GENERIC FINALISATION +#================================================= +{% if parameters["use_systemd_service"] -%} +# START SYSTEMD SERVICE +#================================================= +ynh_script_progression --message="Starting a systemd service..." --weight=1 + +ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" +{% endif -%} +#================================================= +# END OF SCRIPT +#================================================= + +ynh_script_progression --message="Change of URL completed for $app" --last diff --git a/tools/yunopackage/templates/config.j2 b/tools/yunopackage/templates/config.j2 new file mode 100644 index 0000000000..4d16aa8da5 --- /dev/null +++ b/tools/yunopackage/templates/config.j2 @@ -0,0 +1,109 @@ +#!/bin/bash +#### App file generated with YoloGen, the Yunohost app generator, version {{ parameters['GENERATOR_VERSION'] }}. +{% if parameters["tutorial"] -%} # This is the tutorial version of the app. +# It contains extra commands to explain what should be done in case you want to adjust some part of the script. +# Once you are done, you may remove them. +{% endif -%} + +{% if parameters["tutorial"] -%} +# In simple cases, you don't need a config script. + +# With a simple config_panel.toml, you can write in the app settings, in the +# upstream config file or replace complete files (logo ...) and restart services. + +# The config scripts allows you to go further, to handle specific cases +# (validation of several interdependent fields, specific getter/setter for a value, +# display dynamic informations or choices, pre-loading of config type .cube... ). +{% endif -%} +#================================================= +# GENERIC STARTING +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +source /usr/share/yunohost/helpers + +ynh_abort_if_errors + +#================================================= +# RETRIEVE ARGUMENTS +#================================================= + +install_dir=$(ynh_app_setting_get --app=$app --key=install_dir) + +#================================================= +# SPECIFIC GETTERS FOR TOML SHORT KEY +#================================================= + +get__amount() { + # Here we can imagine to have an API call to stripe to know the amount of donation during a month + local amount = 200 + + # It's possible to change some properties of the question by overriding it: + if [ $amount -gt 100 ] + then + cat << EOF +style: success +value: $amount +ask: + en: A lot of donation this month: **$amount €** +EOF + else + cat << EOF +style: danger +value: $amount +ask: + en: Not so much donation this month: $amount € +EOF + fi +} + +get__prices() { + local prices = "$(grep "DONATION\['" "$install_dir/settings.py" | sed -r "s@^DONATION\['([^']*)'\]\['([^']*)'\] = '([^']*)'@\1/\2/\3@g" | sed -z 's/\n/,/g;s/,$/\n/')" + if [ "$prices" == "," ]; + then + # Return YNH_NULL if you prefer to not return a value at all. + echo YNH_NULL + else + echo $prices + fi +} + + +#================================================= +# SPECIFIC VALIDATORS FOR TOML SHORT KEYS +#================================================= +validate__publishable_key() { + + # We can imagine here we test if the key is really a publisheable key + (is_secret_key $publishable_key) && + echo 'This key seems to be a secret key' +} + +#================================================= +# SPECIFIC SETTERS FOR TOML SHORT KEYS +#================================================= +set__prices() { + + #--------------------------------------------- + # IMPORTANT: setter are trigger only if a change is detected + #--------------------------------------------- + for price in $(echo $prices | sed "s/,/ /"); do + frequency=$(echo $price | cut -d/ -f1) + currency=$(echo $price | cut -d/ -f2) + price_id=$(echo $price | cut -d/ -f3) + sed "d/DONATION\['$frequency'\]\['$currency'\]" "$install_dir/settings.py" + + echo "DONATION['$frequency']['$currency'] = '$price_id'" >> "$install_dir/settings.py" + done + + #--------------------------------------------- + # IMPORTANT: to be able to upgrade properly, you have to saved the value in settings too + #--------------------------------------------- + ynh_app_setting_set $app prices $prices +} + +#================================================= +# GENERIC FINALIZATION +#================================================= +ynh_app_config_run $1 diff --git a/tools/yunopackage/templates/index.html b/tools/yunopackage/templates/index.html new file mode 100644 index 0000000000..ac6750536a --- /dev/null +++ b/tools/yunopackage/templates/index.html @@ -0,0 +1,887 @@ + + + + + + + + + + + + + + + + + + + My Webpage + + + + + +

    Version: {{ parameters['GENERATOR_VERSION'] }}

    +

    Formulaire de génération d'une application Yunohost

    +
    + {{ main_form.hidden_tag() }} + + + {{ main_form.tutorial.label }} {{ main_form.tutorial() }} + {# TODO : this doesn't work, should be changed on the fly. Is it worth the trouble ? + {% if main_form.tutorial %} + L'application générée contiendra des commentaires additionnels pour faciliter la compréhension + {% else %} + L'application générée ne contiendra que le minimum nécessaire + {% endif %} +
    + #} +
    + En mode tutoriel, l'application générée contiendra des commentaires additionnels pour faciliter la compréhension. En version épurée, l'application générée ne contiendra que le minimum nécessaire. + + +

    L'application à empaquetter dans Yunohost

    +

    Cette partie sert à indiquer comment le logiciel est intégré à Yunohost.

    + {{ main_form.app_name.label }} {{ main_form.app_name()}} +
    + {{ main_form.app_id.label}} {{ main_form.app_id() }} _ynh +
    + + +
    + {{ main_form.description_en.label}} + {{ main_form.description_en(style="height: + 2.5em;min-height: 2em; max-height: 4em;flex-grow: 1;box-sizing: border-box;")}} +
    +
    +
    + {{ main_form.description_fr.label}} {{ main_form.description_fr(style=" + height: + 2.5em;min-height: 1em; max-height: 4em;flex-grow: 1;box-sizing: border-box;")}} +
    +
    + +

    Intégration

    +

    Cette partie sert à indiquer comment le logiciel est intégré à Yunohost.

    +
    + + + {{ main_form.version.label}} {{ main_form.version()}} +
    + {{ main_form.maintainers.label}} {{ main_form.maintainers(style="width: 60%;")}} +
    + {{ main_form.multi_instance.label}} {{ main_form.multi_instance()}} +
    +
    + {{ main_form.architectures.label}} {{ main_form.architectures()}} +
    +
    + {{ main_form.ldap.label}} {{ main_form.ldap()}} +
    + {{ main_form.sso.label}} {{ main_form.sso()}} +
    + +

    Informations sur le logiciel

    +

    Cette partie donne des informations génériques sur le logiciel.

    +
    + {{ main_form.license.label}} {{ main_form.license()}} +
    + {{ main_form.website.label}} {{ main_form.website()}} +
    + {{ main_form.demo.label}} {{ main_form.demo()}} +
    + {{ main_form.admindoc.label}} {{ main_form.admindoc()}} +
    + {{ main_form.userdoc.label}} {{ main_form.userdoc()}} +
    + {{ main_form.code.label}} {{ main_form.code()}} + + +

    Paramétrage de l'application

    +

    Cette partie sert à indiquer comment configurer l'application côté Yunohost.

    + + +
    + Dossier des données + {{ main_form.data_dir.label}} {{ main_form.data_dir()}} +
    + {{ main_form.data_subdirs.label}} {{ main_form.data_subdirs()}} +
    +
    + {{ main_form.supports_change_url.label}} {{ main_form.supports_change_url()}} +
    + + +
    + Paramètres de langue +
    +
    + {{ main_form.language.label}} {{ main_form.language()}} +
    +
    + {{ main_form.default_language.label}} {{ + main_form.default_language()}} + +
    + +
    +
    + +
    + + + {{ main_form.visibility.label}} {{ main_form.visibility()}} +
    + {{ main_form.use_logrotate.label}} {{ main_form.use_logrotate()}} +
    + + + {{ main_form.use_fail2ban.label}} {{ main_form.use_fail2ban(onchange="showForm(this, 'fail2ban')")}} + + {%- if parameters['use_fail2ban'] == True -%} {# Not shown by default, so we show it if needed #} + + {%- else -%} + + {%- endif -%} +
    + Configuration pour fail2ban + {{ main_form.fail2ban_regex.label}} {{ main_form.fail2ban_regex(style="width:60%;")}} +
    + +
    + + + + {{ main_form.use_cron.label }} {{ main_form.use_cron(onchange="showForm(this, 'cron')") }} + + {%- if parameters['use_cron'] == True -%} {# Not shown by default, so we show it if needed #} + + {%- else -%} + + {%- endif -%} +
    + Configuration pour CRON + {{ main_form.cron_config_file.label}} {{ main_form.cron_config_file()}} +
    + +
    + + + + +
    + Configuration pour le serveur NGINX + {{ main_form.nginx_config_file.label }}
    + {{ main_form.nginx_config_file() }} +
    +
    + + + + {{ main_form.use_systemd_service.label}} {{ main_form.use_systemd_service(onchange="showForm(this, 'SystemD')")}} +
    + + {%- if parameters['use_systemd_service'] == True -%} {# Not shown by default, so we show it if needed #} + + {%- else -%} + + {%- endif -%} +
    + Configuration pour le service SystemD + {{ main_form.systemd_service_description.label }} {{ main_form.systemd_service_description() }}
    + + {{ main_form.systemd_config_file.label }}
    + {{ main_form.systemd_config_file() }} +
    +
    + + + {{ main_form.use_custom_config_file.label}} {{ main_form.use_custom_config_file(onchange="showForm(this, + 'custom_config')")}} +
    + + {%- if parameters['use_custom_config_file'] == True -%} {# Not shown by default, so we show it if needed #} + + {%- else -%} + + {%- endif -%} +
    + Fichier de configuration personnalisé + {{ main_form.custom_config_file.label }} {{ main_form.custom_config_file() }}
    + + {{ main_form.custom_config_file_content.label }}
    + {{ main_form.custom_config_file_content() }} +
    + + + + + +

    Questions à poser pendant l'installation

    +

    Cette partie sert à indiquer les questions qui devront être posées. +
    + NB: seules des questions standard sont proposées ici, il faudra éventuellement compléter à la main en + suivant le modèle des autres questions. +

    + + {{ main_form.use_whole_domain.label}} {{ main_form.use_whole_domain()}} +
    + + +

    Source du logiciel et dépendances

    + + {{ main_form.source_url.label}} {{ main_form.source_url()}} +
    + {{ main_form.sha256sum.label}} {{ main_form.sha256sum()}} +
    + {{ main_form.auto_update.label}} {{ main_form.auto_update()}} +
    + {{ main_form.dependencies.label}} {{ main_form.dependencies(style="width:40%;")}} +

    + + + {{ main_form.use_db.label }} {{ main_form.use_db() }} +
    + + +

    Utilisation de PHP

    + {{ main_form.use_php.label}} {{ main_form.use_php(onchange="showForm(this, 'PHP')") }}
    + + {%- if parameters['use_php'] == True -%} {# Not shown by default, so we show it if needed #} + + {%- else -%} + + {%- endif -%} +
    + Fichier de configuration pour PHP + {{ main_form.php_config_file.label }} {{ main_form.php_config_file()}}
    + {{ main_form.php_config_file_content.label }} {{ main_form.php_config_file_content()}}
    + +
    + + +

    Utilisation de NodeJS

    + {{ main_form.use_nodejs.label}} {{ main_form.use_nodejs(onchange="showForm(this, 'NodeJS')") }}
    + + {%- if parameters['use_nodejs'] == True -%} {# Not shown by default, so we show it if needed #} + + {%- else -%} + + {%- endif -%} +
    + Configuration pour NodeJS + {{ main_form.use_nodejs_version.label}} {{ main_form.use_nodejs_version() }}
    + {{ main_form.use_nodejs_needs_yarn.label}} {{ main_form.use_nodejs_needs_yarn() }}
    + +
    + + +

    Utilisation de Python

    + {{ main_form.use_python.label}} {{ main_form.use_python(onchange="showForm(this, 'Python')") }}
    + + {%- if parameters['use_python'] == True -%} {# Not shown by default, so we show it if needed #} + + {%- else -%} + + {%- endif -%} +
    + Configuration pour Python + {{ main_form.python_dependencies_type.label}} {{ main_form.python_dependencies_type(onchange="showForm(this, + 'Python_dependencies')") }}
    + +
    + {%- if parameters['python_dependencies_type'] == 'requirements.txt' -%} + {{ main_form.python_requirements.label}} {{ main_form.python_requirements() }} + {%- else -%} + {{ main_form.python_dependencies_list.label}} {{ main_form.python_dependencies_list() }} + {%- endif -%} +
    +
    +
    + + +
    + {{ main_form.submit(class="btn btn-primary btn-sm btn-center") }} + + {% if parameters['invalid_form'] %} +

    Formulaire invalide, veuillez vérifier quel champ contient une erreur svp.

    + {% endif %} +
    + + +
    + +{% if parameters['preview'] %} {# is defined #} +
    + Afficher le code des fichiers principaux +

    Voici le code de l'application {{parameters['app.name']}}

    + + + + + + +

    Manifeste (manifest.toml)

    +
    +
    +
    +{% set lines = template_manifest_content.splitlines() %}
    +{% for line in lines %} {{ line }}
    +{% endfor %}
    +
    +
    +
    + + + + + + + + + +

    Script d'installation (install)

    +
    +
    +
    +{% set lines = template_install_content.splitlines() %}
    +{% for line in lines %} {{ line }}
    +{% endfor %}
    +
    +
    +
    + + + + + + + + + +

    Script de suppression (remove)

    +
    +
    +
    +{% set lines = template_remove_content.splitlines() %}
    +{% for line in lines %} {{ line }}
    +{% endfor %}
    +
    +
    +
    + + + + + + + + + +

    Script de sauvegarde (backup)

    +
    +
    +
    +{% set lines = template_backup_content.splitlines() %}
    +{% for line in lines %} {{ line }}
    +{% endfor %}
    +
    +
    +
    + + + + + + + + + +

    Script de restauration (restore)

    +
    +
    +
    +{% set lines = template_restore_content.splitlines() %}
    +{% for line in lines %} {{ line }}
    +{% endfor %}
    +
    +
    +
    + + + + + + + + + +

    Script de mise à jour (upgrade)

    +
    +
    +
    +{% set lines = template_upgrade_content.splitlines() %}
    +{% for line in lines %} {{ line }}
    +{% endfor %}
    +
    +
    +
    + + + + + + + + + +

    Script de configuration spéciale (config)

    +
    +
    +
    +{% set lines = template_config_content.splitlines() %}
    +{% for line in lines %} {{ line }}
    +{% endfor %}
    +
    +
    +
    + + + + + + + + + + {%- if template_change_url_content -%} +

    Script de changement d'URL (change_url)

    +
    +
    +
    +{% set lines = template_change_url_content.splitlines() %}
    +{% for line in lines %} {{ line }}
    +{% endfor %}
    +
    +
    +
    + + + + + + + {% endif %} + + + {%- if systemd_config_file -%} +

    Fichier de configuration du service SystemD (systemd.service)

    +
    +
    +            
    +            {{parameters['systemd_config_file']}}
    +            
    +        
    +
    + + + + + + + {% endif %} + + + {%- if nginx_config_file -%} +

    Fichier de configuration de NGINX (nginx.conf)

    +
    +
    +            
    +            {{parameters['nginx_config_file']}}
    +            
    +        
    +
    + + + + + + + {% endif %} + + + {%- if custom_config_file -%} +

    Fichier de configuration personnalisé ({{custom_config_file}})

    +
    +
    +            
    +            {{parameters['custom_config_file_content']}}
    +            
    +        
    +
    + + + + + + + {% endif %} + + + {%- if cron_config_file -%} +

    Fichier de configuration de tâche CRON (task.cron)

    +
    +
    +            
    +            {{parameters['cron_config_file']}}
    +            
    +        
    +
    + + + + + + + {% endif %} + + +
    + +

    + +

    + +{% endif %} + + + + + diff --git a/tools/yunopackage/templates/install.j2 b/tools/yunopackage/templates/install.j2 new file mode 100644 index 0000000000..c3a926b2d9 --- /dev/null +++ b/tools/yunopackage/templates/install.j2 @@ -0,0 +1,284 @@ +#!/bin/bash +#### App file generated with YoloGen, the Yunohost app generator, version {{ parameters['GENERATOR_VERSION'] }}. +{% if parameters["tutorial"] -%} # This is the tutorial version of the app. +# It contains extra commands to explain what should be done in case you want to adjust some part of the script. +# Once you are done, you may remove them. +{% endif -%} +#================================================= +# GENERIC START +#================================================= +# IMPORT GENERIC HELPERS +#================================================= +source _common.sh +source /usr/share/yunohost/helpers + +{% if parameters["tutorial"] -%} +# Install parameters are automatically saved as settings +# +# Settings are automatically loaded as bash variables +# in every app script context, therefore typically these will exist: +# - $domain +# - $path +# - $language +# ... etc +# +# Resources defined in the manifest are provisioned prior to this script +# and corresponding settings are also available, such as: +# - $install_dir +# - $port +# - $db_name +# ... + +# +# $app is the app id (i.e. 'example' for first install, +# or 'example__2', '__3', ... for multi-instance installs) +# +{% endif -%} + +#================================================= +# INSTALL DEPENDENCIES +#================================================= +ynh_script_progression --message="Installing dependencies..." --weight=10 + +{% if parameters["use_nodejs_needs_yarn"] -%} +# Install Nodejs +ynh_exec_warn_less ynh_install_nodejs --nodejs_version=$nodejs_version +{% endif -%} + +#================================================= +# APP "BUILD" (DEPLOYING SOURCES, VENV, COMPILING ETC) +#================================================= +# DOWNLOAD, CHECK AND UNPACK SOURCE +#================================================= +ynh_script_progression --message="Setting up source files..." --weight=1 + +{% if parameters["tutorial"] -%} +### `ynh_setup_source` is used to install an app from a zip or tar.gz file, +### downloaded from an upstream source, like a git repository. +### `ynh_setup_source` use the file conf/app.src +{% endif -%} + +# Download, check integrity, uncompress and patch the source from app.src +ynh_setup_source --dest_dir="$install_dir" + +{% if parameters["tutorial"] -%} +# $install_dir will automatically be initialized with some decent +# permission by default ... however, you may need to recursively reapply +# ownership to all files such as after the ynh_setup_source step +{% endif -%} +chown -R $app:www-data "$install_dir" {# TODO : we may need to allow people to configure this #} + +#================================================= +# SYSTEM CONFIGURATION +#================================================= +ynh_script_progression --message="Adding system configurations related to $app..." --weight=1 +{% if use_php -%} + +{% if version == "tutorial" -%} +### `ynh_add_fpm_config` is used to set up a PHP config. +### You can remove it if your app doesn't use PHP. +### `ynh_add_fpm_config` will use the files conf/php-fpm.conf +### If you're not using these lines: +### - You can remove these files in conf/. +### - Remove the section "BACKUP THE PHP-FPM CONFIGURATION" in the backup script +### - Remove also the section "REMOVE PHP-FPM CONFIGURATION" in the remove script +### - As well as the section "RESTORE THE PHP-FPM CONFIGURATION" in the restore script +### with the reload at the end of the script. +### - And the section "PHP-FPM CONFIGURATION" in the upgrade script +### But wait : This should have been handled by our app generator ;) +{% endif -%} + +ynh_script_progression --message="Adding {{php_version}} configurations related to $app..." --weight=1 +# Create a dedicated PHP-FPM config using the conf/php-fpm.conf or conf/extra_php-fpm.conf +ynh_add_fpm_config +{% endif -%} + + +{% if use_php -%} + + {% if version == "tutorial" -%} +### `ynh_add_fpm_config` is used to set up a PHP config. +### You can remove it if your app doesn't use PHP. +### `ynh_add_fpm_config` will use the files conf/php-fpm.conf +### If you're not using these lines: +### - You can remove these files in conf/. +### - Remove the section "BACKUP THE PHP-FPM CONFIGURATION" in the backup script +### - Remove also the section "REMOVE PHP-FPM CONFIGURATION" in the remove script +### - As well as the section "RESTORE THE PHP-FPM CONFIGURATION" in the restore script +### with the reload at the end of the script. +### - And the section "PHP-FPM CONFIGURATION" in the upgrade script + {% endif -%} + +ynh_script_progression --message="Adding {{php_version}} configurations related to $app..." --weight=1 +# Create a dedicated PHP-FPM config using the conf/php-fpm.conf or conf/extra_php-fpm.conf +ynh_add_fpm_config +{% endif -%} + +# Create a dedicated NGINX config using the conf/nginx.conf template +ynh_add_nginx_config + +{% if parameters["use_systemd_service"] -%} + {% if version == "tutorial" -%} +### `ynh_systemd_config` is used to configure a systemd script for an app. +### It can be used for apps that use sysvinit (with adaptation) or systemd. +### Have a look at the app to be sure this app needs a systemd script. +### `ynh_systemd_config` will use the file conf/systemd.service +### If you're not using these lines: +### - You can remove those files in conf/. +### - Remove the section "BACKUP SYSTEMD" in the backup script +### - Remove also the section "STOP AND REMOVE SERVICE" in the remove script +### - As well as the section "RESTORE SYSTEMD" in the restore script +### - And the section "SETUP SYSTEMD" in the upgrade script + {% endif -%} + +# Create a dedicated systemd config +ynh_add_systemd_config + + {% if version == "tutorial" -%} +### `yunohost service add` integrates a service in YunoHost. It then gets +### displayed in the admin interface and through the others `yunohost service` commands. +### (N.B.: this line only makes sense if the app adds a service to the system!) +### If you're not using these lines: +### - You can remove these files in conf/. +### - Remove the section "REMOVE SERVICE INTEGRATION IN YUNOHOST" in the remove script +### - As well as the section "INTEGRATE SERVICE IN YUNOHOST" in the restore script +### - And the section "INTEGRATE SERVICE IN YUNOHOST" in the upgrade script + {% endif -%} + +yunohost service add $app --description="{{ parameters['systemd_service_description'] }}" --log="/var/log/$app/$app.log" + + {% if version == "tutorial" -%} +### Additional options starting with 3.8: +### +### --needs_exposed_ports "$port" a list of ports that needs to be publicly exposed +### which will then be checked by YunoHost's diagnosis system +### (N.B. DO NOT USE THIS is the port is only internal!!!) +### +### --test_status "some command" a custom command to check the status of the service +### (only relevant if 'systemctl status' doesn't do a good job) +### +### --test_conf "some command" some command similar to "nginx -t" that validates the conf of the service +### +### Re-calling 'yunohost service add' during the upgrade script is the right way +### to proceed if you later realize that you need to enable some flags that +### weren't enabled on old installs (be careful it'll override the existing +### service though so you should re-provide all relevant flags when doing so) + +### `ynh_use_logrotate` is used to configure a logrotate configuration for the logs of this app. +### Use this helper only if there is effectively a log file for this app. +### If you're not using this helper: +### - Remove the section "BACKUP LOGROTATE" in the backup script +### - Remove also the section "REMOVE LOGROTATE CONFIGURATION" in the remove script +### - As well as the section "RESTORE THE LOGROTATE CONFIGURATION" in the restore script +### - And the section "SETUP LOGROTATE" in the upgrade script + {% endif -%} +{% endif -%} + +# Use logrotate to manage application logfile(s) +ynh_use_logrotate + +{% if parameters["use_fail2ban"] -%} +# Create a dedicated Fail2Ban config +ynh_add_fail2ban_config --logpath="/var/log/nginx/${domain}-error.log" --failregex="{{ parameters['fail2ban_regex'] }}" +{% endif -%} + +{% if parameters["use_cron"] -%} +#================================================= +# ADD A CRON JOB +#================================================= +cron_path="/etc/cron.d/$app" +ynh_add_config --template="../conf/task.cron" --destination="$cron_path" +chown root: "$cron_path" +chmod 644 "$cron_path" +{% endif -%} + +#================================================= +# APP INITIAL CONFIGURATION +#================================================= +# ADD A CONFIGURATION +#================================================= +ynh_script_progression --message="Adding a configuration file..." --weight=1 + +{% if version == "tutorial" -%} +### You can add specific configuration files. +### +### Typically, put your template conf file in ../conf/your_config_file +### The template may contain strings such as __FOO__ or __FOO_BAR__, +### which will automatically be replaced by the values of $foo and $foo_bar +### +### ynh_add_config will also keep track of the config file's checksum, +### which later during upgrade may allow to automatically backup the config file +### if it's found that the file was manually modified +### +### Check the documentation of `ynh_add_config` for more info. +{% endif -%} + +ynh_add_config --template="{{ parameters['custom_config_file'] }}" --destination="$install_dir/{{ parameters['custom_config_file'] }}" + +# FIXME: this should be handled by the core in the future +# You may need to use chmod 600 instead of 400, +# for example if the app is expected to be able to modify its own config +chmod 400 "$install_dir/{{ parameters['custom_config_file'] }}" +chown $app:$app "$install_dir/{{ parameters['custom_config_file'] }}" + +### For more complex cases where you want to replace stuff using regexes, +### you shoud rely on ynh_replace_string (which is basically a wrapper for sed) +### When doing so, you also need to manually call ynh_store_file_checksum +### +### ynh_replace_string --match_string="match_string" --replace_string="replace_string" --target_file="$install_dir/some_config_file" +### ynh_store_file_checksum --file="$install_dir/some_config_file" + +{% if parameters["use_nodejs_needs_yarn"] -%} +#================================================= +# INSTALL YARN +#================================================= +ynh_script_progression --message="Installing yarn dependency..." --weight=15 + +pushd $install_dir + ynh_use_nodejs + ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH yarn install +popd +{% endif -%} + +#================================================= +# SETUP APPLICATION WITH CURL +#================================================= + +{% if version == "tutorial" -%} +### Use these lines only if the app installation needs to be finalized through +### web forms. We generally don't want to ask the final user, +### so we're going to use curl to automatically fill the fields and submit the +### forms. +{% endif -%} + +#### TODO in Yunohost App Generator +# Installation with curl +ynh_script_progression --message="Finalizing installation..." --weight=1 +ynh_local_curl "/INSTALL_PATH" "key1=value1" "key2=value2" "key3=value3" + +#================================================= +# GENERIC FINALIZATION +#================================================= +{% if parameters["use_systemd_service"] -%} +# START SYSTEMD SERVICE +#================================================= +ynh_script_progression --message="Starting a systemd service..." --weight=1 + + +{% if version == "tutorial" -%} +### `ynh_systemd_action` is used to start a systemd service for an app. +### Only needed if you have configure a systemd service +### If you're not using these lines: +### - Remove the section "STOP SYSTEMD SERVICE" and "START SYSTEMD SERVICE" in the backup script +### - As well as the section "START SYSTEMD SERVICE" in the restore script +### - As well as the section"STOP SYSTEMD SERVICE" and "START SYSTEMD SERVICE" in the upgrade script +### - And the section "STOP SYSTEMD SERVICE" and "START SYSTEMD SERVICE" in the change_url script +{% endif -%} + +# Start a systemd service +ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" +{% endif -%} +#================================================= +# END OF SCRIPT +#================================================= +ynh_script_progression --message="Installation of $app completed" --last diff --git a/tools/yunopackage/templates/manifest.j2 b/tools/yunopackage/templates/manifest.j2 new file mode 100644 index 0000000000..510a89222d --- /dev/null +++ b/tools/yunopackage/templates/manifest.j2 @@ -0,0 +1,179 @@ +packaging_format = 2 + +id = "{{ parameters['app_id'] }}" +name = "{{ parameters['app_name'] }}" + +{% if parameters['tutorial'] -%} +{% endif -%} + + +description.en = "{{ parameters['description_en'] }}" +description.fr = "{{ parameters['description_fr'] }}" + +version = "{{ parameters['version'] }}" + +maintainers = ["{{ parameters['maintainers'] }}"] + +[upstream] +# NB: Only the "license" key is mandatory. Remove entries for which there's no relevant data +license = "{{ parameters['license'] }}" +website = "{{ parameters['website'] }}" +demo = "{{ parameters['demo'] }}" +admindoc = "{{ parameters['admindoc'] }}" +userdoc = "{{ parameters['userdoc'] }}" +code = "{{ parameters['code'] }}" +# FIXME: optional but recommended if relevant, this is meant to contain the Common Platform Enumeration, which is sort of a standard id for applications defined by the NIST. In particular, YunoHost may use this is in the future to easily track CVE (=security reports) related to apps. The CPE may be obtained by searching here: https://nvd.nist.gov/products/cpe/search. For example, for Nextcloud, the CPE is 'cpe:2.3:a:nextcloud:nextcloud' (no need to include the version number) +cpe = "???" +# FIXME: optional but recommended (or remove if irrelevant / not applicable). This is meant to be an URL where people can financially support this app, especially when its development is based on volunteers and/or financed by its community. YunoHost may later advertise it in the webadmin. +fund = "???" + + +[integration] +{% if parameters['yunohost_required_version'] -%} +yunohost = '>= {{ parameters['yunohost_required_version'] }}' +{% else -%} +yunohost = ">= 11.1.21" +{% endif -%} + +{% if parameters['tutorial'] -%} +# List of supported archs using the dpkg --print-architecture nomenclature (amd64/i386/armhf/arm64), for example: ["amd64", "i386'] +{% endif -%} +architectures = "{{ parameters['architectures'] }}" # TODO : handle the "all" option (no ["all"]) +multi_instance = {{ parameters['multi_instance'] }} +ldap = {{ parameters['ldap'] }} +sso = {{ parameters['sso'] }} +# FIXME: replace with an **estimate** minimum disk and RAM requirements. e.g. 20M, 400M, 1G... You may have have a look at CI results +disk = "50M" +ram.build = "50M" +ram.runtime = "50M" + +[install] + [install.domain] + {% if parameters['tutorial'] -%} + # this is a generic question - ask strings are automatically handled by YunoHost's core + {% endif -%} + type = "domain" + + {% if not parameters['use_whole_domain'] -%} + [install.path] + {% if parameters['tutorial'] -%} + # this is a generic question - ask strings are automatically handled by YunoHost's core + {% endif -%} + type = "path" + default = "/example" + {% endif -%} + + [install.init_main_permission] + # this is a generic question - ask strings are automatically handled by YunoHost's core + # This won't be saved as setting and will instead be used to initialize the SSOwat permission + type = "group" + default = "{{ parameters['visibility'] }}" + + [install.language] + ask.en = "Choose the application language" + ask.fr = "Choisissez la langue de l'application" + type = "select" + choices = {{ parameters['language'] |safe }} + default = "{{ parameters['default_language'] }}" + + [install.admin] + {% if parameters['tutorial'] -%} + # this is a generic question - ask strings are automatically handled by YunoHost's core + type = "user" + {% endif -%} + + [install.password] + {% if parameters['tutorial'] -%} + # this is a generic question - ask strings are automatically handled by YunoHost's core + # Note that user-provided passwords questions are not automatically saved as setting + {% endif -%} + help.en = "Use the help field to add an information for the admin about this question." + help.fr = "Utilisez le champ aide pour ajouter une information à l'intention de l'administrateur à propos de cette question." + type = "password" + +[resources] + {% if parameters['tutorial'] -%} + # See the packaging documentation for the full set + # of explanation regarding the behavior and properties for each of those + {% endif -%} + + [resources.sources] + + [resources.sources.main] + # This will pre-fetch the asset which can then be deployed during the install/upgrade scripts with : + # ynh_setup_source --dest_dir="$install_dir" + # You can also define other assets than "main" and add --source_id="foobar" in the previous command + url = "{{parameters['source_url']}}" + sha256 = "{{parameters['sha256sum']}}" + + # These infos are used by https://github.com/YunoHost/apps/blob/master/tools/autoupdate_app_sources/autoupdate_app_sources.py + # to auto-update the previous asset urls and sha256sum + manifest version + # assuming the upstream's code repo is on github and relies on tags or releases + # See the 'sources' resource documentation for more details + + {% if parameters['auto_update'] -%} + autoupdate.strategy = "latest_github_tag" + {% else -%} + # autoupdate.strategy = "latest_github_tag" + {% endif -%} + + [resources.system_user] + {% if parameters['tutorial'] -%} + # This will provision/deprovision a unix system user + {% endif -%} + + [resources.install_dir] + {% if parameters['tutorial'] -%} + # This will create/remove the install dir as /var/www/$app + # and store the corresponding setting $install_dir + {% endif -%} + + {% if parameters['data_dir'] %} + [resources.data_dir] + {% if parameters['tutorial'] -%} + # This will create/remove the data dir as /home/yunohost.app/$app + # and store the corresponding setting $data_dir + {% endif -%} + {% if parameters['data_subdirs'] -%} + subdirs = {{ parameters['data_subdirs'].split(",") |safe}} + {% endif -%} + {% endif -%} + + [resources.permissions] + {% if parameters['tutorial'] -%} + # This will configure SSOwat permission for $domain/$path/ + # The initial allowed group of user is configured via the init_main_permission question (public=visitors, private=all_users) + {% endif -%} + main.url = "/" + + [resources.ports] + {% if parameters['tutorial'] -%} + # This will pick a random port for reverse-proxying and store it as the $port setting + {% endif -%} + + {% if parameters['dependencies'] or parameters['use_nodejs_needs_yarn'] -%} + [resources.apt] + {% if parameters['tutorial'] -%} + # This will automatically install/uninstall the following apt packages + # and implicitly define the $phpversion setting as 8.0 (if phpX.Y-foobar dependencies are listed) + {% endif -%} + packages = "{{ parameters['dependencies'] }} {% if parameters['use_db'] != 'false' -%} {{ parameters['use_db'] }} {% endif -%}" + {% endif -%} + + {% if parameters['tutorial'] -%} + {% if parameters['use_nodejs_needs_yarn'] -%} + # This will configure an extra repository to install yarn dependency + extras.yarn.repo = "deb https://dl.yarnpkg.com/debian/ stable main" + extras.yarn.key = "https://dl.yarnpkg.com/debian/pubkey.gpg" + extras.yarn.packages = "yarn" + {% endif -%} + {% endif -%} + + {% if parameters['use_db'] != 'false' -%} + [resources.database] + {% if parameters['tutorial'] -%} + # This will automatically provision/deprovison a database and store the corresponding credentials in settings $db_user, $db_name, $db_pwd + {% endif -%} + type = "{{ parameters['use_db'] }}" + {% endif -%} + diff --git a/tools/yunopackage/templates/remove.j2 b/tools/yunopackage/templates/remove.j2 new file mode 100644 index 0000000000..af2ee266e9 --- /dev/null +++ b/tools/yunopackage/templates/remove.j2 @@ -0,0 +1,79 @@ +#!/bin/bash +#### App file generated with YoloGen, the Yunohost app generator, version {{ parameters['GENERATOR_VERSION'] }}. +{% if parameters["tutorial"] -%} # This is the tutorial version of the app. +# It contains extra commands to explain what should be done in case you want to adjust some part of the script. +# Once you are done, you may remove them. +{% endif -%} +#================================================= +# GENERIC START +#================================================= +# IMPORT GENERIC HELPERS +#================================================= +source _common.sh +source /usr/share/yunohost/helpers + +{% if parameters["tutorial"] -%} +# Settings are automatically loaded as bash variables +# in every app script context, therefore typically these will exist: +# - $domain +# - $path +# - $language +# - $install_dir +# - $port +# ... + +# For remove operations : +# - the core will deprovision every resource defined in the manifest **after** this script is ran +# this includes removing the install directory, and data directory (if --purge was used) +{% endif -%} + +#================================================= +# REMOVE SYSTEM CONFIGURATIONS +#================================================= +# REMOVE SYSTEMD SERVICE +#================================================= +ynh_script_progression --message="Removing system configurations related to $app..." --weight=1 + +{% if parameters["tutorial"] -%} +# This should be a symetric version of what happens in the install script +{% endif -%} + +{% if parameters["use_systemd_service"] -%} +# Remove the service from the list of services known by YunoHost (added from `yunohost service add`) +if ynh_exec_warn_less yunohost service status $app >/dev/null +then + ynh_script_progression --message="Removing $app service integration..." --weight=1 + yunohost service remove $app +fi + +ynh_remove_systemd_config +{% endif -%} + +ynh_remove_nginx_config + +{% if parameters["use_php"] -%} +ynh_remove_fpm_config +{% endif -%} + +{% if parameters["use_logrotate"] -%} +ynh_remove_logrotate +{% endif -%} + +{% if parameters["use_fail2ban"] -%} +ynh_remove_fail2ban_config +{% endif -%} + +# Remove other various files specific to the app... such as : +{% if parameters["use_cron"] -%} +ynh_secure_remove --file="/etc/cron.d/$app" +{% endif -%} + +ynh_secure_remove --file="/etc/$app" + +ynh_secure_remove --file="/var/log/$app" + +#================================================= +# END OF SCRIPT +#================================================= + +ynh_script_progression --message="Removal of $app completed" --last diff --git a/tools/yunopackage/templates/restore.j2 b/tools/yunopackage/templates/restore.j2 new file mode 100644 index 0000000000..e95c451b2b --- /dev/null +++ b/tools/yunopackage/templates/restore.j2 @@ -0,0 +1,115 @@ +#!/bin/bash +#### App file generated with YoloGen, the Yunohost app generator, version {{ parameters['GENERATOR_VERSION'] }}. +{% if parameters["tutorial"] -%} # This is the tutorial version of the app. +# It contains extra commands to explain what should be done in case you want to adjust some part of the script. +# Once you are done, you may remove them. +{% endif -%} +#================================================= +# GENERIC START +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +# Keep this path for calling _common.sh inside the execution's context of backup and restore scripts +source ../settings/scripts/_common.sh +source /usr/share/yunohost/helpers + +#================================================= +# RESTORE THE APP MAIN DIR +#================================================= +ynh_script_progression --message="Restoring the app main directory..." --weight=1 + +ynh_restore_file --origin_path="$install_dir" + +{% if parameters["tutorial"] -%} +# $install_dir will automatically be initialized with some decent +# permission by default ... however, you may need to recursively reapply +# ownership to all files such as after the ynh_setup_source step +{% endif -%} +chown -R $app:www-data "$install_dir" + +{% if parameters["data_dir"] -%} +#================================================= +# RESTORE THE DATA DIRECTORY +#================================================= +ynh_script_progression --message="Restoring the data directory..." --weight=1 + +ynh_restore_file --origin_path="$data_dir" --not_mandatory + +# (Same as for install dir) +chown -R $app:www-data "$data_dir" +{% endif -%} + +{% if parameters["use_db"] -%} +#================================================= +# RESTORE THE MYSQL DATABASE +#================================================= + {% if parameters["use_db"] == 'mysql' -%} +ynh_script_progression --message="Restoring the MySQL database..." --weight=1 + +ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < ./db.sql + {% endif -%} + + {% if parameters["use_db"] == 'postgresql' -%} +ynh_script_progression --message="Restoring the PostgreSQL database..." --weight=1 + +ynh_psql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < ./db.sql + {% endif -%} +{% endif -%} +#================================================= +# RESTORE SYSTEM CONFIGURATIONS +#================================================= +# RESTORE THE PHP-FPM CONFIGURATION +#================================================= +ynh_script_progression --message="Restoring system configurations related to $app..." --weight=1 + +# This should be a symetric version of what happens in the install script + +{% if parameters["use_php"] -%} +ynh_restore_file --origin_path="/etc/php/$phpversion/fpm/pool.d/$app.conf" +{% endif -%} + +ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" + +{% if parameters["use_systemd_service"] -%} +ynh_restore_file --origin_path="/etc/systemd/system/$app.service" +systemctl enable $app.service --quiet + +yunohost service add $app --description="{{ parameters['systemd_service_description'] }}" --log="/var/log/$app/$app.log" +{% endif -%} + +{% if parameters["use_logrotate"] -%} +ynh_restore_file --origin_path="/etc/logrotate.d/$app" +{% endif -%} +{% if parameters["use_fail2ban"] -%} +ynh_restore_file --origin_path="/etc/fail2ban/jail.d/$app.conf" +ynh_restore_file --origin_path="/etc/fail2ban/filter.d/$app.conf" +ynh_systemd_action --action=restart --service_name=fail2ban +{% endif -%} +# Other various files... + +ynh_restore_file --origin_path="/etc/cron.d/$app" +ynh_restore_file --origin_path="/etc/$app/" + +#================================================= +# GENERIC FINALIZATION +#================================================= +# RELOAD NGINX AND PHP-FPM OR THE APP SERVICE +#================================================= +ynh_script_progression --message="Reloading NGINX web server and $app's service..." --weight=1 + +# Typically you only have either $app or php-fpm but not both at the same time... +{% if parameters["use_systemd_service"] -%} +ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" +{% endif -%} +{% if parameters["use_php"] -%} +ynh_systemd_action --service_name=php$phpversion-fpm --action=reload +{% endif -%} + +ynh_systemd_action --service_name=nginx --action=reload + +#================================================= +# END OF SCRIPT +#================================================= + +ynh_script_progression --message="Restoration completed for $app" --last diff --git a/tools/yunopackage/templates/upgrade.j2 b/tools/yunopackage/templates/upgrade.j2 new file mode 100644 index 0000000000..709922275a --- /dev/null +++ b/tools/yunopackage/templates/upgrade.j2 @@ -0,0 +1,180 @@ +#!/bin/bash +#### App file generated with YoloGen, the Yunohost app generator, version {{ parameters['GENERATOR_VERSION'] }}. +{% if parameters["tutorial"] -%} # This is the tutorial version of the app. +# It contains extra commands to explain what should be done in case you want to adjust some part of the script. +# Once you are done, you may remove them. +{% endif -%} +#================================================= +# GENERIC START +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +source _common.sh +source /usr/share/yunohost/helpers + +{% if parameters["tutorial"] -%} +# Settings are automatically loaded as bash variables +# in every app script context, therefore typically these will exist: +# - $domain +# - $path +# - $language +# - $install_dir +# - $port +# ... + +# In the context of upgrade, +# - resources are automatically provisioned / updated / deleted (depending on existing resources) +# - a safety backup is automatically created by the core and will be restored if the upgrade fails + +### This helper will compare the version of the currently installed app and the version of the upstream package. +### $upgrade_type can have 2 different values +### - UPGRADE_APP if the upstream app version has changed +### - UPGRADE_PACKAGE if only the YunoHost package has changed +### ynh_check_app_version_changed will stop the upgrade if the app is up to date. +### UPGRADE_APP should be used to upgrade the core app only if there's an upgrade to do. +{% endif -%} +upgrade_type=$(ynh_check_app_version_changed) + +#================================================= +# STANDARD UPGRADE STEPS +#================================================= +# ENSURE DOWNWARD COMPATIBILITY +#================================================= +{% if parameters["tutorial"] -%} +#ynh_script_progression --message="Ensuring downward compatibility..." --weight=1 + +# +# N.B. : the followings setting migrations snippets are provided as *EXAMPLES* +# of what you may want to do in some cases (e.g. a setting was not defined on +# some legacy installs and you therefore want to initialize stuff during upgrade) +# + +# If db_name doesn't exist, create it +#if [ -z "$db_name" ]; then +# db_name=$(ynh_sanitize_dbid --db_name=$app) +# ynh_app_setting_set --app=$app --key=db_name --value=$db_name +#fi + +# If install_dir doesn't exist, create it +#if [ -z "$install_dir" ]; then +# install_dir=/var/www/$app +# ynh_app_setting_set --app=$app --key=install_dir --value=$install_dir +#fi +{% endif -%} + +{% if parameters["use_systemd_service"] -%} +#================================================= +# STOP SYSTEMD SERVICE +#================================================= +ynh_script_progression --message="Stopping a systemd service..." --weight=1 + +ynh_systemd_action --service_name=$app --action="stop" --log_path="/var/log/$app/$app.log" +{% endif -%} +#================================================= +# "REBUILD" THE APP (DEPLOY NEW SOURCES, RERUN NPM BUILD...) +#================================================= +# DOWNLOAD, CHECK AND UNPACK SOURCE +#================================================= + +if [ "$upgrade_type" == "UPGRADE_APP" ] +then + ynh_script_progression --message="Upgrading source files..." --weight=1 + + # Download, check integrity, uncompress and patch the source from app.src + ynh_setup_source --dest_dir="$install_dir" +fi + +{% if parameters["tutorial"] -%} +# $install_dir will automatically be initialized with some decent +# permission by default ... however, you may need to recursively reapply +# ownership to all files such as after the ynh_setup_source step +{% endif -%} +chown -R $app:www-data "$install_dir" + +#================================================= +# REAPPLY SYSTEM CONFIGURATIONS +#================================================= +ynh_script_progression --message="Upgrading system configurations related to $app..." --weight=1 + +{% if parameters["tutorial"] -%} +# This should be a literal copypasta of what happened in the install's "System configuration" section +{% endif -%} + +{% if parameters["use_php"] -%} +ynh_add_fpm_config +{% endif -%} + +ynh_add_nginx_config + +{% if parameters["use_systemd_service"] -%} +ynh_add_systemd_config + +yunohost service add $app --description="{{ parameters['systemd_service_description'] }}" --log="/var/log/$app/$app.log" +{% endif -%} + +{% if parameters["use_logrotate"] -%} +ynh_use_logrotate --non-append +{% endif -%} + +{% if parameters["use_fail2ban"] -%} +# Create a dedicated Fail2Ban config +ynh_add_fail2ban_config --logpath="/var/log/nginx/${domain}-error.log" --failregex="{{ parameters['fail2ban_regex'] }}" +{% endif -%} + +{% if parameters["use_cron"] -%} +#================================================= +# UPDATE THE CRON JOB +#================================================= +cron_path="/etc/cron.d/$app" +ynh_add_config --template="../conf/task.cron" --destination="$cron_path" +chown root: "$cron_path" +chmod 644 "$cron_path" +{% endif -%} + +#================================================= +# RECONFIGURE THE APP (UPDATE CONF, APPLY MIGRATIONS...) +#================================================= +# UPDATE A CONFIG FILE +#================================================= +ynh_script_progression --message="Updating a configuration file..." --weight=1 + +{% if parameters["tutorial"] -%} +### Same as during install +### +### The file will automatically be backed-up if it's found to be manually modified (because +### ynh_add_config keeps track of the file's checksum) +{% endif -%} + +ynh_add_config --template="{{ parameters['custom_config_file'] }}" --destination="$install_dir/{{ parameters['custom_config_file'] }}" + +{% if parameters["tutorial"] -%} +# FIXME: this should be handled by the core in the future +# You may need to use chmod 600 instead of 400, +# for example if the app is expected to be able to modify its own config +{% endif -%} +chmod 400 "$install_dir/some_config_file" +chown $app:$app "$install_dir/some_config_file" + +{% if parameters["tutorial"] -%} +### For more complex cases where you want to replace stuff using regexes, +### you shoud rely on ynh_replace_string (which is basically a wrapper for sed) +### When doing so, you also need to manually call ynh_store_file_checksum +### +### ynh_replace_string --match_string="match_string" --replace_string="replace_string" --target_file="$install_dir/some_config_file" +### ynh_store_file_checksum --file="$install_dir/some_config_file" +{% endif -%} + +{% if parameters["use_systemd_service"] -%} +#================================================= +# START SYSTEMD SERVICE +#================================================= +ynh_script_progression --message="Starting a systemd service..." --weight=1 + +ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" +{% endif -%} +#================================================= +# END OF SCRIPT +#================================================= + +ynh_script_progression --message="Upgrade of $app completed" --last From 32b1ebb83660ffd37be0f2029c1f66b3aa3345a9 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Fri, 13 Oct 2023 18:03:37 +0200 Subject: [PATCH 103/292] Apply black --- tools/yunopackage/YunohostAppGenerator.py | 1014 ++++++++++++++------- 1 file changed, 668 insertions(+), 346 deletions(-) diff --git a/tools/yunopackage/YunohostAppGenerator.py b/tools/yunopackage/YunohostAppGenerator.py index cdd8536f5b..09dd8be431 100644 --- a/tools/yunopackage/YunohostAppGenerator.py +++ b/tools/yunopackage/YunohostAppGenerator.py @@ -1,13 +1,39 @@ #### Imports import jinja2 as j2 -from flask import Flask, render_template, render_template_string, request, redirect, flash, send_file +from flask import ( + Flask, + render_template, + render_template_string, + request, + redirect, + flash, + send_file, +) from markupsafe import Markup # No longer imported from Flask + # Form libraries from flask_wtf import FlaskForm -from wtforms import StringField, RadioField, SelectField, SubmitField, TextAreaField, BooleanField, SelectMultipleField -from wtforms.validators import DataRequired, InputRequired, Optional, Regexp, URL, Length +from wtforms import ( + StringField, + RadioField, + SelectField, + SubmitField, + TextAreaField, + BooleanField, + SelectMultipleField, +) +from wtforms.validators import ( + DataRequired, + InputRequired, + Optional, + Regexp, + URL, + Length, +) + # Markdown to HTML - for debugging purposes from misaka import Markdown, HtmlRenderer + # Managing zipfiles import zipfile from flask_cors import CORS @@ -15,16 +41,16 @@ from secrets import token_urlsafe #### GLOBAL VARIABLES -YOLOGEN_VERSION = '0.7.5' -GENERATOR_DICT = {'GENERATOR_VERSION': YOLOGEN_VERSION} +YOLOGEN_VERSION = "0.7.5" +GENERATOR_DICT = {"GENERATOR_VERSION": YOLOGEN_VERSION} #### Create FLASK and Jinja Environments -url_prefix = '' +url_prefix = "" # url_prefix = '/yunohost-app-generator' # app = Flask(__name__) app = Flask(__name__) # Blueprint('main', __name__, url_prefix=url_prefix) -app.config['SECRET_KEY'] = token_urlsafe(16) # Necessary for the form CORS +app.config["SECRET_KEY"] = token_urlsafe(16) # Necessary for the form CORS cors = CORS(app) environment = j2.Environment(loader=j2.FileSystemLoader("templates/")) @@ -32,8 +58,9 @@ #### Custom functions + # Define custom filter -@app.template_filter('render_markdown') +@app.template_filter("render_markdown") def render_markdown(text): renderer = HtmlRenderer() markdown = Markdown(renderer) @@ -41,12 +68,12 @@ def render_markdown(text): # Add custom filter -j2.filters.FILTERS['render_markdown'] = render_markdown +j2.filters.FILTERS["render_markdown"] = render_markdown # Converting markdown to html def markdown_file_to_html_string(file): - with open(file, 'r') as file: + with open(file, "r") as file: markdown_content = file.read() # Convert content from Markdown to HTML html_content = render_markdown(markdown_content) @@ -56,65 +83,113 @@ def markdown_file_to_html_string(file): ### Forms + ## PHP forms class Form_PHP_Config(FlaskForm): - php_config_file = SelectField('Type de fichier PHP :', choices=[ - ('php-fpm.conf', Markup('Fichier de configuration PHP complet (php-fpm.conf)')), - ('php_extra-fpm.conf', - Markup('Fichier de configuration PHP particulier (extra_php-fpm.conf)'))], - default='php_extra-fpm.conf', validators=[DataRequired()]) + php_config_file = SelectField( + "Type de fichier PHP :", + choices=[ + ( + "php-fpm.conf", + Markup( + 'Fichier de configuration PHP complet (php-fpm.conf)' + ), + ), + ( + "php_extra-fpm.conf", + Markup( + 'Fichier de configuration PHP particulier (extra_php-fpm.conf)' + ), + ), + ], + default="php_extra-fpm.conf", + validators=[DataRequired()], + ) ## TODO : figure out how to include these comments/title values # 'title': 'Remplace la configuration générée par défaut par un fichier de configuration complet. À éviter si possible. # 'title': "Choisir un fichier permettant un paramétrage d'options complémentaires. C'est généralement recommandé." - php_config_file_content = TextAreaField("Saisissez le contenu du fichier de configuration PHP :", - validators=[Optional()], - render_kw={"class": "form-control", - "style": "width: 50%;height:11em;min-height: 5.5em; max-height: 55em;flex-grow: 1;box-sizing: border-box;", - "title": "TODO", - "placeholder": "; Additional php.ini defines, specific to this pool of workers. \n\nphp_admin_value[upload_max_filesize] = 100M \nphp_admin_value[post_max_size] = 100M"}) + php_config_file_content = TextAreaField( + "Saisissez le contenu du fichier de configuration PHP :", + validators=[Optional()], + render_kw={ + "class": "form-control", + "style": "width: 50%;height:11em;min-height: 5.5em; max-height: 55em;flex-grow: 1;box-sizing: border-box;", + "title": "TODO", + "placeholder": "; Additional php.ini defines, specific to this pool of workers. \n\nphp_admin_value[upload_max_filesize] = 100M \nphp_admin_value[post_max_size] = 100M", + }, + ) class Form_PHP(Form_PHP_Config): - use_php = BooleanField('Nécessite PHP', default=False) + use_php = BooleanField("Nécessite PHP", default=False) ## NodeJS forms class Form_NodeJS(FlaskForm): - use_nodejs = BooleanField('Nécessite NodeJS', default=False) - use_nodejs_version = StringField("Version de NodeJS :", - render_kw={"placeholder": "20", "class": "form-control", - "title": "Saisissez la version de NodeJS à installer. Cela peut-être une version majeure (ex: 20) ou plus précise (ex: 20.1)."}) # TODO : this should be validated using a regex, should be only numbers and any (≥0) number of dots in between - use_nodejs_needs_yarn = BooleanField('Nécessite Yarn', default=False, render_kw={ - "title": "Faut-il installer automatiquement Yarn ? Cela configurera les dépôts spécifiques à Yarn."}) + use_nodejs = BooleanField("Nécessite NodeJS", default=False) + use_nodejs_version = StringField( + "Version de NodeJS :", + render_kw={ + "placeholder": "20", + "class": "form-control", + "title": "Saisissez la version de NodeJS à installer. Cela peut-être une version majeure (ex: 20) ou plus précise (ex: 20.1).", + }, + ) # TODO : this should be validated using a regex, should be only numbers and any (≥0) number of dots in between + use_nodejs_needs_yarn = BooleanField( + "Nécessite Yarn", + default=False, + render_kw={ + "title": "Faut-il installer automatiquement Yarn ? Cela configurera les dépôts spécifiques à Yarn." + }, + ) ## Python forms + class Form_Python(FlaskForm): - use_python = BooleanField('Nécessite Python', - default=False) ## TODO -> python3, python3-pip, python3-ven dependencies by default - python_dependencies_type = SelectField('Configuration des dépendances Python :', choices=[ - ('requirements.txt', Markup('Fichier requirements.txt')), - ('manual_list', 'Liste manuelle')], - default='requirements.txt', validators=[DataRequired(), Optional()]) - python_requirements = TextAreaField("La liste de dépendances inclue dans le fichier requirements.txt :", - render_kw={"class": "form-control", - "style": "width: 50%;height:5.5em;min-height: 5.5em; max-height: 55em;flex-grow: 1;box-sizing: border-box;", - "title": "Lister les dépendances à installer, une par ligne, avec un numéro de version derrière.\nEx: 'dépendance==1.0'.", - "placeholder": "tensorflow==2.3.1 \nuvicorn==0.12.2 \nfastapi==0.63.0"}) - python_dependencies_list = StringField("Liste de dépendances python :", - render_kw={"placeholder": "tensorflow uvicorn fastapi", - "class": "form-control", - "title": "Lister les dépendances à installer, séparées d'un espace."}) + use_python = BooleanField( + "Nécessite Python", default=False + ) ## TODO -> python3, python3-pip, python3-ven dependencies by default + python_dependencies_type = SelectField( + "Configuration des dépendances Python :", + choices=[ + ("requirements.txt", Markup("Fichier requirements.txt")), + ("manual_list", "Liste manuelle"), + ], + default="requirements.txt", + validators=[DataRequired(), Optional()], + ) + python_requirements = TextAreaField( + "La liste de dépendances inclue dans le fichier requirements.txt :", + render_kw={ + "class": "form-control", + "style": "width: 50%;height:5.5em;min-height: 5.5em; max-height: 55em;flex-grow: 1;box-sizing: border-box;", + "title": "Lister les dépendances à installer, une par ligne, avec un numéro de version derrière.\nEx: 'dépendance==1.0'.", + "placeholder": "tensorflow==2.3.1 \nuvicorn==0.12.2 \nfastapi==0.63.0", + }, + ) + python_dependencies_list = StringField( + "Liste de dépendances python :", + render_kw={ + "placeholder": "tensorflow uvicorn fastapi", + "class": "form-control", + "title": "Lister les dépendances à installer, séparées d'un espace.", + }, + ) ## Manifest form # Dependencies form class DependenciesForm(FlaskForm): - auto_update = BooleanField("Activer le robot de mise à jour automatiques  :", default=False, - render_kw={ - "title": "Si le logiciel est disponible sur github et publie des releases ou des tags pour ses nouvelles versions, un robot proposera automatiquement des mises à jours."}) + auto_update = BooleanField( + "Activer le robot de mise à jour automatiques  :", + default=False, + render_kw={ + "title": "Si le logiciel est disponible sur github et publie des releases ou des tags pour ses nouvelles versions, un robot proposera automatiquement des mises à jours." + }, + ) ## TODO # These infos are used by https://github.com/YunoHost/apps/blob/master/tools/autoupdate_app_sources/autoupdate_app_sources.py @@ -124,230 +199,429 @@ class DependenciesForm(FlaskForm): # autoupdate.strategy = "latest_github_tag" - dependencies = StringField("Dépendances de l'application (liste des paquets apt) à installer :", - render_kw={"placeholder": "foo foo2.1-ext somerandomdep", "class": "form-control", - "title": "Lister les paquets dont dépend l'application, séparés par un espace."}) - - use_db = SelectField("Configurer une base de données :", choices=[ - ('false', "Non"), - ('mysql', "MySQL/MariaDB"), - ('postgresql', "PostgreSQL")], - default='false', - render_kw={"title": "L'application nécessite-t-elle une base de données ?"}) + dependencies = StringField( + "Dépendances de l'application (liste des paquets apt) à installer :", + render_kw={ + "placeholder": "foo foo2.1-ext somerandomdep", + "class": "form-control", + "title": "Lister les paquets dont dépend l'application, séparés par un espace.", + }, + ) + + use_db = SelectField( + "Configurer une base de données :", + choices=[ + ("false", "Non"), + ("mysql", "MySQL/MariaDB"), + ("postgresql", "PostgreSQL"), + ], + default="false", + render_kw={"title": "L'application nécessite-t-elle une base de données ?"}, + ) # manifest class manifestForm(DependenciesForm): - version = StringField('Version', validators=[Regexp('\d{1,4}.\d{1,4}(.\d{1,4})?(.\d{1,4})?~ynh\d+')], - render_kw={"class": "form-control", - "placeholder": "1.0~ynh1"}) - description_en = TextAreaField("Description en quelques lignes de l'application, en anglais :", - validators=[DataRequired()], - render_kw={"class": "form-control", "style": "resize: none;", - "title": "Explain in *a few (10~15) words* the purpose of the app \\" - "or what it actually does (it is meant to give a rough idea to users browsing a catalog of 100+ apps)"}) - description_fr = TextAreaField("Description en quelques lignes de l'application :", validators=[DataRequired()], - render_kw={"class": "form-control", "style": "resize: none;", - "title": "Expliquez en *quelques* (10~15) mots l'utilité de l'app \\" - "ou ce qu'elle fait (l'objectif est de donner une idée grossière pour des utilisateurs qui naviguent dans un catalogue de 100+ apps)"}) + version = StringField( + "Version", + validators=[Regexp("\d{1,4}.\d{1,4}(.\d{1,4})?(.\d{1,4})?~ynh\d+")], + render_kw={"class": "form-control", "placeholder": "1.0~ynh1"}, + ) + description_en = TextAreaField( + "Description en quelques lignes de l'application, en anglais :", + validators=[DataRequired()], + render_kw={ + "class": "form-control", + "style": "resize: none;", + "title": "Explain in *a few (10~15) words* the purpose of the app \\" + "or what it actually does (it is meant to give a rough idea to users browsing a catalog of 100+ apps)", + }, + ) + description_fr = TextAreaField( + "Description en quelques lignes de l'application :", + validators=[DataRequired()], + render_kw={ + "class": "form-control", + "style": "resize: none;", + "title": "Expliquez en *quelques* (10~15) mots l'utilité de l'app \\" + "ou ce qu'elle fait (l'objectif est de donner une idée grossière pour des utilisateurs qui naviguent dans un catalogue de 100+ apps)", + }, + ) # TODO : handle multiple names separated by commas (.split(',') ? - maintainers = StringField('Mainteneurs et mainteneuses', render_kw={"class": "form-control", - "placeholder": "Généralement vous mettez votre nom ici… Si vous êtes d'accord ;)"}) # TODO : Usually you put your name here… if you like ;) - architectures = SelectMultipleField('Architectures supportées :', choices=[ - ('all', 'Toutes les architectures'), - ('amd64', 'amd64'), - ('arm64', 'arm64'), - ('i386', 'i386'), - ('todo', 'TODO : list more architectures')], - default=['all'], validators=[DataRequired()]) - yunohost_required_version = StringField('Mainteneurs et mainteneuses', render_kw={"class": "form-control", - "placeholder": "11.1.21", - "title": "Version minimale de Yunohost pour que l'application fonctionne."}) - - multi_instance = BooleanField("Application multi-instance", default=False, - render_kw={"class": "", - "title": "Peux-t-on installer simultannément plusieurs fois l'application sur un même serveur ?"}) - - ldap = SelectField('Integrate with LDAP (user can login using Yunohost credentials :', choices=[ - ('false', 'False'), - ('true', 'True'), - ('not_relevant', 'Not relevant')], default='not_relevant', validators=[DataRequired()], render_kw={ - "title": """Not to confuse with the "sso" key: the "ldap" key corresponds to wether or not a user *can* login on the app using its YunoHost credentials."""}) - sso = SelectField('Integrate with Yunohost SingleSignOn (SSO) :', choices=[ - ('false', 'False'), - ('true', 'True'), - ('not_relevant', 'Not relevant')], default='not_relevant', validators=[DataRequired()], render_kw={ - "title": """Not to confuse with the "ldap" key: the "sso" key corresponds to wether or not a user is *automatically logged-in* on the app when logged-in on the YunoHost portal."""}) - - license = StringField('Licence', validators=[DataRequired()], render_kw={"class": "form-control", - "placeholder": "GPL"}) - - website = StringField('Site web', validators=[URL(), Optional()], render_kw={"class": "form-control", - "placeholder": "https://awesome-app-website.com"}) - demo = StringField('Site de démonstration', validators=[URL(), Optional()], render_kw={"class": "form-control", - "placeholder": "https://awesome-app-website.com/demo"}) - admindoc = StringField("Documentation d'aministration", validators=[URL(), Optional()], - render_kw={"class": "form-control", - "placeholder": "https://awesome-app-website.com/doc/admin"}) - userdoc = StringField("Documentation d'utilisation", validators=[URL(), Optional()], - render_kw={"class": "form-control", - "placeholder": "https://awesome-app-website.com/doc/user"}) - code = StringField('Dépôt de code', validators=[URL(), Optional()], render_kw={"class": "form-control", - "placeholder": "https://awesome-app-website.com/get-the-code"}) - - data_dir = BooleanField("L'application nécessite un répertoire dédié pour ses données", default=False, - render_kw={"title": "Faut-il créer un répertoire /home/yunohost.app/votreApplication ?"}) - data_subdirs = StringField('Si nécessaire, lister les sous-répertoires à configurer :', - validators=[Optional()], render_kw={"class": "form-control", - "placeholder": "data, uploads, themes"}) - use_whole_domain = BooleanField("L'application nécessite d'utiliser tout un domaine (installation à la racine) :", - default=False, - render_kw={ - "title": "Doit-on installer l'application à la racine du domaine ? Sinon, on pourra l'installer dans un sous-dossier, par exemple /mon_app."}) + maintainers = StringField( + "Mainteneurs et mainteneuses", + render_kw={ + "class": "form-control", + "placeholder": "Généralement vous mettez votre nom ici… Si vous êtes d'accord ;)", + }, + ) # TODO : Usually you put your name here… if you like ;) + architectures = SelectMultipleField( + "Architectures supportées :", + choices=[ + ("all", "Toutes les architectures"), + ("amd64", "amd64"), + ("arm64", "arm64"), + ("i386", "i386"), + ("todo", "TODO : list more architectures"), + ], + default=["all"], + validators=[DataRequired()], + ) + yunohost_required_version = StringField( + "Mainteneurs et mainteneuses", + render_kw={ + "class": "form-control", + "placeholder": "11.1.21", + "title": "Version minimale de Yunohost pour que l'application fonctionne.", + }, + ) + + multi_instance = BooleanField( + "Application multi-instance", + default=False, + render_kw={ + "class": "", + "title": "Peux-t-on installer simultannément plusieurs fois l'application sur un même serveur ?", + }, + ) + + ldap = SelectField( + "Integrate with LDAP (user can login using Yunohost credentials :", + choices=[ + ("false", "False"), + ("true", "True"), + ("not_relevant", "Not relevant"), + ], + default="not_relevant", + validators=[DataRequired()], + render_kw={ + "title": """Not to confuse with the "sso" key: the "ldap" key corresponds to wether or not a user *can* login on the app using its YunoHost credentials.""" + }, + ) + sso = SelectField( + "Integrate with Yunohost SingleSignOn (SSO) :", + choices=[ + ("false", "False"), + ("true", "True"), + ("not_relevant", "Not relevant"), + ], + default="not_relevant", + validators=[DataRequired()], + render_kw={ + "title": """Not to confuse with the "ldap" key: the "sso" key corresponds to wether or not a user is *automatically logged-in* on the app when logged-in on the YunoHost portal.""" + }, + ) + + license = StringField( + "Licence", + validators=[DataRequired()], + render_kw={"class": "form-control", "placeholder": "GPL"}, + ) + + website = StringField( + "Site web", + validators=[URL(), Optional()], + render_kw={ + "class": "form-control", + "placeholder": "https://awesome-app-website.com", + }, + ) + demo = StringField( + "Site de démonstration", + validators=[URL(), Optional()], + render_kw={ + "class": "form-control", + "placeholder": "https://awesome-app-website.com/demo", + }, + ) + admindoc = StringField( + "Documentation d'aministration", + validators=[URL(), Optional()], + render_kw={ + "class": "form-control", + "placeholder": "https://awesome-app-website.com/doc/admin", + }, + ) + userdoc = StringField( + "Documentation d'utilisation", + validators=[URL(), Optional()], + render_kw={ + "class": "form-control", + "placeholder": "https://awesome-app-website.com/doc/user", + }, + ) + code = StringField( + "Dépôt de code", + validators=[URL(), Optional()], + render_kw={ + "class": "form-control", + "placeholder": "https://awesome-app-website.com/get-the-code", + }, + ) + + data_dir = BooleanField( + "L'application nécessite un répertoire dédié pour ses données", + default=False, + render_kw={ + "title": "Faut-il créer un répertoire /home/yunohost.app/votreApplication ?" + }, + ) + data_subdirs = StringField( + "Si nécessaire, lister les sous-répertoires à configurer :", + validators=[Optional()], + render_kw={"class": "form-control", "placeholder": "data, uploads, themes"}, + ) + use_whole_domain = BooleanField( + "L'application nécessite d'utiliser tout un domaine (installation à la racine) :", + default=False, + render_kw={ + "title": "Doit-on installer l'application à la racine du domaine ? Sinon, on pourra l'installer dans un sous-dossier, par exemple /mon_app." + }, + ) supports_change_url = BooleanField( - "L'application autorise le changement d'adresse (changement de domaine ou de chemin)", default=True, - render_kw={"title": "Faut-il permettre le changement d'URL pour l'application ? (fichier change_url)"}) - - needs_admin = BooleanField("L'application nécessite de configurer un compte d'administration :", default=False, - render_kw={"class": "", - "title": "Faut-il configurer un compte admin à l'installation ?"}) + "L'application autorise le changement d'adresse (changement de domaine ou de chemin)", + default=True, + render_kw={ + "title": "Faut-il permettre le changement d'URL pour l'application ? (fichier change_url)" + }, + ) + + needs_admin = BooleanField( + "L'application nécessite de configurer un compte d'administration :", + default=False, + render_kw={ + "class": "", + "title": "Faut-il configurer un compte admin à l'installation ?", + }, + ) # admin_password_help_message = BooleanField("TODO  :", default=False, # render_kw={"class": "", # "title": "TODO"}) - language = SelectMultipleField('Langues supportées :', choices=[ - ('en', 'English'), - ('fr', 'Français'), - ('en', 'Spanish'), - ('it', 'Italian'), - ('de', 'German'), - ('zh', 'Chinese'), - ('jp', 'Japanese'), - ('da', 'Danish'), - ('pt', 'Portugese'), - ('nl', 'Dutch'), - ('ru', 'Russian')], - default=['en'], validators=[DataRequired()]) - - default_language = SelectField('Langues par défaut :', choices=[ - ('en', 'English'), - ('fr', 'Français'), - ('en', 'Spanish'), - ('it', 'Italian'), - ('zh', 'Chinese'), - ('jp', 'Japanese'), - ('da', 'Danish'), - ('pt', 'Portugese'), - ('nl', 'Dutch'), - ('ru', 'Russian')], - default=['en']) - - visibility = RadioField("Visibilité de l'application :", choices=[ - ('admin', "Administrateur/administratrice uniquement"), - ('all_users', "Personnes connectées"), - ('visitors', "Publique")], - default='all_users', validators=[DataRequired()]) - - source_url = StringField("Code source ou exécutable de l'application", validators=[DataRequired(), URL()], - render_kw={"class": "form-control", - "placeholder": "https://github.com/foo/bar/archive/refs/tags/v1.2.3.tar.gz"}) # Application source code URL - sha256sum = StringField('Empreinte du code source (format sha256sum)', - validators=[DataRequired(), Length(min=64, max=64)], - render_kw={"class": "form-control", - "placeholder": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef", - "title": "Sha256sum of the archive. Should be 64 characters-long."}) # Source code hash (sha256sum format) + language = SelectMultipleField( + "Langues supportées :", + choices=[ + ("en", "English"), + ("fr", "Français"), + ("en", "Spanish"), + ("it", "Italian"), + ("de", "German"), + ("zh", "Chinese"), + ("jp", "Japanese"), + ("da", "Danish"), + ("pt", "Portugese"), + ("nl", "Dutch"), + ("ru", "Russian"), + ], + default=["en"], + validators=[DataRequired()], + ) + + default_language = SelectField( + "Langues par défaut :", + choices=[ + ("en", "English"), + ("fr", "Français"), + ("en", "Spanish"), + ("it", "Italian"), + ("zh", "Chinese"), + ("jp", "Japanese"), + ("da", "Danish"), + ("pt", "Portugese"), + ("nl", "Dutch"), + ("ru", "Russian"), + ], + default=["en"], + ) + + visibility = RadioField( + "Visibilité de l'application :", + choices=[ + ("admin", "Administrateur/administratrice uniquement"), + ("all_users", "Personnes connectées"), + ("visitors", "Publique"), + ], + default="all_users", + validators=[DataRequired()], + ) + + source_url = StringField( + "Code source ou exécutable de l'application", + validators=[DataRequired(), URL()], + render_kw={ + "class": "form-control", + "placeholder": "https://github.com/foo/bar/archive/refs/tags/v1.2.3.tar.gz", + }, + ) # Application source code URL + sha256sum = StringField( + "Empreinte du code source (format sha256sum)", + validators=[DataRequired(), Length(min=64, max=64)], + render_kw={ + "class": "form-control", + "placeholder": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef", + "title": "Sha256sum of the archive. Should be 64 characters-long.", + }, + ) # Source code hash (sha256sum format) ## Main form -class appGeneratorForm(manifestForm, DependenciesForm, Form_PHP, Form_NodeJS, Form_Python): - app_name = StringField("Nom de l'application :", validators=[DataRequired()], - render_kw={"placeholder": "My Great App", "class": "form-control", - "title": "Définir le nom de l'application, affiché dans l'interface"}) + +class appGeneratorForm( + manifestForm, DependenciesForm, Form_PHP, Form_NodeJS, Form_Python +): + app_name = StringField( + "Nom de l'application :", + validators=[DataRequired()], + render_kw={ + "placeholder": "My Great App", + "class": "form-control", + "title": "Définir le nom de l'application, affiché dans l'interface", + }, + ) app_id = StringField( - Markup( - """Identifiant (id) de l'application (en minuscule et sans espaces) :"""), - validators=[DataRequired(), Regexp("[a-z_1-9]+.*(?(en minuscule et sans espaces)
     :""" + ), + validators=[DataRequired(), Regexp("[a-z_1-9]+.*(? Date: Fri, 27 Oct 2023 12:56:17 +0200 Subject: [PATCH 104/292] appgenerator: rename stuff to app generator consistently --- .../YunohostAppGenerator.py => app_generator/app_generator.py} | 0 tools/{yunopackage => app_generator}/requirements.txt | 0 tools/{yunopackage => app_generator}/static/stylesheet.css | 0 tools/{yunopackage => app_generator}/templates/_common.sh.j2 | 0 tools/{yunopackage => app_generator}/templates/backup.j2 | 0 tools/{yunopackage => app_generator}/templates/change_url.j2 | 0 tools/{yunopackage => app_generator}/templates/config.j2 | 0 tools/{yunopackage => app_generator}/templates/index.html | 2 +- tools/{yunopackage => app_generator}/templates/install.j2 | 0 tools/{yunopackage => app_generator}/templates/manifest.j2 | 0 tools/{yunopackage => app_generator}/templates/remove.j2 | 0 tools/{yunopackage => app_generator}/templates/restore.j2 | 0 tools/{yunopackage => app_generator}/templates/upgrade.j2 | 0 13 files changed, 1 insertion(+), 1 deletion(-) rename tools/{yunopackage/YunohostAppGenerator.py => app_generator/app_generator.py} (100%) rename tools/{yunopackage => app_generator}/requirements.txt (100%) rename tools/{yunopackage => app_generator}/static/stylesheet.css (100%) rename tools/{yunopackage => app_generator}/templates/_common.sh.j2 (100%) rename tools/{yunopackage => app_generator}/templates/backup.j2 (100%) rename tools/{yunopackage => app_generator}/templates/change_url.j2 (100%) rename tools/{yunopackage => app_generator}/templates/config.j2 (100%) rename tools/{yunopackage => app_generator}/templates/index.html (99%) rename tools/{yunopackage => app_generator}/templates/install.j2 (100%) rename tools/{yunopackage => app_generator}/templates/manifest.j2 (100%) rename tools/{yunopackage => app_generator}/templates/remove.j2 (100%) rename tools/{yunopackage => app_generator}/templates/restore.j2 (100%) rename tools/{yunopackage => app_generator}/templates/upgrade.j2 (100%) diff --git a/tools/yunopackage/YunohostAppGenerator.py b/tools/app_generator/app_generator.py similarity index 100% rename from tools/yunopackage/YunohostAppGenerator.py rename to tools/app_generator/app_generator.py diff --git a/tools/yunopackage/requirements.txt b/tools/app_generator/requirements.txt similarity index 100% rename from tools/yunopackage/requirements.txt rename to tools/app_generator/requirements.txt diff --git a/tools/yunopackage/static/stylesheet.css b/tools/app_generator/static/stylesheet.css similarity index 100% rename from tools/yunopackage/static/stylesheet.css rename to tools/app_generator/static/stylesheet.css diff --git a/tools/yunopackage/templates/_common.sh.j2 b/tools/app_generator/templates/_common.sh.j2 similarity index 100% rename from tools/yunopackage/templates/_common.sh.j2 rename to tools/app_generator/templates/_common.sh.j2 diff --git a/tools/yunopackage/templates/backup.j2 b/tools/app_generator/templates/backup.j2 similarity index 100% rename from tools/yunopackage/templates/backup.j2 rename to tools/app_generator/templates/backup.j2 diff --git a/tools/yunopackage/templates/change_url.j2 b/tools/app_generator/templates/change_url.j2 similarity index 100% rename from tools/yunopackage/templates/change_url.j2 rename to tools/app_generator/templates/change_url.j2 diff --git a/tools/yunopackage/templates/config.j2 b/tools/app_generator/templates/config.j2 similarity index 100% rename from tools/yunopackage/templates/config.j2 rename to tools/app_generator/templates/config.j2 diff --git a/tools/yunopackage/templates/index.html b/tools/app_generator/templates/index.html similarity index 99% rename from tools/yunopackage/templates/index.html rename to tools/app_generator/templates/index.html index ac6750536a..c84c5f2bf1 100644 --- a/tools/yunopackage/templates/index.html +++ b/tools/app_generator/templates/index.html @@ -222,7 +222,7 @@ console.log(xhr.status) } - My Webpage + YunoHost app generator diff --git a/tools/yunopackage/templates/install.j2 b/tools/app_generator/templates/install.j2 similarity index 100% rename from tools/yunopackage/templates/install.j2 rename to tools/app_generator/templates/install.j2 diff --git a/tools/yunopackage/templates/manifest.j2 b/tools/app_generator/templates/manifest.j2 similarity index 100% rename from tools/yunopackage/templates/manifest.j2 rename to tools/app_generator/templates/manifest.j2 diff --git a/tools/yunopackage/templates/remove.j2 b/tools/app_generator/templates/remove.j2 similarity index 100% rename from tools/yunopackage/templates/remove.j2 rename to tools/app_generator/templates/remove.j2 diff --git a/tools/yunopackage/templates/restore.j2 b/tools/app_generator/templates/restore.j2 similarity index 100% rename from tools/yunopackage/templates/restore.j2 rename to tools/app_generator/templates/restore.j2 diff --git a/tools/yunopackage/templates/upgrade.j2 b/tools/app_generator/templates/upgrade.j2 similarity index 100% rename from tools/yunopackage/templates/upgrade.j2 rename to tools/app_generator/templates/upgrade.j2 From b9fb28083de10726bba3270aba9b07de67f05175 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Fri, 27 Oct 2023 12:56:30 +0200 Subject: [PATCH 105/292] appgenerator: typo in requirements.txt --- tools/app_generator/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/app_generator/requirements.txt b/tools/app_generator/requirements.txt index e955e75a8c..675c4d779b 100644 --- a/tools/app_generator/requirements.txt +++ b/tools/app_generator/requirements.txt @@ -6,4 +6,4 @@ misaka==2.1.1 WTForms==3.0.1 flask_cors==4.0.0 werkzeug==3.0.0 -markupsafe=2.1.3 +markupsafe==2.1.3 From e785764d7dd1aa49ac08349e39835e0b66565268 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Fri, 27 Oct 2023 13:33:23 +0200 Subject: [PATCH 106/292] appgenerator: cleanup a bunch of stuff to try to focus on what matters for now --- tools/app_generator/app_generator.py | 22 ++-- tools/app_generator/templates/index.html | 144 ++++++++--------------- 2 files changed, 58 insertions(+), 108 deletions(-) diff --git a/tools/app_generator/app_generator.py b/tools/app_generator/app_generator.py index 09dd8be431..5ed5d6a2ef 100644 --- a/tools/app_generator/app_generator.py +++ b/tools/app_generator/app_generator.py @@ -45,11 +45,7 @@ GENERATOR_DICT = {"GENERATOR_VERSION": YOLOGEN_VERSION} #### Create FLASK and Jinja Environments -url_prefix = "" -# url_prefix = '/yunohost-app-generator' - -# app = Flask(__name__) -app = Flask(__name__) # Blueprint('main', __name__, url_prefix=url_prefix) +app = Flask(__name__) app.config["SECRET_KEY"] = token_urlsafe(16) # Necessary for the form CORS cors = CORS(app) @@ -261,9 +257,9 @@ class manifestForm(DependenciesForm): choices=[ ("all", "Toutes les architectures"), ("amd64", "amd64"), - ("arm64", "arm64"), ("i386", "i386"), - ("todo", "TODO : list more architectures"), + ("armhf", "armhf"), + ("arm64", "arm64"), ], default=["all"], validators=[DataRequired()], @@ -629,10 +625,7 @@ class appGeneratorForm( parameters = dict(GENERATOR_DICT) template_manifest = environment.get_template("manifest.j2") -manifest = dict(GENERATOR_DICT) -template_install = environment.get_template("install.j2") -install = dict(GENERATOR_DICT) #### Initialising variables @@ -641,7 +634,7 @@ class appGeneratorForm( #### Web pages -@app.route(url_prefix + "/", methods=["GET", "POST"]) +@app.route("/", methods=["GET", "POST"]) def main_form(): if not "appGeneratorForm" in locals(): main_form = appGeneratorForm() @@ -654,7 +647,6 @@ def main_form(): for key, value in results.items(): parameters[key] = value parameters["preview"] = True - # print(install) if main_form.validate_on_submit(): parameters["invalid_form"] = False print() @@ -791,7 +783,6 @@ def main_form(): systemd_config_file=parameters["systemd_config_file"], custom_config_file=parameters["custom_config_file"], cron_config_file=parameters["cron_config_file"], - url_prefix=url_prefix, ) else: print("[DEBUG] Formulaire invalide: ", main_form.errors) @@ -802,13 +793,14 @@ def main_form(): parameters["preview"] = False return render_template( - "index.html", parameters=install, main_form=main_form, url_prefix=url_prefix + "index.html", main_form=main_form ) @app.route("/install") def install_page(): - return render_template(template_install, parameters=install) + template_install = environment.get_template("install.j2") + return render_template(template_install) @app.route("/generator", methods=("GET", "POST")) diff --git a/tools/app_generator/templates/index.html b/tools/app_generator/templates/index.html index c84c5f2bf1..73b4709b6c 100644 --- a/tools/app_generator/templates/index.html +++ b/tools/app_generator/templates/index.html @@ -37,9 +37,7 @@ } } } - - - - - - - - YunoHost app generator @@ -237,9 +227,8 @@

    TODO nav bar ?

--> -

Version: {{ parameters['GENERATOR_VERSION'] }}

-

Formulaire de génération d'une application Yunohost

-
+

Formulaire de génération d'une application Yunohost

+ {{ main_form.hidden_tag() }} @@ -853,35 +842,4 @@

Fichier de configuration de tâche CRON (task.cron) - From 2b0013a4dd573778e7cad99103b6b5ababf3130f Mon Sep 17 00:00:00 2001 From: lapineige Date: Sun, 29 Oct 2023 14:57:50 +0100 Subject: [PATCH 107/292] python option needs python3-venv package --- tools/app_generator/templates/manifest.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/app_generator/templates/manifest.j2 b/tools/app_generator/templates/manifest.j2 index 510a89222d..4780d77f6e 100644 --- a/tools/app_generator/templates/manifest.j2 +++ b/tools/app_generator/templates/manifest.j2 @@ -157,7 +157,7 @@ ram.runtime = "50M" # This will automatically install/uninstall the following apt packages # and implicitly define the $phpversion setting as 8.0 (if phpX.Y-foobar dependencies are listed) {% endif -%} - packages = "{{ parameters['dependencies'] }} {% if parameters['use_db'] != 'false' -%} {{ parameters['use_db'] }} {% endif -%}" + packages = "{{ parameters['dependencies'] }} {% if parameters['use_db'] != 'false' -%} {{ parameters['use_db'] }} {% endif -%} {% if parameters['use_python'] -%} python3-venv {% endif -%}" {% endif -%} {% if parameters['tutorial'] -%} From bd9ec14c5de8aa2a8c94e357043701e8b4c1687d Mon Sep 17 00:00:00 2001 From: lapineige Date: Sun, 29 Oct 2023 15:02:14 +0100 Subject: [PATCH 108/292] fix missing quotes and multi_instance handling --- tools/app_generator/templates/manifest.j2 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/app_generator/templates/manifest.j2 b/tools/app_generator/templates/manifest.j2 index 4780d77f6e..54b7bf4453 100644 --- a/tools/app_generator/templates/manifest.j2 +++ b/tools/app_generator/templates/manifest.j2 @@ -39,9 +39,9 @@ yunohost = ">= 11.1.21" # List of supported archs using the dpkg --print-architecture nomenclature (amd64/i386/armhf/arm64), for example: ["amd64", "i386'] {% endif -%} architectures = "{{ parameters['architectures'] }}" # TODO : handle the "all" option (no ["all"]) -multi_instance = {{ parameters['multi_instance'] }} -ldap = {{ parameters['ldap'] }} -sso = {{ parameters['sso'] }} +multi_instance = {{% if parameters['multi_instance'] -%} true {% else -%} false {% endif -%} +ldap = "{{ parameters['ldap'] }}" +sso = "{{ parameters['sso'] }}" # FIXME: replace with an **estimate** minimum disk and RAM requirements. e.g. 20M, 400M, 1G... You may have have a look at CI results disk = "50M" ram.build = "50M" From 9de1ac02813095ec7b14025fd68dfeb4a80228ae Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Sun, 29 Oct 2023 15:13:51 +0100 Subject: [PATCH 109/292] appgenerator: rework the main form structure to have something matching the manifest structure: GeneralInfos, UpstreamInfos, IntegrationInfos, InstallQuestions, Resources --- tools/app_generator/app_generator.py | 338 ++++++++++------------- tools/app_generator/templates/index.html | 170 +++++++----- 2 files changed, 240 insertions(+), 268 deletions(-) diff --git a/tools/app_generator/app_generator.py b/tools/app_generator/app_generator.py index 5ed5d6a2ef..98325aec33 100644 --- a/tools/app_generator/app_generator.py +++ b/tools/app_generator/app_generator.py @@ -40,10 +40,6 @@ from urllib import parse from secrets import token_urlsafe -#### GLOBAL VARIABLES -YOLOGEN_VERSION = "0.7.5" -GENERATOR_DICT = {"GENERATOR_VERSION": YOLOGEN_VERSION} - #### Create FLASK and Jinja Environments app = Flask(__name__) app.config["SECRET_KEY"] = token_urlsafe(16) # Necessary for the form CORS @@ -175,56 +171,32 @@ class Form_Python(FlaskForm): }, ) +class GeneralInfos(FlaskForm): -## Manifest form -# Dependencies form -class DependenciesForm(FlaskForm): - auto_update = BooleanField( - "Activer le robot de mise à jour automatiques  :", - default=False, + app_id = StringField( + Markup( + """Identifiant (id) de l'application (en minuscule et sans espaces) :""" + ), + validators=[DataRequired(), Regexp("[a-z_1-9]+.*(?(en minuscule et sans espaces) :""" - ), - validators=[DataRequired(), Regexp("[a-z_1-9]+.*(?Formulaire de génération d'une a {{ main_form.hidden_tag() }} - {{ main_form.tutorial.label }} {{ main_form.tutorial() }} + {{ main_form.generator_mode.label }} {{ main_form.generator_mode() }} {# TODO : this doesn't work, should be changed on the fly. Is it worth the trouble ? - {% if main_form.tutorial %} + {% if main_form.generator_mode %} L'application générée contiendra des commentaires additionnels pour faciliter la compréhension {% else %} L'application générée ne contiendra que le minimum nécessaire @@ -245,11 +245,17 @@

Formulaire de génération d'une a En mode tutoriel, l'application générée contiendra des commentaires additionnels pour faciliter la compréhension. En version épurée, l'application générée ne contiendra que le minimum nécessaire. -

L'application à empaquetter dans Yunohost

-

Cette partie sert à indiquer comment le logiciel est intégré à Yunohost.

+ +
+ + + +

Informations générales

+ +
{{ main_form.app_name.label }} {{ main_form.app_name()}}
- {{ main_form.app_id.label}} {{ main_form.app_id() }} _ynh + {{ main_form.app_id.label}} {{ main_form.app_id() }}
@@ -264,13 +270,39 @@

L'application à empaquetter dans Yunohost

height: 2.5em;min-height: 1em; max-height: 4em;flex-grow: 1;box-sizing: border-box;")}}
-
+