#!/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()