[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Перевод страницы на английский
qww
Здравствуйте! Опять проблемма! Не могу понять.Мне необходимо сделать перевод сайта, то есть, на сайте есть материал на русском языке. Мне нужно чтобы пользователь, заходя на сайт на главной странице видел две ссылки, например "рус" "англ" и при нажатии на них, открывался соответствующий язык сайта. Чего нужно для этого сделать? Где писать перевод страницы?
Где сделать блок переключатель языка? Помогите пожалуйста разобраться?



Спустя 6 минут, 26 секунд (17.08.2011 - 11:45) TMake написал(а):
На чем делаешь?

Спустя 5 минут, 18 секунд (17.08.2011 - 11:50) qww написал(а):
На php

Спустя 8 минут, 2 секунды (17.08.2011 - 11:58) YVSIK написал(а):
qww biggrin.gif это вот точно понятно что это будет PHP
непонятно какова ваша структура сайта ИМХО по моему про это и спрашивают))
Цитата
На чем делаешь?

Спустя 7 минут, 3 секунды (17.08.2011 - 12:05) Invis1ble написал(а):
Цитата
qwwэто вот точно понятно что это будет PHP
непонятно какова ваша структура сайта ИМХО по моему про это и спрашивают))

все верно, чтоб ответить на поставленный вопрос, нужно знать архитектуру

Спустя 3 минуты, 28 секунд (17.08.2011 - 12:09) TMake написал(а):
Цитата
На чем делаешь?

Цитата
На php

laugh.gif
То что на php я уже догодался...
Сайт на cms, framework или самопис ???

Спустя 4 минуты, 59 секунд (17.08.2011 - 12:14) qww написал(а):
Есть главная страница index.php:
на ней две кнопки или ссылки. Пока не понял что лучше. Если ссылки то куда они должны ссылаться? Я так думаю скорее всего на файл language.php где
define("_WELCOME","Добро пожаловать");
. Сейчас прописываю этот файл. Нужен он или нет? Как им потом воспользоваться? Пока больше ничего нет. На главной есть текст и прочее.

Спустя 1 минута, 36 секунд (17.08.2011 - 12:15) qww написал(а):
Цитата (stepan @ 17.08.2011 - 09:09)
Цитата
То что на php я уже догодался...
Сайт на cms, framework или самопис ???

Самопис

Спустя 5 минут, 20 секунд (17.08.2011 - 12:21) inpost написал(а):
qww
я бы разделил language/ru.php и language/eng.php , 2 файла, в которых будешь хранить тексты страниц. Ну это так, простой и удобный способ, и самый банальный способ.
И да, константы с текстами. Обычно текстов не так много, можно справиться итак.
На какой из файлов ссылаться будет запись в кукисах, то есть если куки пустые - значит стандартный язык, если была изменена кнопка, значит в кукисы записываешь eng, или ru, по существу.

Спустя 10 минут, 36 секунд (17.08.2011 - 12:31) qww написал(а):
Цитата (inpost @ 17.08.2011 - 09:21)
qww
я бы разделил language/ru.php и language/eng.php , 2 файла, в которых будешь хранить тексты страниц. Ну это так, простой и удобный способ, и самый банальный способ.
И да, константы с текстами. Обычно текстов не так много, можно справиться итак.
На какой из файлов ссылаться будет запись в кукисах, то есть если куки пустые - значит стандартный язык, если была изменена кнопка, значит в кукисы записываешь eng, или ru, по существу.

А
define("_WELCOME","Добро пожаловать"); 
define("_CONTROL_PANEL","Панель управления");

это в каком файле прописывать? language/ru.php или language/eng.php?
И то есть ссылка Русский будет ссылаться на language/ru.php, а английский на
language/eng.php?

Спустя 2 минуты, 44 секунды (17.08.2011 - 12:34) Invis1ble написал(а):
qww
Цитата
это в каком файле прописывать?

судя по языку, используемому в define() - в ru.php smile.gif

Спустя 2 минуты, 18 секунд (17.08.2011 - 12:36) inpost написал(а):
в index.php , который загружается на всех страницах сайта.
Ничего подобного, будет просто внутри index.php такое содержание:
include 'language/'.$_COOKIE['lang'].'.php';

Внутри этих файлов будут одни и те же константы (в разных языках - разный текст!). Далее в нужных местах ты выводишь эти константы. Если ты рус, то вывелась эта константа из файла ru.php, а если анг, то из eng.php .

Если интересно обо всем этом, то в курса irbis-team.com там показана и структура, и ядро, и взаимодействие шаблонов и языка.

Спустя 7 минут, 41 секунда (17.08.2011 - 12:44) qww написал(а):
Цитата (Invis1ble @ 17.08.2011 - 09:34)
в index.php , который загружается на всех страницах сайта.
Ничего подобного, будет просто внутри index.php такое содержание:
include 'language/'.$_COOKIE['lang'].'.php';

Внутри этих файлов будут одни и те же константы (в разных языках - разный текст!). Далее в нужных местах ты выводишь эти константы. Если ты рус, то вывелась эта константа из файла ru.php, а если анг, то из eng.php .

