Esta respuesta quizas te llega un poco tarde pero a lo mejor si aun la necesitas aqui te va.
Lo primero es entender exactamente como funciona el multilenguaje dentro de la estructura de modx (independiente del plugin babel). Esto es muy sencillo y hay dos formas de visualizarlo.
1) A traves del manager dentro de System / Lexicon Management. Aqui puedes ver las frases para cada idioma que vienen ya integrada por defecto dentro de modx. Aqui puedes agregar, remover, modificar como necesites.
2) Mi forma preferida es atraves del los archivos php directamente. Estos se encuentran dentro de: core/lexicon/. Esto seria para el website en general. Cada plugin, snippet o extra tiene su propio lexicon que se encuentra dentro de: core/components/
nombredelplugin/lexicon/
Dentro de estos lexicon folders vas a encontrar un folder para cada culturekey (es / en / cs / etc) Y dentro de cada uno distintos archivos php (mas que nada para diferenciar distintas secciones y no tener todas las traducciones mezcladas).
Si abres cualquier de estos php, vas a encontrarte con las traducciones. Por ejemplo:
$_lang['mail_err_address_ns'] = 'You must provide an email address to send to.';
Cada idioma entonces tendra la variable:
$_lang['mail_err_address_ns']
Con sus respectivas traducciones.
Luego, en donde necesites accesar una traduccion solo necesitas un tag especial. Esto esta en la documentacion:
http://rtfm.modx.com/display/revolution20/Internationalization
En esencia necesitas este codigo:
[[%key? &topic=`topicname` &namespace=`namespace_name` &language=`en`]]
El key es el nombre de la variable. Por ejemplo:
mail_err_address_ns
El topic, namespace y language son opcionales y solo los necesitas si ningun otro tag similar lo ha requerido anteriormente en la pagina. Por ejemplo, dentro de la estructura base de modx ya estan pre-cargados estas opciones. En ese sentido solo necesitarias:
Entendiendo ya la estructura entonces te doy mis recomendaciones para tus websites.
1) En lo personal yo trato de respetar la estructura original para no tener problemas en actualizaciones futuras. En este sentido trato de diferenciar lo que es una traduccion de un plugin o snippet de una traduccion general del contenido del website.
2) Para el caso de una traduccion general del website, yo creo un nuevo archivo dentro de: core/lexicons.
Por ejemplo:
core/lexicons/es/others.inc
Y dentro de este archvio creo mis propias traducciones:
$_lang['others_previous'] = 'Anterior';
$_lang['others_next'] = 'Siguiente';
$_lang['others_more'] = 'Más';
$_lang['others_readmore'] = 'Leer Más';
$_lang['others_follow'] = 'Siguenos';
Ojo, que necesitaras crear este archivo dentro de cada idioma que quieres soportar en tu pagina web con sus respectivas traducciones.
Cuando ya tengas el archivo cargado en el servidor (y despues de limpiar el cache) puedes accesar tus traducciones con este tag:
[[%others_readmore? &topic=`others` &namespace=`core` &language=`[[++cultureKey]]`]]
Ojo, en el ejemplo de arriba te puestro el llamado completo, pero como te dije, los tags de topic, namespace y language son opcionales y solo necesarios si es el primer llamado para este archivo, ya que para futuros llamados toda la data ha sido previamente cargada.
Puedes optar por manejar las ediciones de las frases por el manager o por el archivo php. En lo personal me siento mas comodo directamente a traves del archivo php, pero esto es finalmente una preferencia del usuario.
Espero que te ayude.
Saludos,
Jose R. Lopez