This module will transliterate Azerbaijani language text.
The module should preferably not be called directly from templates or other modules.
To use it from a template, use {{xlit}}
.
Within a module, use Module:languages#Language:transliterate.
For testcases, see Module:az-translit/testcases.
tr(text, lang, sc)
text
written in the script specified by the code sc
, and language specified by the code lang
.nil
.local export = {}
local single_letters = {
='a', ='A', ='b', ='B', ='v', ='V',
='q', ='Q', ='d', ='D', ='e', ='E',
='yo',='Yo', ='j', ='J', ='z', ='Z',
='i', ='İ', ='y', ='Y', ='k', ='K',
='l', ='L', ='m', ='M', ='n', ='N',
='o', ='O', ='p', ='P', ='r', ='R',
='s', ='S', ='t', ='T', ='u', ='U',
='f', ='F', ='x', ='X', ='s',='S',
='ç', ='Č', ='ş', ='Ş', ='şç',='Şç',
='', ='', ='ı', ='I', ='ʹ', ='ʹ',
='e', ='E', ='yu',='Yu', ='ya',='Ya',
='y', ='Y', ='h', ='H', ='ğ', ='Ğ',
='ə', ='Ə', ='ö', ='Ö', ='ü', ='Ü',
='ç', ='Ç', ='g', ='G',
}
function export.tr(text, lang, sc)
if not sc then
sc = require("Module:languages").getByCode("az"):findBestScript(text):getCode()
end
if sc == "Arab" then
text = nil
elseif sc == "Latn" then
text = nil
elseif sc == "Cyrl" then
text = mw.ustring.gsub(text, "()()",
function(pos, iotated)
-- modifier letter apostrophe or right single quotation mark
local preceding = mw.ustring.sub(text, math.max(1, pos - 2),
math.max(0, pos - 1))
local capital = iotated == "Е" or iotated == "Ю"
local lower = mw.ustring.lower(iotated)
local translit
if preceding == "" or mw.ustring.match(preceding,
"?$") then
if capital then
if lower == "ю" then
return "Yu"
elseif lower == "ё" then
return "Yo"
else
return "Ye"
end
else
if lower == "ю" then
return "yu"
elseif lower == "ё" then
return "yo"
else
return "ye"
end
end
else
if capital then
if lower == "ю" then
return "Ü"
elseif lower == "ё" then
return "Ö"
else
return "E"
end
else
if lower == "ю" then
return "ü"
elseif lower == "ё" then
return "ö"
else
return "e"
end
end
end
return translit
end)
text = mw.ustring.gsub(text, '.', single_letters)
end
return text
end
return export