From fbfbc7efc97fffd2eb94e06e608f423b4fd9d68d Mon Sep 17 00:00:00 2001 From: Ait Ouguengay Youssef Date: Sat, 18 Nov 2023 19:24:02 +0100 Subject: [PATCH 1/3] Create about.html --- about.html | 1 + 1 file changed, 1 insertion(+) create mode 100644 about.html diff --git a/about.html b/about.html new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/about.html @@ -0,0 +1 @@ + From 93dfa8e4db777bcaf034c99ce1a92fa0b8ebc1dd Mon Sep 17 00:00:00 2001 From: Agnagay Date: Sat, 18 Nov 2023 19:26:07 +0100 Subject: [PATCH 2/3] delete about file --- about.html | 1 - 1 file changed, 1 deletion(-) delete mode 100644 about.html diff --git a/about.html b/about.html deleted file mode 100644 index 8b13789..0000000 --- a/about.html +++ /dev/null @@ -1 +0,0 @@ - From fcea654082c226334301e696aca703846007fa3e Mon Sep 17 00:00:00 2001 From: Agnagay Date: Sat, 2 Dec 2023 14:54:23 +0100 Subject: [PATCH 3/3] updating the ripository to the last version 0.29 --- Changes | 50 +- MANIFEST | 74 +- META.json | 37 + META.yml | 36 +- Makefile.PL | 3 +- README | 23 +- lib/Lingua/Translit.pm | 79 +- lib/Lingua/Translit/Tables.pm | 86 +- t/30_tr_ISO-R_9_SR.t | 47 + t/31_tr_ISO_8859-16_RON.t | 41 + t/32_tr_IAST_Devanagari.t | 2180 ++++++++++++++++ t/33_tr_BGN-PCGN_RUS_Strict.t | 134 + t/34_tr_BGN-PCGN_RUS_Standard.t | 134 + t/90_zero.t | 87 + tools/substitute_tables.pl | 6 +- translit | 28 +- xml/Makefile | 7 +- xml/bgn-pcgn_rus_standard.xml | 575 +++++ xml/bgn-pcgn_rus_strict.xml | 795 ++++++ xml/devanagari_iast.xml | 446 ++++ xml/iast_devanagari.xml | 510 ++++ xml/iso-r_9.xml | 638 +++++ xml/iso_8859-16_ron.xml | 60 + xml/tables.dump | 4251 +++++++++++++++++++++++-------- xml/translit.dtd | 5 +- xml/xml2dump.pl | 7 +- 26 files changed, 9162 insertions(+), 1177 deletions(-) create mode 100644 META.json create mode 100644 t/30_tr_ISO-R_9_SR.t create mode 100644 t/31_tr_ISO_8859-16_RON.t create mode 100644 t/32_tr_IAST_Devanagari.t create mode 100644 t/33_tr_BGN-PCGN_RUS_Strict.t create mode 100644 t/34_tr_BGN-PCGN_RUS_Standard.t create mode 100644 t/90_zero.t create mode 100644 xml/bgn-pcgn_rus_standard.xml create mode 100644 xml/bgn-pcgn_rus_strict.xml create mode 100644 xml/devanagari_iast.xml create mode 100644 xml/iast_devanagari.xml create mode 100644 xml/iso-r_9.xml create mode 100644 xml/iso_8859-16_ron.xml diff --git a/Changes b/Changes index a0ace1c..ffcaa84 100644 --- a/Changes +++ b/Changes @@ -1,3 +1,51 @@ +0.29 -- 2022-06-15 + + * Fixed numeric zero and empty string argument handling in translit() & + translit_reverse(). + +0.28 -- 2017-10-16 + + * Fixed wrong capitalised Cyrillic A in several context rules of both + "BGN/PCGN RUS Standard" and "BGN/PCGN RUS Strict" - thanks to Nikola + Lečić for providing the fix! + * Spelling corrections in man page - thanks to Lucas Kanashiro for + providing a patch! + * Updated copyright (Netzum Sorglos Software GmbH). + +0.27 -- 2017-04-26 + + * Added "BGN/PCGN RUS Standard" and "BGN/PCGN RUS Strict" + transliterations. Thanks to Nikola Lečić for contributing these tables! + +0.26 -- 2016-05-23 + + * Spelling corrections in man page - thanks to Lucas Kanashiro for + providing a patch! + * Maintainership passed from Lingua-Systems to Netzum Sorglos. + * developer-manual__eng.pdf: removed - the documentation is now available + online (see link in Lingua::Translit's man page). + +0.25 -- 2016-04-05 + + * Changed license terms from GPL v2/Artistic to Perl's license terms. + * Added "IAST Devanagari" and "Devanagari IAST" transliterations. Thanks + to Philip Kime for contributing these tables! + +0.24 -- 2015-11-25 + + * Define POD encoding (UTF-8) - thanks to Lucas Kanashiro and + Mohammad Sajid Anwar for reporting this issue! + +0.23 -- 2015-11-23 + + * Added "ISO 8859-16 RON" transliteration. Thanks to Ștefan Suciu for + contributing this table! + +0.22 -- 2015-07-07 + + * Added "ISO/R 9" transliteration (ISO/R 9:1954). Thanks to Dusan Vuckovic + for contributing this table! + 0.21 -- 2014-10-24 * Added "Common ARA" Arabic transliteration. Thanks to Ahmed Elsheshtawy @@ -166,4 +214,4 @@ * ISO 843 * DIN 5008 -# vim: set sw=4 sts=4 ts=4 ai et ft=changelog: +# vim: set ft=changelog sw=4 sts=4 ts=4 ai et: diff --git a/MANIFEST b/MANIFEST index ffc6f18..0b96764 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1,33 +1,10 @@ +Changes +lib/Lingua/Translit.pm +lib/Lingua/Translit/Tables.pm Makefile.PL MANIFEST MANIFEST.SKIP -lib/Lingua/Translit.pm -lib/Lingua/Translit/Tables.pm -xml/ala-lc_rus.xml -xml/tables.dump -xml/Makefile -xml/translit.dtd -xml/template.xml -xml/xml2dump.pl -xml/iso_843.xml -xml/iso_9.xml -xml/greeklish.xml -xml/din_31634.xml -xml/common_ron.xml -xml/common_deu.xml -xml/common_ces.xml -xml/common_slv.xml -xml/common_slk.xml -xml/common_pol.xml -xml/common_ara.xml -xml/din_1460_bul.xml -xml/din_1460_rus.xml -xml/din_1460_ukr.xml -xml/streamlined_system_bul.xml -xml/gost_7-79_rus_old.xml -xml/gost_7-79_rus.xml -xml/gost_7-79_ukr.xml -t/xx_tr_template.t.pl +README t/01_Lingua-Translit-Tables.t t/02_Lingua-Translit.t t/03_translit.t @@ -50,9 +27,44 @@ t/26_tr_GOST_RUS.t t/27_tr_GOST_UKR.t t/28_tr_ALA-LC_RUS.t t/29_tr_Common_ARA.t +t/30_tr_ISO-R_9_SR.t +t/31_tr_ISO_8859-16_RON.t +t/32_tr_IAST_Devanagari.t +t/33_tr_BGN-PCGN_RUS_Strict.t +t/34_tr_BGN-PCGN_RUS_Standard.t tools/substitute_tables.pl -Changes -README translit -developer-manual__eng.pdf -META.yml Module meta-data (added by MakeMaker) +t/xx_tr_template.t.pl +xml/ala-lc_rus.xml +xml/bgn-pcgn_rus_standard.xml +xml/bgn-pcgn_rus_strict.xml +xml/common_ara.xml +xml/common_ces.xml +xml/common_deu.xml +xml/common_pol.xml +xml/common_ron.xml +xml/common_slk.xml +xml/common_slv.xml +xml/devanagari_iast.xml +xml/din_1460_bul.xml +xml/din_1460_rus.xml +xml/din_1460_ukr.xml +xml/din_31634.xml +xml/gost_7-79_rus_old.xml +xml/gost_7-79_rus.xml +xml/gost_7-79_ukr.xml +xml/greeklish.xml +xml/iast_devanagari.xml +xml/iso_843.xml +xml/iso_8859-16_ron.xml +xml/iso_9.xml +xml/iso-r_9.xml +xml/Makefile +xml/streamlined_system_bul.xml +xml/tables.dump +xml/template.xml +xml/translit.dtd +xml/xml2dump.pl +t/90_zero.t +META.yml Module YAML meta-data (added by MakeMaker) +META.json Module JSON meta-data (added by MakeMaker) diff --git a/META.json b/META.json new file mode 100644 index 0000000..bffef0b --- /dev/null +++ b/META.json @@ -0,0 +1,37 @@ +{ + "abstract" : "transliterates text between writing systems", + "author" : [ + "Alex Linke " + ], + "dynamic_config" : 1, + "generated_by" : "ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.150010", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : 2 + }, + "name" : "Lingua-Translit", + "no_index" : { + "directory" : [ + "t", + "inc" + ] + }, + "prereqs" : { + "build" : { + "requires" : { + "ExtUtils::MakeMaker" : "0" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "0" + } + } + }, + "release_status" : "stable", + "version" : "0.29", + "x_serialization_backend" : "JSON::PP version 2.97001" +} diff --git a/META.yml b/META.yml index 3b75de1..ebb64dd 100644 --- a/META.yml +++ b/META.yml @@ -1,21 +1,21 @@ ---- #YAML:1.0 -name: Lingua-Translit -version: 0.21 -abstract: transliterates text between writing systems +--- +abstract: 'transliterates text between writing systems' author: - - Alex Linke -license: unknown -distribution_type: module -configure_requires: - ExtUtils::MakeMaker: 0 + - 'Alex Linke ' build_requires: - ExtUtils::MakeMaker: 0 -requires: {} -no_index: - directory: - - t - - inc -generated_by: ExtUtils::MakeMaker version 6.57_05 + ExtUtils::MakeMaker: '0' +configure_requires: + ExtUtils::MakeMaker: '0' +dynamic_config: 1 +generated_by: 'ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.150010' +license: perl meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: 1.4 + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: '1.4' +name: Lingua-Translit +no_index: + directory: + - t + - inc +version: '0.29' +x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff --git a/Makefile.PL b/Makefile.PL index b679bbb..d127d75 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -8,9 +8,10 @@ use ExtUtils::MakeMaker; WriteMakefile( NAME => "Lingua::Translit", + LICENSE => "perl", VERSION_FROM => "lib/Lingua/Translit.pm", ABSTRACT_FROM => "lib/Lingua/Translit.pm", - AUTHOR => 'Alex Linke ', + AUTHOR => 'Alex Linke ', EXE_FILES => [ qw/translit/ ], PL_FILES => { 'tools/substitute_tables.pl' => 'blib/lib/Lingua/Translit/Tables.pm' diff --git a/README b/README index 9505e7e..1385f68 100644 --- a/README +++ b/README @@ -20,23 +20,18 @@ INSTALLATION To test and install Lingua::Translit, untar the archive and execute - perl Makefile.PL - make - make test - make install - - -CONTACT - -You are welcome to contact the authors at perl@lingua-systems.com -if you have any suggestions and contributions. + perl Makefile.PL + make + make test + make install COPYRIGHT AND LICENSE Copyright (C) 2007-2008 Alex Linke and Rona Linke -Copyright (C) 2009-2014 Lingua-Systems Software GmbH +Copyright (C) 2009-2016 Lingua-Systems Software GmbH +Copyright (C) 2016-2017 Netzum Sorglos, Lingua-Systems Software GmbH +Copyright (C) 2017-2022 Netzum Sorglos Software GmbH -This module is free software. It may be used, redistributed -and/or modified under the terms of either the GPL v2 or the -Artistic license. +This module is free software; you can redistribute it and/or modify it under +the same terms as Perl itself. diff --git a/lib/Lingua/Translit.pm b/lib/Lingua/Translit.pm index 7796ba0..8dbb42d 100644 --- a/lib/Lingua/Translit.pm +++ b/lib/Lingua/Translit.pm @@ -4,7 +4,9 @@ package Lingua::Translit; # Copyright (C) 2007-2008 ... # Alex Linke # Rona Linke -# Copyright (C) 2009-2014 Lingua-Systems Software GmbH +# Copyright (C) 2009-2016 Lingua-Systems Software GmbH +# Copyright (C) 2016-2017 Netzum Sorglos, Lingua-Systems Software GmbH +# Copyright (C) 2017-2022 Netzum Sorglos Software GmbH # use strict; @@ -17,10 +19,12 @@ use Encode qw/encode decode/; use Lingua::Translit::Tables; -our $VERSION = '0.21'; +our $VERSION = '0.29'; =pod +=encoding utf8 + =head1 NAME Lingua::Translit - transliterates text between writing systems @@ -48,7 +52,7 @@ writing system or alphabet to another one. The conversion is ideally unique, mapping one character to exactly one character, so the original spelling can be reconstructed. Practically this is not always the case and one single letter of the -original alpabet can be transcribed as two, three or even more letters. +original alphabet can be transcribed as two, three or even more letters. Furthermore there is more than one transliteration scheme for one writing system. @@ -58,11 +62,11 @@ reconstruct the original data. Reconstruction is a problem though for non-unique transliterations, if no language specific knowledge is available as the resulting clusters of -letters may be ambigous. +letters may be ambiguous. For example, the Greek character "PSI" maps to "ps", but "ps" could also result from the sequence "PI", "SIGMA" since "PI" maps to "p" and "SIGMA" maps to s. -If a transliteration table leads to ambigous conversions, the provided +If a transliteration table leads to ambiguous conversions, the provided table cannot be used reverse. Otherwise the table can be used in both directions, if appreciated. @@ -130,7 +134,8 @@ sub translit { my $text = shift(); # Return if no input was given - return unless $text; + return undef if ! defined $text; + return '' if $text eq ''; my $utf8_flag_on = Encode::is_utf8($text); @@ -178,7 +183,7 @@ sub translit { Transliterates the given text according to the object's transliteration table, but uses it the other way round. For example table ISO 9 is a -transliteration scheme for the converion of Cyrillic letters to the Latin +transliteration scheme for the conversion of Cyrillic letters to the Latin alphabet. So if used reverse, Latin letters will be mapped to Cyrillic ones. Returns the transliterated text. @@ -190,7 +195,8 @@ sub translit_reverse { my $text = shift(); # Return if no input was given - return unless $text; + return undef if ! defined $text; + return '' if $text eq ''; # Is this transliteration reversible? croak("$self->{name} cannot be reversed") unless $self->{reverse}; @@ -279,6 +285,8 @@ I, not reversible, ALA-LC:1997, Cyrillic to Latin, Russian I, reversible, ISO 9:1995, Cyrillic to Latin +I, reversible, ISO 9:1954, Cyrillic to Latin + I, reversible, DIN 1460:1982, Cyrillic to Latin, Russian I, reversible, DIN 1460:1982, Cyrillic to Latin, Ukrainian @@ -297,6 +305,12 @@ Latin with support for Old Russian (pre 1918), Russian I, reversible, GOST 7.79:2000 (table B), Cyrillic to Latin, Ukrainian +I, not reversible, BGN/PCGN:1947 (Standard Variant), +Cyrillic to Latin, Russian + +I, not reversible, BGN/PCGN:1947 (Strict Variant), +Cyrillic to Latin, Russian + =item Greek I, not reversible, ISO 843:1997, Greek to Latin @@ -319,19 +333,25 @@ I, not reversible, Slovak without diacritics I, not reversible, Slovenian without diacritics +I, reversible, Romanian with appropriate diacritics + =item Arabic I, not reversible, Common Romanization of Arabic +=item Sanskrit + +I, not reversible, IAST Romanization to Devanāgarī + +I, not reversible, Devanāgarī to IAST Romanization + =back =head1 ADDING NEW TRANSLITERATIONS In case you want to add your own transliteration tables to -L, have a look at the developer manual included in the -distribution. -An online version is available at -L. +L, have a look at the developer documentation at +L. A template of a transliteration table is provided as well (F) so you can easily start developing. @@ -352,15 +372,16 @@ converted internally. None known. -Please report bugs to perl@lingua-systems.com. +Please report bugs using CPAN's request tracker at +L. =head1 SEE ALSO L, L, L -L +C's manpage -L +L =head1 CREDITS @@ -373,24 +394,38 @@ transliteration table. Thanks to Ahmed Elsheshtawy for his help implementing the "Common ARA" Arabic transliteration. +Thanks to Dusan Vuckovic for contributing the "ISO/R 9" transliteration table. + +Thanks to Ștefan Suciu for contributing the "ISO 8859-16 RON" transliteration +table. + +Thanks to Philip Kime for contributing the "IAST Devanagari" and "Devanagari +IAST" transliteration tables. + +Thanks to Nikola Lečić for contributing the "BGN/PCGN RUS Standard" and +"BGN/PCGN RUS Strict" transliteration tables. + =head1 AUTHORS -Alex Linke +Alex Linke -Rona Linke +Rona Linke =head1 LICENSE AND COPYRIGHT Copyright (C) 2007-2008 Alex Linke and Rona Linke -Copyright (C) 2009-2014 Lingua-Systems Software GmbH +Copyright (C) 2009-2016 Lingua-Systems Software GmbH + +Copyright (C) 2016-2017 Netzum Sorglos, Lingua-Systems Software GmbH + +Copyright (C) 2017-2022 Netzum Sorglos Software GmbH -This module is free software. It may be used, redistributed -and/or modified under the terms of either the GPL v2 or the -Artistic license. +This module is free software; you can redistribute it and/or modify it under +the same terms as Perl itself. =cut 1; -# vim: sts=4 sw=4 ts=4 ai et +# vim: set ft=perl sts=4 sw=4 ts=4 ai et: diff --git a/lib/Lingua/Translit/Tables.pm b/lib/Lingua/Translit/Tables.pm index b68fc35..c22bed7 100644 --- a/lib/Lingua/Translit/Tables.pm +++ b/lib/Lingua/Translit/Tables.pm @@ -4,7 +4,9 @@ package Lingua::Translit::Tables; # Copyright (C) 2007-2008 ... # Alex Linke # Rona Linke -# Copyright (C) 2009-2014 Lingua-Systems Software GmbH +# Copyright (C) 2009-2016 Lingua-Systems Software GmbH +# Copyright (C) 2016-2017 Netzum Sorglos, Lingua-Systems Software GmbH +# Copyright (C) 2017-2022 Netzum Sorglos Software GmbH # use strict; @@ -13,12 +15,14 @@ use utf8; require 5.008; -our $VERSION = '0.10'; +our $VERSION = '0.28'; use Carp; =pod +=encoding utf8 + =head1 NAME Lingua::Translit::Tables - provides transliteration tables @@ -39,10 +43,10 @@ Lingua::Translit::Tables - provides transliteration tables =head1 DESCRIPTION This module is primary used to provide transliteration tables for -L and therefore allows to separate data and algorithm. +L and therefore allows one to separate data and algorithm. Beyond that, it provides routines to check if a given transliteration is -supported and allows to print a simple list of supported transliterations +supported and allows one to print a simple list of supported transliterations along with some meta information. =head1 EXPORTS @@ -60,7 +64,7 @@ Import all routines. =item B -Import all routines that allow to check if a given transliteration is +Import all routines that allow one to check if a given transliteration is supported: translit_supported() and translit_reverse_supported(). =item B @@ -153,8 +157,8 @@ sub translit_reverse_supported { =head2 B -Prints a list of all supported transliterations to STDOUT, providing the -following information: +Prints a list of all supported transliterations to STDOUT (UTF-8 encoded), +providing the following information: * Name * Reversibility @@ -165,11 +169,15 @@ The same information is provided in this document as well: =cut sub translit_list_supported { + require Encode; + foreach my $table ( sort keys %tables ) { - my $t = $tables{$table}; - print "$t->{name}, ", - ( $t->{reverse} eq "false" ? "not " : "" ), - "reversible, $t->{desc}\n"; + printf( + "%s, %sreversible, %s\n", + Encode::encode( 'utf8', $tables{$table}->{name} ), + ( $tables{$table}->{reverse} eq "false" ? 'not ' : '' ), + Encode::encode( 'utf8', $tables{$table}->{desc} ) + ); } } @@ -183,6 +191,8 @@ I, not reversible, ALA-LC:1997, Cyrillic to Latin, Russian I, reversible, ISO 9:1995, Cyrillic to Latin +I, reversible, ISO 9:1954, Cyrillic to Latin + I, reversible, DIN 1460:1982, Cyrillic to Latin, Russian I, reversible, DIN 1460:1982, Cyrillic to Latin, Ukrainian @@ -201,6 +211,12 @@ Latin with support for Old Russian (pre 1918), Russian I, reversible, GOST 7.79:2000 (table B), Cyrillic to Latin, Ukrainian +I, not reversible, BGN/PCGN:1947 (Standard Variant), +Cyrillic to Latin, Russian + +I, not reversible, BGN/PCGN:1947 (Strict Variant), +Cyrillic to Latin, Russian + =item Greek I, not reversible, ISO 843:1997, Greek to Latin @@ -223,35 +239,41 @@ I, not reversible, Slovak without diacritics I, not reversible, Slovenian without diacritics +I, reversible, Romanian with appropriate diacritics + =item Arabic I, not reversible, Common Romanization of Arabic +=item Sanskrit + +I, not reversible, IAST Romanization to Devanāgarī + +I, not reversible, Devanāgarī to IAST Romanization + =back =head1 ADDING NEW TRANSLITERATIONS In case you want to add your own transliteration tables to -L, have a look at the developer manual included in the -distribution. -An online version is available at -L. +L, have a look at the developer documentation at +L. A template of a transliteration table is provided as well (F) so you can easily start developing. - =head1 BUGS None known. -Please report bugs to perl@lingua-systems.com. +Please report bugs using CPAN's request tracker at +L. =head1 SEE ALSO L -L +L =head1 CREDITS @@ -265,21 +287,35 @@ transliteration table. Thanks to Ahmed Elsheshtawy for his help implementing the "Common ARA" Arabic transliteration. +Thanks to Dusan Vuckovic for contributing the "ISO/R 9" transliteration table. + +Thanks to Ștefan Suciu for contributing the "ISO 8859-16 RON" transliteration +table. + +Thanks to Philip Kime for contributing the "IAST Devanagari" and "Devanagari +IAST" transliteration tables. + +Thanks to Nikola Lečić for contributing the "BGN/PCGN RUS Standard" and +"BGN/PCGN RUS Strict" transliteration tables. + =head1 AUTHORS -Alex Linke +Alex Linke -Rona Linke +Rona Linke =head1 LICENSE AND COPYRIGHT Copyright (C) 2007-2008 Alex Linke and Rona Linke -Copyright (C) 2009-2014 Lingua-Systems Software GmbH +Copyright (C) 2009-2016 Lingua-Systems Software GmbH + +Copyright (C) 2016-2017 Netzum Sorglos, Lingua-Systems Software GmbH + +Copyright (C) 2017-2022 Netzum Sorglos Software GmbH -This module is free software. It may be used, redistributed -and/or modified under the terms of either the GPL v2 or the -Artistic license. +This module is free software; you can redistribute it and/or modify it under +the same terms as Perl itself. =cut @@ -301,4 +337,4 @@ sub _get_table_id { 1; -# vim: sts=4 sw=4 ts=4 ai et +# vim: set ft=perl sts=4 sw=4 ts=4 ai et: diff --git a/t/30_tr_ISO-R_9_SR.t b/t/30_tr_ISO-R_9_SR.t new file mode 100644 index 0000000..79271fd --- /dev/null +++ b/t/30_tr_ISO-R_9_SR.t @@ -0,0 +1,47 @@ +use strict; +use Test::More tests => 5; +use Encode qw/decode/; + +my $name = "ISO/R 9 - SR"; + +# Copyright (c) Zoran Radisavljević +my $pangram1 = "Њој пљачком згрћеш туђ ЦД, ВХС, беж филџан!"; +my $pangram1_ok = "Njoj pljačkom zgrćeš tuđ CD, VHS, bež fildžan!"; + +# Copyright (c) Rastko Ćirić +my $pangram2 = "Дебљој згужвах смеђ филц – њен шкрт џепчић."; +my $pangram2_ok = "Debljoj zgužvah smeđ filc – njen škrt džepčić."; + +# Copyright (c) Ivan Klajn +my $pangram3 = "Ђаче, уштеду плаћај жаљењем због џиновских цифара."; +my $pangram3_ok = "Đače, uštedu plaćaj žaljenjem zbog džinovskih cifara."; + +my $lower_case = "абвгдђежзијклљмнњопрстћуфхцчџш"; +my $lower_case_ok = "abvgdđežzijklljmnnjoprstćufhcčdžš"; + +my $upper_case = "АБВГДЂЕЖЗИЈКЛЉМНЊОПРСТЋУФХЦЧЏШ"; +my $upper_case_ok = "ABVGDĐEŽZIJKLLJMNNJOPRSTĆUFHCČDŽŠ"; + +use Lingua::Translit; + +my $tr = new Lingua::Translit("ISO/R 9"); + +# 1 +my $output = $tr->translit($pangram1); +is($output, $pangram1_ok, "$name: Serbian pangram (33) transliteration"); + +# 2 +$output = $tr->translit($pangram2); +is($output, $pangram2_ok, "$name: Serbian pangram (34) transliteration"); + +# 3 +$output = $tr->translit($pangram3); +is($output, $pangram3_ok, "$name: Serbian pangram (42) transliteration"); + +# 4 +$output = $tr->translit($lower_case); +is($output, $lower_case_ok, "$name: lower case alphabet"); + +# 5 +$output = $tr->translit($upper_case); +is($output, $upper_case_ok, "$name: upper case alphabet"); diff --git a/t/31_tr_ISO_8859-16_RON.t b/t/31_tr_ISO_8859-16_RON.t new file mode 100644 index 0000000..50bad8b --- /dev/null +++ b/t/31_tr_ISO_8859-16_RON.t @@ -0,0 +1,41 @@ +use strict; +require 5.008; +use utf8; +use Encode; +use Test::More tests => 3; + +use Lingua::Translit; + +my $name = "ISO 8859-16 RON"; + +# Taken from http://www.unhchr.ch/udhr/lang/rum.htm +my $text_cedila = "Fiecare om se poate prevala de toate drepturile şi ". + "libertăţile proclamate în prezenta Declaraţie fără ". + "nici un fel de deosebire ca, de pildă, deosebirea ". + "de rasă, culoare, sex, limbă, religie, opinie ". + "politică sau orice altă opinie, de origine ". + "naţională sau socială, avere, naştere sau orice ". + "alte împrejurări."; + +my $text_comma = "Fiecare om se poate prevala de toate drepturile și ". + "libertățile proclamate în prezenta Declarație fără ". + "nici un fel de deosebire ca, de pildă, deosebirea ". + "de rasă, culoare, sex, limbă, religie, opinie ". + "politică sau orice altă opinie, de origine ". + "națională sau socială, avere, naștere sau orice ". + "alte împrejurări."; + +my $tr = Lingua::Translit->new($name); + +# 1 +is $tr->can_reverse(), 1, "$name: is reversible"; + +my $o = $tr->translit($text_cedila); + +# 2 +is $o, $text_comma, "$name: UDOHR transliteration"; + +my $r = $tr->translit_reverse($text_comma); + +# 3 +is $r, $text_cedila, "$name: UDOHR transliteration (reverse)"; diff --git a/t/32_tr_IAST_Devanagari.t b/t/32_tr_IAST_Devanagari.t new file mode 100644 index 0000000..e8c2053 --- /dev/null +++ b/t/32_tr_IAST_Devanagari.t @@ -0,0 +1,2180 @@ +use strict; +use Lingua::Translit; +use Test::More tests => 2; +use utf8; + +$/ = undef; + +my $bhagavad_gita = ; + +my $t = new Lingua::Translit( 'IAST Devanagari' ); +my $tr = new Lingua::Translit( 'Devanagari IAST' ); +my $bgout = $tr->translit($t->translit($bhagavad_gita)); + +my @input = qw/ + a ā i ī u ū ṛ ṝ ḷ ḹ e ai o au ṃ aṃ ḥ aḥ ka kā ki kī ku kū + kṛ kṝ kḷ kḹ ke kai ko kau kha ga gha ṅa ca cha ja jha ña + ṭa ṭha ḍa ḍha ṇa ta tha da dha na pa pha ba bha ma ya ra + la va śa ṣa sa ha bh + /; +my $output = 'अ आ इ ई उ ऊ ऋ ॠ ऌ ॡ ए ऐ ओ औ ं अं ः अः क का कि की कु कू कृ कॄ कॢ कॣ के' . + ' कै को कौ ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल ' . + 'व श ष स ह भ्'; + +is($output, join(' ', map {$t->translit($_)} @input) , "IAST -> Devanagari"); + +# This tests a complete round-trip of transliterating the Bhagavad Gita from +# IAST to Devanāgarī and back to IAST +is($bgout, $bhagavad_gita, "IAST -> Devanagari -> IAST"); + + +__DATA__ +dhṛtarāṣṭra uvāca +dharmakṣetre kurukṣetre samavetā yuyutsavaḥ +māmakāḥ pāṇḍavāś caiva kim akurvata saṃjaya + +saṃjaya uvāca +dṛṣṭvā tu pāṇḍavānīkaṃ vyūḍhaṃ duryodhanas tadā +ācāryam upasaṃgamya rājā vacanam abravīt + +paśyaitāṃ pāṇḍuputrāṇām ācārya mahatīṃ camūm +vyūḍhāṃ drupadaputreṇa tava śiṣyeṇa dhīmatā + +atra śūrā maheṣvāsā bhīmārjunasamā yudhi +yuyudhāno virāṭaś ca drupadaś ca mahārathaḥ + +dhṛṣṭaketuś cekitānaḥ kāśirājaś ca vīryavān +purujit kuntibhojaś ca śaibyaś ca narapuṃgavaḥ + +yudhāmanyuś ca vikrānta uttamaujāś ca vīryavān +saubhadro draupadeyāś ca sarva eva mahārathāḥ + +asmākaṃ tu viśiṣṭā ye tān nibodha dvijottama +nāyakā mama sainyasya saṃjñārthaṃ tān bravīmi te + +bhavān bhīṣmaś ca karṇaś ca kṛpaś ca samitiṃjayaḥ +aśvatthāmā vikarṇaś ca saumadattis tathaiva ca + +anye ca bahavaḥ śūrā madarthe tyaktajīvitāḥ +nānāśastrapraharaṇāḥ sarve yuddhaviśāradāḥ + +aparyāptaṃ tad asmākaṃ balaṃ bhīṣmābhirakṣitam +paryāptaṃ tv idam eteṣāṃ balaṃ bhīmābhirakṣitam + +ayaneṣu ca sarveṣu yathābhāgam avasthitāḥ +bhīṣmam evābhirakṣantu bhavantaḥ sarva eva hi + +tasya saṃjanayan harṣaṃ kuruvṛddhaḥ pitāmahaḥ +siṃhanādaṃ vinadyoccaiḥ śaṅkhaṃ dadhmau pratāpavān + +tataḥ śaṅkhāś ca bheryaś ca paṇavānakagomukhāḥ +sahasaivābhyahanyanta sa śabdas tumulo 'bhavat + +tataḥ śvetair hayair yukte mahati syandane sthitau +mādhavaḥ pāṇḍavaś caiva divyau śaṅkhau pradadhmatuḥ + +pāñcajanyaṃ hṛṣīkeśo devadattaṃ dhanaṃjayaḥ +pauṇḍraṃ dadhmau mahāśaṅkhaṃ bhīmakarmā vṛkodaraḥ + +anantavijayaṃ rājā kuntīputro yudhiṣṭhiraḥ +nakulaḥ sahadevaś ca sughoṣamaṇipuṣpakau + +kāśyaś ca parameṣvāsaḥ śikhaṇḍī ca mahārathaḥ +dhṛṣṭadyumno virāṭaś ca sātyakiś cāparājitaḥ + +drupado draupadeyāś ca sarvaśaḥ pṛthivīpate +saubhadraś ca mahābāhuḥ śaṅkhān dadhmuḥ pṛthak pṛthak + +sa ghoṣo dhārtarāṣṭrāṇāṃ hṛdayāni vyadārayat +nabhaś ca pṛthivīṃ caiva tumulo vyanunādayan + +atha vyavasthitān dṛṣṭvā dhārtarāṣṭrān kapidhvajaḥ +pravṛtte śastrasaṃpāte dhanur udyamya pāṇḍavaḥ + +hṛṣīkeśaṃ tadā vākyam idam āha mahīpate +senayor ubhayor madhye rathaṃ sthāpaya me 'cyuta + +yāvad etān nirīkṣe 'haṃ yoddhukāmān avasthitān +kair mayā saha yoddhavyam asmin raṇasamudyame + +yotsyamānān avekṣe 'haṃ ya ete 'tra samāgatāḥ +dhārtarāṣṭrasya durbuddher yuddhe priyacikīrṣavaḥ + +evam ukto hṛṣīkeśo guḍākeśena bhārata +senayor ubhayor madhye sthāpayitvā rathottamam + +bhīṣmadroṇapramukhataḥ sarveṣāṃ ca mahīkṣitām +uvāca pārtha paśyaitān samavetān kurūn iti + +tatrāpaśyat sthitān pārthaḥ pitṝn atha pitāmahān +ācāryān mātulān bhrātṝn putrān pautrān sakhīṃs tathā + +śvaśurān suhṛdaś caiva senayor ubhayor api +tān samīkṣya sa kaunteyaḥ sarvān bandhūn avasthitān + +kṛpayā parayāviṣṭo viṣīdann idam abravīt +dṛṣṭvemān svajanān kṛṣṇa yuyutsūn samavasthitān + +sīdanti mama gātrāṇi mukhaṃ ca pariśuṣyati +vepathuś ca śarīre me romaharṣaś ca jāyate + +gāṇḍīvaṃ sraṃsate hastāt tvak caiva paridahyate +na ca śaknomy avasthātuṃ bhramatīva ca me manaḥ + +nimittāni ca paśyāmi viparītāni keśava +na ca śreyo 'nupaśyāmi hatvā svajanam āhave + +na kāṅkṣe vijayaṃ kṛṣṇa na ca rājyaṃ sukhāni ca +kiṃ no rājyena govinda kiṃ bhogair jīvitena vā + +yeṣām arthe kāṅkṣitaṃ no rājyaṃ bhogāḥ sukhāni ca +ta ime 'vasthitā yuddhe prāṇāṃs tyaktvā dhanāni ca + +ācāryāḥ pitaraḥ putrās tathaiva ca pitāmahāḥ +mātulāḥ śvaśurāḥ pautrāḥ syālāḥ saṃbandhinas tathā + +etān na hantum icchāmi ghnato 'pi madhusūdana +api trailokyarājyasya hetoḥ kiṃ nu mahīkṛte + +nihatya dhārtarāṣṭrān naḥ kā prītiḥ syāj janārdana +pāpam evāśrayed asmān hatvaitān ātatāyinaḥ + +tasmān nārhā vayaṃ hantuṃ dhārtarāṣṭrān sabāndhavān +svajanaṃ hi kathaṃ hatvā sukhinaḥ syāma mādhava + +yady apy ete na paśyanti lobhopahatacetasaḥ +kulakṣayakṛtaṃ doṣaṃ mitradrohe ca pātakam + +kathaṃ na jñeyam asmābhiḥ pāpād asmān nivartitum +kulakṣayakṛtaṃ doṣaṃ prapaśyadbhir janārdana + +kulakṣaye praṇaśyanti kuladharmāḥ sanātanāḥ +dharme naṣṭe kulaṃ kṛtsnam adharmo 'bhibhavaty uta + +adharmābhibhavāt kṛṣṇa praduṣyanti kulastriyaḥ +strīṣu duṣṭāsu vārṣṇeya jāyate varṇasaṃkaraḥ + +saṃkaro narakāyaiva kulaghnānāṃ kulasya ca +patanti pitaro hy eṣāṃ luptapiṇḍodakakriyāḥ + +doṣair etaiḥ kulaghnānāṃ varṇasaṃkarakārakaiḥ +utsādyante jātidharmāḥ kuladharmāś ca śāśvatāḥ + +utsannakuladharmāṇāṃ manuṣyāṇāṃ janārdana +narake niyataṃ vāso bhavatīty anuśuśruma + +aho bata mahat pāpaṃ kartuṃ vyavasitā vayam +yad rājyasukhalobhena hantuṃ svajanam udyatāḥ + +yadi mām apratīkāram aśastraṃ śastrapāṇayaḥ +dhārtarāṣṭrā raṇe hanyus tan me kṣemataraṃ bhavet + +evam uktvārjunaḥ saṃkhye rathopastha upāviśat +visṛjya saśaraṃ cāpaṃ śokasaṃvignamānasaḥ + +saṃjaya uvāca +taṃ tathā kṛpayāviṣṭam aśrupūrṇākulekṣaṇam +viṣīdantam idaṃ vākyam uvāca madhusūdanaḥ + +śrībhagavān uvāca +kutas tvā kaśmalam idaṃ viṣame samupasthitam +anāryajuṣṭam asvargyam akīrtikaram arjuna + +klaibyaṃ mā sma gamaḥ pārtha naitat tvayy upapadyate +kṣudraṃ hṛdayadaurbalyaṃ tyaktvottiṣṭha paraṃtapa + +arjuna uvāca +kathaṃ bhīṣmam ahaṃ saṃkhye droṇaṃ ca madhusūdana +iṣubhiḥ pratiyotsyāmi pūjārhāv arisūdana + +gurūn ahatvā hi mahānubhāvāñ; śreyo bhoktuṃ bhaikṣam apīha loke +hatvārthakāmāṃs tu gurūn ihaiva; bhuñjīya bhogān rudhirapradigdhān + +na caitad vidmaḥ kataran no garīyo; yad vā jayema yadi vā no jayeyuḥ +yān eva hatvā na jijīviṣāmas; te 'vasthitāḥ pramukhe dhārtarāṣṭrāḥ + +kārpaṇyadoṣopahatasvabhāvaḥ; pṛcchāmi tvāṃ dharmasaṃmūḍhacetāḥ +yac chreyaḥ syān niścitaṃ brūhi tan me; śiṣyas te 'haṃ śādhi māṃ tvāṃ prapannam + +na hi prapaśyāmi mamāpanudyād; yac chokam ucchoṣaṇam indriyāṇām +avāpya bhūmāv asapatnam ṛddhaṃ; rājyaṃ surāṇām api cādhipatyam + +saṃjaya uvāca +evam uktvā hṛṣīkeśaṃ guḍākeśaḥ paraṃtapa +na yotsya iti govindam uktvā tūṣṇīṃ babhūva ha + +tam uvāca hṛṣīkeśaḥ prahasann iva bhārata +senayor ubhayor madhye viṣīdantam idaṃ vacaḥ + +śrībhagavān uvāca +aśocyān anvaśocas tvaṃ prajñāvādāṃś ca bhāṣase +gatāsūn agatāsūṃś ca nānuśocanti paṇḍitāḥ + +na tv evāhaṃ jātu nāsaṃ na tvaṃ neme janādhipāḥ +na caiva na bhaviṣyāmaḥ sarve vayam ataḥ param + +dehino 'smin yathā dehe kaumāraṃ yauvanaṃ jarā +tathā dehāntaraprāptir dhīras tatra na muhyati + +mātrāsparśās tu kaunteya śītoṣṇasukhaduḥkhadāḥ +āgamāpāyino 'nityās tāṃs titikṣasva bhārata + +yaṃ hi na vyathayanty ete puruṣaṃ puruṣarṣabha +samaduḥkhasukhaṃ dhīraṃ so 'mṛtatvāya kalpate + +nāsato vidyate bhāvo nābhāvo vidyate sataḥ +ubhayor api dṛṣṭo 'ntas tv anayos tattvadarśibhiḥ + +avināśi tu tad viddhi yena sarvam idaṃ tatam +vināśam avyayasyāsya na kaś cit kartum arhati + +antavanta ime dehā nityasyoktāḥ śarīriṇaḥ +anāśino 'prameyasya tasmād yudhyasva bhārata + +ya enaṃ vetti hantāraṃ yaś cainaṃ manyate hatam +ubhau tau na vijānīto nāyaṃ hanti na hanyate + +na jāyate mriyate vā kadā cin; nāyaṃ bhūtvā bhavitā vā na bhūyaḥ +ajo nityaḥ śāśvato 'yaṃ purāṇo; na hanyate hanyamāne śarīre + +vedāvināśinaṃ nityaṃ ya enam ajam avyayam +kathaṃ sa puruṣaḥ pārtha kaṃ ghātayati hanti kam + +vāsāṃsi jīrṇāni yathā vihāya; navāni gṛhṇāti naro 'parāṇi +tathā śarīrāṇi vihāya jīrṇāny; anyāni saṃyāti navāni dehī + +nainaṃ chindanti śastrāṇi nainaṃ dahati pāvakaḥ +na cainaṃ kledayanty āpo na śoṣayati mārutaḥ + +acchedyo 'yam adāhyo 'yam akledyo 'śoṣya eva ca +nityaḥ sarvagataḥ sthāṇur acalo 'yaṃ sanātanaḥ + +avyakto 'yam acintyo 'yam avikāryo 'yam ucyate +tasmād evaṃ viditvainaṃ nānuśocitum arhasi +atha cainaṃ nityajātaṃ nityaṃ vā manyase mṛtam +tathāpi tvaṃ mahābāho nainaṃ śocitum arhasi + +jātasya hi dhruvo mṛtyur dhruvaṃ janma mṛtasya ca +tasmād aparihārye 'rthe na tvaṃ śocitum arhasi + +avyaktādīni bhūtāni vyaktamadhyāni bhārata +avyaktanidhanāny eva tatra kā paridevanā + +āścaryavat paśyati kaś cid enam; āścaryavad vadati tathaiva cānyaḥ +āścaryavac cainam anyaḥ śṛṇoti; śrutvāpy enaṃ veda na caiva kaś cit +dehī nityam avadhyo 'yaṃ dehe sarvasya bhārata +tasmāt sarvāṇi bhūtāni na tvaṃ śocitum arhasi + +svadharmam api cāvekṣya na vikampitum arhasi +dharmyād dhi yuddhāc chreyo 'nyat kṣatriyasya na vidyate + +yadṛcchayā copapannaṃ svargadvāram apāvṛtam +sukhinaḥ kṣatriyāḥ pārtha labhante yuddham īdṛśam + +atha cet tvam imaṃ dharmyaṃ saṃgrāmaṃ na kariṣyasi +tataḥ svadharmaṃ kīrtiṃ ca hitvā pāpam avāpsyasi + +akīrtiṃ cāpi bhūtāni kathayiṣyanti te 'vyayām +saṃbhāvitasya cākīrtir maraṇād atiricyate + +bhayād raṇād uparataṃ maṃsyante tvāṃ mahārathāḥ +yeṣāṃ ca tvaṃ bahumato bhūtvā yāsyasi lāghavam + +avācyavādāṃś ca bahūn vadiṣyanti tavāhitāḥ +nindantas tava sāmarthyaṃ tato duḥkhataraṃ nu kim + +hato vā prāpsyasi svargaṃ jitvā vā bhokṣyase mahīm +tasmād uttiṣṭha kaunteya yuddhāya kṛtaniścayaḥ + +sukhaduḥkhe same kṛtvā lābhālābhau jayājayau +tato yuddhāya yujyasva naivaṃ pāpam avāpsyasi + +eṣā te 'bhihitā sāṃkhye buddhir yoge tv imāṃ śṛṇu +buddhyā yukto yayā pārtha karmabandhaṃ prahāsyasi + +nehābhikramanāśo 'sti pratyavāyo na vidyate +svalpam apy asya dharmasya trāyate mahato bhayāt + +vyavasāyātmikā buddhir ekeha kurunandana +bahuśākhā hy anantāś ca buddhayo 'vyavasāyinām + +yām imāṃ puṣpitāṃ vācaṃ pravadanty avipaścitaḥ +vedavādaratāḥ pārtha nānyad astīti vādinaḥ + +kāmātmānaḥ svargaparā janmakarmaphalapradām +kriyāviśeṣabahulāṃ bhogaiśvaryagatiṃ prati + +bhogaiśvaryaprasaktānāṃ tayāpahṛtacetasām +vyavasāyātmikā buddhiḥ samādhau na vidhīyate + +traiguṇyaviṣayā vedā nistraiguṇyo bhavārjuna +nirdvaṃdvo nityasattvastho niryogakṣema ātmavān + +yāvān artha udapāne sarvataḥ saṃplutodake +tāvān sarveṣu vedeṣu brāhmaṇasya vijānataḥ + +karmaṇy evādhikāras te mā phaleṣu kadā cana +mā karmaphalahetur bhūr mā te saṅgo 'stv akarmaṇi + +yogasthaḥ kuru karmāṇi saṅgaṃ tyaktvā dhanaṃjaya +siddhyasiddhyoḥ samo bhūtvā samatvaṃ yoga ucyate + +dūreṇa hy avaraṃ karma buddhiyogād dhanaṃjaya +buddhau śaraṇam anviccha kṛpaṇāḥ phalahetavaḥ + +buddhiyukto jahātīha ubhe sukṛtaduṣkṛte +tasmād yogāya yujyasva yogaḥ karmasu kauśalam + +karmajaṃ buddhiyuktā hi phalaṃ tyaktvā manīṣiṇaḥ +janmabandhavinirmuktāḥ padaṃ gacchanty anāmayam + +yadā te mohakalilaṃ buddhir vyatitariṣyati +tadā gantāsi nirvedaṃ śrotavyasya śrutasya ca + +śrutivipratipannā te yadā sthāsyati niścalā +samādhāv acalā buddhis tadā yogam avāpsyasi + +arjuna uvāca +sthitaprajñasya kā bhāṣā samādhisthasya keśava +sthitadhīḥ kiṃ prabhāṣeta kim āsīta vrajeta kim + +śrībhagavān uvāca +prajahāti yadā kāmān sarvān pārtha manogatān +ātmany evātmanā tuṣṭaḥ sthitaprajñas tadocyate + +duḥkheṣv anudvignamanāḥ sukheṣu vigataspṛhaḥ +vītarāgabhayakrodhaḥ sthitadhīr munir ucyate + +yaḥ sarvatrānabhisnehas tat tat prāpya śubhāśubham +nābhinandati na dveṣṭi tasya prajñā pratiṣṭhitā + +yadā saṃharate cāyaṃ kūrmo 'ṅgānīva sarvaśaḥ +indriyāṇīndriyārthebhyas tasya prajñā pratiṣṭhitā + +viṣayā vinivartante nirāhārasya dehinaḥ +rasavarjaṃ raso 'py asya paraṃ dṛṣṭvā nivartate + +yatato hy api kaunteya puruṣasya vipaścitaḥ +indriyāṇi pramāthīni haranti prasabhaṃ manaḥ + +tāni sarvāṇi saṃyamya yukta āsīta matparaḥ +vaśe hi yasyendriyāṇi tasya prajñā pratiṣṭhitā + +dhyāyato viṣayān puṃsaḥ saṅgas teṣūpajāyate +saṅgāt saṃjāyate kāmaḥ kāmāt krodho 'bhijāyate + +krodhād bhavati saṃmohaḥ saṃmohāt smṛtivibhramaḥ +smṛtibhraṃśād buddhināśo buddhināśāt praṇaśyati + +rāgadveṣaviyuktais tu viṣayān indriyaiś caran +ātmavaśyair vidheyātmā prasādam adhigacchati + +prasāde sarvaduḥkhānāṃ hānir asyopajāyate +prasannacetaso hy āśu buddhiḥ paryavatiṣṭhate + +nāsti buddhir ayuktasya na cāyuktasya bhāvanā +na cābhāvayataḥ śāntir aśāntasya kutaḥ sukham + +indriyāṇāṃ hi caratāṃ yan mano 'nuvidhīyate +tad asya harati prajñāṃ vāyur nāvam ivāmbhasi + +tasmād yasya mahābāho nigṛhītāni sarvaśaḥ +indriyāṇīndriyārthebhyas tasya prajñā pratiṣṭhitā + +yā niśā sarvabhūtānāṃ tasyāṃ jāgarti saṃyamī +yasyāṃ jāgrati bhūtāni sā niśā paśyato muneḥ + +āpūryamāṇam acalapratiṣṭhaṃ; samudram āpaḥ praviśanti yadvat +tadvat kāmā yaṃ praviśanti sarve; sa śāntim āpnoti na kāmakāmī + +vihāya kāmān yaḥ sarvān pumāṃś carati niḥspṛhaḥ +nirmamo nirahaṃkāraḥ sa śāntim adhigacchati + +eṣā brāhmī sthitiḥ pārtha naināṃ prāpya vimuhyati +sthitvāsyām antakāle 'pi brahmanirvāṇam ṛcchati + +arjuna uvāca +jyāyasī cet karmaṇas te matā buddhir janārdana +tat kiṃ karmaṇi ghore māṃ niyojayasi keśava + +vyāmiśreṇaiva vākyena buddhiṃ mohayasīva me +tad ekaṃ vada niścitya yena śreyo 'ham āpnuyām + +śrībhagavān uvāca +loke 'smin dvividhā niṣṭhā purā proktā mayānagha +jñānayogena sāṃkhyānāṃ karmayogena yoginām + +na karmaṇām anārambhān naiṣkarmyaṃ puruṣo 'śnute +na ca saṃnyasanād eva siddhiṃ samadhigacchati + +na hi kaś cit kṣaṇam api jātu tiṣṭhaty akarmakṛt +kāryate hy avaśaḥ karma sarvaḥ prakṛtijair guṇaiḥ + +karmendriyāṇi saṃyamya ya āste manasā smaran +indriyārthān vimūḍhātmā mithyācāraḥ sa ucyate + +yas tv indriyāṇi manasā niyamyārabhate 'rjuna +karmendriyaiḥ karmayogam asaktaḥ sa viśiṣyate + +niyataṃ kuru karma tvaṃ karma jyāyo hy akarmaṇaḥ +śarīrayātrāpi ca te na prasidhyed akarmaṇaḥ + +yajñārthāt karmaṇo 'nyatra loko 'yaṃ karmabandhanaḥ +tadarthaṃ karma kaunteya muktasaṅgaḥ samācara + +sahayajñāḥ prajāḥ sṛṣṭvā purovāca prajāpatiḥ +anena prasaviṣyadhvam eṣa vo 'stv iṣṭakāmadhuk + +devān bhāvayatānena te devā bhāvayantu vaḥ +parasparaṃ bhāvayantaḥ śreyaḥ param avāpsyatha + +iṣṭān bhogān hi vo devā dāsyante yajñabhāvitāḥ +tair dattān apradāyaibhyo yo bhuṅkte stena eva saḥ + +yajñaśiṣṭāśinaḥ santo mucyante sarvakilbiṣaiḥ +bhuñjate te tv aghaṃ pāpā ye pacanty ātmakāraṇāt + +annād bhavanti bhūtāni parjanyād annasaṃbhavaḥ +yajñād bhavati parjanyo yajñaḥ karmasamudbhavaḥ + +karma brahmodbhavaṃ viddhi brahmākṣarasamudbhavam +tasmāt sarvagataṃ brahma nityaṃ yajñe pratiṣṭhitam + +evaṃ pravartitaṃ cakraṃ nānuvartayatīha yaḥ +aghāyur indriyārāmo moghaṃ pārtha sa jīvati + +yas tv ātmaratir eva syād ātmatṛptaś ca mānavaḥ +ātmany eva ca saṃtuṣṭas tasya kāryaṃ na vidyate + +naiva tasya kṛtenārtho nākṛteneha kaś cana +na cāsya sarvabhūteṣu kaś cid arthavyapāśrayaḥ + +tasmād asaktaḥ satataṃ kāryaṃ karma samācara +asakto hy ācaran karma param āpnoti pūruṣaḥ + +karmaṇaiva hi saṃsiddhim āsthitā janakādayaḥ +lokasaṃgraham evāpi saṃpaśyan kartum arhasi + +yad yad ācarati śreṣṭhas tat tad evetaro janaḥ +sa yat pramāṇaṃ kurute lokas tad anuvartate + +na me pārthāsti kartavyaṃ triṣu lokeṣu kiṃ cana +nānavāptam avāptavyaṃ varta eva ca karmaṇi + +yadi hy ahaṃ na varteyaṃ jātu karmaṇy atandritaḥ +mama vartmānuvartante manuṣyāḥ pārtha sarvaśaḥ + +utsīdeyur ime lokā na kuryāṃ karma ced aham +saṃkarasya ca kartā syām upahanyām imāḥ prajāḥ + +saktāḥ karmaṇy avidvāṃso yathā kurvanti bhārata +kuryād vidvāṃs tathāsaktaś cikīrṣur lokasaṃgraham + +na buddhibhedaṃ janayed ajñānāṃ karmasaṅginām +joṣayet sarvakarmāṇi vidvān yuktaḥ samācaran + +prakṛteḥ kriyamāṇāni guṇaiḥ karmāṇi sarvaśaḥ +ahaṃkāravimūḍhātmā kartāham iti manyate + +tattvavit tu mahābāho guṇakarmavibhāgayoḥ +guṇā guṇeṣu vartanta iti matvā na sajjate + +prakṛter guṇasaṃmūḍhāḥ sajjante guṇakarmasu +tān akṛtsnavido mandān kṛtsnavin na vicālayet + +mayi sarvāṇi karmāṇi saṃnyasyādhyātmacetasā +nirāśīr nirmamo bhūtvā yudhyasva vigatajvaraḥ + +ye me matam idaṃ nityam anutiṣṭhanti mānavāḥ +śraddhāvanto 'nasūyanto mucyante te 'pi karmabhiḥ + +ye tv etad abhyasūyanto nānutiṣṭhanti me matam +sarvajñānavimūḍhāṃs tān viddhi naṣṭān acetasaḥ + +sadṛśaṃ ceṣṭate svasyāḥ prakṛter jñānavān api +prakṛtiṃ yānti bhūtāni nigrahaḥ kiṃ kariṣyati + +indriyasyendriyasyārthe rāgadveṣau vyavasthitau +tayor na vaśam āgacchet tau hy asya paripanthinau + +śreyān svadharmo viguṇaḥ paradharmāt svanuṣṭhitāt +svadharme nidhanaṃ śreyaḥ paradharmo bhayāvahaḥ + +arjuna uvāca +atha kena prayukto 'yaṃ pāpaṃ carati pūruṣaḥ +anicchann api vārṣṇeya balād iva niyojitaḥ + +śrībhagavān uvāca +kāma eṣa krodha eṣa rajoguṇasamudbhavaḥ +mahāśano mahāpāpmā viddhy enam iha vairiṇam + +dhūmenāvriyate vahnir yathādarśo malena ca +yatholbenāvṛto garbhas tathā tenedam āvṛtam + +āvṛtaṃ jñānam etena jñānino nityavairiṇā +kāmarūpeṇa kaunteya duṣpūreṇānalena ca + +indriyāṇi mano buddhir asyādhiṣṭhānam ucyate +etair vimohayaty eṣa jñānam āvṛtya dehinam + +tasmāt tvam indriyāṇy ādau niyamya bharatarṣabha +pāpmānaṃ prajahihy enaṃ jñānavijñānanāśanam + +indriyāṇi parāṇy āhur indriyebhyaḥ paraṃ manaḥ +manasas tu parā buddhir yo buddheḥ paratas tu saḥ + +evaṃ buddheḥ paraṃ buddhvā saṃstabhyātmānam ātmanā +jahi śatruṃ mahābāho kāmarūpaṃ durāsadam + +śrībhagavān uvāca +imaṃ vivasvate yogaṃ proktavān aham avyayam +vivasvān manave prāha manur ikṣvākave 'bravīt + +evaṃ paraṃparāprāptam imaṃ rājarṣayo viduḥ +sa kāleneha mahatā yogo naṣṭaḥ paraṃtapa + +sa evāyaṃ mayā te 'dya yogaḥ proktaḥ purātanaḥ +bhakto 'si me sakhā ceti rahasyaṃ hy etad uttamam + +arjuna uvāca +aparaṃ bhavato janma paraṃ janma vivasvataḥ +katham etad vijānīyāṃ tvam ādau proktavān iti + +śrībhagavān uvāca +bahūni me vyatītāni janmāni tava cārjuna +tāny ahaṃ veda sarvāṇi na tvaṃ vettha paraṃtapa + +ajo 'pi sann avyayātmā bhūtānām īśvaro 'pi san +prakṛtiṃ svām adhiṣṭhāya saṃbhavāmy ātmamāyayā + +yadā yadā hi dharmasya glānir bhavati bhārata +abhyutthānam adharmasya tadātmānaṃ sṛjāmy aham + +paritrāṇāya sādhūnāṃ vināśāya ca duṣkṛtām +dharmasaṃsthāpanārthāya saṃbhavāmi yuge yuge + +janma karma ca me divyam evaṃ yo vetti tattvataḥ +tyaktvā dehaṃ punarjanma naiti mām eti so 'rjuna + +vītarāgabhayakrodhā manmayā mām upāśritāḥ +bahavo jñānatapasā pūtā madbhāvam āgatāḥ + +ye yathā māṃ prapadyante tāṃs tathaiva bhajāmy aham +mama vartmānuvartante manuṣyāḥ pārtha sarvaśaḥ + +kāṅkṣantaḥ karmaṇāṃ siddhiṃ yajanta iha devatāḥ +kṣipraṃ hi mānuṣe loke siddhir bhavati karmajā + +cāturvarṇyaṃ mayā sṛṣṭaṃ guṇakarmavibhāgaśaḥ +tasya kartāram api māṃ viddhy akartāram avyayam + +na māṃ karmāṇi limpanti na me karmaphale spṛhā +iti māṃ yo 'bhijānāti karmabhir na sa badhyate + +evaṃ jñātvā kṛtaṃ karma pūrvair api mumukṣubhiḥ +kuru karmaiva tasmāt tvaṃ pūrvaiḥ pūrvataraṃ kṛtam + +kiṃ karma kim akarmeti kavayo 'py atra mohitāḥ +tat te karma pravakṣyāmi yaj jñātvā mokṣyase 'śubhāt + +karmaṇo hy api boddhavyaṃ boddhavyaṃ ca vikarmaṇaḥ +akarmaṇaś ca boddhavyaṃ gahanā karmaṇo gatiḥ + +karmaṇy akarma yaḥ paśyed akarmaṇi ca karma yaḥ +sa buddhimān manuṣyeṣu sa yuktaḥ kṛtsnakarmakṛt + +yasya sarve samārambhāḥ kāmasaṃkalpavarjitāḥ +jñānāgnidagdhakarmāṇaṃ tam āhuḥ paṇḍitaṃ budhāḥ + +tyaktvā karmaphalāsaṅgaṃ nityatṛpto nirāśrayaḥ +karmaṇy abhipravṛtto 'pi naiva kiṃ cit karoti saḥ + +nirāśīr yatacittātmā tyaktasarvaparigrahaḥ +śārīraṃ kevalaṃ karma kurvan nāpnoti kilbiṣam + +yadṛcchālābhasaṃtuṣṭo dvaṃdvātīto vimatsaraḥ +samaḥ siddhāv asiddhau ca kṛtvāpi na nibadhyate + +gatasaṅgasya muktasya jñānāvasthitacetasaḥ +yajñāyācarataḥ karma samagraṃ pravilīyate + +brahmārpaṇaṃ brahmahavir brahmāgnau brahmaṇā hutam +brahmaiva tena gantavyaṃ brahmakarmasamādhinā + +daivam evāpare yajñaṃ yoginaḥ paryupāsate +brahmāgnāv apare yajñaṃ yajñenaivopajuhvati + +śrotrādīnīndriyāṇy anye saṃyamāgniṣu juhvati +śabdādīn viṣayān anya indriyāgniṣu juhvati + +sarvāṇīndriyakarmāṇi prāṇakarmāṇi cāpare +ātmasaṃyamayogāgnau juhvati jñānadīpite + +dravyayajñās tapoyajñā yogayajñās tathāpare +svādhyāyajñānayajñāś ca yatayaḥ saṃśitavratāḥ + +apāne juhvati prāṇaṃ prāṇe 'pānaṃ tathāpare +prāṇāpānagatī ruddhvā prāṇāyāmaparāyaṇāḥ + +apare niyatāhārāḥ prāṇān prāṇeṣu juhvati +sarve 'py ete yajñavido yajñakṣapitakalmaṣāḥ + +yajñaśiṣṭāmṛtabhujo yānti brahma sanātanam +nāyaṃ loko 'sty ayajñasya kuto 'nyaḥ kurusattama + +evaṃ bahuvidhā yajñā vitatā brahmaṇo mukhe +karmajān viddhi tān sarvān evaṃ jñātvā vimokṣyase + +śreyān dravyamayād yajñāj jñānayajñaḥ paraṃtapa +sarvaṃ karmākhilaṃ pārtha jñāne parisamāpyate + +tad viddhi praṇipātena paripraśnena sevayā +upadekṣyanti te jñānaṃ jñāninas tattvadarśinaḥ + +yaj jñātvā na punar moham evaṃ yāsyasi pāṇḍava +yena bhūtāny aśeṣeṇa drakṣyasy ātmany atho mayi + +api ced asi pāpebhyaḥ sarvebhyaḥ pāpakṛttamaḥ +sarvaṃ jñānaplavenaiva vṛjinaṃ saṃtariṣyasi + +yathaidhāṃsi samiddho 'gnir bhasmasāt kurute 'rjuna +jñānāgniḥ sarvakarmāṇi bhasmasāt kurute tathā + +na hi jñānena sadṛśaṃ pavitram iha vidyate +tat svayaṃ yogasaṃsiddhaḥ kālenātmani vindati + +śraddhāvāṃl labhate jñānaṃ tatparaḥ saṃyatendriyaḥ +jñānaṃ labdhvā parāṃ śāntim acireṇādhigacchati + +ajñaś cāśraddadhānaś ca saṃśayātmā vinaśyati +nāyaṃ loko 'sti na paro na sukhaṃ saṃśayātmanaḥ + +yogasaṃnyastakarmāṇaṃ jñānasaṃchinnasaṃśayam +ātmavantaṃ na karmāṇi nibadhnanti dhanaṃjaya + +tasmād ajñānasaṃbhūtaṃ hṛtsthaṃ jñānāsinātmanaḥ +chittvainaṃ saṃśayaṃ yogam ātiṣṭhottiṣṭha bhārata + +arjuna uvāca +saṃnyāsaṃ karmaṇāṃ kṛṣṇa punar yogaṃ ca śaṃsasi +yac chreya etayor ekaṃ tan me brūhi suniścitam + +śrībhagavān uvāca +saṃnyāsaḥ karmayogaś ca niḥśreyasakarāv ubhau +tayos tu karmasaṃnyāsāt karmayogo viśiṣyate + +jñeyaḥ sa nityasaṃnyāsī yo na dveṣṭi na kāṅkṣati +nirdvaṃdvo hi mahābāho sukhaṃ bandhāt pramucyate + +sāṃkhyayogau pṛthag bālāḥ pravadanti na paṇḍitāḥ +ekam apy āsthitaḥ samyag ubhayor vindate phalam + +yat sāṃkhyaiḥ prāpyate sthānaṃ tad yogair api gamyate +ekaṃ sāṃkhyaṃ ca yogaṃ ca yaḥ paśyati sa paśyati + +saṃnyāsas tu mahābāho duḥkham āptum ayogataḥ +yogayukto munir brahma nacireṇādhigacchati + +yogayukto viśuddhātmā vijitātmā jitendriyaḥ +sarvabhūtātmabhūtātmā kurvann api na lipyate + +naiva kiṃ cit karomīti yukto manyeta tattvavit +paśyañ śṛṇvan spṛśañ jighrann aśnan gacchan svapañ śvasan + +pralapan visṛjan gṛhṇann unmiṣan nimiṣann api +indriyāṇīndriyārtheṣu vartanta iti dhārayan + +brahmaṇy ādhāya karmāṇi saṅgaṃ tyaktvā karoti yaḥ +lipyate na sa pāpena padmapatram ivāmbhasā + +kāyena manasā buddhyā kevalair indriyair api +yoginaḥ karma kurvanti saṅgaṃ tyaktvātmaśuddhaye + +yuktaḥ karmaphalaṃ tyaktvā śāntim āpnoti naiṣṭhikīm +ayuktaḥ kāmakāreṇa phale sakto nibadhyate + +sarvakarmāṇi manasā saṃnyasyāste sukhaṃ vaśī +navadvāre pure dehī naiva kurvan na kārayan + +na kartṛtvaṃ na karmāṇi lokasya sṛjati prabhuḥ +na karmaphalasaṃyogaṃ svabhāvas tu pravartate + +nādatte kasya cit pāpaṃ na caiva sukṛtaṃ vibhuḥ +ajñānenāvṛtaṃ jñānaṃ tena muhyanti jantavaḥ + +jñānena tu tad ajñānaṃ yeṣāṃ nāśitam ātmanaḥ +teṣām ādityavaj jñānaṃ prakāśayati tatparam + +tadbuddhayas tadātmānas tanniṣṭhās tatparāyaṇāḥ +gacchanty apunarāvṛttiṃ jñānanirdhūtakalmaṣāḥ + +vidyāvinayasaṃpanne brāhmaṇe gavi hastini +śuni caiva śvapāke ca paṇḍitāḥ samadarśinaḥ + +ihaiva tair jitaḥ sargo yeṣāṃ sāmye sthitaṃ manaḥ +nirdoṣaṃ hi samaṃ brahma tasmād brahmaṇi te sthitāḥ + +na prahṛṣyet priyaṃ prāpya nodvijet prāpya cāpriyam +sthirabuddhir asaṃmūḍho brahmavid brahmaṇi sthitaḥ + +bāhyasparśeṣv asaktātmā vindaty ātmani yat sukham +sa brahmayogayuktātmā sukham akṣayam aśnute + +ye hi saṃsparśajā bhogā duḥkhayonaya eva te +ādyantavantaḥ kaunteya na teṣu ramate budhaḥ + +śaknotīhaiva yaḥ soḍhuṃ prāk śarīravimokṣaṇāt +kāmakrodhodbhavaṃ vegaṃ sa yuktaḥ sa sukhī naraḥ + +yo 'ntaḥsukho 'ntarārāmas tathāntarjyotir eva yaḥ +sa yogī brahmanirvāṇaṃ brahmabhūto 'dhigacchati + +labhante brahmanirvāṇam ṛṣayaḥ kṣīṇakalmaṣāḥ +chinnadvaidhā yatātmānaḥ sarvabhūtahite ratāḥ + +kāmakrodhaviyuktānāṃ yatīnāṃ yatacetasām +abhito brahmanirvāṇaṃ vartate viditātmanām + +sparśān kṛtvā bahir bāhyāṃś cakṣuś caivāntare bhruvoḥ +prāṇāpānau samau kṛtvā nāsābhyantaracāriṇau + +yatendriyamanobuddhir munir mokṣaparāyaṇaḥ +vigatecchābhayakrodho yaḥ sadā mukta eva saḥ + +bhoktāraṃ yajñatapasāṃ sarvalokamaheśvaram +suhṛdaṃ sarvabhūtānāṃ jñātvā māṃ śāntim ṛcchati + +śrībhagavān uvāca +anāśritaḥ karmaphalaṃ kāryaṃ karma karoti yaḥ +sa saṃnyāsī ca yogī ca na niragnir na cākriyaḥ + +yaṃ saṃnyāsam iti prāhur yogaṃ taṃ viddhi pāṇḍava +na hy asaṃnyastasaṃkalpo yogī bhavati kaś cana + +ārurukṣor muner yogaṃ karma kāraṇam ucyate +yogārūḍhasya tasyaiva śamaḥ kāraṇam ucyate + +yadā hi nendriyārtheṣu na karmasv anuṣajjate +sarvasaṃkalpasaṃnyāsī yogārūḍhas tadocyate + +uddhared ātmanātmānaṃ nātmānam avasādayet +ātmaiva hy ātmano bandhur ātmaiva ripur ātmanaḥ + +bandhur ātmātmanas tasya yenātmaivātmanā jitaḥ +anātmanas tu śatrutve vartetātmaiva śatruvat + +jitātmanaḥ praśāntasya paramātmā samāhitaḥ +śītoṣṇasukhaduḥkheṣu tathā mānāvamānayoḥ + +jñānavijñānatṛptātmā kūṭastho vijitendriyaḥ +yukta ity ucyate yogī samaloṣṭāśmakāñcanaḥ + +suhṛnmitrāryudāsīnamadhyasthadveṣyabandhuṣu +sādhuṣv api ca pāpeṣu samabuddhir viśiṣyate + +yogī yuñjīta satatam ātmānaṃ rahasi sthitaḥ +ekākī yatacittātmā nirāśīr aparigrahaḥ + +śucau deśe pratiṣṭhāpya sthiram āsanam ātmanaḥ +nātyucchritaṃ nātinīcaṃ cailājinakuśottaram + +tatraikāgraṃ manaḥ kṛtvā yatacittendriyakriyaḥ +upaviśyāsane yuñjyād yogam ātmaviśuddhaye + +samaṃ kāyaśirogrīvaṃ dhārayann acalaṃ sthiraḥ +saṃprekṣya nāsikāgraṃ svaṃ diśaś cānavalokayan + +praśāntātmā vigatabhīr brahmacārivrate sthitaḥ +manaḥ saṃyamya maccitto yukta āsīta matparaḥ + +yuñjann evaṃ sadātmānaṃ yogī niyatamānasaḥ +śāntiṃ nirvāṇaparamāṃ matsaṃsthām adhigacchati + +nātyaśnatas tu yogo 'sti na caikāntam anaśnataḥ +na cātisvapnaśīlasya jāgrato naiva cārjuna + +yuktāhāravihārasya yuktaceṣṭasya karmasu +yuktasvapnāvabodhasya yogo bhavati duḥkhahā + +yadā viniyataṃ cittam ātmany evāvatiṣṭhate +niḥspṛhaḥ sarvakāmebhyo yukta ity ucyate tadā + +yathā dīpo nivātastho neṅgate sopamā smṛtā +yogino yatacittasya yuñjato yogam ātmanaḥ + +yatroparamate cittaṃ niruddhaṃ yogasevayā +yatra caivātmanātmānaṃ paśyann ātmani tuṣyati + +sukham ātyantikaṃ yat tad buddhigrāhyam atīndriyam +vetti yatra na caivāyaṃ sthitaś calati tattvataḥ + +yaṃ labdhvā cāparaṃ lābhaṃ manyate nādhikaṃ tataḥ +yasmin sthito na duḥkhena guruṇāpi vicālyate + +taṃ vidyād duḥkhasaṃyogaviyogaṃ yogasaṃjñitam +sa niścayena yoktavyo yogo 'nirviṇṇacetasā + +saṃkalpaprabhavān kāmāṃs tyaktvā sarvān aśeṣataḥ +manasaivendriyagrāmaṃ viniyamya samantataḥ + +śanaiḥ śanair uparamed buddhyā dhṛtigṛhītayā +ātmasaṃsthaṃ manaḥ kṛtvā na kiṃ cid api cintayet + +yato yato niścarati manaś cañcalam asthiram +tatas tato niyamyaitad ātmany eva vaśaṃ nayet + +praśāntamanasaṃ hy enaṃ yoginaṃ sukham uttamam +upaiti śāntarajasaṃ brahmabhūtam akalmaṣam + +yuñjann evaṃ sadātmānaṃ yogī vigatakalmaṣaḥ +sukhena brahmasaṃsparśam atyantaṃ sukham aśnute + +sarvabhūtastham ātmānaṃ sarvabhūtāni cātmani +īkṣate yogayuktātmā sarvatra samadarśanaḥ + +yo māṃ paśyati sarvatra sarvaṃ ca mayi paśyati +tasyāhaṃ na praṇaśyāmi sa ca me na praṇaśyati + +sarvabhūtasthitaṃ yo māṃ bhajaty ekatvam āsthitaḥ +sarvathā vartamāno 'pi sa yogī mayi vartate + +ātmaupamyena sarvatra samaṃ paśyati yo 'rjuna +sukhaṃ vā yadi vā duḥkhaṃ sa yogī paramo mataḥ + +arjuna uvāca +yo 'yaṃ yogas tvayā proktaḥ sāmyena madhusūdana +etasyāhaṃ na paśyāmi cañcalatvāt sthitiṃ sthirām + +cañcalaṃ hi manaḥ kṛṣṇa pramāthi balavad dṛḍham +tasyāhaṃ nigrahaṃ manye vāyor iva suduṣkaram + +śrībhagavān uvāca +asaṃśayaṃ mahābāho mano durnigrahaṃ calam +abhyāsena tu kaunteya vairāgyeṇa ca gṛhyate + +asaṃyatātmanā yogo duṣprāpa iti me matiḥ +vaśyātmanā tu yatatā śakyo 'vāptum upāyataḥ + +arjuna uvāca +ayatiḥ śraddhayopeto yogāc calitamānasaḥ +aprāpya yogasaṃsiddhiṃ kāṃ gatiṃ kṛṣṇa gacchati + +kaccin nobhayavibhraṣṭaś chinnābhram iva naśyati +apratiṣṭho mahābāho vimūḍho brahmaṇaḥ pathi + +etan me saṃśayaṃ kṛṣṇa chettum arhasy aśeṣataḥ +tvad anyaḥ saṃśayasyāsya chettā na hy upapadyate + +śrībhagavān uvāca +pārtha naiveha nāmutra vināśas tasya vidyate +na hi kalyāṇakṛt kaś cid durgatiṃ tāta gacchati + +prāpya puṇyakṛtāṃl lokān uṣitvā śāśvatīḥ samāḥ +śucīnāṃ śrīmatāṃ gehe yogabhraṣṭo 'bhijāyate + +atha vā yoginām eva kule bhavati dhīmatām +etad dhi durlabhataraṃ loke janma yad īdṛśam + +tatra taṃ buddhisaṃyogaṃ labhate paurvadehikam +yatate ca tato bhūyaḥ saṃsiddhau kurunandana + +pūrvābhyāsena tenaiva hriyate hy avaśo 'pi saḥ +jijñāsur api yogasya śabdabrahmātivartate + +prayatnād yatamānas tu yogī saṃśuddhakilbiṣaḥ +anekajanmasaṃsiddhas tato yāti parāṃ gatim + +tapasvibhyo 'dhiko yogī jñānibhyo 'pi mato 'dhikaḥ +karmibhyaś cādhiko yogī tasmād yogī bhavārjuna + +yoginām api sarveṣāṃ madgatenāntarātmanā +śraddhāvān bhajate yo māṃ sa me yuktatamo mataḥ + +śrībhagavān uvāca +mayy āsaktamanāḥ pārtha yogaṃ yuñjan madāśrayaḥ +asaṃśayaṃ samagraṃ māṃ yathā jñāsyasi tac chṛṇu + +jñānaṃ te 'haṃ savijñānam idaṃ vakṣyāmy aśeṣataḥ +yaj jñātvā neha bhūyo 'nyaj jñātavyam avaśiṣyate + +manuṣyāṇāṃ sahasreṣu kaś cid yatati siddhaye +yatatām api siddhānāṃ kaś cin māṃ vetti tattvataḥ + +bhūmir āpo 'nalo vāyuḥ khaṃ mano buddhir eva ca +ahaṃkāra itīyaṃ me bhinnā prakṛtir aṣṭadhā + +apareyam itas tv anyāṃ prakṛtiṃ viddhi me parām +jīvabhūtāṃ mahābāho yayedaṃ dhāryate jagat + +etadyonīni bhūtāni sarvāṇīty upadhāraya +ahaṃ kṛtsnasya jagataḥ prabhavaḥ pralayas tathā + +mattaḥ parataraṃ nānyat kiṃ cid asti dhanaṃjaya +mayi sarvam idaṃ protaṃ sūtre maṇigaṇā iva + +raso 'ham apsu kaunteya prabhāsmi śaśisūryayoḥ +praṇavaḥ sarvavedeṣu śabdaḥ khe pauruṣaṃ nṛṣu + +puṇyo gandhaḥ pṛthivyāṃ ca tejaś cāsmi vibhāvasau +jīvanaṃ sarvabhūteṣu tapaś cāsmi tapasviṣu + +bījaṃ māṃ sarvabhūtānāṃ viddhi pārtha sanātanam +buddhir buddhimatām asmi tejas tejasvinām aham + +balaṃ balavatāṃ cāhaṃ kāmarāgavivarjitam +dharmāviruddho bhūteṣu kāmo 'smi bharatarṣabha + +ye caiva sāttvikā bhāvā rājasās tāmasāś ca ye +matta eveti tān viddhi na tv ahaṃ teṣu te mayi + +tribhir guṇamayair bhāvair ebhiḥ sarvam idaṃ jagat +mohitaṃ nābhijānāti mām ebhyaḥ param avyayam + +daivī hy eṣā guṇamayī mama māyā duratyayā +mām eva ye prapadyante māyām etāṃ taranti te + +na māṃ duṣkṛtino mūḍhāḥ prapadyante narādhamāḥ +māyayāpahṛtajñānā āsuraṃ bhāvam āśritāḥ + +caturvidhā bhajante māṃ janāḥ sukṛtino 'rjuna +ārto jijñāsur arthārthī jñānī ca bharatarṣabha + +teṣāṃ jñānī nityayukta ekabhaktir viśiṣyate +priyo hi jñānino 'tyartham ahaṃ sa ca mama priyaḥ + +udārāḥ sarva evaite jñānī tv ātmaiva me matam +āsthitaḥ sa hi yuktātmā mām evānuttamāṃ gatim + +bahūnāṃ janmanām ante jñānavān māṃ prapadyate +vāsudevaḥ sarvam iti sa mahātmā sudurlabhaḥ +kāmais tais tair hṛtajñānāḥ prapadyante 'nyadevatāḥ +taṃ taṃ niyamam āsthāya prakṛtyā niyatāḥ svayā + +yo yo yāṃ yāṃ tanuṃ bhaktaḥ śraddhayārcitum icchati +tasya tasyācalāṃ śraddhāṃ tām eva vidadhāmy aham + +sa tayā śraddhayā yuktas tasyā rādhanam īhate +labhate ca tataḥ kāmān mayaiva vihitān hi tān + +antavat tu phalaṃ teṣāṃ tad bhavaty alpamedhasām +devān devayajo yānti madbhaktā yānti mām api + +avyaktaṃ vyaktim āpannaṃ manyante mām abuddhayaḥ +paraṃ bhāvam ajānanto mamāvyayam anuttamam + +nāhaṃ prakāśaḥ sarvasya yogamāyāsamāvṛtaḥ +mūḍho 'yaṃ nābhijānāti loko mām ajam avyayam + +vedāhaṃ samatītāni vartamānāni cārjuna +bhaviṣyāṇi ca bhūtāni māṃ tu veda na kaś cana + +icchādveṣasamutthena dvaṃdvamohena bhārata +sarvabhūtāni saṃmohaṃ sarge yānti paraṃtapa + +yeṣāṃ tv antagataṃ pāpaṃ janānāṃ puṇyakarmaṇām +te dvaṃdvamohanirmuktā bhajante māṃ dṛḍhavratāḥ + +jarāmaraṇamokṣāya mām āśritya yatanti ye +te brahma tad viduḥ kṛtsnam adhyātmaṃ karma cākhilam + +sādhibhūtādhidaivaṃ māṃ sādhiyajñaṃ ca ye viduḥ +prayāṇakāle 'pi ca māṃ te vidur yuktacetasaḥ + +arjuna uvāca +kiṃ tad brahma kim adhyātmaṃ kiṃ karma puruṣottama +adhibhūtaṃ ca kiṃ proktam adhidaivaṃ kim ucyate + +adhiyajñaḥ kathaṃ ko 'tra dehe 'smin madhusūdana +prayāṇakāle ca kathaṃ jñeyo 'si niyatātmabhiḥ + +śrībhagavān uvāca +akṣaraṃ brahma paramaṃ svabhāvo 'dhyātmam ucyate +bhūtabhāvodbhavakaro visargaḥ karmasaṃjñitaḥ + +adhibhūtaṃ kṣaro bhāvaḥ puruṣaś cādhidaivatam +adhiyajño 'ham evātra dehe dehabhṛtāṃ vara + +antakāle ca mām eva smaran muktvā kalevaram +yaḥ prayāti sa madbhāvaṃ yāti nāsty atra saṃśayaḥ + +yaṃ yaṃ vāpi smaran bhāvaṃ tyajaty ante kalevaram +taṃ tam evaiti kaunteya sadā tadbhāvabhāvitaḥ + +tasmāt sarveṣu kāleṣu mām anusmara yudhya ca +mayy arpitamanobuddhir mām evaiṣyasy asaṃśayaḥ + +abhyāsayogayuktena cetasā nānyagāminā +paramaṃ puruṣaṃ divyaṃ yāti pārthānucintayan + +kaviṃ purāṇam anuśāsitāram; aṇor aṇīyāṃsam anusmared yaḥ +sarvasya dhātāram acintyarūpam; ādityavarṇaṃ tamasaḥ parastāt + +prayāṇakāle manasācalena; bhaktyā yukto yogabalena caiva +bhruvor madhye prāṇam āveśya samyak; sa taṃ paraṃ puruṣam upaiti divyam + +yad akṣaraṃ vedavido vadanti; viśanti yad yatayo vītarāgāḥ +yad icchanto brahmacaryaṃ caranti; tat te padaṃ saṃgraheṇa pravakṣye + +sarvadvārāṇi saṃyamya mano hṛdi nirudhya ca +mūrdhny ādhāyātmanaḥ prāṇam āsthito yogadhāraṇām + +om ity ekākṣaraṃ brahma vyāharan mām anusmaran +yaḥ prayāti tyajan dehaṃ sa yāti paramāṃ gatim + +ananyacetāḥ satataṃ yo māṃ smarati nityaśaḥ +tasyāhaṃ sulabhaḥ pārtha nityayuktasya yoginaḥ + +mām upetya punarjanma duḥkhālayam aśāśvatam +nāpnuvanti mahātmānaḥ saṃsiddhiṃ paramāṃ gatāḥ + +ā brahmabhuvanāl lokāḥ punarāvartino 'rjuna +mām upetya tu kaunteya punarjanma na vidyate + +sahasrayugaparyantam ahar yad brahmaṇo viduḥ +rātriṃ yugasahasrāntāṃ te 'horātravido janāḥ + +avyaktād vyaktayaḥ sarvāḥ prabhavanty aharāgame +rātryāgame pralīyante tatraivāvyaktasaṃjñake + +bhūtagrāmaḥ sa evāyaṃ bhūtvā bhūtvā pralīyate +rātryāgame 'vaśaḥ pārtha prabhavaty aharāgame + +paras tasmāt tu bhāvo 'nyo 'vyakto 'vyaktāt sanātanaḥ +yaḥ sa sarveṣu bhūteṣu naśyatsu na vinaśyati + +avyakto 'kṣara ity uktas tam āhuḥ paramāṃ gatim +yaṃ prāpya na nivartante tad dhāma paramaṃ mama + +puruṣaḥ sa paraḥ pārtha bhaktyā labhyas tv ananyayā +yasyāntaḥsthāni bhūtāni yena sarvam idaṃ tatam + +yatra kāle tv anāvṛttim āvṛttiṃ caiva yoginaḥ +prayātā yānti taṃ kālaṃ vakṣyāmi bharatarṣabha + +agnir jyotir ahaḥ śuklaḥ ṣaṇmāsā uttarāyaṇam +tatra prayātā gacchanti brahma brahmavido janāḥ + +dhūmo rātris tathā kṛṣṇaḥ ṣaṇmāsā dakṣiṇāyanam +tatra cāndramasaṃ jyotir yogī prāpya nivartate + +śuklakṛṣṇe gatī hy ete jagataḥ śāśvate mate +ekayā yāty anāvṛttim anyayāvartate punaḥ + +naite sṛtī pārtha jānan yogī muhyati kaś cana +tasmāt sarveṣu kāleṣu yogayukto bhavārjuna + +vedeṣu yajñeṣu tapaḥsu caiva; dāneṣu yat puṇyaphalaṃ pradiṣṭam +atyeti tat sarvam idaṃ viditvā; yogī paraṃ sthānam upaiti cādyam + +śrībhagavān uvāca +idaṃ tu te guhyatamaṃ pravakṣyāmy anasūyave +jñānaṃ vijñānasahitaṃ yaj jñātvā mokṣyase 'śubhāt + +rājavidyā rājaguhyaṃ pavitram idam uttamam +pratyakṣāvagamaṃ dharmyaṃ susukhaṃ kartum avyayam + +aśraddadhānāḥ puruṣā dharmasyāsya paraṃtapa +aprāpya māṃ nivartante mṛtyusaṃsāravartmani + +mayā tatam idaṃ sarvaṃ jagad avyaktamūrtinā +matsthāni sarvabhūtāni na cāhaṃ teṣv avasthitaḥ + +na ca matsthāni bhūtāni paśya me yogam aiśvaram +bhūtabhṛn na ca bhūtastho mamātmā bhūtabhāvanaḥ + +yathākāśasthito nityaṃ vāyuḥ sarvatrago mahān +tathā sarvāṇi bhūtāni matsthānīty upadhāraya + +sarvabhūtāni kaunteya prakṛtiṃ yānti māmikām +kalpakṣaye punas tāni kalpādau visṛjāmy aham + +prakṛtiṃ svām avaṣṭabhya visṛjāmi punaḥ punaḥ +bhūtagrāmam imaṃ kṛtsnam avaśaṃ prakṛter vaśāt + +na ca māṃ tāni karmāṇi nibadhnanti dhanaṃjaya +udāsīnavad āsīnam asaktaṃ teṣu karmasu + +mayādhyakṣeṇa prakṛtiḥ sūyate sacarācaram +hetunānena kaunteya jagad viparivartate + +avajānanti māṃ mūḍhā mānuṣīṃ tanum āśritam +paraṃ bhāvam ajānanto mama bhūtamaheśvaram + +moghāśā moghakarmāṇo moghajñānā vicetasaḥ +rākṣasīm āsurīṃ caiva prakṛtiṃ mohinīṃ śritāḥ + +mahātmānas tu māṃ pārtha daivīṃ prakṛtim āśritāḥ +bhajanty ananyamanaso jñātvā bhūtādim avyayam + +satataṃ kīrtayanto māṃ yatantaś ca dṛḍhavratāḥ +namasyantaś ca māṃ bhaktyā nityayuktā upāsate + +jñānayajñena cāpy anye yajanto mām upāsate +ekatvena pṛthaktvena bahudhā viśvatomukham + +ahaṃ kratur ahaṃ yajñaḥ svadhāham aham auṣadham +mantro 'ham aham evājyam aham agnir ahaṃ hutam + +pitāham asya jagato mātā dhātā pitāmahaḥ +vedyaṃ pavitram oṃkāra ṛk sāma yajur eva ca + +gatir bhartā prabhuḥ sākṣī nivāsaḥ śaraṇaṃ suhṛt +prabhavaḥ pralayaḥ sthānaṃ nidhānaṃ bījam avyayam + +tapāmy aham ahaṃ varṣaṃ nigṛhṇāmy utsṛjāmi ca +amṛtaṃ caiva mṛtyuś ca sad asac cāham arjuna + +traividyā māṃ somapāḥ pūtapāpā; yajñair iṣṭvā svargatiṃ prārthayante +te puṇyam āsādya surendralokam; aśnanti divyān divi devabhogān + +te taṃ bhuktvā svargalokaṃ viśālaṃ; kṣīṇe puṇye martyalokaṃ viśanti +evaṃ trayīdharmam anuprapannā; gatāgataṃ kāmakāmā labhante + +ananyāś cintayanto māṃ ye janāḥ paryupāsate +teṣāṃ nityābhiyuktānāṃ yogakṣemaṃ vahāmy aham + +ye 'py anyadevatā bhaktā yajante śraddhayānvitāḥ +te 'pi mām eva kaunteya yajanty avidhipūrvakam + +ahaṃ hi sarvayajñānāṃ bhoktā ca prabhur eva ca +na tu mām abhijānanti tattvenātaś cyavanti te + +yānti devavratā devān pitṝn yānti pitṛvratāḥ +bhūtāni yānti bhūtejyā yānti madyājino 'pi mām + +patraṃ puṣpaṃ phalaṃ toyaṃ yo me bhaktyā prayacchati +tad ahaṃ bhaktyupahṛtam aśnāmi prayatātmanaḥ + +yat karoṣi yad aśnāsi yaj juhoṣi dadāsi yat +yat tapasyasi kaunteya tat kuruṣva madarpaṇam + +śubhāśubhaphalair evaṃ mokṣyase karmabandhanaiḥ +saṃnyāsayogayuktātmā vimukto mām upaiṣyasi + +samo 'haṃ sarvabhūteṣu na me dveṣyo 'sti na priyaḥ +ye bhajanti tu māṃ bhaktyā mayi te teṣu cāpy aham + +api cet sudurācāro bhajate mām ananyabhāk +sādhur eva sa mantavyaḥ samyag vyavasito hi saḥ + +kṣipraṃ bhavati dharmātmā śaśvacchāntiṃ nigacchati +kaunteya pratijānīhi na me bhaktaḥ praṇaśyati + +māṃ hi pārtha vyapāśritya ye 'pi syuḥ pāpayonayaḥ +striyo vaiśyās tathā śūdrās te 'pi yānti parāṃ gatim + +kiṃ punar brāhmaṇāḥ puṇyā bhaktā rājarṣayas tathā +anityam asukhaṃ lokam imaṃ prāpya bhajasva mām + +manmanā bhava madbhakto madyājī māṃ namaskuru +mām evaiṣyasi yuktvaivam ātmānaṃ matparāyaṇaḥ + +śrībhagavān uvāca +bhūya eva mahābāho śṛṇu me paramaṃ vacaḥ +yat te 'haṃ prīyamāṇāya vakṣyāmi hitakāmyayā + +na me viduḥ suragaṇāḥ prabhavaṃ na maharṣayaḥ +aham ādir hi devānāṃ maharṣīṇāṃ ca sarvaśaḥ + +yo mām ajam anādiṃ ca vetti lokamaheśvaram +asaṃmūḍhaḥ sa martyeṣu sarvapāpaiḥ pramucyate + +buddhir jñānam asaṃmohaḥ kṣamā satyaṃ damaḥ śamaḥ +sukhaṃ duḥkhaṃ bhavo 'bhāvo bhayaṃ cābhayam eva ca + +ahiṃsā samatā tuṣṭis tapo dānaṃ yaśo 'yaśaḥ +bhavanti bhāvā bhūtānāṃ matta eva pṛthagvidhāḥ + +maharṣayaḥ sapta pūrve catvāro manavas tathā +madbhāvā mānasā jātā yeṣāṃ loka imāḥ prajāḥ + +etāṃ vibhūtiṃ yogaṃ ca mama yo vetti tattvataḥ +so 'vikampena yogena yujyate nātra saṃśayaḥ + +ahaṃ sarvasya prabhavo mattaḥ sarvaṃ pravartate +iti matvā bhajante māṃ budhā bhāvasamanvitāḥ + +maccittā madgataprāṇā bodhayantaḥ parasparam +kathayantaś ca māṃ nityaṃ tuṣyanti ca ramanti ca + +teṣāṃ satatayuktānāṃ bhajatāṃ prītipūrvakam +dadāmi buddhiyogaṃ taṃ yena mām upayānti te + +teṣām evānukampārtham aham ajñānajaṃ tamaḥ +nāśayāmy ātmabhāvastho jñānadīpena bhāsvatā + +arjuna uvāca +paraṃ brahma paraṃ dhāma pavitraṃ paramaṃ bhavān +puruṣaṃ śāśvataṃ divyam ādidevam ajaṃ vibhum + +āhus tvām ṛṣayaḥ sarve devarṣir nāradas tathā +asito devalo vyāsaḥ svayaṃ caiva bravīṣi me + +sarvam etad ṛtaṃ manye yan māṃ vadasi keśava +na hi te bhagavan vyaktiṃ vidur devā na dānavāḥ + +svayam evātmanātmānaṃ vettha tvaṃ puruṣottama +bhūtabhāvana bhūteśa devadeva jagatpate + +vaktum arhasy aśeṣeṇa divyā hy ātmavibhūtayaḥ +yābhir vibhūtibhir lokān imāṃs tvaṃ vyāpya tiṣṭhasi + +kathaṃ vidyām ahaṃ yogiṃs tvāṃ sadā paricintayan +keṣu keṣu ca bhāveṣu cintyo 'si bhagavan mayā + +vistareṇātmano yogaṃ vibhūtiṃ ca janārdana +bhūyaḥ kathaya tṛptir hi śṛṇvato nāsti me 'mṛtam + +śrībhagavān uvāca +hanta te kathayiṣyāmi divyā hy ātmavibhūtayaḥ +prādhānyataḥ kuruśreṣṭha nāsty anto vistarasya me + +aham ātmā guḍākeśa sarvabhūtāśayasthitaḥ +aham ādiś ca madhyaṃ ca bhūtānām anta eva ca + +ādityānām ahaṃ viṣṇur jyotiṣāṃ ravir aṃśumān +marīcir marutām asmi nakṣatrāṇām ahaṃ śaśī + +vedānāṃ sāmavedo 'smi devānām asmi vāsavaḥ +indriyāṇāṃ manaś cāsmi bhūtānām asmi cetanā + +rudrāṇāṃ śaṃkaraś cāsmi vitteśo yakṣarakṣasām +vasūnāṃ pāvakaś cāsmi meruḥ śikhariṇām aham + +purodhasāṃ ca mukhyaṃ māṃ viddhi pārtha bṛhaspatim +senānīnām ahaṃ skandaḥ sarasām asmi sāgaraḥ + +maharṣīṇāṃ bhṛgur ahaṃ girām asmy ekam akṣaram +yajñānāṃ japayajño 'smi sthāvarāṇāṃ himālayaḥ + +aśvatthaḥ sarvavṛkṣāṇāṃ devarṣīṇāṃ ca nāradaḥ +gandharvāṇāṃ citrarathaḥ siddhānāṃ kapilo muniḥ + +uccaiḥśravasam aśvānāṃ viddhi mām amṛtodbhavam +airāvataṃ gajendrāṇāṃ narāṇāṃ ca narādhipam + +āyudhānām ahaṃ vajraṃ dhenūnām asmi kāmadhuk +prajanaś cāsmi kandarpaḥ sarpāṇām asmi vāsukiḥ + +anantaś cāsmi nāgānāṃ varuṇo yādasām aham +pitṝṇām aryamā cāsmi yamaḥ saṃyamatām aham + +prahlādaś cāsmi daityānāṃ kālaḥ kalayatām aham +mṛgāṇāṃ ca mṛgendro 'haṃ vainateyaś ca pakṣiṇām + +pavanaḥ pavatām asmi rāmaḥ śastrabhṛtām aham +jhaṣāṇāṃ makaraś cāsmi srotasām asmi jāhnavī + +sargāṇām ādir antaś ca madhyaṃ caivāham arjuna +adhyātmavidyā vidyānāṃ vādaḥ pravadatām aham + +akṣarāṇām akāro 'smi dvaṃdvaḥ sāmāsikasya ca +aham evākṣayaḥ kālo dhātāhaṃ viśvatomukhaḥ + +mṛtyuḥ sarvaharaś cāham udbhavaś ca bhaviṣyatām +kīrtiḥ śrīr vāk ca nārīṇāṃ smṛtir medhā dhṛtiḥ kṣamā + +bṛhatsāma tathā sāmnāṃ gāyatrī chandasām aham +māsānāṃ mārgaśīrṣo 'ham ṛtūnāṃ kusumākaraḥ + +dyūtaṃ chalayatām asmi tejas tejasvinām aham +jayo 'smi vyavasāyo 'smi sattvaṃ sattvavatām aham + +vṛṣṇīnāṃ vāsudevo 'smi pāṇḍavānāṃ dhanaṃjayaḥ +munīnām apy ahaṃ vyāsaḥ kavīnām uśanā kaviḥ + +daṇḍo damayatām asmi nītir asmi jigīṣatām +maunaṃ caivāsmi guhyānāṃ jñānaṃ jñānavatām aham + +yac cāpi sarvabhūtānāṃ bījaṃ tad aham arjuna +na tad asti vinā yat syān mayā bhūtaṃ carācaram + +nānto 'sti mama divyānāṃ vibhūtīnāṃ paraṃtapa +eṣa tūddeśataḥ prokto vibhūter vistaro mayā + +yad yad vibhūtimat sattvaṃ śrīmad ūrjitam eva vā +tat tad evāvagaccha tvaṃ mama tejoṃśasaṃbhavam + +atha vā bahunaitena kiṃ jñātena tavārjuna +viṣṭabhyāham idaṃ kṛtsnam ekāṃśena sthito jagat + +arjuna uvāca +madanugrahāya paramaṃ guhyam adhyātmasaṃjñitam +yat tvayoktaṃ vacas tena moho 'yaṃ vigato mama + +bhavāpyayau hi bhūtānāṃ śrutau vistaraśo mayā +tvattaḥ kamalapatrākṣa māhātmyam api cāvyayam + +evam etad yathāttha tvam ātmānaṃ parameśvara +draṣṭum icchāmi te rūpam aiśvaraṃ puruṣottama + +manyase yadi tac chakyaṃ mayā draṣṭum iti prabho +yogeśvara tato me tvaṃ darśayātmānam avyayam + +śrībhagavān uvāca +paśya me pārtha rūpāṇi śataśo 'tha sahasraśaḥ +nānāvidhāni divyāni nānāvarṇākṛtīni ca + +paśyādityān vasūn rudrān aśvinau marutas tathā +bahūny adṛṣṭapūrvāṇi paśyāścaryāṇi bhārata + +ihaikasthaṃ jagat kṛtsnaṃ paśyādya sacarācaram +mama dehe guḍākeśa yac cānyad draṣṭum icchasi + +na tu māṃ śakyase draṣṭum anenaiva svacakṣuṣā +divyaṃ dadāmi te cakṣuḥ paśya me yogam aiśvaram + +saṃjaya uvāca +evam uktvā tato rājan mahāyogeśvaro hariḥ +darśayām āsa pārthāya paramaṃ rūpam aiśvaram + +anekavaktranayanam anekādbhutadarśanam +anekadivyābharaṇaṃ divyānekodyatāyudham + +divyamālyāmbaradharaṃ divyagandhānulepanam +sarvāścaryamayaṃ devam anantaṃ viśvatomukham + +divi sūryasahasrasya bhaved yugapad utthitā +yadi bhāḥ sadṛśī sā syād bhāsas tasya mahātmanaḥ + +tatraikasthaṃ jagat kṛtsnaṃ pravibhaktam anekadhā +apaśyad devadevasya śarīre pāṇḍavas tadā + +tataḥ sa vismayāviṣṭo hṛṣṭaromā dhanaṃjayaḥ +praṇamya śirasā devaṃ kṛtāñjalir abhāṣata + +arjuna uvāca +paśyāmi devāṃs tava deva dehe; sarvāṃs tathā bhūtaviśeṣasaṃghān +brahmāṇam īśaṃ kamalāsanastham; ṛṣīṃś ca sarvān uragāṃś ca divyān + +anekabāhūdaravaktranetraṃ; paśyāmi tvā sarvato 'nantarūpam +nāntaṃ na madhyaṃ na punas tavādiṃ; paśyāmi viśveśvara viśvarūpa + +kirīṭinaṃ gadinaṃ cakriṇaṃ ca; tejorāśiṃ sarvato dīptimantam +paśyāmi tvāṃ durnirīkṣyaṃ samantād; dīptānalārkadyutim aprameyam + +tvam akṣaraṃ paramaṃ veditavyaṃ; tvam asya viśvasya paraṃ nidhānam +tvam avyayaḥ śāśvatadharmagoptā; sanātanas tvaṃ puruṣo mato me + +anādimadhyāntam anantavīryam; anantabāhuṃ śaśisūryanetram +paśyāmi tvāṃ dīptahutāśavaktraṃ; svatejasā viśvam idaṃ tapantam + +dyāvāpṛthivyor idam antaraṃ hi; vyāptaṃ tvayaikena diśaś ca sarvāḥ +dṛṣṭvādbhutaṃ rūpam idaṃ tavograṃ; lokatrayaṃ pravyathitaṃ mahātman + +amī hi tvā surasaṃghā viśanti; ke cid bhītāḥ prāñjalayo gṛṇanti +svastīty uktvā maharṣisiddhasaṃghāḥ; stuvanti tvāṃ stutibhiḥ puṣkalābhiḥ + +rudrādityā vasavo ye ca sādhyā; viśve 'śvinau marutaś coṣmapāś ca +gandharvayakṣāsurasiddhasaṃghā; vīkṣante tvā vismitāś caiva sarve + +rūpaṃ mahat te bahuvaktranetraṃ; mahābāho bahubāhūrupādam +bahūdaraṃ bahudaṃṣṭrākarālaṃ; dṛṣṭvā lokāḥ pravyathitās tathāham + +nabhaḥspṛśaṃ dīptam anekavarṇaṃ; vyāttānanaṃ dīptaviśālanetram +dṛṣṭvā hi tvāṃ pravyathitāntarātmā; dhṛtiṃ na vindāmi śamaṃ ca viṣṇo + +daṃṣṭrākarālāni ca te mukhāni; dṛṣṭvaiva kālānalasaṃnibhāni +diśo na jāne na labhe ca śarma; prasīda deveśa jagannivāsa + +amī ca tvāṃ dhṛtarāṣṭrasya putrāḥ; sarve sahaivāvanipālasaṃghaiḥ +bhīṣmo droṇaḥ sūtaputras tathāsau; sahāsmadīyair api yodhamukhyaiḥ + +vaktrāṇi te tvaramāṇā viśanti; daṃṣṭrākarālāni bhayānakāni +ke cid vilagnā daśanāntareṣu; saṃdṛśyante cūrṇitair uttamāṅgaiḥ + +yathā nadīnāṃ bahavo 'mbuvegāḥ; samudram evābhimukhā dravanti +tathā tavāmī naralokavīrā; viśanti vaktrāṇy abhivijvalanti + +yathā pradīptaṃ jvalanaṃ pataṃgā; viśanti nāśāya samṛddhavegāḥ +tathaiva nāśāya viśanti lokās; tavāpi vaktrāṇi samṛddhavegāḥ + +lelihyase grasamānaḥ samantāl; lokān samagrān vadanair jvaladbhiḥ +tejobhir āpūrya jagat samagraṃ; bhāsas tavogrāḥ pratapanti viṣṇo + +ākhyāhi me ko bhavān ugrarūpo; namo 'stu te devavara prasīda +vijñātum icchāmi bhavantam ādyaṃ; na hi prajānāmi tava pravṛttim + +śrībhagavān uvāca +kālo 'smi lokakṣayakṛt pravṛddho; lokān samāhartum iha pravṛttaḥ +ṛte 'pi tvā na bhaviṣyanti sarve; ye 'vasthitāḥ pratyanīkeṣu yodhāḥ + +tasmāt tvam uttiṣṭha yaśo labhasva; jitvā śatrūn bhuṅkṣva rājyaṃ samṛddham +mayaivaite nihatāḥ pūrvam eva; nimittamātraṃ bhava savyasācin + +droṇaṃ ca bhīṣmaṃ ca jayadrathaṃ ca; karṇaṃ tathānyān api yodhavīrān +mayā hatāṃs tvaṃ jahi mā vyathiṣṭhā; yudhyasva jetāsi raṇe sapatnān + +saṃjaya uvāca +etac chrutvā vacanaṃ keśavasya; kṛtāñjalir vepamānaḥ kirīṭī +namaskṛtvā bhūya evāha kṛṣṇaṃ; sagadgadaṃ bhītabhītaḥ praṇamya + +arjuna uvāca +sthāne hṛṣīkeśa tava prakīrtyā; jagat prahṛṣyaty anurajyate ca +rakṣāṃsi bhītāni diśo dravanti; sarve namasyanti ca siddhasaṃghāḥ + +kasmāc ca te na nameran mahātman; garīyase brahmaṇo 'py ādikartre +ananta deveśa jagannivāsa; tvam akṣaraṃ sad asat tatparaṃ yat + +tvam ādidevaḥ puruṣaḥ purāṇas; tvam asya viśvasya paraṃ nidhānam +vettāsi vedyaṃ ca paraṃ ca dhāma; tvayā tataṃ viśvam anantarūpa + +vāyur yamo 'gnir varuṇaḥ śaśāṅkaḥ; prajāpatis tvaṃ prapitāmahaś ca +namo namas te 'stu sahasrakṛtvaḥ; punaś ca bhūyo 'pi namo namas te + +namaḥ purastād atha pṛṣṭhatas te; namo 'stu te sarvata eva sarva +anantavīryāmitavikramas tvaṃ; sarvaṃ samāpnoṣi tato 'si sarvaḥ + +sakheti matvā prasabhaṃ yad uktaṃ; he kṛṣṇa he yādava he sakheti +ajānatā mahimānaṃ tavedaṃ; mayā pramādāt praṇayena vāpi + +yac cāvahāsārtham asatkṛto 'si; vihāraśayyāsanabhojaneṣu +eko 'tha vāpy acyuta tatsamakṣaṃ; tat kṣāmaye tvām aham aprameyam + +pitāsi lokasya carācarasya; tvam asya pūjyaś ca gurur garīyān +na tvatsamo 'sty abhyadhikaḥ kuto 'nyo; lokatraye 'py apratimaprabhāva + +tasmāt praṇamya praṇidhāya kāyaṃ; prasādaye tvām aham īśam īḍyam +piteva putrasya sakheva sakhyuḥ; priyaḥ priyāyārhasi deva soḍhum + +adṛṣṭapūrvaṃ hṛṣito 'smi dṛṣṭvā; bhayena ca pravyathitaṃ mano me +tad eva me darśaya deva rūpaṃ; prasīda deveśa jagannivāsa + +kirīṭinaṃ gadinaṃ cakrahastam; icchāmi tvāṃ draṣṭum ahaṃ tathaiva +tenaiva rūpeṇa caturbhujena; sahasrabāho bhava viśvamūrte + +śrībhagavān uvāca +mayā prasannena tavārjunedaṃ; rūpaṃ paraṃ darśitam ātmayogāt +tejomayaṃ viśvam anantam ādyaṃ; yan me tvad anyena na dṛṣṭapūrvam + +na vedayajñādhyayanair na dānair; na ca kriyābhir na tapobhir ugraiḥ +evaṃrūpaḥ śakya ahaṃ nṛloke; draṣṭuṃ tvad anyena kurupravīra + +mā te vyathā mā ca vimūḍhabhāvo; dṛṣṭvā rūpaṃ ghoram īdṛṅ mamedam +vyapetabhīḥ prītamanāḥ punas tvaṃ; tad eva me rūpam idaṃ prapaśya + +saṃjaya uvāca +ity arjunaṃ vāsudevas tathoktvā; svakaṃ rūpaṃ darśayām āsa bhūyaḥ +āśvāsayām āsa ca bhītam enaṃ; bhūtvā punaḥ saumyavapur mahātmā + +arjuna uvāca +dṛṣṭvedaṃ mānuṣaṃ rūpaṃ tava saumyaṃ janārdana +idānīm asmi saṃvṛttaḥ sacetāḥ prakṛtiṃ gataḥ + +śrībhagavān uvāca +sudurdarśam idaṃ rūpaṃ dṛṣṭavān asi yan mama +devā apy asya rūpasya nityaṃ darśanakāṅkṣiṇaḥ + +nāhaṃ vedair na tapasā na dānena na cejyayā +śakya evaṃvidho draṣṭuṃ dṛṣṭavān asi māṃ yathā + +bhaktyā tv ananyayā śakya aham evaṃvidho 'rjuna +jñātuṃ draṣṭuṃ ca tattvena praveṣṭuṃ ca paraṃtapa + +matkarmakṛn matparamo madbhaktaḥ saṅgavarjitaḥ +nirvairaḥ sarvabhūteṣu yaḥ sa mām eti pāṇḍava + +arjuna uvāca +evaṃ satatayuktā ye bhaktās tvāṃ paryupāsate +ye cāpy akṣaram avyaktaṃ teṣāṃ ke yogavittamāḥ + +śrībhagavān uvāca +mayy āveśya mano ye māṃ nityayuktā upāsate +śraddhayā parayopetās te me yuktatamā matāḥ + +ye tv akṣaram anirdeśyam avyaktaṃ paryupāsate +sarvatragam acintyaṃ ca kūṭastham acalaṃ dhruvam + +saṃniyamyendriyagrāmaṃ sarvatra samabuddhayaḥ +te prāpnuvanti mām eva sarvabhūtahite ratāḥ + +kleśo 'dhikataras teṣām avyaktāsaktacetasām +avyaktā hi gatir duḥkhaṃ dehavadbhir avāpyate + +ye tu sarvāṇi karmāṇi mayi saṃnyasya matparāḥ +ananyenaiva yogena māṃ dhyāyanta upāsate + +teṣām ahaṃ samuddhartā mṛtyusaṃsārasāgarāt +bhavāmi nacirāt pārtha mayy āveśitacetasām + +mayy eva mana ādhatsva mayi buddhiṃ niveśaya +nivasiṣyasi mayy eva ata ūrdhvaṃ na saṃśayaḥ + +atha cittaṃ samādhātuṃ na śaknoṣi mayi sthiram +abhyāsayogena tato mām icchāptuṃ dhanaṃjaya + +abhyāse 'py asamartho 'si matkarmaparamo bhava +madartham api karmāṇi kurvan siddhim avāpsyasi + +athaitad apy aśakto 'si kartuṃ madyogam āśritaḥ +sarvakarmaphalatyāgaṃ tataḥ kuru yatātmavān + +śreyo hi jñānam abhyāsāj jñānād dhyānaṃ viśiṣyate +dhyānāt karmaphalatyāgas tyāgāc chāntir anantaram + +adveṣṭā sarvabhūtānāṃ maitraḥ karuṇa eva ca +nirmamo nirahaṃkāraḥ samaduḥkhasukhaḥ kṣamī + +saṃtuṣṭaḥ satataṃ yogī yatātmā dṛḍhaniścayaḥ +mayy arpitamanobuddhir yo madbhaktaḥ sa me priyaḥ + +yasmān nodvijate loko lokān nodvijate ca yaḥ +harṣāmarṣabhayodvegair mukto yaḥ sa ca me priyaḥ + +anapekṣaḥ śucir dakṣa udāsīno gatavyathaḥ +sarvārambhaparityāgī yo madbhaktaḥ sa me priyaḥ + +yo na hṛṣyati na dveṣṭi na śocati na kāṅkṣati +śubhāśubhaparityāgī bhaktimān yaḥ sa me priyaḥ + +samaḥ śatrau ca mitre ca tathā mānāvamānayoḥ +śītoṣṇasukhaduḥkheṣu samaḥ saṅgavivarjitaḥ + +tulyanindāstutir maunī saṃtuṣṭo yena kena cit +aniketaḥ sthiramatir bhaktimān me priyo naraḥ + +ye tu dharmyāmṛtam idaṃ yathoktaṃ paryupāsate +śraddadhānā matparamā bhaktās te 'tīva me priyāḥ + +śrībhagavān uvāca +idaṃ śarīraṃ kaunteya kṣetram ity abhidhīyate +etad yo vetti taṃ prāhuḥ kṣetrajña iti tadvidaḥ + +kṣetrajñaṃ cāpi māṃ viddhi sarvakṣetreṣu bhārata +kṣetrakṣetrajñayor jñānaṃ yat taj jñānaṃ mataṃ mama + +tat kṣetraṃ yac ca yādṛk ca yadvikāri yataś ca yat +sa ca yo yatprabhāvaś ca tat samāsena me śṛṇu + +ṛṣibhir bahudhā gītaṃ chandobhir vividhaiḥ pṛthak +brahmasūtrapadaiś caiva hetumadbhir viniścitaiḥ + +mahābhūtāny ahaṃkāro buddhir avyaktam eva ca +indriyāṇi daśaikaṃ ca pañca cendriyagocarāḥ + +icchā dveṣaḥ sukhaṃ duḥkhaṃ saṃghātaś cetanā dhṛtiḥ +etat kṣetraṃ samāsena savikāram udāhṛtam + +amānitvam adambhitvam ahiṃsā kṣāntir ārjavam +ācāryopāsanaṃ śaucaṃ sthairyam ātmavinigrahaḥ + +indriyārtheṣu vairāgyam anahaṃkāra eva ca +janmamṛtyujarāvyādhiduḥkhadoṣānudarśanam + +asaktir anabhiṣvaṅgaḥ putradāragṛhādiṣu +nityaṃ ca samacittatvam iṣṭāniṣṭopapattiṣu + +mayi cānanyayogena bhaktir avyabhicāriṇī +viviktadeśasevitvam aratir janasaṃsadi + +adhyātmajñānanityatvaṃ tattvajñānārthadarśanam +etaj jñānam iti proktam ajñānaṃ yad ato 'nyathā + +jñeyaṃ yat tat pravakṣyāmi yaj jñātvāmṛtam aśnute +anādimat paraṃ brahma na sat tan nāsad ucyate + +sarvataḥpāṇipādaṃ tat sarvatokṣiśiromukham +sarvataḥśrutimal loke sarvam āvṛtya tiṣṭhati + +sarvendriyaguṇābhāsaṃ sarvendriyavivarjitam +asaktaṃ sarvabhṛc caiva nirguṇaṃ guṇabhoktṛ ca + +bahir antaś ca bhūtānām acaraṃ caram eva ca +sūkṣmatvāt tad avijñeyaṃ dūrasthaṃ cāntike ca tat + +avibhaktaṃ ca bhūteṣu vibhaktam iva ca sthitam +bhūtabhartṛ ca taj jñeyaṃ grasiṣṇu prabhaviṣṇu ca + +jyotiṣām api taj jyotis tamasaḥ param ucyate +jñānaṃ jñeyaṃ jñānagamyaṃ hṛdi sarvasya viṣṭhitam + +iti kṣetraṃ tathā jñānaṃ jñeyaṃ coktaṃ samāsataḥ +madbhakta etad vijñāya madbhāvāyopapadyate + +prakṛtiṃ puruṣaṃ caiva viddhy anādī ubhāv api +vikārāṃś ca guṇāṃś caiva viddhi prakṛtisaṃbhavān + +kāryakāraṇakartṛtve hetuḥ prakṛtir ucyate +puruṣaḥ sukhaduḥkhānāṃ bhoktṛtve hetur ucyate + +puruṣaḥ prakṛtistho hi bhuṅkte prakṛtijān guṇān +kāraṇaṃ guṇasaṅgo 'sya sadasadyonijanmasu + +upadraṣṭānumantā ca bhartā bhoktā maheśvaraḥ +paramātmeti cāpy ukto dehe 'smin puruṣaḥ paraḥ + +ya evaṃ vetti puruṣaṃ prakṛtiṃ ca guṇaiḥ saha +sarvathā vartamāno 'pi na sa bhūyo 'bhijāyate + +dhyānenātmani paśyanti ke cid ātmānam ātmanā +anye sāṃkhyena yogena karmayogena cāpare + +anye tv evam ajānantaḥ śrutvānyebhya upāsate +te 'pi cātitaranty eva mṛtyuṃ śrutiparāyaṇāḥ + +yāvat saṃjāyate kiṃ cit sattvaṃ sthāvarajaṅgamam +kṣetrakṣetrajñasaṃyogāt tad viddhi bharatarṣabha + +samaṃ sarveṣu bhūteṣu tiṣṭhantaṃ parameśvaram +vinaśyatsv avinaśyantaṃ yaḥ paśyati sa paśyati + +samaṃ paśyan hi sarvatra samavasthitam īśvaram +na hinasty ātmanātmānaṃ tato yāti parāṃ gatim + +prakṛtyaiva ca karmāṇi kriyamāṇāni sarvaśaḥ +yaḥ paśyati tathātmānam akartāraṃ sa paśyati + +yadā bhūtapṛthagbhāvam ekastham anupaśyati +tata eva ca vistāraṃ brahma saṃpadyate tadā + +anāditvān nirguṇatvāt paramātmāyam avyayaḥ +śarīrastho 'pi kaunteya na karoti na lipyate + +yathā sarvagataṃ saukṣmyād ākāśaṃ nopalipyate +sarvatrāvasthito dehe tathātmā nopalipyate + +yathā prakāśayaty ekaḥ kṛtsnaṃ lokam imaṃ raviḥ +kṣetraṃ kṣetrī tathā kṛtsnaṃ prakāśayati bhārata + +kṣetrakṣetrajñayor evam antaraṃ jñānacakṣuṣā +bhūtaprakṛtimokṣaṃ ca ye vidur yānti te param + +śrībhagavān uvāca +paraṃ bhūyaḥ pravakṣyāmi jñānānāṃ jñānam uttamam +yaj jñātvā munayaḥ sarve parāṃ siddhim ito gatāḥ + +idaṃ jñānam upāśritya mama sādharmyam āgatāḥ +sarge 'pi nopajāyante pralaye na vyathanti ca + +mama yonir mahad brahma tasmin garbhaṃ dadhāmy aham +saṃbhavaḥ sarvabhūtānāṃ tato bhavati bhārata + +sarvayoniṣu kaunteya mūrtayaḥ saṃbhavanti yāḥ +tāsāṃ brahma mahad yonir ahaṃ bījapradaḥ pitā + +sattvaṃ rajas tama iti guṇāḥ prakṛtisaṃbhavāḥ +nibadhnanti mahābāho dehe dehinam avyayam + +tatra sattvaṃ nirmalatvāt prakāśakam anāmayam +sukhasaṅgena badhnāti jñānasaṅgena cānagha + +rajo rāgātmakaṃ viddhi tṛṣṇāsaṅgasamudbhavam +tan nibadhnāti kaunteya karmasaṅgena dehinam + +tamas tv ajñānajaṃ viddhi mohanaṃ sarvadehinām +pramādālasyanidrābhis tan nibadhnāti bhārata + +sattvaṃ sukhe sañjayati rajaḥ karmaṇi bhārata +jñānam āvṛtya tu tamaḥ pramāde sañjayaty uta + +rajas tamaś cābhibhūya sattvaṃ bhavati bhārata +rajaḥ sattvaṃ tamaś caiva tamaḥ sattvaṃ rajas tathā + +sarvadvāreṣu dehe 'smin prakāśa upajāyate +jñānaṃ yadā tadā vidyād vivṛddhaṃ sattvam ity uta + +lobhaḥ pravṛttir ārambhaḥ karmaṇām aśamaḥ spṛhā +rajasy etāni jāyante vivṛddhe bharatarṣabha + +aprakāśo 'pravṛttiś ca pramādo moha eva ca +tamasy etāni jāyante vivṛddhe kurunandana + +yadā sattve pravṛddhe tu pralayaṃ yāti dehabhṛt +tadottamavidāṃ lokān amalān pratipadyate + +rajasi pralayaṃ gatvā karmasaṅgiṣu jāyate +tathā pralīnas tamasi mūḍhayoniṣu jāyate + +karmaṇaḥ sukṛtasyāhuḥ sāttvikaṃ nirmalaṃ phalam +rajasas tu phalaṃ duḥkham ajñānaṃ tamasaḥ phalam + +sattvāt saṃjāyate jñānaṃ rajaso lobha eva ca +pramādamohau tamaso bhavato 'jñānam eva ca + +ūrdhvaṃ gacchanti sattvasthā madhye tiṣṭhanti rājasāḥ +jaghanyaguṇavṛttasthā adho gacchanti tāmasāḥ + +nānyaṃ guṇebhyaḥ kartāraṃ yadā draṣṭānupaśyati +guṇebhyaś ca paraṃ vetti madbhāvaṃ so 'dhigacchati + +guṇān etān atītya trīn dehī dehasamudbhavān +janmamṛtyujarāduḥkhair vimukto 'mṛtam aśnute + +arjuna uvāca +kair liṅgais trīn guṇān etān atīto bhavati prabho +kimācāraḥ kathaṃ caitāṃs trīn guṇān ativartate + +śrībhagavān uvāca +prakāśaṃ ca pravṛttiṃ ca moham eva ca pāṇḍava +na dveṣṭi saṃpravṛttāni na nivṛttāni kāṅkṣati + +udāsīnavad āsīno guṇair yo na vicālyate +guṇā vartanta ity eva yo 'vatiṣṭhati neṅgate + +samaduḥkhasukhaḥ svasthaḥ samaloṣṭāśmakāñcanaḥ +tulyapriyāpriyo dhīras tulyanindātmasaṃstutiḥ +mānāvamānayos tulyas tulyo mitrāripakṣayoḥ +sarvārambhaparityāgī guṇātītaḥ sa ucyate + +māṃ ca yo 'vyabhicāreṇa bhaktiyogena sevate +sa guṇān samatītyaitān brahmabhūyāya kalpate + +brahmaṇo hi pratiṣṭhāham amṛtasyāvyayasya ca +śāśvatasya ca dharmasya sukhasyaikāntikasya ca + +śrībhagavān uvāca +ūrdhvamūlam adhaḥśākham aśvatthaṃ prāhur avyayam +chandāṃsi yasya parṇāni yas taṃ veda sa vedavit + +adhaś cordhvaṃ prasṛtās tasya śākhā; guṇapravṛddhā viṣayapravālāḥ +adhaś ca mūlāny anusaṃtatāni; karmānubandhīni manuṣyaloke + +na rūpam asyeha tathopalabhyate; nānto na cādir na ca saṃpratiṣṭhā +aśvattham enaṃ suvirūḍhamūlam; asaṅgaśastreṇa dṛḍhena chittvā + +tataḥ padaṃ tatparimārgitavyaṃ; yasmin gatā na nivartanti bhūyaḥ +tam eva cādyaṃ puruṣaṃ prapadye; yataḥ pravṛttiḥ prasṛtā purāṇī + +nirmānamohā jitasaṅgadoṣā; adhyātmanityā vinivṛttakāmāḥ +dvaṃdvair vimuktāḥ sukhaduḥkhasaṃjñair; gacchanty amūḍhāḥ padam avyayaṃ tat + +na tad bhāsayate sūryo na śaśāṅko na pāvakaḥ +yad gatvā na nivartante tad dhāma paramaṃ mama + +mamaivāṃśo jīvaloke jīvabhūtaḥ sanātanaḥ +manaḥṣaṣṭhānīndriyāṇi prakṛtisthāni karṣati + +śarīraṃ yad avāpnoti yac cāpy utkrāmatīśvaraḥ +gṛhītvaitāni saṃyāti vāyur gandhān ivāśayāt + +śrotraṃ cakṣuḥ sparśanaṃ ca rasanaṃ ghrāṇam eva ca +adhiṣṭhāya manaś cāyaṃ viṣayān upasevate + +utkrāmantaṃ sthitaṃ vāpi bhuñjānaṃ vā guṇānvitam +vimūḍhā nānupaśyanti paśyanti jñānacakṣuṣaḥ + +yatanto yoginaś cainaṃ paśyanty ātmany avasthitam +yatanto 'py akṛtātmāno nainaṃ paśyanty acetasaḥ + +yad ādityagataṃ tejo jagad bhāsayate 'khilam +yac candramasi yac cāgnau tat tejo viddhi māmakam + +gām āviśya ca bhūtāni dhārayāmy aham ojasā +puṣṇāmi cauṣadhīḥ sarvāḥ somo bhūtvā rasātmakaḥ + +ahaṃ vaiśvānaro bhūtvā prāṇināṃ deham āśritaḥ +prāṇāpānasamāyuktaḥ pacāmy annaṃ caturvidham + +sarvasya cāhaṃ hṛdi saṃniviṣṭo; mattaḥ smṛtir jñānam apohanaṃ ca +vedaiś ca sarvair aham eva vedyo; vedāntakṛd vedavid eva cāham + +dvāv imau puruṣau loke kṣaraś cākṣara eva ca +kṣaraḥ sarvāṇi bhūtāni kūṭastho 'kṣara ucyate + +uttamaḥ puruṣas tv anyaḥ paramātmety udāhṛtaḥ +yo lokatrayam āviśya bibharty avyaya īśvaraḥ + +yasmāt kṣaram atīto 'ham akṣarād api cottamaḥ +ato 'smi loke vede ca prathitaḥ puruṣottamaḥ + +yo mām evam asaṃmūḍho jānāti puruṣottamam +sa sarvavid bhajati māṃ sarvabhāvena bhārata + +iti guhyatamaṃ śāstram idam uktaṃ mayānagha +etad buddhvā buddhimān syāt kṛtakṛtyaś ca bhārata + +śrībhagavān uvāca +abhayaṃ sattvasaṃśuddhir jñānayogavyavasthitiḥ +dānaṃ damaś ca yajñaś ca svādhyāyas tapa ārjavam + +ahiṃsā satyam akrodhas tyāgaḥ śāntir apaiśunam +dayā bhūteṣv aloluptvaṃ mārdavaṃ hrīr acāpalam + +tejaḥ kṣamā dhṛtiḥ śaucam adroho nātimānitā +bhavanti saṃpadaṃ daivīm abhijātasya bhārata + +dambho darpo 'timānaś ca krodhaḥ pāruṣyam eva ca +ajñānaṃ cābhijātasya pārtha saṃpadam āsurīm + +daivī saṃpad vimokṣāya nibandhāyāsurī matā +mā śucaḥ saṃpadaṃ daivīm abhijāto 'si pāṇḍava + +dvau bhūtasargau loke 'smin daiva āsura eva ca +daivo vistaraśaḥ prokta āsuraṃ pārtha me śṛṇu + +pravṛttiṃ ca nivṛttiṃ ca janā na vidur āsurāḥ +na śaucaṃ nāpi cācāro na satyaṃ teṣu vidyate + +asatyam apratiṣṭhaṃ te jagad āhur anīśvaram +aparasparasaṃbhūtaṃ kim anyat kāmahaitukam + +etāṃ dṛṣṭim avaṣṭabhya naṣṭātmāno 'lpabuddhayaḥ +prabhavanty ugrakarmāṇaḥ kṣayāya jagato 'hitāḥ + +kāmam āśritya duṣpūraṃ dambhamānamadānvitāḥ +mohād gṛhītvāsadgrāhān pravartante 'śucivratāḥ + +cintām aparimeyāṃ ca pralayāntām upāśritāḥ +kāmopabhogaparamā etāvad iti niścitāḥ + +āśāpāśaśatair baddhāḥ kāmakrodhaparāyaṇāḥ +īhante kāmabhogārtham anyāyenārthasaṃcayān + +idam adya mayā labdham idaṃ prāpsye manoratham +idam astīdam api me bhaviṣyati punar dhanam + +asau mayā hataḥ śatrur haniṣye cāparān api +īśvaro 'ham ahaṃ bhogī siddho 'haṃ balavān sukhī + +āḍhyo 'bhijanavān asmi ko 'nyo 'sti sadṛśo mayā +yakṣye dāsyāmi modiṣya ity ajñānavimohitāḥ + +anekacittavibhrāntā mohajālasamāvṛtāḥ +prasaktāḥ kāmabhogeṣu patanti narake 'śucau + +ātmasaṃbhāvitāḥ stabdhā dhanamānamadānvitāḥ +yajante nāmayajñais te dambhenāvidhipūrvakam + +ahaṃkāraṃ balaṃ darpaṃ kāmaṃ krodhaṃ ca saṃśritāḥ +mām ātmaparadeheṣu pradviṣanto 'bhyasūyakāḥ + +tān ahaṃ dviṣataḥ krūrān saṃsāreṣu narādhamān +kṣipāmy ajasram aśubhān āsurīṣv eva yoniṣu + +āsurīṃ yonim āpannā mūḍhā janmani janmani +mām aprāpyaiva kaunteya tato yānty adhamāṃ gatim + +trividhaṃ narakasyedaṃ dvāraṃ nāśanam ātmanaḥ +kāmaḥ krodhas tathā lobhas tasmād etat trayaṃ tyajet + +etair vimuktaḥ kaunteya tamodvārais tribhir naraḥ +ācaraty ātmanaḥ śreyas tato yāti parāṃ gatim + +yaḥ śāstravidhim utsṛjya vartate kāmakārataḥ +na sa siddhim avāpnoti na sukhaṃ na parāṃ gatim + +tasmāc chāstraṃ pramāṇaṃ te kāryākāryavyavasthitau +jñātvā śāstravidhānoktaṃ karma kartum ihārhasi + +arjuna uvāca +ye śāstravidhim utsṛjya yajante śraddhayānvitāḥ +teṣāṃ niṣṭhā tu kā kṛṣṇa sattvam āho rajas tamaḥ + +śrībhagavān uvāca +trividhā bhavati śraddhā dehināṃ sā svabhāvajā +sāttvikī rājasī caiva tāmasī ceti tāṃ śṛṇu + +sattvānurūpā sarvasya śraddhā bhavati bhārata +śraddhāmayo 'yaṃ puruṣo yo yacchraddhaḥ sa eva saḥ + +yajante sāttvikā devān yakṣarakṣāṃsi rājasāḥ +pretān bhūtagaṇāṃś cānye yajante tāmasā janāḥ + +aśāstravihitaṃ ghoraṃ tapyante ye tapo janāḥ +dambhāhaṃkārasaṃyuktāḥ kāmarāgabalānvitāḥ + +karśayantaḥ śarīrasthaṃ bhūtagrāmam acetasaḥ +māṃ caivāntaḥśarīrasthaṃ tān viddhy āsuraniścayān +āhāras tv api sarvasya trividho bhavati priyaḥ +yajñas tapas tathā dānaṃ teṣāṃ bhedam imaṃ śṛṇu + +āyuḥsattvabalārogyasukhaprītivivardhanāḥ +rasyāḥ snigdhāḥ sthirā hṛdyā āhārāḥ sāttvikapriyāḥ + +kaṭvamlalavaṇātyuṣṇatīkṣṇarūkṣavidāhinaḥ +āhārā rājasasyeṣṭā duḥkhaśokāmayapradāḥ + +yātayāmaṃ gatarasaṃ pūti paryuṣitaṃ ca yat +ucchiṣṭam api cāmedhyaṃ bhojanaṃ tāmasapriyam + +aphalākāṅkṣibhir yajño vidhidṛṣṭo ya ijyate +yaṣṭavyam eveti manaḥ samādhāya sa sāttvikaḥ + +abhisaṃdhāya tu phalaṃ dambhārtham api caiva yat +ijyate bharataśreṣṭha taṃ yajñaṃ viddhi rājasam + +vidhihīnam asṛṣṭānnaṃ mantrahīnam adakṣiṇam +śraddhāvirahitaṃ yajñaṃ tāmasaṃ paricakṣate + +devadvijaguruprājñapūjanaṃ śaucam ārjavam +brahmacaryam ahiṃsā ca śārīraṃ tapa ucyate + +anudvegakaraṃ vākyaṃ satyaṃ priyahitaṃ ca yat +svādhyāyābhyasanaṃ caiva vāṅmayaṃ tapa ucyate + +manaḥprasādaḥ saumyatvaṃ maunam ātmavinigrahaḥ +bhāvasaṃśuddhir ity etat tapo mānasam ucyate + +śraddhayā parayā taptaṃ tapas tat trividhaṃ naraiḥ +aphalākāṅkṣibhir yuktaiḥ sāttvikaṃ paricakṣate + +satkāramānapūjārthaṃ tapo dambhena caiva yat +kriyate tad iha proktaṃ rājasaṃ calam adhruvam + +mūḍhagrāheṇātmano yat pīḍayā kriyate tapaḥ +parasyotsādanārthaṃ vā tat tāmasam udāhṛtam + +dātavyam iti yad dānaṃ dīyate 'nupakāriṇe +deśe kāle ca pātre ca tad dānaṃ sāttvikaṃ smṛtam + +yat tu pratyupakārārthaṃ phalam uddiśya vā punaḥ +dīyate ca parikliṣṭaṃ tad dānaṃ rājasaṃ smṛtam + +adeśakāle yad dānam apātrebhyaś ca dīyate +asatkṛtam avajñātaṃ tat tāmasam udāhṛtam + +oṃ tat sad iti nirdeśo brahmaṇas trividhaḥ smṛtaḥ +brāhmaṇās tena vedāś ca yajñāś ca vihitāḥ purā + +tasmād om ity udāhṛtya yajñadānatapaḥkriyāḥ +pravartante vidhānoktāḥ satataṃ brahmavādinām + +tad ity anabhisaṃdhāya phalaṃ yajñatapaḥkriyāḥ +dānakriyāś ca vividhāḥ kriyante mokṣakāṅkṣibhiḥ + +sadbhāve sādhubhāve ca sad ity etat prayujyate +praśaste karmaṇi tathā sacchabdaḥ pārtha yujyate + +yajñe tapasi dāne ca sthitiḥ sad iti cocyate +karma caiva tadarthīyaṃ sad ity evābhidhīyate + +aśraddhayā hutaṃ dattaṃ tapas taptaṃ kṛtaṃ ca yat +asad ity ucyate pārtha na ca tat pretya no iha + +arjuna uvāca +saṃnyāsasya mahābāho tattvam icchāmi veditum +tyāgasya ca hṛṣīkeśa pṛthak keśiniṣūdana + +śrībhagavān uvāca +kāmyānāṃ karmaṇāṃ nyāsaṃ saṃnyāsaṃ kavayo viduḥ +sarvakarmaphalatyāgaṃ prāhus tyāgaṃ vicakṣaṇāḥ + +tyājyaṃ doṣavad ity eke karma prāhur manīṣiṇaḥ +yajñadānatapaḥkarma na tyājyam iti cāpare + +niścayaṃ śṛṇu me tatra tyāge bharatasattama +tyāgo hi puruṣavyāghra trividhaḥ saṃprakīrtitaḥ +yajñadānatapaḥkarma na tyājyaṃ kāryam eva tat +yajño dānaṃ tapaś caiva pāvanāni manīṣiṇām + +etāny api tu karmāṇi saṅgaṃ tyaktvā phalāni ca +kartavyānīti me pārtha niścitaṃ matam uttamam + +niyatasya tu saṃnyāsaḥ karmaṇo nopapadyate +mohāt tasya parityāgas tāmasaḥ parikīrtitaḥ + +duḥkham ity eva yat karma kāyakleśabhayāt tyajet +sa kṛtvā rājasaṃ tyāgaṃ naiva tyāgaphalaṃ labhet + +kāryam ity eva yat karma niyataṃ kriyate 'rjuna +saṅgaṃ tyaktvā phalaṃ caiva sa tyāgaḥ sāttviko mataḥ + +na dveṣṭy akuśalaṃ karma kuśale nānuṣajjate +tyāgī sattvasamāviṣṭo medhāvī chinnasaṃśayaḥ + +na hi dehabhṛtā śakyaṃ tyaktuṃ karmāṇy aśeṣataḥ +yas tu karmaphalatyāgī sa tyāgīty abhidhīyate + +aniṣṭam iṣṭaṃ miśraṃ ca trividhaṃ karmaṇaḥ phalam +bhavaty atyāgināṃ pretya na tu saṃnyāsināṃ kva cit + +pañcaitāni mahābāho kāraṇāni nibodha me +sāṃkhye kṛtānte proktāni siddhaye sarvakarmaṇām + +adhiṣṭhānaṃ tathā kartā karaṇaṃ ca pṛthagvidham +vividhāś ca pṛthakceṣṭā daivaṃ caivātra pañcamam + +śarīravāṅmanobhir yat karma prārabhate naraḥ +nyāyyaṃ vā viparītaṃ vā pañcaite tasya hetavaḥ + +tatraivaṃ sati kartāram ātmānaṃ kevalaṃ tu yaḥ +paśyaty akṛtabuddhitvān na sa paśyati durmatiḥ + +yasya nāhaṃkṛto bhāvo buddhir yasya na lipyate +hatvāpi sa imāṃl lokān na hanti na nibadhyate + +jñānaṃ jñeyaṃ parijñātā trividhā karmacodanā +karaṇaṃ karma karteti trividhaḥ karmasaṃgrahaḥ + +jñānaṃ karma ca kartā ca tridhaiva guṇabhedataḥ +procyate guṇasaṃkhyāne yathāvac chṛṇu tāny api + +sarvabhūteṣu yenaikaṃ bhāvam avyayam īkṣate +avibhaktaṃ vibhakteṣu taj jñānaṃ viddhi sāttvikam + +pṛthaktvena tu yaj jñānaṃ nānābhāvān pṛthagvidhān +vetti sarveṣu bhūteṣu taj jñānaṃ viddhi rājasam + +yat tu kṛtsnavad ekasmin kārye saktam ahaitukam +atattvārthavad alpaṃ ca tat tāmasam udāhṛtam + +niyataṃ saṅgarahitam arāgadveṣataḥ kṛtam +aphalaprepsunā karma yat tat sāttvikam ucyate + +yat tu kāmepsunā karma sāhaṃkāreṇa vā punaḥ +kriyate bahulāyāsaṃ tad rājasam udāhṛtam + +anubandhaṃ kṣayaṃ hiṃsām anapekṣya ca pauruṣam +mohād ārabhyate karma yat tat tāmasam ucyate + +muktasaṅgo 'nahaṃvādī dhṛtyutsāhasamanvitaḥ +siddhyasiddhyor nirvikāraḥ kartā sāttvika ucyate + +rāgī karmaphalaprepsur lubdho hiṃsātmako 'śuciḥ +harṣaśokānvitaḥ kartā rājasaḥ parikīrtitaḥ + +ayuktaḥ prākṛtaḥ stabdhaḥ śaṭho naikṛtiko 'lasaḥ +viṣādī dīrghasūtrī ca kartā tāmasa ucyate + +buddher bhedaṃ dhṛteś caiva guṇatas trividhaṃ śṛṇu +procyamānam aśeṣeṇa pṛthaktvena dhanaṃjaya + +pravṛttiṃ ca nivṛttiṃ ca kāryākārye bhayābhaye +bandhaṃ mokṣaṃ ca yā vetti buddhiḥ sā pārtha sāttvikī + +yayā dharmam adharmaṃ ca kāryaṃ cākāryam eva ca +ayathāvat prajānāti buddhiḥ sā pārtha rājasī + +adharmaṃ dharmam iti yā manyate tamasāvṛtā +sarvārthān viparītāṃś ca buddhiḥ sā pārtha tāmasī + +dhṛtyā yayā dhārayate manaḥprāṇendriyakriyāḥ +yogenāvyabhicāriṇyā dhṛtiḥ sā pārtha sāttvikī + +yayā tu dharmakāmārthān dhṛtyā dhārayate 'rjuna +prasaṅgena phalākāṅkṣī dhṛtiḥ sā pārtha rājasī + +yayā svapnaṃ bhayaṃ śokaṃ viṣādaṃ madam eva ca +na vimuñcati durmedhā dhṛtiḥ sā pārtha tāmasī + +sukhaṃ tv idānīṃ trividhaṃ śṛṇu me bharatarṣabha +abhyāsād ramate yatra duḥkhāntaṃ ca nigacchati + +yat tadagre viṣam iva pariṇāme 'mṛtopamam +tat sukhaṃ sāttvikaṃ proktam ātmabuddhiprasādajam + +viṣayendriyasaṃyogād yat tadagre 'mṛtopamam +pariṇāme viṣam iva tat sukhaṃ rājasaṃ smṛtam + +yad agre cānubandhe ca sukhaṃ mohanam ātmanaḥ +nidrālasyapramādotthaṃ tat tāmasam udāhṛtam + +na tad asti pṛthivyāṃ vā divi deveṣu vā punaḥ +sattvaṃ prakṛtijair muktaṃ yad ebhiḥ syāt tribhir guṇaiḥ + +brāhmaṇakṣatriyaviśāṃ śūdrāṇāṃ ca paraṃtapa +karmāṇi pravibhaktāni svabhāvaprabhavair guṇaiḥ + +śamo damas tapaḥ śaucaṃ kṣāntir ārjavam eva ca +jñānaṃ vijñānam āstikyaṃ brahmakarma svabhāvajam + +śauryaṃ tejo dhṛtir dākṣyaṃ yuddhe cāpy apalāyanam +dānam īśvarabhāvaś ca kṣatrakarma svabhāvajam + +kṛṣigorakṣyavāṇijyaṃ vaiśyakarma svabhāvajam +paricaryātmakaṃ karma śūdrasyāpi svabhāvajam + +sve sve karmaṇy abhirataḥ saṃsiddhiṃ labhate naraḥ +svakarmanirataḥ siddhiṃ yathā vindati tac chṛṇu + +yataḥ pravṛttir bhūtānāṃ yena sarvam idaṃ tatam +svakarmaṇā tam abhyarcya siddhiṃ vindati mānavaḥ + +śreyān svadharmo viguṇaḥ paradharmāt svanuṣṭhitāt +svabhāvaniyataṃ karma kurvan nāpnoti kilbiṣam + +sahajaṃ karma kaunteya sadoṣam api na tyajet +sarvārambhā hi doṣeṇa dhūmenāgnir ivāvṛtāḥ + +asaktabuddhiḥ sarvatra jitātmā vigataspṛhaḥ +naiṣkarmyasiddhiṃ paramāṃ saṃnyāsenādhigacchati + +siddhiṃ prāpto yathā brahma tathāpnoti nibodha me +samāsenaiva kaunteya niṣṭhā jñānasya yā parā + +buddhyā viśuddhayā yukto dhṛtyātmānaṃ niyamya ca +śabdādīn viṣayāṃs tyaktvā rāgadveṣau vyudasya ca + +viviktasevī laghvāśī yatavākkāyamānasaḥ +dhyānayogaparo nityaṃ vairāgyaṃ samupāśritaḥ + +ahaṃkāraṃ balaṃ darpaṃ kāmaṃ krodhaṃ parigraham +vimucya nirmamaḥ śānto brahmabhūyāya kalpate + +brahmabhūtaḥ prasannātmā na śocati na kāṅkṣati +samaḥ sarveṣu bhūteṣu madbhaktiṃ labhate parām + +bhaktyā mām abhijānāti yāvān yaś cāsmi tattvataḥ +tato māṃ tattvato jñātvā viśate tadanantaram + +sarvakarmāṇy api sadā kurvāṇo madvyapāśrayaḥ +matprasādād avāpnoti śāśvataṃ padam avyayam + +cetasā sarvakarmāṇi mayi saṃnyasya matparaḥ +buddhiyogam upāśritya maccittaḥ satataṃ bhava + +maccittaḥ sarvadurgāṇi matprasādāt tariṣyasi +atha cet tvam ahaṃkārān na śroṣyasi vinaṅkṣyasi + +yad ahaṃkāram āśritya na yotsya iti manyase +mithyaiṣa vyavasāyas te prakṛtis tvāṃ niyokṣyati + +svabhāvajena kaunteya nibaddhaḥ svena karmaṇā +kartuṃ necchasi yan mohāt kariṣyasy avaśo 'pi tat + +īśvaraḥ sarvabhūtānāṃ hṛddeśe 'rjuna tiṣṭhati +bhrāmayan sarvabhūtāni yantrārūḍhāni māyayā + +tam eva śaraṇaṃ gaccha sarvabhāvena bhārata +tatprasādāt parāṃ śāntiṃ sthānaṃ prāpsyasi śāśvatam + +iti te jñānam ākhyātaṃ guhyād guhyataraṃ mayā +vimṛśyaitad aśeṣeṇa yathecchasi tathā kuru + +sarvaguhyatamaṃ bhūyaḥ śṛṇu me paramaṃ vacaḥ +iṣṭo 'si me dṛḍham iti tato vakṣyāmi te hitam + +manmanā bhava madbhakto madyājī māṃ namaskuru +mām evaiṣyasi satyaṃ te pratijāne priyo 'si me + +sarvadharmān parityajya mām ekaṃ śaraṇaṃ vraja +ahaṃ tvā sarvapāpebhyo mokṣayiṣyāmi mā śucaḥ + +idaṃ te nātapaskāya nābhaktāya kadā cana +na cāśuśrūṣave vācyaṃ na ca māṃ yo 'bhyasūyati + +ya idaṃ paramaṃ guhyaṃ madbhakteṣv abhidhāsyati +bhaktiṃ mayi parāṃ kṛtvā mām evaiṣyaty asaṃśayaḥ + +na ca tasmān manuṣyeṣu kaś cin me priyakṛttamaḥ +bhavitā na ca me tasmād anyaḥ priyataro bhuvi + +adhyeṣyate ca ya imaṃ dharmyaṃ saṃvādam āvayoḥ +jñānayajñena tenāham iṣṭaḥ syām iti me matiḥ + +śraddhāvān anasūyaś ca śṛṇuyād api yo naraḥ +so 'pi muktaḥ śubhāṃl lokān prāpnuyāt puṇyakarmaṇām + +kaccid etac chrutaṃ pārtha tvayaikāgreṇa cetasā +kaccid ajñānasaṃmohaḥ pranaṣṭas te dhanaṃjaya + +arjuna uvāca +naṣṭo mohaḥ smṛtir labdhā tvatprasādān mayācyuta +sthito 'smi gatasaṃdehaḥ kariṣye vacanaṃ tava + +saṃjaya uvāca +ity ahaṃ vāsudevasya pārthasya ca mahātmanaḥ +saṃvādam imam aśrauṣam adbhutaṃ romaharṣaṇam + +vyāsaprasādāc chrutavān etad guhyam ahaṃ param +yogaṃ yogeśvarāt kṛṣṇāt sākṣāt kathayataḥ svayam + +rājan saṃsmṛtya saṃsmṛtya saṃvādam imam adbhutam +keśavārjunayoḥ puṇyaṃ hṛṣyāmi ca muhur muhuḥ + +tac ca saṃsmṛtya saṃsmṛtya rūpam atyadbhutaṃ hareḥ +vismayo me mahān rājan hṛṣyāmi ca punaḥ punaḥ + +yatra yogeśvaraḥ kṛṣṇo yatra pārtho dhanurdharaḥ +tatra śrīr vijayo bhūtir dhruvā nītir matir mama + diff --git a/t/33_tr_BGN-PCGN_RUS_Strict.t b/t/33_tr_BGN-PCGN_RUS_Strict.t new file mode 100644 index 0000000..a3b1ab6 --- /dev/null +++ b/t/33_tr_BGN-PCGN_RUS_Strict.t @@ -0,0 +1,134 @@ +# =========================================================================== +# BGN/PCGN Romanization System for Russian (Strict Variant) +# for Lingua::Translit Perl Module +# https://github.com/ndlecic/bgn-pcgn_rus +# +# Copyright 2017 Nikola D. Lečić +# =========================================================================== +# +# This implementation of BGN/PCGN romanization system comes in two +# variants: +# - strict +# - standard +# Please see respective XML files for explanations. + +use strict; +use utf8; +use Test::More tests => 7; +use Lingua::Translit; + +my $name = "BGN/PCGN RUS Strict"; +my $reversible = 0; + +my $input = "Все люди рождаются свободными и равными в " . + "своём достоинстве и правах. Они наделены разумом и " . + "совестью и должны поступать в отношении друг " . + "друга в духе братства."; +my $output_ok = "Vse lyudi rozhdayut·sya svobodnymi i ravnymi v " . + "svoyëm dostoinstve i pravakh. Oni nadeleny razumom i " . + "sovest'yu i dolzhny postupat' v otnoshenii drug " . + "druga v dukhe brat·stva."; + +my $context = "акце́нт, Елисеев, Алетейя, Мейер, Кайафа, " . + "Йадав, её; Её, подъём, Йэн, йэн, додекаэдр, " . + "ещё, чьё, интеръекционный, выудить, Майя, " . + "9-е мая, фойе, Фейербах, Чистые пруды, " . + "Достоевский, Толстой, Горкий, Аркадий, Белый, " . + "Юрий, Сергей, Хрущёв, Горбачёв"; +my $context_ok = "aktsent, Yeliseyev, Aleteyya, Meyyer, Kay·afa, " . + "Y·adav, yeyë; Yeyë, pod''yëm, Y·en, y·en, dodekaedr, " . + "yeshchë, ch'yë, inter''yektsionnyy, vy·udit', Mayya, " . + "9-ye maya, foyye, Feyyerbakh, Chistyye prudy, " . + "Dostoyevskiy, Tolstoy, Gorkiy, Arkadiy, Belyy, " . + "Yuriy, Sergey, Khrushchëv, Gorbachëv"; + +my $abbr = "ВЦИОМ, РАНХиГС, НЭП, РОССПЭН, АЭС, РЖД, СПбГУ, " . + "ЮАР, ЮФУ, ЮУрГУ, РостГЭУ-РИНХ, " . + "Ю. Я. Щербаков и Е. Е. Ёлкина"; +my $abbr_ok = "VTsIOM, RANKhiGS, N·EP, ROSSP·EN, AES, RZhD, SPbGU, " . + "YuAR, YuFU, YuUrGU, RostG·EU-RINKh, " . + "Yu. Ya. Shcherbakov i Ye. Ye. Yëlkina"; + +my $excl = "Ыыыыыы! ЫЫЫЫЫЫ! Ай-ай-ай. Ээээээххх... " . + "Жжжжжж! Йех-ай-яй! Ё-моё..."; +my $excl_ok = "Y·y·y·y·y·y! Y·Y·Y·Y·Y·Y! Ay-ay-ay. Eeeeeekhkhkh... " . + "Zhzhzhzhzhzh! Yyekh-ay-yay! Yë-moyë..."; + +# Geographic names (geo and nonrusgeo tests) are taken from +# https://en.wikipedia.org/wiki/BGN/PCGN_romanization_of_Russian +# https://en.wikipedia.org/wiki/Wikipedia:Romanization_of_Russian +my $geo = "Азов, Тамбов, Барнаул, Кубань, Владимир, " . + "Ульяновск, Грозный, Волгодонск, Дзержинский, " . + "Нелидово, Елизово, Чапаевск, Юрьев, Съезд, " . + "Белкин, Ёлкин, Остриё, Громадьё, Подъёмный, " . + "Озёрный, Жуков, Лужники, Звенигород, Вязьма, " . + "Иркутск, Апатиты, Бийск, Киров, Енисейск, " . + "Ломоносов, Нелидово, Менделеев, Каменка, " . + "Новосибирск, Кандалакша, Омск, Красноярск, " . + "Петрозаводск, Серпухов, Ростов, " . + "Северобайкальск, Сковородино, Чайковский, " . + "Тамбов, Мытищи, Углич, Дудинка, Фурманов, Уфа, " . + "Хабаровск, Прохладный, Цимлянск, Ельцин, " . + "Чебоксары, Печора, Шахтёрск, Мышкин, Щёлково, " . + "Ртищево, Тында, Тюмень, Электрогорск, " . + "Радиоэлектроника, Юбилейный, Ключевская, " . + "Якутск, Брянск, Набережные Челны"; +my $geo_ok = "Azov, Tambov, Barnaul, Kuban', Vladimir, " . + "Ul'yanovsk, Groznyy, Volgodonsk, Dzerzhinskiy, " . + "Nelidovo, Yelizovo, Chapayevsk, Yur'yev, " . + "S''yezd, Belkin, Yëlkin, Ostriyë, Gromad'yë, " . + "Pod''yëmnyy, Ozërnyy, Zhukov, Luzhniki, " . + "Zvenigorod, Vyaz'ma, Irkut·sk, Apatity, Biysk, " . + "Kirov, Yeniseysk, Lomonosov, Nelidovo, " . + "Mendeleyev, Kamenka, Novosibirsk, Kandalaksha, " . + "Omsk, Krasnoyarsk, Petrozavodsk, Serpukhov, " . + "Rostov, Severobaykal'sk, Skovorodino, " . + "Chaykovskiy, Tambov, Mytishchi, Uglich, " . + "Dudinka, Furmanov, Ufa, Khabarovsk, " . + "Prokhladnyy, Tsimlyansk, Yel'tsin, Cheboksary, " . + "Pechora, Shakhtërsk, Myshkin, Shchëlkovo, " . + "Rtishchevo, Tynda, Tyumen', Elektrogorsk, " . + "Radioelektronika, Yubileynyy, Klyuchevskaya, " . + "Yakut·sk, Bryansk, Naberezhnyye Chelny"; + +my $nonrusgeo = "Йёнчёпинг, Тыайа, Сайылык, Ойусардах, " . + "Йошкар-Ола, Ыгыатта, Тыэкан, Суык-Су, " . + "Куыркъявр, Иссык-Куль, Вяртсиля, " . + "Ташчишма, Улан-Удэ, Мусийкъонгийкоте, " . + "Рыркайпий, Йемен"; +my $nonrusgeo_ok= "Yyënchëping, Ty·ay·a, Say·ylyk, Oy·usardakh, " . + "Yoshkar-Ola, Ygy·atta, Ty·ekan, Su·yk-Su, " . + "Ku·yrk''yavr, Issyk-Kul', Vyart·silya, " . + "Tash·chishma, Ulan-Ud·e, Musiyk''ongiykote, " . + "Ryrkaypiy, Yyemen"; + +my $tr = new Lingua::Translit($name); + +# 1 +is($tr->can_reverse(), $reversible, "$name: Reversibility"); + +# 2 +my $output = $tr->translit($input); +is($output, $output_ok, "$name: Universal declaration of human rights"); + +# 3 +$output = $tr->translit($context); +is($output, $context_ok, "$name: Context-sensitive sequences and various name endings"); + +# 4 +$output = $tr->translit($abbr); +is($output, $abbr_ok, "$name: Abbreviations"); + +# 5 +$output = $tr->translit($excl); +is($output, $excl_ok, "$name: Various exclamations"); + +# 6 +$output = $tr->translit($geo); +is($output, $geo_ok, "$name: Various geographic names"); + +# 7 +$output = $tr->translit($nonrusgeo); +is($output, $nonrusgeo_ok, "$name: Complex names of non-Russian origin"); + +# vim: sts=4 sw=4 ai et diff --git a/t/34_tr_BGN-PCGN_RUS_Standard.t b/t/34_tr_BGN-PCGN_RUS_Standard.t new file mode 100644 index 0000000..a557dd9 --- /dev/null +++ b/t/34_tr_BGN-PCGN_RUS_Standard.t @@ -0,0 +1,134 @@ +# =========================================================================== +# BGN/PCGN Romanization System for Russian (Standard Variant) +# for Lingua::Translit Perl Module +# https://github.com/ndlecic/bgn-pcgn_rus +# +# Copyright 2017 Nikola D. Lečić +# =========================================================================== +# +# This implementation of BGN/PCGN romanization system comes in two +# variants: +# - strict +# - standard +# Please see respective XML files for explanations. + +use strict; +use utf8; +use Test::More tests => 7; +use Lingua::Translit; + +my $name = "BGN/PCGN RUS Standard"; +my $reversible = 0; + +my $input = "Все люди рождаются свободными и равными в " . + "своём достоинстве и правах. Они наделены разумом и " . + "совестью и должны поступать в отношении друг " . + "друга в духе братства."; +my $output_ok = "Vse lyudi rozhdayutsya svobodnymi i ravnymi v " . + "svoyëm dostoinstve i pravakh. Oni nadeleny razumom i " . + "sovest'yu i dolzhny postupat' v otnoshenii drug " . + "druga v dukhe bratstva."; + +my $context = "акце́нт, Елисеев, Алетейя, Мейер, Кайафа, " . + "Йадав, её; Её, подъём, Йэн, йэн, додекаэдр, " . + "ещё, чьё, интеръекционный, выудить, Майя, " . + "9-е мая, фойе, Фейербах, Чистые пруды, " . + "Достоевский, Толстой, Горкий, Аркадий, Белый, " . + "Юрий, Сергей, Хрущёв, Горбачёв"; +my $context_ok = "aktsent, Yeliseyev, Aleteyya, Meyyer, Kayafa, " . + "Yadav, yeyë; Yeyë, pod''yëm, Yen, yen, dodekaedr, " . + "yeshchë, ch'yë, inter''yektsionnyy, vyudit', Mayya, " . + "9-ye maya, foyye, Feyyerbakh, Chistyye prudy, " . + "Dostoyevskiy, Tolstoy, Gorkiy, Arkadiy, Belyy, " . + "Yuriy, Sergey, Khrushchëv, Gorbachëv"; + +my $abbr = "ВЦИОМ, РАНХиГС, НЭП, РОССПЭН, АЭС, РЖД, СПбГУ, " . + "ЮАР, ЮФУ, ЮУрГУ, РостГЭУ-РИНХ, " . + "Ю. Я. Щербаков и Е. Е. Ёлкина"; +my $abbr_ok = "VTsIOM, RANKhiGS, NEP, ROSSPEN, AES, RZhD, SPbGU, " . + "YuAR, YuFU, YuUrGU, RostGEU-RINKh, " . + "Yu. Ya. Shcherbakov i Ye. Ye. Yëlkina"; + +my $excl = "Ыыыыыы! ЫЫЫЫЫЫ! Ай-ай-ай. Ээээээххх... " . + "Жжжжжж! Йех-ай-яй! Ё-моё..."; +my $excl_ok = "Yyyyyy! YYYYYY! Ay-ay-ay. Eeeeeekhkhkh... " . + "Zhzhzhzhzhzh! Yyekh-ay-yay! Yë-moyë..."; + +# Geographic names (geo and nonrusgeo tests) are taken from +# https://en.wikipedia.org/wiki/BGN/PCGN_romanization_of_Russian +# https://en.wikipedia.org/wiki/Wikipedia:Romanization_of_Russian +my $geo = "Азов, Тамбов, Барнаул, Кубань, Владимир, " . + "Ульяновск, Грозный, Волгодонск, Дзержинский, " . + "Нелидово, Елизово, Чапаевск, Юрьев, Съезд, " . + "Белкин, Ёлкин, Остриё, Громадьё, Подъёмный, " . + "Озёрный, Жуков, Лужники, Звенигород, Вязьма, " . + "Иркутск, Апатиты, Бийск, Киров, Енисейск, " . + "Ломоносов, Нелидово, Менделеев, Каменка, " . + "Новосибирск, Кандалакша, Омск, Красноярск, " . + "Петрозаводск, Серпухов, Ростов, " . + "Северобайкальск, Сковородино, Чайковский, " . + "Тамбов, Мытищи, Углич, Дудинка, Фурманов, Уфа, " . + "Хабаровск, Прохладный, Цимлянск, Ельцин, " . + "Чебоксары, Печора, Шахтёрск, Мышкин, Щёлково, " . + "Ртищево, Тында, Тюмень, Электрогорск, " . + "Радиоэлектроника, Юбилейный, Ключевская, " . + "Якутск, Брянск, Набережные Челны"; +my $geo_ok = "Azov, Tambov, Barnaul, Kuban', Vladimir, " . + "Ul'yanovsk, Groznyy, Volgodonsk, Dzerzhinskiy, " . + "Nelidovo, Yelizovo, Chapayevsk, Yur'yev, " . + "S''yezd, Belkin, Yëlkin, Ostriyë, Gromad'yë, " . + "Pod''yëmnyy, Ozërnyy, Zhukov, Luzhniki, " . + "Zvenigorod, Vyaz'ma, Irkutsk, Apatity, Biysk, " . + "Kirov, Yeniseysk, Lomonosov, Nelidovo, " . + "Mendeleyev, Kamenka, Novosibirsk, Kandalaksha, " . + "Omsk, Krasnoyarsk, Petrozavodsk, Serpukhov, " . + "Rostov, Severobaykal'sk, Skovorodino, " . + "Chaykovskiy, Tambov, Mytishchi, Uglich, " . + "Dudinka, Furmanov, Ufa, Khabarovsk, " . + "Prokhladnyy, Tsimlyansk, Yel'tsin, Cheboksary, " . + "Pechora, Shakhtërsk, Myshkin, Shchëlkovo, " . + "Rtishchevo, Tynda, Tyumen', Elektrogorsk, " . + "Radioelektronika, Yubileynyy, Klyuchevskaya, " . + "Yakutsk, Bryansk, Naberezhnyye Chelny"; + +my $nonrusgeo = "Йёнчёпинг, Тыайа, Сайылык, Ойусардах, " . + "Йошкар-Ола, Ыгыатта, Тыэкан, Суык-Су, " . + "Куыркъявр, Иссык-Куль, Вяртсиля, " . + "Ташчишма, Улан-Удэ, Мусийкъонгийкоте, " . + "Рыркайпий, Йемен"; +my $nonrusgeo_ok= "Yyënchëping, Tyaya, Sayylyk, Oyusardakh, " . + "Yoshkar-Ola, Ygyatta, Tyekan, Suyk-Su, " . + "Kuyrk''yavr, Issyk-Kul', Vyartsilya, " . + "Tashchishma, Ulan-Ude, Musiyk''ongiykote, " . + "Ryrkaypiy, Yyemen"; + +my $tr = new Lingua::Translit($name); + +# 1 +is($tr->can_reverse(), $reversible, "$name: Reversibility"); + +# 2 +my $output = $tr->translit($input); +is($output, $output_ok, "$name: Universal declaration of human rights"); + +# 3 +$output = $tr->translit($context); +is($output, $context_ok, "$name: Context-sensitive sequences and various name endings"); + +# 4 +$output = $tr->translit($abbr); +is($output, $abbr_ok, "$name: Abbreviations"); + +# 5 +$output = $tr->translit($excl); +is($output, $excl_ok, "$name: Various exclamations"); + +# 6 +$output = $tr->translit($geo); +is($output, $geo_ok, "$name: Various geographic names"); + +# 7 +$output = $tr->translit($nonrusgeo); +is($output, $nonrusgeo_ok, "$name: Complex names of non-Russian origin"); + +# vim: sts=4 sw=4 ai et diff --git a/t/90_zero.t b/t/90_zero.t new file mode 100644 index 0000000..a91a46c --- /dev/null +++ b/t/90_zero.t @@ -0,0 +1,87 @@ +use strict; +use Test::More tests => 15; + +my $name = "DIN 1460 UKR"; +my $reversible = 1; + +use Lingua::Translit; + +my $tr = new Lingua::Translit($name); + +my $output; + + +# 1 +is($tr->can_reverse(), $reversible, "$name: reversibility"); + +# 2 +$output = $tr->translit( "0" ); + +is($output, "0", "$name: transliteration #1"); + +# 3 +$output = $tr->translit( 0 ); + +is($output, "0", "$name: transliteration #2"); + +# 4 +$output = $tr->translit( "\x30" ); + +is($output, "0", "$name: transliteration #3"); + +# 5 +$output = $tr->translit(); + +is($output, undef, "$name: transliteration #4"); + +# 6 +$output = $tr->translit( undef ); + +is($output, undef, "$name: transliteration #5"); + +# 7 +$output = $tr->translit( '' ); + +is($output, '', "$name: transliteration #6"); + +# 8 +$output = $tr->translit( '01' ); + +is($output, '01', "$name: transliteration #7"); + +# 9 +$output = $tr->translit_reverse( "0" ); + +is($output, "0", "$name: transliteration #8"); + +# 10 +$output = $tr->translit_reverse( 0 ); + +is($output, "0", "$name: transliteration #9"); + +# 11 +$output = $tr->translit_reverse( "\x30" ); + +is($output, "0", "$name: transliteration #10"); + +# 12 +$output = $tr->translit_reverse(); + +is($output, undef, "$name: transliteration #11"); + +# 13 +$output = $tr->translit_reverse( undef ); + +is($output, undef, "$name: transliteration #12"); + +# 14 +$output = $tr->translit_reverse( '' ); + +is($output, '', "$name: transliteration #13"); + +# 15 +$output = $tr->translit_reverse( '01' ); + +is($output, '01', "$name: transliteration #14"); + +# vim: set ft=perl sts=4 sw=4 ts=4 ai et: diff --git a/tools/substitute_tables.pl b/tools/substitute_tables.pl index e18f3f3..13280c8 100755 --- a/tools/substitute_tables.pl +++ b/tools/substitute_tables.pl @@ -2,7 +2,9 @@ # # Copyright (C) 2007-2008 Alex Linke -# Copyright (C) 2009-2014 Lingua-Systems Software GmbH +# Copyright (C) 2009-2016 Lingua-Systems Software GmbH +# Copyright (C) 2016-2017 Netzum Sorglos, Lingua-Systems Software GmbH +# Copyright (C) 2017-2022 Netzum Sorglos Software GmbH # use strict; @@ -40,4 +42,4 @@ print $fh $in_content; $fh->close(); -# vim: sts=4 sw=4 ts=4 ai et +# vim: set ft=perl sts=4 sw=4 ts=4 ai et: diff --git a/translit b/translit index f10bbe8..0dc927f 100755 --- a/translit +++ b/translit @@ -4,7 +4,9 @@ # Copyright (C) 2007-2008 ... # Alex Linke # Rona Linke -# Copyright (C) 2009-2014 Lingua-Systems Software GmbH +# Copyright (C) 2009-2016 Lingua-Systems Software GmbH +# Copyright (C) 2016-2017 Netzum Sorglos, Lingua-Systems Software GmbH +# Copyright (C) 2017-2022 Netzum Sorglos Software GmbH # use strict; @@ -15,7 +17,7 @@ require 5.008; use Lingua::Translit; use Lingua::Translit::Tables qw/:all/; -my $VERSION = '0.4'; +my $VERSION = '0.6'; =pod @@ -186,7 +188,7 @@ sub show_help { my $retval = shift(); print "translit v$VERSION -- ", - "(c) 2009-2014 Lingua-Systems Software GmbH\n\n", + "(c) 2007-2022 Netzum Sorglos Software GmbH\n\n", "usage: $0 -i FILE -o FILE -t NAME -r -l -v -h\n\n", " --infile -i FILE read input from FILE\n", " --outfile -o FILE write output to FILE\n", @@ -217,7 +219,8 @@ The input has to be UTF-8 encoded. None known. -Please report bugs to perl@lingua-systems.com. +Please report bugs using CPAN's request tracker at +L. =head1 SEE ALSO @@ -225,20 +228,23 @@ L, L =head1 AUTHORS -Alex Linke +Alex Linke -Rona Linke +Rona Linke =head1 LICENSE AND COPYRIGHT Copyright (C) 2007-2008 Alex Linke and Rona Linke -Copyright (C) 2009-2014 Lingua-Systems Software GmbH +Copyright (C) 2009-2016 Lingua-Systems Software GmbH -This program is free software. It may be used, redistributed -and/or modified under the terms of either the GPL v2 or the -Artistic license. +Copyright (C) 2016-2017 Netzum Sorglos, Lingua-Systems Software GmbH + +Copyright (C) 2017-2022 Netzum Sorglos Software GmbH + +This module is free software; you can redistribute it and/or modify it under +the same terms as Perl itself. =cut -# vim: sts=4 sw=4 ts=4 ai et +# vim: set ft=perl sts=4 sw=4 ts=4 ai et: diff --git a/xml/Makefile b/xml/Makefile index c8ce93b..7b9558a 100644 --- a/xml/Makefile +++ b/xml/Makefile @@ -6,7 +6,8 @@ INDENT := xmlindent -i 4 # List of stable and supported transliteration tables TABLES := din_31634.xml \ din_1460_bul.xml din_1460_rus.xml din_1460_ukr.xml \ - iso_843.xml iso_9.xml \ + iso_843.xml iso_9.xml iso-r_9.xml \ + iso_8859-16_ron.xml \ streamlined_system_bul.xml \ greeklish.xml \ common_deu.xml common_ron.xml common_ces.xml \ @@ -14,7 +15,9 @@ TABLES := din_31634.xml \ common_ara.xml \ gost_7-79_rus_old.xml gost_7-79_rus.xml \ gost_7-79_ukr.xml \ - ala-lc_rus.xml + ala-lc_rus.xml \ + devanagari_iast.xml iast_devanagari.xml \ + bgn-pcgn_rus_standard.xml bgn-pcgn_rus_strict.xml all: clean tables diff --git a/xml/bgn-pcgn_rus_standard.xml b/xml/bgn-pcgn_rus_standard.xml new file mode 100644 index 0000000..ca309ed --- /dev/null +++ b/xml/bgn-pcgn_rus_standard.xml @@ -0,0 +1,575 @@ + + + + + + + + + BGN/PCGN RUS Standard + BGN/PCGN:1947 (Standard Variant), Cyrillic to Latin, Russian + false + + + + + + + + ́ + + + + + + + + Е + Ye + + + [АЕЁИОУЫЭЮЯЙЬЪаеёиоуыэюяйьъ] + + + + + Е + Ye + + \b + + + + + Е + E + + + + + Ё + + + + [АЕЁИОУЫЭЮЯЙЬЪаеёиоуыэюяйьъe] + + + + + Ё + + + \b + + + + + + + Ё + Ë + + + + Й + Y + + + + Ы + Y + + + + Э + E + + + + А + A + + + + Б + B + + + + В + V + + + + Г + G + + + + Д + D + + + + Ж + Zh + + + + З + Z + + + + И + I + + + + К + K + + + + Л + L + + + + М + M + + + + Н + N + + + + О + O + + + + П + P + + + + Р + R + + + + С + S + + + + Т + T + + + + У + U + + + + Ф + F + + + + Х + Kh + + + + Ц + Ts + + + + Ч + Ch + + + + Ш + Sh + + + + Щ + Shch + + + + + Ъ + '' + + + + Ь + ' + + + + Ю + Yu + + + + Я + Ya + + + + + + + е + ye + + + [AEËIOUYeëau'аеёиоуыэюяйьъ] + + + + + е + ye + + \b + + + + + е + e + + + + + ё + + + + [AEËIOUYeëau'аеёиоуыэюяйьъ] + + + + + ё + + + \b + + + + + ё + ë + + + + + + й + y + + + + ы + y + + + + э + e + + + + а + a + + + + б + b + + + + в + v + + + + г + g + + + + д + d + + + + ж + zh + + + + з + z + + + + и + i + + + + к + k + + + + л + l + + + + м + m + + + + н + n + + + + о + o + + + + п + p + + + + р + r + + + + с + s + + + + т + t + + + + у + u + + + + ф + f + + + + х + kh + + + + ц + ts + + + + ч + ch + + + + ш + sh + + + + щ + shch + + + + + ъ + '' + + + + ь + ' + + + + ю + yu + + + + я + ya + + + + + + + diff --git a/xml/bgn-pcgn_rus_strict.xml b/xml/bgn-pcgn_rus_strict.xml new file mode 100644 index 0000000..03470c2 --- /dev/null +++ b/xml/bgn-pcgn_rus_strict.xml @@ -0,0 +1,795 @@ + + + + + + + + + BGN/PCGN RUS Strict + BGN/PCGN:1947 (Strict Variant), Cyrillic to Latin, Russian + false + + + + + + + + ́ + + + + + + + + Е + Ye + + + [АЕЁИОУЫЭЮЯЙЬЪаеёиоуыэюяйьъ] + + + + + Е + Ye + + \b + + + + + Е + E + + + + + Ё + + + + [АЕЁИОУЫЭЮЯЙЬЪаеёиоуыэюяйьъe] + + + + + Ё + + + \b + + + + + Ё + Ë + + + + + Й + + + [АУЫЭауыэ] + + + + + Й + Y + + + + + Ы + + + [АУЫЭауыэ] + + + + + Ы + ·Y + + + [АЕЁИОУЫЭЮЯЙаеёиоуыэюяйeëY] + + + + + Ы + Y + + + + + Э + ·E + + [БВГДЖЗКЛМНПРСТФХЦЧШЩбвгджзклмнпрстфхцчшщ] + + + + + Э + E + + + + + + А + A + + + + Б + B + + + + В + V + + + + Г + G + + + + Д + D + + + + Ж + Zh + + + + З + Z + + + + И + I + + + + К + K + + + + Л + L + + + + М + M + + + + Н + N + + + + О + O + + + + П + P + + + + Р + R + + + + + ТС + T·S + + + + + Тс + T·s + + + + С + S + + + + Т + T + + + + У + U + + + + Ф + F + + + + Х + Kh + + + + Ц + Ts + + + + + ШЧ + Sh·Ch + + + + + Шч + Sh·ch + + + + Ч + Ch + + + + Ш + Sh + + + + Щ + Shch + + + + + Ъ + '' + + + + Ь + ' + + + + Ю + Yu + + + + Я + Ya + + + + + + + е + ye + + + [AEËIOUYeëau'аеёиоуыэюяйьъ·] + + + + + е + ye + + \b + + + + + е + e + + + + + ё + + + + [AEËIOUYeëau'аеёиоуыэюяйьъ·] + + + + + ё + + + \b + + + + + ё + ë + + + + + й + + + [AUYEауыэ] + + + + + й + y + + + + + ы + + + + [AUYE·ауыэ] + + + + + ы + ·y + + + [AEËIOUYaueëyаеёиоуыэюя] + + + + + ы + y + + + + + э + ·e + + + [BVGDZhKLMNPRSTsFCScбвгджзклмнпрстфхцчшщ] + + + + + э + e + + + + + + а + a + + + + б + b + + + + в + v + + + + г + g + + + + д + d + + + + ж + zh + + + + з + z + + + + и + i + + + + к + k + + + + л + l + + + + м + m + + + + н + n + + + + о + o + + + + п + p + + + + р + r + + + + + тс + t·s + + + + с + s + + + + т + t + + + + у + u + + + + ф + f + + + + х + kh + + + + ц + ts + + + + + шч + sh·ch + + + + ч + ch + + + + ш + sh + + + + щ + shch + + + + + ъ + '' + + + + ь + ' + + + + ю + yu + + + + я + ya + + + + + + + diff --git a/xml/devanagari_iast.xml b/xml/devanagari_iast.xml new file mode 100644 index 0000000..686485b --- /dev/null +++ b/xml/devanagari_iast.xml @@ -0,0 +1,446 @@ + + + + + + + + Devanagari IAST + Devanāgarī to IAST + false + + + + + 0 + + + + 9 + + + + 8 + + + + 7 + + + + 6 + + + + 5 + + + + 4 + + + + 3 + + + + 2 + + + + 1 + + + + o + + + + e + + + + + + + + + + + + + + + + + + + + ū + + + + u + + + + ī + + + + i + + + + ā + + + + a + + + + au + + + + ai + + + + ' + + + + ्o + + + + ्e + + + + ्ḹ + + + + ्ḷ + + + + ्ṝ + + + + ्ṛ + + + + ्ū + + + + ्u + + + + ्ī + + + ि + ्i + + + + ्ā + + + + ्au + + + + ्ai + + + ह् + h + + + स् + s + + + ष् + + + + श् + ś + + + व् + v + + + ल् + l + + + र् + r + + + य् + y + + + म् + m + + + ब् + b + + + भ् + bh + + + फ् + ph + + + प् + p + + + न् + n + + + द् + d + + + ध् + dh + + + त् + t + + + थ् + th + + + ण् + + + + ड् + + + + ढ् + ḍh + + + ट् + + + + ठ् + ṭh + + + ञ् + ñ + + + ज् + j + + + झ् + jh + + + च् + c + + + छ् + ch + + + ङ् + + + + ग् + g + + + घ् + gh + + + क् + k + + + ख् + kh + + + + ha + + + + sa + + + + ṣa + + + + śa + + + + va + + + + la + + + + ra + + + + ya + + + + ma + + + + ba + + + + bha + + + + pha + + + + pa + + + + na + + + + da + + + + dha + + + + ta + + + + tha + + + + ṇa + + + + ḍa + + + + ḍha + + + + ṭa + + + + ṭha + + + + ña + + + + ja + + + + jha + + + + ca + + + + cha + + + + ṅa + + + + ga + + + + gha + + + + ka + + + + kha + + + + + + + + + + + + oṁ + + + diff --git a/xml/iast_devanagari.xml b/xml/iast_devanagari.xml new file mode 100644 index 0000000..f5d3960 --- /dev/null +++ b/xml/iast_devanagari.xml @@ -0,0 +1,510 @@ + + + + + + + + IAST Devanagari + IAST to Devanāgarī + false + + + + oṁ + + + + Oṁ + + + + + + + + + + + + kh + ख् + + + Kh + ख् + + + K + क् + + + k + क् + + + gh + घ् + + + Gh + घ् + + + G + ग् + + + g + ग् + + + + ङ् + + + + ङ् + + + ch + छ् + + + Ch + छ् + + + C + च् + + + c + च् + + + jh + झ् + + + Jh + झ् + + + J + ज् + + + j + ज् + + + Ñ + ञ् + + + ñ + ञ् + + + ṭh + ठ् + + + Ṭh + ठ् + + + + ट् + + + + ट् + + + ḍh + ढ् + + + Ḍh + ढ् + + + + ड् + + + + ड् + + + + ण् + + + + ण् + + + th + थ् + + + Th + थ् + + + T + त् + + + t + त् + + + dh + ध् + + + Dh + ध् + + + D + द् + + + d + द् + + + N + न् + + + n + न् + + + ph + फ् + + + Ph + फ् + + + P + प् + + + p + प् + + + bh + भ् + + + Bh + भ् + + + B + ब् + + + b + ब् + + + M + म् + + + m + म् + + + Y + य् + + + y + य् + + + R + र् + + + r + र् + + + L + ल् + + + l + ल् + + + V + व् + + + v + व् + + + Ś + श् + + + ś + श् + + + + ष् + + + + ष् + + + S + स् + + + s + स् + + + H + ह् + + + h + ह् + + + ्ai + + + + ्au + + + + ्a + + + + ्ā + + + + ्i + ि + + + ्ī + + + + ्u + + + + ्ū + + + + ्ṛ + + + + ्ṝ + + + + ्ḷ + + + + ्ḹ + + + + ्e + + + + ्o + + + + ' + + + + ai + + + + Ai + + + + au + + + + Au + + + + a + + + + A + + + + ā + + + + Ā + + + + i + + + + I + + + + ī + + + + Ī + + + + u + + + + U + + + + ū + + + + Ū + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + e + + + + E + + + + o + + + + O + + + + 1 + + + + 2 + + + + 3 + + + + 4 + + + + 5 + + + + 6 + + + + 7 + + + + 8 + + + + 9 + + + + 0 + + + + diff --git a/xml/iso-r_9.xml b/xml/iso-r_9.xml new file mode 100644 index 0000000..31a963e --- /dev/null +++ b/xml/iso-r_9.xml @@ -0,0 +1,638 @@ + + + + + + + + + + + + + ISO/R 9 + ISO/R 9:1954, Cyrillic to Latin + true + + + + + + + + + А + A + + + + а + a + + + + Б + B + + + + б + b + + + + В + V + + + + в + v + + + + Г + G + + + + г + g + + + + Ґ + + + + + ґ + + + + + Д + D + + + + д + d + + + + Ѓ + Ǵ + + + + ѓ + ǵ + + + + Ђ + Đ + + + + ђ + đ + + + + Е + E + + + + е + e + + + + Ё + Ë + + + + ё + ë + + + + Є + Je + + + + є + je + + + + Ж + Ž + + + + ж + ž + + + + З + Z + + + + з + z + + + + Ѕ + Dz + + + + ѕ + dz + + + + И + I + + + + и + i + + + + І + I + + + + і + i + + + + Ї + Ji + + + + ї + ji + + + + Й + J + + + + й + j + + + + Ј + J + + + + ј + j + + + + К + K + + + + к + k + + + + Л + L + + + + л + l + + + + Љ + LJ + + + \p{IsUpper} + + + + + Љ + Lj + + + + љ + lj + + + + М + M + + + + м + m + + + + Н + N + + + + н + n + + + + Њ + NJ + + + \p{IsUpper} + + + + + Њ + Nj + + + + њ + nj + + + + О + O + + + + о + o + + + + П + P + + + + п + p + + + + Р + R + + + + р + r + + + + С + S + + + + с + s + + + + Т + T + + + + т + t + + + + Ќ + + + + + ќ + + + + + Ћ + Ć + + + + ћ + ć + + + + У + U + + + + у + u + + + + Ў + Ŭ + + + + ў + ŭ + + + + Ф + F + + + + ф + f + + + + Х + H + + + + х + h + + + + Ц + C + + + + ц + c + + + + Ч + Č + + + + ч + č + + + + Џ + + + + \p{IsUpper} + + + + + Џ + + + + + џ + + + + + Ш + Š + + + + ш + š + + + + Щ + ŠČ + + + + щ + šč + + + + Ъ + Y + + + \p{IsUpper} + + + + + ъ + y + + + + Ы + Y + + + + ы + y + + + + Ь + ʹ + + + \p{IsUpper} + + + + + ь + ʹ + + + + Ѣ + Ě + + + + ѣ + ě + + + + Э + È + + + + э + è + + + + Ю + JU + + + \p{IsUpper} + + + + + Ю + Ju + + + + ю + ju + + + + Я + JA + + + \p{IsUpper} + + + + + Я + Ja + + + + я + ja + + + + Ѫ + Ȧ + + + + ѫ + ȧ + + + + Ѳ + + + + + ѳ + + + + + Ѵ + + + + + ѵ + + + + + + diff --git a/xml/iso_8859-16_ron.xml b/xml/iso_8859-16_ron.xml new file mode 100644 index 0000000..e3565a4 --- /dev/null +++ b/xml/iso_8859-16_ron.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + ISO 8859-16 RON + Romanian with appropriate diacritics + true + + + + + + + Ş + Ș + + + + ş + ș + + + + Ţ + Ț + + + + ţ + ț + + + + + + + diff --git a/xml/tables.dump b/xml/tables.dump index bcd80ab..9768e27 100644 --- a/xml/tables.dump +++ b/xml/tables.dump @@ -2180,2016 +2180,4134 @@ ], "reverse" => "false" }, - "iso_843" => { - "desc" => "ISO 843:1997 TL (Type 1), Greek to Latin", - "name" => "ISO 843", - "id" => "iso_843", + "devanagari_iast" => { + "desc" => "Devan\x{101}gar\x{12b} to IAST", + "name" => "Devanagari IAST", + "id" => "devanagari_iast", "rules" => [ { - "to" => "A", - "from" => "\x{391}" + "to" => 0, + "from" => "\x{966}" }, { - "to" => "a", - "from" => "\x{3b1}" + "to" => 9, + "from" => "\x{96f}" }, { - "to" => "V", - "from" => "\x{392}" + "to" => 8, + "from" => "\x{96e}" }, { - "to" => "v", - "from" => "\x{3b2}" + "to" => 7, + "from" => "\x{96d}" }, { - "to" => "G", - "from" => "\x{393}" + "to" => 6, + "from" => "\x{96c}" }, { - "to" => "g", - "from" => "\x{3b3}" + "to" => 5, + "from" => "\x{96b}" }, { - "to" => "D", - "from" => "\x{394}" + "to" => 4, + "from" => "\x{96a}" }, { - "to" => "d", - "from" => "\x{3b4}" + "to" => 3, + "from" => "\x{969}" }, { - "to" => "E", - "from" => "\x{395}" + "to" => 2, + "from" => "\x{968}" + }, + { + "to" => 1, + "from" => "\x{967}" + }, + { + "to" => "o", + "from" => "\x{913}" }, { "to" => "e", - "from" => "\x{3b5}" + "from" => "\x{90f}" }, { - "to" => "Z", - "from" => "\x{396}" + "to" => "\x{1e39}", + "from" => "\x{961}" }, { - "to" => "z", - "from" => "\x{3b6}" + "to" => "\x{1e37}", + "from" => "\x{90c}" }, { - "to" => "\x{12a}", - "from" => "\x{397}" + "to" => "\x{1e5d}", + "from" => "\x{960}" }, { - "to" => "\x{12b}", - "from" => "\x{3b7}" + "to" => "\x{1e5b}", + "from" => "\x{90b}" }, { - "to" => "Th", - "from" => "\x{398}" + "to" => "\x{16b}", + "from" => "\x{90a}" }, { - "to" => "th", - "from" => "\x{3b8}" + "to" => "u", + "from" => "\x{909}" }, { - "to" => "I", - "from" => "\x{399}" + "to" => "\x{12b}", + "from" => "\x{908}" }, { "to" => "i", - "from" => "\x{3b9}" + "from" => "\x{907}" }, { - "to" => "K", - "from" => "\x{39a}" + "to" => "\x{101}", + "from" => "\x{906}" }, { - "to" => "k", - "from" => "\x{3ba}" + "to" => "a", + "from" => "\x{905}" }, { - "to" => "L", - "from" => "\x{39b}" + "to" => "au", + "from" => "\x{914}" }, { - "to" => "l", - "from" => "\x{3bb}" + "to" => "ai", + "from" => "\x{910}" }, { - "to" => "M", - "from" => "\x{39c}" + "to" => "'", + "from" => "\x{93d}" }, { - "to" => "m", - "from" => "\x{3bc}" + "to" => "\x{94d}o", + "from" => "\x{94b}" }, { - "to" => "N", - "from" => "\x{39d}" + "to" => "\x{94d}e", + "from" => "\x{947}" }, { - "to" => "n", - "from" => "\x{3bd}" + "to" => "\x{94d}\x{1e39}", + "from" => "\x{963}" }, { - "to" => "X", - "from" => "\x{39e}" + "to" => "\x{94d}\x{1e37}", + "from" => "\x{962}" }, { - "to" => "x", - "from" => "\x{3be}" + "to" => "\x{94d}\x{1e5d}", + "from" => "\x{944}" }, { - "to" => "O", - "from" => "\x{39f}" + "to" => "\x{94d}\x{1e5b}", + "from" => "\x{943}" }, { - "to" => "o", - "from" => "\x{3bf}" + "to" => "\x{94d}\x{16b}", + "from" => "\x{942}" }, { - "to" => "P", - "from" => "\x{3a0}" + "to" => "\x{94d}u", + "from" => "\x{941}" }, { - "to" => "p", - "from" => "\x{3c0}" + "to" => "\x{94d}\x{12b}", + "from" => "\x{940}" }, { - "to" => "R", - "from" => "\x{3a1}" + "to" => "\x{94d}i", + "from" => "\x{93f}" }, { - "to" => "r", - "from" => "\x{3c1}" + "to" => "\x{94d}\x{101}", + "from" => "\x{93e}" }, { - "to" => "S", - "from" => "\x{3a3}" + "to" => "\x{94d}au", + "from" => "\x{94c}" }, { - "to" => "s", - "from" => "\x{3c2}" + "to" => "\x{94d}ai", + "from" => "\x{948}" + }, + { + "to" => "h", + "from" => "\x{939}\x{94d}" }, { "to" => "s", - "from" => "\x{3c3}" + "from" => "\x{938}\x{94d}" }, { - "to" => "T", - "from" => "\x{3a4}" + "to" => "\x{1e63}", + "from" => "\x{937}\x{94d}" }, { - "to" => "t", - "from" => "\x{3c4}" + "to" => "\x{15b}", + "from" => "\x{936}\x{94d}" }, { - "to" => "Y", - "from" => "\x{3a5}" + "to" => "v", + "from" => "\x{935}\x{94d}" }, { - "to" => "y", - "from" => "\x{3c5}" + "to" => "l", + "from" => "\x{932}\x{94d}" }, { - "to" => "F", - "from" => "\x{3a6}" + "to" => "r", + "from" => "\x{930}\x{94d}" }, { - "to" => "f", - "from" => "\x{3c6}" + "to" => "y", + "from" => "\x{92f}\x{94d}" }, { - "to" => "Ch", - "from" => "\x{3a7}" + "to" => "m", + "from" => "\x{92e}\x{94d}" }, { - "to" => "ch", - "from" => "\x{3c7}" + "to" => "b", + "from" => "\x{92c}\x{94d}" }, { - "to" => "Ps", - "from" => "\x{3a8}" + "to" => "bh", + "from" => "\x{92d}\x{94d}" }, { - "to" => "ps", - "from" => "\x{3c8}" + "to" => "ph", + "from" => "\x{92b}\x{94d}" }, { - "to" => "\x{14c}", - "from" => "\x{3a9}" + "to" => "p", + "from" => "\x{92a}\x{94d}" }, { - "to" => "\x{14d}", - "from" => "\x{3c9}" + "to" => "n", + "from" => "\x{928}\x{94d}" }, { - "to" => "S", - "from" => "\x{3da}" + "to" => "d", + "from" => "\x{926}\x{94d}" }, { - "to" => "s", - "from" => "\x{3db}" + "to" => "dh", + "from" => "\x{927}\x{94d}" }, { - "to" => "W", - "from" => "\x{3dc}" + "to" => "t", + "from" => "\x{924}\x{94d}" }, { - "to" => "f", - "from" => "\x{3dd}" + "to" => "th", + "from" => "\x{925}\x{94d}" }, { - "to" => "j", - "from" => "\x{3f3}" + "to" => "\x{1e47}", + "from" => "\x{923}\x{94d}" }, { - "to" => "\x{b4}", - "from" => "\x{384}" + "to" => "\x{1e0d}", + "from" => "\x{921}\x{94d}" }, { - "to" => "\x{a8}\x{301}", - "from" => "\x{385}" + "to" => "\x{1e0d}h", + "from" => "\x{922}\x{94d}" }, { - "to" => "\x{302}", - "from" => "\x{342}" + "to" => "\x{1e6d}", + "from" => "\x{91f}\x{94d}" }, { - "to" => "\x{2bc}", - "from" => "\x{343}" + "to" => "\x{1e6d}h", + "from" => "\x{920}\x{94d}" }, { - "to" => "\x{2bc}", - "from" => "\x{313}" + "to" => "\x{f1}", + "from" => "\x{91e}\x{94d}" }, { - "to" => "h", - "from" => "\x{314}" + "to" => "j", + "from" => "\x{91c}\x{94d}" }, { - "to" => "\x{327}", - "from" => "\x{345}" + "to" => "jh", + "from" => "\x{91d}\x{94d}" }, { - "to" => "\x{327}", - "from" => "\x{345}" + "to" => "c", + "from" => "\x{91a}\x{94d}" }, { - "to" => "\x{c1}", - "from" => "\x{386}" + "to" => "ch", + "from" => "\x{91b}\x{94d}" }, { - "to" => "\x{e1}", - "from" => "\x{3ac}" + "to" => "\x{1e45}", + "from" => "\x{919}\x{94d}" }, { - "to" => "\x{c9}", - "from" => "\x{388}" + "to" => "g", + "from" => "\x{917}\x{94d}" }, { - "to" => "\x{e9}", - "from" => "\x{3ad}" + "to" => "gh", + "from" => "\x{918}\x{94d}" }, { - "to" => "\x{12a}\x{301}", - "from" => "\x{389}" + "to" => "k", + "from" => "\x{915}\x{94d}" }, { - "to" => "\x{12b}\x{301}", - "from" => "\x{3ae}" + "to" => "kh", + "from" => "\x{916}\x{94d}" }, { - "to" => "\x{cd}", - "from" => "\x{38a}" + "to" => "ha", + "from" => "\x{939}" }, { - "to" => "\x{ed}", - "from" => "\x{3af}" + "to" => "sa", + "from" => "\x{938}" }, { - "to" => "\x{d3}", - "from" => "\x{38c}" + "to" => "\x{1e63}a", + "from" => "\x{937}" }, { - "to" => "\x{f3}", - "from" => "\x{3cc}" + "to" => "\x{15b}a", + "from" => "\x{936}" }, { - "to" => "\x{dd}", - "from" => "\x{38e}" + "to" => "va", + "from" => "\x{935}" }, { - "to" => "\x{fd}", - "from" => "\x{3cd}" + "to" => "la", + "from" => "\x{932}" }, { - "to" => "\x{1e52}", - "from" => "\x{38f}" + "to" => "ra", + "from" => "\x{930}" }, { - "to" => "\x{1e53}", - "from" => "\x{3ce}" + "to" => "ya", + "from" => "\x{92f}" }, { - "to" => "\x{cf}", - "from" => "\x{3aa}" + "to" => "ma", + "from" => "\x{92e}" }, { - "to" => "\x{ef}", - "from" => "\x{3ca}" + "to" => "ba", + "from" => "\x{92c}" }, { - "to" => "\x{178}", - "from" => "\x{3ab}" + "to" => "bha", + "from" => "\x{92d}" }, { - "to" => "\x{ff}", - "from" => "\x{3cb}" + "to" => "pha", + "from" => "\x{92b}" }, { - "to" => "\x{1e2f}", - "from" => "\x{390}" + "to" => "pa", + "from" => "\x{92a}" }, { - "to" => "\x{ff}\x{301}", - "from" => "\x{3b0}" + "to" => "na", + "from" => "\x{928}" }, { - "to" => "?", - "from" => "\x{37e}", - "context" => { - "after" => "\\b" - } + "to" => "da", + "from" => "\x{926}" }, { - "to" => "?", - "from" => ";", - "context" => { - "after" => "\\b" - } + "to" => "dha", + "from" => "\x{927}" }, { - "to" => ";", - "from" => "\x{b7}" + "to" => "ta", + "from" => "\x{924}" }, { - "to" => "-", - "from" => "\x{203f}" - } - ], - "reverse" => "false" - }, - "din_31634" => { - "desc" => "DIN 31634:1982, Greek to Latin", - "name" => "DIN 31634", - "id" => "din_31634", - "rules" => [ + "to" => "tha", + "from" => "\x{925}" + }, { - "to" => "AU", - "from" => "\x{391}\x{3a5}" + "to" => "\x{1e47}a", + "from" => "\x{923}" }, { - "to" => "au", - "from" => "\x{3b1}\x{3c5}" + "to" => "\x{1e0d}a", + "from" => "\x{921}" }, { - "to" => "Au", - "from" => "\x{391}\x{3c5}" + "to" => "\x{1e0d}ha", + "from" => "\x{922}" }, { - "to" => "A\x{178}", - "from" => "\x{391}\x{3ab}" + "to" => "\x{1e6d}a", + "from" => "\x{91f}" }, { - "to" => "a\x{ff}", - "from" => "\x{3b1}\x{3cb}" + "to" => "\x{1e6d}ha", + "from" => "\x{920}" }, { - "to" => "NG", - "from" => "\x{393}\x{393}" + "to" => "\x{f1}a", + "from" => "\x{91e}" }, { - "to" => "ng", - "from" => "\x{3b3}\x{3b3}" + "to" => "ja", + "from" => "\x{91c}" }, { - "to" => "Ng", - "from" => "\x{393}\x{3b3}" + "to" => "jha", + "from" => "\x{91d}" }, { - "to" => "GK", - "from" => "\x{393}\x{39a}", - "context" => { - "after" => "\\b" - } + "to" => "ca", + "from" => "\x{91a}" }, { - "to" => "gk", - "from" => "\x{3b3}\x{3ba}", - "context" => { - "after" => "\\b" - } + "to" => "cha", + "from" => "\x{91b}" }, { - "to" => "Gk", - "from" => "\x{393}\x{3ba}", - "context" => { - "after" => "\\b" - } + "to" => "\x{1e45}a", + "from" => "\x{919}" }, { - "to" => "NK", - "from" => "\x{393}\x{39a}" + "to" => "ga", + "from" => "\x{917}" }, { - "to" => "nk", - "from" => "\x{3b3}\x{3ba}" + "to" => "gha", + "from" => "\x{918}" }, { - "to" => "Nk", - "from" => "\x{393}\x{3ba}" + "to" => "ka", + "from" => "\x{915}" }, { - "to" => "NX", - "from" => "\x{393}\x{39e}" + "to" => "kha", + "from" => "\x{916}" }, { - "to" => "nx", - "from" => "\x{3b3}\x{3be}" + "to" => "\x{1e25}", + "from" => "\x{903}" }, { - "to" => "Nx", - "from" => "\x{393}\x{3be}" + "to" => "\x{1e43}", + "from" => "\x{902}" }, { - "to" => "nch", - "from" => "\x{393}\x{3a7}" - }, + "to" => "o\x{1e41}", + "from" => "\x{950}" + } + ], + "reverse" => "false" + }, + "iso_8859-16_ron" => { + "desc" => "Romanian with appropriate diacritics", + "name" => "ISO 8859-16 RON", + "id" => "iso_8859-16_ron", + "rules" => [ { - "to" => "nch", - "from" => "\x{3b3}\x{3c7}" + "to" => "\x{218}", + "from" => "\x{15e}" }, { - "to" => "Nch", - "from" => "\x{393}\x{3c7}" + "to" => "\x{219}", + "from" => "\x{15f}" }, { - "to" => "EU", - "from" => "\x{395}\x{3a5}" + "to" => "\x{21a}", + "from" => "\x{162}" }, { - "to" => "eu", - "from" => "\x{3b5}\x{3c5}" + "to" => "\x{21b}", + "from" => "\x{163}" + } + ], + "reverse" => "true" + }, + "bgn/pcgn_rus_strict" => { + "desc" => "BGN/PCGN:1947 (Strict Variant), Cyrillic to Latin, Russian", + "name" => "BGN/PCGN RUS Strict", + "id" => "bgn/pcgn_rus_strict", + "rules" => [ + { + "to" => "", + "from" => "\x{301}" }, { - "to" => "Eu", - "from" => "\x{395}\x{3c5}" + "to" => "Ye", + "from" => "\x{415}", + "context" => { + "after" => "[\x{410}\x{415}\x{401}\x{418}\x{41e}\x{423}\x{42b}\x{42d}\x{42e}\x{42f}\x{419}\x{42c}\x{42a}\x{410}\x{435}\x{451}\x{438}\x{43e}\x{443}\x{44b}\x{44d}\x{44e}\x{44f}\x{439}\x{44c}\x{44a}]" + } }, { - "to" => "\x{112}U", - "from" => "\x{397}\x{3a5}" + "to" => "Ye", + "from" => "\x{415}", + "context" => { + "after" => "\\b" + } }, { - "to" => "\x{113}u", - "from" => "\x{3b7}\x{3c5}" + "to" => "E", + "from" => "\x{415}" }, { - "to" => "\x{112}u", - "from" => "\x{397}\x{3c5}" + "to" => "Y\x{eb}", + "from" => "\x{401}", + "context" => { + "after" => "[\x{410}\x{415}\x{401}\x{418}\x{41e}\x{423}\x{42b}\x{42d}\x{42e}\x{42f}\x{419}\x{42c}\x{42a}\x{410}\x{435}\x{451}\x{438}\x{43e}\x{443}\x{44b}\x{44d}\x{44e}\x{44f}\x{439}\x{44c}\x{44a}e]" + } }, { - "to" => "U", - "from" => "\x{39f}\x{3a5}" + "to" => "Y\x{eb}", + "from" => "\x{401}", + "context" => { + "after" => "\\b" + } }, { - "to" => "u", - "from" => "\x{3bf}\x{3c5}" + "to" => "\x{cb}", + "from" => "\x{401}" }, { - "to" => "U", - "from" => "\x{39f}\x{3c5}" + "to" => "Y\x{b7}", + "from" => "\x{419}", + "context" => { + "before" => "[\x{410}\x{423}\x{42b}\x{42d}\x{430}\x{443}\x{44b}\x{44d}]" + } }, { - "to" => "O\x{178}", - "from" => "\x{39f}\x{3ab}" + "to" => "Y", + "from" => "\x{419}" }, { - "to" => "o\x{ff}", - "from" => "\x{3bf}\x{3cb}" + "to" => "Y\x{b7}", + "from" => "\x{42b}", + "context" => { + "before" => "[\x{410}\x{423}\x{42b}\x{42d}\x{430}\x{443}\x{44b}\x{44d}]" + } }, { - "to" => "A", - "from" => "\x{391}" + "to" => "\x{b7}Y", + "from" => "\x{42b}", + "context" => { + "after" => "[\x{410}\x{415}\x{401}\x{418}\x{41e}\x{423}\x{42b}\x{42d}\x{42e}\x{42f}\x{419}\x{430}\x{435}\x{451}\x{438}\x{43e}\x{443}\x{44b}\x{44d}\x{44e}\x{44f}\x{439}e\x{eb}Y]" + } }, { - "to" => "a", - "from" => "\x{3b1}" + "to" => "Y", + "from" => "\x{42b}" }, { - "to" => "B", - "from" => "\x{392}" + "to" => "\x{b7}E", + "from" => "\x{42d}", + "context" => { + "after" => "[\x{411}\x{412}\x{413}\x{414}\x{416}\x{417}\x{41a}\x{41b}\x{41c}\x{41d}\x{41f}\x{420}\x{421}\x{422}\x{424}\x{425}\x{426}\x{427}\x{428}\x{429}\x{431}\x{432}\x{433}\x{434}\x{436}\x{437}\x{43a}\x{43b}\x{43c}\x{43d}\x{43f}\x{440}\x{441}\x{442}\x{444}\x{445}\x{446}\x{447}\x{448}\x{449}]" + } }, { - "to" => "b", - "from" => "\x{3b2}" + "to" => "E", + "from" => "\x{42d}" }, { - "to" => "G", - "from" => "\x{393}" + "to" => "A", + "from" => "\x{410}" }, { - "to" => "g", - "from" => "\x{3b3}" + "to" => "B", + "from" => "\x{411}" }, { - "to" => "D", - "from" => "\x{394}" + "to" => "V", + "from" => "\x{412}" }, { - "to" => "d", - "from" => "\x{3b4}" + "to" => "G", + "from" => "\x{413}" }, { - "to" => "E", - "from" => "\x{395}" + "to" => "D", + "from" => "\x{414}" }, { - "to" => "e", - "from" => "\x{3b5}" + "to" => "Zh", + "from" => "\x{416}" }, { "to" => "Z", - "from" => "\x{396}" + "from" => "\x{417}" }, { - "to" => "z", - "from" => "\x{3b6}" + "to" => "I", + "from" => "\x{418}" }, { - "to" => "\x{112}", - "from" => "\x{397}" + "to" => "K", + "from" => "\x{41a}" }, { - "to" => "\x{113}", - "from" => "\x{3b7}" + "to" => "L", + "from" => "\x{41b}" }, { - "to" => "Th", - "from" => "\x{398}" + "to" => "M", + "from" => "\x{41c}" }, { - "to" => "th", - "from" => "\x{3b8}" + "to" => "N", + "from" => "\x{41d}" }, { - "to" => "th", - "from" => "\x{3d1}" + "to" => "O", + "from" => "\x{41e}" }, { - "to" => "I", - "from" => "\x{399}" + "to" => "P", + "from" => "\x{41f}" }, { - "to" => "i", - "from" => "\x{3b9}" + "to" => "R", + "from" => "\x{420}" }, { - "to" => "K", - "from" => "\x{39a}" + "to" => "T\x{b7}S", + "from" => "\x{422}\x{421}" }, { - "to" => "k", - "from" => "\x{3ba}" + "to" => "T\x{b7}s", + "from" => "\x{422}\x{441}" }, { - "to" => "L", - "from" => "\x{39b}" + "to" => "S", + "from" => "\x{421}" }, { - "to" => "l", - "from" => "\x{3bb}" + "to" => "T", + "from" => "\x{422}" }, { - "to" => "M", - "from" => "\x{39c}" + "to" => "U", + "from" => "\x{423}" }, { - "to" => "m", - "from" => "\x{3bc}" + "to" => "F", + "from" => "\x{424}" }, { - "to" => "N", - "from" => "\x{39d}" + "to" => "Kh", + "from" => "\x{425}" }, { - "to" => "n", - "from" => "\x{3bd}" + "to" => "Ts", + "from" => "\x{426}" }, { - "to" => "X", - "from" => "\x{39e}" + "to" => "Sh\x{b7}Ch", + "from" => "\x{428}\x{427}" }, { - "to" => "x", - "from" => "\x{3be}" + "to" => "Sh\x{b7}ch", + "from" => "\x{428}\x{447}" }, { - "to" => "O", - "from" => "\x{39f}" + "to" => "Ch", + "from" => "\x{427}" }, { - "to" => "o", - "from" => "\x{3bf}" + "to" => "Sh", + "from" => "\x{428}" }, { - "to" => "P", - "from" => "\x{3a0}" + "to" => "Shch", + "from" => "\x{429}" }, { - "to" => "p", - "from" => "\x{3c0}" + "to" => "''", + "from" => "\x{42a}" }, { - "to" => "R", - "from" => "\x{3a1}" + "to" => "'", + "from" => "\x{42c}" }, { - "to" => "r", - "from" => "\x{3c1}" + "to" => "Yu", + "from" => "\x{42e}" }, { - "to" => "S", - "from" => "\x{3a3}" + "to" => "Ya", + "from" => "\x{42f}" }, { - "to" => "s", - "from" => "\x{3c3}" + "to" => "ye", + "from" => "\x{435}", + "context" => { + "after" => "[AE\x{cb}IOUYe\x{eb}au'\x{430}\x{435}\x{451}\x{438}\x{43e}\x{443}\x{44b}\x{44d}\x{44e}\x{44f}\x{439}\x{44c}\x{44a}\x{b7}]" + } }, { - "to" => "s", - "from" => "\x{3c2}", + "to" => "ye", + "from" => "\x{435}", "context" => { - "before" => "\\b" + "after" => "\\b" } }, { - "to" => "T", - "from" => "\x{3a4}" + "to" => "e", + "from" => "\x{435}" }, { - "to" => "t", - "from" => "\x{3c4}" + "to" => "y\x{eb}", + "from" => "\x{451}", + "context" => { + "after" => "[AE\x{cb}IOUYe\x{eb}au'\x{430}\x{435}\x{451}\x{438}\x{43e}\x{443}\x{44b}\x{44d}\x{44e}\x{44f}\x{439}\x{44c}\x{44a}\x{b7}]" + } }, { - "to" => "Y", - "from" => "\x{3a5}" + "to" => "y\x{eb}", + "from" => "\x{451}", + "context" => { + "after" => "\\b" + } }, { - "to" => "y", - "from" => "\x{3c5}" + "to" => "\x{eb}", + "from" => "\x{451}" }, { - "to" => "Ph", - "from" => "\x{3a6}" + "to" => "y\x{b7}", + "from" => "\x{439}", + "context" => { + "before" => "[AUYE\x{430}\x{443}\x{44b}\x{44d}]" + } }, { - "to" => "ph", - "from" => "\x{3c6}" + "to" => "y", + "from" => "\x{439}" }, { - "to" => "ph", - "from" => "\x{3d5}" + "to" => "y\x{b7}", + "from" => "\x{44b}", + "context" => { + "before" => "[AUYE\x{b7}\x{430}\x{443}\x{44b}\x{44d}]" + } }, { - "to" => "Ch", - "from" => "\x{3a7}" - }, - { - "to" => "ch", - "from" => "\x{3c7}" - }, - { - "to" => "Ps", - "from" => "\x{3a8}" + "to" => "\x{b7}y", + "from" => "\x{44b}", + "context" => { + "after" => "[AE\x{cb}IOUYaue\x{eb}y\x{430}\x{435}\x{451}\x{438}\x{43e}\x{443}\x{44b}\x{44d}\x{44e}\x{44f}]" + } }, { - "to" => "ps", - "from" => "\x{3c8}" + "to" => "y", + "from" => "\x{44b}" }, { - "to" => "\x{14c}", - "from" => "\x{3a9}" + "to" => "\x{b7}e", + "from" => "\x{44d}", + "context" => { + "after" => "[BVGDZhKLMNPRSTsFCSc\x{431}\x{432}\x{433}\x{434}\x{436}\x{437}\x{43a}\x{43b}\x{43c}\x{43d}\x{43f}\x{440}\x{441}\x{442}\x{444}\x{445}\x{446}\x{447}\x{448}\x{449}]" + } }, { - "to" => "\x{14d}", - "from" => "\x{3c9}" + "to" => "e", + "from" => "\x{44d}" }, { - "to" => "A", - "from" => "\x{386}" + "to" => "a", + "from" => "\x{430}" }, { - "to" => "a", - "from" => "\x{3ac}" + "to" => "b", + "from" => "\x{431}" }, { - "to" => "E", - "from" => "\x{388}" + "to" => "v", + "from" => "\x{432}" }, { - "to" => "e", - "from" => "\x{3ad}" + "to" => "g", + "from" => "\x{433}" }, { - "to" => "\x{112}", - "from" => "\x{389}" + "to" => "d", + "from" => "\x{434}" }, { - "to" => "\x{113}", - "from" => "\x{3ae}" + "to" => "zh", + "from" => "\x{436}" }, { - "to" => "I", - "from" => "\x{38a}" + "to" => "z", + "from" => "\x{437}" }, { "to" => "i", - "from" => "\x{3af}" + "from" => "\x{438}" }, { - "to" => "I", - "from" => "\x{3aa}" + "to" => "k", + "from" => "\x{43a}" }, { - "to" => "i", - "from" => "\x{3ca}" + "to" => "l", + "from" => "\x{43b}" }, { - "to" => "i", - "from" => "\x{390}" + "to" => "m", + "from" => "\x{43c}" }, { - "to" => "O", - "from" => "\x{38c}" + "to" => "n", + "from" => "\x{43d}" }, { "to" => "o", - "from" => "\x{3cc}" - }, - { - "to" => "Y", - "from" => "\x{38e}" + "from" => "\x{43e}" }, { - "to" => "y", - "from" => "\x{3cd}" + "to" => "p", + "from" => "\x{43f}" }, { - "to" => "Y", - "from" => "\x{3ab}" + "to" => "r", + "from" => "\x{440}" }, { - "to" => "y", - "from" => "\x{3cb}" + "to" => "t\x{b7}s", + "from" => "\x{442}\x{441}" }, { - "to" => "y", - "from" => "\x{3b0}" + "to" => "s", + "from" => "\x{441}" }, { - "to" => "\x{14c}", - "from" => "\x{38f}" + "to" => "t", + "from" => "\x{442}" }, { - "to" => "\x{14d}", - "from" => "\x{3ce}" + "to" => "u", + "from" => "\x{443}" }, { - "to" => "?", - "from" => "\x{37e}" + "to" => "f", + "from" => "\x{444}" }, { - "to" => "?", - "from" => ";" + "to" => "kh", + "from" => "\x{445}" }, { - "to" => ";", - "from" => "\x{b7}" + "to" => "ts", + "from" => "\x{446}" }, { - "to" => "", - "from" => "\x{384}" + "to" => "sh\x{b7}ch", + "from" => "\x{448}\x{447}" }, { - "to" => "", - "from" => "\x{385}" + "to" => "ch", + "from" => "\x{447}" }, { - "to" => "", - "from" => "\x{342}" + "to" => "sh", + "from" => "\x{448}" }, { - "to" => "", - "from" => "\x{343}" + "to" => "shch", + "from" => "\x{449}" }, { - "to" => "", - "from" => "\x{313}" + "to" => "''", + "from" => "\x{44a}" }, { - "to" => "", - "from" => "\x{314}" + "to" => "'", + "from" => "\x{44c}" }, { - "to" => "", - "from" => "\x{345}" + "to" => "yu", + "from" => "\x{44e}" }, { - "to" => "", - "from" => "\x{345}" + "to" => "ya", + "from" => "\x{44f}" } ], "reverse" => "false" }, - "common_ces" => { - "desc" => "Czech without diacritics", - "name" => "Common CES", - "id" => "common_ces", + "iso_843" => { + "desc" => "ISO 843:1997 TL (Type 1), Greek to Latin", + "name" => "ISO 843", + "id" => "iso_843", "rules" => [ { "to" => "A", - "from" => "\x{c1}" + "from" => "\x{391}" }, { "to" => "a", - "from" => "\x{e1}" + "from" => "\x{3b1}" }, { - "to" => "C", - "from" => "\x{10c}" + "to" => "V", + "from" => "\x{392}" }, { - "to" => "c", - "from" => "\x{10d}" + "to" => "v", + "from" => "\x{3b2}" }, { - "to" => "D", - "from" => "\x{10e}" + "to" => "G", + "from" => "\x{393}" }, { - "to" => "d", - "from" => "\x{10f}" + "to" => "g", + "from" => "\x{3b3}" + }, + { + "to" => "D", + "from" => "\x{394}" }, { "to" => "d", - "from" => "d\x{30c}" + "from" => "\x{3b4}" }, { "to" => "E", - "from" => "\x{c9}" + "from" => "\x{395}" }, { "to" => "e", - "from" => "\x{e9}" + "from" => "\x{3b5}" }, { - "to" => "E", - "from" => "\x{11a}" + "to" => "Z", + "from" => "\x{396}" }, { - "to" => "e", - "from" => "\x{11b}" + "to" => "z", + "from" => "\x{3b6}" }, { - "to" => "I", - "from" => "\x{cd}" + "to" => "\x{12a}", + "from" => "\x{397}" }, { - "to" => "i", - "from" => "\x{ed}" + "to" => "\x{12b}", + "from" => "\x{3b7}" }, { - "to" => "N", - "from" => "\x{147}" + "to" => "Th", + "from" => "\x{398}" }, { - "to" => "n", - "from" => "\x{148}" + "to" => "th", + "from" => "\x{3b8}" }, { - "to" => "O", - "from" => "\x{d3}" + "to" => "I", + "from" => "\x{399}" }, { - "to" => "o", - "from" => "\x{f3}" + "to" => "i", + "from" => "\x{3b9}" }, { - "to" => "R", - "from" => "\x{158}" + "to" => "K", + "from" => "\x{39a}" }, { - "to" => "r", - "from" => "\x{159}" + "to" => "k", + "from" => "\x{3ba}" }, { - "to" => "S", - "from" => "\x{160}" + "to" => "L", + "from" => "\x{39b}" }, { - "to" => "s", - "from" => "\x{161}" + "to" => "l", + "from" => "\x{3bb}" }, { - "to" => "T", - "from" => "\x{164}" + "to" => "M", + "from" => "\x{39c}" }, { - "to" => "t", - "from" => "\x{165}" + "to" => "m", + "from" => "\x{3bc}" }, { - "to" => "t", - "from" => "t\x{30c};" + "to" => "N", + "from" => "\x{39d}" }, { - "to" => "U", - "from" => "\x{da}" + "to" => "n", + "from" => "\x{3bd}" }, { - "to" => "u", - "from" => "\x{fa}" + "to" => "X", + "from" => "\x{39e}" }, { - "to" => "U", - "from" => "\x{16e}" + "to" => "x", + "from" => "\x{3be}" }, { - "to" => "u", - "from" => "\x{16f}" + "to" => "O", + "from" => "\x{39f}" }, { - "to" => "Y", - "from" => "\x{dd}" - }, - { - "to" => "y", - "from" => "\x{fd}" + "to" => "o", + "from" => "\x{3bf}" }, { - "to" => "Z", - "from" => "\x{17d}" + "to" => "P", + "from" => "\x{3a0}" }, { - "to" => "z", - "from" => "\x{17e}" - } - ], - "reverse" => "false" - }, - "din_1460_ukr" => { - "desc" => "DIN 1460:1982, Cyrillic to Latin, Ukrainian", - "name" => "DIN 1460 UKR", - "id" => "din_1460_ukr", - "rules" => [ + "to" => "p", + "from" => "\x{3c0}" + }, { - "to" => "je", - "from" => "\x{454}" + "to" => "R", + "from" => "\x{3a1}" }, { - "to" => "JE", - "from" => "\x{404}", - "context" => { - "after" => "[\\p{IsUpper}\\p{IsSpace}]", - "before" => "[\\p{IsUpper}\\p{IsSpace}]" - } + "to" => "r", + "from" => "\x{3c1}" }, { - "to" => "Je", - "from" => "\x{404}" + "to" => "S", + "from" => "\x{3a3}" }, { - "to" => "ch", - "from" => "\x{445}" + "to" => "s", + "from" => "\x{3c2}" }, { - "to" => "CH", - "from" => "\x{425}", - "context" => { - "after" => "[\\p{IsUpper}\\p{IsSpace}]", - "before" => "[\\p{IsUpper}\\p{IsSpace}]" - } + "to" => "s", + "from" => "\x{3c3}" }, { - "to" => "Ch", - "from" => "\x{425}" + "to" => "T", + "from" => "\x{3a4}" }, { - "to" => "\x{161}\x{10d}", - "from" => "\x{449}" + "to" => "t", + "from" => "\x{3c4}" }, { - "to" => "\x{160}\x{10c}", - "from" => "\x{429}", - "context" => { - "after" => "[\\p{IsUpper}\\p{IsSpace}]", - "before" => "[\\p{IsUpper}\\p{IsSpace}]" - } + "to" => "Y", + "from" => "\x{3a5}" }, { - "to" => "\x{160}\x{10d}", - "from" => "\x{429}" + "to" => "y", + "from" => "\x{3c5}" }, { - "to" => "ju", - "from" => "\x{44e}" + "to" => "F", + "from" => "\x{3a6}" }, { - "to" => "JU", - "from" => "\x{42e}", - "context" => { - "after" => "[\\p{IsUpper}\\p{IsSpace}]", - "before" => "[\\p{IsUpper}\\p{IsSpace}]" - } + "to" => "f", + "from" => "\x{3c6}" }, { - "to" => "Ju", - "from" => "\x{42e}" + "to" => "Ch", + "from" => "\x{3a7}" }, { - "to" => "ja", - "from" => "\x{44f}" + "to" => "ch", + "from" => "\x{3c7}" }, { - "to" => "JA", - "from" => "\x{42f}", - "context" => { - "after" => "[\\p{IsUpper}\\p{IsSpace}]", - "before" => "[\\p{IsUpper}\\p{IsSpace}]" - } + "to" => "Ps", + "from" => "\x{3a8}" }, { - "to" => "Ja", - "from" => "\x{42f}" + "to" => "ps", + "from" => "\x{3c8}" }, { - "to" => "J-", - "from" => "\x{419}", - "context" => { - "before" => "[aueAUE\x{430}\x{443}\x{435}\x{410}\x{423}\x{415}]" - } + "to" => "\x{14c}", + "from" => "\x{3a9}" }, { - "to" => "j-", - "from" => "\x{439}", - "context" => { - "before" => "[aue\x{430}\x{443}\x{435}]" - } + "to" => "\x{14d}", + "from" => "\x{3c9}" }, { - "to" => "\x{160}-", - "from" => "\x{428}", - "context" => { - "before" => "[\x{10c}\x{10d}\x{427}\x{447}]" - } + "to" => "S", + "from" => "\x{3da}" }, { - "to" => "\x{161}-", - "from" => "\x{448}", - "context" => { - "before" => "[\x{10d}\x{447}]" - } + "to" => "s", + "from" => "\x{3db}" }, { - "to" => "c-", - "from" => "\x{446}", - "context" => { - "before" => "[h\x{433}]" - } + "to" => "W", + "from" => "\x{3dc}" }, { - "to" => "C-", - "from" => "\x{426}", - "context" => { - "before" => "[hH\x{433}\x{413}]" - } + "to" => "f", + "from" => "\x{3dd}" }, { - "to" => "a", - "from" => "\x{430}" + "to" => "j", + "from" => "\x{3f3}" }, { - "to" => "A", - "from" => "\x{410}" + "to" => "\x{b4}", + "from" => "\x{384}" }, { - "to" => "b", - "from" => "\x{431}" + "to" => "\x{a8}\x{301}", + "from" => "\x{385}" }, { - "to" => "B", - "from" => "\x{411}" + "to" => "\x{302}", + "from" => "\x{342}" }, { - "to" => "v", - "from" => "\x{432}" + "to" => "\x{2bc}", + "from" => "\x{343}" }, { - "to" => "V", - "from" => "\x{412}" + "to" => "\x{2bc}", + "from" => "\x{313}" }, { "to" => "h", - "from" => "\x{433}" + "from" => "\x{314}" }, { - "to" => "H", - "from" => "\x{413}" + "to" => "\x{327}", + "from" => "\x{345}" }, { - "to" => "g", - "from" => "\x{491}" + "to" => "\x{327}", + "from" => "\x{345}" }, { - "to" => "G", - "from" => "\x{490}" + "to" => "\x{c1}", + "from" => "\x{386}" }, { - "to" => "d", - "from" => "\x{434}" + "to" => "\x{e1}", + "from" => "\x{3ac}" }, { - "to" => "D", - "from" => "\x{414}" + "to" => "\x{c9}", + "from" => "\x{388}" }, { - "to" => "e", - "from" => "\x{435}" + "to" => "\x{e9}", + "from" => "\x{3ad}" }, { - "to" => "E", - "from" => "\x{415}" + "to" => "\x{12a}\x{301}", + "from" => "\x{389}" }, { - "to" => "\x{17e}", - "from" => "\x{436}" + "to" => "\x{12b}\x{301}", + "from" => "\x{3ae}" }, { - "to" => "\x{17d}", - "from" => "\x{416}" + "to" => "\x{cd}", + "from" => "\x{38a}" }, { - "to" => "z", - "from" => "\x{437}" + "to" => "\x{ed}", + "from" => "\x{3af}" }, { - "to" => "Z", - "from" => "\x{417}" + "to" => "\x{d3}", + "from" => "\x{38c}" }, { - "to" => "y", - "from" => "\x{438}" + "to" => "\x{f3}", + "from" => "\x{3cc}" }, { - "to" => "Y", - "from" => "\x{418}" + "to" => "\x{dd}", + "from" => "\x{38e}" }, { - "to" => "i", - "from" => "\x{456}" + "to" => "\x{fd}", + "from" => "\x{3cd}" }, { - "to" => "I", - "from" => "\x{406}" + "to" => "\x{1e52}", + "from" => "\x{38f}" }, { - "to" => "\x{ef}", - "from" => "\x{457}" + "to" => "\x{1e53}", + "from" => "\x{3ce}" }, { "to" => "\x{cf}", - "from" => "\x{407}" + "from" => "\x{3aa}" }, { - "to" => "j", - "from" => "\x{439}" + "to" => "\x{ef}", + "from" => "\x{3ca}" }, { - "to" => "J", - "from" => "\x{419}" + "to" => "\x{178}", + "from" => "\x{3ab}" }, { - "to" => "k", - "from" => "\x{43a}" + "to" => "\x{ff}", + "from" => "\x{3cb}" }, { - "to" => "K", - "from" => "\x{41a}" + "to" => "\x{1e2f}", + "from" => "\x{390}" }, { - "to" => "l", - "from" => "\x{43b}" - }, + "to" => "\x{ff}\x{301}", + "from" => "\x{3b0}" + }, + { + "to" => "?", + "from" => "\x{37e}", + "context" => { + "after" => "\\b" + } + }, + { + "to" => "?", + "from" => ";", + "context" => { + "after" => "\\b" + } + }, + { + "to" => ";", + "from" => "\x{b7}" + }, + { + "to" => "-", + "from" => "\x{203f}" + } + ], + "reverse" => "false" + }, + "din_31634" => { + "desc" => "DIN 31634:1982, Greek to Latin", + "name" => "DIN 31634", + "id" => "din_31634", + "rules" => [ + { + "to" => "AU", + "from" => "\x{391}\x{3a5}" + }, + { + "to" => "au", + "from" => "\x{3b1}\x{3c5}" + }, + { + "to" => "Au", + "from" => "\x{391}\x{3c5}" + }, + { + "to" => "A\x{178}", + "from" => "\x{391}\x{3ab}" + }, + { + "to" => "a\x{ff}", + "from" => "\x{3b1}\x{3cb}" + }, + { + "to" => "NG", + "from" => "\x{393}\x{393}" + }, + { + "to" => "ng", + "from" => "\x{3b3}\x{3b3}" + }, + { + "to" => "Ng", + "from" => "\x{393}\x{3b3}" + }, + { + "to" => "GK", + "from" => "\x{393}\x{39a}", + "context" => { + "after" => "\\b" + } + }, + { + "to" => "gk", + "from" => "\x{3b3}\x{3ba}", + "context" => { + "after" => "\\b" + } + }, + { + "to" => "Gk", + "from" => "\x{393}\x{3ba}", + "context" => { + "after" => "\\b" + } + }, + { + "to" => "NK", + "from" => "\x{393}\x{39a}" + }, + { + "to" => "nk", + "from" => "\x{3b3}\x{3ba}" + }, + { + "to" => "Nk", + "from" => "\x{393}\x{3ba}" + }, + { + "to" => "NX", + "from" => "\x{393}\x{39e}" + }, + { + "to" => "nx", + "from" => "\x{3b3}\x{3be}" + }, + { + "to" => "Nx", + "from" => "\x{393}\x{3be}" + }, + { + "to" => "nch", + "from" => "\x{393}\x{3a7}" + }, + { + "to" => "nch", + "from" => "\x{3b3}\x{3c7}" + }, + { + "to" => "Nch", + "from" => "\x{393}\x{3c7}" + }, + { + "to" => "EU", + "from" => "\x{395}\x{3a5}" + }, + { + "to" => "eu", + "from" => "\x{3b5}\x{3c5}" + }, + { + "to" => "Eu", + "from" => "\x{395}\x{3c5}" + }, + { + "to" => "\x{112}U", + "from" => "\x{397}\x{3a5}" + }, + { + "to" => "\x{113}u", + "from" => "\x{3b7}\x{3c5}" + }, + { + "to" => "\x{112}u", + "from" => "\x{397}\x{3c5}" + }, + { + "to" => "U", + "from" => "\x{39f}\x{3a5}" + }, + { + "to" => "u", + "from" => "\x{3bf}\x{3c5}" + }, + { + "to" => "U", + "from" => "\x{39f}\x{3c5}" + }, + { + "to" => "O\x{178}", + "from" => "\x{39f}\x{3ab}" + }, + { + "to" => "o\x{ff}", + "from" => "\x{3bf}\x{3cb}" + }, + { + "to" => "A", + "from" => "\x{391}" + }, + { + "to" => "a", + "from" => "\x{3b1}" + }, + { + "to" => "B", + "from" => "\x{392}" + }, + { + "to" => "b", + "from" => "\x{3b2}" + }, + { + "to" => "G", + "from" => "\x{393}" + }, + { + "to" => "g", + "from" => "\x{3b3}" + }, + { + "to" => "D", + "from" => "\x{394}" + }, + { + "to" => "d", + "from" => "\x{3b4}" + }, + { + "to" => "E", + "from" => "\x{395}" + }, + { + "to" => "e", + "from" => "\x{3b5}" + }, + { + "to" => "Z", + "from" => "\x{396}" + }, + { + "to" => "z", + "from" => "\x{3b6}" + }, + { + "to" => "\x{112}", + "from" => "\x{397}" + }, + { + "to" => "\x{113}", + "from" => "\x{3b7}" + }, + { + "to" => "Th", + "from" => "\x{398}" + }, + { + "to" => "th", + "from" => "\x{3b8}" + }, + { + "to" => "th", + "from" => "\x{3d1}" + }, + { + "to" => "I", + "from" => "\x{399}" + }, + { + "to" => "i", + "from" => "\x{3b9}" + }, + { + "to" => "K", + "from" => "\x{39a}" + }, + { + "to" => "k", + "from" => "\x{3ba}" + }, + { + "to" => "L", + "from" => "\x{39b}" + }, + { + "to" => "l", + "from" => "\x{3bb}" + }, + { + "to" => "M", + "from" => "\x{39c}" + }, + { + "to" => "m", + "from" => "\x{3bc}" + }, + { + "to" => "N", + "from" => "\x{39d}" + }, + { + "to" => "n", + "from" => "\x{3bd}" + }, + { + "to" => "X", + "from" => "\x{39e}" + }, + { + "to" => "x", + "from" => "\x{3be}" + }, + { + "to" => "O", + "from" => "\x{39f}" + }, + { + "to" => "o", + "from" => "\x{3bf}" + }, + { + "to" => "P", + "from" => "\x{3a0}" + }, + { + "to" => "p", + "from" => "\x{3c0}" + }, + { + "to" => "R", + "from" => "\x{3a1}" + }, + { + "to" => "r", + "from" => "\x{3c1}" + }, + { + "to" => "S", + "from" => "\x{3a3}" + }, + { + "to" => "s", + "from" => "\x{3c3}" + }, + { + "to" => "s", + "from" => "\x{3c2}", + "context" => { + "before" => "\\b" + } + }, + { + "to" => "T", + "from" => "\x{3a4}" + }, + { + "to" => "t", + "from" => "\x{3c4}" + }, + { + "to" => "Y", + "from" => "\x{3a5}" + }, + { + "to" => "y", + "from" => "\x{3c5}" + }, + { + "to" => "Ph", + "from" => "\x{3a6}" + }, + { + "to" => "ph", + "from" => "\x{3c6}" + }, + { + "to" => "ph", + "from" => "\x{3d5}" + }, + { + "to" => "Ch", + "from" => "\x{3a7}" + }, + { + "to" => "ch", + "from" => "\x{3c7}" + }, + { + "to" => "Ps", + "from" => "\x{3a8}" + }, + { + "to" => "ps", + "from" => "\x{3c8}" + }, + { + "to" => "\x{14c}", + "from" => "\x{3a9}" + }, + { + "to" => "\x{14d}", + "from" => "\x{3c9}" + }, + { + "to" => "A", + "from" => "\x{386}" + }, + { + "to" => "a", + "from" => "\x{3ac}" + }, + { + "to" => "E", + "from" => "\x{388}" + }, + { + "to" => "e", + "from" => "\x{3ad}" + }, + { + "to" => "\x{112}", + "from" => "\x{389}" + }, + { + "to" => "\x{113}", + "from" => "\x{3ae}" + }, + { + "to" => "I", + "from" => "\x{38a}" + }, + { + "to" => "i", + "from" => "\x{3af}" + }, + { + "to" => "I", + "from" => "\x{3aa}" + }, + { + "to" => "i", + "from" => "\x{3ca}" + }, + { + "to" => "i", + "from" => "\x{390}" + }, + { + "to" => "O", + "from" => "\x{38c}" + }, + { + "to" => "o", + "from" => "\x{3cc}" + }, + { + "to" => "Y", + "from" => "\x{38e}" + }, + { + "to" => "y", + "from" => "\x{3cd}" + }, + { + "to" => "Y", + "from" => "\x{3ab}" + }, + { + "to" => "y", + "from" => "\x{3cb}" + }, + { + "to" => "y", + "from" => "\x{3b0}" + }, + { + "to" => "\x{14c}", + "from" => "\x{38f}" + }, + { + "to" => "\x{14d}", + "from" => "\x{3ce}" + }, + { + "to" => "?", + "from" => "\x{37e}" + }, + { + "to" => "?", + "from" => ";" + }, + { + "to" => ";", + "from" => "\x{b7}" + }, + { + "to" => "", + "from" => "\x{384}" + }, + { + "to" => "", + "from" => "\x{385}" + }, + { + "to" => "", + "from" => "\x{342}" + }, + { + "to" => "", + "from" => "\x{343}" + }, + { + "to" => "", + "from" => "\x{313}" + }, + { + "to" => "", + "from" => "\x{314}" + }, + { + "to" => "", + "from" => "\x{345}" + }, + { + "to" => "", + "from" => "\x{345}" + } + ], + "reverse" => "false" + }, + "common_ces" => { + "desc" => "Czech without diacritics", + "name" => "Common CES", + "id" => "common_ces", + "rules" => [ + { + "to" => "A", + "from" => "\x{c1}" + }, + { + "to" => "a", + "from" => "\x{e1}" + }, + { + "to" => "C", + "from" => "\x{10c}" + }, + { + "to" => "c", + "from" => "\x{10d}" + }, + { + "to" => "D", + "from" => "\x{10e}" + }, + { + "to" => "d", + "from" => "\x{10f}" + }, + { + "to" => "d", + "from" => "d\x{30c}" + }, + { + "to" => "E", + "from" => "\x{c9}" + }, + { + "to" => "e", + "from" => "\x{e9}" + }, + { + "to" => "E", + "from" => "\x{11a}" + }, + { + "to" => "e", + "from" => "\x{11b}" + }, + { + "to" => "I", + "from" => "\x{cd}" + }, + { + "to" => "i", + "from" => "\x{ed}" + }, + { + "to" => "N", + "from" => "\x{147}" + }, + { + "to" => "n", + "from" => "\x{148}" + }, + { + "to" => "O", + "from" => "\x{d3}" + }, + { + "to" => "o", + "from" => "\x{f3}" + }, + { + "to" => "R", + "from" => "\x{158}" + }, + { + "to" => "r", + "from" => "\x{159}" + }, + { + "to" => "S", + "from" => "\x{160}" + }, + { + "to" => "s", + "from" => "\x{161}" + }, + { + "to" => "T", + "from" => "\x{164}" + }, + { + "to" => "t", + "from" => "\x{165}" + }, + { + "to" => "t", + "from" => "t\x{30c};" + }, + { + "to" => "U", + "from" => "\x{da}" + }, + { + "to" => "u", + "from" => "\x{fa}" + }, + { + "to" => "U", + "from" => "\x{16e}" + }, + { + "to" => "u", + "from" => "\x{16f}" + }, + { + "to" => "Y", + "from" => "\x{dd}" + }, + { + "to" => "y", + "from" => "\x{fd}" + }, + { + "to" => "Z", + "from" => "\x{17d}" + }, + { + "to" => "z", + "from" => "\x{17e}" + } + ], + "reverse" => "false" + }, + "din_1460_ukr" => { + "desc" => "DIN 1460:1982, Cyrillic to Latin, Ukrainian", + "name" => "DIN 1460 UKR", + "id" => "din_1460_ukr", + "rules" => [ + { + "to" => "je", + "from" => "\x{454}" + }, + { + "to" => "JE", + "from" => "\x{404}", + "context" => { + "after" => "[\\p{IsUpper}\\p{IsSpace}]", + "before" => "[\\p{IsUpper}\\p{IsSpace}]" + } + }, + { + "to" => "Je", + "from" => "\x{404}" + }, + { + "to" => "ch", + "from" => "\x{445}" + }, + { + "to" => "CH", + "from" => "\x{425}", + "context" => { + "after" => "[\\p{IsUpper}\\p{IsSpace}]", + "before" => "[\\p{IsUpper}\\p{IsSpace}]" + } + }, + { + "to" => "Ch", + "from" => "\x{425}" + }, + { + "to" => "\x{161}\x{10d}", + "from" => "\x{449}" + }, + { + "to" => "\x{160}\x{10c}", + "from" => "\x{429}", + "context" => { + "after" => "[\\p{IsUpper}\\p{IsSpace}]", + "before" => "[\\p{IsUpper}\\p{IsSpace}]" + } + }, + { + "to" => "\x{160}\x{10d}", + "from" => "\x{429}" + }, + { + "to" => "ju", + "from" => "\x{44e}" + }, + { + "to" => "JU", + "from" => "\x{42e}", + "context" => { + "after" => "[\\p{IsUpper}\\p{IsSpace}]", + "before" => "[\\p{IsUpper}\\p{IsSpace}]" + } + }, + { + "to" => "Ju", + "from" => "\x{42e}" + }, + { + "to" => "ja", + "from" => "\x{44f}" + }, + { + "to" => "JA", + "from" => "\x{42f}", + "context" => { + "after" => "[\\p{IsUpper}\\p{IsSpace}]", + "before" => "[\\p{IsUpper}\\p{IsSpace}]" + } + }, + { + "to" => "Ja", + "from" => "\x{42f}" + }, + { + "to" => "J-", + "from" => "\x{419}", + "context" => { + "before" => "[aueAUE\x{430}\x{443}\x{435}\x{410}\x{423}\x{415}]" + } + }, + { + "to" => "j-", + "from" => "\x{439}", + "context" => { + "before" => "[aue\x{430}\x{443}\x{435}]" + } + }, + { + "to" => "\x{160}-", + "from" => "\x{428}", + "context" => { + "before" => "[\x{10c}\x{10d}\x{427}\x{447}]" + } + }, + { + "to" => "\x{161}-", + "from" => "\x{448}", + "context" => { + "before" => "[\x{10d}\x{447}]" + } + }, + { + "to" => "c-", + "from" => "\x{446}", + "context" => { + "before" => "[h\x{433}]" + } + }, + { + "to" => "C-", + "from" => "\x{426}", + "context" => { + "before" => "[hH\x{433}\x{413}]" + } + }, + { + "to" => "a", + "from" => "\x{430}" + }, + { + "to" => "A", + "from" => "\x{410}" + }, + { + "to" => "b", + "from" => "\x{431}" + }, + { + "to" => "B", + "from" => "\x{411}" + }, + { + "to" => "v", + "from" => "\x{432}" + }, + { + "to" => "V", + "from" => "\x{412}" + }, + { + "to" => "h", + "from" => "\x{433}" + }, + { + "to" => "H", + "from" => "\x{413}" + }, + { + "to" => "g", + "from" => "\x{491}" + }, + { + "to" => "G", + "from" => "\x{490}" + }, + { + "to" => "d", + "from" => "\x{434}" + }, + { + "to" => "D", + "from" => "\x{414}" + }, + { + "to" => "e", + "from" => "\x{435}" + }, + { + "to" => "E", + "from" => "\x{415}" + }, + { + "to" => "\x{17e}", + "from" => "\x{436}" + }, + { + "to" => "\x{17d}", + "from" => "\x{416}" + }, + { + "to" => "z", + "from" => "\x{437}" + }, + { + "to" => "Z", + "from" => "\x{417}" + }, + { + "to" => "y", + "from" => "\x{438}" + }, + { + "to" => "Y", + "from" => "\x{418}" + }, + { + "to" => "i", + "from" => "\x{456}" + }, + { + "to" => "I", + "from" => "\x{406}" + }, + { + "to" => "\x{ef}", + "from" => "\x{457}" + }, + { + "to" => "\x{cf}", + "from" => "\x{407}" + }, + { + "to" => "j", + "from" => "\x{439}" + }, + { + "to" => "J", + "from" => "\x{419}" + }, + { + "to" => "k", + "from" => "\x{43a}" + }, + { + "to" => "K", + "from" => "\x{41a}" + }, + { + "to" => "l", + "from" => "\x{43b}" + }, + { + "to" => "L", + "from" => "\x{41b}" + }, + { + "to" => "m", + "from" => "\x{43c}" + }, + { + "to" => "M", + "from" => "\x{41c}" + }, + { + "to" => "n", + "from" => "\x{43d}" + }, + { + "to" => "N", + "from" => "\x{41d}" + }, + { + "to" => "o", + "from" => "\x{43e}" + }, + { + "to" => "O", + "from" => "\x{41e}" + }, + { + "to" => "p", + "from" => "\x{43f}" + }, + { + "to" => "P", + "from" => "\x{41f}" + }, + { + "to" => "r", + "from" => "\x{440}" + }, + { + "to" => "R", + "from" => "\x{420}" + }, + { + "to" => "s", + "from" => "\x{441}" + }, + { + "to" => "S", + "from" => "\x{421}" + }, + { + "to" => "t", + "from" => "\x{442}" + }, + { + "to" => "T", + "from" => "\x{422}" + }, + { + "to" => "u", + "from" => "\x{443}" + }, + { + "to" => "U", + "from" => "\x{423}" + }, + { + "to" => "f", + "from" => "\x{444}" + }, + { + "to" => "F", + "from" => "\x{424}" + }, + { + "to" => "c", + "from" => "\x{446}" + }, + { + "to" => "C", + "from" => "\x{426}" + }, + { + "to" => "\x{10d}", + "from" => "\x{447}" + }, + { + "to" => "\x{10c}", + "from" => "\x{427}" + }, + { + "to" => "\x{161}", + "from" => "\x{448}" + }, + { + "to" => "\x{160}", + "from" => "\x{428}" + }, + { + "to" => "'", + "from" => "\x{42c}", + "context" => { + "after" => "\\p{IsUpper}" + } + }, + { + "to" => "'", + "from" => "\x{44c}" + }, + { + "to" => "\x{2ee}", + "from" => "\x{2bc}" + } + ], + "reverse" => "true" + }, + "bgn/pcgn_rus_standard" => { + "desc" => "BGN/PCGN:1947 (Standard Variant), Cyrillic to Latin, Russian", + "name" => "BGN/PCGN RUS Standard", + "id" => "bgn/pcgn_rus_standard", + "rules" => [ + { + "to" => "", + "from" => "\x{301}" + }, + { + "to" => "Ye", + "from" => "\x{415}", + "context" => { + "after" => "[\x{410}\x{415}\x{401}\x{418}\x{41e}\x{423}\x{42b}\x{42d}\x{42e}\x{42f}\x{419}\x{42c}\x{42a}\x{410}\x{435}\x{451}\x{438}\x{43e}\x{443}\x{44b}\x{44d}\x{44e}\x{44f}\x{439}\x{44c}\x{44a}]" + } + }, + { + "to" => "Ye", + "from" => "\x{415}", + "context" => { + "after" => "\\b" + } + }, + { + "to" => "E", + "from" => "\x{415}" + }, + { + "to" => "Y\x{eb}", + "from" => "\x{401}", + "context" => { + "after" => "[\x{410}\x{415}\x{401}\x{418}\x{41e}\x{423}\x{42b}\x{42d}\x{42e}\x{42f}\x{419}\x{42c}\x{42a}\x{410}\x{435}\x{451}\x{438}\x{43e}\x{443}\x{44b}\x{44d}\x{44e}\x{44f}\x{439}\x{44c}\x{44a}e]" + } + }, + { + "to" => "Y\x{eb}", + "from" => "\x{401}", + "context" => { + "after" => "\\b" + } + }, + { + "to" => "\x{cb}", + "from" => "\x{401}" + }, + { + "to" => "Y", + "from" => "\x{419}" + }, + { + "to" => "Y", + "from" => "\x{42b}" + }, + { + "to" => "E", + "from" => "\x{42d}" + }, + { + "to" => "A", + "from" => "\x{410}" + }, + { + "to" => "B", + "from" => "\x{411}" + }, + { + "to" => "V", + "from" => "\x{412}" + }, + { + "to" => "G", + "from" => "\x{413}" + }, + { + "to" => "D", + "from" => "\x{414}" + }, + { + "to" => "Zh", + "from" => "\x{416}" + }, + { + "to" => "Z", + "from" => "\x{417}" + }, + { + "to" => "I", + "from" => "\x{418}" + }, + { + "to" => "K", + "from" => "\x{41a}" + }, + { + "to" => "L", + "from" => "\x{41b}" + }, + { + "to" => "M", + "from" => "\x{41c}" + }, + { + "to" => "N", + "from" => "\x{41d}" + }, + { + "to" => "O", + "from" => "\x{41e}" + }, + { + "to" => "P", + "from" => "\x{41f}" + }, + { + "to" => "R", + "from" => "\x{420}" + }, + { + "to" => "S", + "from" => "\x{421}" + }, + { + "to" => "T", + "from" => "\x{422}" + }, + { + "to" => "U", + "from" => "\x{423}" + }, + { + "to" => "F", + "from" => "\x{424}" + }, + { + "to" => "Kh", + "from" => "\x{425}" + }, + { + "to" => "Ts", + "from" => "\x{426}" + }, + { + "to" => "Ch", + "from" => "\x{427}" + }, + { + "to" => "Sh", + "from" => "\x{428}" + }, + { + "to" => "Shch", + "from" => "\x{429}" + }, + { + "to" => "''", + "from" => "\x{42a}" + }, + { + "to" => "'", + "from" => "\x{42c}" + }, + { + "to" => "Yu", + "from" => "\x{42e}" + }, + { + "to" => "Ya", + "from" => "\x{42f}" + }, + { + "to" => "ye", + "from" => "\x{435}", + "context" => { + "after" => "[AE\x{cb}IOUYe\x{eb}au'\x{430}\x{435}\x{451}\x{438}\x{43e}\x{443}\x{44b}\x{44d}\x{44e}\x{44f}\x{439}\x{44c}\x{44a}]" + } + }, + { + "to" => "ye", + "from" => "\x{435}", + "context" => { + "after" => "\\b" + } + }, + { + "to" => "e", + "from" => "\x{435}" + }, + { + "to" => "y\x{eb}", + "from" => "\x{451}", + "context" => { + "after" => "[AE\x{cb}IOUYe\x{eb}au'\x{430}\x{435}\x{451}\x{438}\x{43e}\x{443}\x{44b}\x{44d}\x{44e}\x{44f}\x{439}\x{44c}\x{44a}]" + } + }, + { + "to" => "y\x{eb}", + "from" => "\x{451}", + "context" => { + "after" => "\\b" + } + }, + { + "to" => "\x{eb}", + "from" => "\x{451}" + }, + { + "to" => "y", + "from" => "\x{439}" + }, + { + "to" => "y", + "from" => "\x{44b}" + }, + { + "to" => "e", + "from" => "\x{44d}" + }, + { + "to" => "a", + "from" => "\x{430}" + }, + { + "to" => "b", + "from" => "\x{431}" + }, + { + "to" => "v", + "from" => "\x{432}" + }, + { + "to" => "g", + "from" => "\x{433}" + }, + { + "to" => "d", + "from" => "\x{434}" + }, + { + "to" => "zh", + "from" => "\x{436}" + }, + { + "to" => "z", + "from" => "\x{437}" + }, + { + "to" => "i", + "from" => "\x{438}" + }, + { + "to" => "k", + "from" => "\x{43a}" + }, + { + "to" => "l", + "from" => "\x{43b}" + }, + { + "to" => "m", + "from" => "\x{43c}" + }, + { + "to" => "n", + "from" => "\x{43d}" + }, + { + "to" => "o", + "from" => "\x{43e}" + }, + { + "to" => "p", + "from" => "\x{43f}" + }, + { + "to" => "r", + "from" => "\x{440}" + }, + { + "to" => "s", + "from" => "\x{441}" + }, + { + "to" => "t", + "from" => "\x{442}" + }, + { + "to" => "u", + "from" => "\x{443}" + }, + { + "to" => "f", + "from" => "\x{444}" + }, + { + "to" => "kh", + "from" => "\x{445}" + }, + { + "to" => "ts", + "from" => "\x{446}" + }, + { + "to" => "ch", + "from" => "\x{447}" + }, + { + "to" => "sh", + "from" => "\x{448}" + }, + { + "to" => "shch", + "from" => "\x{449}" + }, + { + "to" => "''", + "from" => "\x{44a}" + }, + { + "to" => "'", + "from" => "\x{44c}" + }, + { + "to" => "yu", + "from" => "\x{44e}" + }, + { + "to" => "ya", + "from" => "\x{44f}" + } + ], + "reverse" => "false" + }, + "iast_devanagari" => { + "desc" => "IAST to Devan\x{101}gar\x{12b}", + "name" => "IAST Devanagari", + "id" => "iast_devanagari", + "rules" => [ + { + "to" => "\x{950}", + "from" => "o\x{1e41}" + }, + { + "to" => "\x{950}", + "from" => "O\x{1e41}" + }, + { + "to" => "\x{902}", + "from" => "\x{1e43}" + }, + { + "to" => "\x{903}", + "from" => "\x{1e25}" + }, + { + "to" => "\x{916}\x{94d}", + "from" => "kh" + }, + { + "to" => "\x{916}\x{94d}", + "from" => "Kh" + }, + { + "to" => "\x{915}\x{94d}", + "from" => "K" + }, + { + "to" => "\x{915}\x{94d}", + "from" => "k" + }, + { + "to" => "\x{918}\x{94d}", + "from" => "gh" + }, + { + "to" => "\x{918}\x{94d}", + "from" => "Gh" + }, + { + "to" => "\x{917}\x{94d}", + "from" => "G" + }, + { + "to" => "\x{917}\x{94d}", + "from" => "g" + }, + { + "to" => "\x{919}\x{94d}", + "from" => "\x{1e44}" + }, + { + "to" => "\x{919}\x{94d}", + "from" => "\x{1e45}" + }, + { + "to" => "\x{91b}\x{94d}", + "from" => "ch" + }, + { + "to" => "\x{91b}\x{94d}", + "from" => "Ch" + }, + { + "to" => "\x{91a}\x{94d}", + "from" => "C" + }, + { + "to" => "\x{91a}\x{94d}", + "from" => "c" + }, + { + "to" => "\x{91d}\x{94d}", + "from" => "jh" + }, + { + "to" => "\x{91d}\x{94d}", + "from" => "Jh" + }, + { + "to" => "\x{91c}\x{94d}", + "from" => "J" + }, + { + "to" => "\x{91c}\x{94d}", + "from" => "j" + }, + { + "to" => "\x{91e}\x{94d}", + "from" => "\x{d1}" + }, + { + "to" => "\x{91e}\x{94d}", + "from" => "\x{f1}" + }, + { + "to" => "\x{920}\x{94d}", + "from" => "\x{1e6d}h" + }, + { + "to" => "\x{920}\x{94d}", + "from" => "\x{1e6c}h" + }, + { + "to" => "\x{91f}\x{94d}", + "from" => "\x{1e6c}" + }, + { + "to" => "\x{91f}\x{94d}", + "from" => "\x{1e6d}" + }, + { + "to" => "\x{922}\x{94d}", + "from" => "\x{1e0d}h" + }, + { + "to" => "\x{922}\x{94d}", + "from" => "\x{1e0c}h" + }, + { + "to" => "\x{921}\x{94d}", + "from" => "\x{1e0c}" + }, + { + "to" => "\x{921}\x{94d}", + "from" => "\x{1e0d}" + }, + { + "to" => "\x{923}\x{94d}", + "from" => "\x{1e46}" + }, + { + "to" => "\x{923}\x{94d}", + "from" => "\x{1e47}" + }, + { + "to" => "\x{925}\x{94d}", + "from" => "th" + }, + { + "to" => "\x{925}\x{94d}", + "from" => "Th" + }, + { + "to" => "\x{924}\x{94d}", + "from" => "T" + }, + { + "to" => "\x{924}\x{94d}", + "from" => "t" + }, + { + "to" => "\x{927}\x{94d}", + "from" => "dh" + }, + { + "to" => "\x{927}\x{94d}", + "from" => "Dh" + }, + { + "to" => "\x{926}\x{94d}", + "from" => "D" + }, + { + "to" => "\x{926}\x{94d}", + "from" => "d" + }, + { + "to" => "\x{928}\x{94d}", + "from" => "N" + }, + { + "to" => "\x{928}\x{94d}", + "from" => "n" + }, + { + "to" => "\x{92b}\x{94d}", + "from" => "ph" + }, + { + "to" => "\x{92b}\x{94d}", + "from" => "Ph" + }, + { + "to" => "\x{92a}\x{94d}", + "from" => "P" + }, + { + "to" => "\x{92a}\x{94d}", + "from" => "p" + }, + { + "to" => "\x{92d}\x{94d}", + "from" => "bh" + }, + { + "to" => "\x{92d}\x{94d}", + "from" => "Bh" + }, + { + "to" => "\x{92c}\x{94d}", + "from" => "B" + }, + { + "to" => "\x{92c}\x{94d}", + "from" => "b" + }, + { + "to" => "\x{92e}\x{94d}", + "from" => "M" + }, + { + "to" => "\x{92e}\x{94d}", + "from" => "m" + }, + { + "to" => "\x{92f}\x{94d}", + "from" => "Y" + }, + { + "to" => "\x{92f}\x{94d}", + "from" => "y" + }, + { + "to" => "\x{930}\x{94d}", + "from" => "R" + }, + { + "to" => "\x{930}\x{94d}", + "from" => "r" + }, + { + "to" => "\x{932}\x{94d}", + "from" => "L" + }, + { + "to" => "\x{932}\x{94d}", + "from" => "l" + }, + { + "to" => "\x{935}\x{94d}", + "from" => "V" + }, + { + "to" => "\x{935}\x{94d}", + "from" => "v" + }, + { + "to" => "\x{936}\x{94d}", + "from" => "\x{15a}" + }, + { + "to" => "\x{936}\x{94d}", + "from" => "\x{15b}" + }, + { + "to" => "\x{937}\x{94d}", + "from" => "\x{1e62}" + }, + { + "to" => "\x{937}\x{94d}", + "from" => "\x{1e63}" + }, + { + "to" => "\x{938}\x{94d}", + "from" => "S" + }, + { + "to" => "\x{938}\x{94d}", + "from" => "s" + }, + { + "to" => "\x{939}\x{94d}", + "from" => "H" + }, + { + "to" => "\x{939}\x{94d}", + "from" => "h" + }, + { + "to" => "\x{948}", + "from" => "\x{94d}ai" + }, + { + "to" => "\x{94c}", + "from" => "\x{94d}au" + }, + { + "to" => "", + "from" => "\x{94d}a" + }, + { + "to" => "\x{93e}", + "from" => "\x{94d}\x{101}" + }, + { + "to" => "\x{93f}", + "from" => "\x{94d}i" + }, + { + "to" => "\x{940}", + "from" => "\x{94d}\x{12b}" + }, + { + "to" => "\x{941}", + "from" => "\x{94d}u" + }, + { + "to" => "\x{942}", + "from" => "\x{94d}\x{16b}" + }, + { + "to" => "\x{943}", + "from" => "\x{94d}\x{1e5b}" + }, + { + "to" => "\x{944}", + "from" => "\x{94d}\x{1e5d}" + }, + { + "to" => "\x{962}", + "from" => "\x{94d}\x{1e37}" + }, + { + "to" => "\x{963}", + "from" => "\x{94d}\x{1e39}" + }, + { + "to" => "\x{947}", + "from" => "\x{94d}e" + }, + { + "to" => "\x{94b}", + "from" => "\x{94d}o" + }, + { + "to" => "\x{93d}", + "from" => "'" + }, + { + "to" => "\x{910}", + "from" => "ai" + }, + { + "to" => "\x{910}", + "from" => "Ai" + }, + { + "to" => "\x{914}", + "from" => "au" + }, + { + "to" => "\x{914}", + "from" => "Au" + }, + { + "to" => "\x{905}", + "from" => "a" + }, + { + "to" => "\x{905}", + "from" => "A" + }, + { + "to" => "\x{906}", + "from" => "\x{101}" + }, + { + "to" => "\x{906}", + "from" => "\x{100}" + }, + { + "to" => "\x{907}", + "from" => "i" + }, + { + "to" => "\x{907}", + "from" => "I" + }, + { + "to" => "\x{908}", + "from" => "\x{12b}" + }, + { + "to" => "\x{908}", + "from" => "\x{12a}" + }, + { + "to" => "\x{909}", + "from" => "u" + }, + { + "to" => "\x{909}", + "from" => "U" + }, + { + "to" => "\x{90a}", + "from" => "\x{16b}" + }, + { + "to" => "\x{90a}", + "from" => "\x{16a}" + }, + { + "to" => "\x{90b}", + "from" => "\x{1e5b}" + }, + { + "to" => "\x{90b}", + "from" => "\x{1e5a}" + }, + { + "to" => "\x{960}", + "from" => "\x{1e5d}" + }, + { + "to" => "\x{960}", + "from" => "\x{1e5c}" + }, + { + "to" => "\x{90c}", + "from" => "\x{1e37}" + }, + { + "to" => "\x{90c}", + "from" => "\x{1e36}" + }, + { + "to" => "\x{961}", + "from" => "\x{1e39}" + }, + { + "to" => "\x{961}", + "from" => "\x{1e38}" + }, + { + "to" => "\x{90f}", + "from" => "e" + }, + { + "to" => "\x{90f}", + "from" => "E" + }, + { + "to" => "\x{913}", + "from" => "o" + }, + { + "to" => "\x{913}", + "from" => "O" + }, + { + "to" => "\x{967}", + "from" => 1 + }, + { + "to" => "\x{968}", + "from" => 2 + }, + { + "to" => "\x{969}", + "from" => 3 + }, + { + "to" => "\x{96a}", + "from" => 4 + }, + { + "to" => "\x{96b}", + "from" => 5 + }, + { + "to" => "\x{96c}", + "from" => 6 + }, + { + "to" => "\x{96d}", + "from" => 7 + }, + { + "to" => "\x{96e}", + "from" => 8 + }, + { + "to" => "\x{96f}", + "from" => 9 + }, + { + "to" => "\x{966}", + "from" => 0 + } + ], + "reverse" => "false" + }, + "din_1460_bul" => { + "desc" => "DIN 1460:1982, Cyrillic to Latin, Bulgarian", + "name" => "DIN 1460 BUL", + "id" => "din_1460_bul", + "rules" => [ + { + "to" => "\x{160}T", + "from" => "\x{429}", + "context" => { + "after" => "[\\p{IsUpper}\\p{IsSpace}]", + "before" => "[\\p{IsUpper}\\p{IsSpace}]" + } + }, + { + "to" => "\x{160}t", + "from" => "\x{429}" + }, + { + "to" => "\x{161}t", + "from" => "\x{449}" + }, + { + "to" => "JU", + "from" => "\x{42e}", + "context" => { + "after" => "[\\p{IsUpper}\\p{IsSpace}]", + "before" => "[\\p{IsUpper}\\p{IsSpace}]" + } + }, + { + "to" => "Ju", + "from" => "\x{42e}" + }, + { + "to" => "ju", + "from" => "\x{44e}" + }, + { + "to" => "JA", + "from" => "\x{42f}", + "context" => { + "after" => "[\\p{IsUpper}\\p{IsSpace}]", + "before" => "[\\p{IsUpper}\\p{IsSpace}]" + } + }, + { + "to" => "Ja", + "from" => "\x{42f}" + }, + { + "to" => "ja", + "from" => "\x{44f}" + }, + { + "to" => "CH", + "from" => "\x{425}", + "context" => { + "after" => "[\\p{IsUpper}\\p{IsSpace}]", + "before" => "[\\p{IsUpper}\\p{IsSpace}]" + } + }, + { + "to" => "Ch", + "from" => "\x{425}" + }, + { + "to" => "ch", + "from" => "\x{445}" + }, + { + "to" => "J-", + "from" => "\x{419}", + "context" => { + "before" => "[auAU\x{430}\x{443}\x{410}\x{423}]" + } + }, + { + "to" => "j-", + "from" => "\x{439}", + "context" => { + "before" => "[au\x{430}\x{443}]" + } + }, + { + "to" => "\x{160}-", + "from" => "\x{428}", + "context" => { + "before" => "[tT\x{442}\x{422}]" + } + }, + { + "to" => "\x{161}-", + "from" => "\x{448}", + "context" => { + "before" => "[t\x{442}]" + } + }, + { + "to" => "A", + "from" => "\x{410}" + }, + { + "to" => "a", + "from" => "\x{430}" + }, + { + "to" => "B", + "from" => "\x{411}" + }, + { + "to" => "b", + "from" => "\x{431}" + }, + { + "to" => "V", + "from" => "\x{412}" + }, + { + "to" => "v", + "from" => "\x{432}" + }, + { + "to" => "G", + "from" => "\x{413}" + }, + { + "to" => "g", + "from" => "\x{433}" + }, + { + "to" => "D", + "from" => "\x{414}" + }, + { + "to" => "d", + "from" => "\x{434}" + }, + { + "to" => "E", + "from" => "\x{415}" + }, + { + "to" => "e", + "from" => "\x{435}" + }, + { + "to" => "\x{17d}", + "from" => "\x{416}" + }, + { + "to" => "\x{17e}", + "from" => "\x{436}" + }, + { + "to" => "Z", + "from" => "\x{417}" + }, + { + "to" => "z", + "from" => "\x{437}" + }, + { + "to" => "I", + "from" => "\x{418}" + }, + { + "to" => "i", + "from" => "\x{438}" + }, + { + "to" => "J", + "from" => "\x{419}" + }, + { + "to" => "j", + "from" => "\x{439}" + }, + { + "to" => "K", + "from" => "\x{41a}" + }, + { + "to" => "k", + "from" => "\x{43a}" + }, { "to" => "L", "from" => "\x{41b}" }, + { + "to" => "l", + "from" => "\x{43b}" + }, + { + "to" => "M", + "from" => "\x{41c}" + }, { "to" => "m", "from" => "\x{43c}" }, + { + "to" => "N", + "from" => "\x{41d}" + }, + { + "to" => "n", + "from" => "\x{43d}" + }, + { + "to" => "O", + "from" => "\x{41e}" + }, + { + "to" => "o", + "from" => "\x{43e}" + }, + { + "to" => "P", + "from" => "\x{41f}" + }, + { + "to" => "p", + "from" => "\x{43f}" + }, + { + "to" => "R", + "from" => "\x{420}" + }, + { + "to" => "r", + "from" => "\x{440}" + }, + { + "to" => "T", + "from" => "\x{422}" + }, + { + "to" => "t", + "from" => "\x{442}" + }, + { + "to" => "U", + "from" => "\x{423}" + }, + { + "to" => "u", + "from" => "\x{443}" + }, + { + "to" => "F", + "from" => "\x{424}" + }, + { + "to" => "f", + "from" => "\x{444}" + }, + { + "to" => "C", + "from" => "\x{426}" + }, + { + "to" => "c", + "from" => "\x{446}" + }, + { + "to" => "S", + "from" => "\x{421}" + }, + { + "to" => "s", + "from" => "\x{441}" + }, + { + "to" => "\x{10c}", + "from" => "\x{427}" + }, + { + "to" => "\x{10d}", + "from" => "\x{447}" + }, + { + "to" => "\x{160}", + "from" => "\x{428}" + }, + { + "to" => "\x{161}", + "from" => "\x{448}" + }, + { + "to" => "\x{102}", + "from" => "\x{42a}" + }, + { + "to" => "\x{103}", + "from" => "\x{44a}" + }, + { + "to" => "'", + "from" => "\x{42c}", + "context" => { + "after" => "\\p{IsUpper}" + } + }, + { + "to" => "'", + "from" => "\x{44c}" + } + ], + "reverse" => "true" + }, + "ala-lc_rus" => { + "desc" => "ALA-LC:1997, Cyrillic to Latin, Russian", + "name" => "ALA-LC RUS", + "id" => "ala-lc_rus", + "rules" => [ + { + "to" => "A", + "from" => "\x{410}" + }, + { + "to" => "B", + "from" => "\x{411}" + }, + { + "to" => "V", + "from" => "\x{412}" + }, + { + "to" => "G", + "from" => "\x{413}" + }, + { + "to" => "D", + "from" => "\x{414}" + }, + { + "to" => "E", + "from" => "\x{415}" + }, + { + "to" => "\x{cb}", + "from" => "\x{401}" + }, + { + "to" => "Zh", + "from" => "\x{416}" + }, + { + "to" => "Z", + "from" => "\x{417}" + }, + { + "to" => "I", + "from" => "\x{418}" + }, + { + "to" => "\x{12a}", + "from" => "\x{406}" + }, + { + "to" => "\x{12c}", + "from" => "\x{419}" + }, + { + "to" => "K", + "from" => "\x{41a}" + }, + { + "to" => "L", + "from" => "\x{41b}" + }, { "to" => "M", "from" => "\x{41c}" }, - { - "to" => "n", - "from" => "\x{43d}" - }, { "to" => "N", "from" => "\x{41d}" }, - { - "to" => "o", - "from" => "\x{43e}" - }, { "to" => "O", "from" => "\x{41e}" }, - { - "to" => "p", - "from" => "\x{43f}" - }, { "to" => "P", "from" => "\x{41f}" }, - { - "to" => "r", - "from" => "\x{440}" - }, { "to" => "R", "from" => "\x{420}" }, - { - "to" => "s", - "from" => "\x{441}" - }, { "to" => "S", "from" => "\x{421}" }, - { - "to" => "t", - "from" => "\x{442}" - }, { "to" => "T", "from" => "\x{422}" }, - { - "to" => "u", - "from" => "\x{443}" - }, { "to" => "U", "from" => "\x{423}" }, - { - "to" => "f", - "from" => "\x{444}" - }, { "to" => "F", "from" => "\x{424}" }, { - "to" => "c", - "from" => "\x{446}" + "to" => "Kh", + "from" => "\x{425}" }, { - "to" => "C", + "to" => "TS", "from" => "\x{426}" }, { - "to" => "\x{10d}", - "from" => "\x{447}" - }, - { - "to" => "\x{10c}", + "to" => "Ch", "from" => "\x{427}" }, { - "to" => "\x{161}", - "from" => "\x{448}" + "to" => "Ch", + "from" => "\x{427}" }, { - "to" => "\x{160}", + "to" => "Sh", "from" => "\x{428}" }, { - "to" => "'", - "from" => "\x{42c}", - "context" => { - "after" => "\\p{IsUpper}" - } - }, - { - "to" => "'", - "from" => "\x{44c}" - }, - { - "to" => "\x{2ee}", - "from" => "\x{2bc}" - } - ], - "reverse" => "true" - }, - "din_1460_bul" => { - "desc" => "DIN 1460:1982, Cyrillic to Latin, Bulgarian", - "name" => "DIN 1460 BUL", - "id" => "din_1460_bul", - "rules" => [ - { - "to" => "\x{160}T", - "from" => "\x{429}", - "context" => { - "after" => "[\\p{IsUpper}\\p{IsSpace}]", - "before" => "[\\p{IsUpper}\\p{IsSpace}]" - } - }, - { - "to" => "\x{160}t", + "to" => "Shch", "from" => "\x{429}" }, { - "to" => "\x{161}t", - "from" => "\x{449}" - }, - { - "to" => "JU", - "from" => "\x{42e}", - "context" => { - "after" => "[\\p{IsUpper}\\p{IsSpace}]", - "before" => "[\\p{IsUpper}\\p{IsSpace}]" - } - }, - { - "to" => "Ju", - "from" => "\x{42e}" - }, - { - "to" => "ju", - "from" => "\x{44e}" - }, - { - "to" => "JA", - "from" => "\x{42f}", + "to" => "", + "from" => "\x{42a}", "context" => { - "after" => "[\\p{IsUpper}\\p{IsSpace}]", - "before" => "[\\p{IsUpper}\\p{IsSpace}]" + "before" => "\\b" } }, { - "to" => "Ja", - "from" => "\x{42f}" + "to" => "\x{2033}", + "from" => "\x{42a}" }, { - "to" => "ja", - "from" => "\x{44f}" + "to" => "Y", + "from" => "\x{42b}" }, { - "to" => "CH", - "from" => "\x{425}", - "context" => { - "after" => "[\\p{IsUpper}\\p{IsSpace}]", - "before" => "[\\p{IsUpper}\\p{IsSpace}]" - } + "to" => "\x{2032}", + "from" => "\x{42c}" }, { - "to" => "Ch", - "from" => "\x{425}" + "to" => "IE", + "from" => "\x{462}" }, { - "to" => "ch", - "from" => "\x{445}" + "to" => "\x{116}", + "from" => "\x{42d}" }, { - "to" => "J-", - "from" => "\x{419}", - "context" => { - "before" => "[auAU\x{430}\x{443}\x{410}\x{423}]" - } + "to" => "IU", + "from" => "\x{42e}" }, { - "to" => "j-", - "from" => "\x{439}", - "context" => { - "before" => "[au\x{430}\x{443}]" - } + "to" => "IA", + "from" => "\x{42f}" }, { - "to" => "\x{160}-", - "from" => "\x{428}", - "context" => { - "before" => "[tT\x{442}\x{422}]" - } + "to" => "\x{118}", + "from" => "\x{466}" }, { - "to" => "\x{161}-", - "from" => "\x{448}", - "context" => { - "before" => "[t\x{442}]" - } + "to" => "\x{1e1e}", + "from" => "\x{4e8}" }, { - "to" => "A", - "from" => "\x{410}" + "to" => "\x{1e8e}", + "from" => "\x{474}" }, { "to" => "a", "from" => "\x{430}" }, - { - "to" => "B", - "from" => "\x{411}" - }, { "to" => "b", "from" => "\x{431}" }, - { - "to" => "V", - "from" => "\x{412}" - }, { "to" => "v", "from" => "\x{432}" }, - { - "to" => "G", - "from" => "\x{413}" - }, { "to" => "g", "from" => "\x{433}" }, - { - "to" => "D", - "from" => "\x{414}" - }, { "to" => "d", "from" => "\x{434}" }, - { - "to" => "E", - "from" => "\x{415}" - }, { "to" => "e", "from" => "\x{435}" }, { - "to" => "\x{17d}", - "from" => "\x{416}" + "to" => "\x{eb}", + "from" => "\x{451}" }, { - "to" => "\x{17e}", + "to" => "zh", "from" => "\x{436}" }, - { - "to" => "Z", - "from" => "\x{417}" - }, { "to" => "z", "from" => "\x{437}" }, - { - "to" => "I", - "from" => "\x{418}" - }, { "to" => "i", "from" => "\x{438}" }, { - "to" => "J", - "from" => "\x{419}" + "to" => "\x{12b}", + "from" => "\x{456}" }, { - "to" => "j", + "to" => "\x{12d}", "from" => "\x{439}" }, - { - "to" => "K", - "from" => "\x{41a}" - }, { "to" => "k", "from" => "\x{43a}" }, - { - "to" => "L", - "from" => "\x{41b}" - }, { "to" => "l", "from" => "\x{43b}" }, - { - "to" => "M", - "from" => "\x{41c}" - }, { "to" => "m", "from" => "\x{43c}" }, - { - "to" => "N", - "from" => "\x{41d}" - }, { "to" => "n", "from" => "\x{43d}" }, - { - "to" => "O", - "from" => "\x{41e}" - }, { "to" => "o", "from" => "\x{43e}" }, - { - "to" => "P", - "from" => "\x{41f}" - }, { "to" => "p", "from" => "\x{43f}" }, - { - "to" => "R", - "from" => "\x{420}" - }, { "to" => "r", "from" => "\x{440}" }, { - "to" => "T", - "from" => "\x{422}" + "to" => "s", + "from" => "\x{441}" }, { "to" => "t", "from" => "\x{442}" }, - { - "to" => "U", - "from" => "\x{423}" - }, { "to" => "u", "from" => "\x{443}" }, { - "to" => "F", - "from" => "\x{424}" + "to" => "f", + "from" => "\x{444}" + }, + { + "to" => "kh", + "from" => "\x{445}" + }, + { + "to" => "ts", + "from" => "\x{446}" + }, + { + "to" => "ch", + "from" => "\x{447}" }, { - "to" => "f", - "from" => "\x{444}" + "to" => "sh", + "from" => "\x{448}" }, { - "to" => "C", - "from" => "\x{426}" + "to" => "shch", + "from" => "\x{449}" }, { - "to" => "c", - "from" => "\x{446}" + "to" => "", + "from" => "\x{44a}", + "context" => { + "before" => "\\b" + } }, { - "to" => "S", - "from" => "\x{421}" + "to" => "\x{2033}", + "from" => "\x{44a}" }, { - "to" => "s", - "from" => "\x{441}" + "to" => "y", + "from" => "\x{44b}" }, { - "to" => "\x{10c}", - "from" => "\x{427}" + "to" => "\x{2032}", + "from" => "\x{44c}" }, { - "to" => "\x{10d}", - "from" => "\x{447}" + "to" => "ie", + "from" => "\x{463}" }, { - "to" => "\x{160}", - "from" => "\x{428}" + "to" => "\x{117}", + "from" => "\x{44d}" }, { - "to" => "\x{161}", - "from" => "\x{448}" + "to" => "iu", + "from" => "\x{44e}" }, { - "to" => "\x{102}", - "from" => "\x{42a}" + "to" => "ia", + "from" => "\x{44f}" }, { - "to" => "\x{103}", - "from" => "\x{44a}" + "to" => "\x{119}", + "from" => "\x{467}" }, { - "to" => "'", - "from" => "\x{42c}", - "context" => { - "after" => "\\p{IsUpper}" - } + "to" => "\x{1e1f}", + "from" => "\x{4e9}" }, { - "to" => "'", - "from" => "\x{44c}" + "to" => "\x{1e8f}", + "from" => "\x{475}" } ], - "reverse" => "true" + "reverse" => "false" }, - "ala-lc_rus" => { - "desc" => "ALA-LC:1997, Cyrillic to Latin, Russian", - "name" => "ALA-LC RUS", - "id" => "ala-lc_rus", + "iso/r_9" => { + "desc" => "ISO/R 9:1954, Cyrillic to Latin", + "name" => "ISO/R 9", + "id" => "iso/r_9", "rules" => [ { "to" => "A", "from" => "\x{410}" }, + { + "to" => "a", + "from" => "\x{430}" + }, { "to" => "B", "from" => "\x{411}" }, + { + "to" => "b", + "from" => "\x{431}" + }, { "to" => "V", "from" => "\x{412}" }, + { + "to" => "v", + "from" => "\x{432}" + }, { "to" => "G", "from" => "\x{413}" }, + { + "to" => "g", + "from" => "\x{433}" + }, + { + "to" => "G\x{300}", + "from" => "\x{490}" + }, + { + "to" => "g\x{300}", + "from" => "\x{491}" + }, { "to" => "D", "from" => "\x{414}" }, + { + "to" => "d", + "from" => "\x{434}" + }, + { + "to" => "\x{1f4}", + "from" => "\x{403}" + }, + { + "to" => "\x{1f5}", + "from" => "\x{453}" + }, + { + "to" => "\x{110}", + "from" => "\x{402}" + }, + { + "to" => "\x{111}", + "from" => "\x{452}" + }, { "to" => "E", "from" => "\x{415}" }, + { + "to" => "e", + "from" => "\x{435}" + }, { "to" => "\x{cb}", "from" => "\x{401}" }, { - "to" => "Zh", + "to" => "\x{eb}", + "from" => "\x{451}" + }, + { + "to" => "Je", + "from" => "\x{404}" + }, + { + "to" => "je", + "from" => "\x{454}" + }, + { + "to" => "\x{17d}", "from" => "\x{416}" }, + { + "to" => "\x{17e}", + "from" => "\x{436}" + }, { "to" => "Z", "from" => "\x{417}" }, { - "to" => "I", - "from" => "\x{418}" + "to" => "z", + "from" => "\x{437}" }, { - "to" => "\x{12a}", - "from" => "\x{406}" + "to" => "Dz", + "from" => "\x{405}" }, { - "to" => "\x{12c}", - "from" => "\x{419}" + "to" => "dz", + "from" => "\x{455}" }, { - "to" => "K", - "from" => "\x{41a}" + "to" => "I", + "from" => "\x{418}" }, { - "to" => "L", - "from" => "\x{41b}" + "to" => "i", + "from" => "\x{438}" }, { - "to" => "M", - "from" => "\x{41c}" + "to" => "I", + "from" => "\x{406}" }, { - "to" => "N", - "from" => "\x{41d}" + "to" => "i", + "from" => "\x{456}" }, { - "to" => "O", - "from" => "\x{41e}" + "to" => "Ji", + "from" => "\x{407}" }, { - "to" => "P", - "from" => "\x{41f}" + "to" => "ji", + "from" => "\x{457}" }, { - "to" => "R", - "from" => "\x{420}" + "to" => "J", + "from" => "\x{419}" }, { - "to" => "S", - "from" => "\x{421}" + "to" => "j", + "from" => "\x{439}" }, { - "to" => "T", - "from" => "\x{422}" + "to" => "J", + "from" => "\x{408}" }, { - "to" => "U", - "from" => "\x{423}" + "to" => "j", + "from" => "\x{458}" }, { - "to" => "F", - "from" => "\x{424}" + "to" => "K", + "from" => "\x{41a}" }, { - "to" => "Kh", - "from" => "\x{425}" + "to" => "k", + "from" => "\x{43a}" }, { - "to" => "TS", - "from" => "\x{426}" + "to" => "L", + "from" => "\x{41b}" }, { - "to" => "Ch", - "from" => "\x{427}" + "to" => "l", + "from" => "\x{43b}" }, { - "to" => "Ch", - "from" => "\x{427}" + "to" => "LJ", + "from" => "\x{409}", + "context" => { + "after" => "\\p{IsUpper}" + } }, { - "to" => "Sh", - "from" => "\x{428}" + "to" => "Lj", + "from" => "\x{409}" }, { - "to" => "Shch", - "from" => "\x{429}" + "to" => "lj", + "from" => "\x{459}" }, { - "to" => "", - "from" => "\x{42a}", - "context" => { - "before" => "\\b" - } + "to" => "M", + "from" => "\x{41c}" }, { - "to" => "\x{2033}", - "from" => "\x{42a}" + "to" => "m", + "from" => "\x{43c}" }, { - "to" => "Y", - "from" => "\x{42b}" + "to" => "N", + "from" => "\x{41d}" }, { - "to" => "\x{2032}", - "from" => "\x{42c}" + "to" => "n", + "from" => "\x{43d}" }, { - "to" => "IE", - "from" => "\x{462}" + "to" => "NJ", + "from" => "\x{40a}", + "context" => { + "after" => "\\p{IsUpper}" + } }, { - "to" => "\x{116}", - "from" => "\x{42d}" + "to" => "Nj", + "from" => "\x{40a}" }, { - "to" => "IU", - "from" => "\x{42e}" + "to" => "nj", + "from" => "\x{45a}" }, { - "to" => "IA", - "from" => "\x{42f}" + "to" => "O", + "from" => "\x{41e}" }, { - "to" => "\x{118}", - "from" => "\x{466}" + "to" => "o", + "from" => "\x{43e}" }, { - "to" => "\x{1e1e}", - "from" => "\x{4e8}" + "to" => "P", + "from" => "\x{41f}" }, { - "to" => "\x{1e8e}", - "from" => "\x{474}" + "to" => "p", + "from" => "\x{43f}" }, { - "to" => "a", - "from" => "\x{430}" + "to" => "R", + "from" => "\x{420}" }, { - "to" => "b", - "from" => "\x{431}" + "to" => "r", + "from" => "\x{440}" }, { - "to" => "v", - "from" => "\x{432}" + "to" => "S", + "from" => "\x{421}" }, { - "to" => "g", - "from" => "\x{433}" + "to" => "s", + "from" => "\x{441}" }, { - "to" => "d", - "from" => "\x{434}" + "to" => "T", + "from" => "\x{422}" }, { - "to" => "e", - "from" => "\x{435}" + "to" => "t", + "from" => "\x{442}" }, { - "to" => "\x{eb}", - "from" => "\x{451}" + "to" => "\x{1e30}", + "from" => "\x{40c}" }, { - "to" => "zh", - "from" => "\x{436}" + "to" => "\x{1e31}", + "from" => "\x{45c}" }, { - "to" => "z", - "from" => "\x{437}" + "to" => "\x{106}", + "from" => "\x{40b}" }, { - "to" => "i", - "from" => "\x{438}" + "to" => "\x{107}", + "from" => "\x{45b}" }, { - "to" => "\x{12b}", - "from" => "\x{456}" + "to" => "U", + "from" => "\x{423}" }, { - "to" => "\x{12d}", - "from" => "\x{439}" + "to" => "u", + "from" => "\x{443}" }, { - "to" => "k", - "from" => "\x{43a}" + "to" => "\x{16c}", + "from" => "\x{40e}" }, { - "to" => "l", - "from" => "\x{43b}" + "to" => "\x{16d}", + "from" => "\x{45e}" }, { - "to" => "m", - "from" => "\x{43c}" + "to" => "F", + "from" => "\x{424}" }, { - "to" => "n", - "from" => "\x{43d}" + "to" => "f", + "from" => "\x{444}" }, { - "to" => "o", - "from" => "\x{43e}" + "to" => "H", + "from" => "\x{425}" }, { - "to" => "p", - "from" => "\x{43f}" + "to" => "h", + "from" => "\x{445}" }, { - "to" => "r", - "from" => "\x{440}" + "to" => "C", + "from" => "\x{426}" }, { - "to" => "s", - "from" => "\x{441}" + "to" => "c", + "from" => "\x{446}" }, { - "to" => "t", - "from" => "\x{442}" + "to" => "\x{10c}", + "from" => "\x{427}" }, { - "to" => "u", - "from" => "\x{443}" + "to" => "\x{10d}", + "from" => "\x{447}" }, { - "to" => "f", - "from" => "\x{444}" + "to" => "D\x{17d}", + "from" => "\x{40f}", + "context" => { + "after" => "\\p{IsUpper}" + } }, { - "to" => "kh", - "from" => "\x{445}" + "to" => "D\x{17e}", + "from" => "\x{40f}" }, { - "to" => "ts", - "from" => "\x{446}" + "to" => "d\x{17e}", + "from" => "\x{45f}" }, { - "to" => "ch", - "from" => "\x{447}" + "to" => "\x{160}", + "from" => "\x{428}" }, { - "to" => "sh", + "to" => "\x{161}", "from" => "\x{448}" }, { - "to" => "shch", + "to" => "\x{160}\x{10c}", + "from" => "\x{429}" + }, + { + "to" => "\x{161}\x{10d}", "from" => "\x{449}" }, { - "to" => "", - "from" => "\x{44a}", + "to" => "Y", + "from" => "\x{42a}", "context" => { - "before" => "\\b" + "after" => "\\p{IsUpper}" } }, { - "to" => "\x{2033}", + "to" => "y", "from" => "\x{44a}" }, + { + "to" => "Y", + "from" => "\x{42b}" + }, { "to" => "y", "from" => "\x{44b}" }, { - "to" => "\x{2032}", + "to" => "\x{2b9}", + "from" => "\x{42c}", + "context" => { + "after" => "\\p{IsUpper}" + } + }, + { + "to" => "\x{2b9}", "from" => "\x{44c}" }, { - "to" => "ie", + "to" => "\x{11a}", + "from" => "\x{462}" + }, + { + "to" => "\x{11b}", "from" => "\x{463}" }, { - "to" => "\x{117}", - "from" => "\x{44d}" + "to" => "\x{c8}", + "from" => "\x{42d}" }, { - "to" => "iu", - "from" => "\x{44e}" + "to" => "\x{e8}", + "from" => "\x{44d}" }, { - "to" => "ia", - "from" => "\x{44f}" + "to" => "JU", + "from" => "\x{42e}", + "context" => { + "after" => "\\p{IsUpper}" + } }, { - "to" => "\x{119}", - "from" => "\x{467}" + "to" => "Ju", + "from" => "\x{42e}" }, { - "to" => "\x{1e1f}", - "from" => "\x{4e9}" + "to" => "ju", + "from" => "\x{44e}" }, { - "to" => "\x{1e8f}", - "from" => "\x{475}" - } - ], - "reverse" => "false" - }, - "common_deu" => { - "desc" => "German umlauts", - "name" => "Common DEU", - "id" => "common_deu", - "rules" => [ + "to" => "JA", + "from" => "\x{42f}", + "context" => { + "after" => "\\p{IsUpper}" + } + }, { - "to" => "Ae", - "from" => "\x{c4}" + "to" => "Ja", + "from" => "\x{42f}" }, { - "to" => "ae", - "from" => "\x{e4}" + "to" => "ja", + "from" => "\x{44f}" }, { - "to" => "Oe", - "from" => "\x{d6}" + "to" => "\x{226}", + "from" => "\x{46a}" }, { - "to" => "oe", - "from" => "\x{f6}" + "to" => "\x{227}", + "from" => "\x{46b}" }, { - "to" => "Ue", - "from" => "\x{dc}" + "to" => "\x{1e1e}", + "from" => "\x{472}" }, { - "to" => "ue", - "from" => "\x{fc}" + "to" => "\x{1e1f}", + "from" => "\x{473}" }, { - "to" => "SS", - "from" => "\x{df}", - "context" => { - "after" => "\\p{IsUpper}" - } + "to" => "\x{1e8e}", + "from" => "\x{474}" }, { - "to" => "ss", - "from" => "\x{df}" + "to" => "\x{1e8f}", + "from" => "\x{475}" } ], - "reverse" => "false" + "reverse" => "true" }, "common_ara" => { "desc" => "Common Romanization of Arabic", @@ -4391,6 +6509,49 @@ ], "reverse" => "false" }, + "common_deu" => { + "desc" => "German umlauts", + "name" => "Common DEU", + "id" => "common_deu", + "rules" => [ + { + "to" => "Ae", + "from" => "\x{c4}" + }, + { + "to" => "ae", + "from" => "\x{e4}" + }, + { + "to" => "Oe", + "from" => "\x{d6}" + }, + { + "to" => "oe", + "from" => "\x{f6}" + }, + { + "to" => "Ue", + "from" => "\x{dc}" + }, + { + "to" => "ue", + "from" => "\x{fc}" + }, + { + "to" => "SS", + "from" => "\x{df}", + "context" => { + "after" => "\\p{IsUpper}" + } + }, + { + "to" => "ss", + "from" => "\x{df}" + } + ], + "reverse" => "false" + }, "gost_7.79_rus" => { "desc" => "GOST 7.79:2000, Cyrillic to Latin, Russian", "name" => "GOST 7.79 RUS", diff --git a/xml/translit.dtd b/xml/translit.dtd index 7fb50cd..565c99f 100644 --- a/xml/translit.dtd +++ b/xml/translit.dtd @@ -6,7 +6,8 @@ Basic document type definition for transliteration tables. Copyright (C) 2007-2008 Alex Linke - Copyright (C) 2009-2014 Lingua-Systems Software GmbH + Copyright (C) 2009-2016 Lingua-Systems Software GmbH + Copyright (C) 2016 Netzum Sorglos, Lingua-Systems Software GmbH --> @@ -24,4 +25,4 @@ - + diff --git a/xml/xml2dump.pl b/xml/xml2dump.pl index 7bcb474..fb2ed5f 100755 --- a/xml/xml2dump.pl +++ b/xml/xml2dump.pl @@ -2,7 +2,8 @@ # # Copyright (C) 2007-2008 Alex Linke -# Copyright (C) 2009-2014 Lingua-Systems Software GmbH +# Copyright (C) 2009-2016 Lingua-Systems Software GmbH +# Copyright (C) 2016 Netzum Sorglos, Lingua-Systems Software GmbH # use strict; @@ -14,7 +15,7 @@ use Data::Dumper; use Getopt::Long; -my $VERSION = '0.5'; +my $VERSION = '0.6'; my %tables; @@ -168,4 +169,4 @@ sub show_help { exit($retval); } -# vim: sw=4 sts=4 ts=4 ai et +# vim: set ft=perl sw=4 sts=4 ts=4 ai et: