请输入您要查询的百科知识:

 

词条 Module:IPA symbol/sandbox
释义

local data = mw.loadData('Module:IPA symbol/sandbox/data').data

local p = {}

local gsub = mw.ustring.gsub

local len = mw.ustring.len

local sub = mw.ustring.sub

local function reverseLook(t, s)

local ret

for i = 1, len(s) - 1 do

-- Look for 2-char matches first

ret = t[sub(s, i, i + 1)] or t[sub(s, i, i)]

if ret then break end

end

return ret or t[sub(s, -1)] -- Last character

end

local function returnData(s, dataType)

for _, v in ipairs(data.univPatterns) do

s = gsub(s, v.pat, v.rep)

end

local key = s

for _, v in ipairs(data.keyPatterns) do

key = gsub(key, v.pat, v.rep)

end

local ret = data.sounds[key] or data.diacritics[key]

or reverseLook(data.diacritics, s)

if ret and dataType then

if ret[dataType] then

ret = ret[dataType]

else

error(string.format('Invalid data type "%s"', dataType))

end

end

return ret

end

local function returnErrorCat()

local ns = mw.title.getCurrentTitle().namespace

if ns % 2 == 0 and ns ~= 2 then -- Non-talk and non-user

return

else

return

end

end

local function returnError(s)

return string.format(

'Error using {{IPA symbol}}: "%s" not found in list%s',

s, returnErrorCat())

end

function p._main(s, errorText, output)

return returnData(s, output or 'article') or errorText or returnError(s)

end

function p.main(frame)

local args = {}

for k, v in pairs(frame.args) do

args[k] = v ~= and v

end

if not args.symbol then return end -- Exit early

if args.errortext == 'blank' then args.errortext = end

return p._main(args.symbol, args.errortext, args.output)

end

function p._link(s, displayText, prefix, suffix, audio, addSpan, errorText)

local t = returnData(s)

if t then

s = string.format('%s%s%s',

prefix or , t.article, displayText or s, suffix or )

if addSpan ~= 'no' then

local span = mw.html.create('span'):addClass('IPA')

if prefix or suffix then

span:addClass('nowrap'):attr('title',

'Representation in the International Phonetic Alphabet (IPA)')

end

s = tostring(span:wikitext(s))

end

if audio then

audio = require('Module:Yesno')(audio, audio)

if audio == true then audio = t.audio end

if audio ~= then

audio = mw.getCurrentFrame():expandTemplate{

title = 'Template:Audio',

args = { audio, 'listen', help = 'no' }

}

audio = ' (' .. audio

.. ')'

end

else

audio =

end

return s .. audio

else

return errorText or returnError(s)

end

end

function p.link(frame)

local args = {}

for k, v in pairs(frame.args) do

args[k] = v ~= and v

end

if not args.symbol then return end -- Exit early

if args.errortext == 'blank' then args.errortext = end

return p._link(args.symbol, args.text, args.prefix, args.suffix, args.audio,

args.span, args.errortext)

end

return p

1 : International Phonetic Alphabet pages needing attention

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/11/14 0:35:03