powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JQuery и много язычность
25 сообщений из 26, страница 1 из 2
JQuery и много язычность
    #38245812
HunterNomad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток.

В новом проекте на php нужна много язычность.
Нашел у буржуев пример (мне понравился) и решил его до пилить select-ом с JQuery.
К сожалению проблемма в том, что я JQuery только начал (неделю) ковырять.
По логике вещей то, что я навоял, должно работать - НО (это поскудное "НО") не работает.
Вот код:
index.php
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
<?php include_once 'common.php'; ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta>
        <script src="js/jquery.min.js" type="text/javascript"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                $("#sel [value='index.php?lang=<?php echo $_GET["lang"]; ?>']").attr("selected", "selected");
                $("#sel").change(function(){
                    var selected = $("#sel option:selected");		
                    var output = "";
                    if(selected.val() != 0){
                        output = selected.val();
                        document.location.href=output;
                    }
                }); 
            });
        </script>
    </head>
    <body>
        <?php echo $_GET['lang']; ?>
        <hr>
            <div>
                <select id="sel" name="sel">
                    <option value="index.php?lang=eng">Eng</option>
                    <option value="index.php?lang=rus">Rus</option>
                </select>
            </div>
            <hr>
                <?= $lang['HELLO']; ?>
                <p style="color: goldenrod; size: 15pt;">
                    Hello test text
                </p>
      </body>
</html>



... далее common.php ...

... ну и на конец rus.php и eng.php ...
Модератор: Код на ПэХаПэ постят в разделе ПэХаПэ.
[IDV]

А вот теперь проблема - проблема в том, что собственно это и не работает:
- не меняется текст в <?= $lang['HELLO']; ?>
- и не выбирается select языка

Помогите плиз.
За ранее спасибо.

P.S. подскажите может есть способ заменя языка без перезагрузки страницы?
...
Рейтинг: 0 / 0
JQuery и много язычность
    #38245835
HunterNomad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел для jQuery такой вариан:
Код: javascript
1.
$(location).attr('href', 'http://url');


но увы эффект тот-же((
...
Рейтинг: 0 / 0
JQuery и много язычность
    #38245871
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HunterNomadподскажите может есть способ заменя языка без перезагрузки страницы?
Контент на странице меняется двумя способами:
- перезагрузка страницы
- чтение контента с сервера и замена его в ДОМ модели

Сам контент ну никак не поменяется от того, что ты что-то выбрал в селекте.

По-мне так дешевле страницу перегрузить...
...
Рейтинг: 0 / 0
JQuery и много язычность
    #38245874
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HunterNomad... ну и на конец rus.php и eng.php ...
Файл на каждый язык? Это сильно...
...
Рейтинг: 0 / 0
JQuery и много язычность
    #38245878
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaHunterNomad... ну и на конец rus.php и eng.php ...
Файл на каждый язык? Это сильно... Хм. И чего такого сильного в отдельном текстовом файле со строковыми ресурсами?
...
Рейтинг: 0 / 0
JQuery и много язычность
    #38245944
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAИ чего такого сильного в отдельном текстовом файле со строковыми ресурсами?
Если нет БД - тогда останутся только файлы...
В моем случает БД есть всегда, т.о. нет смысла поддерживать в актуальности несколько файлов с разными языками.
...
Рейтинг: 0 / 0
JQuery и много язычность
    #38245952
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В базу хорошо, но кэш нужен, которого в php нет, нужно отдельно мемкашеды, редисы и прочее ставить на vps. А дёргать базу при каждом клиентском запросе на получение ресурсов, как-то не то, поэтому с файлами для сайтов-визиток проще, хотя и каменный век это.
...
Рейтинг: 0 / 0
JQuery и много язычность
    #38245959
HunterNomad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модеру: код на пыхпыхе был частью объяснения проблемы с кодом (возможно это помогло знатокам подсказать мне способ рещения проблемы). с таким успехом можно было накуй пост весь убрать. модер - бог (можно просто было предупредить :))

krvsa: бд есть, но ей и так в проекте достанится, потому я и решил, что с файлами будет проще. За DOM спасибо, не подумал раньше.

для всех: вопрос открыть для конструктивных предложений ))))
...
Рейтинг: 0 / 0
JQuery и много язычность
    #38245962
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaskyANAИ чего такого сильного в отдельном текстовом файле со строковыми ресурсами?
Если нет БД - тогда останутся только файлы...
В моем случает БД есть всегда, т.о. нет смысла поддерживать в актуальности несколько файлов с разными языками.Что-то я не пойму, Вы предлагаете строковые ресурсы для GUI (ТС же надпись локализует, а не данные) хранить в БД? А в одной базе с данными, или разных?
...
Рейтинг: 0 / 0
JQuery и много язычность
    #38245963
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
st_stВ базу хорошо, но кэш нужен, которого в php нет, нужно отдельно мемкашеды, редисы и прочее ставить на vps. А дёргать базу при каждом клиентском запросе на получение ресурсов, как-то не то, поэтому с файлами для сайтов-визиток проще, хотя и каменный век это.А какие есть современные альтернативы .Net resx-ам, Android String Resources и т.п.?
...
Рейтинг: 0 / 0
JQuery и много язычность
    #38245965
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HunterNomad, не пойму, что у Вас конкретно не работает? Событие change происходит? В обработчик Вы попадаете? Что возвращает selected.val()?
...
Рейтинг: 0 / 0
JQuery и много язычность
    #38245966
HunterNomad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAkrvsaпропущено...

Если нет БД - тогда останутся только файлы...
В моем случает БД есть всегда, т.о. нет смысла поддерживать в актуальности несколько файлов с разными языками.Что-то я не пойму, Вы предлагаете строковые ресурсы для GUI (ТС же надпись локализует, а не данные) хранить в БД? А в одной базе с данными, или разных?

А, в принцыпе, что лучше - хранить локали в бд или как у меня в файлах?
...
Рейтинг: 0 / 0
JQuery и много язычность
    #38245969
Sqlite + Memcache (по необходимости!)
...
Рейтинг: 0 / 0
JQuery и много язычность
    #38245973
...
Рейтинг: 0 / 0
JQuery и много язычность
    #38245974
HunterNomad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAHunterNomad, не пойму, что у Вас конкретно не работает? Событие change происходит? В обработчик Вы попадаете? Что возвращает selected.val()?

- change происходит, но переход не срабатывает, в select постоянно висит eng (не меняясь)
- selected.val() возвращает index.php?lang=rus
- $("#sel [value='index.php?lang=<?php echo $_GET["lang"]; ?>']").attr("selected", "selected"); не выбирает нужный option

кажется я понимногу стал понимать причу трабла ... если бы пых-код не убрали возможно былобы понятно что и к чему
...
Рейтинг: 0 / 0
JQuery и много язычность
    #38245980
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

Есть база данных.

Хорошо, ресурсы лежат в файле. Менеджер говорит - у вас ошибка в переводе, хочу поправить. Программист по ftp лезет на сайт, скачивает себе локализационный файл с конкретным языком и отдаёт его менеджеру. Менеджер открыв его в блокноте и офигивая от увиденного xml возвращает файл обратно программисту со словами "я ничего не понял", тот сам правит и закачивает файл на сервер.

Улучшаем ситуацию - создаём на сайте админку, в которой можем править файлы ресурсов, пишем код - считать ресурсы из файла такого-то (распарсить xml) и отобразить в админке, при изменении запарсить обратно в xml и отправить на сервер/сохранить, вылезает конкурентный доступ к файлам и прочие прелести.

Касаемо asp.net, придётся перекомпиливать приложение на каждую правку ресурса, а это приводит к недоступности сайта какое-то время, в php всё проще в этом плане.

Вариант 3 - просто храним в базе, никаких перекомпиляций, парсинга xml, проблем с доступом и прочего, показал в админке и сохранил конкретные изменённые данные в бд, не мешая остальным работать с этим же самым ресурсом.

Для php-шных сайтов визиток обычно require_once() php-файла с нужным языком, внутри которого можно константами прописать значения (define), чтоб не глобалить (global $lang) каждый раз, либо в массив.
...
Рейтинг: 0 / 0
JQuery и много язычность
    #38245982
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HunterNomad, то есть страница перегружается?
...
Рейтинг: 0 / 0
JQuery и много язычность
    #38245984
HunterNomad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAHunterNomad, то есть страница перегружается?
судя по <?php echo $_GET['lang']; ?> да, но <?= $lang['HELLO']; ?> при этом не меняется, и привет!!! так и весит
...
Рейтинг: 0 / 0
JQuery и много язычность
    #38245985
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HunterNomadskyANAHunterNomad, то есть страница перегружается?
судя по <?php echo $_GET['lang']; ?> да, но <?= $lang['HELLO']; ?> при этом не меняется, и привет!!! так и весит

Может в php нужно файл с языком подключить в зависимости от get-параметра?
...
Рейтинг: 0 / 0
JQuery и много язычность
    #38245996
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
st_stHunterNomadпропущено...

судя по <?php echo $_GET['lang']; ?> да, но <?= $lang['HELLO']; ?> при этом не меняется, и привет!!! так и весит

