|
our $VERSION = version->declare( 'v0.34.4' );
use if $^V ge v5.12.0, feature => 'unicode_strings' ;
BEGIN {
die "Transliteration requires Perl 5.18 or above"
unless $^V ge v5.18.0;
}
no warnings 'experimental::regex_sets' ;
has 'transforms' => (
is => 'ro' ,
isa => ArrayRef,
init_arg => undef ,
default => sub { [
qr/(?^um:\G.)/ ,
{
type => 'transform' ,
data => [
{
from => q(Any) ,
to => q(NFD) ,
},
],
},
{
type => 'conversion' ,
data => [
{
before => q() ,
after => q() ,
replace => q(̋) ,
result => q(˥) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(́) ,
result => q(˦) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(̄) ,
result => q(˧) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([̀̏]) ,
result => q(˧˩) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(̌) ,
result => q(˨˦) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(̂) ,
result => q(˥˧) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ə̃) ,
result => q(ə̃) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([̰̃ꜜꜛ↗↘]) ,
result => q() ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([\N{U+14B.261.361}\N{U+14B.67.361}][kqǃʗ]) ,
result => q(nk) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([\N{U+14B.261.361}\N{U+14B.67.361}]) ,
result => q(nɡ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(k͡x) ,
result => q(kh) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(k͡ɬ) ,
result => q(kl) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([\N{U+261.361.1C0}\N{U+67.361.1C0}]) ,
result => q(t͡ɬ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([\N{U+6C.361.292}ɮ]) ,
result => q(ls) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([\N{U+6E.33C}\N{U+6E.33C.30A}\N{U+6D.33A}\N{U+6E.30A}\N{U+6E.325}ⁿᵑ\N{U+273.30A}\N{U+273.325}ɳ\N{U+272.30A}\N{U+272.325}ɲ\N{U+274.30A}\N{U+274.325}ɴ\N{U+14B.30A}\N{U+14B.325}ŋ]) ,
result => q(n) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([ɱ\N{U+6D.325}\N{U+6D.32A}ᵐ]) ,
result => q(m) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([b\N{U+64.33C}\N{U+62.33A}\N{U+27E.33C}ɓp\N{U+74.33C}\N{U+70.33A}pʼʘɋ]ʰ?) ,
result => q(kʷ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([\N{U+74.32A}ʈǁʖ]) ,
result => q(t) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([ɖɗᶑð\N{U+F0.320}\N{U+F0.33C}\N{U+3B2.33A}]) ,
result => q(d) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([qǃʗ\N{U+71.361.3C7}\N{U+261.361.1C3}]) ,
result => q(k) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([gɢɣɠʛ]) ,
result => q(ɡ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([fvβ]) ,
result => q(w) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([θ\N{U+3B8.331}\N{U+3B8.31E}\N{U+3B8.33C}\N{U+278.33A}zʃʒʂʐʑ]) ,
result => q(s) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([ɦ\N{U+63.327}xχʕʡʔʰ]) ,
result => q(h) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([rɾɽʁ\N{U+72.31D}ɾɽʁ\N{U+6C.325}]) ,
result => q(l) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([ʝʲ]) ,
result => q(j) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([ʎ\N{U+28E.325.2D4}\N{U+28E.31D}\N{U+29F.31D.30A}\N{U+29F.31D}][yiɨɪʉ]?[ʝʲ]?) ,
result => q(lj) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([\N{U+74.361.283}\N{U+74.35C.283}\N{U+2A7}\N{U+74.361.255}\N{U+74.35C.255}\N{U+2A8}\N{U+288.361.282}cɕ\N{U+74.361.283.2BC}ǀʇǂʄ]) ,
result => q(t͡ɬ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([\N{U+64.361.292}ʤʣ\N{U+64.361.7A}\N{U+64.35C.7A}\N{U+64.361.255}ʥ\N{U+64.361.291}\N{U+64.35C.291}\N{U+256.361.290}\N{U+64.361.290}ɟ]) ,
result => q(t͡s) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([yiɨɪʉ]) ,
result => q(i) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([əɛæɘ]) ,
result => q(ə̃) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([ʊɯ]) ,
result => q(u) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([ɔø]) ,
result => q(o) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([ɑ]) ,
result => q(a) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([ʼ\.̯]) ,
result => q() ,
revisit => 0,
},
],
},
{
type => 'transform' ,
data => [
{
from => q(Any) ,
to => q(NULL) ,
},
],
},
{
type => 'conversion' ,
data => [
{
before => q() ,
after => q() ,
replace => q(aː) ,
result => q(aa) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(eː) ,
result => q(ee) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(iː) ,
result => q(ii) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(oː) ,
result => q(oo) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(uː) ,
result => q(uu) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ə̃ː) ,
result => q(ə̃ə̃) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(hh+) ,
result => q(h) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ː) ,
result => q() ,
revisit => 0,
},
],
},
{
type => 'transform' ,
data => [
{
from => q(Any) ,
to => q(NULL) ,
},
],
},
{
type => 'conversion' ,
data => [
{
before => q() ,
after => q() ,
replace => q(t͡sa) ,
result => q(Ꮳ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(t͡se) ,
result => q(Ꮴ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(t͡si) ,
result => q(Ꮵ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(t͡so) ,
result => q(Ꮶ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(t͡su) ,
result => q(Ꮷ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(t͡sə̃) ,
result => q(Ꮸ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(t͡s) ,
result => q(Ꮵ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(t͡ɬa) ,
result => q(Ꮭ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(t͡ɬe) ,
result => q(Ꮮ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(t͡ɬi) ,
result => q(Ꮯ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(t͡ɬo) ,
result => q(Ꮰ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(t͡ɬu) ,
result => q(Ꮱ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(t͡ɬə̃) ,
result => q(Ꮲ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(t͡ɬ) ,
result => q(Ꮯ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(d͡la) ,
result => q(Ꮬ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(d͡le) ,
result => q(Ꮮ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(d͡li) ,
result => q(Ꮯ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(d͡lo) ,
result => q(Ꮰ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(d͡lu) ,
result => q(Ꮱ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(d͡lə̃) ,
result => q(Ꮲ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(d͡l) ,
result => q(Ꮯ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ɬa) ,
result => q(Ꮭ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ɬe) ,
result => q(Ꮮ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ɬi) ,
result => q(Ꮯ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ɬo) ,
result => q(Ꮰ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ɬu) ,
result => q(Ꮱ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ɬə̃) ,
result => q(Ꮲ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ɬ) ,
result => q(Ꮯ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ma) ,
result => q(Ꮉ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(me) ,
result => q(Ꮊ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(mi) ,
result => q(Ꮋ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(mo) ,
result => q(Ꮌ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(mu) ,
result => q(Ꮍ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(mə̃) ,
result => q(Ᏽ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(m) ,
result => q(Ꮋ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(nah) ,
result => q(Ꮐ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(na) ,
result => q(Ꮎ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ne) ,
result => q(Ꮑ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ni) ,
result => q(Ꮒ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(no) ,
result => q(Ꮓ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(nu) ,
result => q(Ꮔ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(nə̃) ,
result => q(Ꮕ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(n) ,
result => q(Ꮒ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ta) ,
result => q(Ꮤ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(te) ,
result => q(Ꮦ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ti) ,
result => q(Ꮨ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(to) ,
result => q(Ꮩ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(tu) ,
result => q(Ꮪ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(tə̃) ,
result => q(Ꮫ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(t) ,
result => q(Ꮨ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(da) ,
result => q(Ꮣ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(de) ,
result => q(Ꮥ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(di) ,
result => q(Ꮧ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(do) ,
result => q(Ꮩ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(du) ,
result => q(Ꮪ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(də̃) ,
result => q(Ꮫ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(d) ,
result => q(Ꮧ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([kɡ][wʷ]a) ,
result => q(Ꮖ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([kɡ][wʷ]e) ,
result => q(Ꮗ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([kɡ][wʷ]i) ,
result => q(Ꮘ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([kɡ][wʷ]o) ,
result => q(Ꮙ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([kɡ][wʷ]u) ,
result => q(Ꮚ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([kɡ][wʷ]ə̃) ,
result => q(Ꮛ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([kɡ][wʷ]) ,
result => q(Ꮘ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ɡa) ,
result => q(Ꭶ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ka) ,
result => q(Ꭷ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([kɡ]e) ,
result => q(Ꭸ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([kɡ]i) ,
result => q(Ꭹ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([kɡ]o) ,
result => q(Ꭺ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([kɡ]u) ,
result => q(Ꭻ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([kɡ]ə̃) ,
result => q(Ꭼ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q([kɡ]) ,
result => q(Ꭹ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(sa) ,
result => q(Ꮜ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(se) ,
result => q(Ꮞ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(si) ,
result => q(Ꮟ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(so) ,
result => q(Ꮠ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(su) ,
result => q(Ꮡ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(sə̃) ,
result => q(Ꮢ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(s) ,
result => q(Ꮝ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ha) ,
result => q(Ꭽ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(he) ,
result => q(Ꭾ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(hi) ,
result => q(Ꭿ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ho) ,
result => q(Ꮀ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(hu) ,
result => q(Ꮁ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(hə̃) ,
result => q(Ꮂ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(hna) ,
result => q(Ꮏ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(h) ,
result => q(Ꭿ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(la) ,
result => q(Ꮃ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(le) ,
result => q(Ꮄ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(li) ,
result => q(Ꮅ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(lo) ,
result => q(Ꮆ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(lu) ,
result => q(Ꮇ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(lə̃) ,
result => q(Ꮈ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(l) ,
result => q(Ꮅ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(wa) ,
result => q(Ꮹ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(we) ,
result => q(Ꮺ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(wi) ,
result => q(Ꮻ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(wo) ,
result => q(Ꮼ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(wu) ,
result => q(Ꮽ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(wə̃) ,
result => q(Ꮾ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(w) ,
result => q(Ꮻ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ja) ,
result => q(Ꮿ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(je) ,
result => q(Ᏸ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ji) ,
result => q(Ᏹ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(jo) ,
result => q(Ᏺ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ju) ,
result => q(Ᏻ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(jə̃) ,
result => q(Ᏼ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(j) ,
result => q(Ᏹ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(a) ,
result => q(Ꭰ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(e) ,
result => q(Ꭱ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(i) ,
result => q(Ꭲ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(o) ,
result => q(Ꭳ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(u) ,
result => q(Ꭴ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(ə̃) ,
result => q(Ꭵ) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(˥˧) ,
result => q(̂) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(˧˩) ,
result => q(̀) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(˨˦) ,
result => q(̌) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(˥) ,
result => q(̋) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(˦) ,
result => q(́) ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q(˧) ,
result => q(̄) ,
revisit => 0,
},
],
},
{
type => 'transform' ,
data => [
{
from => q(Any) ,
to => q(NULL) ,
},
],
},
{
type => 'conversion' ,
data => [
{
before => q() ,
after => q() ,
replace => q([:Zs:]+) ,
result => q(\') ,
revisit => 0,
},
{
before => q() ,
after => q() ,
replace => q((?:(?!(?:[\p{sc=Cher}]|[̋́̄̀̂̌]) )(?s:.))),
result => q() ,
revisit => 0,
},
],
},
{
type => 'transform' ,
data => [
{
from => q(Any) ,
to => q(NFC) ,
},
]
},
] },
);
no Moo;
1;
|