Дизайн соображений для многоязычного веб-приложения
-
02-10-2019 - |
Вопрос
Сегодня я спросил интервьюеру, как я бы реализую арабский язык в качестве второго языка в веб-приложении PHP. Я говорил о выборе кодирования Unicode для базы данных и интерфейса и проектирования модулей интерфейса для пользователя RTL. И он не казался слишком доволен ответом. Я не знаю ничего о многоязычных системах, как бы вы ответили на этот вопрос?
Решение
- Убедитесь, что вы используете кодировку UTF-8 на сайте. Даже это не надежно, как упомянуто Prakscant.
- Строки - вам нужно будет дисциплинировать в локализации каждой строки и фразы, которые могут появиться пользователю. Это означает сообщению об ошибках, сообщениях состояния, ящики полосы оповещения, диалоговые окна и т. Д. Вы можете создать строку карту или списка каталогов, который позволяет находить строки ключом (что может быть на английском языке).
- Локализованные изображения - если вы используете изображения для кнопок (которые содержат текст), которые тоже должны быть локализованы. Вы можете создать карту изображения или файл каталога, который позволяет найти изображения для соответствующей культуры каким-либо ключом.
- Макет - поскольку арабский язык находится влево, вам, вероятно, понадобится отдельных файлов CSS, чтобы правильно обрабатывать внешний вид сайта, чтобы текст прочитал и отображался правильно. Например, вы можете захотеть боковые панели на правой стороне экрана, а не влево.
- Форматы даты - вам нужно будет отформатировать даты на основе кода культуры и обеспечить, чтобы фильтры на основе дат были правильно интерпретированы.
- Собрание базы данных - вам нужно будет обеспечить сохранение данных базы данных в формате UTF-8 или Unicode. Вам также необходимо быть осторожным в любых фильтрах внутри запросов, которые искали на строки, если эти строки не являются системными значениями, которые являются невоспринимательными и не отнечательными по арабскому пользователю.
Другие советы
Очень важно сделать надежный языковый менеджер для гибкой загрузки языковых строк и настроек. В PHP вы должны быть осторожны даже с форматом файла UTF-8, поскольку текущие версии PHP не имеют полной поддержки Unicode. Здесь вы можете узнать больше о том, что происходит с поддержкой Unicode:
http://schlueter.de/blog/archives/128-future-of-php-6.html.
У вас также есть еще много проблем с: локализованным форматированием, сортировкой - сортировкой, многовалютной и многоразонной логикой.
Используйте UTF-8 для всех:
Формат файла PHP -> UTF-8.
База данных MySQL -> Unicode UTF-8.
Пожалуйста, посмотрите на мой ответ на этот вопрос: Многочисленный язык (английский, голландский, финский, французский, венгерский, бангла, итальянский,) в ASP.NET с SQL Server!.
Не уверен, почему они не будут довольны вашим ответом. UTF-8 для всех текстовых строк / базы данных и т. Д. Отдельные CSS (для установки свойства текста RTL) Другое, что нужно учитывать ... Изображения также RTL. Поэтому, если вы в настоящее время используете изображения для NAVBAR и т. Д., Вы должны понимать, что они будут загружать RTL.
Кроме того, арабский язык - это просто другой язык, похожий на что-то еще, единственное отличие состоит в том, что она двунаправлена.