Lingua::EO::Orthography::EO - Konvertilo de grafismoj (ortografio kaj surogataj skribosistemoj) por signoj de Esperanto
Ĉi tiu dokumento priskribas Lingua::EO::Orthography de versio 0.01.
0.01
Lingua::EO::Orthography
Lingua::EO::Orthography::EO (Ĉi tiu dokumento)
Lingua::EO::Orthography::JA
use utf8; use Lingua::EO::Orthography; my ($converter, $original, $converted); # ortografias... $converter = Lingua::EO::Orthography->new; $original = q(C^i-momente, la songha h'orajxo ^sprucigas aplauwdon.); $converted = $converter->convert($original); # substituas ... (X-sistemo) $converter->sources([qw(orthography)]); # (akceptas multajn grafismojn) $converter->target('postfix_x'); # estas la sama kiel super: # $converter = Lingua::EO::Orthography->new( # sources => [qw(orthography)], # target => 'postfix_x', # ); $original = q(Ĉi-momente, la sonĝa ĥoraĵo ŝprucigas aplaŭdon); $converted = $converter->convert($original);
6 signoj en la Esperanta alfabeto ne ekzistas en Askio (en: ASCII). Ilia signoj, kiuj havas supersignoj, estas ofte literumata en surogataj skribosistemoj historie, tio estas, de la epokoj de tipografio kaj tajpilo. Nuntempe, literumi ilin en ortografio ne estas nekutima de disvastigo de Unikodo (en: Unicode). Tamen, nun ankoraŭ estas multajn mediojn, kie enigi ilin kun klavaro esas malfacila, kaj oni povas manipuli malnovan dokumenton, kiu estas skribita en surogataj skribosistemoj.
Ĉi tiu objektema modjulo provizas vin per konverto de iliaj grafismoj.
Ĉi tiu modjulo estas sur ellasaĵo de "beta", kaj la API (eo: interfaco por aplikaprogramado, en: Application Programming Interface) eble estas ŝanĝata. Via opinio estas bonvena.
La sekvanta nomoj de grafismoj estas uzebla en new(), add_sources(), kaj tiel plu.
Mi etendos API en la estonteco, kaj vi povos adicii grafismojn alia ol ili.
orthography
Ĉ ĉ Ĝ ĝ Ĥ ĥ Ĵ ĵ Ŝ ŝ Ŭ ŭ (\x{108} \x{109} \x{11C} \x{11D} \x{124} \x{125} \x{134} \x{135} \x{15C} \x{15D} \x{16C} \x{16D})
Ĝi estas la ortografio de Esperanta alfabeto. La konvertilo manipulas literon kun supersigno, kiu ekzistas en Unikodo. La signara enkodigo estas UTF-8.
Vi hodiaŭ devas uzi la ortografion krom se estas ia speciala motivo ĉar Unikodo sufiĉe disvastiĝas. Perl 5.8.1 aŭ pli malfrua ankaŭ manipulas ĝin ĝuste.
Mi rekomendas ke vi manipulas UTF-8 flagata ĉenon en ĉie en la via programo kaj konvertas ĉenon nur kiam enigi de ekstero aŭ eligi al ekstero (laŭpete), por ĝuste labori funkciojn kiel length() en la stato kiu enŝaltas eron de utf8. Ĝi estas la sama kiel la principo de Encode kaj tavolo de enigo kaj eligo por Perl.
length()
zamenhof
Ch ch Gh gh Hh hh Jh jh Sh sh U u
Ĝi estas surogata grafismo, kiu lokas h kiel prefikso, tamen, ne lokas ĝin por u.
h
u
Ĝi estis proponata de D-ro Zamenhof, la patro de Esperanto, en Fundamento de Esperanto kaj oni nomas ĝin Zamenhofa sistemo (en: Zamenhof system). Pro tio, oni ankaŭ nomas ĝin la dua ortografio, sed ĝi ne estas tre uzata hodiaŭ.
Ĝi havas problemon, ke ĉeno kiu ampleksas inter radikoj (kiel 'flug/haven/o') ŝajnas kiel surogata ĉeno en diversaj vortoj kiel 'flughaveno'. Ĉi tiu modjulo ne evitas tian problemon nuntempe.
capital_zamenhof
CH ch GH gh HH hh JH jh SH sh U u
Ĝi estas varianto de 'capital_zamenhof' grafismo.
Ĝi lokas majusklan H kiel prefikso de majusklan alfabeton.
H
postfix_h
Ch ch Gh gh Hh hh Jh jh Sh sh Uw uw
Ĝi estas etendita grafismo de 'capital_zamenhof' grafismo.
Ĝi lokas w kiel prefikso de u.
w
Oni nomas ĝin H-sistemo (en: H-system).
postfix_capital_h
CH ch GH gh HH hh JH jh SH sh UW uw
Ĝi estas varianto de 'postfix_h' grafismo.
Ĝi lokas majusklan H aŭ W kiel prefikso de majusklan alfabeton.
W
postfix_x
Cx cx Gx gx Hx hx Jx jx Sx sx Ux ux
Ĝi estas surogata grafismo, kiu lokas x kiel prefikso.
x
Oni nomas ĝin X-sistemo aŭ iksa sistemo (en: X-system).
Oni larĝe uzas ĝin kiel surogata grafismo, ĉar X ne ekzistas en la Esperanta alfabeto, kaj ne estas uzata ekskluzive por la afero de priskribi ne-Esperantan vorton kiel la originala lingvo.
postfix_capital_x
CX cx GX gx HX hx JX jx SX sx UX ux
Ĝi estas varianto de 'postfix_x' grafismo.
Ĝi lokas majusklan X kiel prefikso de majusklan alfabeton.
X
postfix_caret
C^ c^ G^ g^ H^ h^ J^ j^ S^ s^ U^ u^
Ĝi estas surogata grafismo, kiu lokas cirkumfleksan signon ^ kiel prefikso.
^
Oni nomas ĝin ĉapelita sistemo (en: caret system), ĉar cirkumfleksa signo havas la saman formon kiel cirkumflekso.
Ĉi tiu modjulo nuntempe ne subtenas rimedon, kiu priskribas u~ kiel u^.
u~
u^
postfix_apostrophe
C' c' G' g' H' h' J' j' S' s' U' u'
Ĝi estas surogata grafismo, kiu lokas apostrofon ' kiel prefikso.
'
prefix_caret
^C ^c ^G ^g ^H ^h ^J ^j ^S ^s ^U ^u
Ĝi estas surogata grafismo, kiu lokas cirkumflekson ^ kiel prefikso.
Estas Lingua::EO::Supersignoj en CPAN. Ĝi provizas nin per ekvivalentaj funkcioj de ĉi tiu modjulo.
Mi komparas ilin de sekvanta listo:
Vidpunktoj ::Supersignoj ::Orthography Noto -------------------------- --------------- --------------------------- ---- Versio 0.02 0.00 Povas konverti @lines Jes Ne *1 Havas alirilojn Jes Jes, kaj ĝi havas utilecajn metodojn *2 Povas ŝanĝi grafismon Nur 'u' Ne (intere de pesi) *3 Povas manipuli Ne Ne (intere de pesi) *4 'flughaveno' Lingvo de API eo: Esperanto en: la Angla lingvo Povas konverti kiel N:1 Ne Jes *5 Rapideco Sata Pli rapida ĉirkaŭ 400% *6 Tujaj dependaĵoj 1 (0 en kerno) 6 (2 en kerno) *7 Tutaj dependaĵoj 1 (0 en kerno) 15 (8 en kerno) *7 Nombro de testa kazo 3 93 *8 License Nekonata Perl (Artistic aŭ GNU GPL) Laste modifita en Mar. 2003 Mar. 2010
Pro konverti @lines de Lingua::EO::Orthography:
@lines
@converted_lines = map { $converter->convert($_) } @original_lines;
Lingua::EO::Orthography havas utilecajn metodojn, kiu estas all_sources(), add_sources() kaj remove_sources().
Mi planas fasoni la API de ĉi tiu funkciojn:
$converter = Lingua::EO::Orthography->new( notations => { postfix_asterisk => [qw(C* c* G* g* H* h* J* j* S* s* U* u*)], }, ); $notations_ref = $converter->notations; @notations = $converter->all_notations; @notations = $converter->notations({ postfix_underscore => [qw(C_ c_ G_ g_ H_ h_ J_ j_ S_ s_ U_ u_)], }); $converter->add_notations( postfix_diacritics => [qw(C^ c^ G^ g^ H^ h^ J^ j^ S^ s^ U~ u~)], );
$converter = Lingua::EO::Orthography->new( ignore_words => [qw( bushaltejo flughaveno Kinghaio ... )], ); $ignore_words_ref = $converter->ignore_words; @ignore_words = $converter->all_ignore_words; @ignore_words = $converter->ignore_words([qw(kuracherbo)]); $converter->add_ignore_words([qw( longhara navighalto ... )]);
Mi supozas, ke vi povas fasoni vian praktikan aplikaĵon kiel ĝi akceptas oblajn grafismojn, de mia travivaĵo.
Mi inkluzivas ekzemplon en la distribuaĵo. Lingua::EO::Orthography povas konverti ĉenon al la ortografio unufoje, kiel examples/converter.pl. La ekvivalento en Lingua::EO::Supersignoj estas examples/correspondent.pl. Tiuokaze, vi devas konverti ĉenon dum vi anstataŭigas fontan grafismon.
Lingua::EO::Orthography povas konverti ĉenon pli rapida ĉirkaŭ 400% ol Lingua::EO::Supersignoj.
La kaŭzo de la diferenco estas kaŝmemori ŝablonan rekonon de regula esprimo kaj signan konveran tablon por anstataŭigi ĉenon, de Memoize. Plue, Lingua::EO::Orthography povas konverti signojn de oblaj grafismoj unufoje.
Vidu examples/benchmark.pl en ĉi tiu distribuaĵo.
La fonto de dependaĵoj estas http://deps.cpantesters.org/.
Tia numero ekskluzivas modjulojn por kunmeti kaj testi.
Ĉiu dependaĵoj de Lingua::EO::Orthography havas certan favoran opinion. Mi sufiĉe aprobas tiujn rekomendojn.
Tamen, mi pesas redukti dependaĵojn. I jam rezignis, ke dependigi ĉi tiun modjulon de namespace::clean, namespace::autoclean, kaj tiel plu.
Tia numero ekskluzivas testojn de aŭtoro.
new
$converter = Lingua::EO::Orthography->new(%init_arg);
Liveras objekton de Lingua::EO::Orthography, kiu estas konvertilo.
Akceptas hakettipon (en: hash) kiel konverta ĝisrandigo. Vi povas atribui sources kaj/aŭ target kiel klavo de la hakettipo.
sources
target
sources => \@source_notations
Liveras referencon al tabeltipo (en: array reference) aŭ :all kiel fontaj grafismoj.
:all
:all estas ekvivalento al zamenhof, capital_zamenhof, postfix_h, postfix_capital_h, postfix_x, postfix_capital_x, postfix_caret, postfix_apostrophe kaj prefix_caret.
Se vi nefaras atribui ĝin, la konvertilo konsideras ke vi atribuas :all al ĝi.
Se vi atribuas valoron ekskluzive de :all kaj referenco al tabeltipo, numero de grafismaj elementoj estas 0 aŭ grafismaj elementoj havas nekonatan grafismon aŭ undef, la konvertilo ĵetas escepton.
undef
target => $target_notation
Liveras ĉenon kiel cela grafismo.
Se vi nefaras atribui ĝin, la konvertilo konsideras ke vi atribuas orthography al ĝi.
Se vi atribuas nekonatan grafismon aŭ undef, la konvertilo ĵetas escepton.
convert
$converted_string = $converter->convert($original_string);
Akceptas ĉenon, konvertas ĝin, kaj liveras ĉenon. Argumenta ĉeno ne estas poluata de ĉi tiu metodo, tio estas, argumenta ĉeno ne estas ŝanĝata de kromefiko de ĉi tiu metodo. Konvertado de ĉeno estas bazita sur grafismoj, kiuj estas atribuita ĉe konstruilo new() aŭ aliriloj de sources() kaj target().
Ĉeno estas usklecodistinga (en: case-sensitive). Tio estas, la konvertilo ne konsideras cX kiel surogataj grafismoj en 'postfix_x' grafismo, kaj ne konvertas ĝin.
cX
Ĉeno de argumento devas enŝalti flagon de UTF8. Ĉeno de liversaĵo ankaŭ enŝaltiĝas.
URL aŭ adreso de retpoŝto havas permeson de ĉeno, kiu estas konfuzata sin kaj surogatan grafismon. Se vi ne deziras konverti ĝin, rulu convert() ĉiuvorte, poste dividi (per split()) frazon en vortojn. Ĉi tio ekskluzivigas al la konvertilo ĉenon, kiu inkluzivas :// aŭ @, de la celo de la konvertado. Vidu RFC 2396 kaj 3986 por URI, kaj vidu RFC 5321 kaj 5322 por adreso de retpoŝto. Mi priskribis konkretan ekzemplon ĉe examples/ignore_addresses.pl en la distribuaĵo.
split()
://
@
$source_notations_ref = $converter->sources;
Liveras fontajn grafismojn kiel referenco al tabeltipo. Se vi deziras akiri ĝin kiel referenco al tabeltipo, vi povas uzi all_sources().
$source_notations_ref = $converter->sources(\@notations);
Akceptas referencon al tabeltipo kiel fontaj grafismoj. Vi povas uzi grafismojn kiel konstruilo new().
Liveraĵo estas la sama kiel kiam argumento ne estas liverata.
$target_notation = $converter->target;
Liveras celan grafismon kiel skalaro (en: scalar).
$target_notation = $converter->target($notation);
Akceptas ĉenon kiel cela grafismo. Vi povas uzi grafismojn kiel konstruilo new().
all_sources
@all_source_notations = $converter->all_sources;
Liveras fontajn grafismojn kiel listo. Se vi deziras akiri ĝin kiel referenco al tabeltipo, vi povas uzi sources().
add_sources
$source_notations_ref = $converter->add_sources(@adding_notations);
Adicii transdonitajn grafismojn kiel listo en fontajn grafismojn. Vi povas uzi grafismojn kiel konstruilo new().
Liveras restajn fontajn grafismojn kiel referenco al tabeltipo.
remove_sources
$source_notations_ref = $converter->remove_sources(@removing_notations);
Forigas transdonitajn grafismojn kiel listo de fontaj grafismoj. Vi povas uzi grafismojn kiel konstruilo new().
Forigitaj grafismoj devas konservi sin almenaŭ 1. Se vi forigas tutajn grafismojn, la konvertilo ĵetas escepton.
L. L. Zamenhof, Fundamento de Esperanto, 1905
http://en.wikipedia.org/wiki/Esperanto_orthography
Lingua::EO::Supersignoj
http://freshmeat.net/projects/eoconv/
Estas ne raportata.
Pluaj testoj
Malpluaj dependaĵoj
Provizi API por adicii grafismon de uzanto
Ĝuste manipuli vortojn kiel flughaveno (flug/haven/o) en 'postfix_h' grafismo kun leksikono de uzanto
flughaveno
flug/haven/o
Ĝuste manipuli vortojn kiel ankaŭ en 'zamenhof' grafismo kun leksikono de uzanto
ankaŭ
Eldoni Moose-eblan klason kiel Lingua::EO::Orthography::Moosified
Lingua::EO::Orthography::Moosified
Neniaj cimoj estas raportata.
Bonvole raportu ĉiajn trovitajn cimojn, petegojn por trajtoj, kaj ideojn por plibonigo al <bug-lingua-eo-orthography at rt dot cpan dot org>, aŭ tra la reta interfaco ĉe http://rt.cpan.org/Public/Bug/Report.html?Queue=Lingua-EO-Orthography. Mi estos avizata, kaj poste vi estos avizata de plibonstatiĝo aŭtomate pri viaj cimoj/petegoj kiel mi fari ŝanĝojn.
<bug-lingua-eo-orthography at rt dot cpan dot org>
Kiam raporti cimojn, se eble, bonvole adiciu specimenon tiel malgranda kiel vi povas fari la kodon, kiu produktas la cimon. Kaj kompreneble, sugestoj kaj flikaĵoj estas bonvena.
Vi povas trovi dokumentojn por ĉi tiu modjulo per la perldoc komando.
perldoc
% perldoc Lingua::EO::Orthography
La Esperanta eldono de dokumento estas havebla.
% perldoc Lingua::EO::Orthography::EO
Vi povas ankaŭ trovi la Japana lingva eldono de dokumento por ĉi tiu modjulo per la perldocjp komando de Pod::PerldocJp.
perldocjp
% perldocjp Lingua::EO::Orthography::JA
Vi povas ankaŭ rigardi informon ĉe:
http://rt.cpan.org/Public/Bug/Report.html?Queue=Lingua-EO-Orthography
http://annocpan.org/dist/Lingua-EO-Orthography
http://search.cpan.org/dist/Lingua-EO-Orthography
http://cpanratings.perl.org/dist/Lingua-EO-Orthography
Ĉi tiu modjulo estas konservata kun git. Vi povas akiri la lastan version ĉe git://github.com/gardejo/p5-lingua-eo-orthography.git.
Mi uzas Devel::Cover por ekzameni la ekzamenkampon de miaj testoj, la subo estas la resuma raporto de Devel::Cover pri kompleto de testoj de ĉi tiu distribuaĵo.
Devel::Cover
---------------------------- ------ ------ ------ ------ ------ ------ ------ File stmt bran cond sub pod time total ---------------------------- ------ ------ ------ ------ ------ ------ ------ .../Lingua/EO/Orthography.pm 100.0 100.0 100.0 100.0 100.0 100.0 100.0 Total 100.0 100.0 100.0 100.0 100.0 100.0 100.0 ---------------------------- ------ ------ ------ ------ ------ ------ ------
<moriya at cpan dot org>, http://ttt.ermitejo.com/
<moriya at cpan dot org>
Juerd Waalboer verkis Lingua::EO::Supersignoj, kiun ĉi tiu modjulo referencis.
Aŭtorrajto (c) 2010 MORIJA Masaki, alinome Gardejo
Ĉi tiu modjulo estas libera programaro; vi povas redistribui ĝin kaj/aŭ modifi ĝin laŭ la sama kondiĉo kiel Perl mem. Vidu perlgpl kaj perlartistic.
La plena teksto de la licenco estas povata trovi en la LICENSE dosiero, kiu estas inkluzivata kun ĉi tiu distribuaĵo.
Copyright (c) 2010 MORIYA Masaki, alias Gardejo
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlgpl and perlartistic.
The full text of the license can be found in the LICENSE file included with this distribution.
To install Lingua::EO::Orthography, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Lingua::EO::Orthography
CPAN shell
perl -MCPAN -e shell install Lingua::EO::Orthography
For more information on module installation, please visit the detailed CPAN module installation guide.