prekladatelj 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.idea/prekladatelj.iml +10 -4
- data/.idea/workspace.xml +88 -53
- data/Gemfile +1 -1
- data/Gemfile.lock +6 -4
- data/LICENSE +674 -0
- data/README.md +63 -17
- data/README_isl_cy.md +84 -41
- data/README_isl_la.md +59 -13
- data/exe/prekladatelj +97 -0
- data/lib/prekladatelj.rb +30 -7
- data/lib/prekladatelj/version.rb +1 -1
- metadata +4 -3
data/README.md
CHANGED
@@ -4,21 +4,28 @@
|
|
4
4
|
|
5
5
|
[Čitati v Medžuslovjanskom jezyku](README_isl_la.md) // [Читати в Меджусловjанском jезыку](README_isl_cy.md)
|
6
6
|
|
7
|
-
A Ruby gem (library) for transliterating [Interslavic](http://steen.free.fr/interslavic/index.html) texts from Latin to Cyrillic and vice versa.
|
8
|
-
Like this:
|
7
|
+
A CLI program and a Ruby gem (library) for transliterating [Interslavic](http://steen.free.fr/interslavic/index.html) texts from Latin to Cyrillic and vice versa.
|
8
|
+
Like this (as a program):
|
9
9
|
|
10
|
+
```shell
|
11
|
+
prekladatelj -c --eastern file1.txt file2.html file3
|
12
|
+
```
|
13
|
+
|
14
|
+
or like this (as a library):
|
10
15
|
```ruby
|
11
16
|
"Меджусловјанскы јест језык, кторы Словјани разных народностиј користајут".to_latin
|
12
17
|
#=> "Medžuslovjansky jest jezyk, ktory Slovjani raznyh narodnostij koristajut"
|
13
18
|
"Jabloko sut jedlivy plod".to_cyrillic
|
14
19
|
#=> "Јаблоко сут једливы плод"
|
15
20
|
```
|
16
|
-
This is useful for Rails website or a Ruby program in Interslavic, allowing you to provide content in both official writing systems (including [Flavourisation](#Flavourisation)) without manual transliteration
|
21
|
+
This is useful for a Rails website or a Ruby program in Interslavic, allowing you to provide content in both official writing systems (including [Flavourisation](#Flavourisation)) without manual transliteration
|
17
22
|
|
18
23
|
## Installation
|
19
|
-
As for any Ruby gem.
|
20
24
|
|
21
|
-
|
25
|
+
$ gem install prekladatelj
|
26
|
+
(requires ``rubygems`` to be installed)
|
27
|
+
|
28
|
+
If you only need the library, add this line to your application's Gemfile:
|
22
29
|
|
23
30
|
```ruby
|
24
31
|
gem 'prekladatelj'
|
@@ -28,12 +35,50 @@ And then execute:
|
|
28
35
|
|
29
36
|
$ bundle install
|
30
37
|
|
31
|
-
|
38
|
+
_(alternatively, if you're familiar with gems development, clone this repository and perform ``rake install``)_
|
39
|
+
## Usage
|
32
40
|
|
33
|
-
|
41
|
+
### As a CLI tool
|
42
|
+
Since version 0.1.2, _Prekladatelj_ has a command-line interface:
|
43
|
+
```shell
|
44
|
+
prekladatelj -c --eastern file1.txt file2.html file3
|
45
|
+
```
|
46
|
+
You will have it available in your shell as soon as you install it with the ``gem`` command.
|
34
47
|
|
35
|
-
|
36
|
-
|
48
|
+
Execute it with ``-c`` or ``-l`` flag (letters mean _"to ``c``yrillic or ``l``atin"_), optionally passing
|
49
|
+
flavourisation flag, like ``--eastern``, then list the paths to the files you would like to transliterate to the specified alhpabet.
|
50
|
+
*nix-style files selection is supported, hence ``*`` means "all files in this directory", ``*_isv.html`` is "all files ending with _isv.html here" and so on.
|
51
|
+
Prekladatelj supports files with ``.txt``, ``.html`` or no suffix/extension and ignores other files, but you may force it to transliterate those with other extensions
|
52
|
+
using the ``--force`` flag.
|
53
|
+
|
54
|
+
Run ``prekladatelj`` without arguments to see all options/flags available.
|
55
|
+
|
56
|
+
Prekladatelj is capable of **intelligent HTML files processing**, so it **doesn't** turn ``<title>`` into ``<титле>``.
|
57
|
+
Also, it doesn't transliterate content of tags of ``notranslit`` CSS class, so you may use it to avoid unnecessary translit.
|
58
|
+
|
59
|
+
Long story short, it looks like this:
|
60
|
+
```shell
|
61
|
+
prekladatelj -c isv.html
|
62
|
+
```
|
63
|
+
|
64
|
+
_isv.html:_
|
65
|
+
```html
|
66
|
+
<title class="notranslit">le website</title>
|
67
|
+
<center>
|
68
|
+
<h1>Medžuslovjansky v světe internetnoj komunikaciji</h1>
|
69
|
+
<small>(myslji ob interslavike)</small>
|
70
|
+
</center>
|
71
|
+
```
|
72
|
+
_isv_c.html:_
|
73
|
+
```html
|
74
|
+
<title class="notranslit">le website</title>
|
75
|
+
<center>
|
76
|
+
<h1>Меджусловјанскы в свєте интернетној комуникацији</h1>
|
77
|
+
<small>(мыслји об интерславике)</small>
|
78
|
+
</center>
|
79
|
+
```
|
80
|
+
|
81
|
+
### As a library
|
37
82
|
|
38
83
|
**Prekladatelj** extends ``String``, so you will want to use it like this:
|
39
84
|
|
@@ -50,10 +95,11 @@ However, a more complicated way is possible (in case you need it?..):
|
|
50
95
|
require 'prekladatelj'
|
51
96
|
Prekladatelj::Cyrillic::to_latin "изjаснити" #=> "izjasniti"
|
52
97
|
Prekladatelj::Latin::to_cyrillic "Japonija" #=> "Јапонија"
|
98
|
+
Prekladatelj::Latin::to_cyrillic "Japonija", :eastern #=> "Япония"
|
53
99
|
```
|
54
|
-
|
55
|
-
the transliteration for further usage unless your content is dynamic.
|
56
|
-
Note that
|
100
|
+
_Prekladatelj_ is quite fast but if you deal with large texts you may want to save
|
101
|
+
the transliteration for further usage (unless your content is dynamic).
|
102
|
+
Note that the original string is never changed, so you have to assign methods' output to a variable
|
57
103
|
in order to save the transliteration, like this:
|
58
104
|
```ruby
|
59
105
|
cyrillic = some_text.to_cyrillic
|
@@ -73,7 +119,7 @@ Besides two writing systems, Interslavic offers flavourisation. That means, if y
|
|
73
119
|
# standard: "Богоjaвjeнje"
|
74
120
|
```
|
75
121
|
|
76
|
-
As of version 0.1.
|
122
|
+
As of version 0.1.2, the only 'flavour' available for ``to_cyrillic`` is ``:eastern``, which looks much more familiar for *Russians, Ukrainians and Belarusians*.
|
77
123
|
(letters **я**, **ю**, **щ**; "ся" as a 'self' particle etc.)
|
78
124
|
```ruby
|
79
125
|
Prekladatelj::Latin::to_cyrillic "jaščer", :eastern
|
@@ -82,11 +128,11 @@ Prekladatelj::Latin::to_cyrillic "jaščer", :eastern
|
|
82
128
|
```
|
83
129
|
|
84
130
|
## Restrictions
|
85
|
-
* As of 0.1.
|
131
|
+
* As of 0.1.2, Prekladatelj requires the original text to be written in [current version](http://steen.free.fr/interslavic/orthography.html#standard_alphabet)
|
86
132
|
of Interslavic orthography standard. For example, previously used ѣ as Є in Cyrillic would not be recognized (yet). This
|
87
133
|
also means that flavourised texts cannot be converted back (at least for now)
|
88
|
-
* ``:eastern`` flavour can only be applied to Latin string; for flavouring Cyrillic, first convert it in Latin
|
89
|
-
* ``cz sz zs`` and another alternatives for diacritic ``č, š, ž`` are not
|
134
|
+
* ``:eastern`` flavour can only be applied to Latin string; for flavouring Cyrillic, first convert it in Latin
|
135
|
+
* ``cz sz zs`` and another alternatives for diacritic ``č, š, ž`` are not supported
|
90
136
|
* Etymological alphabet is unlikely to be ever supported
|
91
137
|
* Glagolica is not yet supported
|
92
138
|
|
@@ -100,7 +146,7 @@ Better way, fix the problem yourself, see "Contributing" below
|
|
100
146
|
|
101
147
|
## Contributing
|
102
148
|
|
103
|
-
Prekladatelj has a huge room to improve in terms of accuracy and
|
149
|
+
Prekladatelj has a huge room to improve in terms of accuracy, alphabets and flavors support. If you know Ruby, feel free to fork this repo
|
104
150
|
and apply your improvements, pull requests are welcome.
|
105
151
|
|
106
152
|
If you know another language, you may implement you own version of Prekladatelj in that language
|
data/README_isl_cy.md
CHANGED
@@ -1,10 +1,14 @@
|
|
1
1
|
# Prekladatelj 
|
2
|
-
[Read in English](README.md) // [
|
2
|
+
[Read in English](README.md) // [Читати в Меджусловjанском jезыку](README_isl_cy.md)
|
3
3
|
|
4
|
-
|
4
|
+
CLI програма и гем Ruby (библиотека) длја транслитерацији текстов в [Меджусловјанском](http://steen.free.fr/interslavic/index.html) језыку с Латинице на Кирилицу и обратно.
|
5
|
+
Так (како програма):
|
5
6
|
|
6
|
-
|
7
|
-
|
7
|
+
```shell
|
8
|
+
prekladatelj -c --eastern file1.txt file2.html file3
|
9
|
+
```
|
10
|
+
|
11
|
+
или так (како библиотека):
|
8
12
|
|
9
13
|
```ruby
|
10
14
|
"Меджусловјанскы јест језык, кторы Словјани разных народностиј користајут".to_latin
|
@@ -12,14 +16,15 @@
|
|
12
16
|
"Jabloko sut jedlivy plod".to_cyrillic
|
13
17
|
#=> "Јаблоко сут једливы плод"
|
14
18
|
```
|
15
|
-
То
|
16
|
-
Можно подавати тексты на
|
17
|
-
без ручного прекладу.
|
19
|
+
То јест добро длја веб-сајтов на Rails или програм на Ruby, користајучим Меджусловјанскы језык.
|
20
|
+
Можно подавати тексты на обојих писмах (вклјучајучи [Флаворизацију](#Флаворизација)) без ручного прекладу.
|
18
21
|
|
19
|
-
##
|
20
|
-
|
22
|
+
## Поставјенје
|
23
|
+
|
24
|
+
$ gem install prekladatelj
|
25
|
+
(потрєбно ``rubygems``)
|
21
26
|
|
22
|
-
|
27
|
+
Ако ли једино библиотека потрєбна, пиши сеју линију в Gemfile твојеј апликацији (ако користајеш оныј):
|
23
28
|
|
24
29
|
```ruby
|
25
30
|
gem 'prekladatelj'
|
@@ -29,14 +34,51 @@ gem 'prekladatelj'
|
|
29
34
|
|
30
35
|
$ bundle install
|
31
36
|
|
32
|
-
|
37
|
+
(ако ли ты знајеш, како јест творимы гемы, клонируј сеј репозиториј и изполни ``rake install``)
|
38
|
+
## Користанје
|
33
39
|
|
34
|
-
|
40
|
+
### Како програма
|
41
|
+
Од версији 0.1.2 _Prekladatelj_ имаје интерфејс редка наказа (командној линији, CLI):
|
42
|
+
```shell
|
43
|
+
prekladatelj -c --eastern file1.txt file2.html file3
|
44
|
+
```
|
45
|
+
Сеј интерфејс буде доступны послє поставјенја с наказом ``gem install``
|
46
|
+
|
47
|
+
Изполни с опцијеју ``-c`` или ``-l`` (то значи прєкладати до кирили``ц``и или ``л``атиници), такоже јест можно давати флаворизацију,
|
48
|
+
наприклад ``--eastern``, послє пиши назвы фајлов, кторы јест потрєбно транслитеровати до сего алфабета.
|
49
|
+
Избор фајлов како в *nix јест доступны, тому ``*`` значит "все фајлы в сеј папке/директорији", ``*_isv.html`` јест "все фајлы, кторы кончајут се с _isv.html" и тако далје.
|
50
|
+
Прекладателј читаје фајлы ``.txt``, ``.html`` или без суфикса/разширјенја, другы фајлы игнорује, једнако јест можно насилно транслитероавти јих с опцијеју ``--force``.
|
51
|
+
|
52
|
+
Изполни ``prekladatelj`` без опциј, да бы видєти вси доступны опцији.
|
53
|
+
|
54
|
+
Прекладателј може творити разумно обработанје HTML фајлов, тому он не обрачаје ``<title>`` в ``<титле>``.
|
55
|
+
Такоже он не транслитерује контент в тегах CSS класа ``notranslit``, тому можно користати сеј клас длја непреклада нєкторого контента.
|
56
|
+
|
57
|
+
Кратко говоречи:
|
58
|
+
```shell
|
59
|
+
prekladatelj -c isv.html
|
60
|
+
```
|
61
|
+
|
62
|
+
_isv.html:_
|
63
|
+
```html
|
64
|
+
<title class="notranslit">le website</title>
|
65
|
+
<center>
|
66
|
+
<h1>Medžuslovjansky v světe internetnoj komunikaciji</h1>
|
67
|
+
<small>(myslji ob interslavike)</small>
|
68
|
+
</center>
|
69
|
+
```
|
70
|
+
_isv_c.html:_
|
71
|
+
```html
|
72
|
+
<title class="notranslit">le website</title>
|
73
|
+
<center>
|
74
|
+
<h1>Меджусловјанскы в свєте интернетној комуникацији</h1>
|
75
|
+
<small>(мыслји об интерславике)</small>
|
76
|
+
</center>
|
77
|
+
```
|
35
78
|
|
36
|
-
|
37
|
-
## Користанjе
|
79
|
+
### Како библиотека
|
38
80
|
|
39
|
-
**
|
81
|
+
**Prekladatelј** разширјаје ``String``, тому можно користати тако:
|
40
82
|
|
41
83
|
```ruby
|
42
84
|
require 'prekladatelj'
|
@@ -46,59 +88,60 @@ str.to_cyrillic #=> "Редок"
|
|
46
88
|
"Богоjaвjeнje".to_latin #=> "Bogojavjenje"
|
47
89
|
```
|
48
90
|
|
49
|
-
|
91
|
+
Једнако болје тежкиј способ јест можливы (јестли потребно?..):
|
50
92
|
```ruby
|
51
93
|
require 'prekladatelj'
|
52
94
|
Prekladatelj::Cyrillic::to_latin "изjаснити" #=> "izjasniti"
|
53
95
|
Prekladatelj::Latin::to_cyrillic "Japonija" #=> "Јапонија"
|
96
|
+
Prekladatelj::Latin::to_cyrillic "Japonija", :eastern #=> "Япония"
|
54
97
|
```
|
55
|
-
|
56
|
-
контент не
|
98
|
+
_Prekladatelj_ јест быстры/брзы, але великы тексты рекомендовано записывати в пременноју длја далјшего користанија, јестли
|
99
|
+
контент не јест динамическы.
|
57
100
|
|
58
|
-
Обрати позорност, же
|
59
|
-
да бы схранити
|
101
|
+
Обрати позорност, же оригиналны редок никогды не јест измєнјајемы и потребно писати изход методов в нову пременноју,
|
102
|
+
да бы схранити транслитерацију. Вот так:
|
60
103
|
|
61
104
|
```ruby
|
62
105
|
cyrillic = some_text.to_cyrillic
|
63
106
|
```
|
64
107
|
|
65
|
-
##
|
108
|
+
## Флаворизација
|
66
109
|
|
67
|
-
|
110
|
+
Јестли потребно обратити се к лјудам јединого рода, можно користати [флаворизацију](http://steen.free.fr/interslavic/flavorizacija.html) (Англијскы)
|
68
111
|
|
69
|
-
|
112
|
+
**Прекладателј** даваје дефиниовану колекцију сих "запахов", кторы можно предавати методам ``to_xxx``:
|
70
113
|
|
71
114
|
```ruby
|
72
115
|
"Bogojavjenje".to_cyrillic :eastern
|
73
116
|
# => "Богоявьенье"
|
74
|
-
#
|
117
|
+
# standard: "Богоjaвjeнje"
|
75
118
|
```
|
76
119
|
|
77
|
-
К часу
|
78
|
-
кторы легше читати *Русскым,
|
79
|
-
(буквы **я**, **ю**, **щ**;
|
120
|
+
К часу версији 0.1.2, једины 'флавор' доступны длја ``to_cyrillic`` јест ``:eastern``,
|
121
|
+
кторы легше читати *Русскым, Украјинцам и Белорусам*.
|
122
|
+
(буквы **я**, **ю**, **щ**; 'ся' заместо 'се' и тако далје)
|
80
123
|
```ruby
|
81
124
|
Prekladatelj::Latin::to_cyrillic "jaščer", :eastern
|
82
125
|
# => "ящер"
|
83
|
-
# стандард: "
|
126
|
+
# стандард: "јашчер"
|
84
127
|
```
|
85
128
|
|
86
|
-
##
|
87
|
-
* В
|
88
|
-
Наприклад,
|
89
|
-
|
90
|
-
* ``:eastern`` може быти
|
91
|
-
* ``cz sz zs`` како алтернативы ``č, š, ž``
|
92
|
-
* Етимологична абецеда
|
93
|
-
* Глаголица допока не
|
129
|
+
## Ограниченја
|
130
|
+
* В версији 0.1.2, Прекладателју треба, же текст јест писаны по [сејчасному стандарду](http://steen.free.fr/interslavic/orthography.html#standard_alphabet) правопису.
|
131
|
+
Наприклад, ранеје користана в Кирилице ѣ (како Є) не буде познана (пока). Флаворизованы
|
132
|
+
тексты такоже пока не можут быти транслитерованы
|
133
|
+
* ``:eastern`` може быти изкористајуча толико с Латиницеј; длја флаворизацији Кирилицы изпрва преклади јеј до Латиницы (се скоро буде поправјено)
|
134
|
+
* ``cz sz zs`` како алтернативы ``č, š, ž`` не јест доступны
|
135
|
+
* Етимологична абецеда једва когдаколи буде доступна
|
136
|
+
* Глаголица допока не јест доступна
|
94
137
|
|
95
138
|
## Проблемы
|
96
|
-
|
139
|
+
Тутој гем јест много млады. Створи issue, ако чтоколи недобро!
|
97
140
|
|
98
|
-
##
|
141
|
+
## Вкладанје
|
99
142
|
|
100
|
-
|
101
|
-
измены. Pull requests
|
143
|
+
Прекладателј имаје много можливости длја улепшенија. Ако ты знајеш Ruby, можеш створити форк сего репозиторија и приложити
|
144
|
+
измены. Pull requests јест привитаны!
|
102
145
|
|
103
|
-
Ако
|
146
|
+
Ако знајеш другы језык програмованија, можеш створити ину версију Прекладателја в том језыке, користајучи јего име.
|
104
147
|
Прошу, уведоми, ако так!
|
data/README_isl_la.md
CHANGED
@@ -1,8 +1,14 @@
|
|
1
1
|
# Prekladatelj 
|
2
2
|
[Read in English](README.md) // [Читати в Меджусловjанском jезыку](README_isl_cy.md)
|
3
3
|
|
4
|
-
|
5
|
-
Tak:
|
4
|
+
CLI programa i gem Ruby (biblioteka) dlja transliteraciji tekstov v [Medžuslovjanskom](http://steen.free.fr/interslavic/index.html) jezyku s Latinice na Kirilicu i obratno.
|
5
|
+
Tak (kako programa):
|
6
|
+
|
7
|
+
```shell
|
8
|
+
prekladatelj -c --eastern file1.txt file2.html file3
|
9
|
+
```
|
10
|
+
|
11
|
+
ili tak (kako biblioteka):
|
6
12
|
|
7
13
|
```ruby
|
8
14
|
"Меджусловјанскы јест језык, кторы Словјани разных народностиј користајут".to_latin
|
@@ -14,9 +20,11 @@ To jest dobro dlja veb-sajtov na Rails ili program na Ruby, koristajučim Medžu
|
|
14
20
|
Možno podavati teksty na obojih pismah (vključajuči [Flavorizaciju](#Flavorizacija)) bez ručnogo prekladu.
|
15
21
|
|
16
22
|
## Postavjenje
|
17
|
-
Kako dlja drugyh Ruby gemov.
|
18
23
|
|
19
|
-
|
24
|
+
$ gem install prekladatelj
|
25
|
+
(potrěbno ``rubygems``)
|
26
|
+
|
27
|
+
Ako li jedino biblioteka potrěbna, piši seju liniju v Gemfile tvojej aplikaciji (ako koristaješ onyj):
|
20
28
|
|
21
29
|
```ruby
|
22
30
|
gem 'prekladatelj'
|
@@ -26,13 +34,50 @@ Potom izpolni:
|
|
26
34
|
|
27
35
|
$ bundle install
|
28
36
|
|
29
|
-
Ili postavj sam črez:
|
30
|
-
|
31
|
-
$ gem install prekladatelj
|
32
|
-
|
33
37
|
(ako li ty znaješ, kako jest tvorimy gemy, kloniruj sej repozitorij i izpolni ``rake install``)
|
34
38
|
## Koristanje
|
35
39
|
|
40
|
+
### Kako programa
|
41
|
+
Od versiji 0.1.2 _Prekladatelj_ imaje interfejs redka nakaza (komandnoj liniji, CLI):
|
42
|
+
```shell
|
43
|
+
prekladatelj -c --eastern file1.txt file2.html file3
|
44
|
+
```
|
45
|
+
Sej interfejs bude dostupny poslě postavjenja s nakazom ``gem install``
|
46
|
+
|
47
|
+
Izpolni s opcijeju ``-c`` ili ``-l`` (to znači prěkladati do kirili``c``i ili ``l``atinici), takože jest možno davati flavorizaciju,
|
48
|
+
napriklad ``--eastern``, poslě piši nazvy fajlov, ktory jest potrěbno transliterovati do sego alfabeta.
|
49
|
+
Izbor fajlov kako v *nix jest dostupny, tomu ``*`` značit "vse fajly v sej papke/direktoriji", ``*_isv.html`` jest "vse fajly, ktory končajut se s _isv.html" i tako dalje.
|
50
|
+
Prekladatelj čitaje fajly ``.txt``, ``.html`` ili bez sufiksa/razširjenja, drugy fajly ignoruje, jednako jest možno nasilno transliteroavti jih s opcijeju ``--force``.
|
51
|
+
|
52
|
+
Izpolni ``prekladatelj`` bez opcij, da by viděti vsi dostupny opciji.
|
53
|
+
|
54
|
+
Prekladatelj može tvoriti razumno obrabotanje HTML fajlov, tomu on ne obračaje ``<title>`` v ``<титле>``.
|
55
|
+
Takože on ne transliteruje kontent v tegah CSS klasa ``notranslit``, tomu možno koristati sej klas dlja nepreklada něktorogo kontenta.
|
56
|
+
|
57
|
+
Kratko govoreči:
|
58
|
+
```shell
|
59
|
+
prekladatelj -c isv.html
|
60
|
+
```
|
61
|
+
|
62
|
+
_isv.html:_
|
63
|
+
```html
|
64
|
+
<title class="notranslit">le website</title>
|
65
|
+
<center>
|
66
|
+
<h1>Medžuslovjansky v světe internetnoj komunikaciji</h1>
|
67
|
+
<small>(myslji ob interslavike)</small>
|
68
|
+
</center>
|
69
|
+
```
|
70
|
+
_isv_c.html:_
|
71
|
+
```html
|
72
|
+
<title class="notranslit">le website</title>
|
73
|
+
<center>
|
74
|
+
<h1>Меджусловјанскы в свєте интернетној комуникацији</h1>
|
75
|
+
<small>(мыслји об интерславике)</small>
|
76
|
+
</center>
|
77
|
+
```
|
78
|
+
|
79
|
+
### Kako biblioteka
|
80
|
+
|
36
81
|
**Prekladatelj** razširjaje ``String``, tomu možno koristati tako:
|
37
82
|
|
38
83
|
```ruby
|
@@ -48,11 +93,12 @@ Jednako bolje težkij sposob jest možlivy (jestli potrebno?..):
|
|
48
93
|
require 'prekladatelj'
|
49
94
|
Prekladatelj::Cyrillic::to_latin "изjаснити" #=> "izjasniti"
|
50
95
|
Prekladatelj::Latin::to_cyrillic "Japonija" #=> "Јапонија"
|
96
|
+
Prekladatelj::Latin::to_cyrillic "Japonija", :eastern #=> "Япония"
|
51
97
|
```
|
52
|
-
|
98
|
+
_Prekladatelj_ jest bystry/brzy, ale veliky teksty rekomendovano zapisyvati v premennoju dlja daljšego koristanija, jestli
|
53
99
|
kontent ne jest dinamičesky.
|
54
100
|
|
55
|
-
Obrati pozornost, že
|
101
|
+
Obrati pozornost, že originalny redok nikogdy ne jest izměnjajemy i potrebno pisati izhod metodov v novu premennoju,
|
56
102
|
da by shraniti transliteraciju. Vot tak:
|
57
103
|
|
58
104
|
```ruby
|
@@ -71,7 +117,7 @@ Jestli potrebno obratiti se k ljudam jedinogo roda, možno koristati [flavorizac
|
|
71
117
|
# standard: "Богоjaвjeнje"
|
72
118
|
```
|
73
119
|
|
74
|
-
K času versiji 0.1.
|
120
|
+
K času versiji 0.1.2, jediny 'flavor' dostupny dlja ``to_cyrillic`` jest ``:eastern``,
|
75
121
|
ktory legše čitati *Russkym, Ukrajincam i Belorusam*.
|
76
122
|
(bukvy **я**, **ю**, **щ**; 'ся' zamesto 'се' i tako dalje)
|
77
123
|
```ruby
|
@@ -81,11 +127,11 @@ Prekladatelj::Latin::to_cyrillic "jaščer", :eastern
|
|
81
127
|
```
|
82
128
|
|
83
129
|
## Ograničenja
|
84
|
-
* V versiji 0.1.
|
130
|
+
* V versiji 0.1.2, Prekladatelju treba, že tekst jest pisany po [sejčasnomu standardu](http://steen.free.fr/interslavic/orthography.html#standard_alphabet) pravopisu.
|
85
131
|
Napriklad, raneje koristana v Kirilice ѣ (kako Ě) ne bude poznana (poka). Flavorizovany
|
86
132
|
teksty takože poka ne možut byti transliterovany
|
87
133
|
* ``:eastern`` može byti izkoristajuča toliko s Latinicej; dlja flavorizaciji Kirilicy izprva prekladi jej do Latinicy (se skoro bude popravjeno)
|
88
|
-
* ``cz sz zs`` kako alternativy ``č, š, ž``
|
134
|
+
* ``cz sz zs`` kako alternativy ``č, š, ž`` ne jest dostupny
|
89
135
|
* Etimologična abeceda jedva kogdakoli bude dostupna
|
90
136
|
* Glagolica dopoka ne jest dostupna
|
91
137
|
|
data/exe/prekladatelj
CHANGED
@@ -1,3 +1,100 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
+
USAGE = "Usage:\n prekladatelj [options] [files...]
|
4
|
+
Options:
|
5
|
+
[MODES]
|
6
|
+
-l transliterate into latin
|
7
|
+
-c transliterate into cyrillic
|
8
|
+
[FLAVORS] (optional, see README.md for more info)
|
9
|
+
--eastern 'eastern' flavor (only with -c)
|
10
|
+
[OTHER] (optional)
|
11
|
+
-s suffix for new transliterated files, matches mode (_c, _l) by default, must not have spaces
|
12
|
+
--force force transliteration of possibly unsupported formats (see README for list)
|
13
|
+
Warning! Might cause unexpected results if combined with '*' as a file selector, such as image or document corruption. Still doesn't overwrite any source files, though. Oh God, よかった。
|
14
|
+
|
15
|
+
Examples:
|
16
|
+
prekladatelj -l file1.txt
|
17
|
+
prekladatelj -s _cyr -c file1.txt foobar.html
|
18
|
+
=> file1_cyr.txt, foobar_cyr.html
|
19
|
+
|
20
|
+
to transliterate every (supported) file in the current directory into cyrillic with eastern flavor:
|
21
|
+
prekladatelj -c --eastern *"
|
22
|
+
|
3
23
|
require "prekladatelj"
|
24
|
+
|
25
|
+
puts USAGE if ARGV.empty? or (ARGV & %w(--help -help -h)).any?
|
26
|
+
|
27
|
+
FLAVORS = %w(--eastern) # todo
|
28
|
+
mode = 'c'
|
29
|
+
mode = 'l' if ARGV.any? '-l'
|
30
|
+
|
31
|
+
suffix = "_#{mode}"
|
32
|
+
|
33
|
+
no_title = ARGV.any? '--no-title' #
|
34
|
+
force = ARGV.any? '--force'
|
35
|
+
|
36
|
+
if ARGV.any? '-s'
|
37
|
+
suffix = ARGV.pop(ARGV.index('-s') + 1)
|
38
|
+
end
|
39
|
+
|
40
|
+
flavour = (FLAVORS & ARGV)[0]
|
41
|
+
flavour = flavour.delete_prefix('--').to_sym if flavour
|
42
|
+
|
43
|
+
files = ARGV.reject { |x| x.start_with? '-' }
|
44
|
+
|
45
|
+
files.each do |fname|
|
46
|
+
Dir[fname].each do |file|
|
47
|
+
if %w(htm html).any? { |x| file.end_with? x}
|
48
|
+
# process HTML documents
|
49
|
+
require 'nokogiri'
|
50
|
+
text = Nokogiri::HTML(File.open(fname))
|
51
|
+
case mode
|
52
|
+
when 'c'
|
53
|
+
text.traverse do |node|
|
54
|
+
unless node['class'] == 'notranslit' # && !node.children.empty?
|
55
|
+
node.children.each do |child|
|
56
|
+
if child.class == Nokogiri::XML::Text
|
57
|
+
child.content = child.content.to_cyrillic flavour
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
rescue nil
|
62
|
+
end
|
63
|
+
else
|
64
|
+
text.traverse do |node|
|
65
|
+
unless node['class'] == 'notranslit' # && !node.children.empty?
|
66
|
+
node.children.each do |child|
|
67
|
+
if child.class == Nokogiri::XML::Text
|
68
|
+
child.content = child.content.to_cyrillic flavour
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
rescue nil
|
73
|
+
end
|
74
|
+
end
|
75
|
+
#puts suffix
|
76
|
+
q = file.split '.'
|
77
|
+
File.open("#{file.delete_suffix ".#{q[-1]}"}#{suffix || '_c'}.#{q[-1]}", 'w') do |newfile|
|
78
|
+
newfile.write text.to_s
|
79
|
+
end
|
80
|
+
|
81
|
+
|
82
|
+
elsif %w(.txt .log).any? { |x| file.end_with? x} || file.count('.') == 0 || force
|
83
|
+
# files without suffix are presumed to be plain text
|
84
|
+
# process plain text
|
85
|
+
text = File.open(file) do |fl|
|
86
|
+
q = file.split '.'
|
87
|
+
File.open("#{file.delete_suffix ".#{q[-1]}"}#{suffix || '_c'}.#{q[-1]}", 'w') do |newfile|
|
88
|
+
case mode # TODO glagolica??
|
89
|
+
when 'c'
|
90
|
+
newfile.write fl.read.to_s.to_cyrillic flavour
|
91
|
+
when 'l'
|
92
|
+
newfile.write fl.read.to_s.to_latin flavour
|
93
|
+
else
|
94
|
+
newfile.write fl.read.to_s.to_latin flavour
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|