2013-03-01 5 views
1

Я в настоящее время программирую сайт, который будет на нескольких языках, и мне было интересно, есть ли простой способ запрограммировать сайт только один раз для всех языков.Выбор языка для jQuery?

Например, у меня есть переменная, называемая 'lang'. В принципе, если пользователь выбирает испанский, я хотел бы, чтобы страница загружала изображения (или любой другой ресурс) для кнопок с испанским, а не английским. Так, например, изменив переменную «lang», изображение с именем «home_button_eng.jpg» вместо этого загрузит «home_button_spa.jpg».

Я думаю, что для этого потребуется «написать» или «изменить» внешний документ, содержащий переменную «lang», которая затем загружается страницей. Другими словами, пользователь нажимает «испанский», который делает lang = 'spa', а затем загружается новая страница, которая подключена к этому файлу language_choice.js. Соответствующий контент загружается.

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

ответ

1

Конечно, вы не хотите дублировать какой-либо контент или код. Я хотел бы организовать все активы в подпапках на основе их кода языка:

content\ 
    en\ 
     images\ 
    sp\ 
     images\ 

Это избавляет от необходимости дублировать именованные файлы в одной папке для каждого языка. При изменении языка вы можете сохранить переменную сеанса на выбранном вами динамическом языке (Python, PHP, Ruby ...) и использовать его для заполнения всего содержимого правильным кодом языка.

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

0

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

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

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