Module:Grammar/Conjugate: Difference between revisions

m
re-order logic to ensure "with" and "of" phrases are pluralized regardless of how their final word ends
(improved pluralization for things with "of" in the name (drops of nectar, clumps of grave moss, knight commanders of the holy temple, etc))
m (re-order logic to ensure "with" and "of" phrases are pluralized regardless of how their final word ends)
 
(2 intermediate revisions by the same user not shown)
Line 9: Line 9:
if irregularplurals[str] ~= nil then
if irregularplurals[str] ~= nil then
     return irregularplurals[str]
     return irregularplurals[str]
    elseif (string.find(str, ' of ')) then
        i = string.find(str, ' of ')
        return p.pluralize(string.sub(str, 1, i-1)) .. string.sub(str, i)
    elseif (string.find(str, ' with ')) then
        i = string.find(str, ' with ')
        return p.pluralize(string.sub(str, 1, i-1)) .. string.sub(str, i)
elseif (str:sub(-1) == 's') then
elseif (str:sub(-1) == 's') then
return (str .. apostrophe)  --return unmodified (ends with 's', like 'boots', so we shouldn't append another 's')
return (str .. apostrophe)  --return unmodified (ends with 's', like 'boots', so we shouldn't append another 's')
Line 15: Line 21:
elseif (string.sub(str, -1) == 'y') and apostrophe == '' then
elseif (string.sub(str, -1) == 'y') and apostrophe == '' then
     return (string.sub(str, 1, -2) ..  'ies')
     return (string.sub(str, 1, -2) ..  'ies')
     elseif (string.find(str, ' of ')) then
     elseif (string.sub(str, -3) == 'ife') and apostrophe == '' then
        i = string.find(str, ' of ')
         return (string.sub(str, 1, -4) .. 'ives')
         return p.pluralize(string.sub(str, 1, i-1)) .. string.sub(str, i)
elseif (str:sub(-1) == 'z' or str:sub(-2) == 'ch' or str:sub(-2) == 'sh' or str:sub(-1) == 'x') and apostrophe == '' then
elseif (str:sub(-1) == 'z' or str:sub(-2) == 'ch' or str:sub(-2) == 'sh' or str:sub(-1) == 'x') and apostrophe == '' then
         if (str:sub(-6) == 'vortex') then  --special case, capitalize vortex the same way the game does in in-game text like Quantum Jitters description
         if (str:sub(-6) == 'vortex') then  --special case, capitalize vortex the same way the game does in in-game text like Quantum Jitters description