Я работаю на международном веб-сайте (PHP, пользовательская легкая структура MVC), которая должна показывать контент на родном языке пользователя. Контент будет в основном представлять собой текст, но может быть и изображениями.Варианты локализации веб-приложения
Наше текущее решение - это один гигантский файл с отдельными функциями для каждой части текста, который нужно перевести, и случай переключения в каждой функции. Это стало ужасным для поддержания и не особенно масштабируемым.
Наши приоритеты - производительность, ремонтопригодность (если нам нужно исправить ошибку или внести изменения, должно произойти как можно меньше мест) и расширяемость (позволяя переводчикам добавлять больше языков). Мы ожидаем, что работаем не менее 10-12 языков. Нам также необходимо рассмотреть содержимое HTML внутри текста, например <p></p>
и ссылки. В настоящее время мы имеем встроенный HTML в возвращенном тексте (который, очевидно, не является особенно пригодным для обслуживания). Некоторые из вариантов мы рассматривали:
таблицу базы данных для переводов, с колонками для каждого языка
+ Scalable к большому количеству контента
- не просто для переводчиков, чтобы добавить/изменение содержания
- Много DB транзакции, низкая производительность
Один плоских текстовый файл (CSV)
+ Преобразование в электронных таблицы, легко для переводчиков для работы с
- Загрузка гигантского п Ile в память может повлиять на производительность (не знаю, как много воздействие это будет на самом деле сделать)
- Может быть трудно поддерживать
Один плоский текстовый файл на языке
+ Easy для переводчиков для работы с
? Лучше для исполнения (возможно)
Система непрерывной интеграции, которая создает несколько версий каждого (MVC) зрения со встроенными локализованный контент
+ Лучшее для выполнения
+ Может сочетаться с CSV или другой формат, который легко для переводчиков использовать
- комплекс для создания
- Может быть трудно поддерживать
Мы искали гидов о том, как доставить переведенного контента в веб-приложениях, но не попадается ничего полезного. Какой из этих вариантов является лучшим, и какие другие реализации мы не рассматривали?
http://php.net/manual/en/book.gettext.php, плоский файл на LANGAUGE , – Wyck