i18n-js 2.1.2 → 3.9.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.
Files changed (130) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +24 -0
  3. data/.github/FUNDING.yml +3 -0
  4. data/.github/workflows/tests.yaml +106 -0
  5. data/.gitignore +6 -4
  6. data/.npmignore +27 -0
  7. data/Appraisals +52 -0
  8. data/CHANGELOG.md +575 -0
  9. data/Gemfile +1 -1
  10. data/README.md +1099 -0
  11. data/Rakefile +19 -7
  12. data/app/assets/javascripts/i18n/filtered.js.erb +23 -0
  13. data/app/assets/javascripts/i18n/shims.js +240 -0
  14. data/app/assets/javascripts/i18n/translations.js +3 -0
  15. data/app/assets/javascripts/i18n.js +1095 -0
  16. data/gemfiles/i18n_0_6.gemfile +7 -0
  17. data/gemfiles/i18n_0_7.gemfile +7 -0
  18. data/gemfiles/i18n_0_8.gemfile +7 -0
  19. data/gemfiles/i18n_0_9.gemfile +7 -0
  20. data/gemfiles/i18n_1_0.gemfile +7 -0
  21. data/gemfiles/i18n_1_1.gemfile +7 -0
  22. data/gemfiles/i18n_1_10.gemfile +7 -0
  23. data/gemfiles/i18n_1_2.gemfile +7 -0
  24. data/gemfiles/i18n_1_3.gemfile +7 -0
  25. data/gemfiles/i18n_1_4.gemfile +7 -0
  26. data/gemfiles/i18n_1_5.gemfile +7 -0
  27. data/gemfiles/i18n_1_6.gemfile +7 -0
  28. data/gemfiles/i18n_1_7.gemfile +7 -0
  29. data/gemfiles/i18n_1_8.gemfile +7 -0
  30. data/gemfiles/i18n_1_9.gemfile +7 -0
  31. data/i18n-js.gemspec +13 -10
  32. data/i18njs.png +0 -0
  33. data/lib/i18n/js/dependencies.rb +67 -0
  34. data/lib/i18n/js/engine.rb +87 -0
  35. data/lib/i18n/js/fallback_locales.rb +70 -0
  36. data/lib/i18n/js/formatters/base.rb +25 -0
  37. data/lib/i18n/js/formatters/js.rb +39 -0
  38. data/lib/i18n/js/formatters/json.rb +13 -0
  39. data/lib/{i18n-js → i18n/js}/middleware.rb +32 -9
  40. data/lib/i18n/js/private/config_store.rb +31 -0
  41. data/lib/i18n/js/private/hash_with_symbol_keys.rb +36 -0
  42. data/lib/i18n/js/segment.rb +81 -0
  43. data/lib/i18n/js/utils.rb +91 -0
  44. data/lib/i18n/js/version.rb +7 -0
  45. data/lib/i18n/js.rb +274 -0
  46. data/lib/i18n-js.rb +1 -177
  47. data/lib/rails/generators/i18n/js/config/config_generator.rb +19 -0
  48. data/{config → lib/rails/generators/i18n/js/config/templates}/i18n-js.yml +11 -6
  49. data/lib/tasks/export.rake +8 -0
  50. data/package.json +25 -0
  51. data/spec/fixtures/custom_path.yml +5 -0
  52. data/spec/fixtures/default.yml +5 -0
  53. data/spec/fixtures/erb.yml +5 -0
  54. data/spec/fixtures/except_condition.yml +7 -0
  55. data/spec/fixtures/js_available_locales_custom.yml +1 -0
  56. data/spec/fixtures/js_export_dir_custom.yml +7 -0
  57. data/spec/fixtures/js_export_dir_none.yml +6 -0
  58. data/spec/fixtures/js_extend_parent.yml +6 -0
  59. data/spec/fixtures/js_extend_segment.yml +6 -0
  60. data/spec/fixtures/js_file_per_locale.yml +7 -0
  61. data/spec/fixtures/js_file_per_locale_with_fallbacks_as_default_locale_symbol.yml +4 -0
  62. data/spec/fixtures/js_file_per_locale_with_fallbacks_as_hash.yml +6 -0
  63. data/spec/fixtures/js_file_per_locale_with_fallbacks_as_locale.yml +4 -0
  64. data/spec/fixtures/js_file_per_locale_with_fallbacks_as_locale_without_fallback_translations.yml +4 -0
  65. data/spec/fixtures/js_file_per_locale_with_fallbacks_enabled.yml +4 -0
  66. data/spec/fixtures/js_file_per_locale_without_fallbacks.yml +4 -0
  67. data/spec/fixtures/js_file_with_namespace_prefix_and_pretty_print.yml +9 -0
  68. data/spec/fixtures/js_sort_translation_keys_false.yml +6 -0
  69. data/spec/fixtures/js_sort_translation_keys_true.yml +6 -0
  70. data/spec/fixtures/json_only.yml +18 -0
  71. data/spec/{resources → fixtures}/locales.yml +58 -1
  72. data/spec/fixtures/merge_plurals.yml +6 -0
  73. data/spec/fixtures/merge_plurals_with_no_overrides.yml +4 -0
  74. data/spec/fixtures/merge_plurals_with_partial_overrides.yml +4 -0
  75. data/spec/fixtures/millions.yml +4 -0
  76. data/spec/fixtures/multiple_conditions.yml +7 -0
  77. data/spec/fixtures/multiple_conditions_per_locale.yml +7 -0
  78. data/spec/fixtures/multiple_files.yml +7 -0
  79. data/spec/{resources → fixtures}/no_config.yml +0 -0
  80. data/spec/fixtures/no_scope.yml +4 -0
  81. data/spec/fixtures/simple_scope.yml +5 -0
  82. data/spec/js/currency.spec.js +62 -0
  83. data/spec/js/current_locale.spec.js +19 -0
  84. data/spec/js/dates.spec.js +276 -0
  85. data/spec/js/defaults.spec.js +31 -0
  86. data/spec/js/extend.spec.js +110 -0
  87. data/spec/js/interpolation.spec.js +124 -0
  88. data/spec/js/jasmine/MIT.LICENSE +20 -0
  89. data/spec/js/jasmine/jasmine-html.js +190 -0
  90. data/spec/js/jasmine/jasmine.css +166 -0
  91. data/spec/js/jasmine/jasmine.js +2476 -0
  92. data/spec/js/jasmine/jasmine_favicon.png +0 -0
  93. data/spec/js/json_parsable.spec.js +14 -0
  94. data/spec/js/locales.spec.js +31 -0
  95. data/spec/js/localization.spec.js +78 -0
  96. data/spec/js/numbers.spec.js +174 -0
  97. data/spec/js/placeholder.spec.js +24 -0
  98. data/spec/js/pluralization.spec.js +228 -0
  99. data/spec/js/prepare_options.spec.js +41 -0
  100. data/spec/js/require.js +2083 -0
  101. data/spec/js/specs.html +49 -0
  102. data/spec/js/specs_requirejs.html +72 -0
  103. data/spec/js/translate.spec.js +304 -0
  104. data/spec/js/translations.js +188 -0
  105. data/spec/js/utility_functions.spec.js +20 -0
  106. data/spec/ruby/i18n/js/fallback_locales_spec.rb +84 -0
  107. data/spec/ruby/i18n/js/segment_spec.rb +286 -0
  108. data/spec/ruby/i18n/js/utils_spec.rb +138 -0
  109. data/spec/ruby/i18n/js_spec.rb +797 -0
  110. data/spec/spec_helper.rb +75 -14
  111. data/yarn.lock +138 -0
  112. metadata +225 -96
  113. data/.rspec +0 -1
  114. data/Gemfile.lock +0 -51
  115. data/README.rdoc +0 -305
  116. data/lib/i18n-js/engine.rb +0 -62
  117. data/lib/i18n-js/railtie.rb +0 -13
  118. data/lib/i18n-js/rake.rb +0 -16
  119. data/lib/i18n-js/version.rb +0 -10
  120. data/spec/i18n_spec.js +0 -768
  121. data/spec/i18n_spec.rb +0 -205
  122. data/spec/resources/custom_path.yml +0 -4
  123. data/spec/resources/default.yml +0 -4
  124. data/spec/resources/js_file_per_locale.yml +0 -3
  125. data/spec/resources/multiple_conditions.yml +0 -6
  126. data/spec/resources/multiple_files.yml +0 -6
  127. data/spec/resources/no_scope.yml +0 -3
  128. data/spec/resources/simple_scope.yml +0 -4
  129. data/vendor/assets/javascripts/i18n/translations.js.erb +0 -7
  130. data/vendor/assets/javascripts/i18n.js +0 -450
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 7d3a003954d81c9cbb7c2f18791ed8baf068f3fbbe6587ce59cd893b7852d1f2
4
+ data.tar.gz: d9fcb2bf3de34987021c2ac556ae65bcecbdfe6cbb638455d6e7919e03268d8c
5
+ SHA512:
6
+ metadata.gz: 07b6670d05343e82e44041379917a56ee72b185b1bfdcceefe6ae8eae9a1eece1852db7a378eaf8a38f5769ec76587737b200bfb22e50444a02e14bbb4b78793
7
+ data.tar.gz: afe058283a6af31ab843ba2c0da1f1949d37623a3e0823c786cb947b252eac51ffc25c4f856c01e9e1ec87546dd31dddf4705e1f6b5597a3edd02e950e674ed2
data/.editorconfig ADDED
@@ -0,0 +1,24 @@
1
+ # EditorConfig is awesome: https://EditorConfig.org
2
+
3
+ # top-most EditorConfig file
4
+ root = true
5
+
6
+ # default configuration
7
+ [*]
8
+ indent_style = space
9
+ indent_size = 2
10
+ insert_final_newline = true
11
+ trim_trailing_whitespace = true
12
+
13
+ # Unix-style newlines with a newline ending every file
14
+ end_of_line = lf
15
+
16
+ # Set default charset
17
+ charset = utf-8
18
+
19
+ # Tab indentation (no size specified)
20
+ [Makefile]
21
+ indent_style = tab
22
+
23
+ [*.{md,markdown}]
24
+ trim_trailing_whitespace = false
@@ -0,0 +1,3 @@
1
+ ---
2
+ github: ["fnando"]
3
+ custom: ["https://paypal.me/nandovieira/🍕"]
@@ -0,0 +1,106 @@
1
+ name: Tests
2
+
3
+ on:
4
+ pull_request:
5
+ branches:
6
+ - main
7
+ - v3
8
+ paths-ignore:
9
+ - 'README.md'
10
+ push:
11
+ branches:
12
+ - main
13
+ - v3
14
+ paths-ignore:
15
+ - 'README.md'
16
+
17
+ jobs:
18
+ ruby_unit_tests:
19
+ name: Ruby Unit Tests
20
+ if: "contains(github.event.commits[0].message, '[ci skip]') == false"
21
+ strategy:
22
+ fail-fast: false
23
+ matrix:
24
+ os:
25
+ - ubuntu
26
+ ruby:
27
+ - 2.4
28
+ - 2.5
29
+ - 2.6
30
+ - 2.7
31
+ - '3.0'
32
+ - 3.1
33
+ gemfile:
34
+ - gemfiles/i18n_0_6.gemfile
35
+ - gemfiles/i18n_0_7.gemfile
36
+ - gemfiles/i18n_0_8.gemfile
37
+ - gemfiles/i18n_0_9.gemfile
38
+ - gemfiles/i18n_1_0.gemfile
39
+ - gemfiles/i18n_1_1.gemfile
40
+ - gemfiles/i18n_1_2.gemfile
41
+ - gemfiles/i18n_1_3.gemfile
42
+ - gemfiles/i18n_1_4.gemfile
43
+ - gemfiles/i18n_1_5.gemfile
44
+ - gemfiles/i18n_1_6.gemfile
45
+ - gemfiles/i18n_1_7.gemfile
46
+ - gemfiles/i18n_1_8.gemfile
47
+ - gemfiles/i18n_1_9.gemfile
48
+ - gemfiles/i18n_1_10.gemfile
49
+ allow_failures:
50
+ - false
51
+ include:
52
+ - os: ubuntu
53
+ ruby: ruby-head
54
+ gemfile: gemfiles/i18n_1_8.gemfile
55
+ allow_failures: true
56
+ env:
57
+ BUNDLE_GEMFILE: "${{ matrix.gemfile }}"
58
+ ALLOW_FAILURES: "${{ matrix.allow_failures }}"
59
+ runs-on: ${{ matrix.os }}-latest
60
+ continue-on-error: ${{ endsWith(matrix.ruby, 'head') || matrix.ruby == 'debug' }}
61
+ steps:
62
+ - name: Checkout
63
+ uses: actions/checkout@v2
64
+ - name: Setup Ruby
65
+ uses: ruby/setup-ruby@v1
66
+ with:
67
+ ruby-version: ${{ matrix.ruby }}
68
+ bundler-cache: true
69
+ - name: Test
70
+ run: bundle exec rake spec:ruby || $ALLOW_FAILURES
71
+
72
+ js_unit_tests:
73
+ name: JS Unit Tests
74
+ if: "contains(github.event.commits[0].message, '[ci skip]') == false"
75
+ strategy:
76
+ fail-fast: false
77
+ matrix:
78
+ os:
79
+ - ubuntu
80
+ node:
81
+ - 10
82
+ - 12
83
+ - 14
84
+ runs-on: ${{ matrix.os }}-latest
85
+ steps:
86
+ - name: Checkout
87
+ uses: actions/checkout@v2
88
+ - name: Setup node
89
+ uses: actions/setup-node@v1
90
+ with:
91
+ node-version: ${{ matrix.node }}
92
+ - name: Get yarn cache directory path
93
+ id: yarn-cache-dir-path
94
+ run: echo "::set-output name=dir::$(yarn cache dir)"
95
+ - uses: actions/cache@v2
96
+ id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
97
+ with:
98
+ path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
99
+ key: ${{ runner.os }}-yarn-${{ github.ref }}-${{ github.sha }}
100
+ restore-keys: |
101
+ ${{ runner.os }}-yarn-${{ github.ref }}-
102
+ ${{ runner.os }}-yarn-
103
+ - name: Install JS Dependencies
104
+ run: yarn install
105
+ - name: Test
106
+ run: npm test
data/.gitignore CHANGED
@@ -1,5 +1,7 @@
1
- doc
2
- coverage
3
1
  pkg
