Open main menu
English · کوردی · čeština · Zazaki · español · فارسی · suomi · עברית · italiano · 日本語 · Bahasa Melayu · Nederlands · português · русский · Soomaaliga · Türkçe · українська
Шаблон Template:Stub, в котором не выбран язык.
Шаблон Template:Stub, в котором выбраны два языка - английский и французский.

Выбор языка позволяет участникам прятать иностранные языки на многоязычных страницах. Например, это позволяет французским читателям видеть только французский текст на таких страницах (хотя они будут видеть испанский текст на страницах только на испанском языке).

Справа на двух снимках экрана показаны два варианта размещения шаблона "Template:Stub": без выбора языка и с выбором английского и французского языков, использую метод CSS.

Принцип работыEdit

Существуют два рабочих метода выбора языка. Подготовка страницы для этого одинакова для обоих. Старый метод CSS позволяет выбирать несколько языков, что может быть полезно для полиглотов. Однако, он не может распознать случай, когда не выбран ни один язык, что в таких случаях приводит к полному отсутствию содержимого страницы. Новый метод JavaScript определяет язык браузера автоматически (можно настроить метод и так, чтобы он игнорировал настройки браузера) и не делает ничего, если не выбран ни один язык. Однако, он может показывать только один язык в одно и то же время.

Определение многоязычных страницEdit

Чтобы сделать страницу многоязычной, можно поставить на нее ссылку на эту страницу, используя шаблон {{multilingual}}. Не было дискуссий о том, какой логотип нужно использовать для этой цели. В данный момент используется изображение Localisation2.svg.

Предложенные изображения

Разделение языков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;}

JavaScriptEdit

Метод JavaScript включается по умолчанию в МетаВики. Его можно выключить, добавив строку ниже в ваш файл скрипта:

ls_enable = false;

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

Afrikaans: Hierdie teks is in Afrikaans.
Boarisch: Des is a boarischa Text.
Български: Този текст е на български език.
Brezhoneg : Brezhoneg eo an destenn-mañ.
Català : Aquest text és en català.
Dansk: Denne tekst er på dansk.
Deutsch: Dieser Text ist Deutsch.
Ελληνικά: Αυτό το κείμενο είναι στα Ελληνικά
English: This text is English.
Esperanto: Ĉi tiu teksto estas en Esperanto.
Español : Ese texto está en español.
Eesti: See tekst on eesti keeles.
العربية: هذا النّص عربي.
فارسی: این متن فارسی است.
Suomi: Tämä teksti on suomeksi.
Français : Ce texte est Français.
Frysk: Dizze tekst is yn it Frysk.
Galego: Este texto está en galego.
עברית: הטקסט הזה בעברית.
Hrvatski: Ovaj tekst je na hrvatskom jeziku.
Interlingua: Iste texto es in interlingua.
Bahasa Indonesia: Ini adalah teks dalam bahasa Indonesia.
Italiano: Questo testo è in Italiano.
日本語: この文章は日本語です。
ქართული: ეს ტექსტი ქართულ ენაზეა.
한국어: 이 글은 한국어입니다.
ភាសាខ្មែរ៖ ឃ្លានេះជាភាសាខ្មែរ។
Latina: Haec nota Latine scriptus est.
Lietuvių: Šis tekstas yra lietuviškas
Magyar: Ez a szöveg magyarul van
Македонски: Ова е текст на македонски јазик.
Nederlands: Deze tekst is in het Nederlands.
Norsk: Denne teksten er på norsk.
Occitan : Aqueste tèxt es en Occitan.
Polski: Ten tekst jest po polsku.
Português : Este texto está em Português.
Русский: Этот текст — на русском языке.
Sardu: Custu testu est in Sardu.
Svenska: Denna text är på svenska.
தமிழ்: இது தமிழ் மொழி
Türkçe: Bu tekst Türkçe'dir.
ئۇيغۇرچە / Uyghurche: بۇلار ئۇيغۇرچە
中文: 这些文字是中文。 / 這些文字是中文。
Bahasa Melayu: Teks ini ditulis dalam Bahasa Melayu.

Когда вы вводите язык, используйте его код, а не полное название.

Код метода можно увидеть на Commons:MediaWiki:Multilingual description.js.

ИзмененияEdit

Код поддерживается в частном репозитории Субверсий (a private Subversion repository). Я все еще не смог связаться с разработчиками из МедиаВики, чтобы переместить код в репозиторий Викимедииа.

  • Версия 1999 — --DieBuche 10:34, 7 ноября 2010 (UTC)
    • Полностью переписана, чтобы сделать совместимость с RL (to make RL compatible).
    • Теперь используется только выпадающий список.
    • Работа над {{de}}, {{en}} и пр.
  • Версия 1358 — Edward Z. Yang(Talk) 15:36, 19 февраля 2007 (UTC)
    • В случае отсутствия куки, будут использованы глобальные переменные wgUserLanguage (If no cookie is present, code will sniff wgUserLanguage global variable).
    • Если выбор языка отсутствует, то куки удаляются и происходит переключение на автоматическое определение языка.
  • Версия 1133 — Edward Z. Yang(Talk) 22:33, 2 сентября 2006 (UTC)
    • Улучшено поведение варианта Show all: вместо перезаписи пользовательских куки, он только временно показывает все языковые строки. Можно вернуться обратно, нажав Select.
    • Переименовано Save в Select.
    • Надпись Select на кнопке теперь написана жирным шрифтом.
    • Вынесены языковые строки (Factored out language strings).

См. такжеEdit

СсылкиEdit