Особенности проектирования многоязычного веб-приложения - PullRequest
3 голосов
/ 28 апреля 2010

Сегодня один из интервьюеров спросил меня, как я могу внедрить арабский как второй язык в веб-приложение PHP. Я говорил о выборе кодировки Unicode для базы данных и внешнего интерфейса, а также о разработке модулей, дружественных к RTL. И он не казался слишком счастливым с ответом. Я действительно ничего не знаю о многоязычных системах, как бы вы ответили на этот вопрос?

Ответы [ 5 ]

10 голосов
/ 13 мая 2010
  1. Убедитесь, что вы используете кодировку UTF-8 на сайте. Даже это не надежно, как упоминалось в праксканте.
  2. Строки - вам нужно быть дисциплинированным в локализации каждой строки и фразы, которые могут показаться пользователю. Это означает сообщения об ошибках, сообщения в строке состояния, окна предупреждений, диалоговые окна и т. Д. Вы можете создать карту строк или список каталогов, который позволяет находить строки по ключу (который может быть на английском языке).
  3. Локализованные изображения - если вы используете изображения для кнопок (которые содержат текст), их тоже нужно будет локализовать. Вы можете создать карту изображений или файл каталога, который позволит вам найти изображения для соответствующей культуры по некоторому ключу.
  4. Макет - поскольку арабский язык расположен справа налево, вам, вероятно, потребуются отдельные файлы CSS, чтобы правильно обрабатывать внешний вид сайта, чтобы текст читался и отображался правильно. Например, вам может потребоваться боковая панель с правой стороны экрана вместо левой.
  5. Форматы даты - вам необходимо отформатировать даты на основе кода культуры и убедиться, что фильтры на основе дат были правильно интерпретированы.
  6. Сортировка базы данных - вам нужно убедиться, что база данных хранит данные в формате UTF-8 или Unicode. Вы также должны быть осторожны с любыми фильтрами внутри запросов, которые производили поиск по строкам, если только эти строки не являются системными значениями, которые недоступны для просмотра и неизменны арабским пользователем.
1 голос
/ 11 мая 2010

очень важно создать надежный языковой менеджер для гибкой загрузки языковых строк и настроек. В PHP вы должны быть осторожны даже с форматом файлов UTF-8, потому что текущие версии PHP не имеют полной поддержки юникода. Здесь вы можете узнать больше о том, что происходит с поддержкой юникода:

http://schlueters.de/blog/archives/128-Future-of-PHP-6.html

У вас также много других проблем: локализованное форматирование, сортировка - сопоставление, мультивалютность и логика с несколькими часовыми поясами.

0 голосов
/ 23 июля 2010

Не уверен, почему они не будут рады вашему ответу. UTF-8 для всего текста - строки / базы данных и т. Д. Отдельный CSS (чтобы установить текстовое свойство rtl) Другое дело принимать во внимание ... изображения также RTL. Поэтому, если вы в настоящее время используете изображения для панели навигации и т. Д., Вы должны понимать, что они будут загружать RTL.
Кроме этого, арабский - это просто другой язык, как и все остальное, единственное отличие в том, что он двунаправленный.

0 голосов
/ 13 мая 2010
0 голосов
/ 08 мая 2010

Используйте UTF-8 для всех:

php Формат файла -> UTF-8.

База данных MySQL -> UTF-8 Unicode.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...