Skip to content

Literoj kaj ordigo

korvo edited this page Jan 5, 2021 · 10 revisions

Por redaktado kaj kreado de indeksoj necesas informi la programojn pri la apartaĵoj de la lingvoj.

Redaktado per liternomoj

La redaktiloj permesas aldoni kaj redakti lingvojn kun nelatina alfabeto aŭ specialaj literoj ankaŭ per ordinara angleca klavaro uzante simbolajn nomojn de literoj, vd. Literoj kaj ordigo

Ĝis 2020 ni uzis ankoraŭ la versi-administran programon CVS, kiu ne subtenas unikodon. Ankaŭ retpoŝt-serviloj kaj redaktiloj en pli fruaj jaroj ofte havis problemojn pri ĝi. Kun la transiro al versisistemo Git nun ne plu estas deviga motivo teni la fonto-tekstojn askiaj krom la supre menciita subteno de redaktado per ordinara klavaro.

Tiuj liternomoj estas difinitaj en dtd/vokosgn.dtd kaj cfg/literoj.xml. Sed ili estas ankaŭ parto de la kodo de redaktiloj voko-cetonio/pro/voko_entities.pl - kreita per pro/loaddtd.pl:dtd2pl_entities kaj voko-grundo/jsc/voko_entities.js - kreita per la sama Porologprogramo, sed predikato dtd2json_entities.

La supre menciita dokumento Literoj kaj ordigo estas kreita el cfg/ordigo2.xml per XSL-transformo, vd. voko-formiko/ant/medio.xml:med-dok.

Vortlistoj kaj indeksaj ĉapitroj

Por aranĝi la indeksojn laŭ literoj necesas difini kiuj vortoj apartenas al kiuj literoj. Multaj lingvoj evoluis specialajn regulojn por tio. Ekz-e en la kimra la vortoj kun "ch" en la komenco aperas en aparta ĉapitro, en la germana vortoj kun "ä" estas enordigitaj sub la litero "a", dum en Esperanto "ĉ" formas apartan ĉapitron de "c".

En la dosiero cfg/ordigo2.xml estas reguloj por tiuj lingvoj, kiuj devias de ordinara angla/latina/askia ĉapitrigo. Por ĉiu speciale agordita lingvo estas la listo de ĉapitraj literoj kaj por ĉiu ĉapitro litero la listo de vortaj literoj, kiu apartenas tien - aŭ litergrupoj kiel la supre meniccita "ch". Por informi, kiom da literoj en la vortkomenco necesas kompari aldoniĝas jen n="2"n="3" al la grupo. Krome ni devas informi pri la escepto de "ch" en la ĉapitro "c" per minus="ch".

Kelkaj lingvoj havas specialajn literojn/signojn, kiuj ne validas kiel literoj. Tiujn ni donas ekze per ignorendaj="เแโใไ" en la taja. La nomo de ĉiu ĉapitro estas mallonga latinlitera identigilo, kiu aperas en la dosiernomo de la indekso, do la dosiero lx_bg_b enhavas la vortoj de la cirila б. Ĉar ni komparas la vortkomencon kun la tuta grupo, sen atenti poiziciojn, por literkombinoj de n>1 necesas divida signo, ni uzas kutime komon, se tio ne uziĝas kiel litero en tiu lingvo.

Aziaj lingvoj kun silaba strukturo ofte havas konsiderinde pli komplikajn regulojn. Ni ne povas komplete realigi ilin momente, sed helpas nin per elturnoj kiom eble - vd. ekz-e la tibetan. Iam poste necesos aldoni algoritmon taŭgan por silabe organizitaj lingvoj.

La ordo de vortoj ene de indeksa ĉapitro uzas laŭeble la enkonstruitajn regulojn de Javo resp. Saxon-transformilo. Sed por kelkaj lingvoj ni difinis proprajn Javo-klasojn por aldoni mankantajn regulojn. Ili estas en la dosierujo voko-formiko/jav/de/steloj/respiro/.

Necesaj paŝoj post ŝanĝoj en la ordigo de lingvo-indeksoj

Se oni ŝanĝas resp. aldonas por iu lingvo ordigajn regulojn, tio okazas en voko-grundo. Por ke la ŝanĝoj aperu ankaŭ en la publika servo ĉe reta-vortaro.de necesas pluraj pliaj paŝoj:

  • post aktualigo de voko-grundo ĉe Github oni devas rekrei novan procezujon voko-formiko. Plej facile oni atingas tion per puŝo de ŝanĝeto. Oni ekz-e povas aldoni spaceton en Dockerfile kaĵ pusi tion al Github. Rekreiĝas nova docker-procezujo voko-formiko sed kun la etikedo latest. Por ke ĝi uziĝu por la nokta aktualigo oni devas ŝanĝi la uzatan etikedon en revo-fonto/.github/workflows/nightly-revo-update.yml de stabilaal latest.
  • nur ŝanĝoj kaŭzitaj de diferencoj en la dosieroj (artikoloj kaj agordoj) sub revo-fonto kaŭzas ankaŭ aktualigojn ĉe reta-vortaro.de. Do plej bone oni fari ŝanĝetojn en revo-fonto/cfg/enhavo.xmlĉe la indeks-paĝoj _lng.html kaj _plena.html - ekz-e aldonante spaceton en iu titolo - por aktualigi la centran indekspaĝon dum la nokta kuro.
  • por aktualigi ankaŭ la indeksĉaptirojn de la unuopaj literoj necesas aldono aŭ ŝanĝoj en tradukoj sub tiuj ĉaptiroj. Alternative en la komenco oni devas rekalkuli la indeksojn loke, ekz-e per revo-medioj/formikujo rulante tie formiko inx-tuto kaj kopii la rezultajn indeksojn de la ŝanĝita lingvo mane al la pulbika servilo.
  • kiam aldonoj de tradukoj aŭtomate aktualiĝas en la indeksoj kaj ĉio funkciadas glate nokton post nokto, oni movu la Git-markon stabila ĉe voko-formiko al la lasta stato, t.e. master/HEAD kaj reŝanĝu en la skripto nightly-revo-update.yml la etikedon al stabila.