Wikipedia ilowiki https://ilo.wikipedia.org/wiki/Umuna_a_Panid MediaWiki 1.39.0-wmf.25 first-letter Midia Espesial Tungtungan Agar-aramat Agar-aramat tungtungan Wikipedia Wikipedia tungtungan Papeles Papeles tungtungan MediaWiki MediaWiki tungtungan Plantilia Plantilia tungtungan Tulong Tulong tungtungan Kategoria Kategoria tungtungan TimedText TimedText talk Modulo Modulo tungtungan Gadget Gadget talk Gadget definition Gadget definition talk Marso 18 0 2516 392286 320884 2022-08-18T22:04:41Z Lam-ang 3622 /* Naipasngay */ +pimmusay wikitext text/x-wiki {{Kalendario}} {{Aldaw}} == Paspasamak == == Naipasngay == * [[1837]] &ndash; [[Grover Cleveland]], maika-22 ken maika-24 a [[Presidente ti Estados Unidos]] (pimmusay [[1908]]) * [[1905]] &ndash; [[Robert Donat]], Briton nga aktor (pimmusay [[1958]]) * [[1928]] &ndash; [[Fidel V. Ramos]], maika-12 a [[Presidente ti Filipinas]] (pimmusay [[2022]]) * [[1979]] &ndash; [[Adam Levine]], Amerikano a kumakanta == Pimmusay == == Dagiti akinruar a silpo == * [http://news.bbc.co.uk/onthisday/hi/dates/stories/march/18 BBC: On This Day] * [http://www.tnl.net/when/3/18 Today in History: March 18] {{pungol}} {{Dagiti bulan}} {{DEFAULTSORT:Marso 18}} [[Kategoria:Al-aldaw ti tawen]] [[Kategoria:Marso]] oiqs4bc2j4vptwtud5168uzi979dtmb Hulio 31 0 2734 392288 352218 2022-08-18T22:08:45Z Lam-ang 3622 +[[Fidel V. Ramos]] wikitext text/x-wiki {{Kalendario}} {{Aldaw}} == Paspasamak == == Naipasngay == * [[1892]] &ndash; [[Herbert W. Armstrong]], nagpundar ti Worldwide Church of God (pimmusay [[1986]]) * [[1914]] &ndash; [[Louis de Funès]], Pranses nga aktor (pimmusay [[1983]]) * [[1965]] &ndash; [[J. K. Rowling]], Ingles a mannurat == Pimmusay == * [[1895]] &ndash; [[Thomas Francis Wade]], Briton a sinologo ken diplomata (naipasngay [[1818]]) * [[2022]] &ndash; [[Fidel V. Ramos]], maika-12 a [[Presidente ti Filipinas]] (naipasngay [[1928]]) == Dagiti akinruar a silpo == * [http://news.bbc.co.uk/onthisday/hi/dates/stories/july/31 BBC: On This Day] * [http://www.tnl.net/when/7/31 Today in History: July 31] {{pungol}} {{Dagiti bulan}} {{DEFAULTSORT:Hulio 31}} [[Kategoria:Al-aldaw ti tawen]] [[Kategoria:Hulio]] finoin4uxphzi0go7dnwu6aow5a2zbf 1928 0 3560 392285 372895 2022-08-18T22:03:53Z Lam-ang 3622 +pimmusay wikitext text/x-wiki Ti '''1928''' ket maysa a [[bisiesto a tawen]] a nangrugi iti [[aldaw]] ti [[Domingo]] iti [[kalendario a Gregoriano]]. == Paspasamak == == Naipasngay == [[Papeles:Vice President Mondale 1977 closeup.jpg|thumb|140px|[[Walter Mondale]]]] * [[Enero 5]] &ndash; [[Walter Mondale]], Amerikano a politiko, maika-42 a [[Bise Presidente iti Estados Unidos]] (pimmusay [[2021]]) [[Papeles:Ramos Pentagon.jpg|thumb|140px|[[Fidel V. Ramos]]]] * [[Marso 18]] &ndash; [[Fidel V. Ramos]], maika-12 a [[Presidente ti Filipinas]] (pimmusay [[2022]]) [[Papeles:ShirleyTempleMackenzieKing2b.jpg|thumb|140px|[[Shirley Temple]]]] * [[Abril 23]] &ndash; [[Shirley Temple]], Amerikana nga aktres ken diplomata (pimmusay [[2014]]) [[Papeles:CheHigh.jpg|thumb|right|140px|[[Che Guevara]]]] * [[Hunio 14]] &ndash; [[Che Guevara]], Arhentino-Kubano a pisiko, politiko ken daulo ti gerilia (pimmusay [[1967]]) [[Papeles:Teofisto Guingona Jr. 20171013.jpg|thumb|140px|[[Teofisto T. Guingona, Jr.]]]] * [[Hulio 4]] &ndash; [[Teofisto T. Guingona, Jr.]], maika-13 a Bise Presidente ti Filipinas * [[Hulio 26|Hulio 26]] &ndash; [[Stanley Kubrick]], [[Americano|Amerikano]] a direktor ti pelikula (pimmusay [[1999]]) * [[Oktubre 3]] &ndash; [[Erik Bruhn]], Danes a sumasala ti balet (pimmusay [[1986]]) [[Papeles:Salvador Laurel portrait.jpg|thumb|140px|[[Salvador Laurel]]]] * [[Nobiembre 18]] &ndash; [[Salvador Laurel]], maika-8 a Bise Presidente ti Filipinas (pimmusay [[2004]]) == Pimmusay == {{Tawen-pungol}} [[Kategoria:1928|1928]] 7gre227qifcx9i523sw8464nokijzol Wikipedia:Dap-ayan/Nadumaduma 4 30584 392271 392262 2022-08-18T21:23:25Z Lam-ang 3622 -lint error wikitext text/x-wiki {{Dap-ayan/paulo |ladawan=PL Wiki CzyWiesz ikona.svg |teksto=<br />Agipablaak kadagiti mensahe a saan a maitunos kadagiti ania man a kategoria. |apat={{Apat|WP:KDPY}} |arkibo='''Naiduldulin''': [[WP:Dap-ayan/2006-2012|2006-2012]], {{listaan ti tinawen nga arkibo | root = Wikipedia:Dap-ayan | prefix = Nadumaduma&#32; }} |narikepan=wen }} {{TOC right}} {{#ifexist:Wikipedia:Dap-ayan/Nadumaduma {{#time:Y}}|{{Wikipedia:Dap-ayan/Nadumaduma {{#time:Y}}}}|{{Wikipedia:Dap-ayan/Nadumaduma {{#time:Y|-1 year}}}}}} <!--■■■■■■■■■■■■■ Agipablaak ti baba iti daytoy a linia ■■■■■■■■■■■■■--> == Deployment of FLORES Machine Translation to Iloko Wikipedia == Hello Friends! Apologies as this message is not in your native language {{Int:Please-translate}}. The WMF Language team plans to introduce a machine translation (MT) support for the Content Translation in Iloko Wikipedia called FLORES. This means that you can choose to use [https://ai.facebook.com/blog/the-flores-101-data-set-helping-build-better-translation-systems-around-the-world/ FLORES machine translation] when translating Wikipedia articles to Iloko using [https://ilo.wikipedia.org/wiki/Special:ContentTranslation the Content Translation tool]. The FLORES Machine Translation is provided by an [https://ai.facebook.com/ AI research team at Meta] through a free for use API key that allows the Content Translation to access the service on the FLORES server for an evaluation trial period. This MT will be set as default in your Wikipedia, but you can choose not to use it by selecting "Start with empty paragraph" from the "Initial Translation" dropdown menu. The Wikimedia Foundation has worked out an agreement that allows the use of FLORES without compromising Wikipedia’s policies about attribution of rights, your privacy as a user, and brand representation. You can find more information about the FLORES Machine translation on [https://www.mediawiki.org/wiki/Content_translation/Machine_Translation/Flores#Summary_of_our_agreement_with_Meta this page]. Please note that the use of the FLORES MT is not compulsory. However, we would want your community to: *use it once it is deployed to improve the quality of the Machine Translation service *[https://www.mediawiki.org/wiki/Talk:Content_translation provide feedback] about our plans, its quality once deployed and ask any questions you might have about this addition. We trust that introducing this MT is a good support to the Content Translations tool towards having better quality articles in Iloko Wikipedia. Thank you! [[Agar-aramat:UOzurumba (WMF)|UOzurumba (WMF)]] ([[Agar-aramat tungtungan:UOzurumba (WMF)|tungtungan]]) 20:37, 31 Mayo 2022 (UTC) ===FLORES Machine Translation deployed to Iloko Wikipedia=== Hello Friends! The WMF Language team is pleased to inform you that we have deployed the FLORES machine translation (MT) support for the Content Translation in Iloko Wikipedia. Please remember that the FLORES machine translation is set as default in your Wikipedia. Still, you can choose not to use it by selecting "Start with empty paragraph" from the "Initial Translation" dropdown menu. However, we would want your community to: *use it to improve the quality of the Machine Translation service *[https://www.mediawiki.org/wiki/Talk:Content_translation provide feedback] about its quality and ask any questions you might have about this addition. We look forward to your community using the Machine Translation support in Content Translation to create better quality articles in Iloko Wikipedia. Thank you! [[Agar-aramat:UOzurumba (WMF)|UOzurumba (WMF)]] ([[Agar-aramat tungtungan:UOzurumba (WMF)|tungtungan]]) 16:05, 21 Hunio 2022 (UTC) On behalf of the WMF Language team. == Enabling Content and Section translation tool in Iloko Wikipedia == {{Int:Hello}} Friends! Apologies as this message is not in your native language, {{Int:Please-translate}}. The WMF Language team is pleased to let you know that we will like to enable the Section and Content translation tool in Iloko Wikipedia. For this, our team will love you to read about the tool and test the new [https://design.wikimedia.org/strategy/section-translation.html Section Translation tool] so you can: * Give us your feedback * Ask us questions * Tell us how to improve it Below is background information about the tools and how you can test the Section translation tool. '''Background information''' [[mw:Content_translation|Content Translation]] has been a successful tool for editors to create content in their language. More than one million articles have been created across all languages since the tool was released in 2015. However, the tool is not out of beta in Iloko Wikipedia, limiting the discoverability of the tool and its use and blocking the enablement of the Section translation in your Wikipedia [[mw:Content_translation/Section_translation|Section Translation]] extends the capabilities of Content Translation to support mobile devices. On mobile, the tool will: * Guide you to translate one section at a time in order to expand existing articles or create new ones * Make it easy to transfer knowledge across languages anytime from your mobile device We plan to enable the tools on Iloko Wikipedia in the coming week if there are no objections from your community. After it is enabled, we’ll monitor the content created with the tools and process all the feedback. In any case, feel free to raise any concerns or questions you may already have as a reply to this message or on [[mw:Talk:Content_translation/Section_translation|the project talk page]] '''Try the Section translation tool''' Before the enablement, you can try the current implementation of the tool in [https://test.m.wikipedia.org/w/index.php?title=Special:ContentTranslation&from=en&to=fa&sx=true#/ our testing instance]. Once it is enabled on Iloko Wikipedia, you’ll have access to [[:tr:Special:ContentTranslation|https://ilo.wikipedia.org/wiki/Special:ContentTranslation]] with your mobile device. You can select an article to translate, and machine translation will be provided as a starting point for editors to improve. '''Provide feedback''' Please provide feedback about Section translation on [[mw:Talk:Content_translation/Section_translation|the project talk page]]. We want to hear about your impressions on * The section translation tool * What do you think about our plans to enable it * Your ideas for improving the tool Thanks and we look forward to your feedback and questions. [[Agar-aramat:UOzurumba (WMF)|UOzurumba (WMF)]] ([[Agar-aramat tungtungan:UOzurumba (WMF)|tungtungan]]) 12:32, 29 Hunio 2022 (UTC) On behalf of the WMF Language team. ===Content and Section Translation tool enabled in Iloko Wikipedia=== {{Int:Hello}} Friends! The WMF Language team is pleased to let you know that we [https://ilo.m.wikipedia.org/wiki/Special:ContentTranslation?title=Especial:Traducci%C3%B3n_de_contenidos&from=en&to=ilo&sx=true&section=#/ have enabled the Section translation] and [https://ilo.wikipedia.org/w/index.php?title=Special:ContentTranslation&campaign=contributionsmenu&to=ilo#draft Content translation] tools in Iloko Wikipedia. The [https://www.mediawiki.org/wiki/Content_translation Content translation tool] can be discovered by users [https://www.mediawiki.org/wiki/Help:Content_translation/Starting through several entry points]. However, users not interested in translation can disable it [[Special:Preferences#mw-prefsection-rendering|from their preferences]]. Also, with the [https://www.mediawiki.org/wiki/Content_translation/Section_translation Section translation tool], you can start translating an article on your mobile device right when you notice it is missing in Iloko. From a Wikipedia article in any language, switch languages and search for Ilokano. If the article does not exist, an option to translate it will appear, as shown in the image below. [[File:Sx-language-selector-invite-th.png|thumb|left|Image of the entry point]] We know that these tools will help translators in your community to add content using any device with ease. Content created with the Content and Section Translation tool will be marked with the "[https://ilo.wikipedia.org/wiki/Espesial:Log?type=&user=&page=&wpdate=&tagfilter=contenttranslation-v2&wpfilters%5B%5D=newusers contenttranslation]" and “[https://ilo.wikipedia.org/wiki/Espesial:Log?type=&user=&page=&wpdate=&tagfilter=sectiontranslation&wpfilters%5B%5D=newusers sectiontranslaiton]” tag, respectively, for the community to review. We’ll monitor the content created, but we are very interested in hearing about your experience using the tools and reviewing the content created with it. So, enjoy the tools and [https://www.mediawiki.org/wiki/Talk:Content_translation/Section_translation provide feedback] on improving it. Thank you! [[Agar-aramat:UOzurumba (WMF)|UOzurumba (WMF)]] ([[Agar-aramat tungtungan:UOzurumba (WMF)|tungtungan]]) 05:18, 10 Agosto 2022 (UTC) On behalf of the WMF Language team. ms2pgya9rjlzkz6o5znku54un0uel0i Modulo:Pagbaliwen/nayon 828 32364 392282 391769 2022-08-18T21:48:21Z Lam-ang 3622 Pinabaro manipud iti [[:en:Special:PermanentLink/1103931122|Module:Convert/extra/1103931122]] Scribunto text/plain -- Extra conversion data used by Module:Convert. -- -- [[Module:Convert/data]] defines all units and is transcluded in all pages -- where [[Module:Convert]] is used. Testing new units by editing that module -- would invalidate the cache for all affected pages. -- -- For quick changes and experiments with new units, this module can be edited. -- Since this module is transcluded in only a small number of pages, changes -- should cause little server overhead and should propagate quickly. -- -- If a unit is defined in the data module, any definition here is ignored, -- so defining the same unit in both modules is not an error. -- A unit defined here can refer to units that are also defined here, and -- can refer to units defined in the data module. -- -- Periodically, those extra units that are wanted permanently can be removed -- from here after being added to [[Module:Convert/data]]. local extra_units = { ["sec"] = { -- experiment per request at [[Template talk:Convert#Auto-select time unit?]] _name1 = "second", _symbol = "s", utype = "time", scale = 1, prefixes = 1, default = "v < 7200 ! min ! h", link = "Second", }, ["inches"] = { target = "in", }, ["bit"] = { _name1 = "bit", _symbol = "bit", utype = "information", scale = 0.125, prefixes = 1, default = "B", link = "Bit", }, ["B"] = { _name1 = "byte", _symbol = "B", utype = "information", scale = 8, prefixes = 1, default = "bit", link = "Byte", }, } return { extra_units = extra_units } si3t3fvu32yvdjd7okhe8ybh8h58wxa Modulo:Pagbaliwen/nayon/pagipadasan 828 32384 392281 391768 2022-08-18T21:47:59Z Lam-ang 3622 Pinabaro manipud iti [[:en:Special:PermanentLink/1103931122|Module:Convert/extra/1103931122]] Scribunto text/plain -- Extra conversion data used by Module:Convert. -- -- [[Module:Convert/data]] defines all units and is transcluded in all pages -- where [[Module:Convert]] is used. Testing new units by editing that module -- would invalidate the cache for all affected pages. -- -- For quick changes and experiments with new units, this module can be edited. -- Since this module is transcluded in only a small number of pages, changes -- should cause little server overhead and should propagate quickly. -- -- If a unit is defined in the data module, any definition here is ignored, -- so defining the same unit in both modules is not an error. -- A unit defined here can refer to units that are also defined here, and -- can refer to units defined in the data module. -- -- Periodically, those extra units that are wanted permanently can be removed -- from here after being added to [[Module:Convert/data]]. local extra_units = { ["sec"] = { -- experiment per request at [[Template talk:Convert#Auto-select time unit?]] _name1 = "second", _symbol = "s", utype = "time", scale = 1, prefixes = 1, default = "v < 7200 ! min ! h", link = "Second", }, ["inches"] = { target = "in", }, ["bit"] = { _name1 = "bit", _symbol = "bit", utype = "information", scale = 0.125, prefixes = 1, default = "B", link = "Bit", }, ["B"] = { _name1 = "byte", _symbol = "B", utype = "information", scale = 8, prefixes = 1, default = "bit", link = "Byte", }, } return { extra_units = extra_units } si3t3fvu32yvdjd7okhe8ybh8h58wxa Modulo:Hatnote 828 34601 392284 391581 2022-08-18T21:56:47Z Lam-ang 3622 Pinabaro manipud iti [[:en:Special:PermanentLink/1105145280|Module:Hatnote/1105145280]] Scribunto text/plain -------------------------------------------------------------------------------- -- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the {{hatnote}} and {{format link}} meta-templates and includes -- -- helper functions for other Lua hatnote modules. -- -------------------------------------------------------------------------------- local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local checkTypeForNamedArg = libraryUtil.checkTypeForNamedArg local mArguments -- lazily initialise [[Modulo:Dagiti argumento]] local yesno -- lazily initialise [[Modulo:Wensaan]] local formatLink -- lazily initialise [[Modulo:Pormaten ti silpo]] ._formatLink local p = {} -------------------------------------------------------------------------------- -- Helper functions -------------------------------------------------------------------------------- local curNs = mw.title.getCurrentTitle().namespace p.missingTargetCat = --Default missing target category, exported for use in related modules ((curNs == 0) or (curNs == 14)) and 'Dagiti artikulo nga agraman kadagiti plantilia ti hatnote a mangpunta kadagiti awan a panid' or nil local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Modulo:Dagiti argumento') return mArguments.getArgs(frame, {parentOnly = true}) end local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to false. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end function p.makeWikitextError(msg, helpLink, addTrackingCategory, title) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- [[Module:Yesno]], and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Modulo:Wensaan') title = title or mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' ([[' .. helpLink .. '|tulong]])' else helpText = '' end -- Make the category text. local category if not title.isTalkPage -- Don't categorise talk pages and title.namespace ~= 2 -- Don't categorise userspace and yesno(addTrackingCategory) ~= false -- Allow opting out then category = 'Dagiti plantilia ti hatnote nga agraman kadagiti biddut' category = mw.ustring.format( '[[%s:%s]]', mw.site.namespaces[14].name, category ) else category = '' end return mw.ustring.format( '<strong class="error">Biddut: %s%s.</strong>%s', msg, helpText, category ) end function p.disambiguate(page, disambiguator) -- Formats a page title with a disambiguation parenthetical, -- i.e. "Example" → "Example (disambiguation)". checkType('disambiguate', 1, page, 'string') checkType('disambiguate', 2, disambiguator, 'string', true) disambiguator = disambiguator or 'panangilawlawag' return mw.ustring.format('%s (%s)', page, disambiguator) end function p.defaultClasses(inline) -- Provides the default hatnote classes as a space-separated string; useful -- for hatnote-manipulation modules like [[Module:Hatnote group]]. return (inline == 1 and 'hatnote-inline' or 'hatnote') .. ' ' .. 'navigation-not-searchable' end -------------------------------------------------------------------------------- -- Hatnote -- -- Produces standard hatnote text. Implements the {{hatnote}} template. -------------------------------------------------------------------------------- function p.hatnote(frame) local args = getArgs(frame) local s = args[1] if not s then return p.makeWikitextError( 'awan ti nainaganan a teksto', 'Plantilia:Hatnote#Dagiti biddut', args.category ) end return p._hatnote(s, { extraclasses = args.extraclasses, selfref = args.selfref }) end function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) options = options or {} local inline = options.inline local hatnote = mw.html.create(inline == 1 and 'span' or 'div') local extraclasses if type(options.extraclasses) == 'string' then extraclasses = options.extraclasses end hatnote :attr('role', 'note') :addClass(p.defaultClasses(inline)) :addClass(extraclasses) :addClass(options.selfref and 'selfref' or nil) :wikitext(s) return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = 'Modulo:Hatnote/styles.css' } } .. tostring(hatnote) end return p 3223u81kxnwv969mi1g2ifjvme7q3em Modulo:Hatnote/pagipadasan 828 35040 392283 391580 2022-08-18T21:55:44Z Lam-ang 3622 Pinabaro manipud iti [[:en:Special:PermanentLink/1105145280|Module:Hatnote/1105145280]] Scribunto text/plain -------------------------------------------------------------------------------- -- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the {{hatnote}} and {{format link}} meta-templates and includes -- -- helper functions for other Lua hatnote modules. -- -------------------------------------------------------------------------------- local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local checkTypeForNamedArg = libraryUtil.checkTypeForNamedArg local mArguments -- lazily initialise [[Modulo:Dagiti argumento]] local yesno -- lazily initialise [[Modulo:Wensaan]] local formatLink -- lazily initialise [[Modulo:Pormaten ti silpo]] ._formatLink local p = {} -------------------------------------------------------------------------------- -- Helper functions -------------------------------------------------------------------------------- local curNs = mw.title.getCurrentTitle().namespace p.missingTargetCat = --Default missing target category, exported for use in related modules ((curNs == 0) or (curNs == 14)) and 'Dagiti artikulo nga agraman kadagiti plantilia ti hatnote a mangpunta kadagiti awan a panid' or nil local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Modulo:Dagiti argumento') return mArguments.getArgs(frame, {parentOnly = true}) end local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to false. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end function p.makeWikitextError(msg, helpLink, addTrackingCategory, title) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- [[Module:Yesno]], and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Modulo:Wensaan') title = title or mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' ([[' .. helpLink .. '|tulong]])' else helpText = '' end -- Make the category text. local category if not title.isTalkPage -- Don't categorise talk pages and title.namespace ~= 2 -- Don't categorise userspace and yesno(addTrackingCategory) ~= false -- Allow opting out then category = 'Dagiti plantilia ti hatnote nga agraman kadagiti biddut' category = mw.ustring.format( '[[%s:%s]]', mw.site.namespaces[14].name, category ) else category = '' end return mw.ustring.format( '<strong class="error">Biddut: %s%s.</strong>%s', msg, helpText, category ) end function p.disambiguate(page, disambiguator) -- Formats a page title with a disambiguation parenthetical, -- i.e. "Example" → "Example (disambiguation)". checkType('disambiguate', 1, page, 'string') checkType('disambiguate', 2, disambiguator, 'string', true) disambiguator = disambiguator or 'panangilawlawag' return mw.ustring.format('%s (%s)', page, disambiguator) end function p.defaultClasses(inline) -- Provides the default hatnote classes as a space-separated string; useful -- for hatnote-manipulation modules like [[Module:Hatnote group]]. return (inline == 1 and 'hatnote-inline' or 'hatnote') .. ' ' .. 'navigation-not-searchable' end -------------------------------------------------------------------------------- -- Hatnote -- -- Produces standard hatnote text. Implements the {{hatnote}} template. -------------------------------------------------------------------------------- function p.hatnote(frame) local args = getArgs(frame) local s = args[1] if not s then return p.makeWikitextError( 'awan ti nainaganan a teksto', 'Plantilia:Hatnote#Dagiti biddut', args.category ) end return p._hatnote(s, { extraclasses = args.extraclasses, selfref = args.selfref }) end function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) options = options or {} local inline = options.inline local hatnote = mw.html.create(inline == 1 and 'span' or 'div') local extraclasses if type(options.extraclasses) == 'string' then extraclasses = options.extraclasses end hatnote :attr('role', 'note') :addClass(p.defaultClasses(inline)) :addClass(extraclasses) :addClass(options.selfref and 'selfref' or nil) :wikitext(s) return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = 'Modulo:Hatnote/styles.css' } } .. tostring(hatnote) end return p 3223u81kxnwv969mi1g2ifjvme7q3em Modulo:Simbolo ti IPA/datos 828 36268 392278 390341 2022-08-18T21:40:51Z Lam-ang 3622 Pinabaro manipud iti [[:en:Special:PermanentLink/1102576395|Module:IPA symbol/data/1102576395]] Scribunto text/plain local data = { sounds = {}, diacritics = {}, univPatterns = { { pat = "g", -- Latin Small Letter G rep = "ɡ" -- Latin Small Letter Script G }, { pat = "ᵍ", -- Modifier Letter Small G rep = "ᶢ" -- Modifier Letter Small Script G }, { pat = "l̴", -- 'l' + Combining Tilde Overlay rep = "ɫ" -- Latin Small Letter L with Middle Tilde }, { pat = "ˁ", -- Modifier Letter Reversed Glottal Stop rep = "ˤ" -- Modifier Letter Small Reversed Glottal Stop }, { pat = "’", -- Right Single Quotation Mark rep = "ʼ" -- Modifier Letter Apostrophe }, { pat = "ȷ", -- Latin Small Letter Dotless J rep = "j" -- Latin Small Letter J }, { pat = "ʇ", -- Latin Small Letter Turned T rep = "ǀ" -- Latin Letter Dental Click }, { pat = "[!ʗ]", -- Exclamation Mark / Latin Letter Stretched C rep = "ǃ" -- Latin Letter Retroflex Click }, { pat = "ǃǃ", -- Latin Letter Retroflex Click x 2 rep = "‼" -- Double Exclamation Mark }, { pat = "ʖ", -- Latin Letter Inverted Glottal Stop rep = "ǁ" -- Latin Letter Lateral Click }, }, keyPatterns = { -- These do not affect the revese look for diacritics { pat = "[͜͡ːˑ◌]", -- Tie bars, length marks, dotted circle rep = "" }, { pat = "ᵏ", -- Modifier Letter Small K rep = "k" -- Latin Small Letter K }, { pat = "ᶢ", -- Modifier Letter Small Script G rep = "ɡ" -- Latin Small Letter Script G }, { pat = "ᵑ", -- Modifier Letter Small Eng rep = "ŋ" -- Latin Small Letter Eng }, } } local rawData = { sounds = { -- PULMONIC CONSONANTS -- Nasals { name = "Voiceless bilabial nasal", symbols = { "m̥" }, }, { name = "Voiced bilabial nasal", symbols = { "m" }, audio = "Bilabial nasal.ogg" }, { name = "Voiced labiodental nasal", symbols = { "ɱ" }, audio = "Labiodental nasal.ogg" }, { name = "Voiced linguolabial nasal", symbols = { "n̼" }, audio = "Linguolabial nasal.ogg" }, { name = "Voiced dental nasal", symbols = { "n̪" }, }, { name = "Voiceless alveolar nasal", symbols = { "n̥" }, }, { name = "Voiced alveolar nasal", symbols = { "n" }, audio = "Alveolar nasal.ogg" }, { name = "Voiced postalveolar nasal", symbols = { "n̠" }, }, { name = "Voiceless retroflex nasal", symbols = { "ɳ̊", "ɳ̥" }, }, { name = "Voiced retroflex nasal", symbols = { "ɳ" }, audio = "Retroflex nasal.ogg" }, { name = "Voiceless alveolo-palatal nasal", symbols = { "n̠̊ʲ", "ɲ̊˖", "ɲ̟̊", "ȵ̊" }, }, { name = "Voiced alveolo-palatal nasal", symbols = { "n̠ʲ", "ɲ˖", "ɲ̟", "ȵ" }, }, { name = "Voiceless palatal nasal", symbols = { "ɲ̊", "ɲ̥" }, }, { name = "Voiced palatal nasal", symbols = { "ɲ" }, audio = "Palatal nasal.ogg" }, { name = "Voiced post-palatal nasal", symbols = { "ɲ˗", "ɲ̠", "ŋ˖", "ŋ̟" }, }, { name = "Voiceless velar nasal", symbols = { "ŋ̊", "ŋ̥" }, }, { name = "Voiced velar nasal", symbols = { "ŋ" }, audio = "Velar nasal.ogg" }, { name = "Voiced pre-uvular nasal", symbols = { "ɴ̟", "ŋ˗", "ŋ̠" }, }, { name = "Voiced uvular nasal", symbols = { "ɴ" }, audio = "Uvular nasal.ogg" }, -- Plosives { name = "Voiceless bilabial plosive", symbols = { "p" }, audio = "Voiceless bilabial plosive.ogg" }, { name = "Voiced bilabial plosive", symbols = { "b" }, audio = "Voiced bilabial plosive.ogg" }, { name = "Voiceless labiodental plosive", symbols = { "p̪", "p͆" }, }, { name = "Voiced labiodental plosive", symbols = { "b̪" }, }, { name = "Voiceless linguolabial plosive", symbols = { "t̼" }, audio = "Voiceless linguolabial stop.ogg" }, { name = "Voiced linguolabial plosive", symbols = { "d̼" }, audio = "Voiced linguolabial stop.ogg" }, { name = "Voiceless dental plosive", symbols = { "t̪" }, audio = "Voiceless dental stop.ogg" }, { name = "Voiced dental plosive", symbols = { "d̪" }, audio = "Voiced dental stop.ogg" }, { name = "Voiceless alveolar plosive", symbols = { "t" }, audio = "Voiceless alveolar plosive.ogg" }, { name = "Voiced alveolar plosive", symbols = { "d" }, audio = "Voiced alveolar plosive.ogg" }, { name = "Voiceless postalveolar plosive", symbols = { "t̠" }, }, { name = "Voiced postalveolar plosive", symbols = { "d̠" }, }, { name = "Voiceless retroflex plosive", symbols = { "ʈ" }, audio = "Voiceless retroflex stop.oga" }, { name = "Voiced retroflex plosive", symbols = { "ɖ" }, audio = "Voiced retroflex stop.oga" }, { name = "Voiceless alveolo-palatal plosive", symbols = { "t̠ʲ", "c̟", "ȶ" }, }, { name = "Voiced alveolo-palatal plosive", symbols = { "d̠ʲ", "ɟ˖", "ɟ̟", "ȡ" }, }, { name = "Voiceless palatal plosive", symbols = { "c" }, audio = "Voiceless palatal plosive.ogg" }, { name = "Voiced palatal plosive", symbols = { "ɟ" }, audio = "Voiced palatal plosive.ogg" }, { name = "Voiceless post-palatal plosive", symbols = { "c̠", "k̟" }, }, { name = "Voiced post-palatal plosive", symbols = { "ɟ˗", "ɟ̠", "ɡ˖", "ɡ̟" }, }, { name = "Voiceless velar plosive", symbols = { "k" }, audio = "Voiceless velar plosive.ogg" }, { name = "Voiced velar plosive", symbols = { "ɡ" }, audio = "Voiced velar plosive 02.ogg" }, { name = "Voiceless pre-uvular plosive", symbols = { "q˖", "q̟", "k̠" }, }, { name = "Voiced pre-uvular plosive", symbols = { "ɢ̟", "ɡ˗", "ɡ̠" }, }, { name = "Voiceless uvular plosive", symbols = { "q" }, audio = "Voiceless uvular plosive.ogg" }, { name = "Voiced uvular plosive", symbols = { "ɢ" }, audio = "Voiced uvular stop.oga" }, { name = "Epiglottal plosive", symbols = { "ʡ" }, audio = "Epiglottal stop.ogg" }, { name = "Glottal stop", symbols = { "ʔ" }, audio = "Glottal stop.ogg" }, -- Affricates { name = "Voiceless bilabial affricate", symbols = { "pɸ" }, audio = "Voiceless bilabial affricate.ogg" }, { name = "Voiced bilabial affricate", symbols = { "bβ" }, }, { name = "Voiceless labiodental affricate", symbols = { "p̪f", "p͆f", "pf" }, audio = "Voiceless labiodental affricate.ogg" }, { name = "Voiced labiodental affricate", symbols = { "b̪v", "bv" }, audio = "Voiced labiodental affricate.ogg" }, { name = "Voiceless dental affricate", symbols = { "t̪s̪", "ts̪", "t̟s̟", "ts̟" }, audio = "Voiceless dental sibilant affricate.oga" }, { name = "Voiced dental affricate", symbols = { "d̪z̪", "dz̪", "d̟z̟", "dz̟" }, audio = "Voiced dental sibilant affricate.oga" }, { name = "Voiceless dental non-sibilant affricate", symbols = { "t̪θ", "t̟θ", "tθ" }, audio = "Voiceless dental non-sibilant affricate.oga" }, { name = "Voiced dental non-sibilant affricate", symbols = { "d̪ð", "d̟ð", "dð" }, audio = "Voiced dental non-sibilant affricate.oga" }, { name = "Voiceless alveolar affricate", symbols = { "ts", "ʦ" }, audio = "Voiceless alveolar sibilant affricate.oga" }, { name = "Voiced alveolar affricate", symbols = { "dz", "ʣ" }, audio = "Voiced alveolar sibilant affricate.oga" }, { name = "Voiceless apico-alveolar affricate", symbols = { "t̺s̺", "ts̺", "t̠s̠", "ts̠" }, }, { name = "Voiced apico-alveolar affricate", symbols = { "d̺z̺", "dz̺", "d̠z̠", "dz̠" }, }, { name = "Voiceless alveolar non-sibilant affricate", symbols = { "tɹ̝̊", "tɹ̥", "tθ̠", "tθ͇" }, }, { name = "Voiced alveolar non-sibilant affricate", symbols = { "dɹ̝", "dɹ", "dð̠", "dð͇" }, }, { name = "Voiceless postalveolar affricate", symbols = { "t̠ʃ", "tʃ", "ʧ" }, audio = "Voiceless palato-alveolar affricate.ogg" }, { name = "Voiced postalveolar affricate", symbols = { "d̠ʒ", "dʒ", "ʤ" }, audio = "Voiced palato-alveolar affricate.ogg" }, { name = "Voiceless postalveolar non-sibilant affricate", symbols = { "t̠ɹ̠̊˔", "tɹ̠̊˔", "tɹ̝̊˗", "t̠ɹ̝̊˗", "t̠ɹ̠̊", "tɹ̠̊" }, audio = "Voiceless postalveolar non-sibilant affricate.ogg" }, { name = "Voiced postalveolar non-sibilant affricate", symbols = { "d̠ɹ̠˔", "dɹ̠˔", "dɹ̝˗", "d̠ɹ̝˗", "d̠ɹ̠", "dɹ̠" }, audio = "Voiced postalveolar non-sibilant affricate.ogg" }, { name = "Voiceless retroflex affricate", symbols = { "ʈʂ", "tʂ" }, audio = "Voiceless retroflex affricate.ogg" }, { name = "Voiced retroflex affricate", symbols = { "ɖʐ", "dʐ" }, audio = "Voiced retroflex affricate.ogg" }, { name = "Voiceless alveolo-palatal affricate", symbols = { "tɕ", "cɕ", "ʨ" }, audio = "Voiceless alveolo-palatal affricate.ogg" }, { name = "Voiced alveolo-palatal affricate", symbols = { "dʑ", "ɟʑ", "ʥ" }, audio = "Voiced alveolo-palatal affricate.ogg" }, { name = "Voiceless palatal affricate", symbols = { "cç" }, audio = "Voiceless palatal affricate.ogg" }, { name = "Voiced palatal affricate", symbols = { "ɟʝ" }, audio = "Voiced palatal affricate.ogg" }, { name = "Voiceless post-palatal affricate", symbols = { "c̠ç˗", "cç˗", "c̠ç̠", "cç̠", "k̟x̟", "kx̟" }, }, { name = "Voiced post-palatal affricate", symbols = { "ɟ˗ʝ˗", "ɟʝ˗", "ɟ̠ʝ̠", "ɟʝ̠", "ɡ˖ɣ˖", "ɡɣ˖", "ɡ̟ɣ̟", "ɡɣ̟" }, }, { name = "Voiceless velar affricate", symbols = { "kx" }, audio = "Voiceless velar affricate.ogg" }, { name = "Voiced velar affricate", symbols = { "ɡɣ" }, audio = "Voiced velar affricate.ogg" }, { name = "Voiceless pre-uvular affricate", symbols = { "q˖χ˖", "qχ˖", "q̟χ̟", "qχ̟", "k̠x̠", "kx̠" }, }, { name = "Voiceless uvular affricate", symbols = { "qχ" }, audio = "Voiceless uvular affricate.ogg" }, { name = "Voiced uvular affricate", symbols = { "ɢʁ" }, audio = "Voiced uvular affricate.ogg" }, { name = "Voiceless pharyngeal affricate", symbols = { "ʡħ" }, }, { name = "Voiceless epiglottal affricate", symbols = { "ʡʜ" }, audio = "Voiceless epiglottal affricate.ogg" }, { name = "Voiced epiglottal affricate", symbols = { "ʡʢ" }, audio = "Voiced epiglottal affricate.ogg" }, { name = "Voiceless glottal affricate", symbols = { "ʔh" }, audio = "Voiceless glottal affricate.ogg" }, -- Fricatives { name = "Voiceless bilabial fricative", symbols = { "ɸ", "β̞̊", "β̥˕" }, audio = "Voiceless bilabial fricative.ogg" }, { name = "Voiced bilabial fricative", symbols = { "β" }, audio = "Voiced bilabial fricative.ogg" }, { name = "Voiceless labiodental fricative", symbols = { "f", "ʋ̥", "f̞" }, audio = "Voiceless labio-dental fricative.ogg" }, { name = "Voiced labiodental fricative", symbols = { "v" }, audio = "Voiced labio-dental fricative.ogg" }, { name = "Voiceless linguolabial fricative", symbols = { "θ̼" }, audio = "Voiceless linguolabial fricative.ogg" }, { name = "Voiced linguolabial fricative", symbols = { "ð̼" }, }, { name = "Voiceless dental fricative", symbols = { "θ", "θ̞" }, audio = "Voiceless dental fricative.ogg" }, { name = "Voiced dental fricative", symbols = { "ð" }, audio = "Voiced dental fricative.ogg" }, { name = "Voiceless dental sibilant fricative", symbols = { "s̪" }, }, { name = "Voiced dental sibilant fricative", symbols = { "z̪" }, }, { name = "Voiceless denti-alveolar fricative", symbols = { "s̻̪", "s̪̻", "s̻͆", "s̟" }, }, { name = "Voiceless alveolar fricative", symbols = { "s" }, audio = "Voiceless alveolar sibilant.ogg" }, { name = "Voiced alveolar fricative", symbols = { "z" }, audio = "Voiced alveolar sibilant.ogg" }, { name = "Voiceless apico-alveolar fricative", symbols = { "s̺" }, }, { name = "Voiced apico-alveolar fricative", symbols = { "z̺" }, }, { name = "Voiceless alveolar retracted fricative", symbols = { "s̠" }, audio = "Voiceless alveolar retracted sibilant.ogg" }, { name = "Voiced alveolar retracted fricative", symbols = { "z̠" }, }, { name = "Voiceless alveolar non-sibilant fricative", symbols = { "θ̠", "θ͇", "ɹ̝̊", "ɹ̥" }, audio = "Voiceless alveolar non-sibilant fricative.ogg" }, { name = "Voiced alveolar non-sibilant fricative", symbols = { "ð̠", "ð͇", "ɹ̝" }, audio = "Voiced alveolar non-sibilant fricative.ogg" }, { name = "Voiceless alveolar tapped fricative", symbols = { "ɾ̞̊" }, }, { name = "Voiced alveolar tapped fricative", symbols = { "ɾ̞" }, audio = "Voiced alveolar tapped fricative.ogg" }, { name = "Voiceless postalveolar fricative", symbols = { "ʃ" }, audio = "Voiceless palato-alveolar sibilant.ogg" }, { name = "Voiced postalveolar fricative", symbols = { "ʒ" }, audio = "Voiced palato-alveolar sibilant.ogg" }, { name = "Voiceless postalveolar non-sibilant fricative", symbols = { "ɹ̠̊˔", "ɹ̝̊˗" }, audio = "Voiceless postalveolar non-sibilant fricative.ogg" }, { name = "Voiced postalveolar non-sibilant fricative", symbols = { "ɹ̠˔", "ɹ̝˗" }, audio = "Voiced postalveolar non-sibilant fricative.ogg" }, { name = "Voiceless retroflex fricative", symbols = { "ʂ" }, audio = "Voiceless retroflex sibilant.ogg" }, { name = "Voiced retroflex fricative", symbols = { "ʐ" }, audio = "Voiced retroflex sibilant.ogg" }, { name = "Voiced retroflex non-sibilant fricative", symbols = { "ɻ̝", "ɻ˔", "ɻ̊" }, }, { name = "Voiceless alveolo-palatal fricative", symbols = { "ɕ" }, audio = "Voiceless alveolo-palatal sibilant.ogg" }, { name = "Voiced alveolo-palatal fricative", symbols = { "ʑ" }, audio = "Voiced alveolo-palatal sibilant.ogg" }, { name = "Voiceless palatal fricative", symbols = { "ç" }, audio = "Voiceless palatal fricative.ogg" }, { name = "Voiced palatal fricative", symbols = { "ʝ", "j̊" }, audio = "Voiced palatal fricative.ogg" }, { name = "Voiceless post-palatal fricative", symbols = { "ç˗", "ç̠", "x̟" }, }, { name = "Voiced post-palatal fricative", symbols = { "ʝ˗", "ʝ̠", "ɣ˖", "ɣ̟" }, }, { name = "Voiceless velar fricative", symbols = { "x", "ɰ̊", "x̞", "ɣ̊˕", "ɣ̞̊" }, audio = "Voiceless velar fricative.ogg" }, { name = "Voiced velar fricative", symbols = { "ɣ" }, audio = "Voiced velar fricative.ogg" }, { name = "Voiceless pre-uvular fricative", symbols = { "χ˖", "χ̟", "x̠" }, }, { name = "Voiced pre-uvular fricative", symbols = { "ʁ̟", "ɣ˗", "ɣ̠" }, }, { name = "Voiceless uvular fricative", symbols = { "χ" }, audio = "Voiceless uvular fricative.ogg" }, { name = "Voiced uvular fricative", symbols = { "ʁ" }, audio = "Voiced uvular fricative.ogg" }, { name = "Voiceless pharyngeal fricative", symbols = { "ħ" }, audio = "Voiceless pharyngeal fricative.ogg" }, { name = "Voiced pharyngeal fricative", symbols = { "ʕ" }, audio = "Voiced pharyngeal fricative.ogg" }, { name = "Voiceless glottal fricative", symbols = { "h" }, audio = "Voiceless glottal fricative.ogg" }, { name = "Voiced glottal fricative", symbols = { "ɦ" }, audio = "Voiced glottal fricative.ogg" }, { name = "Voiceless bidental fricative", symbols = { "h̪͆" }, }, -- Approximants { name = "Voiced bilabial approximant", symbols = { "β̞" }, audio = "Bilabial approximant.ogg" }, { name = "Voiced labiodental approximant", symbols = { "ʋ" }, audio = "Labiodental approximant.ogg" }, { name = "Voiced dental approximant", symbols = { "ð̞" }, audio = "Voiced dental approximant.ogg" }, { name = "Voiced alveolar approximant", symbols = { "ɹ" }, audio = "Alveolar approximant.ogg" }, { name = "Voiced postalveolar approximant", symbols = { "ɹ̠" }, audio = "Postalveolar approximant.ogg" }, { name = "Voiced retroflex approximant", symbols = { "ɻ" }, audio = "Retroflex Approximant2.oga" }, { name = "Voiced palatal approximant", symbols = { "j", "ʝ˕", "ʝ̞" }, audio = "Palatal approximant.ogg" }, { name = "Voiced post-palatal approximant", symbols = { "j˗", "j̠", "ɰ̟", "ɰ˖", "ʝ˕˗", "ʝ˗˕", "ʝ̞˗", "ɣ˕˖", "ɣ˖˕", "ɣ̞˖" }, audio = "Post-palatal approximant.ogg" }, { name = "Voiced velar approximant", symbols = { "ɰ", "ɣ˕", "ɣ̞" }, audio = "Voiced velar approximant.ogg" }, { name = "Voiced uvular approximant", symbols = { "ʁ̞" }, audio = "Voiced Uvular Approximant.ogg" }, { name = "Voiced pharyngeal approximant", symbols = { "ʕ̞" }, }, { name = "Voiced epiglottal approximant", symbols = { "ʢ̞" }, }, { name = "Creaky-voiced glottal approximant", symbols = { "ʔ̞", "ʔ̰" }, }, -- Taps/flaps { name = "Voiced bilabial flap", symbols = { "ⱱ̟", "b̆" }, }, { name = "Voiced labiodental flap", symbols = { "ⱱ" }, audio = "Labiodental flap.ogg" }, { name = "Voiced linguolabial tap", symbols = { "ɾ̼" }, }, { name = "Voiced dental tap or flap", symbols = { "ɾ̪" }, article = "Dental tap", }, { name = "Voiceless alveolar tap or flap", symbols = { "ɾ̥" }, article = "Voiceless alveolar tap", }, { name = "Voiced alveolar tap or flap", symbols = { "ɾ" }, article = "Voiced dental and alveolar taps and flaps", audio = "Alveolar tap.ogg" }, { name = "Voiced postalveolar flap", symbols = { "ɾ̠" }, }, { name = "Voiced alveolar nasal tap or flap", symbols = { "ɾ̃", "n̆" }, article = "Alveolar nasal tap", }, { name = "Voiceless retroflex flap", symbols = { "ɽ̊" }, }, { name = "Voiced retroflex flap", symbols = { "ɽ" }, audio = "Retroflex flap.ogg" }, { name = "Voiced velar tap", symbols = { "ɡ̆" }, }, { name = "Voiced uvular tap or flap", symbols = { "ɢ̆", "ʀ̆" }, article = "Voiced uvular tap and flap", }, { name = "Voiced epiglottal tap", symbols = { "ʡ̆", "ʢ̆" }, audio = "Epiglottal flap.oga" }, -- Trills { name = "Voiceless bilabial trill", symbols = { "ʙ̥" }, audio = "Voiceless bilabial trill with aspiration.ogg" }, { name = "Voiced bilabial trill", symbols = { "ʙ" }, audio = "Bilabial trill.ogg" }, { name = "Voiced linguolabial trill", symbols = { "r̼" }, audio = "Linguolabial trill.ogg" }, { name = "Voiced dental trill", symbols = { "r̪" }, }, { name = "Voiceless alveolar trill", symbols = { "r̥" }, audio = "Voiceless alveolar trill.ogg" }, { name = "Voiced alveolar trill", symbols = { "r" }, audio = "Alveolar trill.ogg" }, { name = "Voiceless alveolar fricative trill", symbols = { "r̝̊" }, }, { name = "Voiced alveolar fricative trill", symbols = { "r̝" }, audio = "Raised alveolar non-sonorant trill.ogg" }, { name = "Voiced postalveolar trill", symbols = { "r̠" }, audio = "Voiced postalveolar trill.ogg" }, { name = "Voiceless retroflex trill", symbols = { "ɽ̊r̥", "ɽr̥" }, }, { name = "Voiced retroflex trill", symbols = { "ɽr" }, audio = "Voiced retroflex trill.ogg" }, { name = "Voiceless pre-uvular fricative trill", symbols = { "ʀ̝̊˖", "ʀ̟̊˔" }, }, { name = "Voiced pre-uvular fricative trill", symbols = { "ʀ̝˖", "ʀ̟˔" }, }, { name = "Voiceless uvular trill", symbols = { "ʀ̥" }, audio = "Voiceless uvular trill.ogg" }, { name = "Voiced uvular trill", symbols = { "ʀ" }, audio = "Uvular trill.ogg" }, { name = "Voiceless uvular fricative trill", symbols = { "ʀ̝̊" }, }, { name = "Voiced uvular fricative trill", symbols = { "ʀ̝" }, }, { name = "Voiceless epiglottal trill", symbols = { "ʜ" }, audio = "Voiceless epiglottal trill.ogg" }, { name = "Voiced epiglottal trill", symbols = { "ʢ" }, audio = "Voiced epiglottal trill 2.ogg" }, -- Lateral affricates { name = "Voiceless alveolar lateral affricate", symbols = { "tɬ", "ƛ" }, audio = "Voiceless alveolar lateral affricate.ogg" }, { name = "Voiced alveolar lateral affricate", symbols = { "dɮ" }, audio = "Voiced alveolar lateral affricate.ogg" }, { name = "Voiceless retroflex lateral affricate", symbols = { "ʈɭ̊˔","ʈɭ̊", "tꞎ", "ʈꞎ" }, }, { name = "Voiced retroflex lateral affricate", symbols = { "ɖɭ˔","ɖɭ", "d𝼅", "ɖ𝼅" }, }, { name = "Voiceless palatal lateral affricate", symbols = { "cʎ̝̊", "cʎ̥", "c𝼆", "t𝼆" }, audio = "Voiceless palatal lateral affricate.ogg" }, { name = "Voiced palatal lateral affricate", symbols = { "ɟʎ̝", "ɟʎ", "ɟ𝼆̬", "d𝼆̬" }, }, { name = "Voiceless velar lateral affricate", symbols = { "kʟ̝̊", "kʟ̥", "k𝼄" }, audio = "Voiceless velar lateral affricate.ogg" }, { name = "Voiced velar lateral affricate", symbols = { "ɡʟ̝", "ɡʟ", "ɡ𝼄̬" }, audio = "Voiced velar lateral affricate.ogg" }, -- Lateral fricatives { name = "Voiceless dental lateral fricative", symbols = { "ɬ̪" }, }, { name = "Voiced dental lateral fricative", symbols = { "ɮ̪", "ɮ͆" }, }, { name = "Voiceless alveolar lateral fricative", symbols = { "ɬ", "l̥" }, audio = "Voiceless alveolar lateral fricative.ogg" }, { name = "Voiced alveolar lateral fricative", symbols = { "ɮ" }, audio = "Voiced alveolar lateral fricative.ogg" }, { name = "Voiceless retroflex lateral fricative", symbols = { "ɭ̊˔", "ꞎ", "ɭ̊" }, audio = "Voiceless retroflex lateral fricative.ogg" }, { name = "Voiced retroflex lateral fricative", symbols = { "ɭ˔", "𝼅" }, }, { name = "Voiceless alveolo-palatal lateral fricative", symbols = { "ɬ̠ʲ", "ʎ̝̊˖", "ȴ̊˔", "l̠̊ʲ", "ʎ̟̊", "ȴ̊" }, }, { name = "Voiceless palatal lateral fricative", symbols = { "ʎ̝̊", "ʎ̥", "𝼆" }, audio = "Voiceless palatal lateral fricative.ogg" }, { name = "Voiced palatal lateral fricative", symbols = { "ʎ̝", "𝼆̬" }, }, { name = "Voiceless velar lateral fricative", symbols = { "ʟ̝̊", "ʟ̥", "𝼄" }, audio = "Voiceless velar lateral fricative.ogg" }, { name = "Voiced velar lateral fricative", symbols = { "ʟ̝", "𝼄̬" }, audio = "Voiced velar lateral fricative.ogg" }, -- Lateral approximants { name = "Voiced dental lateral approximant", symbols = { "l̪" }, audio = "Voiced dental lateral approximant.ogg" }, { name = "Voiced alveolar lateral approximant", symbols = { "l" }, audio = "Alveolar lateral approximant.ogg" }, { name = "Voiced postalveolar lateral approximant", symbols = { "l̠" }, audio = "Voiced postalveolar lateral approximant.ogg" }, { name = "Voiced retroflex lateral approximant", symbols = { "ɭ" }, audio = "Retroflex lateral approximant.ogg" }, { name = "Voiced alveolo-palatal lateral approximant", symbols = { "l̠ʲ", "ʎ̟", "ȴ" }, }, { name = "Voiced palatal lateral approximant", symbols = { "ʎ" }, audio = "Palatal lateral approximant.ogg" }, { name = "Voiced velar lateral approximant", symbols = { "ʟ" }, audio = "Velar lateral approximant.ogg" }, { name = "Voiced uvular lateral approximant", symbols = { "ʟ̠" }, audio = "Uvular lateral approximant.ogg" }, -- Lateral taps/flaps { name = "Voiceless alveolar lateral flap", symbols = { "ɺ̥" }, }, { name = "Voiced alveolar lateral flap", symbols = { "ɺ" }, }, { name = "Voiceless retroflex lateral flap", symbols = { "ɭ̥̆", "𝼈̥" }, }, { name = "Voiced retroflex lateral flap", symbols = { "ɭ̆", "𝼈" }, }, { name = "Voiced palatal lateral flap", symbols = { "ʎ̆" }, }, { name = "Voiced velar lateral tap", symbols = { "ʟ̆" }, }, -- NON-PULMONIC CONSONANTS -- Ejective stops { name = "Bilabial ejective stop", symbols = { "pʼ" }, audio = "Bilabial ejective plosive.ogg" }, { name = "Dental ejective stop", symbols = { "t̪ʼ" }, }, { name = "Alveolar ejective stop", symbols = { "tʼ" }, audio = "Alveolar ejective plosive.ogg" }, { name = "Retroflex ejective stop", symbols = { "ʈʼ" }, audio = "Retroflex ejective.ogg" }, { name = "Palatal ejective stop", symbols = { "cʼ" }, audio = "Palatal ejective.ogg" }, { name = "Velar ejective stop", symbols = { "kʼ" }, audio = "Velar ejective plosive.ogg" }, { name = "Uvular ejective stop", symbols = { "qʼ" }, audio = "Uvular ejective plosive.ogg" }, { name = "Epiglottal ejective", symbols = { "ʡʼ" }, audio = "Epiglottal ejective.ogg" }, -- Ejective affricates { name = "Dental ejective affricate", symbols = { "t̪θʼ", "t̟θʼ", "tθʼ" }, audio = "Dental ejective affricate.ogg" }, { name = "Alveolar ejective affricate", symbols = { "tsʼ" }, audio = "Alveolar ejective affricate.ogg" }, { name = "Palato-alveolar ejective affricate", symbols = { "t̠ʃʼ", "tʃʼ" }, audio = "Palato-alveolar ejective affricate.ogg" }, { name = "Retroflex ejective affricate", symbols = { "ʈʂʼ", "tʂʼ" }, audio = "Retroflex ejective affricate.ogg" }, { name = "Alveolo-palatal ejective affricate", symbols = { "t̠ɕʼ", "tɕʼ", "cɕʼ" }, }, { name = "Palatal ejective affricate", symbols = { "cçʼ" }, audio = "Palatal ejective affricate.ogg" }, { name = "Velar ejective affricate", symbols = { "kxʼ" }, audio = "Velar ejective affricate.ogg" }, { name = "Uvular ejective affricate", symbols = { "qχʼ" }, audio = "Uvular ejective affricate.ogg" }, -- Ejective fricatives { name = "Bilabial ejective fricative", symbols = { "ɸʼ" }, }, { name = "Labiodental ejective fricative", symbols = { "fʼ" }, audio = "Labiodental ejective fricative.ogg" }, { name = "Dental ejective fricative", symbols = { "θʼ" }, audio = "Dental ejective fricative.ogg" }, { name = "Alveolar ejective fricative", symbols = { "sʼ" }, audio = "Alveolar ejective fricative.ogg" }, { name = "Palato-alveolar ejective fricative", symbols = { "ʃʼ" }, audio = "Palato-alveolar ejective fricative.ogg" }, { name = "Retroflex ejective fricative", symbols = { "ʂʼ" }, audio = "Retroflex ejective fricative.ogg" }, { name = "Alveolo-palatal ejective fricative", symbols = { "ɕʼ" }, audio = "Alveolo-palatal ejective fricative.ogg" }, { name = "Palatal ejective fricative", symbols = { "çʼ" }, audio = "Palatal ejective fricative.ogg" }, { name = "Velar ejective fricative", symbols = { "xʼ" }, audio = "Velar ejective fricative.ogg" }, { name = "Uvular ejective fricative", symbols = { "χʼ" }, audio = "Uvular ejective fricative.ogg" }, -- Lateral ejective affricates { name = "Alveolar lateral ejective affricate", symbols = { "tɬʼ", "ƛʼ" }, audio = "Alveolar lateral ejective affricate.ogg" }, { name = "Palatal lateral ejective affricate", symbols = { "cʎ̝̊ʼ", "cʎ̥ʼ" }, audio = "Palatal lateral ejective affricate.ogg" }, { name = "Velar lateral ejective affricate", symbols = { "kʟ̝̊ʼ", "kʟ̥ʼ" }, audio = "Velar lateral ejective affricate.ogg" }, -- Lateral ejective fricatives { name = "Alveolar lateral ejective fricative", symbols = { "ɬʼ" }, audio = "Alveolar lateral ejective fricative.ogg" }, -- Tenuis clicks { name = "Tenuis bilabial click", symbols = { "ʘ", "kʘ" }, audio = "Clic bilabial sourd.ogg" }, { name = "Tenuis dental click", symbols = { "ǀ", "kǀ" }, audio = "Dental click.ogg" }, { name = "Tenuis alveolar click", symbols = { "ǃ", "kǃ" }, audio = "Postalveolar click.ogg" }, { name = "Tenuis palatal click", symbols = { "ǂ", "kǂ" }, audio = "Palatoalveolar click.ogg" }, { name = "Back-released velar click", symbols = { "ʞ" }, }, -- Voiced clicks { name = "Voiced bilabial click", symbols = { "ʘ̬", "ɡʘ" }, }, { name = "Voiced dental click", symbols = { "ǀ̬", "ɡǀ" }, }, { name = "Voiced alveolar click", symbols = { "ǃ̬", "ɡǃ" }, }, { name = "Tenuis retroflex click", symbols = { "‼", "𝼊" }, }, { name = "Voiced palatal click", symbols = { "ǂ̬", "ɡǂ" }, }, { name = "Voiced retroflex click", symbols = { "‼̬", "ɡ‼", "ɡ𝼊" }, }, -- Nasal clicks { name = "Bilabial nasal click", symbols = { "ʘ̃", "ŋʘ" }, audio = "Bilabial nasal click.ogg" }, { name = "Dental nasal click", symbols = { "ǀ̃", "ŋǀ" }, }, { name = "Alveolar nasal click", symbols = { "ǃ̃", "ŋǃ" }, audio = "Intervocalic nasal alveolar clicks.ogg" }, { name = "Palatal nasal click", symbols = { "ǂ̃", "ŋǂ" }, }, { name = "Retroflex nasal click", symbols = { "‼̃", "ŋ‼", "ŋ𝼊" }, }, -- Lateral clicks { name = "Tenuis alveolar lateral click", symbols = { "ǁ", "kǁ" }, audio = "Alveolar lateral click.ogg" }, { name = "Voiced alveolar lateral click", symbols = { "ǁ̬", "ɡǁ" }, }, -- Lateral nasal clicks { name = "Alveolar lateral nasal click", symbols = { "ǁ̃", "ŋǁ" }, }, -- Glottalized clicks { name = "Glottalized bilabial nasal click", symbols = { "ʘ̃ˀ", "ʘˀ", "ŋ̊ʘˀ", "ŋʘˀ" }, }, { name = "Glottalized dental nasal click", symbols = { "ǀ̃ˀ", "ǀˀ", "ŋ̊ǀˀ", "ŋǀˀ" }, }, { name = "Glottalized alveolar nasal click", symbols = { "ǃ̃ˀ", "ǃˀ", "ŋ̊ǃˀ", "ŋǃˀ" }, }, { name = "Glottalized retroflex nasal click", symbols = { "‼̃ˀ", "‼ˀ", "ŋ‼ˀ", "ŋ̊‼ˀ" }, }, { name = "Glottalized palatal nasal click", symbols = { "ǂ̃ˀ", "ǂˀ", "ŋ̊ǂˀ", "ŋǂˀ" }, }, { name = "Glottalized alveolar lateral nasal click", symbols = { "ǁ̃ˀ", "ǁˀ", "ŋ̊ǁˀ", "ŋǁˀ" }, }, -- Implosives { name = "Voiceless bilabial implosive", symbols = { "ɓ̥", "ƥ" }, }, { name = "Voiced bilabial implosive", symbols = { "ɓ" }, audio = "Voiced bilabial implosive.ogg" }, { name = "Voiceless alveolar implosive", symbols = { "ɗ̥", "ƭ" }, }, { name = "Voiced alveolar implosive", symbols = { "ɗ" }, audio = "Voiced alveolar implosive.ogg" }, { name = "Voiceless retroflex implosive", symbols = { "ᶑ̊", "ᶑ̥", "𝼉" }, }, { name = "Voiced retroflex implosive", symbols = { "ᶑ" }, }, { name = "Voiceless palatal implosive", symbols = { "ʄ̊", "ʄ̥", "ƈ" }, }, { name = "Voiced palatal implosive", symbols = { "ʄ" }, audio = "Voiced palatal implosive.ogg" }, { name = "Voiceless velar implosive", symbols = { "ɠ̊", "ƙ" }, }, { name = "Voiced velar implosive", symbols = { "ɠ" }, audio = "Voiced velar implosive.ogg" }, { name = "Voiceless uvular implosive", symbols = { "ʛ̥", "ʠ" }, }, { name = "Voiced uvular implosive", symbols = { "ʛ" }, audio = "Voiced uvular implosive.ogg" }, -- CO-ARTICULATED CONSONANTS -- Co-articulated nasals { name = "Voiced labial–alveolar nasal", symbols = { "nm" }, article = "Labial–coronal consonant", }, { name = "Voiced labial–velar nasal", symbols = { "ŋm" }, audio = "Labial-velar nasal stop.ogg" }, -- Co-articulated plosives { name = "Voiceless labial–alveolar plosive", symbols = { "tp" }, article = "Labial–coronal consonant", }, { name = "Voiced labial–alveolar plosive", symbols = { "db" }, article = "Labial–coronal consonant", }, { name = "Voiceless labial–velar plosive", symbols = { "kp" }, audio = "Voiceless labial-velar plosive.ogg" }, { name = "Voiced labial–velar plosive", symbols = { "ɡb" }, audio = "Voiced labial-velar plosive.ogg" }, { name = "Voiceless uvular–epiglottal plosive", symbols = { "qʡ" }, }, -- Co-articulated continuants { name = "Voiceless labial–palatal fricative", symbols = { "ɥ̊" }, }, { name = "Voiced labial–palatal approximant", symbols = { "ɥ" }, audio = "LL-Q150 (fra)-WikiLucas00-IPA ɥ.wav" }, { name = "Voiceless labial–velar fricative", symbols = { "ʍ", "w̥", "hw" }, audio = "Voiceless labio-velar fricative.ogg" }, { name = "Voiced labial–velar approximant", symbols = { "w" }, audio = "Voiced labio-velar approximant.ogg" }, { name = "Compressed voiced labial–velar approximant", symbols = { "wᵝ", "ɰᵝ" }, article = "Voiced labial–velar approximant", }, { name = "Sj-sound", symbols = { "ɧ" }, audio = "Voiceless dorso-palatal velar fricative.ogg" }, -- Co-articulated lateral approximants { name = "Velarized dental lateral approximant", symbols = { "ɫ̪", "l̪ˠ" }, }, { name = "Velarized alveolar lateral approximant", symbols = { "ɫ", "lˠ" }, audio = "Velarized alveolar lateral approximant.ogg" }, -- Nasal approximants { name = "Nasal palatal approximant", symbols = { "j̃" }, }, { name = "Nasal labial–velar approximant", symbols = { "w̃" }, }, { name = "Voiceless nasal glottal approximant", symbols = { "h̃" }, }, -- VOWELS -- Close vowels { name = "Close front unrounded vowel", symbols = { "i" }, audio = "Close front unrounded vowel.ogg" }, { name = "Close front rounded vowel", symbols = { "y" }, audio = "Close front rounded vowel.ogg" }, { name = "Close front compressed vowel", symbols = { "y͍", "iᵝ" }, audio = "Close front rounded vowel.ogg" }, { name = "Close front protruded vowel", symbols = { "y̫", "yʷ", "iʷ" }, }, { name = "Close central unrounded vowel", symbols = { "ɨ", "ï" }, audio = "Close central unrounded vowel.ogg" }, { name = "Close central rounded vowel", symbols = { "ʉ", "ü" }, audio = "Close central rounded vowel.ogg" }, { name = "Close central protruded vowel", symbols = { "ʉ̫", "ʉʷ", "ɨʷ" }, audio = "Close central rounded vowel.ogg" }, { name = "Close central compressed vowel", symbols = { "ÿ", "ɨᵝ" }, }, { name = "Close back unrounded vowel", symbols = { "ɯ" }, audio = "Close back unrounded vowel.ogg" }, { name = "Close back rounded vowel", symbols = { "u" }, audio = "Close back rounded vowel.ogg" }, { name = "Close back protruded vowel", symbols = { "u̫", "uʷ", "ɯʷ" }, audio = "Close back rounded vowel.ogg" }, { name = "Close back compressed vowel", symbols = { "u͍", "ɯᵝ" }, audio = "Ja-U.oga" }, -- Near-close vowels { name = "Near-close near-front unrounded vowel", symbols = { "ɪ", "ɪ̟", "i̞", "e̝" }, audio = "Near-close near-front unrounded vowel.ogg" }, { name = "Near-close near-front rounded vowel", symbols = { "ʏ", "y̞", "y˕", "ø̝" }, audio = "Near-close near-front rounded vowel.ogg" }, { name = "Near-close near-front compressed vowel", symbols = { "ʏ͍", "ɪᵝ" }, audio = "Near-close near-front rounded vowel.ogg" }, { name = "Near-close near-front protruded vowel", symbols = { "ʏ̫", "ʏʷ", "ɪʷ" }, }, { name = "Near-close central unrounded vowel", symbols = { "ɪ̈", "ɨ̞", "ɘ̝" }, audio = "Near-close central unrounded vowel.ogg" }, { name = "Near-close central rounded vowel", symbols = { "ʊ̈", "ʊ̟", "ʉ̞", "ɵ̝" }, }, { name = "Near-close central protruded vowel", symbols = { "ʊ̫̈", "ʉ̫˕", "ʊ̈ʷ", "ʉ̞ʷ", "ɪ̈ʷ", "ɨ̞ʷ" }, }, { name = "Near-close central compressed vowel", symbols = { "ʏ̈", "ɨ̞ᵝ" }, }, { name = "Near-close near-back unrounded vowel", symbols = { "ɯ̞", "ɯ̽" }, audio = "Near-close near-back unrounded vowel.ogg" }, { name = "Near-close near-back rounded vowel", symbols = { "ʊ", "u̞", "o̝" }, audio = "Near-close near-back rounded vowel.ogg" }, { name = "Near-close near-back protruded vowel", symbols = { "ʊ̫", "ʊʷ", "ɯ̽ʷ", "ɤ̝̈ʷ", "u̫˕", "u̞ʷ", "ɯ̞ʷ", "ɤ̝ʷ" }, audio = "Near-close near-back rounded vowel.ogg" }, { name = "Near-close near-back compressed vowel", symbols = { "ʊ͍", "ɯ̽ᵝ", "ɯ̞̈ᵝ", "ɯ̞ᵝ" }, }, -- Close-mid vowels { name = "Close-mid front unrounded vowel", symbols = { "e" }, audio = "Close-mid front unrounded vowel.ogg" }, { name = "Close-mid front rounded vowel", symbols = { "ø" }, audio = "Close-mid front rounded vowel.ogg" }, { name = "Close-mid front compressed vowel", symbols = { "ø͍", "eᵝ" }, audio = "Close-mid front rounded vowel.ogg" }, { name = "Close-mid front protruded vowel", symbols = { "ø̫", "øʷ", "eʷ" }, }, { name = "Close-mid central unrounded vowel", symbols = { "ɘ", "ë", "ɤ̈" }, audio = "Close-mid central unrounded vowel.ogg" }, { name = "Close-mid central rounded vowel", symbols = { "ɵ", "ö" }, audio = "Close-mid central rounded vowel.ogg" }, { name = "Close-mid central protruded vowel", symbols = { "ɵ̫", "ɵʷ", "ɘʷ" }, audio = "Close-mid central rounded vowel.ogg" }, { name = "Close-mid central compressed vowel", symbols = { "ø̈", "ɘᵝ" }, }, { name = "Close-mid back unrounded vowel", symbols = { "ɤ" }, audio = "Close-mid back unrounded vowel.ogg" }, { name = "Close-mid back rounded vowel", symbols = { "o" }, audio = "Close-mid back rounded vowel.ogg" }, { name = "Close-mid back protruded vowel", symbols = { "o̫", "oʷ", "ɤʷ" }, audio = "Close-mid back rounded vowel.ogg" }, { name = "Close-mid back compressed vowel", symbols = { "o͍", "ɤᵝ" }, }, -- Mid vowels { name = "Mid front unrounded vowel", symbols = { "e̞", "ɛ̝" }, audio = "Mid front unrounded vowel.ogg" }, { name = "Mid front rounded vowel", symbols = { "ø̞", "œ̝" }, audio = "Mid front rounded vowel.ogg" }, { name = "Mid front compressed vowel", symbols = { "ø͍˕", "œ͍˔", "e̞ᵝ", "ɛ̝ᵝ" }, }, { name = "Mid front protruded vowel", symbols = { "ø̫˕", "œ̫˔", "ø̞ʷ", "œ̝ʷ", "e̞ʷ", "ɛ̝ʷ" }, }, { name = "Mid central vowel", symbols = { "ə" }, audio = "Mid-central vowel.ogg" }, { name = "Mid central unrounded vowel", symbols = { "ə̜", "ɘ̞", "ɜ̝" }, audio = "Mid-central vowel.ogg" }, { name = "Mid central rounded vowel", symbols = { "ə̹", "ɵ̞", "ɞ̝" }, audio = "Mid central rounded vowel.ogg" }, { name = "Mid back unrounded vowel", symbols = { "ɤ̞", "ʌ̝" }, }, { name = "Mid back rounded vowel", symbols = { "o̞", "ɔ̝" }, audio = "Mid back rounded vowel.ogg" }, -- Open-mid vowels { name = "Open-mid front unrounded vowel", symbols = { "ɛ" }, audio = "Open-mid front unrounded vowel.ogg" }, { name = "Open-mid front rounded vowel", symbols = { "œ" }, audio = "Open-mid front rounded vowel.ogg" }, { name = "Open-mid front compressed vowel", symbols = { "œ͍", "ɛᵝ" }, audio = "Open-mid front rounded vowel.ogg" }, { name = "Open-mid front protruded vowel", symbols = { "œ̫", "œʷ", "ɛʷ" }, }, { name = "Open-mid central unrounded vowel", symbols = { "ɜ", "ɛ̈", "ʌ̈" }, audio = "Open-mid central unrounded vowel.ogg" }, { name = "Open-mid central rounded vowel", symbols = { "ɞ" }, audio = "Open-mid central rounded vowel.ogg" }, { name = "Open-mid back unrounded vowel", symbols = { "ʌ" }, audio = "PR-open-mid back unrounded vowel2.ogg" }, { name = "Open-mid back rounded vowel", symbols = { "ɔ" }, audio = "PR-open-mid back rounded vowel.ogg" }, -- Near-open vowels { name = "Near-open front unrounded vowel", symbols = { "æ" }, audio = "Near-open front unrounded vowel.ogg" }, { name = "Near-open central vowel", symbols = { "ɐ" }, audio = "Near-open central unrounded vowel.ogg" }, { name = "Near-open central unrounded vowel", symbols = { "ɐ̜", "ɜ̞" }, audio = "PR-near-open central unrounded vowel.ogg" }, { name = "Near-open central rounded vowel", symbols = { "ɐ̹", "ɞ̞" }, }, -- Open vowels { name = "Open front unrounded vowel", symbols = { "a", "æ̞" }, audio = "PR-open front unrounded vowel.ogg" }, { name = "Open front rounded vowel", symbols = { "ɶ" }, audio = "Open front rounded vowel.ogg" }, { name = "Open central unrounded vowel", symbols = { "ä", "ɑ̈", "ɐ̞" }, audio = "Open central unrounded vowel.ogg" }, { name = "Open central rounded vowel", symbols = { "ɒ̈", "ɶ̈" }, audio = "Open central rounded vowel.ogg" }, { name = "Open back unrounded vowel", symbols = { "ɑ" }, audio = "Open back unrounded vowel.ogg" }, { name = "Open back rounded vowel", symbols = { "ɒ" }, audio = "PR-open back rounded vowel.ogg" }, { name = "R-colored vowel", symbols = { "ɚ", "ɝ", "ɹ̩", "ɻ̍" }, audio = "En-us-er.ogg" }, -- SUPRASEGMENTALS { name = "Primary stress", symbols = { "ˈ" }, article = "Stress (linguistics)", }, { name = "Secondary stress", symbols = { "ˌ" }, }, { name = "Minor (foot) group", symbols = { "|" }, article = "Prosodic unit", }, { name = "Major (intonation) group", symbols = { "‖" }, article = "Prosodic unit", }, { name = "Syllable break", symbols = { "." }, article = "Syllable", }, { name = "Linking (absence of a break)", symbols = { "‿" }, article = "Connected speech", }, -- TONES AND WORD ACCENTS { name = "Downstep", symbols = { "ꜜ" }, }, { name = "Upstep", symbols = { "ꜛ" }, }, { name = "Global rise", symbols = { "↗" }, article = "Intonation (linguistics)", }, { name = "Global fall", symbols = { "↘" }, article = "Intonation (linguistics)", }, -- EXTENDED IPA (extIPA) { name = "Bilabial percussive", symbols = { "ʬ" }, }, { name = "Bidental percussive", symbols = { "ʭ" }, }, { name = "Velopharyngeal fricative", symbols = { "ʩ" }, }, { name = "Voiceless alveolar lateral–median fricative", symbols = { "ʪ" }, article = "Lateral release (phonetics)", }, { name = "Voiced alveolar lateral–median fricative", symbols = { "ʫ" }, article = "Lateral release (phonetics)", }, { name = "Ingressive airflow", symbols = { "↓" }, article = "Ingressive sound", }, { name = "Egressive airflow", symbols = { "↑" }, article = "Egressive sound", }, { name = "Apical r", symbols = { "ɹ̺" }, article = "Pronunciation of English /r/", }, { name = "Bunched r", symbols = { "ɹ̈" }, article = "Pronunciation of English /r/", }, { name = "Sublaminal lower alveolar percussive", symbols = { "¡" }, article = "Percussive consonant", }, { name = "Percussive alveolar click", symbols = { "ǃ¡" }, }, { name = "Buccal interdental trill", symbols = { "ↀr̪͆" }, article = "Blowing a raspberry", }, -- NON-IPA { name = "Morphological boundary", symbols = { "#" }, article = "Word stem", }, { name = "Zero", symbols = { "∅" }, article = "Zero (linguistics)", }, }, diacritics = { -- DIACRITICS { name = "Voiceless", symbols = { "̥", "̊", "ḁ", "å", "ů", "ẘ", "ẙ" }, }, { name = "Voiced", symbols = { "̬" }, article = "Voice (phonetics)", }, { name = "Aspirated", symbols = { "ʰ" }, article = "Aspirated consonant", }, { name = "More rounded", symbols = { "̹", "͗", "˒" }, article = "Roundedness", }, { name = "Less rounded", symbols = { "̜", "͑", "˓", "͍" }, article = "Roundedness", }, { name = "Advanced", symbols = { "̟", "˖" }, article = "Relative articulation#Advanced and retracted", }, { name = "Retracted", symbols = { "̠", "˗" }, article = "Relative articulation#Advanced and retracted", }, { name = "Centralized", symbols = { "̈" }, article = "Relative articulation#Centralized vowels", }, { name = "Mid-centralized", symbols = { "̽" }, article = "Relative articulation#Mid-centralized vowel", }, { name = "Syllabic", symbols = { "̩", "̍" }, article = "Syllabic consonant", }, { name = "Non-syllabic", symbols = { "̯", "̑" }, article = "Semivowel", }, { name = "Rhoticity", symbols = { "˞" }, article = "R-colored vowel", audio = "En-us-er.ogg" }, { name = "Breathy voiced", symbols = { "̤", "ṳ", "ʱ" }, article = "Breathy voice", }, { name = "Creaky voiced", symbols = { "̰", "ḛ", "ḭ", "ṵ" }, article = "Creaky voice", }, { name = "Linguolabial", symbols = { "̼" }, article = "Linguolabial consonant", }, { name = "Labialized", symbols = { "ʷ", "̫" }, article = "Labialization", }, { name = "Palatalized", symbols = { "ʲ" }, article = "Palatalization (phonetics)", }, { name = "Velarized", symbols = { "ˠ" }, article = "Velarization", }, { name = "Pharyngealized", symbols = { "ˤ" }, article = "Pharyngealization", }, { name = "Velarized or pharyngealized", symbols = { "̴", "ᵯ", "ᵰ", "ᵱ", "ᵬ", "ᵮ", "ᵵ", "ᵭ", "ᵴ", "ᵶ", "ᵳ", "ᵲ" }, article = "Pharyngealization", }, { name = "Raised", symbols = { "̝", "˔" }, article = "Relative articulation#Raised and lowered", }, { name = "Lowered", symbols = { "̞", "˕" }, article = "Relative articulation#Raised and lowered", }, { name = "Advanced tongue root", symbols = { "̘" }, }, { name = "Retracted tongue root", symbols = { "̙" }, }, { name = "Dental", symbols = { "̪", "͆" }, article = "Dental consonant", }, { name = "Apical", symbols = { "̺" }, article = "Apical consonant", }, { name = "Laminal", symbols = { "̻" }, article = "Laminal consonant", }, { name = "Nasalized", symbols = { "̃", "ṽ" }, article = "Nasalization", }, { name = "Nasal vowel", symbols = { "ĩ", "ỹ", "ɨ̃", "ʉ̃", "ɯ̃", "ũ", "ɪ̃", "ʏ̃", "ʊ̃", "ẽ", "ø̃", "ɘ̃", "ɵ̃", "ɤ̃", "õ", "ə̃", "ɛ̃", "œ̃", "ɜ̃", "ɞ̃", "ʌ̃", "ɔ̃", "æ̃", "ɐ̃", "ã", "ɶ̃", "ä̃", "ɑ̃", "ɒ̃" }, }, { name = "Nasal release", symbols = { "ⁿ" }, }, { name = "Lateral release", symbols = { "ˡ" }, article = "Lateral release (phonetics)", }, { name = "No audible release", symbols = { "̚" }, }, { name = "Ejective", symbols = { "ʼ" }, article = "Ejective consonant", }, { name = "Glottalized", symbols = { "ˀ" }, article = "Glottalization", }, { name = "Labio-palatalized", symbols = { "ᶣ" }, article = "Labio-palatalization", }, -- SUPRASEGMENTALS { name = "Long", symbols = { "ː" }, article = "Length (phonetics)", }, { name = "Half-long", symbols = { "ˑ" }, article = "Length (phonetics)", }, { name = "Extra-short", symbols = { "̆" }, article = "Extra-shortness", }, -- TONES AND WORD ACCENTS { name = "Accent", symbols = { "̋", "ű", "ӳ", "ő", "́", "í", "ý", "ú", "é", "ó", "á", "̄", "ī", "ȳ", "ū", "ē", "ō", "ǣ", "ā", "̀", "ì", "ỳ", "ù", "è", "ò", "à", "̏", "ȉ", "ȕ", "ȅ", "ȍ", "ȁ" }, article = "Pitch-accent language", }, { name = "Tone", symbols = { "̌", "̂", "᷄", "᷅", "᷇", "᷆", "᷈", "᷉", "˥", "˦", "˧", "˨", "˩" }, article = "Tone (linguistics)", }, -- EXTENDED IPA (extIPA) { name = "Alveolar", symbols = { "͇" }, article = "Alveolar consonant", }, { name = "Strong articulation", symbols = { "͈", "̎" }, article = "Fortis and lenis", }, { name = "Weak articulation", symbols = { "͉", "᷂" }, article = "Fortis and lenis", }, { name = "Denasalized", symbols = { "͊" }, article = "Denasalization", }, { name = "Velopharyngeal friction", symbols = { "͌" }, article = "Velopharyngeal consonant", }, { name = "Whistled articulation", symbols = { "͎" }, article = "Whistled sibilant", }, { name = "Unaspirated", symbols = { "˭" }, article = "Tenuis consonant", }, { name = "Pre-aspiration", symbols = { "ʰp", "ʰt", "ʰʈ", "ʰc", "ʰk", "ʰq", "ʰn" }, article = "Preaspiration", }, -- NON-IPA { name = "Retroflex", symbols = { "̣", "̢" }, article = "Retroflex consonant", }, { name = "Prenasalized consonant", symbols = { "ᵐ", "ᶬ", "ⁿt", "ⁿd", "ⁿθ", "ⁿð", "ⁿs", "ⁿz", "ⁿʃ", "ⁿʒ", "ⁿɕ", "ⁿʑ", "ⁿr", "ⁿɬ", "ⁿɮ", "ⁿl", "ᶯ", "ᶮ", "ᵑ", "ᶰ" }, }, { name = "Pre-stopped consonant", symbols = { "ᵖ", "ᵇ", "ᵗ", "ᵈ", "ᶜ", "ᶡ", "ᵏ", "ᶢ", "ᴳ" }, }, { name = "Post-stopped nasal", symbols = { "mᵇ", "nᵈ", "ɲᶡ", "ŋᶢ", "ɴᴳ" }, }, } } for k, group in pairs(rawData) do for _, v in ipairs(group) do local t = { name = v.name, symbol = v.symbols[1], article = v.article or v.name, audio = v.audio or "" } for _, s in ipairs(v.symbols) do data[k][s] = t end end end return { data = data, rawData = rawData } 2513954eju01domsinlrckehziy7vlf 2022 0 42509 392287 391169 2022-08-18T22:07:39Z Lam-ang 3622 +[[Fidel V. Ramos]] wikitext text/x-wiki Ti tawen ti '''2022''' (MMXXII) ket [[kadawyan a tawen]] a [[Kadawyan a tawen a mangrugi iti Sabado|mangrugi iti Sabado]] iti [[kalendario a Gregoriano]] ([[dominikal a letra]] B), ti maika-2022 a tawen kadagiti panangikeddeng ti [[Kadawyan a Panawen]] (CE) ken [[Anno Domini]] (AD), ti maika-22 a tawen ti [[maika-3 a milenio]], ti maika-22 a tawen iti [[maika-21 a siglo]], ken ti maika-3 a tawen iti dekada ti [[tawtawen ti 2020]]. == Pimmusay == === Enero === [[Papeles:Sidney Poitier-NPS.jpg|thumb|140px|[[Sidney Poitier]]]] [[Papeles:F. SIONIL JOSE (2017).jpg|thumb|140px|[[Francisco Sionil José]]]] * [[Enero 5]] &ndash; [[Robert Blust]], Amerikano a lingguista (naipasngay [[1940]]) * [[Enero 6]] ** [[Sidney Poitier]], Aprikano-Amerikano nga aktor (naipasngay [[1927]]) ** [[Francisco Sionil José]], Filipino a mannurat (naipasngay [[1924]]) === Marso === * [[Marso 13]] &ndash; [[William Hurt]], Amerikano nga aktor (naipasngay [[1950]]) === Hulio === [[Papeles:Ramos Pentagon.jpg|thumb|140px|[[Fidel V. Ramos]]]] * [[Hulio 31]] &ndash; [[Fidel V. Ramos]], maika-12 a [[Presidente ti Filipinas]] (naipasngay [[1928]]) == Dagiti akinruar a silpo == {{Commonscat-inline}} {{Tawen-pungol}} {{DEFAULTSORT:2022}} [[Kategoria:2022| ]] sh63c85017ofh2pxze1fockynuksuae Modulo:Webarchive 828 55500 392280 390504 2022-08-18T21:45:17Z Lam-ang 3622 Pinabaro manipud iti [[:en:Special:PermanentLink/1103443944|Module:Webarchive/1103443944]] Scribunto text/plain --[[ ---------------------------------- Lua module implementing the {{webarchive}} template. A merger of the functionality of three templates: {{wayback}}, {{webcite}} and {{cite archives}} ]] --[[--------------------------< D E P E N D E N C I E S >------------------------------------------------------ ]] require('Modulo:No globals'); local getArgs = require ('Modulo:Dagiti argumento').getArgs; --[[--------------------------< F O R W A R D D E C L A R A T I O N S >-------------------------------------- ]] local categories = {}; -- category names local config = {}; -- global configuration settings local digits = {}; -- for i18n; table that translates local-wiki digits to western digits local err_warn_msgs = {}; -- error and warning messages local excepted_pages = {}; local month_num = {}; -- for i18n; table that translates local-wiki month names to western digits local prefixes = {}; -- service provider tail string prefixes local services = {}; -- archive service provider data from local s_text = {}; -- table of static text strings used to build final rendering local uncategorized_namespaces = {}; -- list of namespaces that we should not categorize local uncategorized_subpages = {}; -- list of subpages that should not be categorized --[[--------------------------< P A G E S C O P E I D E N T I F I E R S >---------------------------------- ]] local non_western_digits; -- boolean flag set true when data.digits.enable is true local this_page = mw.title.getCurrentTitle(); local track = {}; -- Associative array to hold tracking categories local ulx = {}; -- Associative array to hold template data --[[--------------------------< S U B S T I T U T E >---------------------------------------------------------- Populates numbered arguments in a message string using an argument table. ]] local function substitute (msg, args) return args and mw.message.newRawMessage (msg, args):plain() or msg; end --[[--------------------------< tableLength >----------------------- Given a 1-D table, return number of elements ]] local function tableLength(T) local count = 0 for _ in pairs(T) do count = count + 1 end return count end --[=[-------------------------< M A K E _ W I K I L I N K >---------------------------------------------------- Makes a wikilink; when both link and display text is provided, returns a wikilink in the form [[L|D]]; if only link is provided, returns a wikilink in the form [[L]]; if neither are provided or link is omitted, returns an empty string. ]=] local function make_wikilink (link, display, no_link) if nil == no_link then if link and ('' ~= link) then if display and ('' ~= display) then return table.concat ({'[[', link, '|', display, ']]'}); else return table.concat ({'[[', link, ']]'}); end end return display or ''; -- link not set so return the display text else -- no_link if display and ('' ~= display) then -- if there is display text return display; -- return that else return link or ''; -- return the target article name or empty string end end end --[[--------------------------< createTracking >----------------------- Return data in track[] ie. tracking categories ]] local function createTracking() if not excepted_pages[this_page.fullText] then -- namespace:title/fragment is allowed to be categorized (typically this module's / template's testcases page(s)) if uncategorized_namespaces[this_page.nsText] then return ''; -- this page not to be categorized so return empty string end for _,v in ipairs (uncategorized_subpages) do -- cycle through page name patterns if this_page.text:match (v) then -- test page name against each pattern return ''; -- this subpage type not to be categorized so return empty string end end end local out = {}; if tableLength(track) > 0 then for key, _ in pairs(track) do -- loop through table table.insert (out, make_wikilink (key)); -- and convert category names to links end end return table.concat (out); -- concat into one big string; empty string if table is empty end --[[--------------------------< inlineError >----------------------- Critical error. Render output completely in red. Add to tracking category. This function called as the last thing before abandoning this module ]] local function inlineError (msg, args) track[categories.error] = 1 return table.concat ({ '<span style="font-size:100%" class="error citation-comment">Biddut iti ', -- open the error message span config.tname, -- insert the local language template name ' plantilia: ', substitute (msg, args), -- insert the formatted error message '.</span>', -- close the span createTracking() -- add the category }) end --[[--------------------------< inlineRed >----------------------- Render a text fragment in red, such as a warning as part of the final output. Add tracking category. ]] local function inlineRed(msg, trackmsg) if trackmsg == "warning" then track[categories.warning] = 1; elseif trackmsg == "error" then track[categories.error] = 1; end return '<span style="font-size:100%" class="error citation-comment">' .. msg .. '</span>' end --[[--------------------------< base62 >----------------------- Convert base-62 to base-10 Credit: https://de.wikipedia.org/wiki/Modul:Expr ]] local function base62( value ) local r = 1 -- default return value is input value is malformed if value:match ('%W') then -- value must only be in the set [0-9a-zA-Z] return; -- nil return when value contains extraneous characters end local n = #value -- number of characters in value local k = 1 local c r = 0 for i = n, 1, -1 do -- loop through all characters in value from ls digit to ms digit c = value:byte( i, i ) if c >= 48 and c <= 57 then -- character is digit 0-9 c = c - 48 elseif c >= 65 and c <= 90 then -- character is ascii a-z c = c - 55 else -- must be ascii A-Z c = c - 61 end r = r + c * k -- accumulate this base62 character's value k = k * 62 -- bump for next end -- for i return r end --[[--------------------------< D E C O D E _ D A T E >-------------------------------------------------------- Given a date string, return it in iso format along with an indicator of the date's format. Except that month names must be recognizable as legitimate month names with proper capitalization, and that the date string must match one of the recognized date formats, no error checking is done here; return nil else ]] local function decode_date (date_str) local patterns = { ['dmy'] = {'^(%d%d?) +([^%s%d]+) +(%d%d%d%d)$', 'd', 'm', 'y'}, -- %a does not recognize unicode combining characters used by some languages ['mdy'] = {'^([^%s%d]+) (%d%d?), +(%d%d%d%d)$', 'm', 'd', 'y'}, ['ymd'] = {'^(%d%d%d%d) +([^%s%d]+) (%d%d?)$', 'y', 'm', 'd'}, -- not mos compliant at en.wiki but may be acceptible at other wikis }; local t = {}; if non_western_digits then -- this wiki uses non-western digits? date_str = mw.ustring.gsub (date_str, '%d', digits); -- convert this wiki's non-western digits to western digits end if date_str:match ('^%d%d%d%d%-%d%d%-%d%d$') then -- already an iso format date, return western digits form return date_str, 'iso'; end for k, v in pairs (patterns) do local c1, c2, c3 = mw.ustring.match (date_str, patterns[k][1]); -- c1 .. c3 are captured but we don't know what they hold if c1 then -- set on match t = { -- translate unspecified captures to y, m, and d [patterns[k][2]] = c1, -- fill the table of captures with the captures [patterns[k][3]] = c2, -- take index names from src_pattern table and assign sequential captures [patterns[k][4]] = c3, }; if month_num[t.m] then -- when month not already a number t.m = month_num[t.m]; -- replace valid month name with a number else return nil, 'iso'; -- not a valid date form because month not valid end return mw.ustring.format ('%.4d-%.2d-%.2d', t.y, t.m, t.d), k; -- return date in iso format end end return nil, 'iso'; -- date could not be decoded; return nil and default iso date end --[[--------------------------< makeDate >----------------------- Given year, month, day numbers, (zero-padded or not) return a full date in df format where df may be one of: mdy, dmy, iso, ymd on entry, year, month, day are presumed to be correct for the date that they represent; all are required in this module, makeDate() is sometimes given an iso-format date in year: makeDate (2018-09-20, nil, nil, df) this works because table.concat() sees only one table member ]] local function makeDate (year, month, day, df) local format = { ['dmy'] = 'j F Y', ['mdy'] = 'F j, Y', ['ymd'] = 'Y F j', ['iso'] = 'Y-m-d', }; local date = table.concat ({year, month, day}, '-'); -- assemble year-initial numeric-format date (zero padding not required here) if non_western_digits then -- this wiki uses non-western digits? date = mw.ustring.gsub (date, '%d', digits); -- convert this wiki's non-western digits to western digits end return mw.getContentLanguage():formatDate (format[df], date); end --[[--------------------------< I S _ V A L I D _ D A T E >---------------------------------------------------- Returns true if date is after 31 December 1899 (why is 1900 the min year? shouldn't the internet's date-of-birth be min year?), not after today's date, and represents a valid date (29 February 2017 is not a valid date). Applies Gregorian leapyear rules. all arguments are required ]] local function is_valid_date (year, month, day) local days_in_month = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; local month_length; local y, m, d; local today = os.date ('*t'); -- fetch a table of current date parts if not year or '' == year or not month or '' == month or not day or '' == day then return false; -- something missing end y = tonumber (year); m = tonumber (month); d = tonumber (day); if 1900 > y or today.year < y or 1 > m or 12 < m then -- year and month are within bounds TODO: 1900? return false; end if (2==m) then -- if February month_length = 28; -- then 28 days unless if (0==(y%4) and (0~=(y%100) or 0==(y%400))) then -- is a leap year? month_length = 29; -- if leap year then 29 days in February end else month_length=days_in_month[m]; end if 1 > d or month_length < d then -- day is within bounds return false; end -- here when date parts represent a valid date return os.time({['year']=y, ['month']=m, ['day']=d, ['hour']=0}) <= os.time(); -- date at midnight must be less than or equal to current date/time end --[[--------------------------< decodeWebciteDate >----------------------- Given a URI-path to Webcite (eg. /67xHmVFWP) return the encoded date in df format returns date string in df format - webcite date is a unix timestamp encoded as bae62 or the string 'query' ]] local function decodeWebciteDate(path, df) local dt = {}; local decode; dt = mw.text.split(path, "/") -- valid URL formats that are not base62 -- http://www.webcitation.org/query?id=1138911916587475 -- http://www.webcitation.org/query?url=http..&date=2012-06-01+21:40:03 -- http://www.webcitation.org/1138911916587475 -- http://www.webcitation.org/cache/73e53dd1f16cf8c5da298418d2a6e452870cf50e -- http://www.webcitation.org/getfile.php?fileid=1c46e791d68e89e12d0c2532cc3cf629b8bc8c8e if dt[2]:find ('query', 1, true) or dt[2]:find ('cache', 1, true) or dt[2]:find ('getfile', 1, true) or tonumber(dt[2]) then return 'query'; end decode = base62(dt[2]); -- base62 string -> exponential number if not decode then return nil; -- nil return when dt[2] contains characters not in %w end dt = os.date('*t', string.format("%d", decode):sub(1,10)) -- exponential number -> text -> first 10 characters (a unix timestamp) -> a table of date parts decode = makeDate (dt.year, dt.month, dt.day, 'iso'); -- date comparisons are all done in iso format with western digits if non_western_digits then -- this wiki uses non-western digits? decode = mw.ustring.gsub (decode, '%d', digits); -- convert this wiki's non-western digits to western digits end return decode; end --[[--------------------------< decodeWaybackDate >----------------------- Given a URI-path to Wayback (eg. /web/20160901010101/http://example.com ) or Library of Congress Web Archives (eg. /all/20160901010101/http://example.com) or UK Government Web Archive (eg. /ukgwa/20160901010101/http://example.com or /tna/20160901010101/http://example.com) return the formatted date eg. "September 1, 2016" in df format Handle non-digits in snapshot ID such as "re_" and "-" and "*" returns two values: first value is one of these: valid date string in df format - wayback date is valid (including the text string 'index' when date is '/*/') empty string - wayback date is malformed (less than 8 digits, not a valid date) nil - wayback date is '/save/' or otherwise not a number second return value is an appropriate 'message' may or may not be formatted ]] local function decodeWaybackDate(path, df) local msg, snapdate; snapdate = path:gsub ('^/web/', ''):gsub ('^/all/', ''):gsub ('^/ukgwa/', ''):gsub ('^/tna/', ''):gsub ('^/', ''); -- remove leading /web/, /all/, /ukgwa/, /tna/, or / snapdate = snapdate:match ('^[^/]+'); -- get timestamp if snapdate == "*" then -- eg. /web/*/http.., etc. return 'index'; -- return indicator that this url has an index date end snapdate = snapdate:gsub ('%a%a_%d?$', ''):gsub ('%-', ''); -- from date, remove any trailing "re_", dashes msg = ''; if snapdate:match ('%*$') then -- a trailing '*' causes calendar display at archive .org snapdate = snapdate:gsub ('%*$', ''); -- remove so not part of length calc later msg = inlineRed (err_warn_msgs.ts_cal, 'warning'); -- make a message end if not tonumber(snapdate) then return nil, 'ts_nan'; -- return nil (fatal error flag) and message selector end local dlen = snapdate:len(); if dlen < 8 then -- we need 8 digits TODO: but shouldn't this be testing for 14 digits? return '', inlineRed (err_warn_msgs.ts_short, 'error'); -- return empty string and error message end local year, month, day = snapdate:match ('(%d%d%d%d)(%d%d)(%d%d)'); -- no need for snapdatelong here if not is_valid_date (year, month, day) then return '', inlineRed (err_warn_msgs.ts_date, 'error'); -- return empty string and error message end snapdate = table.concat ({year, month, day}, '-'); -- date comparisons are all done in iso format if 14 == dlen then return snapdate, msg; -- return date with message if any else return snapdate, msg .. inlineRed (err_warn_msgs.ts_len, 'warning'); -- return date with warning message(s) end end --[[--------------------------< decodeArchiveisDate >----------------------- Given an Archive.is "long link" URI-path (e.g. /2016.08.28-144552/http://example.com) return the date in df format (e.g. if df = dmy, return 28 August 2016) Handles "." and "-" in snapshot date, so 2016.08.28-144552 is same as 20160828144552 returns two values: first value is one of these: valid date string in df format - archive.is date is valid (including the text string 'short link' when url is the short form) empty string - wayback date is malformed (not a number, less than 8 digits, not a valid date) nil - wayback date is '/save/' second return value is an appropriate 'message' may or may not be formatted ]] local function decodeArchiveisDate(path, df) local snapdate if path:match ('^/%w+$') then -- short form url path is '/' followed by some number of base 62 digits and nothing else return "short link" -- e.g. http://archive.is/hD1qz end snapdate = mw.text.split (path, '/')[2]:gsub('[%.%-]', ''); -- get snapshot date, e.g. 2016.08.28-144552; remove periods and hyphens local dlen = string.len(snapdate) if dlen < 8 then -- we need 8 digits TODO: but shouldn't this be testing for 14 digits? return '', inlineRed (err_warn_msgs.ts_short, 'error'); -- return empty string and error message end local year, month, day = snapdate:match ('(%d%d%d%d)(%d%d)(%d%d)'); -- no need for snapdatelong here if not is_valid_date (year, month, day) then return '', inlineRed (err_warn_msgs.ts_date, 'error'); -- return empty string and error message end snapdate = table.concat ({year, month, day}, '-'); -- date comparisons are all done in iso format if 14 == dlen then return snapdate; -- return date else return snapdate, inlineRed (err_warn_msgs.ts_len, 'warning'); -- return date with warning message end end --[[--------------------------< serviceName >----------------------- Given a domain extracted by mw.uri.new() (eg. web.archive.org) set tail string and service ID ]] local function serviceName(host, no_link) local tracking; local index; host = host:lower():gsub ('^web%.(.+)', '%1'):gsub ('^www%.(.+)', '%1'); -- lowercase, remove web. and www. subdomains if services[host] then index = host; else for k, _ in pairs (services) do if host:find ('%f[%a]'..k:gsub ('([%.%-])', '%%%1')) then index = k; break; end end end if index then local out = {''}; -- empty string in [1] so that concatenated result has leading single space ulx.url1.service = services[index][4] or 'other'; tracking = services[index][5] or categories.other; -- build tail string if false == services[index][1] then -- select prefix table.insert (out, prefixes.at); elseif true == services[index][1] then table.insert (out, prefixes.atthe); else table.insert (out, services[index][1]); end table.insert (out, make_wikilink (services[index][2], services[index][3], no_link)); -- add article wikilink if services[index][6] then -- add tail postfix if it exists table.insert (out, services[index][6]); end ulx.url1.tail = table.concat (out, ' '); -- put it all together; result has leading space character else -- here when unknown archive ulx.url1.service = 'other'; tracking = categories.unknown; ulx.url1.tail = table.concat ({'', prefixes.at, host, inlineRed (err_warn_msgs.unknown_url, error)}, ' '); end track[tracking] = 1 end --[[--------------------------< parseExtraArgs >----------------------- Parse numbered arguments starting at 2, such as url2..url10, date2..date10, title2..title10 For example: {{webarchive |url=.. |url4=.. |url7=..}} Three url arguments not in numeric sequence (1..4..7). Function only processes arguments numbered 2 or greater (in this case 4 and 7) It creates numeric sequenced table entries like: urlx.url2.url = <argument value for url4> urlx.url3.url = <argument value for url7> Returns the number of URL arguments found numbered 2 or greater (in this case returns "2") ]] local function parseExtraArgs(args) local i, j, argurl, argurl2, argdate, argtitle j = 2 for i = 2, config.maxurls do argurl = "url" .. i if args[argurl] then argurl2 = "url" .. j ulx[argurl2] = {} ulx[argurl2]["url"] = args[argurl] argdate = "date" .. i if args[argdate] then ulx[argurl2]["date"] = args[argdate] else ulx[argurl2]["date"] = inlineRed (err_warn_msgs.date_miss, 'warning'); end argtitle = "title" .. i if args[argtitle] then ulx[argurl2]["title"] = args[argtitle] else ulx[argurl2]["title"] = nil end j = j + 1 end end if j == 2 then return 0 else return j - 2 end end --[[--------------------------< comma >----------------------- Given a date string, return "," if it's MDY ]] local function comma(date) return (date and date:match ('%a+ +%d%d?(,) +%d%d%d%d')) or ''; end --[[--------------------------< createRendering >----------------------- Return a rendering of the data in ulx[][] ]] local function createRendering() local displayfield local out = {}; local index_date, msg = ulx.url1.date:match ('(index)(.*)'); -- when ulx.url1.date extract 'index' text and message text (if there is a message) ulx.url1.date = ulx.url1.date:gsub ('index.*', 'index'); -- remove message if 'none' == ulx.url1.format then -- For {{wayback}}, {{webcite}} table.insert (out, '['); -- open extlink markup table.insert (out, ulx.url1.url); -- add url if ulx.url1.title then table.insert (out, ' ') -- the required space table.insert (out, ulx.url1.title) -- the title table.insert (out, ']'); -- close extlink markup table.insert (out, ulx.url1.tail); -- tail text if ulx.url1.date then table.insert (out, '&#32;('); -- open date text; TODO: why the html entity? replace with regular space? table.insert (out, 'index' == ulx.url1.date and s_text.archive or s_text.archived); -- add text table.insert (out, ' '); -- insert a space table.insert (out, ulx.url1.date); -- add date table.insert (out, ')'); -- close date text end else -- no title if index_date then -- when url date is 'index' table.insert (out, table.concat ({' ', s_text.Archive_index, ']'})); -- add the index link label table.insert (out, msg or ''); -- add date mismatch message when url date is /*/ and |date= has valid date else table.insert (out, table.concat ({' ', s_text.Archived, '] '})); -- add link label for url has timestamp date (will include mismatch message if there is one) end if ulx.url1.date then if 'index' ~= ulx.url1.date then table.insert (out, ulx.url1.date); -- add date when data is not 'index' end table.insert (out, comma(ulx.url1.date)); -- add ',' if date format is mdy table.insert (out, ulx.url1.tail); -- add tail text else -- no date table.insert (out, ulx.url1.tail); -- add tail text end end if 0 < ulx.url1.extraurls then -- For multiple archive URLs local tot = ulx.url1.extraurls + 1 table.insert (out, '.') -- terminate first url table.insert (out, table.concat ({' ', s_text.addlarchives, ': '})); -- add header text for i=2, tot do -- loop through the additionals local index = table.concat ({'url', i}); -- make an index displayfield = ulx[index]['title'] and 'title' or 'date'; -- choose display text table.insert (out, '['); -- open extlink markup table.insert (out, ulx[index]['url']); -- add the url table.insert (out, ' '); -- the required space table.insert (out, ulx[index][displayfield]); -- add the label table.insert (out, ']'); -- close extlink markup table.insert (out, i==tot and '.' or ', '); -- add terminator end end return table.concat (out); -- make a big string and done else -- For {{cite archives}} if 'addlarchives' == ulx.url1.format then -- Multiple archive services table.insert (out, table.concat ({s_text.addlarchives, ': '})); -- add header text else -- Multiple pages from the same archive table.insert (out, table.concat ({s_text.addlpages, ' '})); -- add header text table.insert (out, ulx.url1.date); -- add date to header text table.insert (out, ': '); -- close header text end local tot = ulx.url1.extraurls + 1; for i=1, tot do -- loop through the additionals local index = table.concat ({'url', i}); -- make an index table.insert (out, '['); -- open extlink markup table.insert (out, ulx[index]['url']); -- add url table.insert (out, ' '); -- add required space displayfield = ulx[index]['title']; if 'addlarchives' == ulx.url1.format then if not displayfield then displayfield = ulx[index]['date'] end else -- must be addlpages if not displayfield then displayfield = table.concat ({s_text.Page, ' ', i}); end end table.insert (out, displayfield); -- add title, date, page label text table.insert (out, ']'); -- close extlink markup table.insert (out, (i==tot and '.' or ', ')); -- add terminator end return table.concat (out); -- make a big string and done end end --[[--------------------------< P A R A M E T E R _ N A M E _ X L A T E >-------------------------------------- for internaltionalization, translate local-language parameter names to their English equivalents TODO: return error message if multiple aliases of the same canonical parameter name are found? returns two tables: new_args - holds canonical form parameters and their values either from translation or because the parameter was already in canonical form origin - maps canonical-form parameter names to their untranslated (local language) form for error messaging in the local language unrecognized parameters are ignored ]] local function parameter_name_xlate (args, params, enum_params) local name; -- holds modifiable name of the parameter name during evaluation local enum; -- for enumerated parameters, holds the enumerator during evaluation local found = false; -- flag used to break out of nested for loops local new_args = {}; -- a table that holds canonical and translated parameter k/v pairs local origin = {}; -- a table that maps original (local language) parameter names to their canonical name for local language error messaging local unnamed_params; -- set true when unsupported positional parameters are detected for k, v in pairs (args) do -- loop through all of the arguments in the args table name = k; -- copy of original parameter name if 'string' == type (k) then if non_western_digits then -- true when non-western digits supported at this wiki name = mw.ustring.gsub (name, '%d', digits); -- convert this wiki's non-western digits to western digits end enum = name:match ('%d+$'); -- get parameter enumerator if it exists; nil else if not enum then -- no enumerator so looking for non-enumnerated parameters -- TODO: insert shortcut here? if params[name] then name holds the canonical parameter name; no need to search further for pname, aliases in pairs (params) do -- loop through each parameter the params table for _, alias in ipairs (aliases) do -- loop through each alias in the parameter's aliases table if name == alias then new_args[pname] = v; -- create a new entry in the new_args table origin [pname] = k; -- create an entry to make canonical parameter name to original local language parameter name found = true; -- flag so that we can break out of these nested for loops break; -- no need to search the rest of the aliases table for name so go on to the next k, v pair end end if found then -- true when we found an alias that matched name found = false; -- reset the flag break; -- go do next args k/v pair end end else -- enumerated parameters name = name:gsub ('%d$', '#'); -- replace enumeration digits with place holder for table search -- TODO: insert shortcut here? if num_params[name] then name holds the canonical parameter name; no need to search further for pname, aliases in pairs (enum_params) do -- loop through each parameter the num_params table for _, alias in ipairs (aliases) do -- loop through each alias in the parameter's aliases table if name == alias then pname = pname:gsub ('#$', enum); -- replace the '#' place holder with the actual enumerator new_args[pname] = v; -- create a new entry in the new_args table origin [pname] = k; -- create an entry to make canonical parameter name to original local language parameter name found = true; -- flag so that we can break out of these nested for loops break; -- no need to search the rest of the aliases table for name so go on to the next k, v pair end end if found then -- true when we found an alias that matched name found = false; -- reset the flag break; -- go do next args k/v pair end end end else unnamed_params = true; -- flag for unsupported positional parameters end end -- for k, v return new_args, origin, unnamed_params; end --[[--------------------------< W E B A R C H I V E >---------------------------------------------------------- template entry point ]] local function webarchive(frame) local args = getArgs (frame); local data = mw.loadData (table.concat ({ -- make a data module name; sandbox or live 'Modulo:Webarchive/data', frame:getTitle():find('pagipadasan', 1, true) and '/pagipadasan' or '' -- this instance is ./sandbox then append /sandbox })); categories = data.categories; -- fill in the forward declarations config = data.config; if data.digits.enable then digits = data.digits; -- for i18n; table of digits in the local wiki's language non_western_digits = true; -- use_non_western_digits end err_warn_msgs = data.err_warn_msgs; excepted_pages = data.excepted_pages; month_num = data.month_num; -- for i18n; table of month names in the local wiki's language prefixes = data.prefixes; services = data.services; s_text = data.s_text; uncategorized_namespaces = data.uncategorized_namespaces; uncategorized_subpages = data.uncategorized_subpages; local origin = {}; -- holds a map of English to local language parameter names used in the current template; not currently used local unnamed_params; -- boolean set to true when template call has unnamed parameters args, origin, unnamed_params = parameter_name_xlate (args, data.params, data.enum_params); -- translate parameter names in args to English local date, format, msg, udate, uri, url; local ldf = 'iso'; -- when there is no |date= parameter, render url dates in iso format if args.url and args.url1 then -- URL argument (first) return inlineError (data.crit_err_msgs.conflicting, {origin.url, origin.url1}); end url = args.url or args.url1; if not url then return inlineError (data.crit_err_msgs.empty); end -- these iabot bugs perportedly fixed; removing these causes lua script error --[[ -- at Template:Webarchive/testcases/Production; resolve that before deleting these tests if mw.ustring.find( url, "https://web.http", 1, true ) then -- track bug - TODO: IAbot bug; not known if the bug has been fixed; deferred track[categories.error] = 1; return inlineError (data.crit_err_msgs.iabot1); end if url == "https://web.archive.org/http:/" then -- track bug - TODO: IAbot bug; not known if the bug has been fixed; deferred track[categories.error] = 1; return inlineError (data.crit_err_msgs.iabot2); end ]] if not (url:lower():find ('^http') or url:find ('^//')) then return inlineError (data.crit_err_msgs.invalid_url ); end ulx.url1 = {} ulx.url1.url = url ulx.url1.extraurls = parseExtraArgs(args) local good = false; good, uri = pcall (mw.uri.new, ulx.url1.url); -- get a table of uri parts from this url; protected mode to prevent lua error when ulx.url1.url is malformed if not good or nil == uri.host then -- abandon when ulx.url1.url is malformed return inlineError (data.crit_err_msgs.invalid_url); end serviceName(uri.host, args.nolink) if args.date and args.date1 then -- Date argument return inlineError (data.crit_err_msgs.conflicting, {origin.date, origin.date1}); end date = args.date or args.date1; date = date and date:gsub (' +', ' '); -- replace multiple spaces with a single space if date and config.verifydates then if '*' == date then date = 'index'; ldf = 'iso'; -- set to default format elseif 'mdy' == date then date = nil; -- if date extracted from URL, ldf = 'mdy'; -- then |date=mdy overrides iso elseif 'dmy' == date then date = nil; -- if date extracted from URL, ldf = 'dmy'; -- then |date=dmy overrides iso elseif 'ymd' == date then date = nil; -- if date extracted from URL, ldf = 'ymd'; -- then |date=ymd overrides iso else date, ldf = decode_date (date); -- get an iso format date from date and get date's original format end end if 'wayback' == ulx.url1.service or 'locwebarchives' == ulx.url1.service or 'ukgwa' == ulx.url1.service then if date then if config.verifydates then if ldf then udate, msg = decodeWaybackDate (uri.path); -- get the url date in iso format and format of date in |date=; 'index' when wayback url date is * if not udate then -- this is the only 'fatal' error return return inlineError (data.crit_err_msgs[msg]); end if udate ~= date then -- date comparison using iso format dates date = udate; msg = table.concat ({ inlineRed (err_warn_msgs.mismatch, 'warning'), -- add warning message msg, -- add message if there is one }); end end end else -- no |date= udate, msg = decodeWaybackDate (uri.path); if not udate then -- this is the only 'fatal' error return return inlineError (data.crit_err_msgs[msg]); end if '' == udate then date = nil; -- unset else date = udate; end end elseif 'webcite' == ulx.url1.service then if date then if config.verifydates then if ldf then udate = decodeWebciteDate (uri.path); -- get the url date in iso format if 'query' ~= udate then -- skip if query if udate ~= date then -- date comparison using iso format dates date = udate; msg = table.concat ({ inlineRed (err_warn_msgs.mismatch, 'warning'), }); end end end end else date = decodeWebciteDate( uri.path, "iso" ) if date == "query" then date = nil; -- unset msg = inlineRed (err_warn_msgs.date_miss, 'warning'); elseif not date then -- invalid base62 string date = inlineRed (err_warn_msgs.date1, 'error'); end end elseif 'archiveis' == ulx.url1.service then if date then if config.verifydates then if ldf then udate, msg = decodeArchiveisDate (uri.path) -- get the url date in iso format if 'short link' ~= udate then -- skip if short link if udate ~= date then -- date comparison using iso format dates date = udate; msg = table.concat ({ inlineRed (err_warn_msgs.mismatch, 'warning'), -- add warning message msg, -- add message if there is one }); end end end end else -- no |date= udate, msg = decodeArchiveisDate( uri.path, "iso" ) if udate == "short link" then date = nil; -- unset msg = inlineRed (err_warn_msgs.date_miss, 'warning'); elseif '' == udate then date = nil; -- unset else date = udate; end end else -- some other service if not date then msg = inlineRed (err_warn_msgs.date_miss, 'warning'); end end if 'index' == date then ulx.url1.date = date .. (msg or ''); -- create index + message (if there is one) elseif date then ulx.url1.date = makeDate (date, nil, nil, ldf) .. (msg or ''); -- create a date in the wiki's local language + message (if there is one) else ulx.url1.date = msg; end format = args.format; -- Format argument if not format then format = "none" else for k, v in pairs (data.format_vals) do -- |format= accepts two specific values loop through a table of those values local found; -- declare a nil flag for _, p in ipairs (v) do -- loop through local language variants if format == p then -- when |format= value matches format = k; -- use name from table key found = true; -- declare found so that we can break out of outer for loop break; -- break out of inner for loop end end if found then break; end end if format == "addlpages" then if not ulx.url1.date then format = "none" end elseif format == "addlarchives" then format = "addlarchives" else format = "none" end end ulx.url1.format = format if args.title and args.title1 then -- Title argument return inlineError (data.crit_err_msgs.conflicting, {origin.title, origin.title1}); end ulx.url1.title = args.title or args.title1; local rend = createRendering() if not rend then return inlineError (data.crit_err_msgs.unknown); end return rend .. ((unnamed_params and inlineRed (err_warn_msgs.unnamed_params, 'warning')) or '') .. createTracking(); end --[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------ ]] return {webarchive = webarchive}; 3qlm43ohd0y7ztv8wt9uo56m0wy1fhs Modulo:Simbolo ti IPA/datos/pagipadasan 828 55640 392277 390306 2022-08-18T21:40:20Z Lam-ang 3622 Pinabaro manipud iti [[:en:Special:PermanentLink/1102576395|Module:IPA symbol/data/1102576395]] Scribunto text/plain local data = { sounds = {}, diacritics = {}, univPatterns = { { pat = "g", -- Latin Small Letter G rep = "ɡ" -- Latin Small Letter Script G }, { pat = "ᵍ", -- Modifier Letter Small G rep = "ᶢ" -- Modifier Letter Small Script G }, { pat = "l̴", -- 'l' + Combining Tilde Overlay rep = "ɫ" -- Latin Small Letter L with Middle Tilde }, { pat = "ˁ", -- Modifier Letter Reversed Glottal Stop rep = "ˤ" -- Modifier Letter Small Reversed Glottal Stop }, { pat = "’", -- Right Single Quotation Mark rep = "ʼ" -- Modifier Letter Apostrophe }, { pat = "ȷ", -- Latin Small Letter Dotless J rep = "j" -- Latin Small Letter J }, { pat = "ʇ", -- Latin Small Letter Turned T rep = "ǀ" -- Latin Letter Dental Click }, { pat = "[!ʗ]", -- Exclamation Mark / Latin Letter Stretched C rep = "ǃ" -- Latin Letter Retroflex Click }, { pat = "ǃǃ", -- Latin Letter Retroflex Click x 2 rep = "‼" -- Double Exclamation Mark }, { pat = "ʖ", -- Latin Letter Inverted Glottal Stop rep = "ǁ" -- Latin Letter Lateral Click }, }, keyPatterns = { -- These do not affect the revese look for diacritics { pat = "[͜͡ːˑ◌]", -- Tie bars, length marks, dotted circle rep = "" }, { pat = "ᵏ", -- Modifier Letter Small K rep = "k" -- Latin Small Letter K }, { pat = "ᶢ", -- Modifier Letter Small Script G rep = "ɡ" -- Latin Small Letter Script G }, { pat = "ᵑ", -- Modifier Letter Small Eng rep = "ŋ" -- Latin Small Letter Eng }, } } local rawData = { sounds = { -- PULMONIC CONSONANTS -- Nasals { name = "Voiceless bilabial nasal", symbols = { "m̥" }, }, { name = "Voiced bilabial nasal", symbols = { "m" }, audio = "Bilabial nasal.ogg" }, { name = "Voiced labiodental nasal", symbols = { "ɱ" }, audio = "Labiodental nasal.ogg" }, { name = "Voiced linguolabial nasal", symbols = { "n̼" }, audio = "Linguolabial nasal.ogg" }, { name = "Voiced dental nasal", symbols = { "n̪" }, }, { name = "Voiceless alveolar nasal", symbols = { "n̥" }, }, { name = "Voiced alveolar nasal", symbols = { "n" }, audio = "Alveolar nasal.ogg" }, { name = "Voiced postalveolar nasal", symbols = { "n̠" }, }, { name = "Voiceless retroflex nasal", symbols = { "ɳ̊", "ɳ̥" }, }, { name = "Voiced retroflex nasal", symbols = { "ɳ" }, audio = "Retroflex nasal.ogg" }, { name = "Voiceless alveolo-palatal nasal", symbols = { "n̠̊ʲ", "ɲ̊˖", "ɲ̟̊", "ȵ̊" }, }, { name = "Voiced alveolo-palatal nasal", symbols = { "n̠ʲ", "ɲ˖", "ɲ̟", "ȵ" }, }, { name = "Voiceless palatal nasal", symbols = { "ɲ̊", "ɲ̥" }, }, { name = "Voiced palatal nasal", symbols = { "ɲ" }, audio = "Palatal nasal.ogg" }, { name = "Voiced post-palatal nasal", symbols = { "ɲ˗", "ɲ̠", "ŋ˖", "ŋ̟" }, }, { name = "Voiceless velar nasal", symbols = { "ŋ̊", "ŋ̥" }, }, { name = "Voiced velar nasal", symbols = { "ŋ" }, audio = "Velar nasal.ogg" }, { name = "Voiced pre-uvular nasal", symbols = { "ɴ̟", "ŋ˗", "ŋ̠" }, }, { name = "Voiced uvular nasal", symbols = { "ɴ" }, audio = "Uvular nasal.ogg" }, -- Plosives { name = "Voiceless bilabial plosive", symbols = { "p" }, audio = "Voiceless bilabial plosive.ogg" }, { name = "Voiced bilabial plosive", symbols = { "b" }, audio = "Voiced bilabial plosive.ogg" }, { name = "Voiceless labiodental plosive", symbols = { "p̪", "p͆" }, }, { name = "Voiced labiodental plosive", symbols = { "b̪" }, }, { name = "Voiceless linguolabial plosive", symbols = { "t̼" }, audio = "Voiceless linguolabial stop.ogg" }, { name = "Voiced linguolabial plosive", symbols = { "d̼" }, audio = "Voiced linguolabial stop.ogg" }, { name = "Voiceless dental plosive", symbols = { "t̪" }, audio = "Voiceless dental stop.ogg" }, { name = "Voiced dental plosive", symbols = { "d̪" }, audio = "Voiced dental stop.ogg" }, { name = "Voiceless alveolar plosive", symbols = { "t" }, audio = "Voiceless alveolar plosive.ogg" }, { name = "Voiced alveolar plosive", symbols = { "d" }, audio = "Voiced alveolar plosive.ogg" }, { name = "Voiceless postalveolar plosive", symbols = { "t̠" }, }, { name = "Voiced postalveolar plosive", symbols = { "d̠" }, }, { name = "Voiceless retroflex plosive", symbols = { "ʈ" }, audio = "Voiceless retroflex stop.oga" }, { name = "Voiced retroflex plosive", symbols = { "ɖ" }, audio = "Voiced retroflex stop.oga" }, { name = "Voiceless alveolo-palatal plosive", symbols = { "t̠ʲ", "c̟", "ȶ" }, }, { name = "Voiced alveolo-palatal plosive", symbols = { "d̠ʲ", "ɟ˖", "ɟ̟", "ȡ" }, }, { name = "Voiceless palatal plosive", symbols = { "c" }, audio = "Voiceless palatal plosive.ogg" }, { name = "Voiced palatal plosive", symbols = { "ɟ" }, audio = "Voiced palatal plosive.ogg" }, { name = "Voiceless post-palatal plosive", symbols = { "c̠", "k̟" }, }, { name = "Voiced post-palatal plosive", symbols = { "ɟ˗", "ɟ̠", "ɡ˖", "ɡ̟" }, }, { name = "Voiceless velar plosive", symbols = { "k" }, audio = "Voiceless velar plosive.ogg" }, { name = "Voiced velar plosive", symbols = { "ɡ" }, audio = "Voiced velar plosive 02.ogg" }, { name = "Voiceless pre-uvular plosive", symbols = { "q˖", "q̟", "k̠" }, }, { name = "Voiced pre-uvular plosive", symbols = { "ɢ̟", "ɡ˗", "ɡ̠" }, }, { name = "Voiceless uvular plosive", symbols = { "q" }, audio = "Voiceless uvular plosive.ogg" }, { name = "Voiced uvular plosive", symbols = { "ɢ" }, audio = "Voiced uvular stop.oga" }, { name = "Epiglottal plosive", symbols = { "ʡ" }, audio = "Epiglottal stop.ogg" }, { name = "Glottal stop", symbols = { "ʔ" }, audio = "Glottal stop.ogg" }, -- Affricates { name = "Voiceless bilabial affricate", symbols = { "pɸ" }, audio = "Voiceless bilabial affricate.ogg" }, { name = "Voiced bilabial affricate", symbols = { "bβ" }, }, { name = "Voiceless labiodental affricate", symbols = { "p̪f", "p͆f", "pf" }, audio = "Voiceless labiodental affricate.ogg" }, { name = "Voiced labiodental affricate", symbols = { "b̪v", "bv" }, audio = "Voiced labiodental affricate.ogg" }, { name = "Voiceless dental affricate", symbols = { "t̪s̪", "ts̪", "t̟s̟", "ts̟" }, audio = "Voiceless dental sibilant affricate.oga" }, { name = "Voiced dental affricate", symbols = { "d̪z̪", "dz̪", "d̟z̟", "dz̟" }, audio = "Voiced dental sibilant affricate.oga" }, { name = "Voiceless dental non-sibilant affricate", symbols = { "t̪θ", "t̟θ", "tθ" }, audio = "Voiceless dental non-sibilant affricate.oga" }, { name = "Voiced dental non-sibilant affricate", symbols = { "d̪ð", "d̟ð", "dð" }, audio = "Voiced dental non-sibilant affricate.oga" }, { name = "Voiceless alveolar affricate", symbols = { "ts", "ʦ" }, audio = "Voiceless alveolar sibilant affricate.oga" }, { name = "Voiced alveolar affricate", symbols = { "dz", "ʣ" }, audio = "Voiced alveolar sibilant affricate.oga" }, { name = "Voiceless apico-alveolar affricate", symbols = { "t̺s̺", "ts̺", "t̠s̠", "ts̠" }, }, { name = "Voiced apico-alveolar affricate", symbols = { "d̺z̺", "dz̺", "d̠z̠", "dz̠" }, }, { name = "Voiceless alveolar non-sibilant affricate", symbols = { "tɹ̝̊", "tɹ̥", "tθ̠", "tθ͇" }, }, { name = "Voiced alveolar non-sibilant affricate", symbols = { "dɹ̝", "dɹ", "dð̠", "dð͇" }, }, { name = "Voiceless postalveolar affricate", symbols = { "t̠ʃ", "tʃ", "ʧ" }, audio = "Voiceless palato-alveolar affricate.ogg" }, { name = "Voiced postalveolar affricate", symbols = { "d̠ʒ", "dʒ", "ʤ" }, audio = "Voiced palato-alveolar affricate.ogg" }, { name = "Voiceless postalveolar non-sibilant affricate", symbols = { "t̠ɹ̠̊˔", "tɹ̠̊˔", "tɹ̝̊˗", "t̠ɹ̝̊˗", "t̠ɹ̠̊", "tɹ̠̊" }, audio = "Voiceless postalveolar non-sibilant affricate.ogg" }, { name = "Voiced postalveolar non-sibilant affricate", symbols = { "d̠ɹ̠˔", "dɹ̠˔", "dɹ̝˗", "d̠ɹ̝˗", "d̠ɹ̠", "dɹ̠" }, audio = "Voiced postalveolar non-sibilant affricate.ogg" }, { name = "Voiceless retroflex affricate", symbols = { "ʈʂ", "tʂ" }, audio = "Voiceless retroflex affricate.ogg" }, { name = "Voiced retroflex affricate", symbols = { "ɖʐ", "dʐ" }, audio = "Voiced retroflex affricate.ogg" }, { name = "Voiceless alveolo-palatal affricate", symbols = { "tɕ", "cɕ", "ʨ" }, audio = "Voiceless alveolo-palatal affricate.ogg" }, { name = "Voiced alveolo-palatal affricate", symbols = { "dʑ", "ɟʑ", "ʥ" }, audio = "Voiced alveolo-palatal affricate.ogg" }, { name = "Voiceless palatal affricate", symbols = { "cç" }, audio = "Voiceless palatal affricate.ogg" }, { name = "Voiced palatal affricate", symbols = { "ɟʝ" }, audio = "Voiced palatal affricate.ogg" }, { name = "Voiceless post-palatal affricate", symbols = { "c̠ç˗", "cç˗", "c̠ç̠", "cç̠", "k̟x̟", "kx̟" }, }, { name = "Voiced post-palatal affricate", symbols = { "ɟ˗ʝ˗", "ɟʝ˗", "ɟ̠ʝ̠", "ɟʝ̠", "ɡ˖ɣ˖", "ɡɣ˖", "ɡ̟ɣ̟", "ɡɣ̟" }, }, { name = "Voiceless velar affricate", symbols = { "kx" }, audio = "Voiceless velar affricate.ogg" }, { name = "Voiced velar affricate", symbols = { "ɡɣ" }, audio = "Voiced velar affricate.ogg" }, { name = "Voiceless pre-uvular affricate", symbols = { "q˖χ˖", "qχ˖", "q̟χ̟", "qχ̟", "k̠x̠", "kx̠" }, }, { name = "Voiceless uvular affricate", symbols = { "qχ" }, audio = "Voiceless uvular affricate.ogg" }, { name = "Voiced uvular affricate", symbols = { "ɢʁ" }, audio = "Voiced uvular affricate.ogg" }, { name = "Voiceless pharyngeal affricate", symbols = { "ʡħ" }, }, { name = "Voiceless epiglottal affricate", symbols = { "ʡʜ" }, audio = "Voiceless epiglottal affricate.ogg" }, { name = "Voiced epiglottal affricate", symbols = { "ʡʢ" }, audio = "Voiced epiglottal affricate.ogg" }, { name = "Voiceless glottal affricate", symbols = { "ʔh" }, audio = "Voiceless glottal affricate.ogg" }, -- Fricatives { name = "Voiceless bilabial fricative", symbols = { "ɸ", "β̞̊", "β̥˕" }, audio = "Voiceless bilabial fricative.ogg" }, { name = "Voiced bilabial fricative", symbols = { "β" }, audio = "Voiced bilabial fricative.ogg" }, { name = "Voiceless labiodental fricative", symbols = { "f", "ʋ̥", "f̞" }, audio = "Voiceless labio-dental fricative.ogg" }, { name = "Voiced labiodental fricative", symbols = { "v" }, audio = "Voiced labio-dental fricative.ogg" }, { name = "Voiceless linguolabial fricative", symbols = { "θ̼" }, audio = "Voiceless linguolabial fricative.ogg" }, { name = "Voiced linguolabial fricative", symbols = { "ð̼" }, }, { name = "Voiceless dental fricative", symbols = { "θ", "θ̞" }, audio = "Voiceless dental fricative.ogg" }, { name = "Voiced dental fricative", symbols = { "ð" }, audio = "Voiced dental fricative.ogg" }, { name = "Voiceless dental sibilant fricative", symbols = { "s̪" }, }, { name = "Voiced dental sibilant fricative", symbols = { "z̪" }, }, { name = "Voiceless denti-alveolar fricative", symbols = { "s̻̪", "s̪̻", "s̻͆", "s̟" }, }, { name = "Voiceless alveolar fricative", symbols = { "s" }, audio = "Voiceless alveolar sibilant.ogg" }, { name = "Voiced alveolar fricative", symbols = { "z" }, audio = "Voiced alveolar sibilant.ogg" }, { name = "Voiceless apico-alveolar fricative", symbols = { "s̺" }, }, { name = "Voiced apico-alveolar fricative", symbols = { "z̺" }, }, { name = "Voiceless alveolar retracted fricative", symbols = { "s̠" }, audio = "Voiceless alveolar retracted sibilant.ogg" }, { name = "Voiced alveolar retracted fricative", symbols = { "z̠" }, }, { name = "Voiceless alveolar non-sibilant fricative", symbols = { "θ̠", "θ͇", "ɹ̝̊", "ɹ̥" }, audio = "Voiceless alveolar non-sibilant fricative.ogg" }, { name = "Voiced alveolar non-sibilant fricative", symbols = { "ð̠", "ð͇", "ɹ̝" }, audio = "Voiced alveolar non-sibilant fricative.ogg" }, { name = "Voiceless alveolar tapped fricative", symbols = { "ɾ̞̊" }, }, { name = "Voiced alveolar tapped fricative", symbols = { "ɾ̞" }, audio = "Voiced alveolar tapped fricative.ogg" }, { name = "Voiceless postalveolar fricative", symbols = { "ʃ" }, audio = "Voiceless palato-alveolar sibilant.ogg" }, { name = "Voiced postalveolar fricative", symbols = { "ʒ" }, audio = "Voiced palato-alveolar sibilant.ogg" }, { name = "Voiceless postalveolar non-sibilant fricative", symbols = { "ɹ̠̊˔", "ɹ̝̊˗" }, audio = "Voiceless postalveolar non-sibilant fricative.ogg" }, { name = "Voiced postalveolar non-sibilant fricative", symbols = { "ɹ̠˔", "ɹ̝˗" }, audio = "Voiced postalveolar non-sibilant fricative.ogg" }, { name = "Voiceless retroflex fricative", symbols = { "ʂ" }, audio = "Voiceless retroflex sibilant.ogg" }, { name = "Voiced retroflex fricative", symbols = { "ʐ" }, audio = "Voiced retroflex sibilant.ogg" }, { name = "Voiced retroflex non-sibilant fricative", symbols = { "ɻ̝", "ɻ˔", "ɻ̊" }, }, { name = "Voiceless alveolo-palatal fricative", symbols = { "ɕ" }, audio = "Voiceless alveolo-palatal sibilant.ogg" }, { name = "Voiced alveolo-palatal fricative", symbols = { "ʑ" }, audio = "Voiced alveolo-palatal sibilant.ogg" }, { name = "Voiceless palatal fricative", symbols = { "ç" }, audio = "Voiceless palatal fricative.ogg" }, { name = "Voiced palatal fricative", symbols = { "ʝ", "j̊" }, audio = "Voiced palatal fricative.ogg" }, { name = "Voiceless post-palatal fricative", symbols = { "ç˗", "ç̠", "x̟" }, }, { name = "Voiced post-palatal fricative", symbols = { "ʝ˗", "ʝ̠", "ɣ˖", "ɣ̟" }, }, { name = "Voiceless velar fricative", symbols = { "x", "ɰ̊", "x̞", "ɣ̊˕", "ɣ̞̊" }, audio = "Voiceless velar fricative.ogg" }, { name = "Voiced velar fricative", symbols = { "ɣ" }, audio = "Voiced velar fricative.ogg" }, { name = "Voiceless pre-uvular fricative", symbols = { "χ˖", "χ̟", "x̠" }, }, { name = "Voiced pre-uvular fricative", symbols = { "ʁ̟", "ɣ˗", "ɣ̠" }, }, { name = "Voiceless uvular fricative", symbols = { "χ" }, audio = "Voiceless uvular fricative.ogg" }, { name = "Voiced uvular fricative", symbols = { "ʁ" }, audio = "Voiced uvular fricative.ogg" }, { name = "Voiceless pharyngeal fricative", symbols = { "ħ" }, audio = "Voiceless pharyngeal fricative.ogg" }, { name = "Voiced pharyngeal fricative", symbols = { "ʕ" }, audio = "Voiced pharyngeal fricative.ogg" }, { name = "Voiceless glottal fricative", symbols = { "h" }, audio = "Voiceless glottal fricative.ogg" }, { name = "Voiced glottal fricative", symbols = { "ɦ" }, audio = "Voiced glottal fricative.ogg" }, { name = "Voiceless bidental fricative", symbols = { "h̪͆" }, }, -- Approximants { name = "Voiced bilabial approximant", symbols = { "β̞" }, audio = "Bilabial approximant.ogg" }, { name = "Voiced labiodental approximant", symbols = { "ʋ" }, audio = "Labiodental approximant.ogg" }, { name = "Voiced dental approximant", symbols = { "ð̞" }, audio = "Voiced dental approximant.ogg" }, { name = "Voiced alveolar approximant", symbols = { "ɹ" }, audio = "Alveolar approximant.ogg" }, { name = "Voiced postalveolar approximant", symbols = { "ɹ̠" }, audio = "Postalveolar approximant.ogg" }, { name = "Voiced retroflex approximant", symbols = { "ɻ" }, audio = "Retroflex Approximant2.oga" }, { name = "Voiced palatal approximant", symbols = { "j", "ʝ˕", "ʝ̞" }, audio = "Palatal approximant.ogg" }, { name = "Voiced post-palatal approximant", symbols = { "j˗", "j̠", "ɰ̟", "ɰ˖", "ʝ˕˗", "ʝ˗˕", "ʝ̞˗", "ɣ˕˖", "ɣ˖˕", "ɣ̞˖" }, audio = "Post-palatal approximant.ogg" }, { name = "Voiced velar approximant", symbols = { "ɰ", "ɣ˕", "ɣ̞" }, audio = "Voiced velar approximant.ogg" }, { name = "Voiced uvular approximant", symbols = { "ʁ̞" }, audio = "Voiced Uvular Approximant.ogg" }, { name = "Voiced pharyngeal approximant", symbols = { "ʕ̞" }, }, { name = "Voiced epiglottal approximant", symbols = { "ʢ̞" }, }, { name = "Creaky-voiced glottal approximant", symbols = { "ʔ̞", "ʔ̰" }, }, -- Taps/flaps { name = "Voiced bilabial flap", symbols = { "ⱱ̟", "b̆" }, }, { name = "Voiced labiodental flap", symbols = { "ⱱ" }, audio = "Labiodental flap.ogg" }, { name = "Voiced linguolabial tap", symbols = { "ɾ̼" }, }, { name = "Voiced dental tap or flap", symbols = { "ɾ̪" }, article = "Dental tap", }, { name = "Voiceless alveolar tap or flap", symbols = { "ɾ̥" }, article = "Voiceless alveolar tap", }, { name = "Voiced alveolar tap or flap", symbols = { "ɾ" }, article = "Voiced dental and alveolar taps and flaps", audio = "Alveolar tap.ogg" }, { name = "Voiced postalveolar flap", symbols = { "ɾ̠" }, }, { name = "Voiced alveolar nasal tap or flap", symbols = { "ɾ̃", "n̆" }, article = "Alveolar nasal tap", }, { name = "Voiceless retroflex flap", symbols = { "ɽ̊" }, }, { name = "Voiced retroflex flap", symbols = { "ɽ" }, audio = "Retroflex flap.ogg" }, { name = "Voiced velar tap", symbols = { "ɡ̆" }, }, { name = "Voiced uvular tap or flap", symbols = { "ɢ̆", "ʀ̆" }, article = "Voiced uvular tap and flap", }, { name = "Voiced epiglottal tap", symbols = { "ʡ̆", "ʢ̆" }, audio = "Epiglottal flap.oga" }, -- Trills { name = "Voiceless bilabial trill", symbols = { "ʙ̥" }, audio = "Voiceless bilabial trill with aspiration.ogg" }, { name = "Voiced bilabial trill", symbols = { "ʙ" }, audio = "Bilabial trill.ogg" }, { name = "Voiced linguolabial trill", symbols = { "r̼" }, audio = "Linguolabial trill.ogg" }, { name = "Voiced dental trill", symbols = { "r̪" }, }, { name = "Voiceless alveolar trill", symbols = { "r̥" }, audio = "Voiceless alveolar trill.ogg" }, { name = "Voiced alveolar trill", symbols = { "r" }, audio = "Alveolar trill.ogg" }, { name = "Voiceless alveolar fricative trill", symbols = { "r̝̊" }, }, { name = "Voiced alveolar fricative trill", symbols = { "r̝" }, audio = "Raised alveolar non-sonorant trill.ogg" }, { name = "Voiced postalveolar trill", symbols = { "r̠" }, audio = "Voiced postalveolar trill.ogg" }, { name = "Voiceless retroflex trill", symbols = { "ɽ̊r̥", "ɽr̥" }, }, { name = "Voiced retroflex trill", symbols = { "ɽr" }, audio = "Voiced retroflex trill.ogg" }, { name = "Voiceless pre-uvular fricative trill", symbols = { "ʀ̝̊˖", "ʀ̟̊˔" }, }, { name = "Voiced pre-uvular fricative trill", symbols = { "ʀ̝˖", "ʀ̟˔" }, }, { name = "Voiceless uvular trill", symbols = { "ʀ̥" }, audio = "Voiceless uvular trill.ogg" }, { name = "Voiced uvular trill", symbols = { "ʀ" }, audio = "Uvular trill.ogg" }, { name = "Voiceless uvular fricative trill", symbols = { "ʀ̝̊" }, }, { name = "Voiced uvular fricative trill", symbols = { "ʀ̝" }, }, { name = "Voiceless epiglottal trill", symbols = { "ʜ" }, audio = "Voiceless epiglottal trill.ogg" }, { name = "Voiced epiglottal trill", symbols = { "ʢ" }, audio = "Voiced epiglottal trill 2.ogg" }, -- Lateral affricates { name = "Voiceless alveolar lateral affricate", symbols = { "tɬ", "ƛ" }, audio = "Voiceless alveolar lateral affricate.ogg" }, { name = "Voiced alveolar lateral affricate", symbols = { "dɮ" }, audio = "Voiced alveolar lateral affricate.ogg" }, { name = "Voiceless retroflex lateral affricate", symbols = { "ʈɭ̊˔","ʈɭ̊", "tꞎ", "ʈꞎ" }, }, { name = "Voiced retroflex lateral affricate", symbols = { "ɖɭ˔","ɖɭ", "d𝼅", "ɖ𝼅" }, }, { name = "Voiceless palatal lateral affricate", symbols = { "cʎ̝̊", "cʎ̥", "c𝼆", "t𝼆" }, audio = "Voiceless palatal lateral affricate.ogg" }, { name = "Voiced palatal lateral affricate", symbols = { "ɟʎ̝", "ɟʎ", "ɟ𝼆̬", "d𝼆̬" }, }, { name = "Voiceless velar lateral affricate", symbols = { "kʟ̝̊", "kʟ̥", "k𝼄" }, audio = "Voiceless velar lateral affricate.ogg" }, { name = "Voiced velar lateral affricate", symbols = { "ɡʟ̝", "ɡʟ", "ɡ𝼄̬" }, audio = "Voiced velar lateral affricate.ogg" }, -- Lateral fricatives { name = "Voiceless dental lateral fricative", symbols = { "ɬ̪" }, }, { name = "Voiced dental lateral fricative", symbols = { "ɮ̪", "ɮ͆" }, }, { name = "Voiceless alveolar lateral fricative", symbols = { "ɬ", "l̥" }, audio = "Voiceless alveolar lateral fricative.ogg" }, { name = "Voiced alveolar lateral fricative", symbols = { "ɮ" }, audio = "Voiced alveolar lateral fricative.ogg" }, { name = "Voiceless retroflex lateral fricative", symbols = { "ɭ̊˔", "ꞎ", "ɭ̊" }, audio = "Voiceless retroflex lateral fricative.ogg" }, { name = "Voiced retroflex lateral fricative", symbols = { "ɭ˔", "𝼅" }, }, { name = "Voiceless alveolo-palatal lateral fricative", symbols = { "ɬ̠ʲ", "ʎ̝̊˖", "ȴ̊˔", "l̠̊ʲ", "ʎ̟̊", "ȴ̊" }, }, { name = "Voiceless palatal lateral fricative", symbols = { "ʎ̝̊", "ʎ̥", "𝼆" }, audio = "Voiceless palatal lateral fricative.ogg" }, { name = "Voiced palatal lateral fricative", symbols = { "ʎ̝", "𝼆̬" }, }, { name = "Voiceless velar lateral fricative", symbols = { "ʟ̝̊", "ʟ̥", "𝼄" }, audio = "Voiceless velar lateral fricative.ogg" }, { name = "Voiced velar lateral fricative", symbols = { "ʟ̝", "𝼄̬" }, audio = "Voiced velar lateral fricative.ogg" }, -- Lateral approximants { name = "Voiced dental lateral approximant", symbols = { "l̪" }, audio = "Voiced dental lateral approximant.ogg" }, { name = "Voiced alveolar lateral approximant", symbols = { "l" }, audio = "Alveolar lateral approximant.ogg" }, { name = "Voiced postalveolar lateral approximant", symbols = { "l̠" }, audio = "Voiced postalveolar lateral approximant.ogg" }, { name = "Voiced retroflex lateral approximant", symbols = { "ɭ" }, audio = "Retroflex lateral approximant.ogg" }, { name = "Voiced alveolo-palatal lateral approximant", symbols = { "l̠ʲ", "ʎ̟", "ȴ" }, }, { name = "Voiced palatal lateral approximant", symbols = { "ʎ" }, audio = "Palatal lateral approximant.ogg" }, { name = "Voiced velar lateral approximant", symbols = { "ʟ" }, audio = "Velar lateral approximant.ogg" }, { name = "Voiced uvular lateral approximant", symbols = { "ʟ̠" }, audio = "Uvular lateral approximant.ogg" }, -- Lateral taps/flaps { name = "Voiceless alveolar lateral flap", symbols = { "ɺ̥" }, }, { name = "Voiced alveolar lateral flap", symbols = { "ɺ" }, }, { name = "Voiceless retroflex lateral flap", symbols = { "ɭ̥̆", "𝼈̥" }, }, { name = "Voiced retroflex lateral flap", symbols = { "ɭ̆", "𝼈" }, }, { name = "Voiced palatal lateral flap", symbols = { "ʎ̆" }, }, { name = "Voiced velar lateral tap", symbols = { "ʟ̆" }, }, -- NON-PULMONIC CONSONANTS -- Ejective stops { name = "Bilabial ejective stop", symbols = { "pʼ" }, audio = "Bilabial ejective plosive.ogg" }, { name = "Dental ejective stop", symbols = { "t̪ʼ" }, }, { name = "Alveolar ejective stop", symbols = { "tʼ" }, audio = "Alveolar ejective plosive.ogg" }, { name = "Retroflex ejective stop", symbols = { "ʈʼ" }, audio = "Retroflex ejective.ogg" }, { name = "Palatal ejective stop", symbols = { "cʼ" }, audio = "Palatal ejective.ogg" }, { name = "Velar ejective stop", symbols = { "kʼ" }, audio = "Velar ejective plosive.ogg" }, { name = "Uvular ejective stop", symbols = { "qʼ" }, audio = "Uvular ejective plosive.ogg" }, { name = "Epiglottal ejective", symbols = { "ʡʼ" }, audio = "Epiglottal ejective.ogg" }, -- Ejective affricates { name = "Dental ejective affricate", symbols = { "t̪θʼ", "t̟θʼ", "tθʼ" }, audio = "Dental ejective affricate.ogg" }, { name = "Alveolar ejective affricate", symbols = { "tsʼ" }, audio = "Alveolar ejective affricate.ogg" }, { name = "Palato-alveolar ejective affricate", symbols = { "t̠ʃʼ", "tʃʼ" }, audio = "Palato-alveolar ejective affricate.ogg" }, { name = "Retroflex ejective affricate", symbols = { "ʈʂʼ", "tʂʼ" }, audio = "Retroflex ejective affricate.ogg" }, { name = "Alveolo-palatal ejective affricate", symbols = { "t̠ɕʼ", "tɕʼ", "cɕʼ" }, }, { name = "Palatal ejective affricate", symbols = { "cçʼ" }, audio = "Palatal ejective affricate.ogg" }, { name = "Velar ejective affricate", symbols = { "kxʼ" }, audio = "Velar ejective affricate.ogg" }, { name = "Uvular ejective affricate", symbols = { "qχʼ" }, audio = "Uvular ejective affricate.ogg" }, -- Ejective fricatives { name = "Bilabial ejective fricative", symbols = { "ɸʼ" }, }, { name = "Labiodental ejective fricative", symbols = { "fʼ" }, audio = "Labiodental ejective fricative.ogg" }, { name = "Dental ejective fricative", symbols = { "θʼ" }, audio = "Dental ejective fricative.ogg" }, { name = "Alveolar ejective fricative", symbols = { "sʼ" }, audio = "Alveolar ejective fricative.ogg" }, { name = "Palato-alveolar ejective fricative", symbols = { "ʃʼ" }, audio = "Palato-alveolar ejective fricative.ogg" }, { name = "Retroflex ejective fricative", symbols = { "ʂʼ" }, audio = "Retroflex ejective fricative.ogg" }, { name = "Alveolo-palatal ejective fricative", symbols = { "ɕʼ" }, audio = "Alveolo-palatal ejective fricative.ogg" }, { name = "Palatal ejective fricative", symbols = { "çʼ" }, audio = "Palatal ejective fricative.ogg" }, { name = "Velar ejective fricative", symbols = { "xʼ" }, audio = "Velar ejective fricative.ogg" }, { name = "Uvular ejective fricative", symbols = { "χʼ" }, audio = "Uvular ejective fricative.ogg" }, -- Lateral ejective affricates { name = "Alveolar lateral ejective affricate", symbols = { "tɬʼ", "ƛʼ" }, audio = "Alveolar lateral ejective affricate.ogg" }, { name = "Palatal lateral ejective affricate", symbols = { "cʎ̝̊ʼ", "cʎ̥ʼ" }, audio = "Palatal lateral ejective affricate.ogg" }, { name = "Velar lateral ejective affricate", symbols = { "kʟ̝̊ʼ", "kʟ̥ʼ" }, audio = "Velar lateral ejective affricate.ogg" }, -- Lateral ejective fricatives { name = "Alveolar lateral ejective fricative", symbols = { "ɬʼ" }, audio = "Alveolar lateral ejective fricative.ogg" }, -- Tenuis clicks { name = "Tenuis bilabial click", symbols = { "ʘ", "kʘ" }, audio = "Clic bilabial sourd.ogg" }, { name = "Tenuis dental click", symbols = { "ǀ", "kǀ" }, audio = "Dental click.ogg" }, { name = "Tenuis alveolar click", symbols = { "ǃ", "kǃ" }, audio = "Postalveolar click.ogg" }, { name = "Tenuis palatal click", symbols = { "ǂ", "kǂ" }, audio = "Palatoalveolar click.ogg" }, { name = "Back-released velar click", symbols = { "ʞ" }, }, -- Voiced clicks { name = "Voiced bilabial click", symbols = { "ʘ̬", "ɡʘ" }, }, { name = "Voiced dental click", symbols = { "ǀ̬", "ɡǀ" }, }, { name = "Voiced alveolar click", symbols = { "ǃ̬", "ɡǃ" }, }, { name = "Tenuis retroflex click", symbols = { "‼", "𝼊" }, }, { name = "Voiced palatal click", symbols = { "ǂ̬", "ɡǂ" }, }, { name = "Voiced retroflex click", symbols = { "‼̬", "ɡ‼", "ɡ𝼊" }, }, -- Nasal clicks { name = "Bilabial nasal click", symbols = { "ʘ̃", "ŋʘ" }, audio = "Bilabial nasal click.ogg" }, { name = "Dental nasal click", symbols = { "ǀ̃", "ŋǀ" }, }, { name = "Alveolar nasal click", symbols = { "ǃ̃", "ŋǃ" }, audio = "Intervocalic nasal alveolar clicks.ogg" }, { name = "Palatal nasal click", symbols = { "ǂ̃", "ŋǂ" }, }, { name = "Retroflex nasal click", symbols = { "‼̃", "ŋ‼", "ŋ𝼊" }, }, -- Lateral clicks { name = "Tenuis alveolar lateral click", symbols = { "ǁ", "kǁ" }, audio = "Alveolar lateral click.ogg" }, { name = "Voiced alveolar lateral click", symbols = { "ǁ̬", "ɡǁ" }, }, -- Lateral nasal clicks { name = "Alveolar lateral nasal click", symbols = { "ǁ̃", "ŋǁ" }, }, -- Glottalized clicks { name = "Glottalized bilabial nasal click", symbols = { "ʘ̃ˀ", "ʘˀ", "ŋ̊ʘˀ", "ŋʘˀ" }, }, { name = "Glottalized dental nasal click", symbols = { "ǀ̃ˀ", "ǀˀ", "ŋ̊ǀˀ", "ŋǀˀ" }, }, { name = "Glottalized alveolar nasal click", symbols = { "ǃ̃ˀ", "ǃˀ", "ŋ̊ǃˀ", "ŋǃˀ" }, }, { name = "Glottalized retroflex nasal click", symbols = { "‼̃ˀ", "‼ˀ", "ŋ‼ˀ", "ŋ̊‼ˀ" }, }, { name = "Glottalized palatal nasal click", symbols = { "ǂ̃ˀ", "ǂˀ", "ŋ̊ǂˀ", "ŋǂˀ" }, }, { name = "Glottalized alveolar lateral nasal click", symbols = { "ǁ̃ˀ", "ǁˀ", "ŋ̊ǁˀ", "ŋǁˀ" }, }, -- Implosives { name = "Voiceless bilabial implosive", symbols = { "ɓ̥", "ƥ" }, }, { name = "Voiced bilabial implosive", symbols = { "ɓ" }, audio = "Voiced bilabial implosive.ogg" }, { name = "Voiceless alveolar implosive", symbols = { "ɗ̥", "ƭ" }, }, { name = "Voiced alveolar implosive", symbols = { "ɗ" }, audio = "Voiced alveolar implosive.ogg" }, { name = "Voiceless retroflex implosive", symbols = { "ᶑ̊", "ᶑ̥", "𝼉" }, }, { name = "Voiced retroflex implosive", symbols = { "ᶑ" }, }, { name = "Voiceless palatal implosive", symbols = { "ʄ̊", "ʄ̥", "ƈ" }, }, { name = "Voiced palatal implosive", symbols = { "ʄ" }, audio = "Voiced palatal implosive.ogg" }, { name = "Voiceless velar implosive", symbols = { "ɠ̊", "ƙ" }, }, { name = "Voiced velar implosive", symbols = { "ɠ" }, audio = "Voiced velar implosive.ogg" }, { name = "Voiceless uvular implosive", symbols = { "ʛ̥", "ʠ" }, }, { name = "Voiced uvular implosive", symbols = { "ʛ" }, audio = "Voiced uvular implosive.ogg" }, -- CO-ARTICULATED CONSONANTS -- Co-articulated nasals { name = "Voiced labial–alveolar nasal", symbols = { "nm" }, article = "Labial–coronal consonant", }, { name = "Voiced labial–velar nasal", symbols = { "ŋm" }, audio = "Labial-velar nasal stop.ogg" }, -- Co-articulated plosives { name = "Voiceless labial–alveolar plosive", symbols = { "tp" }, article = "Labial–coronal consonant", }, { name = "Voiced labial–alveolar plosive", symbols = { "db" }, article = "Labial–coronal consonant", }, { name = "Voiceless labial–velar plosive", symbols = { "kp" }, audio = "Voiceless labial-velar plosive.ogg" }, { name = "Voiced labial–velar plosive", symbols = { "ɡb" }, audio = "Voiced labial-velar plosive.ogg" }, { name = "Voiceless uvular–epiglottal plosive", symbols = { "qʡ" }, }, -- Co-articulated continuants { name = "Voiceless labial–palatal fricative", symbols = { "ɥ̊" }, }, { name = "Voiced labial–palatal approximant", symbols = { "ɥ" }, audio = "LL-Q150 (fra)-WikiLucas00-IPA ɥ.wav" }, { name = "Voiceless labial–velar fricative", symbols = { "ʍ", "w̥", "hw" }, audio = "Voiceless labio-velar fricative.ogg" }, { name = "Voiced labial–velar approximant", symbols = { "w" }, audio = "Voiced labio-velar approximant.ogg" }, { name = "Compressed voiced labial–velar approximant", symbols = { "wᵝ", "ɰᵝ" }, article = "Voiced labial–velar approximant", }, { name = "Sj-sound", symbols = { "ɧ" }, audio = "Voiceless dorso-palatal velar fricative.ogg" }, -- Co-articulated lateral approximants { name = "Velarized dental lateral approximant", symbols = { "ɫ̪", "l̪ˠ" }, }, { name = "Velarized alveolar lateral approximant", symbols = { "ɫ", "lˠ" }, audio = "Velarized alveolar lateral approximant.ogg" }, -- Nasal approximants { name = "Nasal palatal approximant", symbols = { "j̃" }, }, { name = "Nasal labial–velar approximant", symbols = { "w̃" }, }, { name = "Voiceless nasal glottal approximant", symbols = { "h̃" }, }, -- VOWELS -- Close vowels { name = "Close front unrounded vowel", symbols = { "i" }, audio = "Close front unrounded vowel.ogg" }, { name = "Close front rounded vowel", symbols = { "y" }, audio = "Close front rounded vowel.ogg" }, { name = "Close front compressed vowel", symbols = { "y͍", "iᵝ" }, audio = "Close front rounded vowel.ogg" }, { name = "Close front protruded vowel", symbols = { "y̫", "yʷ", "iʷ" }, }, { name = "Close central unrounded vowel", symbols = { "ɨ", "ï" }, audio = "Close central unrounded vowel.ogg" }, { name = "Close central rounded vowel", symbols = { "ʉ", "ü" }, audio = "Close central rounded vowel.ogg" }, { name = "Close central protruded vowel", symbols = { "ʉ̫", "ʉʷ", "ɨʷ" }, audio = "Close central rounded vowel.ogg" }, { name = "Close central compressed vowel", symbols = { "ÿ", "ɨᵝ" }, }, { name = "Close back unrounded vowel", symbols = { "ɯ" }, audio = "Close back unrounded vowel.ogg" }, { name = "Close back rounded vowel", symbols = { "u" }, audio = "Close back rounded vowel.ogg" }, { name = "Close back protruded vowel", symbols = { "u̫", "uʷ", "ɯʷ" }, audio = "Close back rounded vowel.ogg" }, { name = "Close back compressed vowel", symbols = { "u͍", "ɯᵝ" }, audio = "Ja-U.oga" }, -- Near-close vowels { name = "Near-close near-front unrounded vowel", symbols = { "ɪ", "ɪ̟", "i̞", "e̝" }, audio = "Near-close near-front unrounded vowel.ogg" }, { name = "Near-close near-front rounded vowel", symbols = { "ʏ", "y̞", "y˕", "ø̝" }, audio = "Near-close near-front rounded vowel.ogg" }, { name = "Near-close near-front compressed vowel", symbols = { "ʏ͍", "ɪᵝ" }, audio = "Near-close near-front rounded vowel.ogg" }, { name = "Near-close near-front protruded vowel", symbols = { "ʏ̫", "ʏʷ", "ɪʷ" }, }, { name = "Near-close central unrounded vowel", symbols = { "ɪ̈", "ɨ̞", "ɘ̝" }, audio = "Near-close central unrounded vowel.ogg" }, { name = "Near-close central rounded vowel", symbols = { "ʊ̈", "ʊ̟", "ʉ̞", "ɵ̝" }, }, { name = "Near-close central protruded vowel", symbols = { "ʊ̫̈", "ʉ̫˕", "ʊ̈ʷ", "ʉ̞ʷ", "ɪ̈ʷ", "ɨ̞ʷ" }, }, { name = "Near-close central compressed vowel", symbols = { "ʏ̈", "ɨ̞ᵝ" }, }, { name = "Near-close near-back unrounded vowel", symbols = { "ɯ̞", "ɯ̽" }, audio = "Near-close near-back unrounded vowel.ogg" }, { name = "Near-close near-back rounded vowel", symbols = { "ʊ", "u̞", "o̝" }, audio = "Near-close near-back rounded vowel.ogg" }, { name = "Near-close near-back protruded vowel", symbols = { "ʊ̫", "ʊʷ", "ɯ̽ʷ", "ɤ̝̈ʷ", "u̫˕", "u̞ʷ", "ɯ̞ʷ", "ɤ̝ʷ" }, audio = "Near-close near-back rounded vowel.ogg" }, { name = "Near-close near-back compressed vowel", symbols = { "ʊ͍", "ɯ̽ᵝ", "ɯ̞̈ᵝ", "ɯ̞ᵝ" }, }, -- Close-mid vowels { name = "Close-mid front unrounded vowel", symbols = { "e" }, audio = "Close-mid front unrounded vowel.ogg" }, { name = "Close-mid front rounded vowel", symbols = { "ø" }, audio = "Close-mid front rounded vowel.ogg" }, { name = "Close-mid front compressed vowel", symbols = { "ø͍", "eᵝ" }, audio = "Close-mid front rounded vowel.ogg" }, { name = "Close-mid front protruded vowel", symbols = { "ø̫", "øʷ", "eʷ" }, }, { name = "Close-mid central unrounded vowel", symbols = { "ɘ", "ë", "ɤ̈" }, audio = "Close-mid central unrounded vowel.ogg" }, { name = "Close-mid central rounded vowel", symbols = { "ɵ", "ö" }, audio = "Close-mid central rounded vowel.ogg" }, { name = "Close-mid central protruded vowel", symbols = { "ɵ̫", "ɵʷ", "ɘʷ" }, audio = "Close-mid central rounded vowel.ogg" }, { name = "Close-mid central compressed vowel", symbols = { "ø̈", "ɘᵝ" }, }, { name = "Close-mid back unrounded vowel", symbols = { "ɤ" }, audio = "Close-mid back unrounded vowel.ogg" }, { name = "Close-mid back rounded vowel", symbols = { "o" }, audio = "Close-mid back rounded vowel.ogg" }, { name = "Close-mid back protruded vowel", symbols = { "o̫", "oʷ", "ɤʷ" }, audio = "Close-mid back rounded vowel.ogg" }, { name = "Close-mid back compressed vowel", symbols = { "o͍", "ɤᵝ" }, }, -- Mid vowels { name = "Mid front unrounded vowel", symbols = { "e̞", "ɛ̝" }, audio = "Mid front unrounded vowel.ogg" }, { name = "Mid front rounded vowel", symbols = { "ø̞", "œ̝" }, audio = "Mid front rounded vowel.ogg" }, { name = "Mid front compressed vowel", symbols = { "ø͍˕", "œ͍˔", "e̞ᵝ", "ɛ̝ᵝ" }, }, { name = "Mid front protruded vowel", symbols = { "ø̫˕", "œ̫˔", "ø̞ʷ", "œ̝ʷ", "e̞ʷ", "ɛ̝ʷ" }, }, { name = "Mid central vowel", symbols = { "ə" }, audio = "Mid-central vowel.ogg" }, { name = "Mid central unrounded vowel", symbols = { "ə̜", "ɘ̞", "ɜ̝" }, audio = "Mid-central vowel.ogg" }, { name = "Mid central rounded vowel", symbols = { "ə̹", "ɵ̞", "ɞ̝" }, audio = "Mid central rounded vowel.ogg" }, { name = "Mid back unrounded vowel", symbols = { "ɤ̞", "ʌ̝" }, }, { name = "Mid back rounded vowel", symbols = { "o̞", "ɔ̝" }, audio = "Mid back rounded vowel.ogg" }, -- Open-mid vowels { name = "Open-mid front unrounded vowel", symbols = { "ɛ" }, audio = "Open-mid front unrounded vowel.ogg" }, { name = "Open-mid front rounded vowel", symbols = { "œ" }, audio = "Open-mid front rounded vowel.ogg" }, { name = "Open-mid front compressed vowel", symbols = { "œ͍", "ɛᵝ" }, audio = "Open-mid front rounded vowel.ogg" }, { name = "Open-mid front protruded vowel", symbols = { "œ̫", "œʷ", "ɛʷ" }, }, { name = "Open-mid central unrounded vowel", symbols = { "ɜ", "ɛ̈", "ʌ̈" }, audio = "Open-mid central unrounded vowel.ogg" }, { name = "Open-mid central rounded vowel", symbols = { "ɞ" }, audio = "Open-mid central rounded vowel.ogg" }, { name = "Open-mid back unrounded vowel", symbols = { "ʌ" }, audio = "PR-open-mid back unrounded vowel2.ogg" }, { name = "Open-mid back rounded vowel", symbols = { "ɔ" }, audio = "PR-open-mid back rounded vowel.ogg" }, -- Near-open vowels { name = "Near-open front unrounded vowel", symbols = { "æ" }, audio = "Near-open front unrounded vowel.ogg" }, { name = "Near-open central vowel", symbols = { "ɐ" }, audio = "Near-open central unrounded vowel.ogg" }, { name = "Near-open central unrounded vowel", symbols = { "ɐ̜", "ɜ̞" }, audio = "PR-near-open central unrounded vowel.ogg" }, { name = "Near-open central rounded vowel", symbols = { "ɐ̹", "ɞ̞" }, }, -- Open vowels { name = "Open front unrounded vowel", symbols = { "a", "æ̞" }, audio = "PR-open front unrounded vowel.ogg" }, { name = "Open front rounded vowel", symbols = { "ɶ" }, audio = "Open front rounded vowel.ogg" }, { name = "Open central unrounded vowel", symbols = { "ä", "ɑ̈", "ɐ̞" }, audio = "Open central unrounded vowel.ogg" }, { name = "Open central rounded vowel", symbols = { "ɒ̈", "ɶ̈" }, audio = "Open central rounded vowel.ogg" }, { name = "Open back unrounded vowel", symbols = { "ɑ" }, audio = "Open back unrounded vowel.ogg" }, { name = "Open back rounded vowel", symbols = { "ɒ" }, audio = "PR-open back rounded vowel.ogg" }, { name = "R-colored vowel", symbols = { "ɚ", "ɝ", "ɹ̩", "ɻ̍" }, audio = "En-us-er.ogg" }, -- SUPRASEGMENTALS { name = "Primary stress", symbols = { "ˈ" }, article = "Stress (linguistics)", }, { name = "Secondary stress", symbols = { "ˌ" }, }, { name = "Minor (foot) group", symbols = { "|" }, article = "Prosodic unit", }, { name = "Major (intonation) group", symbols = { "‖" }, article = "Prosodic unit", }, { name = "Syllable break", symbols = { "." }, article = "Syllable", }, { name = "Linking (absence of a break)", symbols = { "‿" }, article = "Connected speech", }, -- TONES AND WORD ACCENTS { name = "Downstep", symbols = { "ꜜ" }, }, { name = "Upstep", symbols = { "ꜛ" }, }, { name = "Global rise", symbols = { "↗" }, article = "Intonation (linguistics)", }, { name = "Global fall", symbols = { "↘" }, article = "Intonation (linguistics)", }, -- EXTENDED IPA (extIPA) { name = "Bilabial percussive", symbols = { "ʬ" }, }, { name = "Bidental percussive", symbols = { "ʭ" }, }, { name = "Velopharyngeal fricative", symbols = { "ʩ" }, }, { name = "Voiceless alveolar lateral–median fricative", symbols = { "ʪ" }, article = "Lateral release (phonetics)", }, { name = "Voiced alveolar lateral–median fricative", symbols = { "ʫ" }, article = "Lateral release (phonetics)", }, { name = "Ingressive airflow", symbols = { "↓" }, article = "Ingressive sound", }, { name = "Egressive airflow", symbols = { "↑" }, article = "Egressive sound", }, { name = "Apical r", symbols = { "ɹ̺" }, article = "Pronunciation of English /r/", }, { name = "Bunched r", symbols = { "ɹ̈" }, article = "Pronunciation of English /r/", }, { name = "Sublaminal lower alveolar percussive", symbols = { "¡" }, article = "Percussive consonant", }, { name = "Percussive alveolar click", symbols = { "ǃ¡" }, }, { name = "Buccal interdental trill", symbols = { "ↀr̪͆" }, article = "Blowing a raspberry", }, -- NON-IPA { name = "Morphological boundary", symbols = { "#" }, article = "Word stem", }, { name = "Zero", symbols = { "∅" }, article = "Zero (linguistics)", }, }, diacritics = { -- DIACRITICS { name = "Voiceless", symbols = { "̥", "̊", "ḁ", "å", "ů", "ẘ", "ẙ" }, }, { name = "Voiced", symbols = { "̬" }, article = "Voice (phonetics)", }, { name = "Aspirated", symbols = { "ʰ" }, article = "Aspirated consonant", }, { name = "More rounded", symbols = { "̹", "͗", "˒" }, article = "Roundedness", }, { name = "Less rounded", symbols = { "̜", "͑", "˓", "͍" }, article = "Roundedness", }, { name = "Advanced", symbols = { "̟", "˖" }, article = "Relative articulation#Advanced and retracted", }, { name = "Retracted", symbols = { "̠", "˗" }, article = "Relative articulation#Advanced and retracted", }, { name = "Centralized", symbols = { "̈" }, article = "Relative articulation#Centralized vowels", }, { name = "Mid-centralized", symbols = { "̽" }, article = "Relative articulation#Mid-centralized vowel", }, { name = "Syllabic", symbols = { "̩", "̍" }, article = "Syllabic consonant", }, { name = "Non-syllabic", symbols = { "̯", "̑" }, article = "Semivowel", }, { name = "Rhoticity", symbols = { "˞" }, article = "R-colored vowel", audio = "En-us-er.ogg" }, { name = "Breathy voiced", symbols = { "̤", "ṳ", "ʱ" }, article = "Breathy voice", }, { name = "Creaky voiced", symbols = { "̰", "ḛ", "ḭ", "ṵ" }, article = "Creaky voice", }, { name = "Linguolabial", symbols = { "̼" }, article = "Linguolabial consonant", }, { name = "Labialized", symbols = { "ʷ", "̫" }, article = "Labialization", }, { name = "Palatalized", symbols = { "ʲ" }, article = "Palatalization (phonetics)", }, { name = "Velarized", symbols = { "ˠ" }, article = "Velarization", }, { name = "Pharyngealized", symbols = { "ˤ" }, article = "Pharyngealization", }, { name = "Velarized or pharyngealized", symbols = { "̴", "ᵯ", "ᵰ", "ᵱ", "ᵬ", "ᵮ", "ᵵ", "ᵭ", "ᵴ", "ᵶ", "ᵳ", "ᵲ" }, article = "Pharyngealization", }, { name = "Raised", symbols = { "̝", "˔" }, article = "Relative articulation#Raised and lowered", }, { name = "Lowered", symbols = { "̞", "˕" }, article = "Relative articulation#Raised and lowered", }, { name = "Advanced tongue root", symbols = { "̘" }, }, { name = "Retracted tongue root", symbols = { "̙" }, }, { name = "Dental", symbols = { "̪", "͆" }, article = "Dental consonant", }, { name = "Apical", symbols = { "̺" }, article = "Apical consonant", }, { name = "Laminal", symbols = { "̻" }, article = "Laminal consonant", }, { name = "Nasalized", symbols = { "̃", "ṽ" }, article = "Nasalization", }, { name = "Nasal vowel", symbols = { "ĩ", "ỹ", "ɨ̃", "ʉ̃", "ɯ̃", "ũ", "ɪ̃", "ʏ̃", "ʊ̃", "ẽ", "ø̃", "ɘ̃", "ɵ̃", "ɤ̃", "õ", "ə̃", "ɛ̃", "œ̃", "ɜ̃", "ɞ̃", "ʌ̃", "ɔ̃", "æ̃", "ɐ̃", "ã", "ɶ̃", "ä̃", "ɑ̃", "ɒ̃" }, }, { name = "Nasal release", symbols = { "ⁿ" }, }, { name = "Lateral release", symbols = { "ˡ" }, article = "Lateral release (phonetics)", }, { name = "No audible release", symbols = { "̚" }, }, { name = "Ejective", symbols = { "ʼ" }, article = "Ejective consonant", }, { name = "Glottalized", symbols = { "ˀ" }, article = "Glottalization", }, { name = "Labio-palatalized", symbols = { "ᶣ" }, article = "Labio-palatalization", }, -- SUPRASEGMENTALS { name = "Long", symbols = { "ː" }, article = "Length (phonetics)", }, { name = "Half-long", symbols = { "ˑ" }, article = "Length (phonetics)", }, { name = "Extra-short", symbols = { "̆" }, article = "Extra-shortness", }, -- TONES AND WORD ACCENTS { name = "Accent", symbols = { "̋", "ű", "ӳ", "ő", "́", "í", "ý", "ú", "é", "ó", "á", "̄", "ī", "ȳ", "ū", "ē", "ō", "ǣ", "ā", "̀", "ì", "ỳ", "ù", "è", "ò", "à", "̏", "ȉ", "ȕ", "ȅ", "ȍ", "ȁ" }, article = "Pitch-accent language", }, { name = "Tone", symbols = { "̌", "̂", "᷄", "᷅", "᷇", "᷆", "᷈", "᷉", "˥", "˦", "˧", "˨", "˩" }, article = "Tone (linguistics)", }, -- EXTENDED IPA (extIPA) { name = "Alveolar", symbols = { "͇" }, article = "Alveolar consonant", }, { name = "Strong articulation", symbols = { "͈", "̎" }, article = "Fortis and lenis", }, { name = "Weak articulation", symbols = { "͉", "᷂" }, article = "Fortis and lenis", }, { name = "Denasalized", symbols = { "͊" }, article = "Denasalization", }, { name = "Velopharyngeal friction", symbols = { "͌" }, article = "Velopharyngeal consonant", }, { name = "Whistled articulation", symbols = { "͎" }, article = "Whistled sibilant", }, { name = "Unaspirated", symbols = { "˭" }, article = "Tenuis consonant", }, { name = "Pre-aspiration", symbols = { "ʰp", "ʰt", "ʰʈ", "ʰc", "ʰk", "ʰq", "ʰn" }, article = "Preaspiration", }, -- NON-IPA { name = "Retroflex", symbols = { "̣", "̢" }, article = "Retroflex consonant", }, { name = "Prenasalized consonant", symbols = { "ᵐ", "ᶬ", "ⁿt", "ⁿd", "ⁿθ", "ⁿð", "ⁿs", "ⁿz", "ⁿʃ", "ⁿʒ", "ⁿɕ", "ⁿʑ", "ⁿr", "ⁿɬ", "ⁿɮ", "ⁿl", "ᶯ", "ᶮ", "ᵑ", "ᶰ" }, }, { name = "Pre-stopped consonant", symbols = { "ᵖ", "ᵇ", "ᵗ", "ᵈ", "ᶜ", "ᶡ", "ᵏ", "ᶢ", "ᴳ" }, }, { name = "Post-stopped nasal", symbols = { "mᵇ", "nᵈ", "ɲᶡ", "ŋᶢ", "ɴᴳ" }, }, } } for k, group in pairs(rawData) do for _, v in ipairs(group) do local t = { name = v.name, symbol = v.symbols[1], article = v.article or v.name, audio = v.audio or "" } for _, s in ipairs(v.symbols) do data[k][s] = t end end end return { data = data, rawData = rawData } 2513954eju01domsinlrckehziy7vlf Modulo:Webarchive/pagipadasan 828 56372 392279 390503 2022-08-18T21:44:49Z Lam-ang 3622 Pinabaro manipud iti [[:en:Special:PermanentLink/1103443944|Module:Webarchive/1103443944]] Scribunto text/plain --[[ ---------------------------------- Lua module implementing the {{webarchive}} template. A merger of the functionality of three templates: {{wayback}}, {{webcite}} and {{cite archives}} ]] --[[--------------------------< D E P E N D E N C I E S >------------------------------------------------------ ]] require('Modulo:No globals'); local getArgs = require ('Modulo:Dagiti argumento').getArgs; --[[--------------------------< F O R W A R D D E C L A R A T I O N S >-------------------------------------- ]] local categories = {}; -- category names local config = {}; -- global configuration settings local digits = {}; -- for i18n; table that translates local-wiki digits to western digits local err_warn_msgs = {}; -- error and warning messages local excepted_pages = {}; local month_num = {}; -- for i18n; table that translates local-wiki month names to western digits local prefixes = {}; -- service provider tail string prefixes local services = {}; -- archive service provider data from local s_text = {}; -- table of static text strings used to build final rendering local uncategorized_namespaces = {}; -- list of namespaces that we should not categorize local uncategorized_subpages = {}; -- list of subpages that should not be categorized --[[--------------------------< P A G E S C O P E I D E N T I F I E R S >---------------------------------- ]] local non_western_digits; -- boolean flag set true when data.digits.enable is true local this_page = mw.title.getCurrentTitle(); local track = {}; -- Associative array to hold tracking categories local ulx = {}; -- Associative array to hold template data --[[--------------------------< S U B S T I T U T E >---------------------------------------------------------- Populates numbered arguments in a message string using an argument table. ]] local function substitute (msg, args) return args and mw.message.newRawMessage (msg, args):plain() or msg; end --[[--------------------------< tableLength >----------------------- Given a 1-D table, return number of elements ]] local function tableLength(T) local count = 0 for _ in pairs(T) do count = count + 1 end return count end --[=[-------------------------< M A K E _ W I K I L I N K >---------------------------------------------------- Makes a wikilink; when both link and display text is provided, returns a wikilink in the form [[L|D]]; if only link is provided, returns a wikilink in the form [[L]]; if neither are provided or link is omitted, returns an empty string. ]=] local function make_wikilink (link, display, no_link) if nil == no_link then if link and ('' ~= link) then if display and ('' ~= display) then return table.concat ({'[[', link, '|', display, ']]'}); else return table.concat ({'[[', link, ']]'}); end end return display or ''; -- link not set so return the display text else -- no_link if display and ('' ~= display) then -- if there is display text return display; -- return that else return link or ''; -- return the target article name or empty string end end end --[[--------------------------< createTracking >----------------------- Return data in track[] ie. tracking categories ]] local function createTracking() if not excepted_pages[this_page.fullText] then -- namespace:title/fragment is allowed to be categorized (typically this module's / template's testcases page(s)) if uncategorized_namespaces[this_page.nsText] then return ''; -- this page not to be categorized so return empty string end for _,v in ipairs (uncategorized_subpages) do -- cycle through page name patterns if this_page.text:match (v) then -- test page name against each pattern return ''; -- this subpage type not to be categorized so return empty string end end end local out = {}; if tableLength(track) > 0 then for key, _ in pairs(track) do -- loop through table table.insert (out, make_wikilink (key)); -- and convert category names to links end end return table.concat (out); -- concat into one big string; empty string if table is empty end --[[--------------------------< inlineError >----------------------- Critical error. Render output completely in red. Add to tracking category. This function called as the last thing before abandoning this module ]] local function inlineError (msg, args) track[categories.error] = 1 return table.concat ({ '<span style="font-size:100%" class="error citation-comment">Biddut iti ', -- open the error message span config.tname, -- insert the local language template name ' plantilia: ', substitute (msg, args), -- insert the formatted error message '.</span>', -- close the span createTracking() -- add the category }) end --[[--------------------------< inlineRed >----------------------- Render a text fragment in red, such as a warning as part of the final output. Add tracking category. ]] local function inlineRed(msg, trackmsg) if trackmsg == "warning" then track[categories.warning] = 1; elseif trackmsg == "error" then track[categories.error] = 1; end return '<span style="font-size:100%" class="error citation-comment">' .. msg .. '</span>' end --[[--------------------------< base62 >----------------------- Convert base-62 to base-10 Credit: https://de.wikipedia.org/wiki/Modul:Expr ]] local function base62( value ) local r = 1 -- default return value is input value is malformed if value:match ('%W') then -- value must only be in the set [0-9a-zA-Z] return; -- nil return when value contains extraneous characters end local n = #value -- number of characters in value local k = 1 local c r = 0 for i = n, 1, -1 do -- loop through all characters in value from ls digit to ms digit c = value:byte( i, i ) if c >= 48 and c <= 57 then -- character is digit 0-9 c = c - 48 elseif c >= 65 and c <= 90 then -- character is ascii a-z c = c - 55 else -- must be ascii A-Z c = c - 61 end r = r + c * k -- accumulate this base62 character's value k = k * 62 -- bump for next end -- for i return r end --[[--------------------------< D E C O D E _ D A T E >-------------------------------------------------------- Given a date string, return it in iso format along with an indicator of the date's format. Except that month names must be recognizable as legitimate month names with proper capitalization, and that the date string must match one of the recognized date formats, no error checking is done here; return nil else ]] local function decode_date (date_str) local patterns = { ['dmy'] = {'^(%d%d?) +([^%s%d]+) +(%d%d%d%d)$', 'd', 'm', 'y'}, -- %a does not recognize unicode combining characters used by some languages ['mdy'] = {'^([^%s%d]+) (%d%d?), +(%d%d%d%d)$', 'm', 'd', 'y'}, ['ymd'] = {'^(%d%d%d%d) +([^%s%d]+) (%d%d?)$', 'y', 'm', 'd'}, -- not mos compliant at en.wiki but may be acceptible at other wikis }; local t = {}; if non_western_digits then -- this wiki uses non-western digits? date_str = mw.ustring.gsub (date_str, '%d', digits); -- convert this wiki's non-western digits to western digits end if date_str:match ('^%d%d%d%d%-%d%d%-%d%d$') then -- already an iso format date, return western digits form return date_str, 'iso'; end for k, v in pairs (patterns) do local c1, c2, c3 = mw.ustring.match (date_str, patterns[k][1]); -- c1 .. c3 are captured but we don't know what they hold if c1 then -- set on match t = { -- translate unspecified captures to y, m, and d [patterns[k][2]] = c1, -- fill the table of captures with the captures [patterns[k][3]] = c2, -- take index names from src_pattern table and assign sequential captures [patterns[k][4]] = c3, }; if month_num[t.m] then -- when month not already a number t.m = month_num[t.m]; -- replace valid month name with a number else return nil, 'iso'; -- not a valid date form because month not valid end return mw.ustring.format ('%.4d-%.2d-%.2d', t.y, t.m, t.d), k; -- return date in iso format end end return nil, 'iso'; -- date could not be decoded; return nil and default iso date end --[[--------------------------< makeDate >----------------------- Given year, month, day numbers, (zero-padded or not) return a full date in df format where df may be one of: mdy, dmy, iso, ymd on entry, year, month, day are presumed to be correct for the date that they represent; all are required in this module, makeDate() is sometimes given an iso-format date in year: makeDate (2018-09-20, nil, nil, df) this works because table.concat() sees only one table member ]] local function makeDate (year, month, day, df) local format = { ['dmy'] = 'j F Y', ['mdy'] = 'F j, Y', ['ymd'] = 'Y F j', ['iso'] = 'Y-m-d', }; local date = table.concat ({year, month, day}, '-'); -- assemble year-initial numeric-format date (zero padding not required here) if non_western_digits then -- this wiki uses non-western digits? date = mw.ustring.gsub (date, '%d', digits); -- convert this wiki's non-western digits to western digits end return mw.getContentLanguage():formatDate (format[df], date); end --[[--------------------------< I S _ V A L I D _ D A T E >---------------------------------------------------- Returns true if date is after 31 December 1899 (why is 1900 the min year? shouldn't the internet's date-of-birth be min year?), not after today's date, and represents a valid date (29 February 2017 is not a valid date). Applies Gregorian leapyear rules. all arguments are required ]] local function is_valid_date (year, month, day) local days_in_month = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; local month_length; local y, m, d; local today = os.date ('*t'); -- fetch a table of current date parts if not year or '' == year or not month or '' == month or not day or '' == day then return false; -- something missing end y = tonumber (year); m = tonumber (month); d = tonumber (day); if 1900 > y or today.year < y or 1 > m or 12 < m then -- year and month are within bounds TODO: 1900? return false; end if (2==m) then -- if February month_length = 28; -- then 28 days unless if (0==(y%4) and (0~=(y%100) or 0==(y%400))) then -- is a leap year? month_length = 29; -- if leap year then 29 days in February end else month_length=days_in_month[m]; end if 1 > d or month_length < d then -- day is within bounds return false; end -- here when date parts represent a valid date return os.time({['year']=y, ['month']=m, ['day']=d, ['hour']=0}) <= os.time(); -- date at midnight must be less than or equal to current date/time end --[[--------------------------< decodeWebciteDate >----------------------- Given a URI-path to Webcite (eg. /67xHmVFWP) return the encoded date in df format returns date string in df format - webcite date is a unix timestamp encoded as bae62 or the string 'query' ]] local function decodeWebciteDate(path, df) local dt = {}; local decode; dt = mw.text.split(path, "/") -- valid URL formats that are not base62 -- http://www.webcitation.org/query?id=1138911916587475 -- http://www.webcitation.org/query?url=http..&date=2012-06-01+21:40:03 -- http://www.webcitation.org/1138911916587475 -- http://www.webcitation.org/cache/73e53dd1f16cf8c5da298418d2a6e452870cf50e -- http://www.webcitation.org/getfile.php?fileid=1c46e791d68e89e12d0c2532cc3cf629b8bc8c8e if dt[2]:find ('query', 1, true) or dt[2]:find ('cache', 1, true) or dt[2]:find ('getfile', 1, true) or tonumber(dt[2]) then return 'query'; end decode = base62(dt[2]); -- base62 string -> exponential number if not decode then return nil; -- nil return when dt[2] contains characters not in %w end dt = os.date('*t', string.format("%d", decode):sub(1,10)) -- exponential number -> text -> first 10 characters (a unix timestamp) -> a table of date parts decode = makeDate (dt.year, dt.month, dt.day, 'iso'); -- date comparisons are all done in iso format with western digits if non_western_digits then -- this wiki uses non-western digits? decode = mw.ustring.gsub (decode, '%d', digits); -- convert this wiki's non-western digits to western digits end return decode; end --[[--------------------------< decodeWaybackDate >----------------------- Given a URI-path to Wayback (eg. /web/20160901010101/http://example.com ) or Library of Congress Web Archives (eg. /all/20160901010101/http://example.com) or UK Government Web Archive (eg. /ukgwa/20160901010101/http://example.com or /tna/20160901010101/http://example.com) return the formatted date eg. "September 1, 2016" in df format Handle non-digits in snapshot ID such as "re_" and "-" and "*" returns two values: first value is one of these: valid date string in df format - wayback date is valid (including the text string 'index' when date is '/*/') empty string - wayback date is malformed (less than 8 digits, not a valid date) nil - wayback date is '/save/' or otherwise not a number second return value is an appropriate 'message' may or may not be formatted ]] local function decodeWaybackDate(path, df) local msg, snapdate; snapdate = path:gsub ('^/web/', ''):gsub ('^/all/', ''):gsub ('^/ukgwa/', ''):gsub ('^/tna/', ''):gsub ('^/', ''); -- remove leading /web/, /all/, /ukgwa/, /tna/, or / snapdate = snapdate:match ('^[^/]+'); -- get timestamp if snapdate == "*" then -- eg. /web/*/http.., etc. return 'index'; -- return indicator that this url has an index date end snapdate = snapdate:gsub ('%a%a_%d?$', ''):gsub ('%-', ''); -- from date, remove any trailing "re_", dashes msg = ''; if snapdate:match ('%*$') then -- a trailing '*' causes calendar display at archive .org snapdate = snapdate:gsub ('%*$', ''); -- remove so not part of length calc later msg = inlineRed (err_warn_msgs.ts_cal, 'warning'); -- make a message end if not tonumber(snapdate) then return nil, 'ts_nan'; -- return nil (fatal error flag) and message selector end local dlen = snapdate:len(); if dlen < 8 then -- we need 8 digits TODO: but shouldn't this be testing for 14 digits? return '', inlineRed (err_warn_msgs.ts_short, 'error'); -- return empty string and error message end local year, month, day = snapdate:match ('(%d%d%d%d)(%d%d)(%d%d)'); -- no need for snapdatelong here if not is_valid_date (year, month, day) then return '', inlineRed (err_warn_msgs.ts_date, 'error'); -- return empty string and error message end snapdate = table.concat ({year, month, day}, '-'); -- date comparisons are all done in iso format if 14 == dlen then return snapdate, msg; -- return date with message if any else return snapdate, msg .. inlineRed (err_warn_msgs.ts_len, 'warning'); -- return date with warning message(s) end end --[[--------------------------< decodeArchiveisDate >----------------------- Given an Archive.is "long link" URI-path (e.g. /2016.08.28-144552/http://example.com) return the date in df format (e.g. if df = dmy, return 28 August 2016) Handles "." and "-" in snapshot date, so 2016.08.28-144552 is same as 20160828144552 returns two values: first value is one of these: valid date string in df format - archive.is date is valid (including the text string 'short link' when url is the short form) empty string - wayback date is malformed (not a number, less than 8 digits, not a valid date) nil - wayback date is '/save/' second return value is an appropriate 'message' may or may not be formatted ]] local function decodeArchiveisDate(path, df) local snapdate if path:match ('^/%w+$') then -- short form url path is '/' followed by some number of base 62 digits and nothing else return "short link" -- e.g. http://archive.is/hD1qz end snapdate = mw.text.split (path, '/')[2]:gsub('[%.%-]', ''); -- get snapshot date, e.g. 2016.08.28-144552; remove periods and hyphens local dlen = string.len(snapdate) if dlen < 8 then -- we need 8 digits TODO: but shouldn't this be testing for 14 digits? return '', inlineRed (err_warn_msgs.ts_short, 'error'); -- return empty string and error message end local year, month, day = snapdate:match ('(%d%d%d%d)(%d%d)(%d%d)'); -- no need for snapdatelong here if not is_valid_date (year, month, day) then return '', inlineRed (err_warn_msgs.ts_date, 'error'); -- return empty string and error message end snapdate = table.concat ({year, month, day}, '-'); -- date comparisons are all done in iso format if 14 == dlen then return snapdate; -- return date else return snapdate, inlineRed (err_warn_msgs.ts_len, 'warning'); -- return date with warning message end end --[[--------------------------< serviceName >----------------------- Given a domain extracted by mw.uri.new() (eg. web.archive.org) set tail string and service ID ]] local function serviceName(host, no_link) local tracking; local index; host = host:lower():gsub ('^web%.(.+)', '%1'):gsub ('^www%.(.+)', '%1'); -- lowercase, remove web. and www. subdomains if services[host] then index = host; else for k, _ in pairs (services) do if host:find ('%f[%a]'..k:gsub ('([%.%-])', '%%%1')) then index = k; break; end end end if index then local out = {''}; -- empty string in [1] so that concatenated result has leading single space ulx.url1.service = services[index][4] or 'other'; tracking = services[index][5] or categories.other; -- build tail string if false == services[index][1] then -- select prefix table.insert (out, prefixes.at); elseif true == services[index][1] then table.insert (out, prefixes.atthe); else table.insert (out, services[index][1]); end table.insert (out, make_wikilink (services[index][2], services[index][3], no_link)); -- add article wikilink if services[index][6] then -- add tail postfix if it exists table.insert (out, services[index][6]); end ulx.url1.tail = table.concat (out, ' '); -- put it all together; result has leading space character else -- here when unknown archive ulx.url1.service = 'other'; tracking = categories.unknown; ulx.url1.tail = table.concat ({'', prefixes.at, host, inlineRed (err_warn_msgs.unknown_url, error)}, ' '); end track[tracking] = 1 end --[[--------------------------< parseExtraArgs >----------------------- Parse numbered arguments starting at 2, such as url2..url10, date2..date10, title2..title10 For example: {{webarchive |url=.. |url4=.. |url7=..}} Three url arguments not in numeric sequence (1..4..7). Function only processes arguments numbered 2 or greater (in this case 4 and 7) It creates numeric sequenced table entries like: urlx.url2.url = <argument value for url4> urlx.url3.url = <argument value for url7> Returns the number of URL arguments found numbered 2 or greater (in this case returns "2") ]] local function parseExtraArgs(args) local i, j, argurl, argurl2, argdate, argtitle j = 2 for i = 2, config.maxurls do argurl = "url" .. i if args[argurl] then argurl2 = "url" .. j ulx[argurl2] = {} ulx[argurl2]["url"] = args[argurl] argdate = "date" .. i if args[argdate] then ulx[argurl2]["date"] = args[argdate] else ulx[argurl2]["date"] = inlineRed (err_warn_msgs.date_miss, 'warning'); end argtitle = "title" .. i if args[argtitle] then ulx[argurl2]["title"] = args[argtitle] else ulx[argurl2]["title"] = nil end j = j + 1 end end if j == 2 then return 0 else return j - 2 end end --[[--------------------------< comma >----------------------- Given a date string, return "," if it's MDY ]] local function comma(date) return (date and date:match ('%a+ +%d%d?(,) +%d%d%d%d')) or ''; end --[[--------------------------< createRendering >----------------------- Return a rendering of the data in ulx[][] ]] local function createRendering() local displayfield local out = {}; local index_date, msg = ulx.url1.date:match ('(index)(.*)'); -- when ulx.url1.date extract 'index' text and message text (if there is a message) ulx.url1.date = ulx.url1.date:gsub ('index.*', 'index'); -- remove message if 'none' == ulx.url1.format then -- For {{wayback}}, {{webcite}} table.insert (out, '['); -- open extlink markup table.insert (out, ulx.url1.url); -- add url if ulx.url1.title then table.insert (out, ' ') -- the required space table.insert (out, ulx.url1.title) -- the title table.insert (out, ']'); -- close extlink markup table.insert (out, ulx.url1.tail); -- tail text if ulx.url1.date then table.insert (out, '&#32;('); -- open date text; TODO: why the html entity? replace with regular space? table.insert (out, 'index' == ulx.url1.date and s_text.archive or s_text.archived); -- add text table.insert (out, ' '); -- insert a space table.insert (out, ulx.url1.date); -- add date table.insert (out, ')'); -- close date text end else -- no title if index_date then -- when url date is 'index' table.insert (out, table.concat ({' ', s_text.Archive_index, ']'})); -- add the index link label table.insert (out, msg or ''); -- add date mismatch message when url date is /*/ and |date= has valid date else table.insert (out, table.concat ({' ', s_text.Archived, '] '})); -- add link label for url has timestamp date (will include mismatch message if there is one) end if ulx.url1.date then if 'index' ~= ulx.url1.date then table.insert (out, ulx.url1.date); -- add date when data is not 'index' end table.insert (out, comma(ulx.url1.date)); -- add ',' if date format is mdy table.insert (out, ulx.url1.tail); -- add tail text else -- no date table.insert (out, ulx.url1.tail); -- add tail text end end if 0 < ulx.url1.extraurls then -- For multiple archive URLs local tot = ulx.url1.extraurls + 1 table.insert (out, '.') -- terminate first url table.insert (out, table.concat ({' ', s_text.addlarchives, ': '})); -- add header text for i=2, tot do -- loop through the additionals local index = table.concat ({'url', i}); -- make an index displayfield = ulx[index]['title'] and 'title' or 'date'; -- choose display text table.insert (out, '['); -- open extlink markup table.insert (out, ulx[index]['url']); -- add the url table.insert (out, ' '); -- the required space table.insert (out, ulx[index][displayfield]); -- add the label table.insert (out, ']'); -- close extlink markup table.insert (out, i==tot and '.' or ', '); -- add terminator end end return table.concat (out); -- make a big string and done else -- For {{cite archives}} if 'addlarchives' == ulx.url1.format then -- Multiple archive services table.insert (out, table.concat ({s_text.addlarchives, ': '})); -- add header text else -- Multiple pages from the same archive table.insert (out, table.concat ({s_text.addlpages, ' '})); -- add header text table.insert (out, ulx.url1.date); -- add date to header text table.insert (out, ': '); -- close header text end local tot = ulx.url1.extraurls + 1; for i=1, tot do -- loop through the additionals local index = table.concat ({'url', i}); -- make an index table.insert (out, '['); -- open extlink markup table.insert (out, ulx[index]['url']); -- add url table.insert (out, ' '); -- add required space displayfield = ulx[index]['title']; if 'addlarchives' == ulx.url1.format then if not displayfield then displayfield = ulx[index]['date'] end else -- must be addlpages if not displayfield then displayfield = table.concat ({s_text.Page, ' ', i}); end end table.insert (out, displayfield); -- add title, date, page label text table.insert (out, ']'); -- close extlink markup table.insert (out, (i==tot and '.' or ', ')); -- add terminator end return table.concat (out); -- make a big string and done end end --[[--------------------------< P A R A M E T E R _ N A M E _ X L A T E >-------------------------------------- for internaltionalization, translate local-language parameter names to their English equivalents TODO: return error message if multiple aliases of the same canonical parameter name are found? returns two tables: new_args - holds canonical form parameters and their values either from translation or because the parameter was already in canonical form origin - maps canonical-form parameter names to their untranslated (local language) form for error messaging in the local language unrecognized parameters are ignored ]] local function parameter_name_xlate (args, params, enum_params) local name; -- holds modifiable name of the parameter name during evaluation local enum; -- for enumerated parameters, holds the enumerator during evaluation local found = false; -- flag used to break out of nested for loops local new_args = {}; -- a table that holds canonical and translated parameter k/v pairs local origin = {}; -- a table that maps original (local language) parameter names to their canonical name for local language error messaging local unnamed_params; -- set true when unsupported positional parameters are detected for k, v in pairs (args) do -- loop through all of the arguments in the args table name = k; -- copy of original parameter name if 'string' == type (k) then if non_western_digits then -- true when non-western digits supported at this wiki name = mw.ustring.gsub (name, '%d', digits); -- convert this wiki's non-western digits to western digits end enum = name:match ('%d+$'); -- get parameter enumerator if it exists; nil else if not enum then -- no enumerator so looking for non-enumnerated parameters -- TODO: insert shortcut here? if params[name] then name holds the canonical parameter name; no need to search further for pname, aliases in pairs (params) do -- loop through each parameter the params table for _, alias in ipairs (aliases) do -- loop through each alias in the parameter's aliases table if name == alias then new_args[pname] = v; -- create a new entry in the new_args table origin [pname] = k; -- create an entry to make canonical parameter name to original local language parameter name found = true; -- flag so that we can break out of these nested for loops break; -- no need to search the rest of the aliases table for name so go on to the next k, v pair end end if found then -- true when we found an alias that matched name found = false; -- reset the flag break; -- go do next args k/v pair end end else -- enumerated parameters name = name:gsub ('%d$', '#'); -- replace enumeration digits with place holder for table search -- TODO: insert shortcut here? if num_params[name] then name holds the canonical parameter name; no need to search further for pname, aliases in pairs (enum_params) do -- loop through each parameter the num_params table for _, alias in ipairs (aliases) do -- loop through each alias in the parameter's aliases table if name == alias then pname = pname:gsub ('#$', enum); -- replace the '#' place holder with the actual enumerator new_args[pname] = v; -- create a new entry in the new_args table origin [pname] = k; -- create an entry to make canonical parameter name to original local language parameter name found = true; -- flag so that we can break out of these nested for loops break; -- no need to search the rest of the aliases table for name so go on to the next k, v pair end end if found then -- true when we found an alias that matched name found = false; -- reset the flag break; -- go do next args k/v pair end end end else unnamed_params = true; -- flag for unsupported positional parameters end end -- for k, v return new_args, origin, unnamed_params; end --[[--------------------------< W E B A R C H I V E >---------------------------------------------------------- template entry point ]] local function webarchive(frame) local args = getArgs (frame); local data = mw.loadData (table.concat ({ -- make a data module name; sandbox or live 'Modulo:Webarchive/data', frame:getTitle():find('pagipadasan', 1, true) and '/pagipadasan' or '' -- this instance is ./sandbox then append /sandbox })); categories = data.categories; -- fill in the forward declarations config = data.config; if data.digits.enable then digits = data.digits; -- for i18n; table of digits in the local wiki's language non_western_digits = true; -- use_non_western_digits end err_warn_msgs = data.err_warn_msgs; excepted_pages = data.excepted_pages; month_num = data.month_num; -- for i18n; table of month names in the local wiki's language prefixes = data.prefixes; services = data.services; s_text = data.s_text; uncategorized_namespaces = data.uncategorized_namespaces; uncategorized_subpages = data.uncategorized_subpages; local origin = {}; -- holds a map of English to local language parameter names used in the current template; not currently used local unnamed_params; -- boolean set to true when template call has unnamed parameters args, origin, unnamed_params = parameter_name_xlate (args, data.params, data.enum_params); -- translate parameter names in args to English local date, format, msg, udate, uri, url; local ldf = 'iso'; -- when there is no |date= parameter, render url dates in iso format if args.url and args.url1 then -- URL argument (first) return inlineError (data.crit_err_msgs.conflicting, {origin.url, origin.url1}); end url = args.url or args.url1; if not url then return inlineError (data.crit_err_msgs.empty); end -- these iabot bugs perportedly fixed; removing these causes lua script error --[[ -- at Template:Webarchive/testcases/Production; resolve that before deleting these tests if mw.ustring.find( url, "https://web.http", 1, true ) then -- track bug - TODO: IAbot bug; not known if the bug has been fixed; deferred track[categories.error] = 1; return inlineError (data.crit_err_msgs.iabot1); end if url == "https://web.archive.org/http:/" then -- track bug - TODO: IAbot bug; not known if the bug has been fixed; deferred track[categories.error] = 1; return inlineError (data.crit_err_msgs.iabot2); end ]] if not (url:lower():find ('^http') or url:find ('^//')) then return inlineError (data.crit_err_msgs.invalid_url ); end ulx.url1 = {} ulx.url1.url = url ulx.url1.extraurls = parseExtraArgs(args) local good = false; good, uri = pcall (mw.uri.new, ulx.url1.url); -- get a table of uri parts from this url; protected mode to prevent lua error when ulx.url1.url is malformed if not good or nil == uri.host then -- abandon when ulx.url1.url is malformed return inlineError (data.crit_err_msgs.invalid_url); end serviceName(uri.host, args.nolink) if args.date and args.date1 then -- Date argument return inlineError (data.crit_err_msgs.conflicting, {origin.date, origin.date1}); end date = args.date or args.date1; date = date and date:gsub (' +', ' '); -- replace multiple spaces with a single space if date and config.verifydates then if '*' == date then date = 'index'; ldf = 'iso'; -- set to default format elseif 'mdy' == date then date = nil; -- if date extracted from URL, ldf = 'mdy'; -- then |date=mdy overrides iso elseif 'dmy' == date then date = nil; -- if date extracted from URL, ldf = 'dmy'; -- then |date=dmy overrides iso elseif 'ymd' == date then date = nil; -- if date extracted from URL, ldf = 'ymd'; -- then |date=ymd overrides iso else date, ldf = decode_date (date); -- get an iso format date from date and get date's original format end end if 'wayback' == ulx.url1.service or 'locwebarchives' == ulx.url1.service or 'ukgwa' == ulx.url1.service then if date then if config.verifydates then if ldf then udate, msg = decodeWaybackDate (uri.path); -- get the url date in iso format and format of date in |date=; 'index' when wayback url date is * if not udate then -- this is the only 'fatal' error return return inlineError (data.crit_err_msgs[msg]); end if udate ~= date then -- date comparison using iso format dates date = udate; msg = table.concat ({ inlineRed (err_warn_msgs.mismatch, 'warning'), -- add warning message msg, -- add message if there is one }); end end end else -- no |date= udate, msg = decodeWaybackDate (uri.path); if not udate then -- this is the only 'fatal' error return return inlineError (data.crit_err_msgs[msg]); end if '' == udate then date = nil; -- unset else date = udate; end end elseif 'webcite' == ulx.url1.service then if date then if config.verifydates then if ldf then udate = decodeWebciteDate (uri.path); -- get the url date in iso format if 'query' ~= udate then -- skip if query if udate ~= date then -- date comparison using iso format dates date = udate; msg = table.concat ({ inlineRed (err_warn_msgs.mismatch, 'warning'), }); end end end end else date = decodeWebciteDate( uri.path, "iso" ) if date == "query" then date = nil; -- unset msg = inlineRed (err_warn_msgs.date_miss, 'warning'); elseif not date then -- invalid base62 string date = inlineRed (err_warn_msgs.date1, 'error'); end end elseif 'archiveis' == ulx.url1.service then if date then if config.verifydates then if ldf then udate, msg = decodeArchiveisDate (uri.path) -- get the url date in iso format if 'short link' ~= udate then -- skip if short link if udate ~= date then -- date comparison using iso format dates date = udate; msg = table.concat ({ inlineRed (err_warn_msgs.mismatch, 'warning'), -- add warning message msg, -- add message if there is one }); end end end end else -- no |date= udate, msg = decodeArchiveisDate( uri.path, "iso" ) if udate == "short link" then date = nil; -- unset msg = inlineRed (err_warn_msgs.date_miss, 'warning'); elseif '' == udate then date = nil; -- unset else date = udate; end end else -- some other service if not date then msg = inlineRed (err_warn_msgs.date_miss, 'warning'); end end if 'index' == date then ulx.url1.date = date .. (msg or ''); -- create index + message (if there is one) elseif date then ulx.url1.date = makeDate (date, nil, nil, ldf) .. (msg or ''); -- create a date in the wiki's local language + message (if there is one) else ulx.url1.date = msg; end format = args.format; -- Format argument if not format then format = "none" else for k, v in pairs (data.format_vals) do -- |format= accepts two specific values loop through a table of those values local found; -- declare a nil flag for _, p in ipairs (v) do -- loop through local language variants if format == p then -- when |format= value matches format = k; -- use name from table key found = true; -- declare found so that we can break out of outer for loop break; -- break out of inner for loop end end if found then break; end end if format == "addlpages" then if not ulx.url1.date then format = "none" end elseif format == "addlarchives" then format = "addlarchives" else format = "none" end end ulx.url1.format = format if args.title and args.title1 then -- Title argument return inlineError (data.crit_err_msgs.conflicting, {origin.title, origin.title1}); end ulx.url1.title = args.title or args.title1; local rend = createRendering() if not rend then return inlineError (data.crit_err_msgs.unknown); end return rend .. ((unnamed_params and inlineRed (err_warn_msgs.unnamed_params, 'warning')) or '') .. createTracking(); end --[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------ ]] return {webarchive = webarchive}; 3qlm43ohd0y7ztv8wt9uo56m0wy1fhs Modulo:ISO 3166/datos/Nasional 828 56444 392276 392050 2022-08-18T21:37:14Z Lam-ang 3622 Pinabaro manipud iti [[:en:Special:PermanentLink/1100880103|Module:ISO 3166/data/National/1100880103]] Scribunto text/plain return { ["AD"] = {alpha3="AND",numeric="020",name="Andorra"}, ["AE"] = {alpha3="ARE",numeric="784",name="United Arab Emirates",altnames={"UAE"}}, ["AF"] = {alpha3="AFG",numeric="004",name="Afghanistan"}, ["AG"] = {alpha3="ATG",numeric="028",name="Antigua and Barbuda"}, ["AI"] = {alpha3="AIA",numeric="660",name="Anguilla"}, ["AL"] = {alpha3="ALB",numeric="008",name="Albania"}, ["AM"] = {alpha3="ARM",numeric="051",name="Armenia"}, ["AO"] = {alpha3="AGO",numeric="024",name="Angola"}, ["AQ"] = {alpha3="ATA",numeric="010",name="Antarctica"}, ["AR"] = {alpha3="ARG",numeric="032",name="Argentina"}, ["AS"] = {alpha3="ASM",numeric="016",name="American Samoa"}, ["AT"] = {alpha3="AUT",numeric="040",name="Austria"}, ["AU"] = {alpha3="AUS",numeric="036",name="Australia"}, ["AW"] = {alpha3="ABW",numeric="533",name="Aruba"}, ["AX"] = {alpha3="ALA",numeric="248",name="Åland Islands",altnames={"Aland Islands","Åland","Aland"}}, ["AZ"] = {alpha3="AZE",numeric="031",name="Azerbaijan"}, ["BA"] = {alpha3="BIH",numeric="070",name="Bosnia and Herzegovina",altnames={"Bosnia"}}, ["BB"] = {alpha3="BRB",numeric="052",name="Barbados"}, ["BD"] = {alpha3="BGD",numeric="050",name="Bangladesh"}, ["BE"] = {alpha3="BEL",numeric="056",name="Belgium"}, ["BF"] = {alpha3="BFA",numeric="854",name="Burkina Faso"}, ["BG"] = {alpha3="BGR",numeric="100",name="Bulgaria"}, ["BH"] = {alpha3="BHR",numeric="048",name="Bahrain"}, ["BI"] = {alpha3="BDI",numeric="108",name="Burundi"}, ["BJ"] = {alpha3="BEN",numeric="204",name="Benin"}, ["BL"] = {alpha3="BLM",numeric="652",name="Saint Barthélemy",altnames={"St Barthelemy"}}, ["BM"] = {alpha3="BMU",numeric="060",name="Bermuda"}, ["BN"] = {alpha3="BRN",numeric="096",name="Brunei",isoname="Brunei Darussalam"}, ["BO"] = {alpha3="BOL",numeric="068",name="Bolivia",isoname="Bolivia (Plurinational State of)"}, ["BQ"] = {alpha3="BES",numeric="535",name="Caribbean Netherlands",isoname="Bonaire, Sint Eustatius and Saba"}, ["BR"] = {alpha3="BRA",numeric="076",name="Brasil"}, ["BS"] = {alpha3="BHS",numeric="044",name="Bahamas"}, ["BT"] = {alpha3="BTN",numeric="064",name="Bhutan"}, ["BV"] = {alpha3="BVT",numeric="074",name="Bouvet Island"}, ["BW"] = {alpha3="BWA",numeric="072",name="Botswana"}, ["BY"] = {alpha3="BLR",numeric="112",name="Belarus"}, ["BZ"] = {alpha3="BLZ",numeric="084",name="Belize"}, ["CA"] = {alpha3="CAN",numeric="124",name="Canada"}, ["CC"] = {alpha3="CCK",numeric="166",name="Cocos (Keeling) Islands",altnames={"Cocos Islands","Keeling Islands"}}, ["CD"] = {alpha3="COD",numeric="180",name="Democratic Republic of the Congo",isoname="Congo, Democratic Republic of the",altnames={"Congo-Kinshasa","DRC","DR Congo"}}, ["CF"] = {alpha3="CAF",numeric="140",name="Central African Republic",altnames={"CAR"}}, ["CG"] = {alpha3="COG",numeric="178",name="Republic of the Congo",isoname="Congo",altnames={"Congo-Brazzaville"}}, ["CH"] = {alpha3="CHE",numeric="756",name="Switzerland"}, ["CI"] = {alpha3="CIV",numeric="384",name="Côte d'Ivoire",altnames={"Ivory Coast"}}, ["CK"] = {alpha3="COK",numeric="184",name="Cook Islands"}, ["CL"] = {alpha3="CHL",numeric="152",name="Chile"}, ["CM"] = {alpha3="CMR",numeric="120",name="Cameroon"}, ["CN"] = {alpha3="CHN",numeric="156",name="China",altnames={"People's Republic of China","PRC"}}, ["CO"] = {alpha3="COL",numeric="170",name="Colombia"}, ["CR"] = {alpha3="CRI",numeric="188",name="Costa Rica"}, ["CU"] = {alpha3="CUB",numeric="192",name="Cuba"}, ["CV"] = {alpha3="CPV",numeric="132",name="Cabo Verde",altnames={"Cape Verde"}}, ["CW"] = {alpha3="CUW",numeric="531",name="Curaçao",altnames={"Curacao"}}, ["CX"] = {alpha3="CXR",numeric="162",name="Christmas Island"}, ["CY"] = {alpha3="CYP",numeric="196",name="Cyprus"}, ["CZ"] = {alpha3="CZE",numeric="203",name="Czech Republic",isoname="Czechia"}, ["DE"] = {alpha3="DEU",numeric="276",name="Germany"}, ["DJ"] = {alpha3="DJI",numeric="262",name="Djibouti"}, ["DK"] = {alpha3="DNK",numeric="208",name="Denmark"}, ["DM"] = {alpha3="DMA",numeric="212",name="Dominica"}, ["DO"] = {alpha3="DOM",numeric="214",name="Dominican Republic"}, ["DZ"] = {alpha3="DZA",numeric="012",name="Algeria"}, ["EC"] = {alpha3="ECU",numeric="218",name="Ecuador"}, ["EE"] = {alpha3="EST",numeric="233",name="Estonia"}, ["EG"] = {alpha3="EGY",numeric="818",name="Egypt"}, ["EH"] = {alpha3="ESH",numeric="732",name="Western Sahara"}, ["ER"] = {alpha3="ERI",numeric="232",name="Eritrea"}, ["ES"] = {alpha3="ESP",numeric="724",name="Spain"}, ["ET"] = {alpha3="ETH",numeric="231",name="Ethiopia"}, ["FI"] = {alpha3="FIN",numeric="246",name="Finland"}, ["FJ"] = {alpha3="FJI",numeric="242",name="Fiji"}, ["FK"] = {alpha3="FLK",numeric="238",name="Falkland Islands",isoname="Falkland Islands (Malvinas)",altnames={"Falklands","Islas Malvinas","Malvinas","Malvinas Islands"}}, ["FM"] = {alpha3="FSM",numeric="583",name="Federated States of Micronesia",isoname="Micronesia (Federated States of)",altnames={"Micronesia"}}, ["FO"] = {alpha3="FRO",numeric="234",name="Faroe Islands",altnames={"Faroer","Faeroer"}}, ["FR"] = {alpha3="FRA",numeric="250",name="France"}, ["GA"] = {alpha3="GAB",numeric="266",name="Gabon"}, ["GB"] = {alpha3="GBR",numeric="826",name="United Kingdom",isoname="United Kingdom of Great Britain and Northern Ireland",altnames={"UK","Great Britain"}}, ["GB-ENG"] = {alpha3="ENG",numeric="000",name="England"}, --Considered to be a country ["GB-NIR"] = {alpha3="NIR",numeric="000",name="Northern Ireland"}, --Considered to be a country ["GB-SCT"] = {alpha3="SCT",numeric="000",name="Scotland"}, --Considered to be a country ["GB-WLS"] = {alpha3="WLS",numeric="000",name="Wales"}, --Considered to be a country ["GB-EAW"] = {alpha3="EAW",numeric="000",name="England and Wales"}, --Considered to be a country ["GD"] = {alpha3="GRD",numeric="308",name="Grenada"}, ["GE"] = {alpha3="GEO",numeric="268",name="Georgia"}, ["GF"] = {alpha3="GUF",numeric="254",name="French Guiana"}, ["GG"] = {alpha3="GGY",numeric="831",name="Guernsey"}, ["GH"] = {alpha3="GHA",numeric="288",name="Ghana"}, ["GI"] = {alpha3="GIB",numeric="292",name="Gibraltar"}, ["GL"] = {alpha3="GRL",numeric="304",name="Greenland"}, ["GM"] = {alpha3="GMB",numeric="270",name="Gambia"}, ["GN"] = {alpha3="GIN",numeric="324",name="Guinea"}, ["GP"] = {alpha3="GLP",numeric="312",name="Guadeloupe"}, ["GQ"] = {alpha3="GNQ",numeric="226",name="Equatorial Guinea"}, ["GR"] = {alpha3="GRC",numeric="300",name="Greece"}, ["GS"] = {alpha3="SGS",numeric="239",name="South Georgia and the South Sandwich Islands"}, ["GT"] = {alpha3="GTM",numeric="320",name="Guatemala"}, ["GU"] = {alpha3="GUM",numeric="316",name="Guam"}, ["GW"] = {alpha3="GNB",numeric="624",name="Guinea-Bissau"}, ["GY"] = {alpha3="GUY",numeric="328",name="Guyana"}, ["HK"] = {alpha3="HKG",numeric="344",name="Hong Kong",altnames={"Hong Kong SAR","HKSAR"}}, ["HM"] = {alpha3="HMD",numeric="334",name="Heard Island and McDonald Islands",altnames={"Heard and McDonald Islands"}}, ["HN"] = {alpha3="HND",numeric="340",name="Honduras"}, ["HR"] = {alpha3="HRV",numeric="191",name="Croatia"}, ["HT"] = {alpha3="HTI",numeric="332",name="Haiti"}, ["HU"] = {alpha3="HUN",numeric="348",name="Hungary"}, ["ID"] = {alpha3="IDN",numeric="360",name="Indonesia"}, ["IE"] = {alpha3="IRL",numeric="372",name="Ireland",altnames={"Republic of Ireland"}}, ["IL"] = {alpha3="ISR",numeric="376",name="Israel"}, ["IM"] = {alpha3="IMN",numeric="833",name="Isle of Man"}, ["IN"] = {alpha3="IND",numeric="356",name="India"}, ["IO"] = {alpha3="IOT",numeric="086",name="British Indian Ocean Territory"}, ["IQ"] = {alpha3="IRQ",numeric="368",name="Iraq"}, ["IR"] = {alpha3="IRN",numeric="364",name="Iran",isoname="Iran (Islamic Republic of)"}, ["IS"] = {alpha3="ISL",numeric="352",name="Iceland"}, ["IT"] = {alpha3="ITA",numeric="380",name="Italy"}, ["JE"] = {alpha3="JEY",numeric="832",name="Jersey"}, ["JM"] = {alpha3="JAM",numeric="388",name="Jamaica"}, ["JO"] = {alpha3="JOR",numeric="400",name="Jordan"}, ["JP"] = {alpha3="JPN",numeric="392",name="Japan"}, ["KE"] = {alpha3="KEN",numeric="404",name="Kenya"}, ["KG"] = {alpha3="KGZ",numeric="417",name="Kyrgyzstan"}, ["KH"] = {alpha3="KHM",numeric="116",name="Cambodia"}, ["KI"] = {alpha3="KIR",numeric="296",name="Kiribati"}, ["KM"] = {alpha3="COM",numeric="174",name="Comoros"}, ["KN"] = {alpha3="KNA",numeric="659",name="Saint Kitts and Nevis",altnames={"St Kitts and Nevis"}}, ["KP"] = {alpha3="PRK",numeric="408",name="North Korea",isoname="Korea (Democratic People's Republic of)",altnames={"Democratic People's Republic of Korea"}}, ["KR"] = {alpha3="KOR",numeric="410",name="South Korea",isoname="Korea, Republic of",altnames={"Republic of Korea"}}, ["KW"] = {alpha3="KWT",numeric="414",name="Kuwait"}, ["KY"] = {alpha3="CYM",numeric="136",name="Cayman Islands"}, ["KZ"] = {alpha3="KAZ",numeric="398",name="Kazakhstan"}, ["LA"] = {alpha3="LAO",numeric="418",name="Laos",isoname="Lao People's Democratic Republic"}, ["LB"] = {alpha3="LBN",numeric="422",name="Lebanon"}, ["LC"] = {alpha3="LCA",numeric="662",name="Saint Lucia",altnames={"St Lucia"}}, ["LI"] = {alpha3="LIE",numeric="438",name="Liechtenstein"}, ["LK"] = {alpha3="LKA",numeric="144",name="Sri Lanka"}, ["LR"] = {alpha3="LBR",numeric="430",name="Liberia"}, ["LS"] = {alpha3="LSO",numeric="426",name="Lesotho"}, ["LT"] = {alpha3="LTU",numeric="440",name="Lithuania"}, ["LU"] = {alpha3="LUX",numeric="442",name="Luxembourg"}, ["LV"] = {alpha3="LVA",numeric="428",name="Latvia"}, ["LY"] = {alpha3="LBY",numeric="434",name="Libya"}, ["MA"] = {alpha3="MAR",numeric="504",name="Morocco"}, ["MC"] = {alpha3="MCO",numeric="492",name="Monaco"}, ["MD"] = {alpha3="MDA",numeric="498",name="Moldova",isoname="Moldova, Republic of"}, ["ME"] = {alpha3="MNE",numeric="499",name="Montenegro"}, ["MF"] = {alpha3="MAF",numeric="663",name="Saint-Martin",isoname="Saint Martin (French part)",altnames={"St Martin","St Martin (French part)","Collectivity of Saint Martin","Collectivity of St Martin"}}, ["MG"] = {alpha3="MDG",numeric="450",name="Madagascar"}, ["MH"] = {alpha3="MHL",numeric="584",name="Marshall Islands"}, ["MK"] = {alpha3="MKD",numeric="807",name="North Macedonia",altnames={"Republic of North Macedonia","Macedonia","Republic of Macedonia","Macedonia, the former Yugoslav Republic of"}}, ["ML"] = {alpha3="MLI",numeric="466",name="Mali"}, ["MM"] = {alpha3="MMR",numeric="104",name="Myanmar",altnames={"Burma"}}, ["MN"] = {alpha3="MNG",numeric="496",name="Mongolia"}, ["MO"] = {alpha3="MAC",numeric="446",name="Macau",isoname="Macao",altnames={"Macau SAR","Macao SAR"}}, ["MP"] = {alpha3="MNP",numeric="580",name="Northern Mariana Islands"}, ["MQ"] = {alpha3="MTQ",numeric="474",name="Martinique"}, ["MR"] = {alpha3="MRT",numeric="478",name="Mauritania"}, ["MS"] = {alpha3="MSR",numeric="500",name="Montserrat"}, ["MT"] = {alpha3="MLT",numeric="470",name="Malta"}, ["MU"] = {alpha3="MUS",numeric="480",name="Mauritius"}, ["MV"] = {alpha3="MDV",numeric="462",name="Maldives"}, ["MW"] = {alpha3="MWI",numeric="454",name="Malawi"}, ["MX"] = {alpha3="MEX",numeric="484",name="Mexico"}, ["MY"] = {alpha3="MYS",numeric="458",name="Malaysia"}, ["MZ"] = {alpha3="MOZ",numeric="508",name="Mozambique"}, ["NA"] = {alpha3="NAM",numeric="516",name="Namibia"}, ["NC"] = {alpha3="NCL",numeric="540",name="New Caledonia"}, ["NE"] = {alpha3="NER",numeric="562",name="Niger"}, ["NF"] = {alpha3="NFK",numeric="574",name="Norfolk Island"}, ["NG"] = {alpha3="NGA",numeric="566",name="Nigeria"}, ["NI"] = {alpha3="NIC",numeric="558",name="Nicaragua"}, ["NL"] = {alpha3="NLD",numeric="528",name="Netherlands"}, ["NO"] = {alpha3="NOR",numeric="578",name="Norway"}, ["NP"] = {alpha3="NPL",numeric="524",name="Nepal"}, ["NR"] = {alpha3="NRU",numeric="520",name="Nauru"}, ["NU"] = {alpha3="NIU",numeric="570",name="Niue"}, ["NZ"] = {alpha3="NZL",numeric="554",name="New Zealand",altnames={"Aotearoa"}}, ["OM"] = {alpha3="OMN",numeric="512",name="Oman"}, ["PA"] = {alpha3="PAN",numeric="591",name="Panama"}, ["PE"] = {alpha3="PER",numeric="604",name="Peru"}, ["PF"] = {alpha3="PYF",numeric="258",name="French Polynesia"}, ["PG"] = {alpha3="PNG",numeric="598",name="Papua New Guinea"}, ["PH"] = {alpha3="PHL",numeric="608",name="Filipinas"}, ["PK"] = {alpha3="PAK",numeric="586",name="Pakistan"}, ["PL"] = {alpha3="POL",numeric="616",name="Poland"}, ["PM"] = {alpha3="SPM",numeric="666",name="Saint Pierre and Miquelon",altnames={"St Pierre and Miquelon"}}, ["PN"] = {alpha3="PCN",numeric="612",name="Pitcairn"}, ["PR"] = {alpha3="PRI",numeric="630",name="Puerto Rico"}, ["PS"] = {alpha3="PSE",numeric="275",name="Palestine",isoname="Palestine, State of",altnames={"State of Palestine"}}, ["PT"] = {alpha3="PRT",numeric="620",name="Portugal"}, ["PW"] = {alpha3="PLW",numeric="585",name="Palau"}, ["PY"] = {alpha3="PRY",numeric="600",name="Paraguay"}, ["QA"] = {alpha3="QAT",numeric="634",name="Qatar"}, ["RE"] = {alpha3="REU",numeric="638",name="Réunion"}, ["RO"] = {alpha3="ROU",numeric="642",name="Romania"}, ["RS"] = {alpha3="SRB",numeric="688",name="Serbia"}, ["RU"] = {alpha3="RUS",numeric="643",name="Russia",isoname="Russian Federation"}, ["RW"] = {alpha3="RWA",numeric="646",name="Rwanda"}, ["SA"] = {alpha3="SAU",numeric="682",name="Saudi Arabia"}, ["SB"] = {alpha3="SLB",numeric="090",name="Solomon Islands"}, ["SC"] = {alpha3="SYC",numeric="690",name="Seychelles"}, ["SD"] = {alpha3="SDN",numeric="729",name="Sudan"}, ["SE"] = {alpha3="SWE",numeric="752",name="Sweden"}, ["SG"] = {alpha3="SGP",numeric="702",name="Singapore"}, ["SH"] = {alpha3="SHN",numeric="654",name="Saint Helena, Ascension and Tristan da Cunha"}, ["SI"] = {alpha3="SVN",numeric="705",name="Slovenia"}, ["SJ"] = {alpha3="SJM",numeric="744",name="Svalbard and Jan Mayen"}, ["SK"] = {alpha3="SVK",numeric="703",name="Slovakia"}, ["SL"] = {alpha3="SLE",numeric="694",name="Sierra Leone"}, ["SM"] = {alpha3="SMR",numeric="674",name="San Marino"}, ["SN"] = {alpha3="SEN",numeric="686",name="Senegal"}, ["SO"] = {alpha3="SOM",numeric="706",name="Somalia"}, ["SR"] = {alpha3="SUR",numeric="740",name="Suriname"}, ["SS"] = {alpha3="SSD",numeric="728",name="South Sudan"}, ["ST"] = {alpha3="STP",numeric="678",name="São Tomé and Príncipe",isoname="Sao Tome and Principe",altnames={"Democratic Republic of Sao Tome and Principe"}}, ["SV"] = {alpha3="SLV",numeric="222",name="El Salvador"}, ["SX"] = {alpha3="SXM",numeric="534",name="Sint Maarten",isoname="Sint Maarten (Dutch part)",altnames={"St Maarten","Saint Martin (Dutch part)","St Martin (Dutch part)"}}, ["SY"] = {alpha3="SYR",numeric="760",name="Syria",isoname="Syrian Arab Republic"}, ["SZ"] = {alpha3="SWZ",numeric="748",name="Eswatini",altnames={"Swaziland"}}, ["TC"] = {alpha3="TCA",numeric="796",name="Turks and Caicos Islands"}, ["TD"] = {alpha3="TCD",numeric="148",name="Chad"}, ["TF"] = {alpha3="ATF",numeric="260",name="French Southern and Antarctic Lands",isoname="French Southern Territories"}, ["TG"] = {alpha3="TGO",numeric="768",name="Togo"}, ["TH"] = {alpha3="THA",numeric="764",name="Thailand"}, ["TJ"] = {alpha3="TJK",numeric="762",name="Tajikistan"}, ["TK"] = {alpha3="TKL",numeric="772",name="Tokelau"}, ["TL"] = {alpha3="TLS",numeric="626",name="Timor-Leste",altnames={"East Timor"}}, ["TM"] = {alpha3="TKM",numeric="795",name="Turkmenistan"}, ["TN"] = {alpha3="TUN",numeric="788",name="Tunisia"}, ["TO"] = {alpha3="TON",numeric="776",name="Tonga"}, ["TR"] = {alpha3="TUR",numeric="792",name="Turkey",isoname="Türkiye"}, ["TT"] = {alpha3="TTO",numeric="780",name="Trinidad and Tobago"}, ["TV"] = {alpha3="TUV",numeric="798",name="Tuvalu"}, ["TW"] = {alpha3="TWN",numeric="158",name="Taiwan",isoname="Taiwan, Province of China",altnames={"Republic of China"}}, ["TZ"] = {alpha3="TZA",numeric="834",name="Tanzania",isoname="Tanzania, United Republic of"}, ["UA"] = {alpha3="UKR",numeric="804",name="Ukraine"}, ["UG"] = {alpha3="UGA",numeric="800",name="Uganda"}, ["UM"] = {alpha3="UMI",numeric="581",name="United States Minor Outlying Islands"}, ["US"] = {alpha3="USA",numeric="840",name="Estados Unidos",isoname="United States of America",altnames={"US","USA","U.S."}}, ["UY"] = {alpha3="URY",numeric="858",name="Uruguay"}, ["UZ"] = {alpha3="UZB",numeric="860",name="Uzbekistan"}, ["VA"] = {alpha3="VAT",numeric="336",name="Vatican City",isoname="Holy See",altnames={"Holy See (Vatican City State)","Vatican City State"}}, ["VC"] = {alpha3="VCT",numeric="670",name="Saint Vincent and the Grenadines",altnames={"St Vincent and the Grenadines"}}, ["VE"] = {alpha3="VEN",numeric="862",name="Venezuela",isoname="Venezuela (Bolivarian Republic of)"}, ["VG"] = {alpha3="VGB",numeric="092",name="British Virgin Islands",isoname="Virgin Islands (British)",altnames={"UK Virgin Islands","BVI"}}, ["VI"] = {alpha3="VIR",numeric="850",name="United States Virgin Islands",isoname="Virgin Islands (U.S.)",altnames={"US Virgin Islands","USVI"}}, ["VN"] = {alpha3="VNM",numeric="704",name="Vietnam",isoname="Viet Nam"}, ["VU"] = {alpha3="VUT",numeric="548",name="Vanuatu"}, ["WF"] = {alpha3="WLF",numeric="876",name="Wallis and Futuna"}, ["WS"] = {alpha3="WSM",numeric="882",name="Samoa"}, ["YE"] = {alpha3="YEM",numeric="887",name="Yemen"}, ["YT"] = {alpha3="MYT",numeric="175",name="Mayotte"}, ["ZA"] = {alpha3="ZAF",numeric="710",name="South Africa"}, ["ZM"] = {alpha3="ZMB",numeric="894",name="Zambia"}, ["ZW"] = {alpha3="ZWE",numeric="716",name="Zimbabwe"} } tic2ssxw5dw3lzwk34czl7uzm8hhior Modulo:ISO 3166/datos/Nasional/pagipadasan 828 59053 392275 392049 2022-08-18T21:36:34Z Lam-ang 3622 Pinabaro manipud iti [[:en:Special:PermanentLink/1100880103|Module:ISO 3166/data/National/1100880103]] Scribunto text/plain return { ["AD"] = {alpha3="AND",numeric="020",name="Andorra"}, ["AE"] = {alpha3="ARE",numeric="784",name="United Arab Emirates",altnames={"UAE"}}, ["AF"] = {alpha3="AFG",numeric="004",name="Afghanistan"}, ["AG"] = {alpha3="ATG",numeric="028",name="Antigua and Barbuda"}, ["AI"] = {alpha3="AIA",numeric="660",name="Anguilla"}, ["AL"] = {alpha3="ALB",numeric="008",name="Albania"}, ["AM"] = {alpha3="ARM",numeric="051",name="Armenia"}, ["AO"] = {alpha3="AGO",numeric="024",name="Angola"}, ["AQ"] = {alpha3="ATA",numeric="010",name="Antarctica"}, ["AR"] = {alpha3="ARG",numeric="032",name="Argentina"}, ["AS"] = {alpha3="ASM",numeric="016",name="American Samoa"}, ["AT"] = {alpha3="AUT",numeric="040",name="Austria"}, ["AU"] = {alpha3="AUS",numeric="036",name="Australia"}, ["AW"] = {alpha3="ABW",numeric="533",name="Aruba"}, ["AX"] = {alpha3="ALA",numeric="248",name="Åland Islands",altnames={"Aland Islands","Åland","Aland"}}, ["AZ"] = {alpha3="AZE",numeric="031",name="Azerbaijan"}, ["BA"] = {alpha3="BIH",numeric="070",name="Bosnia and Herzegovina",altnames={"Bosnia"}}, ["BB"] = {alpha3="BRB",numeric="052",name="Barbados"}, ["BD"] = {alpha3="BGD",numeric="050",name="Bangladesh"}, ["BE"] = {alpha3="BEL",numeric="056",name="Belgium"}, ["BF"] = {alpha3="BFA",numeric="854",name="Burkina Faso"}, ["BG"] = {alpha3="BGR",numeric="100",name="Bulgaria"}, ["BH"] = {alpha3="BHR",numeric="048",name="Bahrain"}, ["BI"] = {alpha3="BDI",numeric="108",name="Burundi"}, ["BJ"] = {alpha3="BEN",numeric="204",name="Benin"}, ["BL"] = {alpha3="BLM",numeric="652",name="Saint Barthélemy",altnames={"St Barthelemy"}}, ["BM"] = {alpha3="BMU",numeric="060",name="Bermuda"}, ["BN"] = {alpha3="BRN",numeric="096",name="Brunei",isoname="Brunei Darussalam"}, ["BO"] = {alpha3="BOL",numeric="068",name="Bolivia",isoname="Bolivia (Plurinational State of)"}, ["BQ"] = {alpha3="BES",numeric="535",name="Caribbean Netherlands",isoname="Bonaire, Sint Eustatius and Saba"}, ["BR"] = {alpha3="BRA",numeric="076",name="Brasil"}, ["BS"] = {alpha3="BHS",numeric="044",name="Bahamas"}, ["BT"] = {alpha3="BTN",numeric="064",name="Bhutan"}, ["BV"] = {alpha3="BVT",numeric="074",name="Bouvet Island"}, ["BW"] = {alpha3="BWA",numeric="072",name="Botswana"}, ["BY"] = {alpha3="BLR",numeric="112",name="Belarus"}, ["BZ"] = {alpha3="BLZ",numeric="084",name="Belize"}, ["CA"] = {alpha3="CAN",numeric="124",name="Canada"}, ["CC"] = {alpha3="CCK",numeric="166",name="Cocos (Keeling) Islands",altnames={"Cocos Islands","Keeling Islands"}}, ["CD"] = {alpha3="COD",numeric="180",name="Democratic Republic of the Congo",isoname="Congo, Democratic Republic of the",altnames={"Congo-Kinshasa","DRC","DR Congo"}}, ["CF"] = {alpha3="CAF",numeric="140",name="Central African Republic",altnames={"CAR"}}, ["CG"] = {alpha3="COG",numeric="178",name="Republic of the Congo",isoname="Congo",altnames={"Congo-Brazzaville"}}, ["CH"] = {alpha3="CHE",numeric="756",name="Switzerland"}, ["CI"] = {alpha3="CIV",numeric="384",name="Côte d'Ivoire",altnames={"Ivory Coast"}}, ["CK"] = {alpha3="COK",numeric="184",name="Cook Islands"}, ["CL"] = {alpha3="CHL",numeric="152",name="Chile"}, ["CM"] = {alpha3="CMR",numeric="120",name="Cameroon"}, ["CN"] = {alpha3="CHN",numeric="156",name="China",altnames={"People's Republic of China","PRC"}}, ["CO"] = {alpha3="COL",numeric="170",name="Colombia"}, ["CR"] = {alpha3="CRI",numeric="188",name="Costa Rica"}, ["CU"] = {alpha3="CUB",numeric="192",name="Cuba"}, ["CV"] = {alpha3="CPV",numeric="132",name="Cabo Verde",altnames={"Cape Verde"}}, ["CW"] = {alpha3="CUW",numeric="531",name="Curaçao",altnames={"Curacao"}}, ["CX"] = {alpha3="CXR",numeric="162",name="Christmas Island"}, ["CY"] = {alpha3="CYP",numeric="196",name="Cyprus"}, ["CZ"] = {alpha3="CZE",numeric="203",name="Czech Republic",isoname="Czechia"}, ["DE"] = {alpha3="DEU",numeric="276",name="Germany"}, ["DJ"] = {alpha3="DJI",numeric="262",name="Djibouti"}, ["DK"] = {alpha3="DNK",numeric="208",name="Denmark"}, ["DM"] = {alpha3="DMA",numeric="212",name="Dominica"}, ["DO"] = {alpha3="DOM",numeric="214",name="Dominican Republic"}, ["DZ"] = {alpha3="DZA",numeric="012",name="Algeria"}, ["EC"] = {alpha3="ECU",numeric="218",name="Ecuador"}, ["EE"] = {alpha3="EST",numeric="233",name="Estonia"}, ["EG"] = {alpha3="EGY",numeric="818",name="Egypt"}, ["EH"] = {alpha3="ESH",numeric="732",name="Western Sahara"}, ["ER"] = {alpha3="ERI",numeric="232",name="Eritrea"}, ["ES"] = {alpha3="ESP",numeric="724",name="Spain"}, ["ET"] = {alpha3="ETH",numeric="231",name="Ethiopia"}, ["FI"] = {alpha3="FIN",numeric="246",name="Finland"}, ["FJ"] = {alpha3="FJI",numeric="242",name="Fiji"}, ["FK"] = {alpha3="FLK",numeric="238",name="Falkland Islands",isoname="Falkland Islands (Malvinas)",altnames={"Falklands","Islas Malvinas","Malvinas","Malvinas Islands"}}, ["FM"] = {alpha3="FSM",numeric="583",name="Federated States of Micronesia",isoname="Micronesia (Federated States of)",altnames={"Micronesia"}}, ["FO"] = {alpha3="FRO",numeric="234",name="Faroe Islands",altnames={"Faroer","Faeroer"}}, ["FR"] = {alpha3="FRA",numeric="250",name="France"}, ["GA"] = {alpha3="GAB",numeric="266",name="Gabon"}, ["GB"] = {alpha3="GBR",numeric="826",name="United Kingdom",isoname="United Kingdom of Great Britain and Northern Ireland",altnames={"UK","Great Britain"}}, ["GB-ENG"] = {alpha3="ENG",numeric="000",name="England"}, --Considered to be a country ["GB-NIR"] = {alpha3="NIR",numeric="000",name="Northern Ireland"}, --Considered to be a country ["GB-SCT"] = {alpha3="SCT",numeric="000",name="Scotland"}, --Considered to be a country ["GB-WLS"] = {alpha3="WLS",numeric="000",name="Wales"}, --Considered to be a country ["GB-EAW"] = {alpha3="EAW",numeric="000",name="England and Wales"}, --Considered to be a country ["GD"] = {alpha3="GRD",numeric="308",name="Grenada"}, ["GE"] = {alpha3="GEO",numeric="268",name="Georgia"}, ["GF"] = {alpha3="GUF",numeric="254",name="French Guiana"}, ["GG"] = {alpha3="GGY",numeric="831",name="Guernsey"}, ["GH"] = {alpha3="GHA",numeric="288",name="Ghana"}, ["GI"] = {alpha3="GIB",numeric="292",name="Gibraltar"}, ["GL"] = {alpha3="GRL",numeric="304",name="Greenland"}, ["GM"] = {alpha3="GMB",numeric="270",name="Gambia"}, ["GN"] = {alpha3="GIN",numeric="324",name="Guinea"}, ["GP"] = {alpha3="GLP",numeric="312",name="Guadeloupe"}, ["GQ"] = {alpha3="GNQ",numeric="226",name="Equatorial Guinea"}, ["GR"] = {alpha3="GRC",numeric="300",name="Greece"}, ["GS"] = {alpha3="SGS",numeric="239",name="South Georgia and the South Sandwich Islands"}, ["GT"] = {alpha3="GTM",numeric="320",name="Guatemala"}, ["GU"] = {alpha3="GUM",numeric="316",name="Guam"}, ["GW"] = {alpha3="GNB",numeric="624",name="Guinea-Bissau"}, ["GY"] = {alpha3="GUY",numeric="328",name="Guyana"}, ["HK"] = {alpha3="HKG",numeric="344",name="Hong Kong",altnames={"Hong Kong SAR","HKSAR"}}, ["HM"] = {alpha3="HMD",numeric="334",name="Heard Island and McDonald Islands",altnames={"Heard and McDonald Islands"}}, ["HN"] = {alpha3="HND",numeric="340",name="Honduras"}, ["HR"] = {alpha3="HRV",numeric="191",name="Croatia"}, ["HT"] = {alpha3="HTI",numeric="332",name="Haiti"}, ["HU"] = {alpha3="HUN",numeric="348",name="Hungary"}, ["ID"] = {alpha3="IDN",numeric="360",name="Indonesia"}, ["IE"] = {alpha3="IRL",numeric="372",name="Ireland",altnames={"Republic of Ireland"}}, ["IL"] = {alpha3="ISR",numeric="376",name="Israel"}, ["IM"] = {alpha3="IMN",numeric="833",name="Isle of Man"}, ["IN"] = {alpha3="IND",numeric="356",name="India"}, ["IO"] = {alpha3="IOT",numeric="086",name="British Indian Ocean Territory"}, ["IQ"] = {alpha3="IRQ",numeric="368",name="Iraq"}, ["IR"] = {alpha3="IRN",numeric="364",name="Iran",isoname="Iran (Islamic Republic of)"}, ["IS"] = {alpha3="ISL",numeric="352",name="Iceland"}, ["IT"] = {alpha3="ITA",numeric="380",name="Italy"}, ["JE"] = {alpha3="JEY",numeric="832",name="Jersey"}, ["JM"] = {alpha3="JAM",numeric="388",name="Jamaica"}, ["JO"] = {alpha3="JOR",numeric="400",name="Jordan"}, ["JP"] = {alpha3="JPN",numeric="392",name="Japan"}, ["KE"] = {alpha3="KEN",numeric="404",name="Kenya"}, ["KG"] = {alpha3="KGZ",numeric="417",name="Kyrgyzstan"}, ["KH"] = {alpha3="KHM",numeric="116",name="Cambodia"}, ["KI"] = {alpha3="KIR",numeric="296",name="Kiribati"}, ["KM"] = {alpha3="COM",numeric="174",name="Comoros"}, ["KN"] = {alpha3="KNA",numeric="659",name="Saint Kitts and Nevis",altnames={"St Kitts and Nevis"}}, ["KP"] = {alpha3="PRK",numeric="408",name="North Korea",isoname="Korea (Democratic People's Republic of)",altnames={"Democratic People's Republic of Korea"}}, ["KR"] = {alpha3="KOR",numeric="410",name="South Korea",isoname="Korea, Republic of",altnames={"Republic of Korea"}}, ["KW"] = {alpha3="KWT",numeric="414",name="Kuwait"}, ["KY"] = {alpha3="CYM",numeric="136",name="Cayman Islands"}, ["KZ"] = {alpha3="KAZ",numeric="398",name="Kazakhstan"}, ["LA"] = {alpha3="LAO",numeric="418",name="Laos",isoname="Lao People's Democratic Republic"}, ["LB"] = {alpha3="LBN",numeric="422",name="Lebanon"}, ["LC"] = {alpha3="LCA",numeric="662",name="Saint Lucia",altnames={"St Lucia"}}, ["LI"] = {alpha3="LIE",numeric="438",name="Liechtenstein"}, ["LK"] = {alpha3="LKA",numeric="144",name="Sri Lanka"}, ["LR"] = {alpha3="LBR",numeric="430",name="Liberia"}, ["LS"] = {alpha3="LSO",numeric="426",name="Lesotho"}, ["LT"] = {alpha3="LTU",numeric="440",name="Lithuania"}, ["LU"] = {alpha3="LUX",numeric="442",name="Luxembourg"}, ["LV"] = {alpha3="LVA",numeric="428",name="Latvia"}, ["LY"] = {alpha3="LBY",numeric="434",name="Libya"}, ["MA"] = {alpha3="MAR",numeric="504",name="Morocco"}, ["MC"] = {alpha3="MCO",numeric="492",name="Monaco"}, ["MD"] = {alpha3="MDA",numeric="498",name="Moldova",isoname="Moldova, Republic of"}, ["ME"] = {alpha3="MNE",numeric="499",name="Montenegro"}, ["MF"] = {alpha3="MAF",numeric="663",name="Saint-Martin",isoname="Saint Martin (French part)",altnames={"St Martin","St Martin (French part)","Collectivity of Saint Martin","Collectivity of St Martin"}}, ["MG"] = {alpha3="MDG",numeric="450",name="Madagascar"}, ["MH"] = {alpha3="MHL",numeric="584",name="Marshall Islands"}, ["MK"] = {alpha3="MKD",numeric="807",name="North Macedonia",altnames={"Republic of North Macedonia","Macedonia","Republic of Macedonia","Macedonia, the former Yugoslav Republic of"}}, ["ML"] = {alpha3="MLI",numeric="466",name="Mali"}, ["MM"] = {alpha3="MMR",numeric="104",name="Myanmar",altnames={"Burma"}}, ["MN"] = {alpha3="MNG",numeric="496",name="Mongolia"}, ["MO"] = {alpha3="MAC",numeric="446",name="Macau",isoname="Macao",altnames={"Macau SAR","Macao SAR"}}, ["MP"] = {alpha3="MNP",numeric="580",name="Northern Mariana Islands"}, ["MQ"] = {alpha3="MTQ",numeric="474",name="Martinique"}, ["MR"] = {alpha3="MRT",numeric="478",name="Mauritania"}, ["MS"] = {alpha3="MSR",numeric="500",name="Montserrat"}, ["MT"] = {alpha3="MLT",numeric="470",name="Malta"}, ["MU"] = {alpha3="MUS",numeric="480",name="Mauritius"}, ["MV"] = {alpha3="MDV",numeric="462",name="Maldives"}, ["MW"] = {alpha3="MWI",numeric="454",name="Malawi"}, ["MX"] = {alpha3="MEX",numeric="484",name="Mexico"}, ["MY"] = {alpha3="MYS",numeric="458",name="Malaysia"}, ["MZ"] = {alpha3="MOZ",numeric="508",name="Mozambique"}, ["NA"] = {alpha3="NAM",numeric="516",name="Namibia"}, ["NC"] = {alpha3="NCL",numeric="540",name="New Caledonia"}, ["NE"] = {alpha3="NER",numeric="562",name="Niger"}, ["NF"] = {alpha3="NFK",numeric="574",name="Norfolk Island"}, ["NG"] = {alpha3="NGA",numeric="566",name="Nigeria"}, ["NI"] = {alpha3="NIC",numeric="558",name="Nicaragua"}, ["NL"] = {alpha3="NLD",numeric="528",name="Netherlands"}, ["NO"] = {alpha3="NOR",numeric="578",name="Norway"}, ["NP"] = {alpha3="NPL",numeric="524",name="Nepal"}, ["NR"] = {alpha3="NRU",numeric="520",name="Nauru"}, ["NU"] = {alpha3="NIU",numeric="570",name="Niue"}, ["NZ"] = {alpha3="NZL",numeric="554",name="New Zealand",altnames={"Aotearoa"}}, ["OM"] = {alpha3="OMN",numeric="512",name="Oman"}, ["PA"] = {alpha3="PAN",numeric="591",name="Panama"}, ["PE"] = {alpha3="PER",numeric="604",name="Peru"}, ["PF"] = {alpha3="PYF",numeric="258",name="French Polynesia"}, ["PG"] = {alpha3="PNG",numeric="598",name="Papua New Guinea"}, ["PH"] = {alpha3="PHL",numeric="608",name="Filipinas"}, ["PK"] = {alpha3="PAK",numeric="586",name="Pakistan"}, ["PL"] = {alpha3="POL",numeric="616",name="Poland"}, ["PM"] = {alpha3="SPM",numeric="666",name="Saint Pierre and Miquelon",altnames={"St Pierre and Miquelon"}}, ["PN"] = {alpha3="PCN",numeric="612",name="Pitcairn"}, ["PR"] = {alpha3="PRI",numeric="630",name="Puerto Rico"}, ["PS"] = {alpha3="PSE",numeric="275",name="Palestine",isoname="Palestine, State of",altnames={"State of Palestine"}}, ["PT"] = {alpha3="PRT",numeric="620",name="Portugal"}, ["PW"] = {alpha3="PLW",numeric="585",name="Palau"}, ["PY"] = {alpha3="PRY",numeric="600",name="Paraguay"}, ["QA"] = {alpha3="QAT",numeric="634",name="Qatar"}, ["RE"] = {alpha3="REU",numeric="638",name="Réunion"}, ["RO"] = {alpha3="ROU",numeric="642",name="Romania"}, ["RS"] = {alpha3="SRB",numeric="688",name="Serbia"}, ["RU"] = {alpha3="RUS",numeric="643",name="Russia",isoname="Russian Federation"}, ["RW"] = {alpha3="RWA",numeric="646",name="Rwanda"}, ["SA"] = {alpha3="SAU",numeric="682",name="Saudi Arabia"}, ["SB"] = {alpha3="SLB",numeric="090",name="Solomon Islands"}, ["SC"] = {alpha3="SYC",numeric="690",name="Seychelles"}, ["SD"] = {alpha3="SDN",numeric="729",name="Sudan"}, ["SE"] = {alpha3="SWE",numeric="752",name="Sweden"}, ["SG"] = {alpha3="SGP",numeric="702",name="Singapore"}, ["SH"] = {alpha3="SHN",numeric="654",name="Saint Helena, Ascension and Tristan da Cunha"}, ["SI"] = {alpha3="SVN",numeric="705",name="Slovenia"}, ["SJ"] = {alpha3="SJM",numeric="744",name="Svalbard and Jan Mayen"}, ["SK"] = {alpha3="SVK",numeric="703",name="Slovakia"}, ["SL"] = {alpha3="SLE",numeric="694",name="Sierra Leone"}, ["SM"] = {alpha3="SMR",numeric="674",name="San Marino"}, ["SN"] = {alpha3="SEN",numeric="686",name="Senegal"}, ["SO"] = {alpha3="SOM",numeric="706",name="Somalia"}, ["SR"] = {alpha3="SUR",numeric="740",name="Suriname"}, ["SS"] = {alpha3="SSD",numeric="728",name="South Sudan"}, ["ST"] = {alpha3="STP",numeric="678",name="São Tomé and Príncipe",isoname="Sao Tome and Principe",altnames={"Democratic Republic of Sao Tome and Principe"}}, ["SV"] = {alpha3="SLV",numeric="222",name="El Salvador"}, ["SX"] = {alpha3="SXM",numeric="534",name="Sint Maarten",isoname="Sint Maarten (Dutch part)",altnames={"St Maarten","Saint Martin (Dutch part)","St Martin (Dutch part)"}}, ["SY"] = {alpha3="SYR",numeric="760",name="Syria",isoname="Syrian Arab Republic"}, ["SZ"] = {alpha3="SWZ",numeric="748",name="Eswatini",altnames={"Swaziland"}}, ["TC"] = {alpha3="TCA",numeric="796",name="Turks and Caicos Islands"}, ["TD"] = {alpha3="TCD",numeric="148",name="Chad"}, ["TF"] = {alpha3="ATF",numeric="260",name="French Southern and Antarctic Lands",isoname="French Southern Territories"}, ["TG"] = {alpha3="TGO",numeric="768",name="Togo"}, ["TH"] = {alpha3="THA",numeric="764",name="Thailand"}, ["TJ"] = {alpha3="TJK",numeric="762",name="Tajikistan"}, ["TK"] = {alpha3="TKL",numeric="772",name="Tokelau"}, ["TL"] = {alpha3="TLS",numeric="626",name="Timor-Leste",altnames={"East Timor"}}, ["TM"] = {alpha3="TKM",numeric="795",name="Turkmenistan"}, ["TN"] = {alpha3="TUN",numeric="788",name="Tunisia"}, ["TO"] = {alpha3="TON",numeric="776",name="Tonga"}, ["TR"] = {alpha3="TUR",numeric="792",name="Turkey",isoname="Türkiye"}, ["TT"] = {alpha3="TTO",numeric="780",name="Trinidad and Tobago"}, ["TV"] = {alpha3="TUV",numeric="798",name="Tuvalu"}, ["TW"] = {alpha3="TWN",numeric="158",name="Taiwan",isoname="Taiwan, Province of China",altnames={"Republic of China"}}, ["TZ"] = {alpha3="TZA",numeric="834",name="Tanzania",isoname="Tanzania, United Republic of"}, ["UA"] = {alpha3="UKR",numeric="804",name="Ukraine"}, ["UG"] = {alpha3="UGA",numeric="800",name="Uganda"}, ["UM"] = {alpha3="UMI",numeric="581",name="United States Minor Outlying Islands"}, ["US"] = {alpha3="USA",numeric="840",name="Estados Unidos",isoname="United States of America",altnames={"US","USA","U.S."}}, ["UY"] = {alpha3="URY",numeric="858",name="Uruguay"}, ["UZ"] = {alpha3="UZB",numeric="860",name="Uzbekistan"}, ["VA"] = {alpha3="VAT",numeric="336",name="Vatican City",isoname="Holy See",altnames={"Holy See (Vatican City State)","Vatican City State"}}, ["VC"] = {alpha3="VCT",numeric="670",name="Saint Vincent and the Grenadines",altnames={"St Vincent and the Grenadines"}}, ["VE"] = {alpha3="VEN",numeric="862",name="Venezuela",isoname="Venezuela (Bolivarian Republic of)"}, ["VG"] = {alpha3="VGB",numeric="092",name="British Virgin Islands",isoname="Virgin Islands (British)",altnames={"UK Virgin Islands","BVI"}}, ["VI"] = {alpha3="VIR",numeric="850",name="United States Virgin Islands",isoname="Virgin Islands (U.S.)",altnames={"US Virgin Islands","USVI"}}, ["VN"] = {alpha3="VNM",numeric="704",name="Vietnam",isoname="Viet Nam"}, ["VU"] = {alpha3="VUT",numeric="548",name="Vanuatu"}, ["WF"] = {alpha3="WLF",numeric="876",name="Wallis and Futuna"}, ["WS"] = {alpha3="WSM",numeric="882",name="Samoa"}, ["YE"] = {alpha3="YEM",numeric="887",name="Yemen"}, ["YT"] = {alpha3="MYT",numeric="175",name="Mayotte"}, ["ZA"] = {alpha3="ZAF",numeric="710",name="South Africa"}, ["ZM"] = {alpha3="ZMB",numeric="894",name="Zambia"}, ["ZW"] = {alpha3="ZWE",numeric="716",name="Zimbabwe"} } tic2ssxw5dw3lzwk34czl7uzm8hhior Agar-aramat tungtungan:Velimir Ivanovic 3 81033 392272 392264 2022-08-18T21:24:07Z Lam-ang 3622 -lint error wikitext text/x-wiki == Global ban proposal notification == Apologies for writing in English. {{int:Please-translate}} There is an on-going discussion about a proposal that you be globally banned from editing all Wikimedia projects. You are invited to participate at [[:m:Requests for comment/Global ban for Velimir Ivanovic|Requests for comment/Global ban for Velimir Ivanovic]] on Meta-Wiki. {{int:Feedback-thanks-title}} [[Agar-aramat:Liuxinyu970226|Liuxinyu970226]] ([[Agar-aramat tungtungan:Liuxinyu970226|tungtungan]]) 04:59, 11 Agosto 2022 (UTC) edd38o6j4iwtyjnugz54ft56l0of6od Agar-aramat tungtungan:Túrelio 3 81036 392273 2022-08-18T21:25:12Z Lam-ang 3622 Naragsak nga isasangbay! wikitext text/x-wiki <div class="kablaaw"> <strong>Kablaaw, Túrelio!</strong> Naragsak nga isasangbay ditoy Ilokano Wikipedia, ken agyamankami kadagiti [[Espesial:Contributions/Túrelio|inar-aramidmo]]. Adda dita baba dagiti panid a mabalin a makatulong kenka: {{Kablaaw/tulong}} * For non-Ilokano speakers, '''Welcome''', if you need help you may seek assistance at [[Wikipedia:Help for non-Ilokano speakers]] or leave a message at my [[Agar-aramat tungtungan:Lam-ang|talk page]]. No adda dagiti ania man a saludsodmo, pangngaasi a damagem kaniak idiay [[Agar-aramat tungtungan:Lam-ang|tungtungan ti panidko]]. Sige, kablaaw manen, ken adda namnamak nga agnam-ayka ken agbalinka a nagaget nga agobra ditoy.--[[Agar-aramat:Lam-ang|Lam-ang]]<sup>([[Agar-aramat tungtungan:Lam-ang|Makipatang]])</sup> 21:25, 18 Agosto 2022 (UTC) </div> m4gelmbbrk4xpmn2e4j7daulmwz2ovm Agar-aramat tungtungan:Liuxinyu970226 3 81037 392274 2022-08-18T21:25:37Z Lam-ang 3622 Naragsak nga isasangbay! wikitext text/x-wiki <div class="kablaaw"> <strong>Kablaaw, Liuxinyu970226!</strong> Naragsak nga isasangbay ditoy Ilokano Wikipedia, ken agyamankami kadagiti [[Espesial:Contributions/Liuxinyu970226|inar-aramidmo]]. Adda dita baba dagiti panid a mabalin a makatulong kenka: {{Kablaaw/tulong}} * For non-Ilokano speakers, '''Welcome''', if you need help you may seek assistance at [[Wikipedia:Help for non-Ilokano speakers]] or leave a message at my [[Agar-aramat tungtungan:Lam-ang|talk page]]. No adda dagiti ania man a saludsodmo, pangngaasi a damagem kaniak idiay [[Agar-aramat tungtungan:Lam-ang|tungtungan ti panidko]]. Sige, kablaaw manen, ken adda namnamak nga agnam-ayka ken agbalinka a nagaget nga agobra ditoy.--[[Agar-aramat:Lam-ang|Lam-ang]]<sup>([[Agar-aramat tungtungan:Lam-ang|Makipatang]])</sup> 21:25, 18 Agosto 2022 (UTC) </div> m5pdl6ss9ly7d5h68yhl6aymld1630u Teletubbies 0 81038 392289 2022-08-19T01:32:36Z 136.158.48.164 Pinartuat ti panid iti "Ti Teletubbies ket maysa a Britaniko a serye ti telebision [[Papeles:Teletubbies are still here 2011 (6592748045).jpg|thumb]] dagiti ubbing a pinartuat babaen da Anne Wood ken Andrew Davenport para iti BBC. Naipamaysa ti programa iti uppat a nagduduma ti kolorna a karakter a pagaammo kas Teletubbies, a napanaganan kadagiti iskrin ti telebision iti tianda. Nabigbigda iti intero a nalatak a kultura gapu iti naisangsangayan ti sukog nga antena a rumrummuar iti ulo ti..." wikitext text/x-wiki Ti Teletubbies ket maysa a Britaniko a serye ti telebision [[Papeles:Teletubbies are still here 2011 (6592748045).jpg|thumb]] dagiti ubbing a pinartuat babaen da Anne Wood ken Andrew Davenport para iti BBC. Naipamaysa ti programa iti uppat a nagduduma ti kolorna a karakter a pagaammo kas Teletubbies, a napanaganan kadagiti iskrin ti telebision iti tianda. Nabigbigda iti intero a nalatak a kultura gapu iti naisangsangayan ti sukog nga antena a rumrummuar iti ulo ti tunggal karakter, dagiti Teletubbies ket makikomunikar babaen kadagiti gibberish ken nadisenioda a mangibaklay iti panagpada kadagiti ubbing a bassit. 5nfddavurrizk213ufon37lyrq8mia7