#!/bin/bash

# ======================================================================
# Archivo:       gimp-quirinux
# Ruta:          /usr/local/bin/
# Autor:         Charlie Martínez® <cmartinez@quirinux.org>
# Licencia:      https://www.gnu.org/licenses/gpl-2.0.txt
# Propósito:     Alternar iconos y shortcuts de Photoshop en GIMP
# Distribución:  Quirinux 2.x
# ======================================================================

#
# Copyright (c) 2019-2025 Charlie Martínez, derechos reservados.
# Licencia: https://www.gnu.org/licenses/gpl-2.0.txt
# Usos autorizados y no autorizados de la marca Quirinux:
# Ver https://www.quirinux.org/aviso-legal
#

# ----------------------------------------------------------------------
# Traducciones
# ----------------------------------------------------------------------

LANG_CODE="${LANG%%_*}"
SUPPORTED_LANGS="es en gl pt fr it de ru hu"

# Idioma por defecto
[[ " $SUPPORTED_LANGS " =~ " $LANG_CODE " ]] || LANG_CODE="en"

declare -A TXT

# Español

TXT[es.menu_title]="GIMP-QUIRINUX"
TXT[es.menu_col]="Opciones disponibles"
TXT[es.opt_ps_ps]="Usar iconos y atajos de Photoshop"
TXT[es.opt_gimp_gimp]="Usar iconos y atajos de GIMP"
TXT[es.opt_ps_gimp]="Usar iconos de Photoshop y atajos de GIMP"
TXT[es.opt_gimp_ps]="Usar iconos de GIMP y atajos de Photoshop"
TXT[es.opt_exit]="Salir"
TXT[es.progress_title]="Configurando"
TXT[es.progress_text]="Ten paciencia, llevará tiempo"
TXT[es.progress_step]="# Procesando"
TXT[es.cancel]="Configuración cancelada"
TXT[es.done]="Configuraciones realizadas. Siempre puedes revertirlas."

# Inglés

TXT[en.menu_title]="GIMP-QUIRINUX"
TXT[en.menu_col]="Available options"
TXT[en.opt_ps_ps]="Use Photoshop icons and shortcuts"
TXT[en.opt_gimp_gimp]="Use GIMP icons and shortcuts"
TXT[en.opt_ps_gimp]="Use Photoshop icons and GIMP shortcuts"
TXT[en.opt_gimp_ps]="Use GIMP icons and Photoshop shortcuts"
TXT[en.opt_exit]="Exit"
TXT[en.progress_title]="Configuring"
TXT[en.progress_text]="Please wait, this will take some time"
TXT[en.progress_step]="# Processing"
TXT[en.cancel]="Configuration canceled"
TXT[en.done]="Settings made. You can always reverse them."

# Gallego

TXT[gl.menu_title]="GIMP-QUIRINUX"
TXT[gl.menu_col]="Opcións dispoñibles"
TXT[gl.opt_ps_ps]="Usa iconas e atallos de Photoshop"
TXT[gl.opt_gimp_gimp]="Usa iconas e atallos de GIMP"
TXT[gl.opt_ps_gimp]="Usa iconas de Photoshop e atallos de GIMP"
TXT[gl.opt_gimp_ps]="Usa iconas de GIMP e atallos de Photoshop"
TXT[gl.opt_exit]="Saír"
TXT[gl.progress_title]="Configurando"
TXT[gl.progress_text]="Ten paciencia, levará tempo"
TXT[gl.progress_step]="# Procesando"
TXT[gl.cancel]="Configuración cancelada"
TXT[gl.done]="Configuración feita. Sempre podes revertela."

# Portugués

TXT[pt.menu_title]="GIMP-QUIRINUX"
TXT[pt.menu_col]="Opções disponíveis"
TXT[pt.opt_ps_ps]="Use ícones e atalhos do Photoshop"
TXT[pt.opt_gimp_gimp]="Use ícones e atalhos do GIMP"
TXT[pt.opt_ps_gimp]="Use ícones do Photoshop e atalhos do GIMP"
TXT[pt.opt_gimp_ps]="Use ícones do GIMP e atalhos do Photoshop"
TXT[pt.opt_exit]="Sair"
TXT[pt.progress_title]="Configurando"
TXT[pt.progress_text]="Por favor, aguarde, isso levará algum tempo"
TXT[pt.progress_step]="# Processando"
TXT[pt.cancel]="Configuração cancelada"
TXT[pt.done]="Configurações feitas. Você sempre pode revertê-las."

