mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-08 19:56:53 +00:00
catalog.update() defaults to fuzzy matching: for every changed msgid it searches all removed messages for a similar string and carries that translation over as a fuzzy entry. The search is quadratic. Measured on one catalog, it costs 11.01s for the 421-message core domain and did not finish within 10 minutes for the 25182-message docs domain, per language, across 20 pool workers. The carried-over value is dead. Four places read the fuzzy flag and three exclude it: translations(), the API reader and the docs builder. The fourth, pending(), treats a fuzzy entry as untranslated, so the next i18n-translate run overwrites it anyway. With the search disabled, make i18n-extract domain=docs finishes in 2m4s wall for 47 catalogs, of which user/real 1.56 shows almost all remaining time is the single-threaded sphinx build. Checked msgid by msgid on two catalogs: no surviving entry lost its translation. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>