NAME / NOMO
Lingua::EO::Orthography::EO - Konvertilo de ortografio/substituaĵo por Esperantaj signoj
VERSIO
Ĉi tiu dokumento priskribas Lingua::EO::Orthography de versio 0.03
.
Tradukaĵoj
- en: La Angla lingvo
- eo: Esperanto
-
Lingua::EO::Orthography::EO (Ĉi tiu dokumento)
- ja: La Japana lingvo
SINOPTIKO
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);
EKSPLIKO
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.
Averto
Ĉ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.
Katalogo de grafismoj
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. 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 poru
.Ĝ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. 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 deu
.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. postfix_x
-
Cx cx Gx gx Hx hx Jx jx Sx sx Ux ux
Ĝi estas surogata grafismo, kiu lokas
x
kiel prefikso.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. 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~
kielu^
. 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.
Komparo kun Lingua::EO::Supersignoj
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.03
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:@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~)], );
Mi planas fasoni la API de ĉi tiu funkciojn:
$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.
METODOJ
Konstruilo
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 => \@source_notations
-
Liveras referencon al tabeltipo (en: array reference) aŭ
:all
kiel fontaj grafismoj.: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. 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.
Aliriloj
sources
$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
$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().
Liveraĵo estas la sama kiel kiam argumento ne estas liverata.
Konvertilo
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.
Ĉ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.
Utilecaj methodoj
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().
Liveras restajn fontajn grafismojn kiel referenco al tabeltipo.
Forigitaj grafismoj devas konservi sin almenaŭ 1. Se vi forigas tutajn grafismojn, la konvertilo ĵetas escepton.
VIDU ANKAŬ
L. L. Zamenhof, Fundamento de Esperanto, 1905
MALKONGRUECO
Estas ne raportata.
CIMOJ KAJ LIMIGADOJ
Neniaj cimoj estas raportata.
Fari sugestojn kaj raporti cimojn
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.
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.
SUBTENO
Vi povas trovi dokumentojn por ĉi tiu modjulo per la perldoc
komando.
% 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 Lingua::EO::Orthography::JA
Vi povas ankaŭ rigardi informon ĉe:
- RT: CPAN's request tracker
-
http://rt.cpan.org/Public/Dist/Display.html?Name=Lingua-EO-Orthography
- AnnoCPAN: Annotated CPAN documentation
- Search CPAN
- CPAN Ratings
VERSIKONTROLO
Ĉi tiu modjulo estas konservata kun git. Vi povas akiri la lastan version ĉe git://github.com/gardejo/p5-lingua-eo-orthography.git.
EKZAMENKAMPO EN KODO
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.
---------------------------- ------ ------ ------ ------ ------ ------ ------
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
---------------------------- ------ ------ ------ ------ ------ ------ ------
FARENDAĴOJ
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Ĝuste manipuli vortojn kiel
ankaŭ
en 'zamenhof' grafismo kun leksikono de uzantoEldoni Moose-eblan klason kiel
Lingua::EO::Orthography::Moosified
AŬTORO
- MORIJA Masaki, alinome Gardejo (en: MORIYA Masaki, alias Gardejo)
-
<moriya at cpan dot org>
, http://gardejo.org/
Ekzegezo: Tradukinto
- MORIJA Masaki, alinome Gardejo (en: MORIYA Masaki, alias Gardejo)
-
<moriya at cpan dot org>
, http://gardejo.org/
AGNOSKOJ
Juerd Waalboer verkis Lingua::EO::Supersignoj, kiun ĉi tiu modjulo referencis.
AŬTORRAJTO KAJ LICENCO
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.
Ekzegezo: Originala teksto de AŬTORRAJTO KAJ LICENCO
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.