Если интересно обо всем этом, то в курса irbis-team.com там показана и структура, и ядро, и взаимодействие шаблонов и языка.

inpost спасибо тебе! То есть в eng.php примерно выглядет так
define("Панель управления","_CONTROL_PANEL");
?

Спустя 15 секунд (17.08.2011 - 12:44) TMake написал(а):
qww у тебя есть 2 варианта
1. Это как тебе подсказал - Invis1ble
2. Использовать Google Translate API

Первый не удобен в том что если ты добавляешь новую статью, тебе надо самому вручную переводить ее на другой язык и дописывать в php файл

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

Спустя 5 минут, 54 секунды (17.08.2011 - 12:50) qww написал(а):
Цитата (qww @ 17.08.2011 - 09:44)
Цитата (Invis1ble @ 17.08.2011 - 09:34)
в index.php , который загружается на всех страницах сайта.
Ничего подобного, будет просто внутри index.php такое содержание:
include 'language/'.$_COOKIE['lang'].'.php';

Внутри этих файлов будут одни и те же константы (в разных языках - разный текст!). Далее в нужных местах ты выводишь эти константы. Если ты рус, то вывелась эта константа из файла ru.php, а если анг, то из eng.php .

Если интересно обо всем этом, то в курса irbis-team.com там показана и структура, и ядро, и взаимодействие шаблонов и языка.

inpost спасибо тебе! То есть в eng.php примерно выглядет так
define("Панель управления","_CONTROL_PANEL");
?

Спасибо stepan ! Но вопрос остаётся. Лучше ссылки сделать или кнопки ли безразницы?

Спустя 2 минуты, 13 секунд (17.08.2011 - 12:52) TMake написал(а):
Цитата
Лучше ссылки сделать или кнопки ли безразницы?

А это как тебе нравится.

Спустя 6 минут, 34 секунды (17.08.2011 - 12:59) qww написал(а):
Цитата (stepan @ 17.08.2011 - 09:52)
Цитата
Лучше ссылки сделать или кнопки ли безразницы?

А это как тебе нравится.

А в eng.php так выглядет:
define("Панель управления","_CONTROL_PANEL");
?

Спустя 5 минут, 47 секунд (17.08.2011 - 13:05) TMake написал(а):
Цитата
А в eng.php так выглядет:

нет
define - определяет именованную константу.
bool define ( string name, mixed value [, bool case_insensitive])

т.е.
define("_CONTROL_PANEL","Control panel");

Спустя 10 минут, 59 секунд (17.08.2011 - 13:16) qww написал(а):
Спасибо stepan ! Понял! Не понял только: Когда нажимаю на ссылку Английйский какой адрес ей прописывать? Куда ведет ссылка?

Спустя 3 минуты, 54 секунды (17.08.2011 - 13:20) Invis1ble написал(а):
qww
если по варианту inpost'а, то ссылка должна вести на скрипт, устанавливающиий соответствующую куку с последующим редиректом на индекс. Как-то так

Спустя 7 секунд (17.08.2011 - 13:20) inpost написал(а):
на любую страницу, в которой ты создаёшь куки, потом редирект обратно.

Invisible
Эх, одновременно smile.gif

Спустя 1 минута, 34 секунды (17.08.2011 - 13:21) TMake написал(а):
когда нажимаешь Английский у тебя инклюдится eng.php, а года Русский rus.php
за счет того что название переменных у тебя одинаковые в этих файлах у тебя будет подставлятся то значение которое ты выбрал т.е. язык cool.gif

Спустя 2 минуты, 23 секунды (17.08.2011 - 13:24) qww написал(а):
Понял! Спасибо всем! А курсы Евгения Попова прошёл, но молодцом себя не считаю. Сейчас решил учится на книгах! smile.gif

Спустя 1 минута, 58 секунд (17.08.2011 - 13:26) TMake написал(а):
Цитата
А курсы Евгения Попова прошёл,

Забудь все что там ты изучил.
Тебе ^сюда^

Спустя 3 часа, 5 минут, 4 секунды (17.08.2011 - 16:31) VELIK505 написал(а):
Цитата (inpost @ 17.08.2011 - 09:36)
Если интересно обо всем этом, то в курса irbis-team.com там показана и структура, и ядро, и взаимодействие шаблонов и языка.

А можно линк?

Спустя 1 минута, 29 секунд (17.08.2011 - 16:32) Invis1ble написал(а):

Спустя 42 минуты, 22 секунды (17.08.2011 - 17:15) Michael написал(а):
Чтобы лучше решить задачу, надо ее сначала себе нормально поставить и обдумать.
Например:
Есть сайт "многоязычный". Какой у него будет функционал для пользователей и какой для владельца. Владельцу например надо добавлять/изменять/удалять данные на этом сайте.
Ведь если владелец сайта не программист, то определять переводы через код - не верно.
Следующее.
Переводу подлежат и строки вида:
"Здравствуйте, Иван Иванович, у вас 5 новых личных сообщений."
, где красным - динамический контент в зависимости от контекста. Как с этим, помогут тебе тут константы?

