Лучшие практики многоязычной структуры веб-приложения на PHP - PullRequest
4 голосов
/ 03 января 2012

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

Моя идея - сохранить все языки в одном домене с таким суффиксом, как "http://myservice.com/de",, где скрипт выполняет проверку местоположения при входе на сайт и перенаправляет пользователя.

Редакционный контент будет распространяться между всеми языками в виде отдельных сообщений в базе данных с определенным столбцом данных для каждого языка. Разметка и сценарии будут документированы на английском языке, а страницы и разделы, видимые для пользователя, будут переведены на соответствующий язык из общего файла библиотеки слов.

Файл .htaccess обеспечивает обработку всех переписываний статей для отображения их на соответствующем языке, то есть от "http://myservice.com/de/artikel/12345/" до" http://myservice.com/article?id=12345&lang=de".

Что вы считаете чистой и эффективной многоязычной установкой?

Ответы [ 3 ]

4 голосов
/ 08 января 2012

У всех разные мнения о том, как лучше всего создать международный сайт.Однако я стараюсь не изобретать велосипед, создавая свою собственную систему.Вместо этого я использую встроенные средства интернационализации и локализации в таких средах, как CakePHP.

Из книги CakePHP;

Один из лучших способов для ваших приложений охватить большую аудиториюэто обслуживать несколько языков.Зачастую это может оказаться непростой задачей, но функции интернационализации и локализации в CakePHP делают это намного проще.

Во-первых, важно понимать некоторую терминологию.Интернационализация относится к способности приложения быть локализованным.Термин «локализация» относится к адаптации приложения к конкретным языковым (или культурным) требованиям (т. Е. «Языковой стандарт»).Интернационализация и локализация часто сокращаются как i18n и l10n соответственно;18 и 10. Количество символов между первым и последним символами.

http://book.cakephp.org/1.3/view/1228/Internationalization-Localization

Использование встроенных инструментов, для меня, предлагает эффективный способ перевода приложенийбез URL переписывает.Это также означает, что пользователь может настроить свои предпочтения локализации и автоматически применять их при каждом входе в систему.

Такой метод также будет считаться более удобным для поисковых систем, поскольку вы не получите многоязычные дубликатытот же контент.

Надеюсь, это поможет.

1 голос
/ 10 января 2012

Лучший совет, который я могу придумать: Не делай этого сам

Существующая CMS с открытым исходным кодом (Система управления контентом) может быть хорошим решением, а не создавать ее самостоятельно. Названия двух ведущих систем CMS: Drupal, Joomla. (есть еще МНОГО вариантов)

Эти системы предлагают множество функций, которые работают либо из коробки с некоторой конфигурацией, либо с помощью плагина расширения (тысячи плагинов).

Интернационализация - только один из них. вероятно, с более богатым и надежным набором функций, чем вы можете сделать сами.

также, эти системы предлагают обширный API для расширения их с помощью вашей собственной бизнес-логики.

0 голосов
/ 08 января 2012

Если вы используете ASP.NET (MVC 2 или 3), я предлагаю прочитать эту статью. Я думаю, что это одна из лучших практик в .NET

...