From 5499bc2d7fdba56a99dd061a62c2cccf7cb061ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Ram=C3=ADrez?= Date: Sat, 26 Jul 2025 23:20:41 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A8=20Refactor=20translate=20script=20?= =?UTF-8?q?to=20show=20and=20update=20outdated=20translations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/translate.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/scripts/translate.py b/scripts/translate.py index 6af12dc98..4bd7fcac1 100644 --- a/scripts/translate.py +++ b/scripts/translate.py @@ -2,6 +2,7 @@ from functools import lru_cache from pathlib import Path from typing import Iterable +import git import typer import yaml from pydantic_ai import Agent @@ -243,5 +244,37 @@ def remove_all_removable() -> None: print("Done removing all removable paths") +@app.command() +def list_outdated(lang: str) -> list[Path]: + dir_path = Path(__file__).absolute().parent.parent + repo = git.Repo(dir_path) + + outdated_paths: list[Path] = [] + en_lang_paths = list(iter_en_paths_to_translate()) + for path in en_lang_paths: + lang_path = generate_lang_path(lang=lang, path=path) + if not lang_path.exists(): + outdated_paths.append(path) + continue + en_commit_datetime = list(repo.iter_commits(paths=path, max_count=1))[ + 0 + ].committed_datetime + lang_commit_datetime = list(repo.iter_commits(paths=lang_path, max_count=1))[ + 0 + ].committed_datetime + if lang_commit_datetime < en_commit_datetime: + outdated_paths.append(path) + print(outdated_paths) + return outdated_paths + +@app.command() +def update_outdated(lang: str) -> None: + outdated_paths = list_outdated(lang) + for path in outdated_paths: + print(f"Updating lang: {lang} path: {path}") + translate_page(lang=lang, path=path) + print(f"Done updating: {path}") + print("Done updating all outdated paths") + if __name__ == "__main__": app()