Спустя 37 минут, 4 секунды (17.08.2011 - 17:52) qww написал(а):
А чего есть способы лучше?

Спустя 2 часа, 4 минуты, 35 секунд (17.08.2011 - 19:56) inpost написал(а):
Michael
Здравствуйте, {$login}, у вас {$num} новых личных сообщений.
str_replace('{$login}',$row['login'],КОНСТАНТА);

Ничего проблемного не вижу. Единственное, что модерировать эти тексты будет сложно простому пользователю.
А что ты предлагаешь? В БД хранить? Или в каком-нибудь .txt ,который парсить?

Спустя 10 часов, 49 минут, 39 секунд (18.08.2011 - 06:46) qww написал(а):
Здравствуйте! Я вот не понял. Сделал две кнопки

<form action="index.php" method="post" name="form">
<input
name="rus" type="submit" value="Russian">
<input
name="eng" type="submit" value="English">
</form>



Перед этим написал:

setcookie("mylang");
$lang = $_COOKIE['mylang'];
$lang['ru'] = 'Russian';
$lang['en'] = 'English';
$_COOKIE['mylang']=$lang['ru'];
include ('Languages/'.$_COOKIE['mylang'].'.php');


Без нажатия кнопок язык переводится.
Теперь надо написать условный оператор if? Если нажата кнопка eng то подключаем English.php else Russian.php. Так нужно? Как написать что кнопка нажата языком php?

Спустя 57 минут, 19 секунд (18.08.2011 - 07:43) qww написал(а):
Всем спасибо! Я сделал! Если $_REQUEST[''] то это иначе это.
А как быть с переводом большого текста? Константами не отделаешся?

Спустя 9 минут, 51 секунда (18.08.2011 - 07:53) Michael написал(а):
какими нафиг константами? blink.gif
Текст - это контент. Хранится в БД ну или в файле(что реже). Вот надо и проектировать так, чтобы вводить в систему несколько версий одних и тех же данных. Какое то уродство ты походу клепаешь - для себя, для интереса?

Цитата
Единственное, что модерировать эти тексты будет сложно простому пользователю.

сложно или невозможно - уже не то.

Спустя 34 минуты, 31 секунда (18.08.2011 - 08:28) qww написал(а):
Для себя. Сделал файл eng.php там прописал:
define("_CONTROL_PANEL","Control panel");

А как с большим текстом? Если его не в БД запиливать а в файл? И как тут быть?

Спустя 6 минут, 19 секунд (18.08.2011 - 08:34) Michael написал(а):
два файла...

Спустя 8 минут, 33 секунды (18.08.2011 - 08:42) TMake написал(а):
qww Мой тебе совет перед тем как начать делать что то свое изучи нормально азы и все тогда для тебя будет легче. У меня в подписи гляди есть сайт irbis-tiam

Спустя 26 минут, 34 секунды (18.08.2011 - 09:09) qww написал(а):
Спасибо за эту книжку! Давно такую искал где написано обычным, простым языком. Я насчёт двух файлов понял. Спасибо!

Спустя 38 минут, 49 секунд (18.08.2011 - 09:48) walters написал(а):
вот таке можешь поставить

define('MAIN_ABOUT',        'We are a team of ambitious young people with five 
years experience in advertising products in different categories.
We always render our clients professional assistance for the effective
promotion of the Moldovan or foreign market their product or service,
with the hope of subsequent long-term cooperation.....'
);


но не советую, возьми создай базу и выводи как надо.

Спустя 26 минут, 46 секунд (18.08.2011 - 10:15) walters написал(а):
не парь себе мозги и учись пок урсам практики irbis-team.
там и база и языки и все что угодна можно сделать

Спустя 21 минута, 36 секунд (18.08.2011 - 10:36) qww написал(а):
Спасибо walters за дельный совет! irbis-team крутая штука!
Цитата
но не советую, возьми создай базу и выводи как надо.

То есть беру весь текст запиливаю его в базу? А выводить при помощи SELECT в нужное мне место?

Спустя 9 минут, 28 секунд (18.08.2011 - 10:46) TMake написал(а):
Цитата (qww @ 18.08.2011 - 07:36)
А выводить при помощи SELECT в нужное мне место?

Утрировано - да

Спустя 1 день, 3 часа, 17 минут, 8 секунд (19.08.2011 - 14:03) qww написал(а):
Возникла проблемма: для перевода написонно следующее
 
setcookie('mylang');
//$lang = $_COOKIE['mylang'];

if(!isset($_COOKIE['mylang']))
{
$_COOKIE['mylang']="Russian"; }
else
{
if(@$_POST["rus"]){
$_COOKIE['mylang']="Russian"; язык русский
}
else
{
$_COOKIE['mylang']="English";
}
}


include 'rooms/php/Languages/'.$_COOKIE['mylang'].'.php';


Есть две кнопки. Когда только захожу на страницу и делаю обновление всё сьановица на английском языке! Помогоите разобраться!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.