2010-07-12 4 views
1

У меня вопрос, как бы я сделал следующее?Интернализация на html странице

  • Я хочу отобразить выпадающий список (html) со списком языков (английский, французский и т. Д.), Коды ISO 639-1. Я хочу отобразить язык на основе родного языка (например, в поле со списком «французский» должен сказать «francais» для людей, говорящих на французском языке, чтобы понять).

Как я буду это делать? я, е. Это, как я сделал это в MySQL

CREATE TABLE IF NOT EXISTS LANGUAGE 
(
    LANGUAGE_CODE    VARCHAR(3) NOT NULL --ISO 3 digit digit code 
    ,LANGUAGE_NAME_ENGLISH  TEXT NOT NULL 
    ,LANGUAGE_NAME_NATIVE  TEXT NOT NULL 
) DEFAULT CHARACTER SET utf8; 

Единственная проблема, я не могу заполнить «LANGUAGE_NAME_NATIVE» с 1) Я не могу получить все родные языки, и 2) У меня нет языков в формате UTF8.

Есть ли лучший способ сделать это?

В принципе, я акцентирую это: должен ли я иметь языковой стол для всего списка языков всего соответствующего языка; должен ли я иметь конфигурационные файлы i18n (файл свойств) для всех языков на своем родном языке или использовать переводчик языка?

PS Я использую MVC как Spring MVC и Struts.

+0

У меня трудное время в понимании * актуального * вопроса/проблемы. Разве вы не просто спрашиваете, как получить переводы для названий языков, которые у вас уже есть на английском языке? Тогда ответ будет: искать переводчика или заглядывать в Википедию или Google Translate, но это ведь слишком просто и не связано с программированием, так что я думал, что неправильно истолковал фактический вопрос/проблему. – BalusC

+0

@BalusC, В основном у меня есть список языков из списка ISO 639-1. Проблема заключается не в том, чтобы отображать все языки на английском, а на каждом языке в соответствующем языковом стиле. Должен ли я делать это на уровне базы данных или есть инструмент перевода, который это делает? Извините, если мой вопрос выглядит гречески-иш! LOL –

+0

Вы шутите о проблеме 2)? Для первого вы можете получить данные из Unicode CLDR. – sorin

ответ

1

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

Оставленный позади вашего вопроса, как получить перевод: ни один инструмент не приходит на ум. Как вы на самом деле делаете «нормальные» переводы? Используя переводчика-человека? Пусть он/она выполняет эту работу, переводя языковое имя и вставляя его в базу данных самостоятельно. Альтернативно, разбор this или this.

+0

Моя первоначальная идея - использовать переводчик Google на лету .... но что, если сервер Google врезаться? Я ищу эффективные способы сделать это. –

+0

Это очень плохая идея. Это не только дорого, но и бессмысленно. Языки не меняются ежедневно. То есть это статическая информация. Разве этот вопрос больше не является свидетельством лени? :) Вы уже почти закончили, обычным сбором и вставкой данных в БД в то время, когда вы провели в ожидании ответов по этому вопросу ... – BalusC

+0

@BalusC, теперь как я буду хранить эти родные languges в базе данных, видя, что не могу скопировать эти языки на SQL-запрос? –

1

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

редактировать - вот ссылка я нашел для распорок ... http://www.allapplabs.com/struts/struts_internationalization.htm

+0

Это круто, но я должен сделать его независимым от MVC (если вы знаете, что я имею в виду). –

+0

Я не уверен, что вы подразумеваете под «MVC Independent» - ваша проблема заключается в том, что пользователи собираются выбрать свой язык, а затем вы собираетесь отображать свой контент на любом языке, который они выбирают, не так ли? Если это ваша проблема, то использование решения i18n Spring/Struts/Что бы вы ни использовали, похоже, это путь. – hvgotcodes

+0

Я согласен, мое дело в том, что у меня есть список языков (от ISO 639-1), который полностью на английском, поэтому тайваньский человек не поймет, что «тайваньский» - это его язык. Я хочу отображать все языки на соответствующем языке. Как я могу сделать это «перевод»? сохранить его в db или использовать инструмент перевода или сохранить список в конфигурационном файле i18n? –

Смежные вопросы