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.
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
- Add this line to your application's Gemfile:
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
- Or install it yourself as:
38
+ _(alternatively, if you're familiar with gems development, clone this repository and perform ``rake install``)_
39
+ ## Usage
32
40
 
33
- $ gem install prekladatelj
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
- (alternatively, if you're familiar with gems development, clone this repository and perform ``rake install``)
36
- ## Usage
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
- The algorithm may not be the fastest, so if you deal with large texts you may want to save
55
- the transliteration for further usage unless your content is dynamic.
56
- Note that destructive methods (like ``to_latin!``) are not yet implemented, so you have to assign methods' output to a variable
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.0, the only 'flavour' available for ``to_cyrillic`` is ``:eastern``, which looks much more familiar for *Russians, Ukrainians and Belarusians*.
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.0, Prekladatelj requires the original text to be written in [current version](http://steen.free.fr/interslavic/orthography.html#standard_alphabet)
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 (this will be fixed soon)
89
- * ``cz sz zs`` and another alternatives for diacritic ``č, š, ž`` are not yet supported
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 speed. If you know Ruby, feel free to fork this repo
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 ![* Interslavic flag *](http://steen.free.fr/interslavic/slovianski.ico)
2
- [Read in English](README.md) // [Čitati v Medžuslovjanskom jezyku](README_isl_la.md)
2
+ [Read in English](README.md) // [Читати в Меджусловjанском jезыку](README_isl_cy.md)
3
3
 
4
- *Прекладателj*
4
+ CLI програма и гем Ruby (библиотека) длја транслитерацији текстов в [Меджусловјанском](http://steen.free.fr/interslavic/index.html) језыку с Латинице на Кирилицу и обратно.
5
+ Так (како програма):
5
6
 
6
- Гем Ruby (библиотека) длjа транслитерациjи текстов в [Меджусловjанском](http://steen.free.fr/interslavic/index.html) jезыку с Латинице на Кирилицу и обратно.
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
- То jест добро длjа веб-саjтов на Rails или програм на Ruby, користаjучим Меджусловjанскы jезык.
16
- Можно подавати тексты на обоjих писмах (вклjучаjучи [Флаворизациjу](#Флаворизациjа))
17
- без ручного прекладу.
19
+ То јест добро длја веб-сајтов на Rails или програм на Ruby, користајучим Меджусловјанскы језык.
20
+ Можно подавати тексты на обојих писмах (вклјучајучи [Флаворизацију](#Флаворизација)) без ручного прекладу.
18
21
 
19
- ## Поставjенjе
20
- Како длjа другых Ruby гемов.
22
+ ## Поставјенје
23
+
24
+ $ gem install prekladatelj
25
+ (потрєбно ``rubygems``)
21
26
 
22
- Впиши сеjу линиjу в Gemfile твоjеj апликациjи (ако користаjеш оныj):
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
- Или поставj сам чрез:
37
+ (ако ли ты знајеш, како јест творимы гемы, клонируј сеј репозиториј и изполни ``rake install``)
38
+ ## Користанје
33
39
 
34
- $ gem install prekladatelj
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
- (ако ли ты знаjеш, како jест творимы гемы, клонируj сеj репозиториj и изполни ``rake install``)
37
- ## Користанjе
79
+ ### Како библиотека
38
80
 
39
- **Prekladatelj** разширjаjе ``String``, тому можно користати тако:
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
- Jеднако болjе тежкиj способ jест можливы (jестли потребно?..):
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
- Алгоритм може быти не быстры, тому великы тексты рекомендовано записывати в пременноjу длjа далjшего користаниjа, jестли
56
- контент не jест динамическы.
98
+ _Prekladatelj_ јест быстры/брзы, але великы тексты рекомендовано записывати в пременноју длја далјшего користанија, јестли
99
+ контент не јест динамическы.
57
100
 
58
- Обрати позорност, же деструктивны методы (како ``to_latin!``) jешче не jест створены, и потребно писати изход методов в нову пременноjу,
59
- да бы схранити транслитерациjу. Вот так:
101
+ Обрати позорност, же оригиналны редок никогды не јест измєнјајемы и потребно писати изход методов в нову пременноју,
102
+ да бы схранити транслитерацију. Вот так:
60
103
 
61
104
  ```ruby
62
105
  cyrillic = some_text.to_cyrillic
63
106
  ```
64
107
 
65
- ## Флаворизациjа
108
+ ## Флаворизација
66
109
 
67
- Jестли потребно обратити се к лjудам jединого рода, можно користати [флаворизациjу](http://steen.free.fr/interslavic/flavorizacija.html) (Англиjскы)
110
+ Јестли потребно обратити се к лјудам јединого рода, можно користати [флаворизацију](http://steen.free.fr/interslavic/flavorizacija.html) (Англијскы)
68
111
 
69
- **Prekladatelj** даваjе дефиниовану колекциjу сих "запахов", кторы можно предавати методам ``to_xxx``:
112
+ **Прекладателј** даваје дефиниовану колекцију сих "запахов", кторы можно предавати методам ``to_xxx``:
70
113
 
71
114
  ```ruby
72
115
  "Bogojavjenje".to_cyrillic :eastern
73
116
  # => "Богоявьенье"
74
- # стандард: "Богоjaвjeнje"
117
+ # standard: "Богоjaвjeнje"
75
118
  ```
76
119
 
77
- К часу версиjи 0.1.0, jедины "флавор" доступны длjа ``to_cyrillic`` jест ``:eastern``,
78
- кторы легше читати *Русскым, Украjинцам и Белорусам*.
79
- (буквы **я**, **ю**, **щ**; "ся" заместо "се" и тако далjе)
120
+ К часу версији 0.1.2, једины 'флавор' доступны длја ``to_cyrillic`` јест ``:eastern``,
121
+ кторы легше читати *Русскым, Украјинцам и Белорусам*.
122
+ (буквы **я**, **ю**, **щ**; 'ся' заместо 'се' и тако далје)
80
123
  ```ruby
81
124
  Prekladatelj::Latin::to_cyrillic "jaščer", :eastern
82
125
  # => "ящер"
83
- # стандард: "jашчер"
126
+ # стандард: "јашчер"
84
127
  ```
85
128
 
86
- ## Ограниченjа
87
- * В версиjи 0.1.0, Прекладателjу треба, же текст jест писаны по [сеjчасному стандарду](http://steen.free.fr/interslavic/orthography.html#standard_alphabet) правопису.
88
- Наприклад, ранеjе користана в Кирилице ѣ (како Є) не буде познана (пока). Флаворизованы
89
- тексты такоже пока не можут быти транслитерованы
90
- * ``:eastern`` може быти изкористаjуча толико с Латиницеj; длjа флаворизациjи Кирилицы изпрва преклади jеj до Латиницы (се скоро буде поправjено)
91
- * ``cz sz zs`` како алтернативы ``č, š, ž`` допока не jест доступны
92
- * Етимологична абецеда jедва когдаколи буде доступна
93
- * Глаголица допока не jест доступна
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
- Тутоj гем jест много млады. Створи issue, ако чтоколи недобро!
139
+ Тутој гем јест много млады. Створи issue, ако чтоколи недобро!
97
140
 
98
- ## Вкладанjе
141
+ ## Вкладанје
99
142
 
100
- Прекладателj имаjе много можливости длjа улепшениjа. Ако ты знаjеш Ruby, можеш створити fork сего репозиториjа и приложити
101
- измены. Pull requests jест привитаны!
143
+ Прекладателј имаје много можливости длја улепшенија. Ако ты знајеш Ruby, можеш створити форк сего репозиторија и приложити
144
+ измены. Pull requests јест привитаны!
102
145
 
103
- Ако знаjеш другы jезык програмованиjа, можеш створити ину версиjу Прекладателjа в том jезыке, користаjучи jего име.
146
+ Ако знајеш другы језык програмованија, можеш створити ину версију Прекладателја в том језыке, користајучи јего име.
104
147
  Прошу, уведоми, ако так!
data/README_isl_la.md CHANGED
@@ -1,8 +1,14 @@
1
1
  # Prekladatelj ![* Interslavic flag *](http://steen.free.fr/interslavic/slovianski.ico)
2
2
  [Read in English](README.md) // [Читати в Меджусловjанском jезыку](README_isl_cy.md)
3
3
 
4
- 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:
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
- Vpiši seju liniju v Gemfile tvojej aplikaciji (ako koristaješ onyj):
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
- Algoritm može byti ne bystry, tomu veliky teksty rekomendovano zapisyvati v premennoju dlja daljšego koristanija, jestli
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 destruktivny metody (kako ``to_latin!``) ješče ne jest stvoreny, i potrebno pisati izhod metodov v novu premennoju,
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.0, jediny 'flavor' dostupny dlja ``to_cyrillic`` jest ``:eastern``,
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.0, Prekladatelju treba, že tekst jest pisany po [sejčasnomu standardu](http://steen.free.fr/interslavic/orthography.html#standard_alphabet) pravopisu.
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 ``č, š, ž`` dopoka ne jest dostupny
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