import os.path

import collections
import codecs

global tdic

def leeTradAperturas( fichero ) :
    global tdic
    if fichero == "" :
        fichero = "lkbase"
    fichero = "Translations/%s.opt"%fichero
    if os.path.isfile( fichero ) :
        f = codecs.open( fichero, "r", 'utf-8' )
        for linea in f :
            linea = linea.strip()
            n = linea.find( "=" )
            if n :
                clave = linea[:n]
                valor = linea[n+1:].strip()
                if valor :
                    tdic[clave] = valor
        f.close()

def leeTradNAGS( fichero ) :
    global tdic
    if fichero == "" :
        fichero = "lkbase"
    fichero = "Translations/%s.nag"%fichero
    if os.path.isfile( fichero ) :
        f = codecs.open( fichero, "r", 'utf-8' )
        for linea in f :
            linea = linea.strip()
            n = linea.find( "=" )
            if n :
                clave = linea[:n]
                valor = linea[n+1:].strip()
                if valor :
                    tdic[clave] = valor
        f.close()

def leeUno( fichero, siBase ) :
    f = codecs.open(fichero,'r','utf-8')
    global tdic
    if siBase :
        tdic = collections.OrderedDict()
    for linea in f :
        linea = linea.strip()
        if "#" in linea :
            linea = linea[:linea.index("#")]
        if "=" in linea :
            n = linea.index( "=" )
            clave = linea[:n].strip()
            valor = linea[n+1:]

            if "\\n" in valor :
                valor = valor.replace( "\\n", "\n" )
            if clave.startswith( "+" ) :
                clave = clave[1:]
                valor = tdic[clave] + valor

            tdic[clave] = valor
    f.close()

leeUno( "Translations/lkbase.tra", True )

def leeTraduccion( fichero ) :
    if fichero :
        fichero = "Translations/%s.tra"%fichero
        if os.path.isfile( fichero ) :
            leeUno( fichero, False )
    else :
        leeUno( "Translations/lkbase.tra", False )

def tr( clave, op1=None, op2=None, op3=None ) :
    global tdic
    if clave in tdic :
        resp = tdic[clave]
        if op1 :
            resp = resp.replace( "%1", op1 )
            if op2 :
                resp = resp.replace( "%2", op2 )
                if op3 :
                    resp = resp.replace( "%3", op3 )
    else :
        resp = clave
    return resp

