Новости перевода
Привет друзья!
В рамках помощи заграничным коллегам, страдающим от отсутствия информации о наших разработках, я перевёл (как смог) интерфейс нашего любимого сайта.
Кнопочка вверху справа переключает языки. Сделано это без контекстов, но лексиконами. При загрузке страницы проверяется переменная с языком в сессии и все служебные надписи на странице переключаются.
Большой плюс — нет новых контекстов и дублирования ресурсов. Минус — нельзя кэшировать эти записи. Насколько я вижу, каких-либо тормозов не прибавилось, так что проблемы нет.
Теперь вы можете смело приглашать иностранных друзей к нам в гости, тем более, что я не видел похожих сообществ за рубежом. Только официальный форум, личные блоги и чат в Slack — это всё немного не то.
По просьбам общественности, выкладываю плагин для переключения языка по ссылке, без контекстов:
Для работы своего произвольного лексикона site нужно создать новое пространство имён в админке и положить в него директорию lexicon с поддиректориями en и ru. Ну и туда обычные файлы с лексиконами и значениями.
Ссылки на переключение языка можно размещать на любой странице, например:
В рамках помощи заграничным коллегам, страдающим от отсутствия информации о наших разработках, я перевёл (как смог) интерфейс нашего любимого сайта.
Кнопочка вверху справа переключает языки. Сделано это без контекстов, но лексиконами. При загрузке страницы проверяется переменная с языком в сессии и все служебные надписи на странице переключаются.
Большой плюс — нет новых контекстов и дублирования ресурсов. Минус — нельзя кэшировать эти записи. Насколько я вижу, каких-либо тормозов не прибавилось, так что проблемы нет.
Теперь вы можете смело приглашать иностранных друзей к нам в гости, тем более, что я не видел похожих сообществ за рубежом. Только официальный форум, личные блоги и чат в Slack — это всё немного не то.
По просьбам общественности, выкладываю плагин для переключения языка по ссылке, без контекстов:
<?php
switch ($modx->event->name) {
case 'OnMODXInit':
// Указан конкретный язык, переключаем
if (!empty($_GET['lang'])) {
$lang = strtolower(trim($modx->stripTags($_GET['lang'])));
if (in_array($lang, array('en', 'ru'))) {
$_SESSION['language'] = $lang;
$modx->config['cultureKey'] = $lang;
}
// Убираем переменную из запроса и редиректим обратно
// Это чтобы не было ?lang= в адресе
$request = preg_replace("#(\?|\&)lang={$lang}#", '', $_SERVER['REQUEST_URI']);
$modx->sendRedirect($request);
}
// Или проверяем сессию
elseif (!empty($_SESSION['language'])) {
$modx->config['cultureKey'] = $_SESSION['language'];
}
// Или смотрим, поддерживается ли русский браузером
else {
$modx->config['cultureKey'] = preg_match('#\bru\b#i', $_SERVER['HTTP_ACCEPT_LANGUAGE'])
? 'ru'
: 'en';
}
// Загружаем свой специальный лексикон с произвольными записями
$modx->lexicon->load('site:default');
break;
}
Для работы своего произвольного лексикона site нужно создать новое пространство имён в админке и положить в него директорию lexicon с поддиректориями en и ru. Ну и туда обычные файлы с лексиконами и значениями.
Ссылки на переключение языка можно размещать на любой странице, например:
Комментарии: 42
Отличная новость! Спасибо.
Пару багрепортов:
— В разделе «Пользователи» перестала грузиться статистика сайта: yadi.sk/i/w8iOpXxUiiwq5
— Не переведен placeholder «Поиск на сайте»: yadi.sk/i/sLpmZEkjiiwrr
— Блок «Здесь упомянуты»: yadi.sk/i/e2MYU85Liix4h
UPDATE: Все поправлено.
Пару багрепортов:
UPDATE: Все поправлено.
Да иногда, бывает, проскакивает. Разбираюсь где можно кэшировать плейсхолдеры, а где нет.
О, уведомление пришло: yadi.sk/i/O6Je45v5iixyA :)
Язык письма зависит от отправителя, а не получателя, поэтому все письма будут на одном языке — русском.
Темы писем поправил.
Темы писем поправил.
еще вот тут modx.pro/help/6952/
<title>minishop2 sorting / Вопросы / Блоги / modx.pro</title>
при смене языка не переключает на английский
Василий а можете выложить или описать решение что реализовали для переключения языков без контекста.
Просто переменную смотрите в сессии?
Просто переменную смотрите в сессии?
Дополнил заметку.
спасибо!
Спасибо что поделился кодом плагина! Тоже хотел спросить про него!
Есть небольшое замечание: «работа» здесь правильнее перевести как «job». Work — это более общее понятие, а job как раз подразумевает оплачиваемую работу.
Дружище, Work это рабочее место, а job это работа
А у всех переключается? У меня как переключилось на английский, так на русский больше не меняется, сколько на значек в правом углу ни кликай.
Значек всегда показывает Русский (именно на русском, наверное стоит перевести — Russian) Ну и раз уж пошла такая пьянка стоит кнопку добавить, чтобы в гугл перевод загонялся сайт при необходимости. Иначе иностранцам сложно будет, если только для них свой раздел не создать.
Значек всегда показывает Русский (именно на русском, наверное стоит перевести — Russian) Ну и раз уж пошла такая пьянка стоит кнопку добавить, чтобы в гугл перевод загонялся сайт при необходимости. Иначе иностранцам сложно будет, если только для них свой раздел не создать.
Вроде больше никто не жаловался, всё переключается. Проверь из анонимного режима.
Значок, как раз, переводить не принято — ибо это единственное понятное слово для человека в незнакомом интерфейсе. Типа зашел на русский сайт и непонятно вообще ничего — увидел English и нажал.
Ну и наоборот также.
Значок, как раз, переводить не принято — ибо это единственное понятное слово для человека в незнакомом интерфейсе. Типа зашел на русский сайт и непонятно вообще ничего — увидел English и нажал.
Ну и наоборот также.
Попробовал не авторизованным, тоже не преключается. В эксплорере попробовал — тоже сразу на английском меню. При клике на значек Русский видно, что перерисовывается страница, обновляются комметарии, но язык не меняется. Ошибок в консоли не видно.
Ну да ладно, может у меня какой-то глюк, если больше ни у кого не проявляется. В принципе не критично))
Ну да ладно, может у меня какой-то глюк, если больше ни у кого не проявляется. В принципе не критично))
Судя по коду плагина, который я привёл выше, у тебя не работает сессия и браузер не отдаёт HTTP_ACCEPT_LANGUAGE.
Теряюсь в догадках, как такое может быть. Посмотрим, может еще у кого такое встретим и сможем понять, как так?
Теряюсь в догадках, как такое может быть. Посмотрим, может еще у кого такое встретим и сможем понять, как так?
Могу ошибаться, но вот тут может быть проблема:
if (!empty($_GET['lang'])) {
$lang = strtolower(trim($modx->stripTags($_GET['lang'])));
if ($lang == 'en') {
// И сохраняем в сессию
$_SESSION['language'] = $lang;
$modx->config['cultureKey'] = $lang;
}
else {
unset($_SESSION['language']);
}
// Убираем переменную из запроса и редиректим обратно
// Это чтобы не было ?lang= в адресе
$request = preg_replace("#(\?|\&)lang={$lang}#", '', $_SERVER['REQUEST_URI']);
$modx->sendRedirect($request);
}
Сейчас логика такая, что только если в в гет 'en' то в сессию сохраняется язык. Это сработает, когда на английский переключаюсь, но когда хочу переключиться на русский в гет будет $lang == 'ru' и выполняется unset($_SESSION['language']); т.е. возвращаемся к базовому языку, который отдает мой браузер. А у меня по дефолту английский, вот и не могу переключиться на русский.
if (!empty($_GET['lang'])) {
$lang = strtolower(trim($modx->stripTags($_GET['lang'])));
if ($lang == 'en') {
// И сохраняем в сессию
$_SESSION['language'] = $lang;
$modx->config['cultureKey'] = $lang;
}
else {
unset($_SESSION['language']);
}
// Убираем переменную из запроса и редиректим обратно
// Это чтобы не было ?lang= в адресе
$request = preg_replace("#(\?|\&)lang={$lang}#", '', $_SERVER['REQUEST_URI']);
$modx->sendRedirect($request);
}
Сейчас логика такая, что только если в в гет 'en' то в сессию сохраняется язык. Это сработает, когда на английский переключаюсь, но когда хочу переключиться на русский в гет будет $lang == 'ru' и выполняется unset($_SESSION['language']); т.е. возвращаемся к базовому языку, который отдает мой браузер. А у меня по дефолту английский, вот и не могу переключиться на русский.
Да, ты прав, поменял это место.
Проверяй!
Проверяй!
как часы! спасибо))
Тебе спасибо =)
Небольшая бажка. При подписке на Тикет, пишет, что я не буду получать обновлений больше. Если ещё разок кликнуть, то просто ключ массива выкидывает.
file.modx.pro/files/d/8/3/d83d183beaf838da6cf2038117fffdd3.png
file.modx.pro/files/d/8/3/d83d183beaf838da6cf2038117fffdd3.png
Поправил, спасибо!
Только официальный форум, личные блоги и чат в Slack
Василий, на modx.today есть раздел modx.today/submit, где предлагают добавлять статьи.
Все новые расширения, и твои тоже, регулярно анонсируются там короткими заметками. Вероятно, подробностям об mxManager и pdoTools + феном там были бы рады.
Я про сообщества, типа нашего, где можно задать вопрос и получить ответ.
Вообще, видимо из-за повсеместного использования Quip на западных сайтах, с комментариями к заметкам там не густо — даже не modx.com при анонсах новых версий. У нас и то больше.
А на modx.today одну заметку для проверки я уже отправил пару дней назад, пока жду реакции.
Вообще, видимо из-за повсеместного использования Quip на западных сайтах, с комментариями к заметкам там не густо — даже не modx.com при анонсах новых версий. У нас и то больше.
А на modx.today одну заметку для проверки я уже отправил пару дней назад, пока жду реакции.
Я туда почти 2 месяца назад заметку отправил :) Тоже жду )
О как!
Стало быть, можно уже и не ждать.
Стало быть, можно уже и не ждать.
Ну у меня там заметка о Gitify и Марк написал, мол типа нужно сначала вводную по Gitify закончить, а уже потом твою публиковать. Только он вводную так и не закончил пока. Придется видимо свою заметку дописать и перевести.
А вот, уже опубликовали modx.today/posts/2015/09/introducing-mxmanager-an-ios-app-for-modx?pk_campaign=rssfeed&pk_kwd=post Так что, как говорится, с почином! :)
Причем уже куча комментов почти месячной давности :)
Да, они (комменты) явно не от той страницы) Странное дело.
Может добавить ветку для англоговорящих людей?
Как только (если) они здесь появятся, и начнут англоговорить — добавим им свой отдельный блог.
Но пока никого нет.
Но пока никого нет.
Ок! Оставить бы им послание, что мы их рады видеть у себя)))
joxi.ru/VrwQ47RHPZ912X — на английском не переведены эти моменты ещё…
Спасибо, поправил!
Внутри поста.
скрин
скрин
Не пинайте новичка… Как пользоваться?
Создал каталог с файлом
как его в шаблоне прикрутить?
например в титле:
Создал каталог с файлом
http://site/lang/lexicon/en/en.php
в нем:<?php
$lang['welcome']="Welcome in english from lexicon";
//======================как его в шаблоне прикрутить?
например в титле:
<title>[??welcome??вот тут что писать?]</title>
Зашел с браузера, где по умолчаниею стоит английский (и в винде тоже). Смотрю, а мне английский интерфейс показывается. Каким образом язык налету переключается?
У вас как это сделано?
У вас как это сделано?
В коде
// Или смотрим, поддерживается ли русский браузером
Сайт уже некоторое время на двух языках — за это время поисковики его хорошо рассмотрели.
Возник вопрос по поводу отслеживания поисковиками язычности сайта. Поисковики видят что на сайте 2 языка, или индексируют только один?
Если да, то где это настроить? В robots.txt? В панели вебмастера на Яндексе?
Возник вопрос по поводу отслеживания поисковиками язычности сайта. Поисковики видят что на сайте 2 языка, или индексируют только один?
Если да, то где это настроить? В robots.txt? В панели вебмастера на Яндексе?
Так и не нашел информации о том, как видят поисковики разные языковые версии по данной технологии.
Поэтому и интересно, как обстоят дела сейчас c этим у modx.pro и modhost.pro?
Поэтому и интересно, как обстоят дела сейчас c этим у modx.pro и modhost.pro?
Что мешает зайти в поисковики и посмотреть?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.