2013-09-25 2 views
1

Я работаю на международном веб-сайте (PHP, пользовательская легкая структура MVC), которая должна показывать контент на родном языке пользователя. Контент будет в основном представлять собой текст, но может быть и изображениями.Варианты локализации веб-приложения

Наше текущее решение - это один гигантский файл с отдельными функциями для каждой части текста, который нужно перевести, и случай переключения в каждой функции. Это стало ужасным для поддержания и не особенно масштабируемым.

Наши приоритеты - производительность, ремонтопригодность (если нам нужно исправить ошибку или внести изменения, должно произойти как можно меньше мест) и расширяемость (позволяя переводчикам добавлять больше языков). Мы ожидаем, что работаем не менее 10-12 языков. Нам также необходимо рассмотреть содержимое HTML внутри текста, например <p></p> и ссылки. В настоящее время мы имеем встроенный HTML в возвращенном тексте (который, очевидно, не является особенно пригодным для обслуживания). Некоторые из вариантов мы рассматривали:

таблицу базы данных для переводов, с колонками для каждого языка
+ Scalable к большому количеству контента
- не просто для переводчиков, чтобы добавить/изменение содержания
- Много DB транзакции, низкая производительность

Один плоских текстовый файл (CSV)
+ Преобразование в электронных таблицы, легко для переводчиков для работы с
- Загрузка гигантского п Ile в память может повлиять на производительность (не знаю, как много воздействие это будет на самом деле сделать)
- Может быть трудно поддерживать

Один плоский текстовый файл на языке
+ Easy для переводчиков для работы с
? Лучше для исполнения (возможно)

Система непрерывной интеграции, которая создает несколько версий каждого (MVC) зрения со встроенными локализованный контент
+ Лучшее для выполнения
+ Может сочетаться с CSV или другой формат, который легко для переводчиков использовать
- комплекс для создания
- Может быть трудно поддерживать

Мы искали гидов о том, как доставить переведенного контента в веб-приложениях, но не попадается ничего полезного. Какой из этих вариантов является лучшим, и какие другие реализации мы не рассматривали?

+2

http://php.net/manual/en/book.gettext.php, плоский файл на LANGAUGE , – Wyck

ответ

0

Локализация может быть достигнуто с помощью Gettext расширения РНР и .po типа файла. Тип файла Po связан с FNU gettext. Использование PoEdit мы можем создать .po и .mo файл .po файл содержит текстовые сообщения с преобразованием как ниже

eng.po

MsgId ""

пакетов ""

ч.ро

MSGID ""

пакетов ""

Для подробно читайте здесь http://php.net/manual/en/book.gettext.php

Смежные вопросы