Skip to content
Porrumentzio edited this page Jun 22, 2020 · 37 revisions

Bonvenon al la Vikio de la Esperanta Lingvo-pakaĵo!

Tra ĉi tiu Vikio ni montros kiel ni organizis nin mem por krei la Esperantan pakaĵon.

Enhavo
Kial ni decidis renovigi la jam ekzistantan Esperanto-pakaĵon?
Kontakto
Komenco
Klavaro
Vortlisto

Kial ni decidis renovigi la jam ekzistantan Esperanto-pakaĵon?

Sciu ke jam ekzistis antaŭa pakaĵo por AnySoftKeyboard, kiu troveblas (almenaŭ kiam ni verkis ĉi tion) kaj en F-droid, kaj en Google Play.

Tamen, la kialoj pro kiuj ni decidis renovigi la pakaĵon estas diversaj:

  • Ne-oficialeco de la pakaĵo laŭ AnySoftKeyboard: La pakaĵo ne aperas en la listo de lingvo-pakaĵoj el la oficiala retpaĝo de la projekto.
  • Ne-trovebleco de la kodo. La nura alproksimo al tio kion ni trovis estas la klarigoj pri kiel la kreinto kreis la vortaron el Vikipedio (kvankam kun ne ĝisdatigitaj kaj malalireblaj ligiloj kaj dosieroj, ĝi estas de antaŭ presakŭ 10 jaroj, 2011)
  • Ne-taŭgeco de la klavaraj aranĝoj pro la jenaj kialoj:
    • Mankis pli internaciaj klavaro-aranĝoj, tiuj kiel QWERTZ, AZERTY kaj Dvorak
    • Nur estis unu aranĝo, QWERTY-tipan, kiu ankaŭ havis (laŭ ni) mallogikan lokadon de la esperantaj literoj
    • En ĝia aranĝo, en la plej malsupran linion la kreinto enmetis unu pli klavon, kio kreis malkomforton kiam oni uzis la Esperantan klavaron kune kun ali-lingvaj pakaĵoj, ŝanĝante inter ili.

Tial ni decidis krei novan pakaĵon kiu plibonigos tiujn aferojn kaj profitos la jam ekzistantajn por havigi kompletan kaj ĝisdatigitan, taŭgan pakaĵon de Esperanto.


Komenco

Por komenci verki novan lingvan pakaĵon aŭ simple renovigi jam ekzistantan, sekvu ĉi tiun gvidon, kiu donos ne tre klarigan eksplikadon (kiam ni verkis ĉi tiun Vikion).


Klavaro

La klavaro-aranĝoj estas en src/main/res/xml/ dosierujo. Tie vi trovos kelkajn dosierojn, sed vi nun nur kontrolu qwerty.xml. Tiu estas ŝablono kiu klarigas la kreadon de aranĝoj (kaj en kiu troviĝas la origina angla klavaro).

La klavaro-aranĝoj, do, estos verkitaj en .xml dosieroj, per la jenaj instrukcioj:

Key attributes:

     "android:codes" : a comma separated unicode values of the keys. If you specify more than one code, then the other codes are accessible via multi-tap.

     "android:popupCharacters" : characters to show on long-press popup keyboard

     "android:keyLabel" : the text to show on the key. If this attribute is missing, the first code in "android:codes" will be used.

     "android:horizontalGap" : gap to add to the left of this key.

     "android:isModifier" : true/false (default is false) whether this key is a modifier key. Means it will be rendered with a differnt background (shift, delete are example of modifier key)

     "android:isRepeatable" : true/false (default is false) whether this key repeats printing on long press (like the backspace). Setting this to true will disable the long-press (android:popupCharacters) functionality

     "android:keyWidth" : specify the width of this key

Ni nun klarigos ĉiun detale.

Klavaro
Strukturo
:codes
:popupCharacters
:keyLabel
:horizontalGap
:isModifier
:isRepeatable
:keyWidth

Strukturo

