Numbertext 0.9.1

Megjelent a számjegyekkel írt számokat szöveggé alakító kiterjesztés, a Numbertext 0.9.1-es verziója. Az egyik érdekesség az indiai angol nyelv támogatása: Az indiaiak, sok más ázsiai országhoz hasonlóan a nagy számokat a százezer (lakh) és a tízmillió (crore) segítségével fejezik ki, amelyet átvett az ország angol nyelvjárása is.

A legutóbbi fejlesztések arra irányultak, hogy a Numbertext moduljai bekerüljenek az Unicode CLDR nyelvi adatbázisba, ahol a Numbertexthez hasonló RuleBasedNumberFormat (RBNF) nyelvi leírások már helyet kaptak.

A Numbertexthez kidolgozott Soros nyelv előnye, hogy az összetett feladatok, mint a pénzegységek átalakítása is egyszerűen leírható vele. A svéd nyelv esetében a pénznem (illetve váltópénze) többesszáma mellett a pénznem nemére is figyelni kell, ami meghatározza a szám alakját. Egy új pénznem hozzáadása egy plusz programsort jelent csak a svéd Numbertext leírásban, pl.:

SEK:(\D+,.*) $(\1: cardr, svensk krona, svenska kronor, cardn, öre, öre)

A nyelvi adatbázis szinte minden modulja tartalmaz pénznemre vonatkozó információt, szemben az Unicode CLDR-rel. Az angol és a thai számok és pénznemek átalakítására létezik már ISO szabvány (az Office Open XML DollarText és BAHTTEXT mezőformátumkódjai, illetve a BAHTTEXT táblázatkezelő függvény), úgyhogy érdemes ezt más nyelvekre kiterjeszteni. E célból a Numbertext be lett jelentve az Unicode CLDR hibabejelentőjében, illetve bővült a svéd Numbertext modul, hogy összehasonlítható legyen az RBNF leírással. Az eredmény: a svéd RBNF leírás 199 szabályt tartalmaz, a Numbertext 92 szabályt, miközben több minden van benne: a pénznemek átalakítása (CHF, CNY, EUR, GBP, JPY, SEK, USD), három új nagyságrend (triljon, triljard, kvadriljon), és súgó függvény (help). A svéd modul referenciaként szolgál arra is, hogyan lehet a pénznemhez megadni a számok megfelelő nyelvtani alakját (pl. az előző programrészletben szereplő cardr és a cardn a számátalakításhoz használt függvények nevei, amelyek a pénznem és váltópénz neme alapján változnak).

A 0.9-es változatban változott a római számok leírása is. Szemben az IBM ICU RBNF leírásával, ami minden nagyságrendhez külön adja meg az 1000-szeres szorzást jelölő felülhúzást a római számoknál, a Numbertext leírás ezt egy egysoros függvénnyel intézi el:

(overline:.*)(.) $1\2̅ # a rekurzív függvény: minden betű után felülvonás (U+0305) karakter

A teljes Soros program csak 15 szabályt tartalmaz, szemben az IBM ICU ekvivalens RBNF leírásának 60 szabályával:

__numbertext__
1:(.)(.)(.) \1
2:(.)(.)(.) \1\1
3:(.)(.)(.) \1\1\1
4:(.)(.)(.) \1\2
5:(.)(.)(.) \2
6:(.)(.)(.) \2\1
7:(.)(.)(.) \2\1\1
8:(.)(.)(.) \2\1\1\1
9:(.)(.)(.) \1\3

(\d) $(\1:IVX)
(\d)(\d) $(\1:XLC)$2
(\d)(\d\d) $(\1:CDM)$2
([123])(\d\d\d) $(\1:M--)$2
(\d+)(\d\d\d) $(overline:$1)$2

(overline:.*)(.) $1\2̅

Pl. 3000000 = M̅M̅M̅

A Roman_2 modul (az első római számos modul a rugalmasabb zárójelezést használja a nagyobb számok jelölésére, l. NUMBERTEXT.org) az előző példára épít, de a dupla felülvonás helyett (ami a Firefoxban megjelenik, l. a NUMBERTEXT fejlesztőkörnyezet segítségével) mást alkalmaz: a szám elé és mögé húzott függőleges vonalat, ami százszoros szorzást jelent a hagyományos római jelölés szerint, például |C̅C̅C̅C̅C̅| az ötvenmilliót (500×1000×100). Azonban a rómaiak időnként rövidebb, zárójelhez hasonló görbe vonallal különböztették meg a számokat a szövegben, ami félreértésre, vagy legalábbis félremagyarázásra adhatott okot. A leghíresebb ilyen eset Sulpicius Galbáé, aki Tiberius római császár anyjától, Livia császárnétól (aki a saját fiával kevésbé volt jóban) |C̅C̅C̅C̅C̅| sestertiust örökölt, az örökség legnagyobb részét. Az akkor már trónra került Tiberius császár viszont rövidebb és görbe vonalakat látott a végrendeletben a szám körül, így az összeg századrészét, C̅C̅C̅C̅C̅ sestertiust hagyta csak jóvá. A vita eredményeként még ezt sem kapta meg Sulpicius Galba, de 8 év hispániai száműzetése során túlélte Nerót is, majd mintegy három hónapig uralkodott császárként Rómában, mielőtt meggyilkolták. (Forrás: 1, 2.)

A Numbertext fejlesztés kapcsolódik az FSF.hu Alapítvány támogatásával folyó OpenOffice.org fejlesztési és honosítási projekthez, például a Numbertext segítségével kiváltható és az angolon kívül más nyelvekhez is elkészíthető lesz az MS Office ordinal, CardinalText, OrdinalText, DollarText mezőformázása az OpenOffice.org-ban.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöljük.