Форум → Программирование → PHP для идиотов → Многоязычный сайт
Многоязычный сайт
Страницы: ← Следующая страница →
-
5 февраля 2008 г. 15:12, спустя 11 минут 48 секунд
Я лично делаю ленг-файлы, в которых все необходимые тексты записаны в константы. А дальше подключаю необходимый файл, в зависимости от условий.
Например:// lang-en.php
define ('WELCOME_TEXT', 'Welcome to my site!');
define ('MAIN_TEXT', 'Text in main page');// lang-ru.php
define ('WELCOME_TEXT', 'Добро пожаловать!');
define ('MAIN_TEXT', 'Текст на главной странице');//lang.php
if (isset ($_GET['lang']))
$_SESSION['lang'] = $_GET['lang'];
elseif (isset ($_COOKIE['lang']))
$_SESSION['lang'] = $_COOKIE['lang'];
else
$_SESSION['lang'] = "en";
require_once ("./lang/lang-".$_SESSION['lang'].".php");
А дальше, везде, где нужен текст, подставляются соответсвующие константы. -
5 февраля 2008 г. 15:26, спустя 14 минут 30 секунд
Делал англ версию сайта компании, сделал сабдомен eng.mysite.ru туда залил копию сайта и всё перевел.from TRIAL with LOVE -
5 февраля 2008 г. 15:40, спустя 14 минут 19 секунд
А если сайт динамичный на mysql. Как лучше в базе сделать разделение. Чтобы было так например. По умолчанию русский язык. Если перевод русского текста есть (например англ или китайский) то выводим его, если нет выводим русский текст -
5 февраля 2008 г. 16:05, спустя 24 минуты 23 секунды
Если перевод русского текста есть (например англ или китайский) то выводим его, если нет выводим русский текст
Это чтобы половина сайта была на русском, а половина на китайском?)))
Думаю, что не стоит тексты хранить в бд. -
5 февраля 2008 г. 16:16, спустя 11 минут 35 секунд
Думаю, что не стоит тексты хранить в бд.
а где их хранить? в кладовке?
лучше всего, на мой взгляд — делать копии сайтавсе умрут, а я изумруд -
-
5 февраля 2008 г. 19:38, спустя 3 минуты 43 секунды
редактируемые тексты клиентов хранить в файле?все умрут, а я изумруд -
5 февраля 2008 г. 21:48, спустя 2 часа 9 минут 42 секунды
Нет, основные тексты сайта, которые практически неизменны. -
5 февраля 2008 г. 22:13, спустя 24 минуты 23 секунды
Нет, основные тексты сайта, которые практически неизменны.
Например! -
6 февраля 2008 г. 9:20, спустя 11 часов 7 минут 8 секунд
А смысл то их в файах хранить когда с тем же успехом их можно хранить в базе, только при случае удобнее будет редактировать.
Но копия проще.from TRIAL with LOVE -
6 февраля 2008 г. 13:06, спустя 3 часа 46 минут 38 секунд
Если тексты храняться в базе можно попробывать сделать транслятор… Для начало создаем базу откуда будем брать локализацию, примерно так:
CREATE TABLE `lang` (
`id` int(11) NOT NULL auto_increment,
`type` varchar(12) NOT NULL default '',
`content_id` int(11) NOT NULL default '0',
`subject` varchar(255) NOT NULL default '',
`body` longtext NOT NULL,
`language` varchar(3) NOT NULL default '',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE=MyISAM;
где type - тип страницы (новости, статьи, фак, форум и так далее), content_id - связь с таблицой что локализуем, subject & body соотвтетсвенно заголовок и тело, language - язык…
Дальше в зависимости от параметра $_GET['lang'] или $_COOKIE['lang'], если не равно пусто, то бишь задействован альтернативный язык, считываем из таблицы lang данные с условием, что language = $_GET['lang'], иначе считываем данные из основной таблицы… -
6 февраля 2008 г. 13:57, спустя 50 минут 15 секунд
Дальше в зависимости от параметра $_GET['lang'] или $_COOKIE['lang'], если не равно пусто, то бишь задействован альтернативный язык, считываем из таблицы lang данные с условием, что language = $_GET['lang'], иначе считываем данные из основной таблицы…
почему бы не хранить всё в одной таблице, а при отсутсвии $_GET['lang'] или $_COOKIE['lang'] просто выставлять значение по-умолчанию? -
6 февраля 2008 г. 13:57, спустя 55 секунд
Нет, основные тексты сайта, которые практически неизменны.
Например!
Например, взять для примера хотя бы этот форум.Показать новые сообщения с Вашего последнего визита.
Показать новые ответы на Ваши сообщения.
Начало Помощь Поиск Профиль Личные сообщения Календарь Пользователи Выйти
Вот эти тексты какой смысл хранить в базе? Проще их сделать константами и подключать в зависимости от условия ленг-файл.
Не? -
6 февраля 2008 г. 14:13, спустя 15 минут 28 секунд
Можно сделать несколько шаблонов страниц (если сайт простой и их немного) - для каждого языка свои, со своим текстом.
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!