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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/spec.yml +1 -3
  3. data/.rubocop.yml +3 -0
  4. data/.rubocop_todo.yml +2 -2
  5. data/CHANGELOG.md +10 -0
  6. data/Gemfile +1 -1
  7. data/README.md +41 -2
  8. data/{iiulia-rb.gemspec → iiulia.gemspec} +14 -3
  9. data/lib/iuliia/exceptions.rb +11 -0
  10. data/lib/iuliia/iuliia.rb +7 -3
  11. data/lib/iuliia/schema.rb +11 -4
  12. data/lib/iuliia/translit.rb +17 -8
  13. data/lib/iuliia/version.rb +1 -1
  14. data/lib/iuliia.rb +1 -0
  15. data/lib/schemas/LICENSE +21 -0
  16. data/lib/schemas/README.md +71 -0
  17. data/lib/schemas/ala_lc.json +49 -0
  18. data/lib/schemas/ala_lc_alt.json +49 -0
  19. data/lib/schemas/bgn_pcgn.json +147 -0
  20. data/lib/schemas/bgn_pcgn_alt.json +106 -0
  21. data/lib/schemas/bs_2979.json +55 -0
  22. data/lib/schemas/bs_2979_alt.json +49 -0
  23. data/lib/schemas/gost_16876.json +49 -0
  24. data/lib/schemas/gost_16876_alt.json +49 -0
  25. data/lib/schemas/gost_52290.json +92 -0
  26. data/lib/schemas/gost_52535.json +50 -0
  27. data/lib/schemas/gost_7034.json +62 -0
  28. data/lib/schemas/gost_779.json +50 -0
  29. data/lib/schemas/gost_779_alt.json +54 -0
  30. data/lib/schemas/icao_doc_9303.json +57 -0
  31. data/lib/schemas/iso_9_1954.json +49 -0
  32. data/lib/schemas/iso_9_1968.json +49 -0
  33. data/lib/schemas/iso_9_1968_alt.json +49 -0
  34. data/lib/schemas/mosmetro.json +102 -0
  35. data/lib/schemas/mvd_310.json +52 -0
  36. data/lib/schemas/mvd_310_fr.json +66 -0
  37. data/lib/schemas/mvd_782.json +96 -0
  38. data/lib/schemas/schema.jsd +62 -0
  39. data/lib/schemas/scientific.json +49 -0
  40. data/lib/schemas/telegram.json +49 -0
  41. data/lib/schemas/ungegn_1987.json +53 -0
  42. data/lib/schemas/wikipedia.json +95 -0
  43. data/lib/schemas/yandex_maps.json +58 -0
  44. data/lib/schemas/yandex_money.json +52 -0
  45. metadata +63 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b104da0c637eac076457e888d30e52f977f2871b80f54cd82f995237ff343338
4
- data.tar.gz: edba6708b1590c7016749bd65c89f0f01d1514653c620064620fba8749061cd4
3
+ metadata.gz: 8da4196ca60d50693772a29a557b9489d0de255c8ca36f15feb467412c2698d3
4
+ data.tar.gz: 220658bc31b12b107c18072dfdddf8b0c24beefd79af1a93b3ee85fa039f33b2
5
5
  SHA512:
6
- metadata.gz: b67688c64d902c5507826a3b9da892675bff114450e7cc9039248819a9d95c3904c7851d6698ec2b0e311d2e46ea6740484c163caaed2a2311e1db7138ec0800
7
- data.tar.gz: b32700393e2f5c510402e9ac22e782d2bc7396e805dcad60e8fec65ac5a7fa5fb83b9364da690eccbb776d408f3e427e3002234afe73d555c4320c3d4fd98212
6
+ metadata.gz: 477ce87cf0bcfa3e4030d1436a47d46f2b78952406f8856110045c037732780b543c68a29d9f9b017c32605cf49be9c597007c4b3b96e7746ebec6da0bfd961c
7
+ data.tar.gz: b1d650e5287e9038332f5c797c9cc0b26971ff44b61947ba25a3d47067ad1abc1e9516b4f920e620e52966ae11917f05b1b398b07844f75ee630267967d80ff3
@@ -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 rake
32
+ run: bundle exec rspec
data/.rubocop.yml CHANGED
@@ -6,3 +6,6 @@ AllCops:
6
6
 
7
7
  Style/Documentation:
8
8
  Enabled: false
9
+
10
+ Metrics/BlockLength:
11
+ Max: 30
data/.rubocop_todo.yml CHANGED
@@ -11,10 +11,10 @@
11
11
  # Include: **/*.gemspec
12
12
  Gemspec/RequiredRubyVersion:
13
13
  Exclude:
14
- - 'iiulia-rb.gemspec'
14
+ - 'iiulia.gemspec'
15
15
 
16
16
  # Offense count: 1
17
17
  # Configuration parameters: MinBodyLength.
18
18
  Style/GuardClause:
19
19
  Exclude:
20
- - 'iiulia-rb.gemspec'
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
@@ -4,5 +4,5 @@ source 'https://rubygems.org'
4
4
 
5
5
  git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6
6
 
7
- # Specify your gem's dependencies in iiulia-rb.gemspec
7
+ # Specify your gem's dependencies in iiulia.gemspec
8
8
  gemspec
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.translit('Юлия, съешь ещё этих мягких французских булок из Йошкар-Олы, да выпей алтайского чаю', schema: 'mvd_782')
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
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
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
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Iuliia
4
+ module Exceptions
5
+ class NonExistentSchemaException < StandardError
6
+ def initialize(msg = 'Specified schema does not exist')
7
+ super
8
+ end
9
+ end
10
+ end
11
+ 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 translit(string, schema:)
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<Iuliia::Schema]>]
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
- JSON.parse(File.read("lib/schemas/#{name}.json"), object_class: OpenStruct, symbolize_names: true)
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['lib/schemas/*.json'].map do |file|
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
@@ -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.schema(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
- camelcase(translited_stem.join)
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 = if index.positive?
59
- chars[index - 1..index].join.downcase
60
- else
61
- chars[index].downcase
62
- end
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Iuliia
4
- VERSION = '1.0.0'
4
+ VERSION = '1.0.4'
5
5
  end
data/lib/iuliia.rb CHANGED
@@ -6,3 +6,4 @@ require 'iuliia/version'
6
6
  require 'iuliia/translit'
7
7
  require 'iuliia/schema'
8
8
  require 'iuliia/iuliia'
9
+ require 'iuliia/exceptions'
@@ -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
+ }