Jump to content
Toggle menu
  • 8 articles
  • 75 files
  • 7 users
  • 37.8K edits
Neodyland Wiki
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Template:LangSwitch/doc: Difference between revisions

Template page
mNo edit summary
duplicate argument
 
(115 intermediate revisions by 28 users not shown)
Line 1: Line 1:
{{Lua|Module:LangSwitch}}
{{Used in system}}
{{TemplateBox
{{TemplateBox
|name=LangSwitch
|name=LangSwitch{{{sandbox|}}}
|desc=
 
{{LangSwitch
|desc-de=Bietet eine Methode zur Anzeige einer Textzeichenfolge, die aus einer Auswahl von Übersetzungen in verschiedenen Sprachen ausgewählt wurde, in der Sprache, die in den Benutzereinstellungen des Benutzers/in festgelegt ist, oder in der am besten geeigneten Ausweichsprache.
|en=Provides a method to present a string of text selected from an array of many language translations in the language set in the user's preferences or the most appropiate fallback language (as determined by {{tl|GetFallback}}).
|desc-en=Provides a method to present a string of text selected from an array of many language translations in the language set in the user's preferences or the most appropriate fallback language.
|fr=Permet de présenter un texte dans la langue de l’utilisateur, en sélectionnant depuis un ensemble de versions en différentes langues. La langue choisie est soit celle définie dans les préférences de l'utilisateur, soit la plus appropriée déterminée par {{tl|GetFallback}}.
|desc-fr=Permet de présenter un texte dans la langue de l’utilisateur, en sélectionnant depuis un ensemble de versions en différentes langues. La langue choisie est soit celle définie dans les préférences de l’utilisateur, soit la plus appropriée (déterminée par GetFallback).
|mk=Од разните постоечки преводи, го дава преводот на јазикот одбран во нагодувањата, или пак најсоодветниот резервен јазик (според утврденото во {{tl|GetFallback}}).
|desc-ja=翻訳されている多くの言語の中から、適切な言語でテキスト文字を表示する機能を提供します。その適切な言語とは、ユーザの好みに応じて言語セットで選択された言語、あるいは、(GetFallbackで定義される)自動システムで一番最適と思われる言語です。
}}
|desc-mk=Од разните постоечки преводи, го дава преводот на јазикот одбран во нагодувањата, или пак најсоодветниот резервен јазик (според утврденото во GetFallback).
|desc-zh=从已翻译的多语言文本组中输出以特定语言的文本。显示语言为用户设置语言,或是由GetFallback定义的后备语言。


|1=xx
|1=en
|1d=
|1label=English
{{LangSwitch
|1label-de=Englisch
|en=''xx'' can be any number of any supported language codes.
|1d-de=Text in englischer Sprache. Sofern nicht die Option „default=” verwendet wird, wird dieser Text standardmäßig auch dann zurückgegeben, wenn keine der angegebenen Sprachen mit der in der optionalen Option „lang=” Auswahl übereinstimmt (oder mit der in den Benutzereinstellungen ausgewählten Sprache, wenn diese Option nicht angegeben ist). Wenn Sie keinen Text anzeigen möchten, wenn die Sprache des Benutzers Englisch ist, verwenden Sie „en=~”.
|fr=''xx'' peut être tout code de lange, autant de fois que nécessaire.
|1d-en=Text in the English language. Unless the “default=” option is used, this text will also be returned by default if none of the languages provided match the language selected in the optional “lang=” option (or the language selected in the user's preferences, if that last option is not specified). If you do not want to show any text when the user's language is English, then use “en=~”.
|mk=''xx'' може да бидат било кои поддржани јазици.
|1d-fr=Le texte en anglais. À moins que l’option « default= » soit utilisée, ce texte sera également retournée si aucune des langues fournies ne correspond à la langue sélectionnée dans l’option facultative « lang= » (ou à la langue sélectionnée dans les préférences de l’utilisateur, si cette dernière option n’est pas indiquée). Si vous ne souhaitez retourner aucun texte lorsque la langue sélectionnée est l’anglais, utilisez « en=~ ».
}}
|1d-ja=英語言語の文字。下記の“デフォルト”オプションを設定していない場合で、ユーザが選択した言語セットに該当する翻訳がない場合、この英語テキストが通常使われます。もしユーザの使用言語が英語で何も文字を表示させたくない場合、「en=~」と記述してください。「en」オプションのないLangSwitchテンプレートはカテゴリCategory:LangSwitch template without default versionに自動的に追加されます。
|1def=
|1d-zh=英文文本。除非通过“default”设置默认显示语言,否则将在用户偏好语言的翻译文本缺失的情况下显示英文文本。如果不想在用户使用英语时显示任何文本,请指定“en=~”。
{{LangSwitch
|1stat=required
|en=string in language ''xx''
|1type=string
|fr=texte dans la langue de code ''xx''
|mk=текст на јазикот ''xx''
}}


|2=lang
|2=xx
|2d=
|2label=Translation
{{LangSwitch
|2label-de=Übersetzung
|en=language code (only needs to be provided if the language shall be fixed and independant from the user's preferences).
|2d-de=Text übersetzt in die Sprache mit dem Code „xx“ (der Parametername „xx“ kann jeder unterstützter Sprachcode sein, der den Standards BCP 47 oder ISO 639-1 entspricht). Verwende „xx=~“, wenn du keinen Text (auch nicht den Standardtext) in dieser bestimmten Sprache haben möchtest. Du kannst auch mehrere Sprachen demselben Text zuordnen, indem du „<nowiki>{{LangSwitch |xx/yy/zz=text }}</nowiki>“ verwendest, was „<nowiki>{{LangSwitch |xx=text |yy=text |zz=text }}</nowiki>“ entspricht. Du kannst für jede übersetzte Sprache so viele Parameter wie nötig angeben.
|fr=code de langue (ne doit être indiqué que si la langue doit être fixée et indépendantes des préférences de l'utilisateur).
|2d-en=Text translated in language with code “xx” (the parameter name “xx” can be any supported language code, conforming to the BCP 47 or ISO 639-1 standards). Use “xx=~” if you do not want any text (not even the default text) in this specific language. You may also map multiple languages to the same text by using “<nowiki>{{LangSwitch |xx/yy/zz=text }}</nowiki>”, which is equivalent to “<nowiki>{{LangSwitch |xx=text |yy=text |zz=text }}</nowiki>”. You can specify as many such parameters as needed for each translated language.
|mk=јазичен код (се става само ако со тоа јазикот е фиксен и независен од корисничките нагодувања).
|2d-fr=Le texte traduit dans la langue de code « xx » (le nom du paramètre « xx » peut être n’importe quel code langue pris en charge, conforme au standard BCP 47 ou à la norme ISO 639-1). Utilisez « xx=~ » si vous ne voulez aucun texte (ni même le texte par défaut) dans cette langue spécifique. Vous pouvez également faire correspondre plusieurs langues au même texte en utilisant « <nowiki>{{LangSwitch |xx/yy/zz=texte }}</nowiki> », ce qui est équivalent à « <nowiki>{{LangSwitch |xx=texte |yy=texte |zz=texte }}</nowiki> » . Vous pouvez indiquer autant de paramètres similaires que nécessaire pour chaque langue de traduction.
}}
|2d-ja=言語「xx」で翻訳された文字。 (パラメーター名「xx」は(BCP 47/ISO 639-1)なら何でも大丈夫で、翻訳する言語ごとにいくつでも指定可能です) もし特定の言語でメッセージを表示させたくない場合(あるいはデフォルト値として)、「xx=~」と記述してください。
|2def=value of <nowiki>{{int:Lang}}</nowiki>
|2d-mk=Текст на јазикот “xx”. “xx” може да бидат било кои поддржани јазици (BCP 47/ISO 639-1).
|2d-zh=“xx”语言的翻译文本,参数名“xx”可以是任何来自BCP 47或ISO 639-1的语言代码,可根据需要增加可能多的翻译语言。如果希望在某种特定语言中不显示任何信息(故意留空),请使用“xx=~”。可以使用“<nowiki>{{LangSwitch |xx/yy/zz=text }}</nowiki>”在多种语言中使用一个文本中,相当于“<nowiki>{{LangSwitch |xx=text |yy=text |zz=text }}</nowiki>”。
|2stat=optional
|2stat=optional
|2type=string
|3=default
|3label=Default fallback
|3label-de=Standard-Fallback
|3d-de=Standardtext, der angezeigt wird, wenn keine der mit den Optionen „xx=text“ angegebenen Sprachen mit der über die Option „lang=” ausgewählten Sprache übereinstimmt (oder mit der in den Präferenzen des Benutzers/in ausgewählten Sprache, wenn diese Option nicht angegeben ist); standardmäßig wird die englische Version (sofern im Parameter „en=text“ angegeben) angezeigt, andernfalls wird eine Fehlermeldung ausgegeben.
|3d-en=Default text to return in case none of the languages specified with the “xx=text” options match the language selected by the “lang=” option (or the language selected in user's preferences, if that option is not specified); by default, the English version (if provided in the “en=text” parameter) will be shown, otherwise a error message will be returned.
|3d-fr=Le texte par défaut à retourner au cas où aucune des langues indiquées par les options « xx=texte » ne correspond à la langue sélectionnée par l’option « lang= » (ou la langue sélectionnée dans les préférences de l’utilisateur, si cette option n’est pas indiquée) ; par défaut, la version anglaise (si elle est fournie dans le paramètre « en=texte ») sera affichée, sinon un message d’erreur sera retourné.
|3d-ja=デフォルト言語の文字。上記の「xx」言語の中にユーザが指定した言語が含まれていない場合に、このデフォルト・オプションを使います。通常はデフォルトとして英語(en)で表示されます。
|3def=<nowiki>{{{en|}}}</nowiki> (English version)
|3stat=suggested
|3type=string
|4=lang
|4label=Language code
|4label-de=Sprachcode
|4d={{Language-code-documentation}} Note that specifying “<nowiki>{{#if: {{{lang|}}} | {{{lang|}}} | {{Int:Lang}} }}</nowiki>” in this value is usually not necessary, unless one wants to override the default target language.
|4d-de={{Language-code-documentation}} Beachte, dass die Angabe von „<nowiki>{{#if: {{{lang|}}} | {{{lang|}}} | {{Int:Lang}} }}</nowiki>” in diesem Wert normalerweise nicht nötig ist, es sei denn, man will die Standardzielsprache überschreiben.
|4def-de=Wert von „<nowiki>{{Int:Lang}}</nowiki>“ (die bevorzugte Sprache von dir, der die Seite anschaut).
|4def-en=Value of “<nowiki>{{Int:Lang}}</nowiki>” (the preferred language of the visitor viewing the page).
|4def-fr=La valeur de « <nowiki>{{Int:Lang}}</nowiki> » (la langue préférée du visiteur visualisant la page).
|4def-ja=“<nowiki>{{Int:Lang}}</nowiki>”の値 (ページを閲覧しているビジターの使用言語)。
|4stat=optional-
|4type=string
|5=nocat
|5label=No category?
|5label-de=Keine Kategorie?
|5d-de=“nocat=1” überschreibt das Standardverhalten, das (auf der Kategorie-Seite „LangSwitch-Vorlage ohne Standardversion“) die falschen Verwendungen dieser Vorlage verfolgt, wenn keine der beiden Optionen „en=Text auf Englisch“ oder „default=Text standardmäßig“ mit einem nicht leeren Wert angegeben ist.
|5d-en=“nocat=1” will overwrite the default behavior which tracks (in the “LangSwitch template without default version” category page) the incorrect uses of this template, where none of the two options “en=text in English” or “default=text by default” is specified with a non-empty value.
|5d-fr=« nocat=1 » permet d’empêcher le comportement par défaut qui trace (dans la page de catégorie « LangSwitch template without default version ») les usages incorrects de modèle, où aucune des deux options « en=texte en anglais » ou « default=texte par défaut » n’est spécifiée avec une valeur non vide.
|5d-ja=言語オプションに「en」や「default」オプションがないページには自動的にカテゴリCategory:LangSwitch template without default versionに追加され、「nocat=1」はデフォルト動作を上書きします。
|5stat=optional-
|5type=string


|example=
|example=
|usage-notes=
|usage-notes={{LangSwitch
|de='''Warning:''' Diese Vorlage '''SOLLTE NICHT''' außerhalb von Software-Interface verwendet werden. Sie '''SOLLTE'' zum Beispiel '''NICHT''' dazu benutzt werden, mehrsprachige Beschreibungen von Medien, Kategorien oder so weiter zu verwalten.
|en='''Warning:''' This template '''SHOULD NOT''' be used out of software interface purpose. For example it '''SHOULD NOT''' be used to manage multilingual description of the subject of a media or a category or whatsoever.
|fr='''Attention:''' Ce modèle '''NE DEVRAIT PAS''' être utilisé en dehors de la traduction de l'interface logicielle. Par exemple il ne '''DEVRAIT PAS''' être utilisé pour gérer les descriptions multilingues du sujet d'un média ou d'une catégorie.
}}


{{LangSwitch
|seealso=
|en=Click one of the following links to see the action of the '''lang''' parameter in different languages when displaying this page (use this list also to get the most common language codes to use with this template):
* {{Tl|Autotranslate}} for template internationalization (i18n) mechanism for templates that use ''named'' parameters
|fr=Cliquez un des liens suivants pour voir l’action du paramètre '''lang''' dans des langues différentes lors de l’affichage de cette page (utilisez cette liste également pour connaître le code associé à une langue et à utiliser avec ce modèle) :
* {{Tl|Fallback}} and {{Tl|SuperFallback}}, based on {{Tl|GetFallback}} and {{Tl|GetFallback2}})
* {{Tl|Multilingual link}}
* [[:Category:Internationalization templates using LangSwitch]]
* {{Tl|Multilingual description}}, not using LangSwitch or any fallbacks, but generating vertical lists of translated texts or arbitrary length (without any English or default language requirement) in separate paragraphs; the rendered list is collapsible by a language selection menu at top of the rendered page (it is collapsed by default to show only the user's preferred or selected language, if it matches exactly).
* {{Tl|Translation table}}, not using LangSwitch or any fallbacks, but generating horizontal lists of translations (without any English or default language requirement); the rendered list is statically displaying ''all'' the provided languages, and this template is intended for translating just one term or short expression (otherwise the previous template should be used).
 
|setscats=[[:Category:Internationalization templates using LangSwitch]]
|type=
|namespace=
|usergroup=all
|i18n-method=-
|i18n-desc={{I18n templates}}
|print=multi
|relieson=[[Module:LangSwitch]]
|useTemplateData=only
}}
}}
<span dir="ltr"><!-- The following list is ordered by script type (RTL scripts at end), and native language name -->
 
<!-- Latin script -->
== Examples ==
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=af}} <span lang="af">{{#language:af}}</span> <small>(af)</small>] '''·'''}}
 
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=gsw}} <span lang="gsw">{{#language:gsw}}</span> <small>(gsw)</small>] '''·'''}}
=== Without a default option ===
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=ast}} <span lang="ast">{{#language:ast}}</span> <small>(ast)</small>] '''·'''}}
Here are a few examples showing template behavior for three languages: English, Italian and Corsican (which defaults to Italian if Corsican text is not available):
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=az}} <span lang="az">{{#language:az}}</span> <small>(az)</small>] '''·'''}}
 
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=id}} <span lang="id">{{#language:id}}</span> <small>(id)</small>] '''·'''}}
{|class="wikitable"
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=ms}} <span lang="ms">{{#language:ms}}</span> <small>(ms)</small>] '''·'''}}
|-
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=nan}} <span lang="nan">{{#language:nan}}</span> <small>(nan)</small>] '''·'''}}
!scope="col"| Test
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=jv}} <span lang="jv">{{#language:jv}}</span> <small>(jv)</small>] '''·'''}}
!scope="col"| Code
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=su}} <span lang="su">{{#language:su}}</span> <small>(su)</small>] '''·'''}}
!scope="col"| lang=en
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=br}} <span lang="br">{{#language:br}}</span> <small>(br)</small>] '''·'''}}
!scope="col"| lang=it
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=bs}} <span lang="bs">{{#language:bs}}</span> <small>(bs)</small>] '''·'''}}
!scope="col"| lang=co
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=ca}} <span lang="ca">{{#language:ca}}</span> <small>(ca)</small>] '''·'''}}
|-
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=cs}} <span lang="cs">{{#language:cs}}</span> <small>(cs)</small>] '''·'''}}
| No en; default
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=co}} <span lang="co">{{#language:co}}</span> <small>(co)</small>] '''·'''}}
| {{Tlx|LangSwitch{{{sandbox|}}}|it{{=}}Italian|default{{=}}default}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=cy}} <span lang="cy">{{#language:cy}}</span> <small>(cy)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|it=Italian|default=default|lang=en}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=da}} <span lang="da">{{#language:da}}</span> <small>(da)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|it=Italian|default=default|lang=it}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=de}} <span lang="de">{{#language:de}}</span> <small>(de)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|it=Italian|default=default|lang=co}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=nv}} <span lang="nv">{{#language:nv}}</span> <small>(nv)</small>] '''·'''}}
|-
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=et}} <span lang="et">{{#language:en}}</span> <small>(et)</small>] '''·'''}}
| No en; no default
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=en}} <span lang="en">{{#language:en}}</span> <small>(en)</small>] '''·'''}}
| {{Tlx|LangSwitch{{{sandbox|}}}|it{{=}}Italian|co{{=}}Corsu}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=eo}} <span lang="eo">{{#language:eo}}</span> <small>(eo)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|it=Italian|co=Corsu|lang=en|nocat=1}}<ref name="c">would add [[:Category:LangSwitch template without default version]]</ref>
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=es}} <span lang="es">{{#language:es}}</span> <small>(es)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|it=Italian|co=Corsu|lang=it|nocat=1}}<ref name="c"/>
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=eu}} <span lang="eu">{{#language:eu}}</span> <small>(eu)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|it=Italian|co=Corsu|lang=co|nocat=1}}<ref name="c"/>
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=ext}} <span lang="ext">{{#language:ext}}</span> <small>(ext)</small>] '''·'''}}
|-
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=fo}} <span lang="fo">{{#language:fo}}</span> <small>(fo)</small>] '''·'''}}
| en; default
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=fr}} <span lang="fr">{{#language:fr}}</span> <small>(fr)</small>] '''·'''}}
| {{Tlx|LangSwitch{{{sandbox|}}}|en{{=}}English|co{{=}}Corsu|default{{=}}default}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=ga}} <span lang="ga">{{#language:ga}}</span> <small>(ga)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|default=default|lang=en}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=gd}} <span lang="gd">{{#language:gd}}</span> <small>(gd)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|default=default|lang=it}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=gl}} <span lang="gl">{{#language:gl}}</span> <small>(gl)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|default=default|lang=co}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=hr}} <span lang="hr">{{#language:hr}}</span> <small>(hr)</small>] '''·'''}}
|-
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=it}} <span lang="it">{{#language:it}}</span> <small>(it)</small>] '''·'''}}
| en; no default
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=kw}} <span lang="kw">{{#language:kw}}</span> <small>(kw)</small>] '''·'''}}
| {{Tlx|LangSwitch{{{sandbox|}}}|en{{=}}English|co{{=}}Corsu}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=rw}} <span lang="rw">{{#language:rw}}</span> <small>(rw)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|lang=en}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=sw}} <span lang="sw">{{#language:sw}}</span> <small>(sw)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|lang=it}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=lt}} <span lang="la">{{#language:la}}</span> <small>(la)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|lang=co}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=lt}} <span lang="lt">{{#language:lt}}</span> <small>(lt)</small>] '''·'''}}
|-
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=lv}} <span lang="lv">{{#language:lv}}</span> <small>(lv)</small>] '''·'''}}
| en; skip default
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=hu}} <span lang="hu">{{#language:hu}}</span> <small>(hu)</small>] '''·'''}}
| {{Tlx|LangSwitch{{{sandbox|}}}|en{{=}}English|co{{=}}Corsu|default{{=}}~}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=fj}} <span lang="fj">{{#language:fj}}</span> <small>(fj)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|default=~|lang=en}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=nl}} <span lang="nl">{{#language:nl}}</span> <small>(nl)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|default=~|lang=it}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=nb}} <span lang="nb">{{#language:nb}}</span> <small>(nb)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|default=~|lang=co}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=nn}} <span lang="nn">{{#language:nn}}</span> <small>(nn)</small>] '''·'''}}
|-
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=oc}} <span lang="oc">{{#language:oc}}</span> <small>(oc)</small>] '''·'''}}
| en; empty default
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=om}} <span lang="om">{{#language:om}}</span> <small>(om)</small>] '''·'''}}
| {{Tlx|LangSwitch{{{sandbox|}}}|en{{=}}English|co{{=}}Corsu|default{{=}}}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=uz}} <span lang="uz">{{#language:uz}}</span> <small>(uz)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|default=|lang=en}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=pl}} <span lang="pl">{{#language:pl}}</span> <small>(pl)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|default=|lang=it}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=pt}} <span lang="pt-pt">{{#language:pt}}</span> <small>(pt)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|default=|lang=co}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=pt-br}} <span lang="pt-br">{{#language:pt-br}}</span> <small>(pt-br)</small>] '''·'''}}
|-
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=ro}} <span lang="ro">{{#language:ro}}</span> <small>(ro)</small>] '''·'''}}
| Skip en; default
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=rm}} <span lang="rm">{{#language:rm}}</span> <small>(rm)</small>] '''·'''}}
| {{Tlx|LangSwitch{{{sandbox|}}}|en{{=}}~|it{{=}}Italian|default{{=}}default}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=qu}} <span lang="qu">{{#language:qu}}</span> <small>(qu)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=~|it=Italian|default=default|lang=en}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=sq}} <span lang="sq">{{#language:sq}}</span> <small>(sq)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=~|it=Italian|default=default|lang=it}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=sk}} <span lang="sk">{{#language:sk}}</span> <small>(sk)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=~|it=Italian|default=default|lang=co}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=sl}} <span lang="sl">{{#language:sl}}</span> <small>(sl)</small>] '''·'''}}
|-
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=fi}} <span lang="fi">{{#language:fi}}</span> <small>(fi)</small>] '''·'''}}
| Skip en; no default
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=sv}} <span lang="sv">{{#language:sv}}</span> <small>(sv)</small>] '''·'''}}
| {{Tlx|LangSwitch{{{sandbox|}}}|en{{=}}~|it{{=}}Italian}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=tl}} <span lang="tl">{{#language:tl}}</span> <small>(tl)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=~|it=Italian|lang=en}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=vi}} <span lang="vi">{{#language:vi}}</span> <small>(vi)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=~|it=Italian|lang=it}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=tr}} <span lang="tr">{{#language:tr}}</span> <small>(tr)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=~|it=Italian|lang=co}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=tk}} <span lang="tk">{{#language:tk}}</span> <small>(tk)</small>] '''·'''}}
|-
<!-- Greek script -->
| Empty en; no default
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=el}} <span lang="el">{{#language:el}}</span> <small>(el)</small>] '''·'''}}
| {{Tlx|LangSwitch{{{sandbox|}}}|en{{=}}|it{{=}}Italian}}
<!-- Cyrillic script -->
| {{LangSwitch{{{sandbox|}}}|en=|it=Italian|lang=en}}<ref name="c"/>
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=be}} <span lang="be">{{#language:be}}</span> <small>(be)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=|it=Italian|lang=it}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=be-tarask}} <span lang="be-tarask">{{#language:be-tarask}}</span> <small>(be-tarask)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=|it=Italian|lang=co}}<ref name="c"/>
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=bg}} <span lang="bg">{{#language:bg}}</span> <small>(bg)</small>] '''·'''}}
|-
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=kk}} <span lang="kk">{{#language:kk}}</span> <small>(kk)</small>] '''·'''}}
| en; default; skip it
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=ky}} <span lang="ky">{{#language:ky}}</span> <small>(ky)</small>] '''·'''}}
| {{Tlx|LangSwitch{{{sandbox|}}}|en{{=}}English|it{{=}}~|co{{=}}Corsu|default{{=}}default}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=mk}} <span lang="mk">{{#language:mk}}</span> <small>(mk)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=English|it=~|co=Corsu|default=default|lang=en}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=mn}} <span lang="mn">{{#language:mn}}</span> <small>(mn)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=English|it=~|co=Corsu|default=default|lang=it}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=ru}} <span lang="ru">{{#language:ru}}</span> <small>(ru)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=English|it=~|co=Corsu|default=default|lang=co}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=sr}} <span lang="sr">{{#language:sr}}</span> <small>(sr)</small>] '''·'''}}
|-
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=uk}} <span lang="uk">{{#language:uk}}</span> <small>(uk)</small>] '''·'''}}
| en; default; empty it
<!-- Other simple alphabet script -->
| {{Tlx|LangSwitch{{{sandbox|}}}|en{{=}}English|it{{=}}|co{{=}}Corsu|default{{=}}default}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=hy}} <span lang="hy">{{#language:hy}}</span> <small>(hy)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=English|it=|co=Corsu|default=default|lang=en}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=ka}} <span lang="ka">{{#language:ka}}</span> <small>(ka)<small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=English|it=|co=Corsu|default=default|lang=it}}
<!-- Indian Brahmic scripts -->
| {{LangSwitch{{{sandbox|}}}|en=English|it=|co=Corsu|default=default|lang=co}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=bn}} <span lang="bn">{{#language:bn}}</span> <small>(bn)</small>] '''·'''}}
|-
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=gu}} <span lang="gu">{{#language:gu}}</span> <small>(gu)</small>] '''·'''}}
| en; no default; skip it
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=gj}} <span lang="gj">{{#language:gj}}</span> <small>(gj)</small>] '''·'''}}
| {{Tlx|LangSwitch{{{sandbox|}}}|en{{=}}English|it{{=}}~|co{{=}}Corsu}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=hi}} <span lang="hi">{{#language:hi}}</span> <small>(hi)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=English|it=~|co=Corsu|lang=en}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=ne}} <span lang="ne">{{#language:ne}}</span> <small>(ne)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=English|it=~|co=Corsu|lang=it}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=kn}} <span lang="kn">{{#language:kn}}</span> <small>(kn)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=English|it=~|co=Corsu|lang=co}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=ml}} <span lang="ml">{{#language:ml}}</span> <small>(ml)</small>] '''·'''}}
|-
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=pa}} <span lang="pa">{{#language:pa}}</span> <small>(pa)</small>] '''·'''}}
| Forced "lang=co"
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=ta}} <span lang="ta">{{#language:ta}}</span> <small>(ta)</small>] '''·'''}}
| {{Tlx|LangSwitch{{{sandbox|}}}|en{{=}}English|co{{=}}Corsu|default{{=}}default|lang{{=}}co}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=te}} <span lang="te">{{#language:te}}</span> <small>(te)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|default=default|lang=co}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=bo}} <span lang="bo">{{#language:bo}}</span> <small>(bo)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|default=default|lang=co}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=dz}} <span lang="dz">{{#language:dz}}</span> <small>(dz)</small>] '''·'''}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|default=default|lang=co}}
<!-- Other Brahmic scripts -->
|}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=si}} <span lang="si">{{#language:si}}</span> <small>(si)</small>] '''·'''}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=th}} <span lang="th">{{#language:th}}</span> <small>(th)</small>] '''·'''}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=km}} <span lang="km">{{#language:km}}</span> <small>(km)</small>] '''·'''}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=lo}} <span lang="lo">{{#language:lo}}</span> <small>(lo)</small>] '''·'''}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=bm}} <span lang="bm">{{#language:bm}}</span> <small>(bm)</small>] '''·'''}}
<!-- Other LTR syllabic scripts -->
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=am}} <span lang="am">{{#language:am}}</span> <small>(am)</small>] '''·'''}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=chr}} <span lang="chr">{{#language:chr}}</span> <small>(chr)</small>] '''·'''}}
<!-- Alphabetic+Sinographic scripts -->
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=ko}} <span lang="ko">{{#language:ko}}</span> <small>(ko)</small>] '''·'''}}
<!-- Syllabic+Sinographic scripts -->
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=ja}} <span lang="ja">{{#language:ja}}</span> <small>(ja)</small>] '''·'''}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=ii}} <span lang="ii">{{#language:ii}}</span> <small>(ii)</small>] '''·'''}}
<!-- Sinographic scripts -->
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=wuu}} <span lang="wuu">{{#language:wuu}}</span> <small>(wuu)</small>] '''·'''}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=yue}} <span lang="yue">{{#language:yue}}</span> <small>(wuu)</small>] '''·'''}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=zh-hans}} <span lang="zh-hans">{{#language:zh-hans}}</span> <small>(zh-hans)</small>] '''·'''}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=zh-hant}} <span lang="zh-hant">{{#language:zh-hant}}</span> <small>(zh-hant)</small>] '''·'''}}
<!-- Hebrew scripts -->
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=he}} <span lang="he" dir="rtl">{{#language:he}}</span> <small>(he)</small>] '''·'''}}
<!-- Arabic script -->
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=ar}} <span lang="ar" dir="rtl">{{#language:ar}}</span> <small>(ar)</small>] '''·'''}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=fa}} <span lang="fa" dir="rtl">{{#language:fa}}</span> <small>(fa)</small>] '''·'''}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=ps}} <span lang="ps" dir="rtl">{{#language:ps}}</span> <small>(ps)</small>] '''·'''}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=ur}} <span lang="ur" dir="rtl">{{#language:ur}}</span> <small>(ur)</small>] '''·'''}}
<!-- Other RTL scripts -->
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=dv}} <span lang="dv" dir="rtl">{{#language:dv}}</span> <small>(dv)</small>] '''·'''}}
{{nobr|1=[{{FULLURL:{{FULLPAGENAME}}|uselang=dv}} <span lang="dv" dir="rtl">{{#language:dv}}</span> <small>(dv)</small>] '''·'''}}
</span>
{{edit|Template:LangSwitch/doc}}
</span>


{{LangSwitch
{{LangSwitch
|en=Examples:
|en=<nowiki />
|fr=Exemples :
=== Default option ===
The default option is intended for providing more language independent option. For example:
|de=<nowiki />
=== Standardoption ===
Die Standardoption ist dafür gedacht, mehr sprachunabhängige Optionen zu bieten. Zum Beispiel:}}
<syntaxhighlight lang="wikitext" copy>
{{LangSwitch{{{sandbox|}}}
|de={{Wd|Warschau}}
|en={{W|Warsaw}}
|fr={{Wf|Varsovie}}
|ja={{W日|ワルシャワ}}
|pl={{WP|Warszawa}}
|ru={{Wr|Варшава}}
|default=[[d:Q270]]
}}
}}
<pre><nowiki>
</syntaxhighlight>
{{LangSwitch
{{LangSwitch
|de=Zeichenkette
|en=provides a link to Wikipedia articles in case one of the languages provided matches user's language but will link to Commons gallery page ([[Warsaw]]) if any other language is used.
|en=text string
 
|fr=chaîne de caractères
The expression <code><nowiki>{{W|Q270||d}}</nowiki></code> is equivalent to the shorter <code><nowiki>[[d:Q270]]</nowiki></code> (it just does not show the “d:”).
|mk=низа од текст
|de=bietet einen Link zu Wikipedia-Artikeln, falls eine der angebotenen Sprachen mit der Sprache des Benutzers übereinstimmt, verlinkt aber auf die Commons-Galerie-Seite ([[Warsaw]]), wenn eine andere Sprache verwendet wird.
|zh=字串
 
Der Ausdruck <code><nowiki>{{W|Q270||d}}</nowiki></code> ist gleichbedeutend mit dem kürzeren <code><nowiki>[[d:Q270]]</nowiki></code> (nur das „d:” wird nicht angezeigt).
}}
}}
</nowiki></pre>


{{LangSwitch
=== Combination of multiple languages in the same option ===
|en=What it looks like in your browser:
“<code><nowiki>{{LangSwitch |de=Grün |es/it/pt=Verde |fr=Vert |en=Green |lang={{{lang|{{int:lang}}}}} }}</nowiki></code>” gives “{{LangSwitch |de=Grün |es/it/pt=Verde |fr=Vert |en=Green |lang={{{lang|{{int:lang}}}}} }}” for the language with code <kbd>{{{lang|{{int:lang}}}}}</kbd>.
|fr=Voici comment cela apparaît dans votre navigateur :
 
}}
Note that several language codes (separated by <code>/</code>) are combined in the same parameter name, when these languages are mapped to the same output text (this helps simplifying usages).
<blockquote style="border: 1px solid #AAAAAA;background:white;color:black;padding:0.3em">
{{LangSwitch
|de=Zeichenkette
|en=text string
|fr=chaîne de caractères
|mk=низа од текст
|zh=字串
}}
</blockquote>


{{LangSwitch
However this combination still does not work correctly for the language code <code>en</code> if there’s no parameter <code>default=</code> or <code>en=</code> specified separately (when this occurs, this template still returns a usage error message<ref name="c"/>).
|en=Examples using parameter '''lang''' to default to a specific language:
|fr=Exemples utilisant le paramètre '''lang''' pour sélectionner un langue spécifique par défaut :
}}
<pre><nowiki>
{{LangSwitch
|lang=de
|de=Zeichenkette nur auf Deutsch
}}
</nowiki></pre>


{{LangSwitch
=== Returning empty texts ===
|en=What it looks like in your browser:
* “<code><nowiki>red{{LangSwitch |en=~ |default=&amp;#32;({{I18n/red}}) }}</nowiki></code>”,
|fr=Voici comment cela apparaît dans votre navigateur :
* “<code><nowiki>bleu{{LangSwitch |fr=~ |default=&amp;#32;({{I18n/blue}}) }}</nowiki></code>”, and
}}
* “<code><nowiki>orange{{LangSwitch |en/fr=~ |default=&amp;#32;({{I18n/orange}}) }}</nowiki></code>
<blockquote style="border: 1px solid #AAAAAA;background:white;color:black;padding:0.3em">
are respectively and conditionally appending parenthesized translations of
{{LangSwitch
* the standard English term “red” in (when the current user language is ''not'' standard English, or simple English, or any language where standard English is a predefined fallback),
|lang=de
* the standard French term “bleu” (when the current user language is ''not'' standard French, or Cajun French, or any language where standard French is a predefined fallback), and
|de=Zeichenkette nur auf Deutsch
* the standard English or French term “orange” (when the current user language is ''not'' standard French or English, or any language where standard French or English is a predefined fallback):
}}
</blockquote>


<pre><nowiki>
{|class="wikitable"
{{LangSwitch
|-
|lang=en
|style="background:#A00;color:#FFF"| red{{LangSwitch |en=~ |default=&#32;({{I18n/red}}) }}
|en=text only in English
|style="background:#00A;color:#FFF"| bleu{{LangSwitch |fr=~ |default=&#32;({{I18n/blue}}) }}
}}
|style="background:#FA0;color:#FFF"| orange{{LangSwitch |fr=~ |default=&#32;({{I18n/blue}}) }}
</nowiki></pre>
|}


{{LangSwitch
|en=What it looks like in your browser:
|fr=Voici comment cela apparaît dans votre navigateur :
}}
<blockquote style="border: 1px solid #AAAAAA;background:white;color:black;padding:0.3em">
{{LangSwitch
|lang=en
|en=text only in English
}}
</blockquote>


|seealso={{tl|autotranslate}}
== Notes ==
|setscats=
<references/>
|type=localization
<includeonly>
|namespace=Template
[[Category:Internationalization templates]]
|usergroup=
</includeonly>
|i18n-method=LangSwitch
|i18n-desc=
|lines=multi
|shorthand=
|relieson={{tl|GetFallback}}, {{tl|GetFallback2}}
}}

Latest revision as of 16:40, 6 September 2025

Provides a method to present a string of text selected from an array of many language translations in the language set in the user's preferences or the most appropriate fallback language.

The template automatically sets the following categories: Category:Internationalization templates using LangSwitch

Usage

{{LangSwitch
 |en =
 |xx =
 |default =
}}

Warning: This template SHOULD NOT be used out of software interface purpose. For example it SHOULD NOT be used to manage multilingual description of the subject of a media or a category or whatsoever.

Template parameters

<templatedata>JSON</templatedata> ./. {{TemplateBox}}
TemplateData

TemplateData is a way to store information about template parameters (the description of those and of the whole template) for both humans and machines. It is used by VisualEditor and possibly other tools like Upload Wizard.


Existing template documentation
At Wikimedia Commons, it is recommended to use {{TemplateBox}} with either ‎useTemplateData=1 or ‎useTemplateData=only on the ‎/doc subpage and transcluding it with {{Documentation}} into the template. ‎<nowiki>-tags can be wrapped around the arguments, if required, to avoid templates being expanded.

Newly created template documentation and imports
Another option, especially for imported templates, or for users with JSON experience, is placing raw ‎<templatedata>-tags into the Wikitext of the template, as described in various Wikipediae.


Wikipedia's help about TemplateDataCommons-specific information

Provides a method to present a string of text selected from an array of many language translations in the language set in the user's preferences or the most appropriate fallback language.

Template parameters

This template prefers block formatting of parameters.

ParameterDescriptionTypeStatus
Default fallbackdefault

Default text to return in case none of the languages specified with the “xx=text” options match the language selected by the “lang=” option (or the language selected in user's preferences, if that option is not specified); by default, the English version (if provided in the “en=text” parameter) will be shown, otherwise a error message will be returned.

Default
{{{en|}}} (English version)
Stringsuggested
Englishen

Text in the English language. Unless the “default=” option is used, this text will also be returned by default if none of the languages provided match the language selected in the optional “lang=” option (or the language selected in the user's preferences, if that last option is not specified). If you do not want to show any text when the user's language is English, then use “en=~”.

Stringrequired
Language codelang

Language code (only needs to be provided if the language displayed is to be fixed and independent of the user’s preferences). Note that specifying “{{#if: {{{lang|}}} | {{{lang|}}} | {{Int:Lang}} }}” in this value is usually not necessary, unless one wants to override the default target language.

Default
Value of “{{Int:Lang}}” (the preferred language of the visitor viewing the page).
Stringoptional
No category?nocat

“nocat=1” will overwrite the default behavior which tracks (in the “LangSwitch template without default version” category page) the incorrect uses of this template, where none of the two options “en=text in English” or “default=text by default” is specified with a non-empty value.

Stringoptional
Translationxx

Text translated in language with code “xx” (the parameter name “xx” can be any supported language code, conforming to the BCP 47 or ISO 639-1 standards). Use “xx=~” if you do not want any text (not even the default text) in this specific language. You may also map multiple languages to the same text by using “{{LangSwitch |xx/yy/zz=text }}”, which is equivalent to “{{LangSwitch |xx=text |yy=text |zz=text }}”. You can specify as many such parameters as needed for each translated language.

Stringoptional

Additional information

The template is intended to be used in the following namespaces: no namespace specified

The template is intended to be used by the following user groups: all users

Relies on:
Module:LangSwitch

See also

  • {{Autotranslate}} for template internationalization (i18n) mechanism for templates that use named parameters
  • {{Fallback}} and {{SuperFallback}}, based on {{GetFallback}} and {{GetFallback2}})
  • {{Multilingual link}}
  • Category:Internationalization templates using LangSwitch
  • {{Multilingual description}}, not using LangSwitch or any fallbacks, but generating vertical lists of translated texts or arbitrary length (without any English or default language requirement) in separate paragraphs; the rendered list is collapsible by a language selection menu at top of the rendered page (it is collapsed by default to show only the user's preferred or selected language, if it matches exactly).
  • {{Translation table}}, not using LangSwitch or any fallbacks, but generating horizontal lists of translations (without any English or default language requirement); the rendered list is statically displaying all the provided languages, and this template is intended for translating just one term or short expression (otherwise the previous template should be used).

Localization

This template is not intended to be localized.

Help for choosing the right template for your use case:
I18n templates: {{Multilingual description|lang=
|de,en,default=Deutsch/​English
|fr=français
|...
}}
{{de|Deutsch}}
{{en|English}}
{{fr|français}}
...
{{LangSwitch|lang=
|de,en,default=Deutsch/​English
|fr=français
|...
}}
{{Autotranslate}} {{tnt}} Language-aware transclusion
Recommended use at Categories, galleries File description pages (deprecated, can be safely replaced by {{Multilingual description}}) Small templates, whenever the previous options are not suitable (removes the visual indication of the language before each translated text) Data tables with translated cells or larger templates, when used on pages that do not have language subpages (e.g. not having Main page/en, Main page/de) and where the language displayed will be automatically determined by the language set in user preferences Data tables with translated cells or larger templates, when used on pages that do have language subpages; most of the time these will be pages prepared with the Translate Extension Data tables with translated cells or larger templates, when used on pages that do have language subpages; the transcluded page needs to be prepared with the Translate Extension, the transcluding page needs to be either prepared with the Translate Extension, or have the page language set by a translation administrator
Requires JavaScript enabled for folding Yes No
Folding can be disabled by user Yes No
Folding is done server-side No Yes
Folding when at least n languages are provided 1 (all translations are shown without folding if the preferred language selected by the user has no matching translation) 4 1
Detection of duplicate, incorrect, or unsupported language codes Yes No Yes Duplicate language codes are impossible by design. Incorrect or unsupported codes are never displayed, but not reported. The Translate extension's interface (if it's used on the translation subpages) doesn't let the user create translations with invalid codes, but other methods (e.g. entering the translation's URL directly) allow it without any warning.
Allows the same translation to be used for several languages Yes No Yes
Supports language fallbacks No Yes No
Collation order of languages (when not folded) Consistent order by native language name, languages grouped by script:
  • LTR scripts: Latin, Latin or Cyrillic, Cyrillic, Greek, other simple LTR alphabets (Armenian, Georgian, etc.), abugidas (North Indian, South Indian, other South-East Asian, etc.), syllabaries (European, American, African, Asian), Korean alphabets (basic Jamos, Hangul including some sinograms), Japanese syllabaries (including some sinograms), sinograms (including some syllabaries)
  • RTL scripts: Hebrew, Arabic, other RTL abjads (Divehi, etc.), RTL syllabaries (N'ko)
As provided by the user in the wikitext (any inconsistent order may be difficult to lookup visually) N/A
Search indexing issues No (all translations are included on the same page, however search results may be less relevant with many languages mixed) Yes (may not index all languages depending on search engines, unless there's a list of links for visiting other languages) Partially (where used; language subpages of templates are indexed) No (translated pages should include a <languages/> navigation bar for visiting other languages)
Page size issues Yes (may exhaust size or time limits in the wiki parser if many languages are included; larger pages to download for all visitors; slower navigation for visitors with slow Internet access; may be costly for visitors with limited data plans) No (only the content for the selected language or a suitable fallback language is present in the generated page)
Contains expensive parser functions No Yes, checks for several translations along the fallback chain until finds a suitable Yes, 2–4 checks per call No

Examples

Without a default option

Here are a few examples showing template behavior for three languages: English, Italian and Corsican (which defaults to Italian if Corsican text is not available):

Test Code lang=en lang=it lang=co
No en; default {{LangSwitch|it=Italian|default=default}} default Italian Italian
No en; no default {{LangSwitch|it=Italian|co=Corsu}} LangSwitch Error: no default[1] LangSwitch Error: no default[1] LangSwitch Error: no default[1]
en; default {{LangSwitch|en=English|co=Corsu|default=default}} English default Corsu
en; no default {{LangSwitch|en=English|co=Corsu}} English English Corsu
en; skip default {{LangSwitch|en=English|co=Corsu|default=~}} English Corsu
en; empty default {{LangSwitch|en=English|co=Corsu|default=}} English English Corsu
Skip en; default {{LangSwitch|en=~|it=Italian|default=default}} Italian Italian
Skip en; no default {{LangSwitch|en=~|it=Italian}} Italian Italian
Empty en; no default {{LangSwitch|en=|it=Italian}} LangSwitch Error: no default[1] Italian LangSwitch Error: no default[1]
en; default; skip it {{LangSwitch|en=English|it=~|co=Corsu|default=default}} English Corsu
en; default; empty it {{LangSwitch|en=English|it=|co=Corsu|default=default}} English default Corsu
en; no default; skip it {{LangSwitch|en=English|it=~|co=Corsu}} English Corsu
Forced "lang=co" {{LangSwitch|en=English|co=Corsu|default=default|lang=co}} Corsu Corsu Corsu

Default option

The default option is intended for providing more language independent option. For example:

{{LangSwitch{{{sandbox|}}}
|de={{Wd|Warschau}}
|en={{W|Warsaw}}
|fr={{Wf|Varsovie}}
|ja={{W日|ワルシャワ}}
|pl={{WP|Warszawa}}
|ru={{Wr|Варшава}}
|default=[[d:Q270]]
}}

provides a link to Wikipedia articles in case one of the languages provided matches user's language but will link to Commons gallery page (Warsaw) if any other language is used.

The expression {{W|Q270||d}} is equivalent to the shorter [[d:Q270]] (it just does not show the “d:”).

Combination of multiple languages in the same option

{{LangSwitch |de=Grün |es/it/pt=Verde |fr=Vert |en=Green |lang={{{lang|{{int:lang}}}}} }}” gives “Green” for the language with code en.

Note that several language codes (separated by /) are combined in the same parameter name, when these languages are mapped to the same output text (this helps simplifying usages).

However this combination still does not work correctly for the language code en if there’s no parameter default= or en= specified separately (when this occurs, this template still returns a usage error message[1]).

Returning empty texts

  • red{{LangSwitch |en=~ |default=&#32;({{I18n/red}}) }}”,
  • bleu{{LangSwitch |fr=~ |default=&#32;({{I18n/blue}}) }}”, and
  • orange{{LangSwitch |en/fr=~ |default=&#32;({{I18n/orange}}) }}

are respectively and conditionally appending parenthesized translations of

  • the standard English term “red” in (when the current user language is not standard English, or simple English, or any language where standard English is a predefined fallback),
  • the standard French term “bleu” (when the current user language is not standard French, or Cajun French, or any language where standard French is a predefined fallback), and
  • the standard English or French term “orange” (when the current user language is not standard French or English, or any language where standard French or English is a predefined fallback):
red bleu (blue) orange (blue)


Notes

Cookies help us deliver our services. By using our services, you agree to our use of cookies.