From e11066228c0cc49a83ea0ad29a86d3a70866c3b2 Mon Sep 17 00:00:00 2001 From: mathias Date: Mon, 24 Jan 2022 08:22:08 +0100 Subject: [PATCH] Adds fixture locale file in YAML format, so writing back to the file doesn't interfere with subsequent tests --- locales/en.yml | 106 +++++++++++++++++++++++++++++++++++ test/i18n.configureParser.js | 7 ++- 2 files changed, 111 insertions(+), 2 deletions(-) create mode 100644 locales/en.yml diff --git a/locales/en.yml b/locales/en.yml new file mode 100644 index 0000000..bd1327a --- /dev/null +++ b/locales/en.yml @@ -0,0 +1,106 @@ +Empty: "" +Hello: Hello +"Hello %s, how are you today?": Hello %s, how are you today? +weekend: weekend +"Hello %s, how are you today? How was your %s.": Hello %s, how are you today? How was your %s. +Hi: Hi +Howdy: Howdy +"%s cat": + one: "%s cat" + other: "%s cats" +"%f star": + one: "%f star" + other: "%f stars" +"%d star": + one: "%d star" + other: "%d stars" +"%s star": + one: "%s star" + other: "%s stars" +cat: + one: "%s cat" + other: "%s cats" +cats: + n: + one: "%s cat" + other: "%s cats" +nested: + deep: + plural: + one: plural + other: plurals + path: + sub: nested.path.sub +There is one monkey in the %%s: + one: There is one monkey in the %%s + other: There are %d monkeys in the %%s +tree: tree +There is one monkey in the %s: + one: There is one monkey in the %s + other: There are %d monkeys in the %s +There is one monkey in the tree: + one: There is one monkey in the tree + other: There are %d monkeys in the tree +plurals with intervals in string (no object): "[0] a zero rule|[2,5] two to five (included)|and a catchall rule" +plurals with intervals in _other_ missing _one_: + other: "[0] a zero rule|[2,5] two to five (included)|and a catchall rule" +plurals with intervals as string: + one: The default 'one' rule + other: "[0] a zero rule|[2,5] two to five (included)|and a catchall rule" +plurals with intervals as string (excluded): + one: The default 'one' rule + other: "[0] a zero rule|]2,5[ two to five (excluded)|and a catchall rule" +plurals in any order: + one: The default 'one' rule + other: "[0] a zero rule|and a catchall rule|[2,5] two to five (included)" +plurals to eternity: "[0,] this will last forever|but only gt 0" +plurals from eternity: "[,0] this was born long before|but only lt 0" +Hello %s: Hello %s +"Hello {{name}}": Hello {{name}} +"Hello {{name}}, how was your %s?": Hello {{name}}, how was your %s? +format: + date: MM/DD/YYYY + time: h:mm:ss a +greeting: + formal: Hello + informal: Hi + placeholder: + formal: Hello %s + informal: Hi %s + loud: greeting.placeholder.loud + plurals: + one: The default 'one' rule + other: "[0] a zero rule|[2,5] two to five (included)|and a catchall rule" +another: + nested: + extra: + deep: + example: + one: The default 'one' rule + other: "[0] a zero rule|[2,5] two to five (included)|and a catchall rule" + lazy: + example: + other: "[0] a zero rule|[2,5] two to five (included)|and a catchall rule" + mustache: + example: "[0] a zero rule for {{me}}|[2,5] two to five (included) for {{me}}|and + a catchall rule for {{me}}" + mustacheprintf: + example: "[0] %s is zero rule for {{me}}|[2,5] %s is between two and five + (included) for {{me}}|and a catchall rule for {{me}} to get my number + %s" +nested.deep.plural: + one: nested.deep.plural + other: 1 +ordered arguments: "%2$s then %1$s" +ordered arguments with numbers: "%2$d then %1$s then %3$.2f" +repeated argument: "%1$s, %1$s, %1$s" +. is first character: Dot is first character +last character is .: last character is Dot +few sentences. with .: few sentences with Dot +"Hello {{{name}}}": Hello {{{name}}} +Standalone | 42 symbol somewhere | in the text | 1| 0: Standalone | 42 symbol somewhere | in the text | 1| 0 +"should ignore\ \n standalone | mixed with\ \n new lines 42 | value - 42": |- + should ignore + standalone | mixed with + new lines 42 | value - 42 +mftest: "In {lang} there {NUM, plural,one{is one for #}other{others for #}}" diff --git a/test/i18n.configureParser.js b/test/i18n.configureParser.js index 8716223..ce98f00 100644 --- a/test/i18n.configureParser.js +++ b/test/i18n.configureParser.js @@ -5,7 +5,8 @@ require('should') describe('configure parser', function () { context('with YAML parser', function () { const i18n = new I18n({ - locales: ['en', 'de'], + locales: ['en'], + extension: '.yml', parser: YAML }) @@ -16,7 +17,9 @@ describe('configure parser', function () { it('should write unknown keys to the catalog', function () { i18n.__('does.not.exist') - i18n.getCatalog().should.have.property('does.not.exist', 'does.not.exist') + const catalog = i18n.getCatalog() + catalog.should.have.property('en') + catalog.en.should.have.property('does.not.exist', 'does.not.exist') }) }) })