import json, os

base = '/home/szymon/projects/tfb/app/supplier/src/core/I18n/translations/page'

translations = {
    'pl': {
        'pnl_tile_title':          'P&L — Podsumowanie kosztów',
        'pnl_computed_per_packaging': 'Obliczane per opakowanie',
        'pnl_portions':            'porcji',
        'pnl_missing_portions':    'Uzupełnij sekcję Sales unit',
        'pnl_raw_materials':       'Surowce',
        'pnl_labor':               'Praca',
        'pnl_overhead':            'Koszty stałe',
        'pnl_total_cost':          'Łączny koszt / opakowanie',
        'pnl_target_margin':       'Docelowa marża',
        'pnl_recommended_price':   'Rekomendowana cena / opakowanie',
        'pnl_per_portion_label':   'Cena / porcja',
        'pnl_margin':              'marża',
        'pnl_vidanges_passthrough':'vidanges / opakowanie — fakturowane oddzielnie (depozyt zwrotny, poza kosztem produktu).',
        'pnl_incomplete_warning':  'Uzupełnij sekcje Labor, Sales unit i Overhead, aby obliczyć pełne podsumowanie kosztów.',
    },
    'en': {
        'pnl_tile_title':          'P&L — Cost summary',
        'pnl_computed_per_packaging': 'Computed per packaging',
        'pnl_portions':            'portions',
        'pnl_missing_portions':    'Fill in Sales unit section',
        'pnl_raw_materials':       'Raw materials',
        'pnl_labor':               'Labor',
        'pnl_overhead':            'Overhead',
        'pnl_total_cost':          'Total cost / packaging',
        'pnl_target_margin':       'Target margin',
        'pnl_recommended_price':   'Recommended packaging price',
        'pnl_per_portion_label':   'Price / portion',
        'pnl_margin':              'margin',
        'pnl_vidanges_passthrough':'vidanges / packaging — invoiced separately (recoverable deposit, not in product cost).',
        'pnl_incomplete_warning':  'Fill in Labor, Sales unit and Overhead sections to compute the full cost summary.',
    },
    'fr': {
        'pnl_tile_title':          'P&L — R\u00e9sum\u00e9 des co\u00fbts',
        'pnl_computed_per_packaging': 'Calcul\u00e9 par emballage',
        'pnl_portions':            'portions',
        'pnl_missing_portions':    'Renseignez la section Unit\u00e9 de vente',
        'pnl_raw_materials':       'Mati\u00e8res premi\u00e8res',
        'pnl_labor':               'Main d\u2019\u0153uvre',
        'pnl_overhead':            'Frais g\u00e9n\u00e9raux',
        'pnl_total_cost':          'Co\u00fbt total / emballage',
        'pnl_target_margin':       'Marge cible',
        'pnl_recommended_price':   'Prix emballage recommand\u00e9',
        'pnl_per_portion_label':   'Prix / portion',
        'pnl_margin':              'marge',
        'pnl_vidanges_passthrough':'vidanges / emballage \u2014 factur\u00e9es s\u00e9par\u00e9ment (consigne remboursable, hors co\u00fbt produit).',
        'pnl_incomplete_warning':  'Renseignez les sections Main d\u2019\u0153uvre, Unit\u00e9 de vente et Frais g\u00e9n\u00e9raux pour le r\u00e9sum\u00e9 complet.',
    },
    'it': {
        'pnl_tile_title':          'P&L — Riepilogo costi',
        'pnl_computed_per_packaging': 'Calcolato per confezione',
        'pnl_portions':            'porzioni',
        'pnl_missing_portions':    'Compila la sezione Unit\u00e0 di vendita',
        'pnl_raw_materials':       'Materie prime',
        'pnl_labor':               'Manodopera',
        'pnl_overhead':            'Spese generali',
        'pnl_total_cost':          'Costo totale / confezione',
        'pnl_target_margin':       'Margine obiettivo',
        'pnl_recommended_price':   'Prezzo confezione consigliato',
        'pnl_per_portion_label':   'Prezzo / porzione',
        'pnl_margin':              'margine',
        'pnl_vidanges_passthrough':'vidanges / confezione \u2014 fatturate separatamente (cauzione rimborsabile, non nel costo prodotto).',
        'pnl_incomplete_warning':  'Compila le sezioni Manodopera, Unit\u00e0 di vendita e Spese generali per il riepilogo completo.',
    },
    'nl': {
        'pnl_tile_title':          'P&L \u2014 Kostenoverzicht',
        'pnl_computed_per_packaging': 'Berekend per verpakking',
        'pnl_portions':            'porties',
        'pnl_missing_portions':    'Vul de Verkoopeenheid-sectie in',
        'pnl_raw_materials':       'Grondstoffen',
        'pnl_labor':               'Arbeid',
        'pnl_overhead':            'Overhead',
        'pnl_total_cost':          'Totale kosten / verpakking',
        'pnl_target_margin':       'Doelmarge',
        'pnl_recommended_price':   'Aanbevolen verpakkingsprijs',
        'pnl_per_portion_label':   'Prijs / portie',
        'pnl_margin':              'marge',
        'pnl_vidanges_passthrough':'vidanges / verpakking \u2014 apart gefactureerd (terugvorderbaar statiegeld, niet in productkosten).',
        'pnl_incomplete_warning':  'Vul Arbeid, Verkoopeenheid en Overhead in voor het volledige kostenoverzicht.',
    },
}

for lang, keys in translations.items():
    path = os.path.join(base, lang, 'recipes.json')
    with open(path, 'r', encoding='utf-8') as f:
        data = json.load(f)
    added = 0
    for k, v in keys.items():
        if k not in data:
            data[k] = v
            added += 1
    with open(path, 'w', encoding='utf-8') as f:
        json.dump(data, f, ensure_ascii=False, indent=2)
        f.write('\n')
    print(f'{lang}: added {added} keys')
