Два языка на сайте (с нуля)

Manson

Новичок
Два языка на сайте (с нуля)

Доброго дня!

Насколько сложно ввести в сайт (под смарти) мультиязычность?

Тоесть есть некие файлы en.php, ru.php с содержанием ну к примеру таким:

PHP:
$home = 'Главная страница';
$foto = 'Фотографии';
$profile= 'Профиль';

Их соответственно два - файлики с русскими фразами и англ.

В самих *.tpl файлах будет что-то типа такого {$home} - чтобы на сайте выводилась фраза из языкового файла.

Соответственно и опция смены языка.

Сложно сделать выбор языка на сайте и функцию чтобы этот самый выбранный язык "ловить".

В гугле вообще информации минимум по данному вопросу. А если и есть то для профессионалов. А я юрист по образованию :)
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Сложно сделать выбор языка на сайте и функцию чтобы этот самый выбранный язык "ловить".
Что именно тебе сложно?

В гугле вообще информации минимум по данному вопросу. А если и есть то для профессионалов. А я юрист по образованию
Ты ожидаешь, что кто-то вместо тебя сделает данную работу?
Форум "Работа" к твоим услугам.
Не забудь указать стоимость в деньгах
 

Manson

Новичок
Я ничего не ожидаю. Темболее халявы.

Вобщем удалось кое что сделать, но не до конца.

PHP:
if(проверка, какой язык выбран у юзера==3) {
include 'lang/en.php';
} else {
include 'lang/ru.php';
}
Вот тут и начинаются сложности. Есть два варианта что писать в языковом файле. Это либо константы:
PHP:
<?php
define("main_menu", "Главная");
?>
Либо массив:
PHP:
<?php
$langs = array(
$langs['main_menu'] = 'Главная',
);
?>
Что лучше? Массив как я понимаю? Тогда как сделать вывод его в конечный шаблон tpl?
 

Фанат

oncle terrible
Команда форума
Manson
я бы сделал либо файл типа ini, либо xml, либо специализированное, типа того, что выше.
все зависит от того, как планируется редактировать информацию.

хранение в пхп файлах представляется мне наихудшим вариантом.
 

FractalizeR

Новичок
У смарти есть возможность загружать текст в переменные из конфигурационных файлов.

Скажем, если у нас язык $curr_lang="en", то отображать какую-нибудь страницу можно следующим образом:

$smarty->config_load('MyPage.'.$curr_lang.'.conf');
$smart->display("MyPage.tpl");

Переменные из загруженных конфигурационных файлов доступны в шаблоне как #Var#
 

Bakti9rov

!*|=?
в пхп файлы можно "схлопывать" кеш - записывать например ассоциативный массив I18n::loadTranslations().

а лучше - абстрагироваться от способа хранения переводов. Можно хранить где угодно - в базе, в XML/YAML/INI, под каждый вариант написать бекэнд.
 
Сверху