Редактирование: я записал это прежде, чем считать обновление исходного вопроса. См. мой другой ответ для лучшего ответа на обновленный вопрос. Я оставлю это, как как предупреждение против того, чтобы быть самым быстрым оружием на западе =)
более чем десятилетие назад, когда я изучал способы Компьютера, Старых Мудрецов С Бородами, объясненными, как C и C++ являются инструментами промышленности. Никто не использовал Паскаль, и только безрассудное рискнет их компаниями с ассемблером.
И конечно, никто даже не упомянул бы ужасную медленную ужасную вещь, названную Java. Это не будет инструмент для серьезного бизнеса.
Так. Гм. Замените языки в вышеупомянутой истории, и возможно можно предсказать будущее. Возможно, Вы не можете. Точка, Java не будет Последним Языком программирования никогда, и также Вы, скорее всего, переключите работодателей также. Будущее бросается на Вас 24 часа в день. Быть подготовленным.
Изучение новых языков хорошо для Вас. Кроме того, в некоторых случаях это может давать Вам престиж в течение долгого времени. Мой первый университетский курс был в Схеме. Таким образом, когда люди говорят со мной о новом язык du подмастерье , мой ответ похож на что-то, "В первом классе функционирует? Это так в прошлом веке".
И конечно, Вы добираетесь [еще 119] материал, сделанный с высокоуровневым языком.
Семейство функций Gettext
является хорошей отправной точкой:
Функции gettext реализуют NLS (Поддержка родного языка) API, который можно использовать для интернационализации вашего Приложения PHP.
Zend_Translate
чрезвычайно гибок и имеет поточно-ориентированную реализацию gettext
. В руководстве указано, что в нем решаются следующие проблемы, связанные с реализациями нативной интернационализации:
- Несогласованный API: не существует единого API для разных источников. форматы. Использование gettext для пример очень сложен.
- PHP поддерживает только gettext и собственный массив: сам PHP предлагает поддержка только массива или gettext. Все остальные исходные форматы должны быть кодируется вручную, потому что нет встроенная поддержка.
- Язык по умолчанию не определяется: язык по умолчанию пользователь не может быть обнаружен без более глубокое знание предыстории для различных веб-браузеров.
- Gettext не является потокобезопасным: библиотека PHP gettext не является потокобезопасной, и ее не следует использовать в многопоточной среде. Это происходит из-за проблем с самим gettext, а не с PHP, но это уже существующая проблема.
Стоит отметить, что Zend Framework
не является полнофункциональным фреймворком - другими словами, вам не нужно будет использовать все это только для того, чтобы использовать его API интернационализации.
Что мне действительно нравится в нем, так это его поддержка нескольких адаптеров для разных источников данных , которые вы можете легко смешивать, сопоставлять и изменять, лишь внося очень незначительные изменения в ваше приложение. Надеюсь, это поможет.
Я рассмотрел оба решения. (база данных и плоский файл.) Но я дам вам другой угол обзора. При разработке своего приложения или программного обеспечения есть еще один важный момент, о котором вы должны подумать с самого начала. Вы сохраните свои языковые элементы в базе данных и в плоском файле. языковая поддержка базы данных (или таблицы) и текстового файла важна. Если вы попытаетесь сохранить турецкие символы в базе данных latin 1, вы столкнетесь с некоторыми проблемами персонажа. Турецкий - пример. База данных должна поддерживать символы элемента вашего языка.
) Но я дам вам другой угол обзора. При разработке своего приложения или программного обеспечения есть еще один важный момент, о котором вы должны подумать с самого начала. Вы сохраните свои языковые элементы в базе данных и в плоском файле. языковая поддержка базы данных (или таблицы) и текстового файла важна. Если вы попытаетесь сохранить турецкие символы в базе данных latin 1, вы столкнетесь с некоторыми проблемами персонажа. Турецкий - пример. База данных должна поддерживать символы элемента вашего языка. ) Но я дам вам другой угол обзора. При разработке своего приложения или программного обеспечения есть еще один важный момент, о котором вы должны подумать с самого начала. Вы сохраните свои языковые элементы в базе данных и в плоском файле. языковая поддержка базы данных (или таблицы) и текстового файла важна. Если вы попытаетесь сохранить турецкие символы в базе данных latin 1, вы столкнетесь с некоторыми проблемами персонажа. Турецкий - пример. База данных должна поддерживать символы элемента вашего языка.