Moduł techniczny do obsługi kodów językowych.

istnieje

[edytuj]

Funkcja sprawdzająca czy dla podanego kodu języka istnieje wpis w module danych z danymi opisowymi. Jeśli dane istnieją, to wynikiem jest podany kod języka, w przeciwnym razie funkcja zwraca pusty tekst.

parametry

[edytuj]
Pole Do czego służy? Jak wypełnić?
1 Kod języka Np. en lub pl.

przykłady

[edytuj]
wywołanie efekt
{{#if:{{#invoke:lang|istnieje|en}}|tak|nie}} tak
{{#if:{{#invoke:lang|istnieje}}|tak|nie}} nie
{{#if:{{#invoke:lang|istnieje|xxxx}}|tak|nie}} nie
{{#invoke:lang|istnieje|pl}} pl
{{#invoke:lang|istnieje|uuuu}}
{{#if:{{#invoke:lang|istnieje|}}|tak|nie}} nie
{{#if:{{#invoke:lang|istnieje}}|tak|nie}} nie
{{#ifeq:{{#invoke:lang|istnieje|en}}|en|tak|nie}} tak
{{#ifeq:{{#invoke:lang|istnieje|xxx}}|xxx|tak|nie}} nie
{{#ifeq:{{#invoke:lang|istnieje|}}||tak|nie}} tak

kursywa

[edytuj]

Funkcja zwracająca wikikod kursywy ('') jeśli język o podanym kodzie zapisywany jest łacińskim alfabetem. Wspiera ona działanie szablonu {{w języku}}.

parametry

[edytuj]
Pole Do czego służy? Jak wypełnić?
1 Kod języka Np. en lub ru.

przykłady

[edytuj]
wywołanie efekt
i{{#invoke:lang|kursywa|en}}i ii
i{{#invoke:lang|kursywa|ru}}i ii

hasło, skrót, mianownik, dopełniacz, miejscownik

[edytuj]

Funkcje zwracające opis stowarzyszony z podanym kodem języka odpowiednio:

hasło
Zwraca nazwę artykułu w Wikipedii, który opisuje język o zadanym kodzie.
skrót
Skrót nazwy języka, jeśli istnieje, w przeciwnym razie mianownik nazwy języka.
mianownik
Nazwa języka w mianowniku.
dopełniacz
Nazwa języka w dopełniaczu.
miejscownik
Nazwa języka w miejscowniku.

Funkcja wymaga prawidłowego kodu języka, tj. niepustego wyniku z funkcji istnieje, w przeciwnym razie generuje błąd skryptu.

parametry

[edytuj]
Pole Do czego służy? Jak wypełnić?
1 Kod języka Np. en lub pl.

przykłady

[edytuj]
wywołanie \ X en pl aa
[[{{#invoke:lang|hasło|X}}]] język angielski język polski język afar
{{#invoke:lang|skrót|X}} ang. pol. afar
{{#invoke:lang|mianownik|X}} angielski polski afar
{{#invoke:lang|dopełniacz|X}} angielskiego polskiego afar
{{#invoke:lang|miejscownik|X}} angielskim polskim afar

lang

[edytuj]

Funkcja konwertująca kody języka zgodnie z definicją w szablonie {{lang}}.

parametry

[edytuj]
Pole Do czego służy? Jak wypełnić?
1..N Kod języka Np. en lub pl.

przykłady

[edytuj]
wywołanie efekt
{{#invoke:lang|lang|en}} (ang.)
{{#invoke:lang|lang|X}} (Błąd! Nieznany kod języka: x. Sprawdź listę kodów.)
{{#invoke:lang|lang|}} (Błąd! Brak kodu języka.)
{{#invoke:lang|lang}} Błąd! Brak kodu języka.
{{#invoke:lang|lang|en|pl|ru|it|ee|roa-rup|zh-min-nan|be-x-old|tum|de|et|hak|xal|ilo|id|ia|ie}} (ang. • pol. • ros. • wł. • ewe • arum. • minnański • biał. (tar.) • tumbuka • niem. • est. • hakka • kałm. • ilokański • indonez. • interlingua • occidental)

język

[edytuj]

Funkcja konwertująca kody języka zgodnie z definicją w szablonie {{lang}}.

parametry

[edytuj]
Pole Do czego służy? Jak wypełnić?
1 Kody języków oddzielone odstępami Np. en lub en pl de.

przykłady

[edytuj]
wywołanie efekt
{{#invoke:lang|język|en}} (ang.)
{{#invoke:lang|język|X}} (Błąd! Nieznany kod języka: x. Sprawdź listę kodów.)
{{#invoke:lang|język|}} (Błąd! Brak kodu języka.)
{{#invoke:lang|język}} Błąd! Brak kodu języka.
{{#invoke:lang|język|en pl ru it ee roa-rup zh-min-nan be-x-old tum de et hak xal ilo id ia ie}} (ang. • pol. • ros. • wł. • ewe • arum. • minnański • biał. (tar.) • tumbuka • niem. • est. • hakka • kałm. • ilokański • indonez. • interlingua • occidental)

Błędy

[edytuj]

Błędy należy zgłaszać na stronie Wikipodróże:Pub podróżnika/Kwestie techniczne.



Na stronie Moduł:Lang wykorzystano treści ze strony Moduł:Lang w polskiej Wikipedii (link do wersji).
Jej autorzy wymienieni są w historii edycji. Prawa autorskie: na licencji Creative Commons CC-BY-SA.



local lang = {}  local data = mw.loadData( 'Module:lang/data' )  function lang.istnieje(frame)     local languageCode = frame.args[1]     if data[languageCode] then         return languageCode     else         return nil     end end  function lang.kursywa(frame)     local languageCode = frame.args[1]     if languageCode then 	    local languageData = data[languageCode] 	    if languageData and (languageData.kursywa == false) then 	    	return "" 	    end     end  	return "''" end  lang["hasło"] = function(frame)     local languageCode = frame.args[1]     assert(languageCode, "Brak kodu języka")     local languageData = data[languageCode]     assert(languageData, "Nieznany kod języka")     return languageData['hasło'] end   lang["skrót"] = function(frame)     local languageCode = frame.args[1]     assert(languageCode, "Brak kodu języka")     local languageData = data[languageCode]     assert(languageData, "Nieznany kod języka")     return languageData['skrót'] or languageData['mianownik'] end  function lang.mianownik(frame)     local languageCode = frame.args[1]     assert(languageCode, "Brak kodu języka")     local languageData = data[languageCode]     assert(languageData, "Nieznany kod języka")     return languageData['mianownik'] end   lang["dopełniacz"] = function(frame)     local languageCode = frame.args[1]     assert(languageCode, "Brak kodu języka")     local languageData = data[languageCode]     assert(languageData, "Nieznany kod języka")     return languageData['dopełniacz'] end  function lang.miejscownik(frame)     local languageCode = frame.args[1]     assert(languageCode, "Brak kodu języka")     local languageData = data[languageCode]     assert(languageData, "Nieznany kod języka")     return languageData['miejscownik'] end  function list(frame, multi)     -- konwersja kodów języków na kod wiki text opisujący kody     local items = {}       -- tabela na skonwertowane kody     local invalid = false  -- flaga informująca, że na liście znajduje się nieznany kod języka     local warning = false  -- flaga informująca, że na liście znajduje się kod języka z listy częstych błędów     local lang = mw.getContentLanguage() -- język wiki          local args = frame.args;     if not args[1] then         -- brak argumentów sugeruje wywołanie z szablonu         local parent = frame:getParent()         if parent then             args = parent.args         end     end      if not args[1] then         return "<span style=\"color:red\">'''Błąd! Brak kodu języka.'''</span>"     end          local formatItem = function(languageCode)         assert(#languageCode > 0, "Pusty kod języka")         local languageData = data[languageCode]                  if languageData then             if string.match("ee|am|an|ang|kr|se|si", languageCode) then                 warning = true             end               local skrot = languageData['skrót'] or languageData['mianownik']             local nativeName = mw.language.fetchLanguageName(languageCode)             if nativeName and #nativeName > 0 and languageCode ~= "pl" then                 table.insert(items, string.format("[[%s|<span style=\"color:#005\" title=\"Treść w języku %s (%s)\">%s</span>]]", languageData['hasło'], languageData['miejscownik'], nativeName, skrot))             else                 table.insert(items, string.format("[[%s|<span style=\"color:#005\" title=\"Treść w języku %s\">%s</span>]]", languageData['hasło'],  languageData['miejscownik'], skrot))             end         elseif #languageCode == 0 then             if #items == 0 then                 -- pierwszy kod nie może być pusty, reszta może, bo jest przekazywana jako pusta w szablonach cytowania                 invalid = true                 table.insert(items, "<span style=\"color:red\">'''Błąd! Brak kodu języka.'''</span>")             end         else             invalid = true             table.insert(items, string.format("<span style=\"color:red\">'''Błąd! Nieznany kod języka: %s. Sprawdź [[Pomoc:Interwiki|listę kodów]].'''</span>", languageCode))         end     end          if args[2] or multi then         -- wiele argumentów sugeruje przekazywnie każdego kodu języka w oddzielnych argumentach         for i, v in ipairs(args) do             if #v > 0 then                 formatItem(lang:lc(v))             end         end     else         -- jeden argument pozwala także wysłać wszystkie kody oddzielone spacją         for languageCode in string.gmatch(lang:lc(args[1]), "%S+") do             formatItem(languageCode)         end     end          if #items == 0 then         -- pusta lista kodów         invalid = true         table.insert(items, "<span style=\"color:red\">'''Błąd! Brak kodu języka.'''</span>")     end      -- ostateczne formatowanie wyniku     local result = {}     table.insert(result, "<span style=\"color:#009\">(")     table.insert(result, table.concat(items, "&nbsp;•&nbsp;"))     table.insert(result, ")</span>")     if mw.title.getCurrentTitle().namespace == 0 then         if warning then             table.insert(result, "[[Kategoria:Częste błędy kodu w szablonie lang]]")         end         if invalid then             table.insert(result, "[[Kategoria:Nierozpoznany kod języka w szablonie lang]]")         end     end      return table.concat(result, "") end  function lang.lang(frame) 	return list(frame, true) end  lang["język"] = function(frame) 	return list(frame, false) end  return lang