2013-06-17 2 views
0

Я пытаюсь сделать мой сайт загруженным различными файлами js на основе языков пользователей. Возможное?Загрузите разные JS на основе местоположения пользователей

Я получил это приложение: яваскрипта test.js < - внутри этого я могу определить язык по умолчанию (ЭСН)

Так что, я хотел бы, чтобы воссоздать test.js и назовите его как тест-it.js test-es.js ecc.

В моем индексе скрипт загружается как обычно:

<script type="text/javascript" src="http://mysite.com/test.js"></script> 

Можно ли настроить соединение, если/другое условие, которое обнаруживает язык браузера и загрузить правильный JS приложение?

Спасибо, Gio

+1

локализации географического IP> Да, это возможно, но можно подделать. –

+0

Да, возможно, но зачем вам это делать, а не вместо хранения данных локализации в отдельном файле? –

+1

[Выбор языка на сервере] (http://www.w3.org/International/questions/qa-apache-lang-neg) является самым старым и лучшим подходом. (Не ходите по местоположению, это ничего не говорит о предпочтительном для пользователя языке.) – Blazemonger

ответ

0

Браузеры обычно отправить Accept-Language HTTP header с указанием предпочтительного языка пользователя.

В php вы можете прочитать этот заголовок и использовать его для возврата соответствующего файла.

test.php

<?php 
$locale = locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']); 
list($language, $country) = explode('_', $locale); 
include 'test-'.$language'.js'; 
?> 

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

Я бы рекомендовал использовать библиотеку для этого, как: http://i18next.com/

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