Meta:Language select/ru
Выбор языка позволяет участникам прятать иностранные языки на многоязычных страницах. Например, это позволяет французским читателям видеть только французский текст на таких страницах (хотя они будут видеть испанский текст на страницах только на испанском языке).
Справа на двух снимках экрана показаны два варианта размещения шаблона "Template:Stub": без выбора языка и с выбором английского и французского языков, использую метод CSS.
Принцип работы
editСуществуют два рабочих метода выбора языка. Подготовка страницы для этого одинакова для обоих. Старый метод CSS позволяет выбирать несколько языков, что может быть полезно для полиглотов. Однако, он не может распознать случай, когда не выбран ни один язык, что в таких случаях приводит к полному отсутствию содержимого страницы. Новый метод JavaScript определяет язык браузера автоматически (можно настроить метод и так, чтобы он игнорировал настройки браузера) и не делает ничего, если не выбран ни один язык. Однако, он может показывать только один язык в одно и то же время.
Определение многоязычных страниц
editЧтобы сделать страницу многоязычной, можно поставить на нее ссылку на эту страницу, используя шаблон {{multilingual}}. Не было дискуссий о том, какой логотип нужно использовать для этой цели. В данный момент используется изображение Localisation2.svg.
- Предложенные изображения
-
Предложение от Zscout370
-
Предложение от Pathoschild
-
Вариант "Глобус букв"
Разделение языков
editТехнические детали
editМногоязычные страницы содержат в себе таблицу CSS, в которой присутствует класс "multilingual" (A multilingual page is contained by the CSS class "multilingual"), с текстом на каждом языке в классах "lang-xx", где xx - двух- или трехбуквенный код ISO 639 в нижнем регистре, определяющий каждый язык. Если двухбуквенный код отсутствует, то используется трехбуквенный код. Если вы хотите вставить текст и не знаете код языка, то используйте код "und".
Пример на английском, арабском, старом английском, французском, латинском и окситанском языках:
<div class="multilingual"> <div class="lang-en" lang="en">This text is English.</div> <div class="lang-ar" lang="ar">هذا النّص عربي.</div> <div class="lang-ang" lang="ang">Þis wordu is Englisc.</div> <div class="lang-fr" lang="fr">Ce texte est Français.</div> <div class="lang-la" lang="la">Haec verba latina sunt.</div> <div class="lang-oc" lang="oc">Aqueste tèxt es en Occitan.</div> </div>
Шаблон
editШаблон {{ls}} упрощает использование выбора языка. Например, две строки ниже имеют одинаковый результат.
{{ls|en|This text is English.}} <div class="lang-en" lang="en">'''English:''' This text is English.</div>
Использование
editОба метода - CSS и Javascript - могут конфликтовать друг с другом, поэтому стоит использовать только один из них в одно и то же время.
Нижеприведенное описание считает, что используется оформление Monobook.
Каскадные таблицы стилей
editДобавьте нижеперечисленные строки в вашу таблицу стилей, отредактировав ее так, чтобы видеть только нужные вам языки:
/* hide all languages */ .multilingual { display:none; } /* unhide selected languages */ .multilingual .lang-en, .multilingual .lang-fr { display:block; }
Если вы используете браузер с хорошей поддержкой CSS (например, Mozilla Firefox или Opera), то вам следует использовать этот более правильный вариант:
.multilingual *[lang] {display:none;} .multilingual *[lang|=en], .multilingual *[lang|=fr] {display:block;}
JavaScript
editМетод JavaScript включается по умолчанию в МетаВики. Его можно выключить, добавив строку ниже в ваш файл скрипта:
ls_enable = false;
Ниже приводится пример работы метода. Если не выбран ни один язык, то будет показан весь текст.
Когда вы вводите язык, используйте его код, а не полное название.
Код метода можно увидеть на Commons:MediaWiki:Multilingual description.js.
Изменения
editКод поддерживается в частном репозитории Субверсий (a private Subversion repository). Я все еще не смог связаться с разработчиками из МедиаВики, чтобы переместить код в репозиторий Викимедииа.
- Версия 1999 — --DieBuche 10:34, 7 ноября 2010 (UTC)
- Версия 1358 — Edward Z. Yang(Talk) 15:36, 19 февраля 2007 (UTC)
- В случае отсутствия куки, будут использованы глобальные переменные
wgUserLanguage
(If no cookie is present, code will sniffwgUserLanguage
global variable). - Если выбор языка отсутствует, то куки удаляются и происходит переключение на автоматическое определение языка.
- В случае отсутствия куки, будут использованы глобальные переменные
- Версия 1133 — Edward Z. Yang(Talk) 22:33, 2 сентября 2006 (UTC)
- Улучшено поведение варианта Show all: вместо перезаписи пользовательских куки, он только временно показывает все языковые строки. Можно вернуться обратно, нажав Select.
- Переименовано Save в Select.
- Надпись Select на кнопке теперь написана жирным шрифтом.
- Вынесены языковые строки (Factored out language strings).