Browse Source

🔨 Refactor translate script to show and update outdated translations

pull/13933/head
Sebastián Ramírez 1 week ago
parent
commit
5499bc2d7f
  1. 33
      scripts/translate.py

33
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()

Loading…
Cancel
Save