Ĉi tiuj dosieroj havas konkretan strukturon:

  • Oni uzas <Keyboard> por komenci klavaron kaj </Keyboard> por fini ĝin.
  • Oni uzas <Row> por komenci klavaran linion kaj </Row> por fini ĝin.
  • Oni uzas <Key por ekverki informacion pri klavo kaj finigas la instrukcioj per />

Inter tiuj du komencigaj kaj finigaj struktureroj oni metas specizigajn komandetojn, klarigitaj malsupre.

:codes

Ĉi tiuj estas nombroj kiuj havas ĉiu litero subtenata de Unicode. Tamen, ŝajne ili ne uzas Unicode nombrojn, sed HTML-kodoj. Oni devos aldoni la nombron ĝuste post la egalsigno (=) kaj inter citilo-signoj ("). Jen ekzemplo:

android:codes="115"

Tio asignos la literon "s" al tiu klavo. Ne endas aldoni :keyLabel parametron poste, ĉar se mankas tiu parametro la klavo montros la karakteron specizigitan en :codes senprobleme, sed indas aldoni tian parametron poste por pli bona kompreno de iu ajn kiu kontrolos la kodon. Vidu :keyLabel

Vi povas serĉi la nombrojn korespondajn al ĉiu karaktero ĉi tie: https://unicode-table.com/en/

Ĝi havas duvojan serĉeblon:

  • Tajpu literon kaj ĝi montros la numeron
  • Tajpu numeron kaj ĝi montros la literon

:popupCharacters

Ĉi tiuj estas karakteroj montrotaj kiam oni premtenos klavon. Por konkretigi kiujn karakterojn montros en ĉiu klavo per ĉi tiu metodo, simple skribu la karakterojn volatajn. Oni ne bezonas skribi la nombron de la karaktero, sed, simple, la karakteron mem. Oni devos aldoni la karakterojn ĝuste post la egalsigno (=) kaj inter citilo-signoj ("). Jen ekzemplo:

android:popupCharacters="§ßśŝš

Tio montrigos tiujn karakterojn kiam oni premtemos klavon. Ili elmontriĝos maldekstre-dekstren (→) komence de la loko de la origina klavo, en la sama ordo en kiu vi verkis ilin en la kodo.

Emerĝaj literoj dekstren

Tamen, kiam ili ne havos sufiĉan spacon por elmontriĝi en tia ordo (la unua karaktero verkita en la kodo ĝuste super la origina klavo), la karaktero super la origina klavo estos la plej dekstran: la ordo invesiĝos kaj estos dekstre-maldekstren (←).

Emerĝaj literoj maldekstren

Por trovi bezonatajn karakterojn, simple kopiu ilin kaj algluu ĉi tien. Vi ankaŭ povas serĉi ilin en https://unicode-table.com/en/

:keyLabel

Ĉi tiu estas parametro kiu specizigos kiu karaktero estos montrata en ĉiu klavo. Se oni preterlasas ĉi tiun komandeton, la karaktero konkretigita en :codes estos montrata. Oni devos aldoni la karakterojn ĝuste post la egalsigno (=) kaj inter citilo-signoj ("). Jen ekzemplo:

android:keyLabel="s"

Por trovi bezonatajn karakterojn, simple kopiu ilin kaj algluu ĉi tien. Vi ankaŭ povas serĉi ilin en https://unicode-table.com/en/

:horizontalGap

Ĉi tiu parametro precizigos kiom da senplena spaco estos maldekstre de tiu klavo. Oni devos aldoni la valoron ĝuste post la egalsigno (=) kaj inter citilo-signoj ("). La valoro devas havi ĉi tiun strukturon: "Nombro%p" Jen ekzemplo:

android:horizontalGap="5%p"

Notu ke "5%p" estos mezo de klavo kiam ĝi estos specizigite kiel "10%p" en :keyWidth.

:isModifier

Ĉi tiu estas pli kompleksa parametro. Temas pri bulea (vera/falsa) parametro kiu konkretigos ĉu tiu klavo estos modifiga, kio signifas ke ĝi ne montriĝos per si mem, sed ke ŝanĝos alian karakteron iamaniere. La defaŭlta valoro de ĉi tiu klavo estas False, do principe ĝi ne estos aktiva kaj oni devos ŝanĝi ĝian valoron al True por ke ĝi iĝu aktiva.

Ekzemploj de ĉi tiu parametro estas kaj majuskliga klavo, kiu ŝanĝos sekve tajpotan karakteron majusklen, kaj forpreniga klavo, kiu ŝanĝos la antaŭan karakteron al nulspaca. Oni devos aldoni la bulean valoron ĝuste post la egalsigno (=) kaj inter citilo-signoj ("). Jen ekzemplo:

android:isModifier="true"

:isRepeatable

Ĉi tiu estas ankaŭ pli kompleksa parametro, kiu precizigos ĉu tiu klavo presos ĝian karakteron kiam oni premtenos ĝin. Ekzemplo de ĉi tio estas forpreniga klavo, kiu plu presas (forprenas aliajn) ĝian karakteron kiam oni premas ĝin dum iom da tempo.

Ĉi tiu parametro estas bulea kaj defaŭlte estas False, do oni devos ŝanĝi ĝin por ke ĝi aktiviĝu. Oni devos aldoni la bulean valoron ĝuste post la egalsigno (=) kaj inter citilo-signoj ("). Jen ekzemplo:

android:isRepeatable="true"

AVERTO! Ŝanĝi valoron de klavo al True malaktivigos ajnan :popupCharacters parametron.

:keyWidth

Ĉi tiu parametro estas ĝenerale metita tuj post <Keyboard (vidu Strukturo) kaj ĝi difinas la larĝecon de ĉiu klavo de tiu klavaro. Oni ankaŭ povas meti ĝin ene de la strukturo <Key ... > por difini alian larĝecon precize por tiu klavo.

Oni devos aldoni la valoron ĝuste post la egalsigno (=) kaj inter citilo-signoj ("). La valoro devas havi ĉi tiun strukturon: "Nombro%p" Jen ekzemplo:

:keyWidth="10%p"

La ĝenerala larĝeco de la klavoj estas "10%p" kaj ni ne rekomendas ŝanĝi ĝin, krom se vi volas ion tre specifan. Ĉi tiu parametro havas rilaton kun :horizontalGap, pro tio ke oni povas aldoni specifan proporcian senplenan spacon.


Vortlisto

[ Elprenita kaj ĝisdatigita de https://wiki.apertium.org/wiki/Vikipedia_korpuso_de_Esperanto#Instrukcioj ]

Jen instrukcioj por eltiri la esperantlingvan vikipedion kaj krei tekstaron de ĝi.

Vi bezonas uzi GNU/Linux aŭ alian UNIX-bazitan sistemon (ekz Mac OS X).

Unue, elŝutu https://svn.code.sf.net/p/apertium/svn/trunk/apertium-tools/WikiExtractor.py kaj la esperantlingva vikipedio:

  wget  https://svn.code.sf.net/p/apertium/svn/trunk/apertium-tools/WikiExtractor.py

  wget http://download.wikimedia.org/eowiki/latest/eowiki-latest-pages-articles.xml.bz2

Poste, faru

  python3 WikiExtractor.py --infn eowiki-latest-pages-articles.xml.bz2 

  cat wiki.txt | grep -e '..................................................' | grep -v "|" | grep -v "''" | grep -v "\[" | grep -v "#" | grep -v "*" | grep -v "@" | grep -v "&quot;" > eowiki-purigita.txt
  cat eowiki-purigita.txt | sort -fiu | sort -R | nl -s ". " > eowiki.crp.txt

La grep-komandoj elektas frazojn de minimuma longo de 50 signoj kaj forpurigas frazojn kun kursivaj vortoj (ofte alilingvaj) kaj kun diversaj signoj netauxgaj. La sort-komandoj ne estas strikte necesa. Ili ordigas kaj trovas nur unikajn liniojn, kaj poste ordigas hazarde (miksas la tekston). La komando nl -s ". " kaj aldonas liniajn numerojn.

Kontakto

Aliĝu al nia Telegrama grupo: https://t.me/ASKEsperanto