Modulo:String/sandbox: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Moroboshi (discussione | contributi)
Nessun oggetto della modifica
Moroboshi (discussione | contributi)
test funzione poor-men-collate
Riga 422:
 
--[[
Funzione per normalizzaresemplificare unastringhe stringacon unicode in forma NFC o NFDdiacritici
vedi: https://en.wikipedia.org/wiki/Unicode_equivalence
]]
 
function str.normalizzarecollate( frame )
 
collation = {
local new_args = str._getParameters(frame.args, {'source', 'form'})
{ '[áàăắằẵẳâấầẫẩǎåǻäǟãȧǡąāảȁȃạặậḁⱥᶏᴂɐᶐɒ]' , 'a'},
{'[ÁÀĂẮẰẴẲÂẤẦẪẨǍÅÅǺÄǞÃȦǠĄĀẢȀȂẠẶẬḀȺᴁ]', 'A'},
{'[ḃḅḇbƀɓ]', 'b'},
{'[ḂḄḆɃ]', 'B'},
{'[ćĉčċçḉȼƈ]', 'c'},
{'[ĆĈČĊÇḈȻƇ]', 'C'},
{'[đḍḓḏð]', 'd'},
{'[ĐḌḒḎÐ]', 'D'},
{'[éèèêếềễểěëẽėȩḝęēḗḕẻȅȇẹệḙḛǝ]', 'e'},
{'[ÉÈÈÊẾỀỄỂĚËẼĖȨḜĘĒḖḔẺȄȆẸỆḘḚƎ]', 'E'},
{'[ḟⅎ]', 'f'},
{'[ḞℲ]', 'F'},
{'[ǵğĝǧġģḡᵹɠ]', 'g'},
{'[ǴĞĜǦĠĢḠƓ]', 'G'},
{'[ĥȟḧḣḩħḥḫẖ]', 'h'},
{'[ĤȞḦḢḨĦḤḪ]', 'H'},
{'[íìĭîǐïḯĩįīỉȉȋịḭ]', 'i'},
{'[ÍÌĬÎǏÏḮĨĮĪỈȈȊỊḬ]', 'I'},
{'[ĵǰ]', 'j'},
{'[Ĵ]', 'J'},
{'[ḱǩķ]', 'k'},
{'[ḰǨĶ]', 'K'},
}
local new_args = str._getParameters(frame.args, {'source', 'form'})
local source = new_args['source'] or ''
local formsource = new_args['enctype'] or 'NFC'mw.ustring.toNFC(source)
 
if form == 'NFC' then
for _, el in ipairs(collation) do
returnsource = mw.ustring.toNFCgsub( source, formel[1], el[2])
elseif form == 'NFD' then
return mw.ustring.toNFD(source, form)
end
return source
return str._error( 'Valore del parametro form "' .. form .. '" non valido')
end