В зависимости от структуры вашего приложения вам может потребоваться интернационализация в двух местах:
1) Само программное обеспечение. Меню, диалоги, сообщения, метки, отчеты и т. Д.
2) Контент. При работе на нескольких языках вашему приложению, вероятно, потребуется обрабатывать контент на нескольких языках.
Мне повезло в разделении инструментов управления и логики публикации на разных уровнях (пока).
Во-первых, рассмотрите возможность размещения логики управления и генерации языкового перевода (комплекты ресурсов и т. Д.) В бизнес-логике. Итак, для всех ваших переводов вам нужен способ быстрой синхронизации всех записей данных по мере их добавить в систему на всех языках от основного языка (английский), а затем заполнить и управлять ими. Поэтому, если вы используете, например, комплекты ресурсов, создайте файлы rb из базы данных для всех языков.
Во-вторых, публиковать логику языковых переводов на уровне представления. Это больше связано с представлением и форматированием. Вы неизбежно столкнетесь с проблемами локализации дат, времени, валют и т. Д., С которыми вы вполне можете справиться здесь. Вы можете или не можете создавать свою собственную библиотеку для публикации этих вещей как ограничивающих, или гибкость вашего языка программирования может или не может позволить.
Если вы можете дать более подробную информацию, я уверен, что у всех здесь есть другие идеи.
Удачи!