2015-08-05 6 views
-1

У нас есть приложение PHP, предназначенное для работы в конкретной стране с нормальными символами. Это приложение имеет нормальные модули, которые обычно находятся в большинстве приложений, таких как модуль регистрации/входа, текстовый редактор, текстовые сообщения, чтение/запись в базу данных, модуль поиска ...Как интернационализировать веб-приложение PHP?

Я уже делал это в в прошлом, но я не могу вспомнить все шаги, чтобы превратить это приложение в международный, поддерживая все виды персонажей (китайский, японский, русский и т. д.).

Я уже разработал несколько сценариев для того, чтобы:

  • Изменения кодификации файлов UTF-8
  • Изменения кодификации базы данных (сама базу данных, таблицу и текст/VARCHAR поле)
  • Установите базу данных в UTF-8 каждый раз я сделать экземпляр этого (SET NAMES utf8)
  • Изменить все строковые функции в multibyte (например: substr() к mb_substr())
  • Получить в шаблоны и задать кодировку UTF-8 (<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />)

Редактировать

  • Модульного тестирования (благодаря Marcel Djaman)
  • Добавить accept-charset="UTF-8" форм (спасибо Jason Spicer)
  • Использование iconv (спасибо Роберту Паундеру)

Есть ли еще один шаг, который я должен предпринять?

Как я могу проверить приложение с тысячами страниц, на которых он работает?

+0

В качестве небольшого наконечника модульное тестирование - это отправка богу для тестирования таких вещей. – Jamesking56

+0

Спасибо! Я добавлю его в список! Я тоже думал о том, чтобы делать скриншоты с некоторыми технологиями, как Selenium – SpongePablo

+0

модульное тестирование?!? ничего не связано с интернационализацией –

ответ

1

Единственное, что вы действительно пропустили, это utf8_encoding/utf8_decoding над страницами.

https://secure.php.net/manual/en/function.utf8-encode.php

https://secure.php.net/manual/en/function.utf8-decode.php

Также может потребоваться использовать iconv:

https://secure.php.net/manual/en/function.iconv.php

Примечание:

utf8_encode() только конвертировать ISO-8859-1 в UTF -8, поэтому в этом случае вам придется использовать iconv.