Просмотр полной версии : Помогите реализовать.
мне нужно реализовать многоязыковую поддержку на своем сайте. Незнаю с чего начинать. Буду признателен за ценный совет.
Начинать с выноса всех текстов в базу/файл и использования вместо echo 'Все хорошо'; примерно таких конструкций: echo my_get_phrase('all_ok'); или echo $messages['all_ok']; или echo MESSAGE_ALL_OK;
Ну это ясно. у меня два файла русский и англ.
вот один из них
<?php
define ("_HOME","Home");
define ("_ABOUT","About us");
define ("_SERVICES","Services");
define ("_PRODUCTS","Products");
define ("_CONTACT","Contact");
?>
дальше определяешь, какой из них подключить в php-приложение и подключаешь его туда)
вопрос не в этом.
Я не могу смоделировать сам скрипт
Что конкретно не получается?
не получается сам скрипт.
Схема примерно такая.
Есть переменная $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>";
Ну и что дальше делать ? Предлагаешь нам за тебя скрипт писать по изложенному тобой вполне себе верному алгоритму ?
В том то и дело что у меня не получается. Не работает он у меня. Немогу найти причину в чем.
Основной файл
<?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");
?>
Где ошибка.
Появляется только английский , а русского нету.
Ну как ? $lang всегда неопределен, потому и только английский.
WillyM, отредактируйте свои посты и оформите код тегами .
Ну как ? $lang всегда неопределен, потому и только английский.
Немного не понял что вы хотите этим сказать.
А что тут непонятного ? В приведенном коде до if'a нигде не встречается $lang = _some_value_; или другого какого метода определения переменной.
То есть к моменту if'a переменная $lang не определена.
Соответственно, код всегда попадает в первую ветку условия.
ну если я до ИФа определю переменную $lang . То как она будет переназначаться если она стоит в начале всего кода
А зачем ей переназначаться в процессе ? Или у тебя на странице десять языков должна быть ?
Русский и Англ. страница то одна, контент один.
Только языки разные.
То как она будет переназначаться если она стоит в начале всего кода
Ну если мы должны на одной странице написать _одним_ языком, то зачем переопределять переменную в процессе работы ?
Чета я совсем запутался.
Нужно отдохнуть, а то я уже заколебался и других заколебал.
Chelovek1
19.06.2007, 00:54
У тебя переменная через http запрос передается, но потом не вынимается (если ты здесь весь код твоего файла привел). Чтобы заработало надо вначале файла что-то типа $lang = $_GET['lang']; поставить.
Chelovek1, если человек просит поесть, можно дать ему еды, а можно научить ловить рыбу. Ок ?
.пта.... у ё . Заработало .
Всех благодарю. я счастлив.
Chelovek1, если человек просит поесть, можно дать ему еды, а можно научить ловить рыбу. Ок ?
А рыба что по вашему не еда ?
WillyM, имеется в виду, что можно просто сказать "сделай то-то и то-то", а можно - "вот тут не так, потому что..."
Вот например сейчас я почти уверен, что ты не понял, почему надо сделать так, как предложено.
А рыба что по вашему не еда ?
Одно дело дать один раз пожрать, другое дело научить готовить и не иметь проблем. В данный момент, пока снова не захочется есть, все будет нормально, а потом — как всегда.
не ну почему я прекрасно понял свою ошибку. я надеюсь что в дальнейшем я такой ошибки не повторю.
я передавал переменную lang через http . и не , так сказать , не изъял ее оттудова.
Еще раз огромное спасибо. Если будут вопросы то обязательно с ними поделюсь.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.