From 339a0c64f938dfcd3abc1594bda34e71888a7746 Mon Sep 17 00:00:00 2001 From: oleole39 <59071673+oleole39@users.noreply.github.com> Date: Tue, 9 Apr 2024 01:43:20 +0200 Subject: [PATCH 1/3] regen READMEs even if only partially translated --- tools/readme_generator/make_readme.py | 45 ++++++++++++++----- tools/readme_generator/templates/README.md.j2 | 6 +++ 2 files changed, 40 insertions(+), 11 deletions(-) diff --git a/tools/readme_generator/make_readme.py b/tools/readme_generator/make_readme.py index 06e3ca73..06071246 100755 --- a/tools/readme_generator/make_readme.py +++ b/tools/readme_generator/make_readme.py @@ -106,7 +106,7 @@ def generate_READMEs(app_path: Path): continue screenshots.append(str(entry.relative_to(app_path))) - def generate_single_README(lang_suffix: str, lang: str): + def generate_single_README(lang_suffix: str, lang: str, translation_warning: bool = False): env = Environment( loader=FileSystemLoader(README_GEN_DIR / "templates"), extensions=["jinja2.ext.i18n"], @@ -123,8 +123,10 @@ def generate_READMEs(app_path: Path): # Fallback to english if maintainer too lazy to translate the description elif (app_path / "doc" / "DESCRIPTION.md").exists(): description = (app_path / "doc" / "DESCRIPTION.md").read_text() + translation_warning = True else: description = None + translation_warning = True disclaimer: Optional[str] if (app_path / "doc" / f"DISCLAIMER{lang_suffix}.md").exists(): @@ -132,8 +134,10 @@ def generate_READMEs(app_path: Path): # Fallback to english if maintainer too lazy to translate the disclaimer idk elif (app_path / "doc" / "DISCLAIMER.md").exists(): disclaimer = (app_path / "doc" / "DISCLAIMER.md").read_text() + translation_warning = True else: disclaimer = None + translation_warning = True # TODO: Add url to the documentation... and actually create that documentation :D antifeatures = { @@ -152,6 +156,7 @@ def generate_READMEs(app_path: Path): ) out: str = template.render( + translation_warning=translation_warning, lang=lang, upstream=upstream, description=description, @@ -165,19 +170,37 @@ def generate_READMEs(app_path: Path): generate_single_README("", "en") for lang in fully_translated_langs: - generate_single_README("_" + lang, lang) + generate_single_README("_" + lang, lang, False) + + existing_READMEs_paths = glob.glob('README_*', root_dir=app_path) + existing_READMEs_langs = [name.removesuffix('.md').split('_')[-1] for name in existing_READMEs_paths] + other_existing_READMEs_langs = [x for x in existing_READMEs_langs if x not in fully_translated_langs] + + for lang in other_existing_READMEs_langs: + generate_single_README("_" + lang, lang, True) + links_to_other_READMEs = [] - for language in fully_translated_langs: - translations = Translations.load("translations", [language]) + fully_translated_or_existing_langs = list(set(fully_translated_langs) | set(existing_READMEs_langs)) # Union + for language in fully_translated_or_existing_langs: + translations = Translations.load("translations", [language]) language_name_in_itself = Language.get(language).autonym() - links_to_other_READMEs.append( - ( - f"README_{language}.md", - translations.gettext("Read the README in %(language)s") - % {"language": language_name_in_itself}, - ) - ) + if language in fully_translated_langs: + links_to_other_READMEs.append( + ( + f"README_{language}.md", + translations.gettext("Read the README in %(language)s") + % {"language": language_name_in_itself}, + ) + ) + elif language in other_existing_READMEs_langs: + links_to_other_READMEs.append( + ( + f"README_{language}.md", + translations.gettext("Read the README in %(language)s (incomplete)") + % {"language": language_name_in_itself}, + ) + ) env = Environment(loader=FileSystemLoader(README_GEN_DIR / "templates")) out: str = env.get_template("ALL_README.md.j2").render( diff --git a/tools/readme_generator/templates/README.md.j2 b/tools/readme_generator/templates/README.md.j2 index bd1e6182..c10d45a9 100644 --- a/tools/readme_generator/templates/README.md.j2 +++ b/tools/readme_generator/templates/README.md.j2 @@ -25,7 +25,13 @@ 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}}) +{% if translation_warning %} +> [!WARNING] +> {{ _("The README is not fully translated in this language. You may want to read this README [in other languages]") }}](./ALL_README.md)) +> {{ _("Help would be appreciated for [completing the translation]")}}(https://translate.yunohost.org/projects/yunohost/readme-generator/{{lang}}). +{% else %} *[{{ _("Read this README in other languages.") }}](./ALL_README.md)* +{% endif -%} > *{{ _("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.") }}* From eba9b4da2638c4ff1e21a0e91a23b0d58176f215 Mon Sep 17 00:00:00 2001 From: oleole39 <59071673+oleole39@users.noreply.github.com> Date: Tue, 9 Apr 2024 02:04:05 +0200 Subject: [PATCH 2/3] convert tab to space --- tools/readme_generator/make_readme.py | 42 +++++++++++++-------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/tools/readme_generator/make_readme.py b/tools/readme_generator/make_readme.py index 06071246..d03e4360 100755 --- a/tools/readme_generator/make_readme.py +++ b/tools/readme_generator/make_readme.py @@ -123,7 +123,7 @@ def generate_READMEs(app_path: Path): # Fallback to english if maintainer too lazy to translate the description elif (app_path / "doc" / "DESCRIPTION.md").exists(): description = (app_path / "doc" / "DESCRIPTION.md").read_text() - translation_warning = True + translation_warning = True else: description = None translation_warning = True @@ -156,7 +156,7 @@ def generate_READMEs(app_path: Path): ) out: str = template.render( - translation_warning=translation_warning, + translation_warning=translation_warning, lang=lang, upstream=upstream, description=description, @@ -173,9 +173,9 @@ def generate_READMEs(app_path: Path): generate_single_README("_" + lang, lang, False) existing_READMEs_paths = glob.glob('README_*', root_dir=app_path) - existing_READMEs_langs = [name.removesuffix('.md').split('_')[-1] for name in existing_READMEs_paths] - other_existing_READMEs_langs = [x for x in existing_READMEs_langs if x not in fully_translated_langs] - + existing_READMEs_langs = [name.removesuffix('.md').split('_')[-1] for name in existing_READMEs_paths] + other_existing_READMEs_langs = [x for x in existing_READMEs_langs if x not in fully_translated_langs] + for lang in other_existing_READMEs_langs: generate_single_README("_" + lang, lang, True) @@ -183,24 +183,24 @@ def generate_READMEs(app_path: Path): links_to_other_READMEs = [] fully_translated_or_existing_langs = list(set(fully_translated_langs) | set(existing_READMEs_langs)) # Union for language in fully_translated_or_existing_langs: - translations = Translations.load("translations", [language]) + translations = Translations.load("translations", [language]) language_name_in_itself = Language.get(language).autonym() if language in fully_translated_langs: - links_to_other_READMEs.append( - ( - f"README_{language}.md", - translations.gettext("Read the README in %(language)s") - % {"language": language_name_in_itself}, - ) - ) - elif language in other_existing_READMEs_langs: - links_to_other_READMEs.append( - ( - f"README_{language}.md", - translations.gettext("Read the README in %(language)s (incomplete)") - % {"language": language_name_in_itself}, - ) - ) + links_to_other_READMEs.append( + ( + f"README_{language}.md", + translations.gettext("Read the README in %(language)s") + % {"language": language_name_in_itself}, + ) + ) + elif language in other_existing_READMEs_langs: + links_to_other_READMEs.append( + ( + f"README_{language}.md", + translations.gettext("Read the README in %(language)s (incomplete)") + % {"language": language_name_in_itself}, + ) + ) env = Environment(loader=FileSystemLoader(README_GEN_DIR / "templates")) out: str = env.get_template("ALL_README.md.j2").render( From ff2682c3da8b4f29ae391ad174578877af2392e1 Mon Sep 17 00:00:00 2001 From: oleole39 <59071673+oleole39@users.noreply.github.com> Date: Tue, 9 Apr 2024 02:23:55 +0200 Subject: [PATCH 3/3] add import glob --- tools/readme_generator/make_readme.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/readme_generator/make_readme.py b/tools/readme_generator/make_readme.py index d03e4360..32c00eb1 100755 --- a/tools/readme_generator/make_readme.py +++ b/tools/readme_generator/make_readme.py @@ -9,6 +9,7 @@ from copy import deepcopy from typing import Dict, Optional, List, Tuple import toml +import glob from jinja2 import Environment, FileSystemLoader from babel.support import Translations from babel.messages.pofile import PoFileParser