Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Переменные в PHP и HTML (локализация)

Ответить
Настройки темы
Переменные в PHP и HTML (локализация)

Новый участник


Сообщения: 21
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Здравствуйте.
Раньше сайт был на одном языке и было все в файлах PHP, теперь приходится добавлять несколько языков (на выбор пользователя), это значит заменять фразы в PHP на переменные, но ума не приложу как это все оформить...
Например имеем такую часть кода:
PHP код: Выделить весь код

$now_hours date('G');
if(
$now_hours<8)
{
    
$xxxx 'Доброй ночи!';
}
elseif(
$now_hours<12 && $now_hours>=
{
    
$xxxx 'Доброе утро!';
}
elseif(
$now_hours>=12 && $now_hours<17)
{
    
$xxxx 'Добрый день!';
}
elseif(
$now_hours>=17 && $now_hours<=23)
{
    
$xxxx 'Добрый вечер!';
}
$content str_replace('{xxxx}'$xxxx);
print 
$content

Где, далее переменная {xxxx} вставляется в шаблон и выводит приветствие. Так вот как в этом коде заменить фразы Доброй ночи!, Доброе утро!, Добрый день!, Добрый вечер!, на переменные, что бы они подхватывались с языкового файла, скажем ru.php?
Покажите, пожалуйста пример.
Спасибо.

Отправлено: 07:21, 17-12-2013

 

Аватара для Pavluha

Старожил


Сообщения: 165
Благодарности: 7

Профиль | Отправить PM | Цитировать


Для начала нужно определиться, как вы будете узнавать, какой язык предпочитает пользователь. Можно сделать разными путями, но самый удобный -- это через куки.

Далее, если нужно поменять только эти 4 фразы, можно обойтись так (показано для первого примера):

PHP код: Выделить весь код

$userlang $_COOKIE['userlang'];

$now_hours date('G');
if(
$now_hours<8)
{
    if(
$userlang='ru')
    {
     
$xxxx 'Доброй ночи!';
    }
    else if (
$userlang='en')
    {
      
$xxxx 'Good night!'
    
}
}
..........................

$content str_replace('{xxxx}'$xxxx);
print 
$content

Но если надо перевести на другой язык весь сайт, то нужно делать так:
1. Создаём папку language или localizations и в неё кидаем файлы с именами типа ru.php, en.php и тому подобное.
2. В этих файлах будут храниться фразы для вашего сайта (желательно делать так, в виде массива):
PHP код: Выделить весь код

<?
/*Английская локализация (en.php)*/
$message['good_night'] = 'Good night!';
$message['good_morning'] = 'Good morning!';
......................
?>

PHP код: Выделить весь код

<?
/*Русская локализация (ru.php)*/
$message['good_night'] = 'Доброй ночи!';
$message['good_morning'] = 'Доброе утро!';
......................
?>

3. В самом коде программы делать так:

PHP код: Выделить весь код

$userlang $_COOKIE['userlang'];
include(
'localization/'.$userlang);
$now_hours date('G'); 
if(
$now_hours<8

    
$xxxx $message['good_night']; 

elseif(
$now_hours<12 && $now_hours>=)  

    
$xxxx $message['good_morning'];  

elseif(
$now_hours>=12 && $now_hours<17

    
$xxxx $message['good_aftenoon'];

elseif(
$now_hours>=17 && $now_hours<=23

    
$xxxx $message['good_evening']; 

$content str_replace('{xxxx}'$xxxx); 
print 
$content

Конечно, данный код нужно еще доработать (например, если такого языка не существует, выводить на русском или английском). И, к примеру, использовать require вместо инклуда, но необходимо тогда просчитать все возможные ошибки.

P. S. Если думаете, что сами не справитесь, а код сайта всему миру показывать не хотите, могу помочь за символическую плату (пишите в лс).

Отправлено: 23:45, 21-12-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Переменные в PHP и HTML (локализация)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
123 llatigid Вебмастеру 2 17-09-2011 08:19
Проблема с PHP(не передаются переменные из формы в PHP- скрипт) Kirander Вебмастеру 21 03-08-2009 01:11
Разное - [PHP] Переменные CXREF Программирование и базы данных 2 16-06-2009 08:15
Переменные в PHP Guest Программирование и базы данных 6 11-09-2003 04:28
Переменные в PHP Guest Вебмастеру 1 10-01-2003 13:48




 
Переход