PHP - Проектирование приложений Mulilingual

Редактирование: я записал это прежде, чем считать обновление исходного вопроса. См. мой другой ответ для лучшего ответа на обновленный вопрос. Я оставлю это, как как предупреждение против того, чтобы быть самым быстрым оружием на западе =)

более чем десятилетие назад, когда я изучал способы Компьютера, Старых Мудрецов С Бородами, объясненными, как C и C++ являются инструментами промышленности. Никто не использовал Паскаль, и только безрассудное рискнет их компаниями с ассемблером.

И конечно, никто даже не упомянул бы ужасную медленную ужасную вещь, названную Java. Это не будет инструмент для серьезного бизнеса.

Так. Гм. Замените языки в вышеупомянутой истории, и возможно можно предсказать будущее. Возможно, Вы не можете. Точка, Java не будет Последним Языком программирования никогда, и также Вы, скорее всего, переключите работодателей также. Будущее бросается на Вас 24 часа в день. Быть подготовленным.

Изучение новых языков хорошо для Вас. Кроме того, в некоторых случаях это может давать Вам престиж в течение долгого времени. Мой первый университетский курс был в Схеме. Таким образом, когда люди говорят со мной о новом язык du подмастерье , мой ответ похож на что-то, "В первом классе функционирует? Это так в прошлом веке".

И конечно, Вы добираетесь [еще 119] материал, сделанный с высокоуровневым языком.

5
задан Mark 16 November 2009 в 16:36
поделиться

2 ответа

Семейство функций Gettext является хорошей отправной точкой:

Функции gettext реализуют NLS (Поддержка родного языка) API, который можно использовать для интернационализации вашего Приложения PHP.

Zend_Translate чрезвычайно гибок и имеет поточно-ориентированную реализацию gettext . В руководстве указано, что в нем решаются следующие проблемы, связанные с реализациями нативной интернационализации:

  • Несогласованный API: не существует единого API для разных источников. форматы. Использование gettext для пример очень сложен.
  • PHP поддерживает только gettext и собственный массив: сам PHP предлагает поддержка только массива или gettext. Все остальные исходные форматы должны быть кодируется вручную, потому что нет встроенная поддержка.
  • Язык по умолчанию не определяется: язык по умолчанию пользователь не может быть обнаружен без более глубокое знание предыстории для различных веб-браузеров.
  • Gettext не является потокобезопасным: библиотека PHP gettext не является потокобезопасной, и ее не следует использовать в многопоточной среде. Это происходит из-за проблем с самим gettext, а не с PHP, но это уже существующая проблема.

Стоит отметить, что Zend Framework не является полнофункциональным фреймворком - другими словами, вам не нужно будет использовать все это только для того, чтобы использовать его API интернационализации.

Что мне действительно нравится в нем, так это его поддержка нескольких адаптеров для разных источников данных , которые вы можете легко смешивать, сопоставлять и изменять, лишь внося очень незначительные изменения в ваше приложение. Надеюсь, это поможет.

8
ответ дан 14 December 2019 в 04:40
поделиться

Я рассмотрел оба решения. (база данных и плоский файл.) Но я дам вам другой угол обзора. При разработке своего приложения или программного обеспечения есть еще один важный момент, о котором вы должны подумать с самого начала. Вы сохраните свои языковые элементы в базе данных и в плоском файле. языковая поддержка базы данных (или таблицы) и текстового файла важна. Если вы попытаетесь сохранить турецкие символы в базе данных latin 1, вы столкнетесь с некоторыми проблемами персонажа. Турецкий - пример. База данных должна поддерживать символы элемента вашего языка.

) Но я дам вам другой угол обзора. При разработке своего приложения или программного обеспечения есть еще один важный момент, о котором вы должны подумать с самого начала. Вы сохраните свои языковые элементы в базе данных и в плоском файле. языковая поддержка базы данных (или таблицы) и текстового файла важна. Если вы попытаетесь сохранить турецкие символы в базе данных latin 1, вы столкнетесь с некоторыми проблемами персонажа. Турецкий - пример. База данных должна поддерживать символы элемента вашего языка.

) Но я дам вам другой угол обзора. При разработке своего приложения или программного обеспечения есть еще один важный момент, о котором вы должны подумать с самого начала. Вы сохраните свои языковые элементы в базе данных и в плоском файле. языковая поддержка базы данных (или таблицы) и текстового файла важна. Если вы попытаетесь сохранить турецкие символы в базе данных latin 1, вы столкнетесь с некоторыми проблемами персонажа. Турецкий - пример. База данных должна поддерживать символы элемента вашего языка.

0
ответ дан 14 December 2019 в 04:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: