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

Абсолютная (полная) мультиязычность DLE


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

Добрый день всем.

Сразу оговорюсь: я — полный чайник, сайты никогда в жизни не делал. А теперь вот приспичило..

Сайта пока нет. Нахожусь в стадии активного поиска наиболее подходящей cms для мультиязычного портала — тестирую разные демки, сравниваю, выбираю, отсеиваю...

На данный момент ДЛЕ в плане мультиязычности очень понравилась.

Что у меня вчера очень легко получилось реализовать:

- Перевод заголовков, краткой и полной новости через использование доп. полей непосредственно при написании статьи или после - через редактирование.

- Перевод статьи вида httр://site.xx/раздел/название-статьи.html автоматически появляется по адресу httр://site.xx/eng/раздел/название-статьи.html — то есть количество страниц на сайте автоматом увеличивается вдвое, а ссылка на переведенную статью имеет свой собственный осмысленный вид, а не тот же адрес через смену темплейта.

- В подразделе /eng/ действует правило английского языка: интерфейс, меню, служебные сообщения, все всплывающие подсказки и т.д. - всё меняет локализацию.

- Подразделы и прочее (как при отображении на сайте, так и выборе раздела во время создания статьи) имеют переведенный вид. То есть при написании статьи в случае смены пользователем языка на английский, вместо «Новости» предлагается «News». В русской версии новая статья появится в разделе «новости», в английской — в «news».

- С тайтлами разделов, описанием и ключевыми словами все тоже в порядке — локализованы.

То же самое и с группами пользователей и со всем остальным. Например группа одного и того же пользователя при смене языка выглядит как «Журналист» и «Journalist» соответственно.

Что у меня НЕ получается по незнанию и в чем я прошу совета у людей, хоть немного смыслящих в этой cms (или просто в программировании) :

- Повесить в шапке ссылку на английскую версию типа httр://site.xx/eng/ – мало. Портал будет интерактивный и наполняться пользователями (организациями). Если кто-то коряво или неполно перевел свой текст – должна быть возможность прочитать оригинал; а так же для удобства модераторов – чтобы не лезть для прочтения перевода в редактирование, если статья не предмодерируемая.

Как сделать взаимные ссылки между адресами сайт/раздел/статья и сайт/язык/раздел/статья , то есть чтобы из шапки страница переключалась на саму себя и на своего двойника?

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

Сейчас одни и те же комментарии постятся и туда, и туда. Страна – двуязычная; не хотелось бы как устраивать многоязыковую свалку на одной странице, так и лишать возможности комментирования статей по этой же причине.

- Проблема с переводом заголовков статей в “Топе” (популярных), “рекомендуемых” .. - в общем то, что выводят судя по всему встроенные модули. Календарь работает нормально – выводит на том языке, на который переключен в данный момент.

Отсюда – вопрос: можно ли это реализовать?

Упростим задачу минимум вдвое и поставим вопрос по-другому:

Не нужно реализовывать две языковые версии, нужно лишь в популярных и рекомендуемых подменить отображение названия статьи (title) на название из дополнительного поля (title_eng).

А как потом “заставить” отображать по своему усмотрению – решение есть.

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

На два недостатка – облако тегов на разных языках вперемешку и чпу на русском для английской статьи – наплевать. Одно не особо нужно и вообще можно убрать, а второе – оборотная сторона одинаковых адресов; одинаковость важнее.

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

Как сделать взаимные ссылки между адресами сайт/раздел/статья и сайт/язык/раздел/статья , то есть чтобы из шапки страница переключалась на саму себя и на своего двойника?

могу помочь только с этим пока, в админке смотрим ID категории eng например 3, лого будет сделан так:

<a href="[not-category=3]/index.php[/category][category=3]/eng/[/category]"><img src="logo.png"></a>

или еще проще:

<a href="/[category=3]eng/[/category]"><img src="logo.png"></a>

http://dle-news.ru/extras/online/index.html

Подробнее.

P.S.

По правилам, которые выше, нужно указать ссылку на сайт.

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

в админке смотрим ID категории eng например 3, лого будет сделан так:

<a href="[not-category=3]/index.php[/category][category=3]/eng/[/category]"><img src="logo.png"></a>

или еще проще:

<a href="/[category=3]eng/[/category]"><img src="logo.png"></a>

Не получается такими способами :( Перепробовал комбинации - получаются ссылки на главную или на подраздел, но их можно и прямо прописать.

Максимум что получилось - ссылка в шапке на эту же страницу, что открыта.

А так, чтобы добавлялось к ссылке или отнималось из ссылки "eng/" - никак :( Или я туплю?

P.S.

По правилам, которые выше, нужно указать ссылку на сайт.

Портал будет точно по адресу informer.ee

Только пока что от него только урл - самого сайта нет ни в сети, ни на локалке. Пока тупо тестирую разные cms в голом виде на предмет организации на них мультияза, юзабилити и всякого такого. Выбираю, короче.

ДЛЕ нравится; решить бы только вот эти три момента, и вопрос дальнейшего выбора наверное бы отпал.

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

Или я туплю?

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

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

В моем случае на сайте informer.ee будет подраздел вида informer.ee/rus

При создании новости пользователь заполняет ее одновременно на двух языках - эстонском и русском (через дополнительные поля).

Вновь созданная новость появляется, допустим, по адресу informer.ee/main/7-zagolovok-statyi.html

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

Вот разница в адресах:

informer.ee/main/7-zagolovok-statyi.html

informer.ee/rus/main/7-zagolovok-statyi.html

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

Нужна взаимная перелинковка через шапку сайта любой открытой на данный момент страницы со своим зеркалом на другом языке. Грубо говоря - смена языка без выброса на главную.

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

Эхх, с поиском - та же засада (чуть получше правда) :

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

В общем, основная проблема - научить модули одной из двух копий движка подменять заголовки и описания статей на аналоги из дополнительных полей. Или, что лучше - вообще сам движок чтоб подменял, а не модули. Везде, глобально сделал дополнительные поля основными.. Один движок - подменяет, другой - нет. И все нормально тогда.. ДолжОн же быть какой-то простой вариант. Без этого не мультисайт получится, а порнография - одноколоночное УГ; за такой и браться не буду, или надо искать лучше Анструмент...

Если в ДЛЕ это не решить - подскажите пожалуйста, если кто знает, что есть похожего на ДЛЕ в этом плане - интересует чтоб форма новости делалась на 2 языка сразу. Пасип! :(

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

Могу предложить вам установить 2 копии движка на главную + папку /rus/ написать модуль с одинаковыми юзерами и т.д. и все.

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

WebSet, так два движка и будет. Просто второй не на поддомене, а в папке основного движка, в чем не вижу никакой разницы, кроме, возможно, присвоения geo для поисковиков. С полностью общей базой. Его цели - создать зеркало /рус, чтобы смена темплейта и, соответственно, языка, давали другой адрес. Темплейты тоже лежат в разных двигах. При обычной смене шаблона ни пользователи не смогут ссылкой поделиться на правильную языковую страницу, ни яндексы прогуглить второй язык не смогут. Ну и еще чтобы локализовать названия разделов, групп пользователей и т.д.

Хотя для яндекса наверное можно было обойтись не вторым двигом, а третьим шаблоном, в который выводить все языки вперемешку и как-то заставить входить Гугл на сайт именно через этот шаб, а от пользователей его скрыть. Но это была бы полумера. К тому же многие в поисковиках вместо ссылки на сайт жмут "посмотреть кэш (сохраненную копию)".

А поддомены мне нужны будут для других целей - чтобы одни и те же сторонние модули запустить на сайте по несколько раз с разными настройками для разных нужд. Плюс ко всему это, как мне кажется, обезпасит "основной" движок от возможных дыр в модулях.

Недостаток - куча админок плюс общий вес большой. Но зайти в нужную админку с нужного раздела - не проблема. Тем более что базовое управление сайтом, пользователями и статьями будет доступно из любой из них.

Если схема слишком заморочиста и имеет критические недостатки - буду рад их услышать - опыта и знаний у меня нет..

А если, как предлагаешь, делать на поддомене независимую языковую версию с общей регистрацией/авторизацией, то тогда и DLE не нужен - есть более лакомые варианты. Чаво я и смотрю на ДатаЛайф - так именно из-за возможностей создавать полное зеркало и упростить юзерам постинг инфы на двух языках - всё в одной форме. Я ж не статический сайт собираюсь делать, который и наполнять сам буду: вся страна, двуязычная страна, организации, фирмы, общественные объединения.. - у всех свой доступ к созданию материалов, свои разделы, новости, афиши, каталоги, доски - жизнь.

И всю эту картинку портят пара досадных мелочей типа модули и поиск не могут вывести вместо заголовков их перевод из доп. поля :( Всю мечту разворотили

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

Barsik,

на счет поддомена я ошибся, имел ввиду папку, но роли не играет.

поиск - используйте гугл поиск на сайте и все

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

Barsik,

на счет поддомена я ошибся, имел ввиду папку, но роли не играет.

поиск - используйте гугл поиск на сайте и все

Да поиск -ладно. Главное, он криво отображает заголовки, но ищет-то правильно.

Поиск - только производная от основной проблемы. Основная суть - как вывести на главную страницу (в модуль) одного из движков популярные или новые статьи из подразделов таким образом, чтобы они заменялись с основного титла на титл_рус из доп. поля.

Главная страница должна быть информативной и именно показывать, что жизнь идет, сайт наполняется, что вон там-то появилось это. Но на нужном пользователю языке...

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

Barsik,

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

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

...сейчас посмотрел rss-ленты сайт/rss.xml и сайт/язык/rss.xml . Для стеба даже забил их в "Новости Партнеров" вместо Яндекса.

Ситуация в точности та же: rss-ленты разные. Заголовки и описания - на дефолтном языке и там, и там. А ссылки ведут в каждом случае на "правильный" язык ))) ой (((

Тут надо какое-то глобальное, но очень простое решение..

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

Barsik,

тег custom

http://dle-news.ru/extras/online/startnews.html?zoom_highlightsub=custom

а вот с rss эт да, проблема,

но я бы предложил сделать 2 разных сайта 1 на главной другой в папке, базы разные, только база пользователей одинакова, в таком случае, придется новости добавлять 2 раза, 1 раз через site/addnews.html а второй на русском site/rus/addnews.html зато проблем с языком не должно быть, НО, опять же писать разные хаки, которые бы объединили таблицы пользователей, к сожалению, полной мультиязычности стандартными средствами DLE, мне кажется, нет.

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

Два раза добавлять - не катит :( По многим причинам. Это должен быть один сайт, а не два с общей регистрацией.

Но...

ЭВРИКА!!!

Кажется, я знаю как всё сделать..

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

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

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

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

В общем, идея такова (прошу не бить камнями человека, абсолютно не разбирающегося в веб-программировании, если наивен) :

Создать в системе несколько дополнительных метатегов.

Они абсолютно одинаковы по функциям и ни чем кроме названия не должны отличаться. Просто клоны - не более. Кода много не добавят, места не займут, систему не нагрузят.

Для заголовка, для краткой новости, для полной, облака тегов и для комментария.

Выводится будут:

{title} = {title-2}

{short-story} = {short-story-2}

{full-story} = {full-story-2}

{editor} = {editor-2}

{tags} = {tags-2}

Если надо добавить второй язык - ставятся два движка с общей базой, в addnews.tpl клонируются все поля ввода обычным копипастом, к клонам дописывается "-2". Этот же файл подсовываем и в другой движок.

В одном из addcomments.tpl в {editor} дописываем "-2" - комментарии к этому языку теперь не должны попасть в другой язык.

Идем в шаблон второго движка и делаем соответствующие изменения в shortstory и fullstory.tpl (везде дописываем -2)

Ту же двойку дописываем в модули.

Это должно работать или фигня полная? Не бейте только..

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

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

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

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

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

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

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

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

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

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