Italian Rules¶
Italian pluralization and singularization rules.
This module defines the complete set of Italian pluralization
rules used by pluralio. It is imported automatically when
import pluralio is executed, which triggers the registration
of the it language in the global registry.
The rules are organized into four categories:
Irregular plurals: Words that do not follow regex patterns and must be memorized. This includes sdrucciola
-co→-ci(e.g."amico" → "amici"), sdrucciola-go→-gi(e.g."asparago" → "asparagi"), piana-go→-ghiexplicit mappings (e.g."lago" → "laghi"), completely irregular words (e.g."uomo" → "uomini","dio" → "dei"), and foreign loanwords (e.g."film" → "film"). The inverse mapping (plural → singular) is auto-generated.Extra singulars: Additional plural → singular mappings that cannot be derived from the irregular plurals. These handle cases where the singular form requires a different ending than the regex would produce (e.g.
"amici" → "amico","uova" → "uovo").Regex rules: Ordered patterns applied to words that are not in the irregular or uncountable lists. The first matching rule wins. Rules cover common Italian pluralization patterns: -
-ca→-che,-ga→-ghe(feminine) --co→-chi,-go→-ghi(piana) --io→-i,-o→-i,-a→-e,-e→-i--s/-x→ invariable, default →+iUncountable words: Words that are invariable — their plural form is identical to their singular form. This includes foreign loanwords (
film,bar,computer), Greek-origin forms in-i(analisi,crisi), pluralia tantum (occhiali,forbici), and truncated forms (foto,auto).
Known limitations:
``-i`` ambiguity:
-ican come from-o(libri → libro),-e(cani → cane), or-io(vizi → vizio). Regex defaults to-o;-eand-iowords are in irregulars/ extra singles for common cases.``-co``/``-go`` split: Regex always produces
-chi/-ghi(piana). Sdrucciola words (amico → amici) are in irregulars.``-ci``/``-gi`` singularization: Regex gives
-ce/-ge(luci → luce), but-co/-gowords (amici → amico) need extra singles.Stress detection: Italian stress is not marked orthographically. Regex can’t detect stress position, so the
-co/-gosplit relies on irregulars.
Reference: ref/rules.md for the full rules documentation.