Generates Modern Arabic spellings for Kazakh, especially as spelt in China, from the Kazakh Cyrillic script. Not an exact copy of the transliteration module utilized by Kazakh Wikipedia, as Kazakh Wikipedia's transliteration is often inaccurate and does not always match the most common spelling in China (per google results).
2 of 19 tests failed. (refresh)
Text | Expected | Actual | Comments | |
---|---|---|---|---|
![]() | Барлық адамдар тумысынан азат және қадір-қасиеті мен құқықтары тең болып дүниеге келеді. Адамдарға ақыл-парасат, ар-ождан берілген, сондықтан олар бір-бірімен туыстық, бауырмалдық қарым-қатынас жасаулары тиіс. | بارلىق ادامدار تۋمىسىنان ازات جانە ٴقادىر-قاسيەتى مەن قۇقىقتارى تەڭ بولىپ دۇنيەگە كەلەدى. ادامدارعا اقىل-پاراسات، ار-وجدان بەرىلگەن، سوندىقتان ولار ٴبىر-بىرىمەن تۋىستىق، باۋىرمالدىق قارىم-قاتىناس جاساۋلارى ٴتيىس. | بارلىق ادامدار تۋمىسىنان ازات جانە ٴقادىر-قاسيەتى مەن قۇقىقتارى تەڭ بولىپ دۇنيەگە كەلەدى. ادامدارعا اقىل-پاراسات، ار-وجدان بەرىلگەن، سوندىقتان ولار ٴبىر-بىرىمەن تۋىستىق، باۋىرمالدىق قارىم-قاتىناس جاساۋلارى ٴتيىس. | |
![]() | адамдар | ادامدار | ادامدار | |
![]() | -са | ـسا | ـسا | |
![]() | -се | ـسە | ـسە | |
![]() | Алтай | التاي | التاي | |
![]() | Алматы | الماتى | الماتى | |
![]() | Қазақстан | قازاقستان | قازاقستان | |
![]() | қазақша | قازاقشا | قازاقشا | |
![]() | таңғажайып | تاڭعاجايىپ | تاڭعاجايىپ | |
![]() | Әзірбайжан | ٵزىربايجان | ٴازىربايجان | |
![]() | Үрімжі | ٷرىمجى | ٴۇرىمجى | |
![]() | Ыстамбұл | ىستامبۇل | ىستامبۇل | |
![]() | түйіс | ٴتۇيىس | ٴتۇيىس | |
![]() | түйір | ٴتۇيىر | ٴتۇيىر | |
![]() | Әзербайжан | ازەربايجان | ازەربايجان | |
![]() | түйістер | تۇيىستەر | تۇيىستەر | |
![]() | түйірлер | تۇيىرلەر | تۇيىرلەر | |
![]() | Гүржістан | گۇرجىستان | گۇرجىستان | |
![]() | Айбек | ايبەك | ايبەك |
local export = {}
local rsplit = mw.text.split
local U = mw.ustring.char
local rsubn = mw.ustring.gsub
local ulen = mw.ustring.len
local frontvowels = "үҮәӘіІөӨ"
local backvowels = "ӯӮАаоОЫыҰұ"
local allvowels = "үҮиИеЕәӘөӨӯӮАаоОЫыІіЯяЮюЁё"
local allchar = "АаӘәБбВвГгҒғДдЕеЁёЖжЗзИиЙйКкҚқЛлМмНнҢңОоӨөПпРрСсТтУуҰұҮүФфХхҺһЦцЧчШшЩщЪъЫыІіЬьЭэЮюЯя"
local hmzh = U(0x674)
local mapping = {
= "ۇ"
, = "ۇ"
, = "ت"
, = "ت"
, = "ھ"
, = "ھ"
, = "ر"
, = "ر"
, = "ف"
, = "ف"
, = "ش"
, = "ش"
, = "ن"
, = "ن"
, = "پ"
, = "پ"
, = "ي"
, = "ي"
, = "ل"
, = "ل"
, = "ز"
, = "ز"
, = "ە"
, = "ە"
, = "گ"
, = "گ"
, = "ب"
, = "ب"
, = "ۋ"
, = "ۋ"
, = "س"
, = "س"
, = "ح"
, = "ح"
, = "ى"
, = "ى"
, = "م"
, = "م"
, = "و"
, = "و"
, = "ي"
, = "ي"
, = "ج"
, = "ج"
, = "ك"
, = "ك"
, = "د"
, = "د"
, = "ۆ"
, = "ۆ"
, = "ا"
, = "ا"
, = "ڭ"
, = "ڭ"
, = "ا"
, = "ا"
, = "ە"
, = "ە"
, = "ۇ"
, = "ۇ"
, = "ق"
, = "ق"
, = "ع"
, = "ع"
, = "ى"
, = "ى"--?
, = "و"
, = "و"
--mostly in loanwords from Russian
, = "يو"
, = "يو"
, = "تس"
, = "تس"
, = "چ"
, = "چ"
, = "شش"
, = "شش"
, = ""
, = ""
, = ""
, = ""
, = "ە"
, = "ە"
, = "يۋ"
, = "يۋ"
, = "يا"
, = "يا"
--хостинг - hostiñ
, = "ڭ"
, = "ڭ"
--is it used?
, = "ۇ"
, = "ۇ"
--punctuation
, = "،"
, = "٪"
, = "؟"
}
--[==[ disabled: hamza ligatures have been depricated by unicode
local function fvowels(text)
-- front vowels
text = rsubn(text, hmzh .. "", "ٷ")
text = rsubn(text, hmzh .. "", "ٵ")
text = rsubn(text, hmzh .. "", "ٸ")
text = rsubn(text, hmzh .. "", "ٶ")
text = rsubn(text, hmzh .. "()", "%1")
return text
end ]==]
function export.tr(text, lang, sc)
if type(text) == "table" then
options = {}
text, script = text.args, text.args
end
if not sc then
sc = require("Module:languages").getByCode("kk"):findBestScript(text):getCode()
end
if sc ~= "Cyrl" then
return nil
end
text = rsubn(text, "^" .. "", "-")
text = rsubn(text, "()()", "%1#_#%2")
text = rsubn(text, "()()", "%1#_#%2")
text = rsubn(text, " | ", "# | #")
text = "##" .. rsubn(text, " ", "# #") .. "##"
-- treat every word as an individual string
rsplit( "#" .."%s" .. "#", ",")
rsplit( "#" .."_" .. "#", ",")
text = rsubn(text, "", "йа")
text = rsubn(text, "()", "й%1")
text = rsubn(text, "()", "%1йа")
text = rsubn(text, "#", "#йа")
text = rsubn(text, "", "ә")
text = rsubn(text, "#(+)()", "#" .. hmzh .. "%1%2")
text = rsubn(text, "#()", "#" .. hmzh .. "%1")
text = rsubn(text, "#" .. hmzh .. "(+)()", "#%1%2")
text = rsubn(text, "#" .. hmzh .. "()", "#%1")
-- text = fvowels(text) -- hamza ligatures have been depricated by unicode
text = rsubn(text, '.', mapping)
text = rsubn(text,"-", "ـ") -- Kashida
text = rsubn(text, "#", "")
text = rsubn(text, "_", "")
return text
end
return export