Skip to content

Folderul de Strings și declinarea substantivelor

Neculai Balaban edited this page Jul 29, 2021 · 2 revisions

În directorul Strings se află colecții diverse de cuvinte (substantive, ajective, verbe, părți de cuvinte, etc).

În tagurile de script, substantivele adesea trebuie declinate la forma lor corectă. Un exemplu pentru substantivul "chitară":

chitară Singular Plural
Caz Nearticulat Articulat Nearticulat Articulat
Nominativ-Acuzativ chitară chitara chitare chitarele
Dativ-Genitiv chitare chitarei chitare chitarelor

Acest procedeu e iregulat. Deși există reguli generale de declinare, există și excepții care trebuie luate în considerare.

În engleză schema este mult mai simplă:

guitar Singular Plural
Caz Nearticulat Articulat Nearticulat Articulat
Nominativ-Acuzativ guitar the guitar guitars the guitars
Dativ-Genitiv guitar of the guitar guitars of the guitars

De observat că procesul este complet regulat, și tot ce trebuie făcut este de adăugat cuvinte înainte sau de sufixat cu un s cuvântul. Textul în engleză profită de asta prin folosirea de construcții precum of the [instrument], the [instrument]s. În română nu avem acest lux din cauza iregularităților.

Soluția găsită este spargerea fiecărui fișier de Strings tradus în o multitudine de sub-fișiere, fiecare cu o formă de declinare. Scriptul aferent este scripts/create_paradigm.py. O paradigmă a unui substantiv e colecția tuturor formelor declinate ale ei. O rulare peste Animals.txt va genera următoarele fișiere:

Animals.txt
Animals
├── Feminine_PluArtDat.txt
├── Feminine_PluArtNom.txt
├── Feminine_PluNatDat.txt
├── Feminine_PluNatNom.txt
├── Feminine_SglArtDat.txt
├── Feminine_SglArtNom.txt
├── Feminine_SglNatDat.txt
├── Feminine_SglNatNom.txt
├── Masculine_PluArtDat.txt
├── Masculine_PluArtNom.txt
├── Masculine_PluNatDat.txt
├── Masculine_PluNatNom.txt
├── Masculine_SglArtDat.txt
├── Masculine_SglArtNom.txt
├── Masculine_SglNatDat.txt
└── Masculine_SglNatNom.txt

Se vor genera și câteva reguli de "include" care trebuie inserate în RulePack_Global.xml. După ce se generază această paradigmă, se pot accesa formele declinate prin următoarele sintagme. Folosesc exemplul pentru Animals.txt:

Singular Plural
Caz Nearticulat Articulat Nearticulat Articulat
Nominativ-Acuzativ [Animal] [Animal_Art] [Animal_Plu] [Animal_PluArt]
Dativ-Genitiv [Animal_Dat] [Animal_ArtDat] [Animal_PluDat] [Animal_PluArtDat]

Dacă e important în context genul substantivului, se inserează înainte de _ fie Masculine sau Feminine. Omiterea va returna un substantiv de un gen oarecare:

  • [AnimalMasculine_ArtDat] -> șacalului, boului, ariciului, ...
  • [AnimalFeminine_PluArtDat] -> vacilor, pumelor, maimuțelor, ...
  • [Animal_ArtDat] -> boului, maimuței, pumei, ...
Clone this wiki locally