PDA

Просмотр полной версии : Помогите реализовать.


WillyM
30.05.2007, 10:42
мне нужно реализовать многоязыковую поддержку на своем сайте. Незнаю с чего начинать. Буду признателен за ценный совет.

Skubent
30.05.2007, 12:31
Начинать с выноса всех текстов в базу/файл и использования вместо echo 'Все хорошо'; примерно таких конструкций: echo my_get_phrase('all_ok'); или echo $messages['all_ok']; или echo MESSAGE_ALL_OK;

WillyM
14.06.2007, 15:06
Ну это ясно. у меня два файла русский и англ.

вот один из них

<?php

define ("_HOME","Home");
define ("_ABOUT","About us");
define ("_SERVICES","Services");
define ("_PRODUCTS","Products");
define ("_CONTACT","Contact");

?>

WillyM
17.06.2007, 12:49
Дальше застрял !!!

DarkElf
17.06.2007, 21:36
дальше определяешь, какой из них подключить в php-приложение и подключаешь его туда)

WillyM
18.06.2007, 00:25
вопрос не в этом.
Я не могу смоделировать сам скрипт

etc
18.06.2007, 00:34
Что конкретно не получается?

WillyM
18.06.2007, 11:20
не получается сам скрипт.
Схема примерно такая.
Есть переменная $lang

Если переменная отсутствует (!isset($lang)) или равна $lang==eng
то подключать файл english.php
иначе russian.php


ну а это простейший переключатель

echo "<a href=\"test.php?lang=ru\">русский</a>";
echo "<br>";
echo "<a href=\"test.php?lang=eng\">english</a>";

Skubent
18.06.2007, 12:46
Ну и что дальше делать ? Предлагаешь нам за тебя скрипт писать по изложенному тобой вполне себе верному алгоритму ?

WillyM
18.06.2007, 13:33
В том то и дело что у меня не получается. Не работает он у меня. Немогу найти причину в чем.

WillyM
18.06.2007, 13:56
Основной файл

<?php

echo "<a href=\"test.php?lang=ru\">русский</a>";
echo "<br>";
echo "<a href=\"test.php?lang=eng\">english</a>";


if (!isset($lang) or $lang==eng)
{
include "languages/english.inc.php";
}
else
{
include "languages/russian.inc.php";
}


echo _HOME;
echo _ABOUT;
echo _SERVICES;
echo _PRODUCTS;
echo _CONTACT;

?>


языковые файлы


<?php

define ("_HOME","Главная");
define ("_ABOUT","О предприятии");
define ("_SERVICES","Сервис");
define ("_PRODUCTS","Продукция");
define ("_CONTACT","Контакты");

?>

<?php

define ("_HOME","Home");
define ("_ABOUT","About us");
define ("_SERVICES","Services");
define ("_PRODUCTS","Products");
define ("_CONTACT","Contact");

?>


Где ошибка.

Появляется только английский , а русского нету.

Skubent
18.06.2007, 14:06
Ну как ? $lang всегда неопределен, потому и только английский.

etc
18.06.2007, 14:24
WillyM, отредактируйте свои посты и оформите код тегами .

WillyM
18.06.2007, 14:45
Ну как ? $lang всегда неопределен, потому и только английский.


Немного не понял что вы хотите этим сказать.

Skubent
18.06.2007, 15:22
А что тут непонятного ? В приведенном коде до if'a нигде не встречается $lang = _some_value_; или другого какого метода определения переменной.
То есть к моменту if'a переменная $lang не определена.
Соответственно, код всегда попадает в первую ветку условия.

WillyM
18.06.2007, 17:18
ну если я до ИФа определю переменную $lang . То как она будет переназначаться если она стоит в начале всего кода

Skubent
18.06.2007, 17:30
А зачем ей переназначаться в процессе ? Или у тебя на странице десять языков должна быть ?

WillyM
18.06.2007, 18:26
Русский и Англ. страница то одна, контент один.

Только языки разные.

Skubent
18.06.2007, 18:34
То как она будет переназначаться если она стоит в начале всего кода

Ну если мы должны на одной странице написать _одним_ языком, то зачем переопределять переменную в процессе работы ?

WillyM
18.06.2007, 18:41
Чета я совсем запутался.
Нужно отдохнуть, а то я уже заколебался и других заколебал.

Skubent
18.06.2007, 19:27
Распутывайся давай.

Chelovek1
19.06.2007, 00:54
У тебя переменная через http запрос передается, но потом не вынимается (если ты здесь весь код твоего файла привел). Чтобы заработало надо вначале файла что-то типа $lang = $_GET['lang']; поставить.

Skubent
19.06.2007, 12:54
Chelovek1, если человек просит поесть, можно дать ему еды, а можно научить ловить рыбу. Ок ?

WillyM
19.06.2007, 13:01
.пта.... у ё . Заработало .

Всех благодарю. я счастлив.

Chelovek1, если человек просит поесть, можно дать ему еды, а можно научить ловить рыбу. Ок ?


А рыба что по вашему не еда ?

Skubent
19.06.2007, 13:46
WillyM, имеется в виду, что можно просто сказать "сделай то-то и то-то", а можно - "вот тут не так, потому что..."
Вот например сейчас я почти уверен, что ты не понял, почему надо сделать так, как предложено.

etc
19.06.2007, 13:59
А рыба что по вашему не еда ?
Одно дело дать один раз пожрать, другое дело научить готовить и не иметь проблем. В данный момент, пока снова не захочется есть, все будет нормально, а потом — как всегда.

WillyM
19.06.2007, 16:22
не ну почему я прекрасно понял свою ошибку. я надеюсь что в дальнейшем я такой ошибки не повторю.

я передавал переменную lang через http . и не , так сказать , не изъял ее оттудова.

Еще раз огромное спасибо. Если будут вопросы то обязательно с ними поделюсь.