4
- spec/tmp
5
- .DS_Store
2
+ node_modules
3
+ Gemfile.lock
4
+ .idea/
5
+ coverage/
6
+ gemfiles/*.gemfile.lock
7
+ gemfiles/.bundle
data/.npmignore ADDED
@@ -0,0 +1,27 @@
1
+ # https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
2
+
3
+ # tests
4
+ spec
5
+ coverage
6
+
7
+ # build tools
8
+ .travis.yml
9
+
10
+ # linters
11
+ .jscsrc
12
+ .jshintrc
13
+ .eslintrc*
14
+
15
+ # editor settings
16
+ .idea
17
+ .editorconfig
18
+
19
+ # Ruby code
20
+ app/assets/javascripts/i18n/
21
+ gemfiles
22
+ lib
23
+ Gemfile*
24
+ *.gemspec
25
+ Rakefile
26
+ Appraisals
27
+
data/Appraisals ADDED
@@ -0,0 +1,52 @@
1
+
2
+ appraise "i18n_0_8" do
3
+ gem "i18n", "~> 0.8.0"
4
+ end
5
+
6
+ appraise "i18n_0_9" do
7
+ gem "i18n", "~> 0.9.0"
8
+ end
9
+
10
+ appraise "i18n_1_0" do
11
+ gem "i18n", "~> 1.0.0"
12
+ end
13
+
14
+ appraise "i18n_1_1" do
15
+ gem "i18n", "~> 1.1.0"
16
+ end
17
+
18
+ appraise "i18n_1_2" do
19
+ gem "i18n", "~> 1.2.0"
20
+ end
21
+
22
+ appraise "i18n_1_3" do
23
+ gem "i18n", "~> 1.3.0"
24
+ end
25
+
26
+ appraise "i18n_1_4" do
27
+ gem "i18n", "~> 1.4.0"
28
+ end
29
+
30
+ appraise "i18n_1_5" do
31
+ gem "i18n", "~> 1.5.1"
32
+ end
33
+
34
+ appraise "i18n_1_6" do
35
+ gem "i18n", "~> 1.6.0"
36
+ end
37
+
38
+ appraise "i18n_1_7" do
39
+ gem "i18n", "~> 1.7.0"
40
+ end
41
+
42
+ appraise "i18n_1_8" do
43
+ gem "i18n", "~> 1.8.0"
44
+ end
45
+
46
+ appraise "i18n_1_9" do
47
+ gem "i18n", "~> 1.9.0"
48
+ end
49
+
50
+ appraise "i18n_1_10" do
51
+ gem "i18n", "~> 1.10.0"
52
+ end