PHP Локализация и динамические данные - PullRequest
0 голосов
/ 10 июня 2011

Так что мне нужно сделать сайт доступным на разных языках.Использование PHP 5.x и MySQL 5.x.Я полагаю, что я буду использовать gettext, который подходит для статического текста по всему сайту, но как насчет динамических данных, которые хранятся в БД?Я имею в виду такие вещи, как истории, события, списки компаний и т. Д. Как заставить их отображать на другом языке?Моя первоначальная мысль была о том, чтобы они могли вводить несколько версий истории, события или списка, по одной для каждого языка, который они хотят использовать на сайте.Но может быть тысячи записей, сколько языков они хотят показать.Есть ли лучшее решение / идея, на которую кто-то может указать мне?

Еще одна проблема, о которой я думал, это то, что в настоящее время сайт позволяет искать события / истории / списки, как это будет работать на разных языках?Я предполагаю, что если кто-то выбрал сайт для показа на испанском языке, он будет использовать испанские слова для поиска по сайту, но если информация в БД на английском, я не знаю, будет ли это работать.Есть предложения по этому поводу?

Ответы [ 2 ]

0 голосов
/ 10 июня 2011

Лучшее решение, которое я видел, описал это.

Поскольку сайты CMS i18n, как вы описываете, находятся в состоянии постоянного изменения, с добавлением новых статей, некоторые из которых имели переводы, на некоторых языках.

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

Затем выберите любые идеи, которые подходят для вашего случая:

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

b) Если вы показываете статью по умолчанию на английском языке, также разместите на странице предложениечтобы отправить контент в гугл-переводчик, а также выполнить а) выше

в) назначить награду за перевод и при необходимости выполнить а) и / или б) выше.

0 голосов
/ 10 июня 2011

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

ЕслиВам это не нравится, вы можете добавить элемент google translate на своих страницах, чтобы обеспечить автоматический (не правильный) перевод.

Для вопроса поиска я бы поискал толькоключевые слова в полях базы данных на том же языке, что и пользователь.Если Джо посещает вашу страницу на английском языке, ищите только поисковые термины в полях title_en, content_en, description_en вашей базы данных (или тех, которые имеют language = 'en', если в базе данных есть одна строка на статью и перевод, вместопо одной строке на статью (со всеми переводами внутри)).Очевидно, это работает, только если вы поместите все переводы в базу данных.

...