#!/usr/bin/env python3
"""
translations.xlsx -> translations.json eguneratu.

Erabilera:
  python3 xlsx_to_json.py
"""
import json
import os
import openpyxl

BASE = os.path.dirname(os.path.abspath(__file__))
XLSX = os.path.join(BASE, "translations.xlsx")
JSON = os.path.join(BASE, "translations.json")


def normalize_newlines(s):
    if s is None:
        return ""
    return s.replace("\r\n", "\n").replace("\r", "\n").replace("\n", "\r\n")


def main():
    wb = openpyxl.load_workbook(XLSX, read_only=True)
    ws = wb["translations"] if "translations" in wb.sheetnames else wb.active
    rows = ws.iter_rows(values_only=True)
    header = [str(h).strip().lower() if h is not None else "" for h in next(rows)]
    if header != ["ns", "key", "en", "eu"]:
        raise SystemExit(f"Ustekabeko goiburua: {header}")
    entries = []
    for r in rows:
        ns = r[0] if r[0] is not None else ""
        entries.append({
            "ns": ns,
            "key": r[1],
            "en": normalize_newlines(r[2]),
            "eu": normalize_newlines(r[3]),
        })
    with open(JSON, "w", encoding="utf-8") as f:
        json.dump(entries, f, ensure_ascii=False, indent=2)
        f.write("\n")
    print(f"Eguneratuta: {JSON} ({len(entries)} sarrera)")


if __name__ == "__main__":
    main()
