Veľké množstvo používateľov potrebuje vo svojich dokumentoch vkladať čísla slovom, napríklad (ale nielen) v príjmových a výdavkových pokladničných dokladoch, ktoré boli zverejnené na portáli Inet.sk ako v slovenskom, tak aj v českom jazyku. Pre nich sme pripravili rozšírenie JP Prevod čísla na slovenské a české slovo v aktuálnej verzii 2010.08.30.
Úvod do problematiky prevodu čísiel na slová
Skôr ako popíšeme vlastné rozšírenie, musíme sa trochu venovať problematike prevodu čísiel na slová. Zdanlivo jednoduchá záležitosť totiž skrýva v sebe veľa otázok a rôznych variánt. V prvom rade je potrebné zabezpečiť prevod čísla na slovo tak, ako sa správne píše po gramatickej stránke, t.j. s medzerami medzi (samozrejme, s osobitnými pravidlami písania medzier v slovenčine a češtine). Aj v tomto prípade však potrebujete, aby sa slovo raz napísalo s malým počiatočným písmenom a inokedy s veľkým.
Ďalšiu kapitolu tvoria tzv. finančné čísla, kde sa píšu číslovky 100, 1000 apod. s číslom „jedna“ na začiatku – jednosto, jedentisíc. Pravdaže, aj v prípade finančných čísloviek môžete potrebovať, aby sa písali s malým alebo veľkým počiatočným písmenom. Okrem toho však práve (ale nielen) pri finančných číslovkách mnohokrát potrebujete, aby sa nepísali s medzerami, ale ako jedno slovo. Toto pravidlo je zavedené z toho dôvodu, aby sa nemohlo do takéhoto slova nič vpísať (preto sa vlastne píše aj číslo „jedna“ na začiatku finančných čísiel).
Aby však problematika nebola až taká jednoduchá, ak píšete čísla spolu s finančnou menou, musíte čísla skloňovať, pretože je „jedno euro“, ale „jeden cent“ („jedna koruna“, ale „jeden halíř“). Navyše, v prípade meny sa musí skloňovať aj samotná mena, pretože je „jedno euro“, ale „dve eurá“ („jedna koruna“, ale „dvě koruny“).
Pravdaže, skloňovanie nie je viazané iba na finančnú menu – pokiaľ píšete čísla spolu so slovami „celé“ či „desatiny“, musíte skloňovať aj tieto slová – „jedna celá tri stotiny“, ale „dve celé päť stotín“ („jedna celá tři setiny“, ale „dvě celé pět setin“).
Toľko na úvod k problematike a teraz sa už venujme vlastnému rozšíreniu JP Prevod čísla na slovenské a české slovo. Skôr, než sa naň pozrieme podrobnejšie, musíme uviesť, že maximálne číslo, ktoré je možné previesť na reťazec je 2147483647 – „Dve miliardy stoštyridsaťsedem miliónov štyristoosemdesiattritisíc šesťstoštyridsaťsedem“ („Dvě miliardy sto čtyřicet sedm miliónů čtyři sta osmdesát tři tisíc šest set čtyřicet sedm“), čo je dané možnosťami jazyka OpenOffice.org Basic.
Vkladanie čísiel slovami v OpenOffice.org Writer
Po nainštalovaní rozšírenia sa vložia do prostredia OpenOffice.org Writer štyri panely nástrojov – JP SK/CS číslo na slovo - bez meny, JP SK/CS číslo na slovo - celá, desatina, JP SK/CS číslo na slovo - euro, cent a JP SK/CS číslo na slovo - koruna, halier. Panely nástrojov sú jazykovo lokalizované do slovenčiny, češtiny a angličtiny (aj keď rozšírenie nevkladá slová anglicky).
Panely nástrojov pre vkladanie čísla
slovom
Panely nástrojov zodpovedajú rôznym „finančným“ menám – prvý vkladá slová čísiel bez jej uvedenia; druhý za slovné znenie čísiel vloží slová „celá“, „desatina“, „stotina“...; tretí za slovné znenie čísiel vloží menu „euro“, „cent“ a štvrtý vloží okrem vlastného čísla aj menu „koruna“, „halier“. Vkladanie slovenských a českých slov je automatizované podľa aktuálneho jazyka čísla, ktoré prevádzate na slovo – t.j. ak je napísané slovensky, vloží sa slovné znenie po slovensky, ak je napísané česky, vloží sa slovné znenie česky. V prípade akýchkoľvek iných jazykov sa neprevedie žiadna akcia.
Prevod označeného čísla (s desatinnou
bodkou) na slovo
Pre prevod čísla stačí, ak ho napíšete a stlačíte príslušné tlačidlo na niektorom z panelov nástrojov. Pokiaľ pri prevode označíte číslovku, prevedie sa takto označené číslo, inak sa pre prevod použije posledné slovo, na ktorom alebo za ktorým sa nachádzate. Pozor, rozšírenie v číslach považuje desatinnú čiarku a bodku za rovnocenné znaky, a preto pri vkladaní čísiel neoddeľujte rády bodkou – bola by považovaná za desatinnú bodku.
Označené číslo po prevode na slovo
To, že môžete slovo pri prevode označiť , má svoje výhody – v tomto prípade totiž môžete rády oddeliť medzerou (pri prevode sú ignorované). Pokiaľ slovo neoznačíte, automatika rozoznávania posledného slova považuje medzeru za oddeľovač, a preto by sa takto napísané číslo nepreviedlo správne.
Aktuálne slovo (číslo s
desatinnou čiarkou) – kurzor je niekoľko medzier za týmto číslom
Na druhej strane je prevod neoznačeného slova rýchlejší (nemusíte sa zdržovať jeho označovaním) a kurzor sa dokonca môže nachádzať aj niekoľko medzier za ním – po prevode sa jeho poloha nezmení.
Aktuálne slovo (číslo) po prevode na
slovo
Tlačidla na paneli nástrojov zodpovedajú rôznym spôsobom prevodu, ktoré sme spomenuli v úvode – nastavenia sú napísané v bublinovom pomocníkovi, ktorý sa zobrazuje pri prechode na príslušné tlačidlo. Pretože všetky panely sú podobné, uvedieme ako príklad všetky možnosti na paneli JP SK/CS číslo na slovo - koruna, halier:
- sto korun dvacet tři halířů – prvé písmeno malé, čísla sa píšu s medzerami, typ meny „koruna, halier“.
- Sto korun Dvacet tři halířů – prvé písmeno veľké, čísla sa píšu s medzerami, typ meny „koruna, halier“.
- sto korun dvacettři halířů – prvé písmeno malé, čísla sa píšu spolu bez medzier, typ meny „koruna, halier“.
- Sto korun Dvacettři halířů – prvé písmeno veľké, čísla sa píšu spolu bez medzier, typ meny „koruna, halier“.
- jednosto korun dvacet tři halířů – finančné čísla, prvé písmeno malé, čísla sa píšu s medzerami, typ meny „koruna, halier“.
- Jednosto korun Dvacet tři halířů – finančné čísla, prvé písmeno veľké, čísla sa píšu s medzerami, typ meny „koruna, halier“.
- jednosto korun dvacettři halířů – finančné čísla, prvé písmeno malé, čísla sa píšu spolu bez medzier, typ meny „koruna, halier“.
- Jednosto korun Dvacettři halířů – finančné čísla, prvé písmeno veľké, čísla sa píšu spolu bez medzier, typ meny „koruna, halier“.
Na záver popisu rozšírenia pre modul OpenOffice.org Writer ešte upozorňujeme, že pri prevode „bez meny“ sa prevádza na slovo iba celá časť čísla, pretože prevod typu „stodvadsaťtri štyridsaťpäť“ nemá zmysel, ale správne je „stodvadsaťtri celých štyridsaťpäť stotín“ (prevod typu „celá, desatina“).
Vkladanie čísiel slovami v OpenOffice.org Calc
Po nainštalovaní rozšírenia sa do prostredia OpenOffice.org Calc pridá do menu Nástroje | Prídavky položka JP SK/CS číslo na slovo, ktorá obsahuje dve voľby: Inicializácia funkcie NUMBERTOTEXT a Vymazanie knižníc verzie nižšej ako 2010.08.30 (kompatibilita). Skôr, ako budete môcť používať rozšírenie v module OpenOffice.org Calc musíte spustiť prvú voľbu Inicializácia funkcie NUMBERTOTEXT. Pravdaže, stačí, ak toto urobíte jedenkrát, najlepšie ihneď po nainštalovaní rozšírenia.
Druhá voľba je určená pre tých používateľov, ktorí používali staršie verzie tohto rozšírenia, ktoré boli k dispozícii na portáli 602Office.cz – pomocou nej odstránia staré knižnice, ktoré by inak viedli ku kolízii (rovnaké názvy funkcií). Zároveň je potrebné, aby ešte pred inštaláciou novej verzie odinštalovali starú verziu tohto rozšírenia.
Po inicializácii pribudli v OpenOffice.org Calc nové funkcie NUMBERSKTEXT, NUMBERCSTEXT, NUMBERTOTEXT a pre zachovanie kompatibility so staršími verziami tohto rozšírenia aj funkcie SLOVOMSK a SLOVEMCZ. Funkcie môžete vkladať priamo do buniek v zošitoch ako ktorékoľvek iné funkcie OpenOffice.org Calc.
Funkcie NUMBERSKTEXT, NUMBERCSTEXT
Parametre:
-
Číslo – povinný parameter, ktorý obsahuje prevádzané číslo, môže byť zadané aj ako reťazec, aj ako číslo
-
Typ – nepovinný parameter, ktorý určuje typ prevodu:
- 0 – číslo sa prevedie ako celé (prednastavená hodnota)
- 1 – číslo sa prevedie ako reálne
- 2 – číslo sa prevedie ako reálne, desatinná časť sa prevedie v tvare xx/100
- 3 – prevedie sa iba desatinná časť
- 4 (a viac) – prevedie sa iba desatinná časť v tvare xx/100
-
Písmeno – nepovinný parameter, ktorý určuje veľkosť prvého písmena:
- 0 – prvé písmeno malé (prednastavená hodnota)
- 1 (a viac) – prvé písmeno veľké
-
Spolu – nepovinný parameter, ktorý určuje medzery a finančné čísla:
- 0 – s medzerami (prednastavená hodnota)
- 1 – bez medzier
- 2 – finančné číslo s medzerami
- 3 (a viac) – finančné číslo bez medzier
-
Mena – nepovinný parameter, ktorý určuje typ meny
- 0 – bez meny (prednastavená hodnota)
- 1 – typ „celých, desatín“
- 2 – typ „euro, centy“
- 3 – (a viac) – typ „koruny, haliere“
-
Desatinné – nepovinný parameter, ktorý určuje počet desatinných miest výsledku. Pozor, výsledok sa nezaokrúhľuje, ale použije sa príslušný počet desatinných miest. Prednastavená hodnota určuje, že sa použije taký počet desatinných miest, aký je zadaný.
Ako to vyplýva už z názvov funkcií, funkcia NUMBERSKTEXT prevádza číslo na slovenský text a funkcia NUMBERCSTEXT na český. Pravdaže, nie všetky kombinácie parametrov majú význam – napríklad pri prevode desatinnej časti na tvar xx/100 sa nepoužijú názvy desatín, centov či halierov, a pokiaľ sa prevádza na takýto tvar iba desatinná časť, potom nemajú význam žiadne ďalšie parametre okrem počtu desatinných miest.
Ukážka použitia funkcií NUMBERSKTEXT a
NUMBERCSTEXT
Príklady použitia:
- =NUMBERSKTEXT(123456,789;1;1;1;1) – Stodvadsaťtritisícštyristopäťdesiatšesť celých Sedemstoosemdesiatdeväť tisícin
- =NUMBERSKTEXT(123456,789;1;0;0;0;2) – stodvadsaťtritisíc štyristopäťdesiatšesť
- =NUMBERSKTEXT(123456,789;1;1;1;1;2) – Stodvadsaťtritisícštyristopäťdesiatšesť celých Sedemdesiatosem stotín
- =NUMBERSKTEXT(123456,789;1;0;2;2;2) – jednostodvadsaťtritisíc štyristopäťdesiatšesť eur sedemdesiatosem centov
- =NUMBERSKTEXT(123456,789;1;1;4;3;2) – Jednostodvadsaťtritisícštyristopäťdesiatšesť korún Sedemdesiatosem halierov
- =NUMBERCSTEXT(123456,789;1;0;1;1) – stodvacettřitisícčtyřistapadesátšest celých sedmsetosmdesátdevěť tisícin
- =NUMBERCSTEXT(123456,7891;1;0;0;2) – Sto dvacet tři tisíc čtyři sta padesát šest
- =NUMBERCSTEXT(123456,789;2;0;1;1;2) – stodvacettřitisícčtyřistapadesátšest celých 78/100
- =NUMBERCSTEXT(123456,789;3;1;2;2;2) – Sedmdesát osm centů
- =NUMBERCSTEXT(123456,789;4;0;4;3;2) – 78/100
Funkcia NUMBERTOTEXT
Parametre:
- Jazyk – povinný parameter, ktorý obsahuje reťazec určujúci jazyk, na ktorý sa má previesť číslo. Môže nadobúdať dve hodnoty „sk“ alebo „cs“ (veľkosť písmen je ignorovaná), pri ostatných vracia prázdny reťazec.
- Číslo, Typ, Písmeno, Spolu, Mena, Desatinné – tieto parametre sú zhodné s parametrami funkcií NUMBERSKTEXT a NUMBERCSTEXT, a preto sa nimi už nemusíme zapodievať.
Príklady použitia:
- =NUMBERTOTEXT("sk";5678,01;1;1;0;1) – Päťtisíc šesťstosedemdesiatosem celých Jedna stotina
- =NUMBERTOTEXT("CS";5678,01;1;1;0;1) – Pět tisíc šest set sedmdesát osm celých Jedna setina
Funkcie SLOVOMSK a SLOVEMCZ
Tieto funkcie sú vložené do rozšírenia z dôvodu zachovania kompatibility s predchádzajúcimi verziami, ktoré obsahovali iba tieto dve funkcie. Parametre:
- Číslo – povinný parameter, ktorý obsahuje prevádzané číslo, môže byť zadané aj ako reťazec, aj ako číslo.
- Finančné – nepovinný logický parameter, ktorý určuje, či sa číslo bude alebo nebude písať ako finančné. Prednastavená hodnota je, že sa vkladá finančné číslo.
- Veľké – nepovinný logický parameter, ktorý určuje, či sa číslo bude vkladať s prvým písmenom veľkým. Prednastavená hodnota je, že sa vkladá s veľkým písmenom.
Ukážka použitia funkcií SLOVOMSK a
SLOVEMCZ
Tieto funkcie prevádzajú na slovo (SLOVOMSK slovensky a SLOVEMCZ česky) iba celú časť čísla (môže však byť zadané aj s desatinnou časťou), a to nasledujúcimi štyrmi kombináciami:
- =SLOVOMSK(123456;"TRUE";"TRUE") – Jednostodvadsaťtritisícštyristopäťdesiatšesť
- =SLOVOMSK(123456;"FALSE";"TRUE") – Stodvadsaťtritisíc štyristopäťdesiatšesť
- =SLOVEMCZ(123456;"TRUE";"FALSE") – jednostodvacettřitisícčtyřistapadesátšest
- =SLOVEMCZ(123456;"FALSE";"FALSE") – sto dvacet tři tisíc čtyři sta padesát šest