def traduccio(paraula, d, llengua) :
    """Donat un diccionari com el descrit i donat un identificador de
    llengua retorna la paraula expressada en la llengua.  Si la
    paraula no és al diccionari retorna ''.

    >>> traduccio('gat', {'gat': ['gato', 'chat', 'cat'], 'casa':['casa', 'maison', 'house']}, 2)
    'chat'
    >>> traduccio('gat', {'gat': ['gato', 'chat', 'cat'], 'casa':['casa', 'maison', 'house']}, 0)
    'gat'
    >>> traduccio('peu', {'gat': ['gato', 'chat', 'cat'], 'casa':['casa', 'maison', 'house']}, 0)
    ''
    >>> traduccio('peu', {'gat': ['gato', 'chat', 'cat'], 'casa':['casa', 'maison', 'house']}, 1)
    ''

    """
    if paraula in d: 
        if llengua == 0 :
            return paraula
        else :
            return d[paraula][llengua-1]
    else :
        return ''


def llista_imatges(dcat, dtrad, categoria, llengua) :
    """Donat un diccionari de categories, un diccionari de llengues, una
    categoria i un identificador de llengua, retorna una llista
    ordenada de parelles ''(nom,nom_de_fitxer)'' amb el ''nom''
    expressat en la llengua indicada.
 
    >>> dc = {'eina':[('escaire','esca_001.jpg'), ('martell', 'figures/martell.jpg')],  'animal':[('gat', 'miau.jpg'), ('serp', '../../figures/snake.jpg'), ('conill', 'conill.jpg')]}
    >>> dt = {'gat':['gato', 'chat', 'cat'], 'casa':['casa', 'maison', 'house'], 'serp':['serpiente', 'serpent', 'snake']}
    >>> llista_imatges(dc, dt, 'flor', 2)
    []
    >>> llista_imatges(dc, dt, 'animal', 2)
    [('chat', 'miau.jpg'), ('serpent', '../../figures/snake.jpg')]

    """
    d = []
    if categoria in dcat :
        for parella in dcat[categoria] :
            nom, imatge = parella
            paraula = traduccio(nom, dtrad, llengua)
            if paraula != '' :
                d.append((paraula, imatge))
    return d
        
def creadictrad(nomfitxer) :
    """Retorna un diccionari de traduccions a partir del fitxer de text

    >>> f = open('trad_1.txt', 'w')
    >>> f.writelines(( 'gat : gato : chat : cat\\n', 'poma: manzana : pomme : apple\\n'))
    >>> f.close()
    >>> d = creadictrad('trad_1.txt')
    >>> d == {'gat': ['gato', 'chat', 'cat'], 'poma': ['manzana', 'pomme', 'apple']}
    True

    """
    d = {}
    with open(nomfitxer, 'r') as f:
        for linia in f :
            linia = linia.replace(' ', '')
            linia = linia.strip().split(':')
            d[linia[0]] = linia[1:]
    return d

def creadiccat(nomfitxer) :
    """Retorna un diccionari de traduccions a partir del fitxer de text

    >>> f = open('trad_2.txt', 'w')
    >>> f.writelines(('gat : animal : miau.jpg \\n',' poma :  fruita : apple.jpg \\n', 'serp :   animal : figures/snake.jpg\\n'))
    >>> f.close()
    >>> d = creadiccat('trad_2.txt') 
    >>> d == {'animal': [('gat', 'miau.jpg'), ('serp', 'figures/snake.jpg')], 'fruita': [('poma', 'apple.jpg')] }
    True

    """
    d = {}
    with open(nomfitxer, 'r') as f:
        for linia in f :
            linia = linia.replace(' ', '')
            linia = linia.strip().split(':')
            if linia[1] in d:
                d[linia[1]].append((linia[0], linia[2]))
            else :
                d[linia[1]] = [(linia[0], linia[2])]
    return d
        
    
