soy muy animal, pero te muestro como se puede hacer listado (de paso, nunca lo estás invocando)para que se vea más o menos como quieres, te toca modificarlo para dejarlo a tu gusto:
print(" Listado de traducciones guardadas. ".center(50,'='))
print(" {:^2} {:^30} ".format('Ingles', 'Español'))
print("-"*50)
with open('traductor.txt', 'r') as tra:
for linea in tra:
partes= linea.split( )
print(" {:20} {:20} ".format(partes[0],partes[1]))
En lo personal modificaría búsqueda para que sin importar si escriben con mayúsculas o minúsculas encuentren la palabra.En tu caso si no coinciden exactamente no lo hallarán, o sea si escriben home, chau no la encuentra ni a palos.
También prefiero trabajar con clases y diccionarios, pero podes tomarlo como que es subjetivo.
Sobre guardado no hay mucho para hacer, cumple su objetivo.
def main():
menu()
main()
no hablaré sobre todo el código, pero ésta parte me parece muy fea y redundante.
Por último, llevará un muy buen tiempo hacer todas las traducciones necesarias para que sea decente como traductor, ni hablar del tamaño y tiempo de lectura del archivo. Existen mejores opciones como usar las bibliotecas ya hechas para tal fin.
Sin ánimo de desanimarte, o sea sigue haciendo scripts para que aprendamos.
Saludos.