Я в данное время как раз разрабатываю сайт с несколькими языковыми версиями и использую следующий принцип:
данные на других языках хранятся в доп. переменных и поля называются определенным образом (например, pagetitle_en)
В файле htaccess я немного изменил правило
было RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
стало RewriteRule ^(ru|en|de)/(.*)$ index.php?q=$2&lang=$1 [L,QSA]
Параметр lang - говорит, какой используется язык
И адрес страницы будет иметь, к примеру, следующий вид
http://www.site.ru/ru/contacts/contact1.htm
http://www.site.ru/en/contacts/contact1.htm
Также написал несколько сниппетов, которые выводят поля в зависимости от языка
Например, если язык русский - то будет использоваться поле pagetitle, а если английский - то будет браться значение доп. переменной pagetitle_en
например, если понадобится добавить французский язык, то правило будет таким
стало RewriteRule ^(ru|en|de|fr)/(.*)$ index.php?q=$2&lang=$1 [L,QSA]
Вручную надо будет создать доп. переменные с постфиксом _fr
И может быть, кое-что поправить в сниппетах.
Всего работы максимум минут на 15.
Зато не будет никаких проблем с тем, что русскую версию страницы создали, а английскую - забыли и прочее.
Некоторым неудобством данного метода можно считать, что в админке будет одновременно открываться очень много полей и расходоваться трафик, но, думаю, что те фирмы, которые создают многоязыковые сайты для своего бизнеса, вполне могут себе это позволить.