import os

base_dir = r'c:\Users\SarinoAlfonsoGrande\Downloads\qgis_ledger-main'

replacements = [
    # ledger_nextcloud.py
    ('f"Errore di rete [{method} {url}]: {e}"',
     'tr("Errore di rete [{method} {url}]: {e}").format(method=method, url=url, e=e)'),
    ('"Connessione avvenuta con successo!"',
     'tr("Connessione avvenuta con successo!")'),
    (
        'f"Impossibile listare la cartella \'{remote_path}\': {status} {reason}"',
        'tr("Impossibile listare la cartella \'{remote_path}\': {status} {reason}").format(remote_path=remote_path, status=status, reason=reason)'),
    (
        'f"Errore nel parsing della risposta WebDAV: {e}"',
        'tr("Errore nel parsing della risposta WebDAV: {e}").format(e=e)'),
    (
        'f"Impossibile creare la cartella \'{remote_path}\': {status} {reason}"',
        'tr("Impossibile creare la cartella \'{remote_path}\': {status} {reason}").format(remote_path=remote_path, status=status, reason=reason)'),
    (
        'f"Impossibile eliminare \'{remote_path}\': {status} {reason}"',
        'tr("Impossibile eliminare \'{remote_path}\': {status} {reason}").format(remote_path=remote_path, status=status, reason=reason)'),
    (
        'f"Impossibile spostare/rinominare \'{src}\' in \'{dst}\': {status} {reason}"',
        'tr("Impossibile spostare/rinominare \'{src}\' in \'{dst}\': {status} {reason}").format(src=src, dst=dst, status=status, reason=reason)'),
    (
        'f"Impossibile caricare \'{remote_path}\': {status} {reason}"',
        'tr("Impossibile caricare \'{remote_path}\': {status} {reason}").format(remote_path=remote_path, status=status, reason=reason)'),
    (
        'f"Impossibile scaricare \'{remote_path}\': {status} {reason}"',
        'tr("Impossibile scaricare \'{remote_path}\': {status} {reason}").format(remote_path=remote_path, status=status, reason=reason)'),
    ('f"Errore parsing WebDAV: {e}"',
     'tr("Errore parsing WebDAV: {e}").format(e=e)'),
    ('f"Impossibile listare \'{path}\': {e}"',
     'tr("Impossibile listare \'{path}\': {e}").format(path=path, e=e)'),
    (
        'f"Impossibile creare cartella \'{path}\': {e}"',
        'tr("Impossibile creare cartella \'{path}\': {e}").format(path=path, e=e)'),
    ('f"Impossibile eliminare \'{path}\': {e}"',
     'tr("Impossibile eliminare \'{path}\': {e}").format(path=path, e=e)'),
    (
        'f"Impossibile spostare \'{src}\' a \'{dst}\': {e}"',
        'tr("Impossibile spostare \'{src}\' a \'{dst}\': {e}").format(src=src, dst=dst, e=e)'),
    ('f"Impossibile caricare \'{path}\': {e}"',
     'tr("Impossibile caricare \'{path}\': {e}").format(path=path, e=e)'),
    ('f"Impossibile scaricare \'{path}\': {e}"',
     'tr("Impossibile scaricare \'{path}\': {e}").format(path=path, e=e)'),
    ('f"Errore {method} API {url}: {e}"',
     'tr("Errore {method} API {url}: {e}").format(method=method, url=url, e=e)'),
    ('f"\'{name}\' non sembra un layer supportato per l\'import automatico."',
     'tr("\'{name}\' non sembra un layer supportato per l\'import automatico.").format(name=name)'),
    ('"\\n\\nAprire questo progetto in QGIS?\\n(Le eventuali modifiche correnti verranno perse!)"',
     'tr("\\n\\nAprire questo progetto in QGIS?\\n(Le eventuali modifiche correnti verranno perse!)")'),
    ('f"\'{name}\' scaricato con successo in:\\n{local_path}"',
     'tr("\'{name}\' scaricato con successo in:\\n{local_path}").format(name=name, local_path=local_path)'),
    ('"Nextcloud — Errore"', 'tr("Nextcloud — Errore")'),

    # ledger_plugin.py
    ('f"Errore drop Nextcloud: {e}"',
     'tr("Errore drop Nextcloud: {e}").format(e=e)'),
    ('"Dialogo custom per inserire msg di commit e scegliere opzioni."',
     'tr("Dialogo custom per inserire msg di commit e scegliere opzioni.")'),
    ('"Genera una QIcon con un simbolo centrato su sfondo circolare."',
     'tr("Genera una QIcon con un simbolo centrato su sfondo circolare.")'),
    ('"Vuoi esplorare un progetto LOCALE o scaricarlo dal tuo provider CLOUD?\\n\\n"\\n                "• \'Yes\' per scegliere un file nel disco locale (PC)\\n"\\n                "• \'No\' per sfogliare l\'archivio CLOUD selezionato"',
     'tr("Vuoi esplorare un progetto LOCALE o scaricarlo dal tuo provider CLOUD?\\n\\n• \'Yes\' per scegliere un file nel disco locale (PC)\\n• \'No\' per sfogliare l\'archivio CLOUD selezionato")'),
    ('"Usa il pannello Nextcloud a destra per cercare e scaricare il file .qgz. Facci doppio clic per aprirlo."',
     'tr("Usa il pannello Nextcloud a destra per cercare e scaricare il file .qgz. Facci doppio clic per aprirlo.")'),
    ('"Esegue l\'upload in background dei file generati da un commit (layer/progetto)."',
     'tr("Esegue l\'upload in background dei file generati da un commit (layer/progetto).")'),
    ('"Gestisce il drop di un layer da QGIS nel pannello Cloud (esportazione rapida GeoPackage + Stile)."',
     'tr("Gestisce il drop di un layer da QGIS nel pannello Cloud (esportazione rapida GeoPackage + Stile).")'),
    (
        'f"Errore durante la conversione in GeoPackage: codice {err}"',
        'tr("Errore durante la conversione in GeoPackage: codice {err}").format(err=err)'),
    (
        'f"Progetto self-contained esportato con successo!\\n(Copiati {count} file locali)\\n\\nPercorso:\\n{folder_path}"',
        'tr("Progetto self-contained esportato con successo!\\n(Copiati {count} file locali)\\n\\nPercorso:\\n{folder_path}").format(count=count, folder_path=folder_path)'),
    ('f"Rollback test completato: {changes} modifiche verificate. Premi \'Annulla modifiche\' per tornare allo stato precedente."',
     'tr("Rollback test completato: {changes} modifiche verificate. Premi \'Annulla modifiche\' per tornare allo stato precedente.").format(changes=changes)'),
    ('"Errore durante il rollback del progetto."',
     'tr("Errore durante il rollback del progetto.")'),
    (
        'f"Seleziona il file sorgente per il layer \'{name}\'"',
        'tr("Seleziona il file sorgente per il layer \'{name}\'").format(name=name)'),
    ('"Impossibile caricare il layer selezionato."',
     'tr("Impossibile caricare il layer selezionato.")'),
    ('"Errore durante il rollback."', 'tr("Errore durante il rollback.")'),
    ('"Chiudi finestra"', 'tr("Chiudi finestra")'),
    ('"Sorgente originaria non trovata. Impossibile copiare il file."',
     'tr("Sorgente originaria non trovata. Impossibile copiare il file.")'),

    # ledger_settings.py
    ('"💡 Compatibile con: Box.com, Koofr, pCloud, ownCloud, NAS aziendali..."',
     'tr("💡 Compatibile con: Box.com, Koofr, pCloud, ownCloud, NAS aziendali...")'),
    ('"💡 Token rapido: developers.google.com/oauthplayground"',
     'tr("💡 Token rapido: developers.google.com/oauthplayground")')
]

for file_name in [
    'ledger_nextcloud.py',
    'ledger_plugin.py',
        'ledger_settings.py']:
    path = os.path.join(base_dir, file_name)
    with open(path, 'r', encoding='utf-8') as f:
        c = f.read()

    original_c = c
    for old, new in replacements:
        if old in c:
            c = c.replace(old, new)
            print(f"Replaced {old[:30]}...")

    if c != original_c:
        with open(path, 'w', encoding='utf-8') as f:
            f.write(c)

print('Replacements applied.')
