Производительность является основной причиной. Gettext не использует базу данных, потому что база данных всегда будет значительно медленнее, чем файл. Время загрузки словаря очень важно, и поэтому почти все используют файлы для этого.
Кроме того, скомпилированные файлы gettext (.mo
) оптимизированы для загрузки в память и по этой причине они более подходят, чем обычные текстовые файлы (например, некомпилированные .po
файлы).
Вы всегда можете использовать платформу перевода, возможно, которая использует базу данных, для выполнения перевода и экспорта результатов в текстовые файлы. Примеры: Pootle , Narro , Launchpad Rosetta , Transifex (только для хостинга) .
Не путайте языковые файлы вашего приложения с базой данных локализации. Ваше приложение должно использовать файловые словари, которые быстро загружаются, и вашей системе локализации, вероятно, придется использовать базу данных и логически иметь возможность экспортировать данные в файлы.
Кстати, использование gettext
, вероятно, является лучшим технологическим решением, которое вы можете принять в отношении локализации. Я никогда не видел ни коммерческого, ни собственного решения, которое могло бы конкурировать с ним по функциям, инструментам и даже поддержке.