# Francés

TXT[fr.menu_title]="GIMP-QUIRINUX"
TXT[fr.menu_col]="Options disponibles"
TXT[fr.opt_ps_ps]="Utiliser les icônes et raccourcis Photoshop"
TXT[fr.opt_gimp_gimp]="Utiliser les icônes et raccourcis GIMP"
TXT[fr.opt_ps_gimp]="Utiliser les icônes Photoshop et raccourcis GIMP"
TXT[fr.opt_gimp_ps]="Utiliser les icônes GIMP et raccourcis Photoshop"
TXT[fr.opt_exit]="Quitter"
TXT[fr.progress_title]="Configuration"
TXT[fr.progress_text]="Veuillez patienter, cela prendra du temps"
TXT[fr.progress_step]="# Traitement en cours"
TXT[fr.cancel]="Configuration annulée"
TXT[fr.done]="Paramètres définis. Vous pouvez toujours les inverser."

# Italiano

TXT[it.menu_title]="GIMP-QUIRINUX"
TXT[it.menu_col]="Opzioni disponibili"
TXT[it.opt_ps_ps]="Usa icone e scorciatoie di Photoshop"
TXT[it.opt_gimp_gimp]="Usa icone e scorciatoie di GIMP"
TXT[it.opt_ps_gimp]="Usa icone Photoshop e scorciatoie di GIMP"
TXT[it.opt_gimp_ps]="Usa icone di GIMP e scorciatoie di Photoshop"
TXT[it.opt_exit]="Esci"
TXT[it.progress_title]="Configurazione"
TXT[it.progress_text]="Attendere, potrebbe richiedere del tempo"
TXT[it.progress_step]="# Elaborazione in corso"
TXT[it.cancel]="Configurazione annullata"
TXT[it.done]="Impostazioni effettuate. Puoi sempre invertirle."

# Alemán

TXT[de.menu_title]="GIMP-QUIRINUX"
TXT[de.menu_col]="Verfügbare Optionen"
TXT[de.opt_ps_ps]="Photoshop-Symbole und Verknüpfungen verwenden"
TXT[de.opt_gimp_gimp]="GIMP-Symbole und Verknüpfungen verwenden"
TXT[de.opt_ps_gimp]="Photoshop-Symbole und GIMP-Verknüpfungen verwenden"
TXT[de.opt_gimp_ps]="GIMP-Symbole und Photoshop-Verknüpfungen verwenden"
TXT[de.opt_exit]="Beenden"
TXT[de.progress_title]="Konfiguration"
TXT[de.progress_text]="Bitte warten, dies kann etwas dauern"
TXT[de.progress_step]="# Verarbeitung läuft"
TXT[de.cancel]="Konfiguration abgebrochen"
TXT[de.done]="Einstellungen vorgenommen. Sie können sie jederzeit rückgängig machen."

# Ruso 

TXT[ru.menu_title]="GIMP-QUIRINUX"
TXT[ru.menu_col]="Доступные варианты"
TXT[ru.opt_ps_ps]="Значки и ярлыки Photoshop"
TXT[ru.opt_gimp_gimp]="Значки и ярлыки GIMP"
TXT[ru.opt_ps_gimp]="Значки Photoshop и ярлыки GIMP"
TXT[ru.opt_gimp_ps]="Значки GIMP и ярлыки Photoshop"
TXT[ru.opt_exit]="Выход"
TXT[ru.progress_title]="Настройка"
TXT[ru.progress_text]="Пожалуйста, подождите, это займет некоторое время"
TXT[ru.progress_step]="# Обработка"
TXT[ru.cancel]="Настройка отменена"
TXT[ru.done]="Настройки применены. Их можно отменить в любое время."

# Húngaro

