iuliia 1.0.0 → 1.0.4
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/.github/workflows/spec.yml +1 -3
- data/.rubocop.yml +3 -0
- data/.rubocop_todo.yml +2 -2
- data/CHANGELOG.md +10 -0
- data/Gemfile +1 -1
- data/README.md +41 -2
- data/{iiulia-rb.gemspec → iiulia.gemspec} +14 -3
- data/lib/iuliia/exceptions.rb +11 -0
- data/lib/iuliia/iuliia.rb +7 -3
- data/lib/iuliia/schema.rb +11 -4
- data/lib/iuliia/translit.rb +17 -8
- data/lib/iuliia/version.rb +1 -1
- data/lib/iuliia.rb +1 -0
- data/lib/schemas/LICENSE +21 -0
- data/lib/schemas/README.md +71 -0
- data/lib/schemas/ala_lc.json +49 -0
- data/lib/schemas/ala_lc_alt.json +49 -0
- data/lib/schemas/bgn_pcgn.json +147 -0
- data/lib/schemas/bgn_pcgn_alt.json +106 -0
- data/lib/schemas/bs_2979.json +55 -0
- data/lib/schemas/bs_2979_alt.json +49 -0
- data/lib/schemas/gost_16876.json +49 -0
- data/lib/schemas/gost_16876_alt.json +49 -0
- data/lib/schemas/gost_52290.json +92 -0
- data/lib/schemas/gost_52535.json +50 -0
- data/lib/schemas/gost_7034.json +62 -0
- data/lib/schemas/gost_779.json +50 -0
- data/lib/schemas/gost_779_alt.json +54 -0
- data/lib/schemas/icao_doc_9303.json +57 -0
- data/lib/schemas/iso_9_1954.json +49 -0
- data/lib/schemas/iso_9_1968.json +49 -0
- data/lib/schemas/iso_9_1968_alt.json +49 -0
- data/lib/schemas/mosmetro.json +102 -0
- data/lib/schemas/mvd_310.json +52 -0
- data/lib/schemas/mvd_310_fr.json +66 -0
- data/lib/schemas/mvd_782.json +96 -0
- data/lib/schemas/schema.jsd +62 -0
- data/lib/schemas/scientific.json +49 -0
- data/lib/schemas/telegram.json +49 -0
- data/lib/schemas/ungegn_1987.json +53 -0
- data/lib/schemas/wikipedia.json +95 -0
- data/lib/schemas/yandex_maps.json +58 -0
- data/lib/schemas/yandex_money.json +52 -0
- metadata +63 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8da4196ca60d50693772a29a557b9489d0de255c8ca36f15feb467412c2698d3
|
4
|
+
data.tar.gz: 220658bc31b12b107c18072dfdddf8b0c24beefd79af1a93b3ee85fa039f33b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 477ce87cf0bcfa3e4030d1436a47d46f2b78952406f8856110045c037732780b543c68a29d9f9b017c32605cf49be9c597007c4b3b96e7746ebec6da0bfd961c
|
7
|
+
data.tar.gz: b1d650e5287e9038332f5c797c9cc0b26971ff44b61947ba25a3d47067ad1abc1e9516b4f920e620e52966ae11917f05b1b398b07844f75ee630267967d80ff3
|
data/.github/workflows/spec.yml
CHANGED
@@ -17,9 +17,7 @@ on:
|
|
17
17
|
|
18
18
|
jobs:
|
19
19
|
test:
|
20
|
-
|
21
20
|
runs-on: ubuntu-latest
|
22
|
-
|
23
21
|
steps:
|
24
22
|
- uses: actions/checkout@v2
|
25
23
|
with:
|
@@ -31,4 +29,4 @@ jobs:
|
|
31
29
|
- name: Install dependencies
|
32
30
|
run: bundle install
|
33
31
|
- name: Run tests
|
34
|
-
run: bundle exec
|
32
|
+
run: bundle exec rspec
|
data/.rubocop.yml
CHANGED
data/.rubocop_todo.yml
CHANGED
@@ -11,10 +11,10 @@
|
|
11
11
|
# Include: **/*.gemspec
|
12
12
|
Gemspec/RequiredRubyVersion:
|
13
13
|
Exclude:
|
14
|
-
- 'iiulia
|
14
|
+
- 'iiulia.gemspec'
|
15
15
|
|
16
16
|
# Offense count: 1
|
17
17
|
# Configuration parameters: MinBodyLength.
|
18
18
|
Style/GuardClause:
|
19
19
|
Exclude:
|
20
|
-
- 'iiulia
|
20
|
+
- 'iiulia.gemspec'
|
data/CHANGELOG.md
CHANGED
@@ -4,9 +4,19 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
5
5
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
6
|
|
7
|
+
## [1.0.1] - 2020-09-25
|
8
|
+
#### Deprecations
|
9
|
+
Method `translit` now deprecated, use `translate` instead. Will be removed completely in the future releases.
|
10
|
+
#### Improvements
|
11
|
+
Now call for translate with wrong (non-existent) schema will throw more human-friendly exception.
|
12
|
+
|
7
13
|
## [1.0.0] - 2020-09-14
|
8
14
|
This is the new initial version for gem `iuliia` after renaming it from `iuliia-rb`
|
9
15
|
|
16
|
+
## [0.2.1] - 2020-09-14
|
17
|
+
Changes:
|
18
|
+
* Gem has been renamed to `iuliia`. This is the last version of `iuliia-rb`. Please, use `iuliia` instead.
|
19
|
+
|
10
20
|
## [0.2.0] - 2020-09-14
|
11
21
|
Changes:
|
12
22
|
* Moved `lib/schemas` to the git submodule `github.com/nalgeon/iuliia`
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -6,6 +6,8 @@ Small gem to properly transliterate cyrillic to latin. Use https://github.com/na
|
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
9
|
+
#### Gem has been renamed to `iuliia`. This is the last version of `iuliia-rb`. Please, use `iuliia` instead.
|
10
|
+
|
9
11
|
Add this line to your application's Gemfile:
|
10
12
|
|
11
13
|
```ruby
|
@@ -60,7 +62,7 @@ Iuliia::Schema.available_schemas
|
|
60
62
|
Pick one and transliterate
|
61
63
|
|
62
64
|
```ruby
|
63
|
-
Iuliia.
|
65
|
+
Iuliia.translate('Юлия, съешь ещё этих мягких французских булок из Йошкар-Олы, да выпей алтайского чаю', schema: 'mvd_782')
|
64
66
|
|
65
67
|
"Yuliya, syesh' eshche etikh myagkikh frantsuzskikh bulok iz Yoshkar-Oly, da vypey altayskogo chayu"
|
66
68
|
```
|
@@ -73,10 +75,47 @@ Iuliia.translit('Юлия, съешь ещё этих мягких францу
|
|
73
75
|
|
74
76
|
## Development
|
75
77
|
|
76
|
-
|
78
|
+
Check out repo:
|
79
|
+
|
80
|
+
```
|
81
|
+
git clone git@github.com:adnikiforov/iuliia-rb.git
|
82
|
+
```
|
83
|
+
|
84
|
+
Check out submodule with schemas:
|
85
|
+
|
86
|
+
```
|
87
|
+
git submodule update --init
|
88
|
+
```
|
89
|
+
|
90
|
+
Setup dependencies:
|
91
|
+
|
92
|
+
```
|
93
|
+
bin/setup
|
94
|
+
```
|
95
|
+
|
96
|
+
Run specs:
|
97
|
+
|
98
|
+
```
|
99
|
+
bundle exec rspec
|
100
|
+
```
|
101
|
+
|
102
|
+
Or open console to try it:
|
103
|
+
|
104
|
+
```
|
105
|
+
bin/console
|
106
|
+
```
|
77
107
|
|
78
108
|
To install this gem onto your local machine, run `bundle exec rake install`.
|
79
109
|
|
110
|
+
## Support
|
111
|
+
|
112
|
+
<p>
|
113
|
+
<a href="https://evrone.com/?utm_source=github&utm_campaign=iuliia-rb">
|
114
|
+
<img src="https://raw.githubusercontent.com/adnikiforov/iuliia-rb/master/priv/evrone-sponsored-logo.png"
|
115
|
+
alt="Sponsored by Evrone" width="210">
|
116
|
+
</a>
|
117
|
+
</p>
|
118
|
+
|
80
119
|
## License
|
81
120
|
|
82
121
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
@@ -24,11 +24,20 @@ Gem::Specification.new do |spec|
|
|
24
24
|
raise 'RubyGems 2.0 or newer is required to protect against public gem pushes.'
|
25
25
|
end
|
26
26
|
|
27
|
-
# Specify which files should be added to the gem when it is released.
|
28
|
-
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
29
27
|
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
30
|
-
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
28
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|priv)/}) }
|
31
29
|
end
|
30
|
+
|
31
|
+
gem_dir = "#{__dir__}/"
|
32
|
+
`git submodule --quiet foreach pwd`.split($OUTPUT_RECORD_SEPARATOR).each do |submodule_path|
|
33
|
+
Dir.chdir(submodule_path) do
|
34
|
+
submodule_relative_path = submodule_path.sub gem_dir, ''
|
35
|
+
`git ls-files`.split($OUTPUT_RECORD_SEPARATOR).each do |filename|
|
36
|
+
spec.files << "#{submodule_relative_path}/#{filename}"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
32
41
|
spec.bindir = 'exe'
|
33
42
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
34
43
|
spec.require_paths = ['lib']
|
@@ -37,6 +46,8 @@ Gem::Specification.new do |spec|
|
|
37
46
|
spec.add_development_dependency 'rake'
|
38
47
|
spec.add_development_dependency 'rspec'
|
39
48
|
spec.add_development_dependency 'rubocop'
|
49
|
+
spec.add_development_dependency 'rubocop-rake'
|
50
|
+
spec.add_development_dependency 'rubocop-rspec'
|
40
51
|
|
41
52
|
spec.add_dependency 'json'
|
42
53
|
end
|
data/lib/iuliia/iuliia.rb
CHANGED
@@ -2,13 +2,17 @@
|
|
2
2
|
|
3
3
|
module Iuliia
|
4
4
|
class << self
|
5
|
-
|
6
|
-
# Translit cyrillic string to latin representation
|
5
|
+
# Translate cyrillic string to latin representation
|
7
6
|
# @param string [String]
|
8
7
|
# @param schema [Iuliia::Schema]
|
9
8
|
# @return [String]
|
10
|
-
def
|
9
|
+
def translate(string, schema:)
|
11
10
|
Iuliia::Translit.new(string, schema).translit
|
12
11
|
end
|
12
|
+
|
13
|
+
def translit(string, schema:)
|
14
|
+
warn 'translit is deprecated, use .translate instead'
|
15
|
+
translate(string, schema: schema)
|
16
|
+
end
|
13
17
|
end
|
14
18
|
end
|
data/lib/iuliia/schema.rb
CHANGED
@@ -3,7 +3,6 @@
|
|
3
3
|
module Iuliia
|
4
4
|
module Schema
|
5
5
|
class << self
|
6
|
-
|
7
6
|
# Fetch schema by schema name
|
8
7
|
# @param schema_name [String]
|
9
8
|
# @return [Iuliia::Schema]
|
@@ -11,26 +10,34 @@ module Iuliia
|
|
11
10
|
schemas[schema_name]
|
12
11
|
end
|
13
12
|
|
13
|
+
# @deprecated
|
14
14
|
alias schema []
|
15
15
|
|
16
16
|
# Return list of available schemas
|
17
|
-
# @return [Array
|
17
|
+
# @return [Array]
|
18
18
|
def available_schemas
|
19
19
|
load_schemas.transform_values(&:description).to_a
|
20
20
|
end
|
21
21
|
|
22
22
|
private
|
23
23
|
|
24
|
+
def lib_dir
|
25
|
+
File.expand_path('..', __dir__)
|
26
|
+
end
|
27
|
+
|
24
28
|
def schemas
|
25
29
|
@schemas ||= Hash.new { |h, k| h[k] = load_schema(k) }
|
26
30
|
end
|
27
31
|
|
28
32
|
def load_schema(name)
|
29
|
-
|
33
|
+
filename = "#{lib_dir}/schemas/#{name}.json"
|
34
|
+
raise Exceptions::NonExistentSchemaException unless File.exist?(filename)
|
35
|
+
|
36
|
+
JSON.parse(File.read(filename), object_class: OpenStruct, symbolize_names: true)
|
30
37
|
end
|
31
38
|
|
32
39
|
def load_schemas
|
33
|
-
Dir[
|
40
|
+
Dir["#{lib_dir}/schemas/*.json"].map do |file|
|
34
41
|
schema = load_schema(File.basename(file, '.json'))
|
35
42
|
[schema.name, schema]
|
36
43
|
end.to_h
|
data/lib/iuliia/translit.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
module Iuliia
|
4
4
|
class Translit
|
5
5
|
ENDING_LENGTH = 2
|
6
|
+
private_constant :ENDING_LENGTH
|
6
7
|
|
7
8
|
# Initialize transliterator engine with string and schema
|
8
9
|
# @param string [String]
|
@@ -10,12 +11,14 @@ module Iuliia
|
|
10
11
|
# @return [Iuliia::Translit]
|
11
12
|
def initialize(string, schema)
|
12
13
|
@string = string
|
13
|
-
@schema = Iuliia::Schema
|
14
|
+
@schema = Iuliia::Schema[schema]
|
14
15
|
end
|
15
16
|
|
16
17
|
# Translit cyrillic string to latin representation
|
17
18
|
# @return [String]
|
18
19
|
def translit
|
20
|
+
return unless schema
|
21
|
+
|
19
22
|
string.split(/\b/).map { |chunk| translit_chunk(chunk) }.join
|
20
23
|
end
|
21
24
|
|
@@ -43,23 +46,29 @@ module Iuliia
|
|
43
46
|
translit_char(stem.chars, char, index)
|
44
47
|
end
|
45
48
|
|
46
|
-
|
49
|
+
string = translited_stem.join
|
50
|
+
return camelcase(translited_stem.join) unless upcase?(translited_stem.join)
|
51
|
+
|
52
|
+
string
|
47
53
|
end
|
48
54
|
|
49
55
|
def translit_char(chars, char, index)
|
56
|
+
return char unless /[А-Яа-яёЁ]/.match?(char)
|
57
|
+
|
50
58
|
translited_char = translit_prev(chars, index)
|
51
59
|
translited_char = translit_next(chars, index) if translited_char.nil?
|
52
60
|
translited_char = schema.mapping[char.downcase] if translited_char.nil?
|
53
61
|
|
54
|
-
upcase?(char) ? translited_char.upcase : translited_char
|
62
|
+
upcase?(char) ? camelcase(translited_char.upcase) : translited_char
|
55
63
|
end
|
56
64
|
|
57
65
|
def translit_prev(chars, index)
|
58
|
-
prev_char =
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
66
|
+
prev_char =
|
67
|
+
if index.positive?
|
68
|
+
chars[index - 1..index].join.downcase
|
69
|
+
else
|
70
|
+
chars[index].downcase
|
71
|
+
end
|
63
72
|
|
64
73
|
schema.prev_mapping&.dig(prev_char)
|
65
74
|
end
|
data/lib/iuliia/version.rb
CHANGED
data/lib/iuliia.rb
CHANGED
data/lib/schemas/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2020 Anton Zhiyanov
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
@@ -0,0 +1,71 @@
|
|
1
|
+
# `Iuliia`
|
2
|
+
|
3
|
+
> Transliterate Cyrillic → Latin in every possible way
|
4
|
+
|
5
|
+
Transliteration means representing Cyrillic data (mainly names and geographic locations) with Latin letters. It is used for international passports, visas, green cards, driving licenses, mail and goods delivery etc.
|
6
|
+
|
7
|
+
`Iuliia` makes transliteration easy as calling `iuliia.translate()` in your favorite programming language.
|
8
|
+
|
9
|
+
Why use `Iuliia`:
|
10
|
+
|
11
|
+
- 20 transliteration schemas (rule sets), including all main international and Russian standards.
|
12
|
+
- Correctly implements not only the base mapping, but all the special rules for letter combinations and word endings (AFAIK, Iuliia is the only library which does so).
|
13
|
+
- Simple API and zero third-party dependencies.
|
14
|
+
|
15
|
+
## Supported schemas
|
16
|
+
|
17
|
+
Actual schemas:
|
18
|
+
|
19
|
+
- ALA-LC: [ala_lc.json](ala_lc.json) and [ala_lc_alt.json](ala_lc_alt.json)
|
20
|
+
- BGN/PCGN: [bgn_pcgn.json](bgn_pcgn.json) and [bgn_pcgn_alt.json](bgn_pcgn_alt.json)
|
21
|
+
- BS 2979:1958: [bs_2979.json](bs_2979.json) and [bs_2979_alt.json](bs_2979_alt.json)
|
22
|
+
- GOST R 52290-2004: [gost_52290.json](gost_52290.json)
|
23
|
+
- GOST R 7.0.34-2014: [gost_7034.json](gost_7034.json)
|
24
|
+
- ICAO DOC 9303: [icao_doc_9303.json](icao_doc_9303.json)
|
25
|
+
- ISO 9:1995 aka GOST 7.79-2000: [gost_779.json](gost_779.json) and [gost_779_alt.json](gost_779_alt.json)
|
26
|
+
- UNGEGN 1987 V/18: [ungegn_1987.json](ungegn_1987.json)
|
27
|
+
- Moscow Metro map: [mosmetro.json](mosmetro.json)
|
28
|
+
- Scientific: [scientific.json](scientific.json)
|
29
|
+
- Telegram: [telegram.json](telegram.json)
|
30
|
+
- Wikipedia: [wikipedia.json](wikipedia.json)
|
31
|
+
- Yandex.Maps: [yandex_maps.json](yandex_maps.json)
|
32
|
+
- Yandex.Money: [yandex_money.json](yandex_money.json)
|
33
|
+
|
34
|
+
And deprecated ones:
|
35
|
+
|
36
|
+
- GOST 16876-71: [gost_16876.json](gost_16876.json) and [gost_16876_alt.json](gost_16876_alt.json)
|
37
|
+
- GOST R 52535.1-2006: [gost_52535.json](gost_52535.json)
|
38
|
+
- ISO/R 9:1954: [iso_9_1954.json](iso_9_1954.json)
|
39
|
+
- ISO/R 9:1968: [iso_9_1968.json](iso_9_1968.json) and [iso_9_1968_alt.json](iso_9_1968_alt.json)
|
40
|
+
- MVD 310-1997: [mvd_310.json](mvd_310.json) and [mvd_310_fr.json](mvd_310_fr.json)
|
41
|
+
- MVD 782-2000: [mvd_782.json](mvd_782.json)
|
42
|
+
|
43
|
+
For schema details and other information, see <https://dangry.ru/iuliia> (in Russian).
|
44
|
+
|
45
|
+
## Supported languages
|
46
|
+
|
47
|
+
- [C#](https://github.com/belianin/iuliia-cs)
|
48
|
+
- [Go](https://github.com/mehanizm/iuliia-go)
|
49
|
+
- [Java](https://github.com/massita99/iuliia-java) (Gson)
|
50
|
+
- [Java](https://github.com/homyakin/iuliia-java) (Jackson)
|
51
|
+
- [JavaScript](https://github.com/nalgeon/iuliia-js)
|
52
|
+
- [PHP](https://github.com/perevoshchikov/iuliia-php)
|
53
|
+
- **[Python](https://github.com/nalgeon/iuliia-py) ✨**
|
54
|
+
- [Ruby](https://github.com/adnikiforov/iuliia-rb)
|
55
|
+
- [Rust](https://github.com/massita99/iuliia-rust)
|
56
|
+
- [Swift](https://github.com/petertretyakov/Iuliia)
|
57
|
+
|
58
|
+
This repo contains schema descriptions. It is not intended to be used directly. If you want to add another schema — send a PR! See [schema.jsd](schema.jsd) for JSON Schema definition and [wikipedia.json](wikipedia.json) as a reference.
|
59
|
+
|
60
|
+
## Issues and limitations
|
61
|
+
|
62
|
+
In general:
|
63
|
+
|
64
|
+
- Only Russian subset of Cyrillic is supported.
|
65
|
+
- Does not support composite Unicode characters (e.g., `Ё`, but not `Ё`).
|
66
|
+
|
67
|
+
Schema-specific:
|
68
|
+
|
69
|
+
- _BS 2979:1958_. This schema defines two alternative translations for `Ы`: `Ы` → `Ȳ` (used by the Oxford University Press) and `Ы` → `UI` (used by the British Library). `iuliia` uses `Ы` → `Ȳ`.
|
70
|
+
- _GOST R 7.0.34-2014_. This schema defines alternatives for many letters, but does not specify when to use which. Therefore, `iuliia` uses the first of suggested translations for each such letter.
|
71
|
+
- _MVD-310_. This schema defines "`С` between two vowels → `SS`" rule. There is no such rule in other schemas, and MVD-310 itself is deprecated, so I decided to ignore this specific rule for the sake of code simplicity.
|
@@ -0,0 +1,49 @@
|
|
1
|
+
{
|
2
|
+
"name": "ala_lc",
|
3
|
+
"description": "ALA-LC transliteration schema.",
|
4
|
+
"url": "https://dangry.ru/iuliia/ala-lc/",
|
5
|
+
"mapping": {
|
6
|
+
"а": "a",
|
7
|
+
"б": "b",
|
8
|
+
"в": "v",
|
9
|
+
"г": "g",
|
10
|
+
"д": "d",
|
11
|
+
"е": "e",
|
12
|
+
"ё": "ё",
|
13
|
+
"ж": "zh",
|
14
|
+
"з": "z",
|
15
|
+
"и": "i",
|
16
|
+
"й": "ĭ",
|
17
|
+
"к": "k",
|
18
|
+
"л": "l",
|
19
|
+
"м": "m",
|
20
|
+
"н": "n",
|
21
|
+
"о": "o",
|
22
|
+
"п": "p",
|
23
|
+
"р": "r",
|
24
|
+
"с": "s",
|
25
|
+
"т": "t",
|
26
|
+
"у": "u",
|
27
|
+
"ф": "f",
|
28
|
+
"х": "kh",
|
29
|
+
"ц": "t͡s",
|
30
|
+
"ч": "ch",
|
31
|
+
"ш": "sh",
|
32
|
+
"щ": "shch",
|
33
|
+
"ъ": "ʺ",
|
34
|
+
"ы": "y",
|
35
|
+
"ь": "ʹ",
|
36
|
+
"э": "ė",
|
37
|
+
"ю": "i͡u",
|
38
|
+
"я": "i͡a"
|
39
|
+
},
|
40
|
+
"prev_mapping": null,
|
41
|
+
"next_mapping": null,
|
42
|
+
"ending_mapping": null,
|
43
|
+
"samples": [
|
44
|
+
[
|
45
|
+
"Юлия, съешь ещё этих мягких французских булок из Йошкар-Олы, да выпей алтайского чаю",
|
46
|
+
"I͡ulii͡a, sʺeshʹ eshchё ėtikh mi͡agkikh frant͡suzskikh bulok iz Ĭoshkar-Oly, da vypeĭ altaĭskogo chai͡u"
|
47
|
+
]
|
48
|
+
]
|
49
|
+
}
|
@@ -0,0 +1,49 @@
|
|
1
|
+
{
|
2
|
+
"name": "ala_lc_alt",
|
3
|
+
"description": "ALA-LC transliteration schema.",
|
4
|
+
"url": "https://dangry.ru/iuliia/ala-lc/",
|
5
|
+
"mapping": {
|
6
|
+
"а": "a",
|
7
|
+
"б": "b",
|
8
|
+
"в": "v",
|
9
|
+
"г": "g",
|
10
|
+
"д": "d",
|
11
|
+
"е": "e",
|
12
|
+
"ё": "e",
|
13
|
+
"ж": "zh",
|
14
|
+
"з": "z",
|
15
|
+
"и": "i",
|
16
|
+
"й": "i",
|
17
|
+
"к": "k",
|
18
|
+
"л": "l",
|
19
|
+
"м": "m",
|
20
|
+
"н": "n",
|
21
|
+
"о": "o",
|
22
|
+
"п": "p",
|
23
|
+
"р": "r",
|
24
|
+
"с": "s",
|
25
|
+
"т": "t",
|
26
|
+
"у": "u",
|
27
|
+
"ф": "f",
|
28
|
+
"х": "kh",
|
29
|
+
"ц": "ts",
|
30
|
+
"ч": "ch",
|
31
|
+
"ш": "sh",
|
32
|
+
"щ": "shch",
|
33
|
+
"ъ": "\"",
|
34
|
+
"ы": "y",
|
35
|
+
"ь": "'",
|
36
|
+
"э": "e",
|
37
|
+
"ю": "iu",
|
38
|
+
"я": "ia"
|
39
|
+
},
|
40
|
+
"prev_mapping": null,
|
41
|
+
"next_mapping": null,
|
42
|
+
"ending_mapping": null,
|
43
|
+
"samples": [
|
44
|
+
[
|
45
|
+
"Юлия, съешь ещё этих мягких французских булок из Йошкар-Олы, да выпей алтайского чаю",
|
46
|
+
"Iuliia, s\"esh' eshche etikh miagkikh frantsuzskikh bulok iz Ioshkar-Oly, da vypei altaiskogo chaiu"
|
47
|
+
]
|
48
|
+
]
|
49
|
+
}
|