Skip to content

Commit

Permalink
change reges to fix some issue with interpolation
Browse files Browse the repository at this point in the history
  • Loading branch information
jamuhl committed Jan 12, 2021
1 parent 3fcdc02 commit 68c6f90
Show file tree
Hide file tree
Showing 11 changed files with 21 additions and 18 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
### 3.0.0

- **BREAKING** changes regex from `/\((\S*)\).*{((.|\n)*)}/` to `/\((\S*)\).*?\[((.|\n)*)\]/` -> from (condition){value} to (condition)[value] to fix [#206](https://github.com/i18next/i18next-intervalPlural-postProcessor/issues/206) and [#221](https://github.com/i18next/i18next-intervalPlural-postProcessor/issues/221)
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,10 @@ i18next
// translation: {
// key1: '{{count}} item',
// key1_plural: '{{count}} items',
// key1_interval: '(1){one item};(2-7){a few items};(7-inf){a lot of items};',
// key1_interval: '(1)[one item];(2-7)[a few items];(7-inf)[a lot of items];',
// key2: '{{count}} item',
// key2_plural: '{{count}} items',
// key2_interval: '(1){one item};(2-7){a few items};'
// key2_interval: '(1)[one item];(2-7)[a few items];'
// }

i18next.t('key1_interval', { postProcess: 'interval', count: 1 }); // -> one item
Expand All @@ -67,7 +67,7 @@ import intervalPlural from 'i18next-intervalplural-postprocessor';
intervalPlural.setOptions({
// these are the defaults
intervalSeparator: ';',
intervalRegex: /\((\S*)\).*{((.|\n)*)}/,
intervalRegex: /\((\S*)\).*?\[((.|\n)*)\]/, // pre 3.0 /\((\S*)\).*{((.|\n)*)}/,
intervalSuffix: '_interval'
});

Expand Down
2 changes: 1 addition & 1 deletion dist/commonjs/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ exports.default = {

options: {
intervalSeparator: ';',
intervalRegex: /\((\S*)\).*{((.|\n)*)}/,
intervalRegex: /\((\S*)\).*?\[((.|\n)*)\]/,
intervalSuffix: '_interval'
},

Expand Down
2 changes: 1 addition & 1 deletion dist/es/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ export default {

options: {
intervalSeparator: ';',
intervalRegex: /\((\S*)\).*{((.|\n)*)}/,
intervalRegex: /\((\S*)\).*?\[((.|\n)*)\]/,
intervalSuffix: '_interval'
},

Expand Down
2 changes: 1 addition & 1 deletion dist/umd/i18nextIntervalPluralPostProcessor.js
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ var index = {

options: {
intervalSeparator: ';',
intervalRegex: /\((\S*)\).*{((.|\n)*)}/,
intervalRegex: /\((\S*)\).*?\[((.|\n)*)\]/,
intervalSuffix: '_interval'
},

Expand Down
2 changes: 1 addition & 1 deletion dist/umd/i18nextIntervalPluralPostProcessor.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion i18nextIntervalPluralPostProcessor.js
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ var index = {

options: {
intervalSeparator: ';',
intervalRegex: /\((\S*)\).*{((.|\n)*)}/,
intervalRegex: /\((\S*)\).*?\[((.|\n)*)\]/,
intervalSuffix: '_interval'
},

Expand Down
2 changes: 1 addition & 1 deletion i18nextIntervalPluralPostProcessor.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "i18next-intervalplural-postprocessor",
"version": "2.0.2",
"version": "3.0.0",
"description": "postProcessor that allows interval based plurals",
"main": "./index.js",
"jsnext:main": "dist/es/index.js",
Expand Down
2 changes: 1 addition & 1 deletion src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export default {

options: {
intervalSeparator: ';',
intervalRegex: /\((\S*)\).*{((.|\n)*)}/,
intervalRegex: /\((\S*)\).*?\[((.|\n)*)\]/,
intervalSuffix: '_interval'
},

Expand Down
14 changes: 7 additions & 7 deletions test/interval.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,31 +17,31 @@ describe('interval plural', () => {
i18next.addResourceBundle('en', 'test1', {
key1: '{{count}} item',
key1_plural: '{{count}} items',
key1_interval: '(1){one item};(2-7){a few items};(7-inf){a lot of items};',
key1_interval: '(1)[one item];(2-7)[a few items];(7-inf)[a lot of items];',
key2: '{{count}} item',
key2_plural: '{{count}} items',
key2_interval: '(1){one item};(2-7){a few items};'
key2_interval: '(1)[one item];(2-7)[a few items];'
});
i18next.addResourceBundle('en', 'test2', {
key3: '{{count}} item',
key3_plural: '{{count}} items',
key3_interval: '(1){one item};(2-7){a few items};(7-inf){a lot of items};',
key3_interval: '(1)[one item];(2-7)[a few items];(7-inf)[a lot of items];',
key4: '{{count}} item',
key4_plural: '{{count}} items',
key4_interval: '(1){one item};(2-7){a few items};'
key4_interval: '(1)[one item];(2-7)[a few items];'
});
i18next.addResourceBundle('en', 'test3', {
key3: '{{count}} item',
key3_plural: '{{count}} items',
key3_interval: '(1) {one item}; (2-7) {a few items}; (7-inf) {a lot of items};',
key3_interval: '(1) [one item]; (2-7) [a few items]; (7-inf) [a lot of items];',
key4: '{{count}} item',
key4_plural: '{{count}} items',
key4_interval: '(1){one item}; (2-7){a few items}; '
key4_interval: '(1)[one item]; (2-7)[a few items]; '
});
i18next.addResourceBundle('en', 'test4', {
LIKE_COUNT: '{{count}} person\nlikes this',
LIKE_COUNT_plura: '{{count}} people\nlike this',
LIKE_COUNT_interval: "(0){No one\nlikes this};"
LIKE_COUNT_interval: "(0)[No one\nlikes this];"
});
i18next.setDefaultNamespace('test1');
});
Expand Down

0 comments on commit 68c6f90

Please sign in to comment.