HEX
Server: nginx/1.24.0
System: Linux nowruzgan 6.8.0-57-generic #59-Ubuntu SMP PREEMPT_DYNAMIC Sat Mar 15 17:40:59 UTC 2025 x86_64
User: babak (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/dev/nowruzgan/rest/node_modules/i18n-2/test/i18n.base.js
// Run $ expresso
var I18n = require('../i18n'),
	assert = require('assert');

module.exports = {
	'check base': function () {
		var i18n = new I18n({
			locales: ['at-de'],
			base: function(locale) { return locale.slice(-2); }
		});

		i18n.setLocale('at-de');
		assert.equal(i18n.__('Hello'), 'Hallo');
		assert.equal(i18n.__('Hello %s, how are you today? How was your %s.', 'Marcus'), 'Hallo Marcus, wie geht es dir heute? Wie war Ihre Reise nach Wien.');
	},

	'check base - returning nothing reads locale safely': function () {
		var i18n = new I18n({
			locales: ['at-de'],
			base: function() {}
		});

		i18n.setLocale('at-de');
		assert.equal(i18n.__('Hello %s, how are you today? How was your %s.', 'Marcus'), 'Hallo Marcus, wie geht es dir heute? Wie war Ihre Reise nach Wien.');
	},

	'check base - returning not a string reads locale safely': function () {
		var i18n = new I18n({
			locales: ['at-de'],
			base: function() { return {}; }
		});

		i18n.setLocale('at-de');
		assert.equal(i18n.__('Hello %s, how are you today? How was your %s.', 'Marcus'), 'Hallo Marcus, wie geht es dir heute? Wie war Ihre Reise nach Wien.');
	},

	'check base - throwing exception reads locale safely': function () {
		var i18n = new I18n({
			locales: ['at-de'],
			base: function() { throw new Error(); }
		});

		i18n.setLocale('at-de');
		assert.equal(i18n.__('Hello %s, how are you today? How was your %s.', 'Marcus'), 'Hallo Marcus, wie geht es dir heute? Wie war Ihre Reise nach Wien.');
	}
};