Я сделал сайт на английском языке, какой самый оптимальный способ добавить еще один язык? - PullRequest
4 голосов
/ 25 мая 2010

Итак, я создал большой сайт (много текста в разных файлах и много программирования). Мне нужно добавить еще один язык, как мне это сделать? Каким самым быстрым способом я могу добавить второй язык и позволить своим посетителям выбирать между ними? Есть идеи?
Спасибо.

Ответы [ 5 ]

3 голосов
/ 25 мая 2010

Перевод - это то, о чем вы должны думать с самого начала, особенно с динамическими сайтами.

  1. Убедитесь, что все ваши сообщения разбиты на отдельный файл или файлы, с которыми может работать переводчик.Для этого есть художественная форма - вам нужны большие текстовые блоки со спецификаторами форматирования, поскольку разные языки не следуют одному и тому же порядку существительных / глаголов / прилагательных.Например, создание текстовых строк, таких как «Пожалуйста, выберите», за которыми следуют «элементы», где середина является числом, является плохой идеей, поэтому сделайте строку «Пожалуйста, выберите% d элементов» - это позволяет переводчику поместить число в идеалlocation.
  2. Вы хотите сильный инструмент перевода.Заполнение строковых констант допустимо, но неэффективно.Попробуйте gettext, который является зрелым инструментом для выполнения переводов.
0 голосов
/ 06 февраля 2011

Вы можете использовать gettext вместе с poedit, отметьте это http://mel.melaxis.com/devblog/2005/08/06/localizing-php-web-sites-using-gettext/

0 голосов
/ 25 мая 2010

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

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

0 голосов
/ 25 мая 2010

Независимо от вашего подхода, вам нужно будет хранить все ваши выведенные строки в отдельном ресурсе.Плоские файлы с массивами были бы самыми быстрыми, хотя база данных SQLite была бы более гибкой.

Если бы вы использовали массивы, вы бы просто сделали несколько языковых файлов, таких как english.php:

$lang = array(
  'I am a language.' => 'I am a language.'
);

... и french.php:

$lang = array(
  'I am a language.' => 'Je suis une langue.'
);

Затем вы можете создать статический класс Language, который будет импортировать соответствующий языковой файл и возвращать переведенные строки на основе массива в этом файле.,Например:

Language::init('french');
...
echo Language::get('I am a language.'); // outputs Je suis une langue.
0 голосов
/ 25 мая 2010

Мое предложение: запишите содержимое в отдельных XML-файлах, по одному для каждого языка, и, в зависимости от языка пользователя, вы загрузите свой веб-сайт, получая содержимое из Xml, содержащего выбранный язык.

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