Que tal
antoniojim,
bbdd deberías utilizar para las traducciones cuando el contenido es administrable.
gettext por lo general se utiliza para contenidos estaticos creado por el cliente con alguna de las herramientas para tal fin.
Para el resto utiliza el adapter que te quede mas comodo, en mi caso array para cuando son pocos datos y .ini si son mas datos, este último tiene algunos problemas con el UTF-8 y algunos símbolos.
Con respecto a traducir las url's, lo puedes hacer a traves del
router.
Saludos.