Может в php нужно файл с языком подключить в зависимости от get-параметра?+1

ТС, покажите код, что цепляет те, или иные ресурсы.
...
Рейтинг: 0 / 0
JQuery и много язычность
    #38246024
HunterNomad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAst_stпропущено...


Может в php нужно файл с языком подключить в зависимости от get-параметра?+1

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

common.php

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<?php

session_start();
header('Cache-control: private'); // IE 6 FIX

if (isSet($_GET['lang'])) {
    $lang = $_GET['lang'];
    if (isSet($_POST['lang'])) {
        $lang = $_POST['lang'];
        $_SESSION['lang'] = $lang;
        setcookie("lang", $lang, time() + (3600 * 24 * 30));
    } else if (isSet($_SESSION['lang'])) {
        $lang = $_SESSION['lang'];
    } else if (isSet($_COOKIE['lang'])) {
        $lang = $_COOKIE['lang'];
    } else {
        $lang = 'eng';
    }
}

include_once 'languages/' . $lang . '.php';
?>


eng.php и rus.php
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<?php
//eng
$lang = array();
$lang['HELLO'] = 'Hello!!!';
?>
<?php
//rus
$lang = array();
$lang['HELLO'] = 'Привет!!!';
?>



спасибо братцы
...
Рейтинг: 0 / 0
JQuery и много язычность
    #38246041
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если для двух языков, то по смыслу как-то так -

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?

$lang = "en"; // по умолчанию

if ($_GET['lang'] == "ru") { // пользователь сам меняет язык, поэтому никакие бывшие куки и сессии нам не интересны
  $lang = "ru";
  setcookie("lang", $lang, time() + (3600 * 24 * 30)); // ставим куку с новым языком
} else { // смену языка никто не нажимал, поэтому проверяем куки, может меняли ранее
  if ($_COOKIE['lang'] == "ru") $lang = "ru";
}

require_once('languages/'.$lang.'.php');

?>
...
Рейтинг: 0 / 0
JQuery и много язычность
    #38246047
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пы.сы., недоглядел, при обратной смене куку сменить надо, а то так и будет висеть на одном языке, короче под себя заделать как там надо и всё.
...
Рейтинг: 0 / 0
JQuery и много язычность
    #38246048
HunterNomad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
st_st,
А разве
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
if (isSet($_GET['lang'])) {
    $lang = $_GET['lang'];
    if (isSet($_POST['lang'])) {
        $lang = $_POST['lang'];
        $_SESSION['lang'] = $lang;
        setcookie("lang", $lang, time() + (3600 * 24 * 30));
    } else if (isSet($_SESSION['lang'])) {
        $lang = $_SESSION['lang'];
// =======================
    else if (isSet($_COOKIE['lang'])) { //<
        $lang = $_COOKIE['lang'];       //<
// =======================
    } else {
        $lang = 'eng';
    }
}
include_once 'languages/' . $lang . '.php';


не делает тоже самое?
...
Рейтинг: 0 / 0
JQuery и много язычность
    #38246059
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HunterNomadне делает тоже самое?

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
<?

$langs = "eng"; // по умолчанию

$change_lang = $_GET['lang'];
if ($change_lang == "rus" || $change_lang == "eng") { // пользователь сам меняет язык, поэтому никакие бывшие куки и сессии нам не интересны // проверяем на eng и rus, а то проинклудим не то
  $langs = $change_lang;
  setcookie("lang", $langs, time() + (3600 * 24 * 30)); // ставим куку с новым языком
} else { // смену языка никто не нажимал, поэтому проверяем куки, может меняли ранее
  if ($_COOKIE['lang'] == "rus") $langs = "rus";
}

require_once($langs.'.php');

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta>
        <script src="jquery.js" type="text/javascript"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                $("#sel [value='index.php?lang=<?php echo $_GET["lang"]; ?>']").attr("selected", "selected");
                $("#sel").change(function(){
                    var selected = $("#sel option:selected");		
                    var output = "";
                    if(selected.val() != 0){
                        output = selected.val();
                        document.location.href=output;
                    }
                }); 
            });
        </script>
    </head>
    <body>
        <hr>
            <div>
                <select id="sel" name="sel">
                    <option value="index.php?lang=eng" <?=($langs=="eng" ? "selected" : "")?>>Eng</option>
                    <option value="index.php?lang=rus" <?=($langs=="rus" ? "selected" : "")?>>Rus</option>
                </select>
            </div>
            <hr>
                <?= $lang['HELLO']; ?>
                <p style="color: goldenrod; size: 15pt;">
                    Hello test text
                </p>
      </body>
</html>
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JQuery и много язычность
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]