Перейти к публикации

Рекомендованные сообщения

После этих действий ваш второй сайт будет использовать базу данных для пользователей и групп пользователей от первого сайта,

Подскажите пожалуйста.

Мелкая неприятность. Названия групп Guest вместо Гость на русском сайте так же отображаются.

Их нельзя сделать для каждого домена свои. Для русского пусть будет Гость.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

Дабы не плодить тем спрошу тут - если мне нужен не мультиязычный сайт с контентом на нескольких языках, а только мультиязычный интерфейс - с переключателем аналогично переключателю выбора шаблонов - (удивлена что его нет по умолчанию) - вместо того чтобы мудрить с копиями шаблонов на разных языках, и тем более - с языковыми поддоменами - не достаточно ли будет все слова из шаблонов\ скриптов заменить языковыми переменными и засунуть их в языковые файлы ?

Ссылка на сообщение
Поделиться на других сайтах

Хмм... ну в общем как выяснилось - можно, но сложнее чем хотелось бы

В общих чертах механизм такой

1. в файл /engine/modules/functions.php добавляем перед ?>

function retlang($param)


{


	global $lang;


	return $lang["$param"];


}
2. в файл класса шаблонов /engine/classes/templates.class.php перед
if( isset( $this->result[$tpl] ) ) $this->result[$tpl] .= $this->copy_template;


		else $this->result[$tpl] = $this->copy_template;
добавляем
if (strpos ( $this->copy_template, "{lang=" ) !== false) {


		$this->copy_template = preg_replace ( "#\\{lang=(.+?)\\}#ies","retlang('\\1')", $this->copy_template );


		}

3. заменяем в шаблонах фразы например на переменные типа {lang=phrasemain} [например {lang=phrasemain} вместо "Главная" {lang=phraserules} вместо "Правила сайта"]

4. в файлы языков (website.lng) в массив $lang добавляем строчки (например после 'wysiwyg_language' => "ru",) для нашего примера

'phrasemain'=>"Главная",

'phraserules'=>"Правила сайта",

Пункты 3,4 повторяем от забора и до обеда

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

Изменено пользователем CyberMama
Ссылка на сообщение
Поделиться на других сайтах

Нет не у кого скрипта переключения языка? К примеру русcкая версия www.site.ru/company.html, нажимаешь на ссылку и попадаешь на en.site.ru/company.html или www.site.ru/en/company.html.

Или может кто подскажет, как такое реализовать?

Изменено пользователем Sokali
Ссылка на сообщение
Поделиться на других сайтах

ИМХО если человек зашел на сайт с русским языком , увидел кнопку EN, то ему не нужен уже русский сайт.

А иначе зачем, изучать языки, сравнивая новости на 2 языках?

Ссылка на сообщение
Поделиться на других сайтах

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

ИМХО если человек зашел на сайт с русским языком , увидел кнопку EN, то ему не нужен уже русский сайт.

А иначе зачем, изучать языки, сравнивая новости на 2 языках?

Полностью согласен, но бывают случаи, когда необходимо такое переключение.

Один из вариантов решения вопроса подобной многоязычности

1. Создаем домен 3 уровня, вида eng.site.ru

2. Разворачиваем англоязычный сайт

3. Пользуемся советом и объединяем авторизацию

4. Создаем статические страницы, разделы, новости абсолютно индентичные site.ru (русской версии)

5. Создаем в директории site.ru engine/modules/ файд lang_eng.php, с кодом


<?php

echo "http://eng.site.ru".$_SERVER['REQUEST_URI'];

?>

6. Добавляем в файл шаблона main.tpl ссылку на англоязычную версию сайта, вида
<a href="{include file="engine/modules/lang.php"}">English</a>
Повторяем шаг 5,6 для сайта eng.site.ru, но уже создавая ссылку на русскую версию. Дополнительно можно связать админки добавив соотвествующие ссылки в них. Для этого в файле engine/skins/default.skin.php можно добавить после
<div class="navigation">
строчку вида
<img style="vertical-align: middle;border: none;" src="engine/skins/images/p1.gif" width="25" height="8" border="0"><a href="http://eng.site.ru/admin.php" class=navigation>English</a>
Аналогично для второго сайта При использование данного метода может возникнуть проблема, что в случае если названия некоторых страниц отличаются, то будет возникать 404 ошибка. Здесь можно предложить, создать полноценную страницу для ошибки 404, либо делать редирект на главную в случае её возникновения. У данного варианта безусловно есть свои минусы и неудобства, но лучшего способа пока не придумал. Что же касается возможности перключения без домена третьего уровня, к примеру, путем создания папки eng, решение есть, в файл lang_eng.php надо вставить код
<?php echo "http://".$_SERVER['SERVER_NAME']."/eng/".$_SERVER['REQUEST_URI']; ?>

Но в здесь может возникнуть множество проблем с ЧПУ.

Ссылка на сообщение
Поделиться на других сайтах
  • 4 месяца спустя...

n0lik, а как вы перевели системные вещи, например, календарь или сообщения движка?

Изменено пользователем NtX
Ссылка на сообщение
Поделиться на других сайтах

Столкнулся с такой ситуацией.

Сделаны 2 шаблона - RU и EN и по описанный выше методике сделал переключение скинов на сайте с привязкой к каждому шаблону своего языка.

Далее сделаны две структуры категорий:

Главная (main_ru)

-- Новости (news_ru)

-- Прочее (others_ru)

Main (main_en)

-- News (news_en)

-- Others (others_en)

Каждой категории указано с каким шаблоном использоваться.

Теперь самое интересное. Заполняем новости.

Если выводим /main_ru то получаем то, что лежит в, так скажем, русской структуре.

Если выводим /main_en то получаем то, что лежит в, так скажем, английской структуре.

Но если я просто наберу адрес сайта, то на главной он радостно вываливает весь контент в независимости от установленного шаблона! Вопрос - как сделать фильтрацию? Ведь за вывод главной отвечает {content} и с ним я поиграться никак не могу.

Ссылка на сообщение
Поделиться на других сайтах

Как вариант, определять язык браузера через HTTP_ACCEPT_LANGUAGE и исходя из этого делать редирект на /main_ru либо на /main_en.

Ссылка на сообщение
Поделиться на других сайтах
  • 1 год спустя...

Celsoft

Например на англоязычном сайте мы меняем префикс пользователей чтобы было единая регистрация define ("USERPREFIX", "dle"); а такое можно сделать и с комметариями, чтобы придобавлении комментов на обе сайта они добавились?

Ссылка на сообщение
Поделиться на других сайтах

а такое можно сделать и с комметариями, чтобы придобавлении комментов на обе сайта они добавились?

нет нельзя.

Ссылка на сообщение
Поделиться на других сайтах

А есть решение?

Конечно, это написать персональную модификацию скрипта на своем сайте. Я не пишу модификаций скрипта на заказ, поэтому в данном вопросе ничем вам к сожалению помочь не могу.

Ссылка на сообщение
Поделиться на других сайтах
  • 1 год спустя...

Тут ещё в начале этой темы был вопрос: зачем вообще делать эту "заморочку" с двумя движками, двумя шаблонами, почему нельзя сделать два отдельных сайта с единой регистрацией для пользователей?..

Вот у меня - развлекательный сайт по флеш-играм.

В кажой новости - идёт картинка и файл флеш-игры. Если я буду одну и ту же игру заливать на два сайта - это довольно ощутимо займёт место на хостинге. Поэтому мне не подходит второй вариант, написанный Целсофтом.

Я даже решил проблему русских тайтлов и ключевых слов в английской версии сайта.

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

Ссылка на сообщение
Поделиться на других сайтах
  • 3 месяца спустя...

Я даже решил проблему русских тайтлов и ключевых слов в английской версии сайта.

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

Что мешает немного доработать движок?

Там все интуитивно понятно.

Изменено пользователем MozgFx
Ссылка на сообщение
Поделиться на других сайтах
  • 2 месяца спустя...

Здраствуйте. Я новичок и хочу знать можно ли на DLE создать сайт с тремя языками (русский, английский, армянский).?

Просто хочу знать можно ли и как.?

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...