TXT[hu.menu_title]="GIMP-QUIRINUX"
TXT[hu.menu_col]="Elérhető lehetőségek"
TXT[hu.opt_ps_ps]="Photoshop ikonok és gyorsbillentyűk használata"
TXT[hu.opt_gimp_gimp]="GIMP ikonok és gyorsbillentyűk használata"
TXT[hu.opt_ps_gimp]="Photoshop ikonok és GIMP gyorsbillentyűk"
TXT[hu.opt_gimp_ps]="GIMP ikonok és Photoshop gyorsbillentyűk"
TXT[hu.opt_exit]="Kilépés"
TXT[hu.progress_title]="Beállítás"
TXT[hu.progress_text]="Kérjük, várjon, ez eltarthat egy ideig"
TXT[hu.progress_step]="# Feldolgozás"
TXT[hu.cancel]="Beállítás megszakítva"
TXT[hu.done]="Beállítások alkalmazva. Bármikor visszavonhatók."

# ----------------------------------------------------------------------
# Funciones comunes
# ----------------------------------------------------------------------
_salir() { exit 0; }

_fin() {
    zenity --info --text "${TXT[$LANG_CODE.done]}"
    gimp
}

_file() {
    mkdir -p "$HOME/.config/GIMP"
}

_borrar() {
    rm -rf "$HOME/.config/GIMP"
}

# ----------------------------------------------------------------------
# Aplicadores de idiomas
# ----------------------------------------------------------------------

_photoshop() {
    _file
    cp -rf /usr/local/share/gimp-quirinux/gimp-shop/.config/* "$HOME/.config/"
    cp -rf /usr/local/share/gimp-quirinux/gimp-shop/usr/share/gimp/* /usr/share/gimp/
}

_gimp() {
    _file
    cp -rf /usr/local/share/gimp-quirinux/gimp-original-full/.config/* "$HOME/.config/"
    cp -rf /usr/local/share/gimp-quirinux/gimp-original-full/usr/share/gimp/* /usr/share/gimp/
}

_photogimp() {
    _file
    cp -rf /usr/local/share/gimp-quirinux/gimp-shop/.config/* "$HOME/.config/"
    cp -rf /usr/local/share/gimp-quirinux/gimp-original-rc/.config/* "$HOME/.config/"
}

_gimpshop() {
    _file
    cp -rf /usr/local/share/gimp-quirinux/gimp-original-full/.config/* "$HOME/.config/"
    cp -rf /usr/local/share/gimp-quirinux/gimp-shop-rc/.config/* "$HOME/.config/"
}

# ----------------------------------------------------------------------
# Barra de progreso
# ----------------------------------------------------------------------

_run_with_progress() {
(
    _borrar
    echo "50"; sleep 1
    echo "${TXT[$LANG_CODE.progress_step]}"
    "$1"
    echo "100"; sleep 1
    echo "${TXT[$LANG_CODE.progress_step]}"
) |
zenity --progress \
    --title="${TXT[$LANG_CODE.progress_title]}" \
    --text="${TXT[$LANG_CODE.progress_text]}" \
    --percentage=0 --auto-close --auto-kill

[[ "$?" == -1 ]] && zenity --error --text="${TXT[$LANG_CODE.cancel]}"
}

# ----------------------------------------------------------------------
# Menú principal
# ----------------------------------------------------------------------

menu_principal() {

choice=$(zenity --list \
    --title "${TXT[$LANG_CODE.menu_title]}" \
    --width=600 --height=300 \
    --column "${TXT[$LANG_CODE.menu_col]}" \
    "${TXT[$LANG_CODE.opt_ps_ps]}" \
    "${TXT[$LANG_CODE.opt_gimp_gimp]}" \
    "${TXT[$LANG_CODE.opt_ps_gimp]}" \
    "${TXT[$LANG_CODE.opt_gimp_ps]}" \
    "${TXT[$LANG_CODE.opt_exit]}"
)

case "$choice" in
    "${TXT[$LANG_CODE.opt_ps_ps]}")   _run_with_progress _photoshop; _fin ;;
    "${TXT[$LANG_CODE.opt_gimp_gimp]}") _run_with_progress _gimp; _fin ;;
    "${TXT[$LANG_CODE.opt_ps_gimp]}") _run_with_progress _photogimp; _fin ;;
    "${TXT[$LANG_CODE.opt_gimp_ps]}") _run_with_progress _gimpshop; _fin ;;
    *) _salir ;;
esac
}

menu_principal
