Modul:lang/dok
Detta är dokumentationssidan för Modul:lang
Syfte
redigeraModulens syfte är att bistå andra moduler med språkinformation. Att konvertera mellan språk och språkkod, ge information om sorteringsregler för olika språk och ge information om vilket skript språket använder.
Varning
redigeraDen här modulen används av alla uppslagssidor. Efter varje redigering här eller på Modul:lang/data måste åtminstone 3 test genomföras (samtyck till "Rensa denna sidas cache?
"):
- Modul:lang/test
- Modul:tagg/test
- Wiktionary:Stilguide/Språknamn (får inte fastna i Kategori:Fel på språklistan, scrolla ner med visning av dolda kategorier påslagen, alternativt nullredigera sidan "Wiktionary:Stilguide/Språknamn")
Undersidor
redigeraDen här modulen innehåller flera undersidor: Special:PrefixIndex/Modul:lang/
Användning
redigeraDen här modulen används av andra moduler (till exempel Modul:tagg). Det går inte att anropa den direkt från mallar eftersom den förväntar sig "nakna" värden (oftast sträng), medan mallar "förpackar" alla parametrar i en tabell. Det finns en liten hjälpmodul Modul:langfortemplate som kan anropas från mallar och ger åtkomst till funktioner "getCode", "getLanguage" och "getLanguageUCFirst".
local lang = require("Modul:lang") local swedish_language_code = lang.getCode("Svenska") local finnish_language_name = lang.getLanguage("fi") local finnish_language_name_first_letter_capitalized = lang.getLanguageUCFirst("fi") local swedish_sort_rules_table = lang.getSortRules("sv") local is_svenska_a_language_name = (lang.getCode("svenska")~="xx") local is_sv_a_language_code = lang.hasLanguage("sv") local is_h_smi_a_language_including_etymology_code = lang.hasLanguage("h_smi","alsoetym")
Specifikation
redigeraKoder reserverade för etymologi
redigeraExtra parameter styr hantering av dessa koder:
- string "alsoetym" för att inkludera alla koder dvs också etymologiska såsom "h-smi"
- string "onlyetym" för att inkludera enbart etymologiska koder såsom "h-smi"
- annars inkluderas enbart koder som inte är etymologiska
Påverkade funktioner är "hasLanguage", "getCode", "getLanguage", "getLanguageUCFirst" och "exportList".
Lista över funktioner
redigera- hasLanguage
- (används mycket av Modul:gammalstavning Modul:categorize m.m.)
- Den här funktionen är den prefererade metoden att reda på ifall en språkkod är känd.
- 1= språkkod, är skiftlägeskänslig och måste vara skriven med gemener
- 2= extra parameter för etymologiska koder
- Returnerar ett booleskt värde för om språkobjektet kan hittas för språket.
- Default-värde: false.
- getCode
- (används av Modul:cat-etym, i sin tur av Mall:kategorinavigering-härledningar)
- 1= språknamn, inte skiftlägeskänsligt
- 2= extra parameter för etymologiska koder
- Returnerar språkkoden.
- Default-värde: "xx".
- getLanguage
- (används mycket av Modul:categorize m.m.)
- 1= språkkod, är skiftlägeskänslig och måste vara skriven med gemener
- 2= extra parameter för etymologiska koder
- Returnerar språknamnet, alla gemener.
- Default-värde: "okänt språk".
- getLanguageUCFirst
- (används mycket av Modul:categorize m.m.)
- 1= språkkod, är skiftlägeskänslig och måste vara skriven med gemener
- 2= extra parameter för etymologiska koder
- Returnerar språknamnet, versaliserad första bokstav, resterande gemener.
- Default-värde: "Okänt språk".
- getSortRules
- (används av Modul:sort)
- 1= Språkkod, är skiftlägeskänslig och måste vara skriven med gemener
- Returnerar sorteringsreglerna språket, se nedan.
- Default-värde: {}.
- getScriptCode
- 1= Språkkod, är skiftlägeskänslig och måste vara skriven med gemener
- Returnerar skriften för språket.
- Default-värde: "".
- isObviouslyInvalid
- (används av Modul:tagg)
- 1= Språkkod, är skiftlägeskänslig och måste vara skriven med gemener
- Returnerar ett booleskt värde som är "true" ifall koden är uppenbarligen ogiltig enligt vissa kriterier, beror inte på Modul:lang/data, "--" är giltig men "xx" är ogiltig, på så sätt kan moduler undvika märkiga felmeddelanden som
okänd språkkod "svenska"
till förmån föruppenbarligen ogiltig språkkod "svenska"
- getEntryName
- (används av Modul:link och Modul:sidnamn)
- 1= Språkkod, är skiftlägeskänslig och måste vara skriven med gemener
- 2= Ordet med (eller utan) diakriter
- Returnerar ordet utan diakriter (lämpligt som sidnamn och vanliga länkar, med diakriter på fetstilsrad, i översättningar och i grammatiktabeller)
- exportList
- (används av Modul:catsummer)
- 1= extra parameter för etymologiska koder
- Returnerar en tabell med kända språkkod ("--" ingår, "xx" ingår EJ)
Sorteringsregler
redigera- Så länge som inte annat anges, sorteras sidor i kategorierna efter sidnamn (utan eventuellt namnrymdsprefix) i den ordning som Unicode bestämmer, dvs efter codepoint-värden. Det innebär exempelvis att "ä och ö" sorteras före "å" (tabell), vilket inte är rätt för svenska uppslag. För andra språk gäller andra regler. Sorteringsreglerna för respektive språk anges i en lista bestående av element på formen "enstaka tecken eller en sekvens av tecken att sortera som något annat>hur tecknet eller tecknen ska sorteras istället". För att ange hur tecken ska sorteras relativt andra tecken, används tecknen ~, ¡, °, ² och ³
- a~ betyder "sortera efter a"
- a¡ betyder "sortera efter a~"
- a° betyder "sortera efter a¡"
- a² betyder "sortera efter a°"
- a³ betyder "sortera efter a²"
- Så här ser t.ex. sorteringsreglerna ut för svenska: {"å>z~", "ä>z¡", "ö>z°", "ü>y", "æ>z¡", "ø>z°"}.
- Ibland kan det vara två eller till och med tre tecken som sorteras ihop som ett tecken, t.ex. i ungerska: {"cs>c~", "dz>d~", "dzs>d¡", "gy>g~", "ly>l~", "ny>n~", "ö>o~", "sz>s~", "ty>t~", "ü>u~", "zs>z~", "ő>o~", "ű>u~"}.
Skrifter
redigeraDenna funktion avser exempelvis funktionalitet som för närvarande finns i {{ö}}
och {{ö+}}
genom sin skrift=-parameter som i sin tur anropar skriftmallarna (som inleds med ett plustecken i Kategori:Wiktionary:Grafiska mallar). Modul:lang/data är inte försedd med den här informationen ännu.
Tester
redigeraAll tests passed. (refresh)
Text | Expected | Actual | |
---|---|---|---|
mut.hasLanguage("sv") | true | true | |
mut.hasLanguage("xx") | false | false | |
mut.hasLanguage("xyz") | false | false |
Text | Expected | Actual | |
---|---|---|---|
mut.getCode("sv") | xx | xx | |
mut.getCode("sV") | xx | xx | |
mut.getCode("svenska") | sv | sv | |
mut.getCode("Svenska") | sv | sv | |
mut.getCode("Älvdalska") | ovd | ovd | |
mut.getCode("ESPERANTO") | eo | eo | |
mut.getCode("norska") | xx | xx | |
mut.getCode("norska","alsoetym") | h-nor | h-nor | |
mut.getCode("samiska","onlyetym") | h-smi | h-smi | |
mut.getCode("engelska","onlyetym") | xx | xx |
Text | Expected | Actual | |
---|---|---|---|
mut.getLanguage("sv") | svenska | svenska | |
mut.getLanguage("sV") | okänt språk | okänt språk | |
mut.getLanguage("svenska") | okänt språk | okänt språk | |
mut.getLanguage("Svenska") | okänt språk | okänt språk | |
mut.getLanguage("ovd") | älvdalska | älvdalska | |
mut.getLanguageUCFirst("ovd") | Älvdalska | Älvdalska | |
mut.getLanguage("nn") | nynorska | nynorska | |
mut.getLanguage("h-nor") | okänt språk | okänt språk | |
mut.getLanguage("h-nor","alsoetym") | norska | norska |
Text | Expected | Actual |
---|
Text | Expected | Actual | |
---|---|---|---|
mut.getSortRules("sv") | {"å>z~", "ä>z¡", "ö>z°", "ü>y", "æ>z¡", "ø>z°"} | {"å>z~", "ä>z¡", "ö>z°", "ü>y", "æ>z¡", "ø>z°"} | |
mut.getSortRules("xx") | {} | {} | |
mut.getSortRules("notfound") | {} | {} |
Text | Expected | Actual | |
---|---|---|---|
mut.isObviouslyInvalid("sv") | false | false | |
mut.isObviouslyInvalid("Sv") | true | true | |
mut.isObviouslyInvalid("jav") | false | false | |
mut.isObviouslyInvalid("ido") | true | true | |
mut.isObviouslyInvalid("xx") | true | true | |
mut.isObviouslyInvalid("--") | false | false | |
mut.isObviouslyInvalid("a") | true | true | |
mut.isObviouslyInvalid("zh-min-nan") | false | false | |
mut.isObviouslyInvalid("zh-min+nan") | true | true | |
mut.isObviouslyInvalid("zh-min-n-n") | true | true | |
mut.isObviouslyInvalid("zuh-min-nan") | true | true | |
mut.isObviouslyInvalid("h-smi") | false | false | |
mut.isObviouslyInvalid("lak") | false | false | |
mut.isObviouslyInvalid("spanska") | true | true | |
mut.isObviouslyInvalid("indonesiska") | true | true |
Text | Expected | Actual | |
---|---|---|---|
mut.getEntryName("ab", "а-бҳәа́") | а-бҳәа | а-бҳәа | |
mut.getEntryName("la", "abdērītānus") | abderitanus | abderitanus | |
mut.getEntryName("lt", "abãtė") | abatė | abatė | |
mut.getEntryName("lt", "abažū̃ras") | abažūras | abažūras | |
mut.getEntryName("se", "boaš'šu") | boaššu | boaššu | |
mut.getEntryName("ru", "автомотри́са") | автомотриса | автомотриса | |
mut.getEntryName("sr", "ја̏се̄н") | јасен | јасен | |
mut.getEntryName("zu", "dlâla") | dlala | dlala | |
mut.getEntryName("zu", "ī́sele") | isele | isele |
Text | Expected | Actual | |
---|---|---|---|
mut.getEntryName("ur", "آدرنیہ,") | آدرنیہ | آدرنیہ | |
mut.getEntryName("ur", "آزمودہ,") | آزمودہ | آزمودہ | |
mut.getEntryName("ur", "آشچریہ,") | آشچریہ | آشچریہ | |
mut.getEntryName("he", "אֵין") | אין | אין | |
mut.getEntryName("he", "אֵינְסוֹף") | אינסוף | אינסוף | |
mut.getEntryName("he", "יֵשׁ") | יש | יש | |
mut.getEntryName("he", "עֶצֶם") | עצם | עצם | |
mut.getEntryName("he", "אִם וְרַק אִם") | אם ורק אם | אם ורק אם | |
mut.getEntryName("ar", "أَرِسْطُو") | أرسطو | أرسطو | |
mut.getEntryName("ar", "إِبِيقُورِيّ") | إبيقوري | إبيقوري | |
mut.getEntryName("ar", "اِخْتِيَار") | اختيار | اختيار | |
mut.getEntryName("ar", "تَعَدُّدُ الْقُدَماءِ") | تعدد القدماء | تعدد القدماء | |
mut.getEntryName("ar", "تَنْوِير") | تنوير | تنوير |