#!/usr/bin/env python3
"""One-line completion report per catalog."""
import glob
import os
from babel.messages.pofile import read_po

for path in sorted(glob.glob("supporthub/app/translations/*/LC_MESSAGES/messages.po")):
    lang = path.split("/")[-3]
    with open(path, encoding="utf-8") as fh:
        catalog = read_po(fh)
    total = done = fuzzy = 0
    for msg in catalog:
        if not msg.id:
            continue
        total += 1
        ok = all(msg.string) if isinstance(msg.id, (list, tuple)) else bool(msg.string)
        if ok:
            done += 1
        if "fuzzy" in msg.flags:
            fuzzy += 1
    pct = 100 * done / total if total else 0
    print(f"{lang}: {done}/{total} ({pct:.1f}%)  fuzzy={fuzzy}  missing={total - done}")
