Skip to content

Commit

Permalink
Merge pull request #1151 from messerm/patch-1
Browse files Browse the repository at this point in the history
Support interpolation for defaultValue as parameter
  • Loading branch information
jamuhl committed Dec 31, 2018
2 parents 6b67324 + 20cc059 commit 7ece8b4
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 3 deletions.
13 changes: 10 additions & 3 deletions src/defaults.js
Expand Up @@ -37,9 +37,16 @@ export function get() {
appendNamespaceToMissingKey: false,
appendNamespaceToCIMode: false,
overloadTranslationOptionHandler: function handle(args) {
const ret = {};
if (args[1]) ret.defaultValue = args[1];
if (args[2]) ret.tDescription = args[2];
var ret = {};
if (typeof args[1] === 'object') ret = args[1];
if (typeof args[1] === 'string') ret.defaultValue = args[1];
if (typeof args[2] === 'string') ret.tDescription = args[2];
if (typeof args[2] === 'object' || typeof args[3] === 'object') {
var options = args[3] || args[2];
Object.keys(options).forEach(function(key) {
ret[key] = options[key];
});
}
return ret;
},
interpolation: {
Expand Down
32 changes: 32 additions & 0 deletions test/i18next.defaults.spec.js
Expand Up @@ -7,6 +7,38 @@ describe('defaults', () => {
expect(defaults.overloadTranslationOptionHandler(['key', 'my default value'])).to.eql({ defaultValue: 'my default value' });
});

it('defaultValue as option', () => {
console.log(defaults.overloadTranslationOptionHandler(['key', { defaultValue: 'option default value' }]));
expect(defaults.overloadTranslationOptionHandler(['key', { defaultValue: 'option default value' }])).to.eql({ defaultValue: 'option default value' });
});

it('description', () => {
expect(defaults.overloadTranslationOptionHandler(['key', 'my default value', 'the description'])).to.eql({ defaultValue: 'my default value', tDescription: 'the description' });
});

it('description with options defaultValue', () => {
// Options overwrites params default value
expect(defaults.overloadTranslationOptionHandler(['key', 'my default value', 'the description'])).to.eql({ defaultValue: 'my default value', tDescription: 'the description' });
});

it('interpolation', () => {
expect(defaults.overloadTranslationOptionHandler(['key', 'my default value {{params}}', {params: 'the value'}])).to.eql({ defaultValue: 'my default value {{params}}', params: 'the value' });
});

it('interpolation with options defaultValue', () => {
// Options overwrites params default value
expect(defaults.overloadTranslationOptionHandler(['key', 'my default value {{params}}', {defaultValue: 'options default value', params: 'the value'}])).to.eql({ defaultValue: 'options default value', params: 'the value' });
});

it('interpolation description', () => {
expect(defaults.overloadTranslationOptionHandler(['key', 'my default value {{params}}', 'the description', {params: 'the value'}])).to.eql({ defaultValue: 'my default value {{params}}', params: 'the value', tDescription: 'the description' });
});

it('interpolation description with options defaultValue', () => {
// Options overwrites params default value
expect(defaults.overloadTranslationOptionHandler(['key', 'my default value {{params}}', 'the description', {defaultValue: 'options default value', params: 'the value'}])).to.eql({ defaultValue: 'options default value', params: 'the value', tDescription: 'the description' });
});

it('it should have default format function', () => {
expect(defaults.interpolation.format('my value', '###', 'de')).to.equal('my value');
});
Expand Down

0 comments on commit 7ece8b4

Please sign in to comment.