From 8472fa0807ad04f076df42b4ea4f8a145685dc80 Mon Sep 17 00:00:00 2001 From: Bob Van Landuyt Date: Wed, 14 Aug 2019 11:46:09 +0200 Subject: Build correct variables for testing translations This makes sure we build the correct variables for testing translations. When translating, we could be specifying the variables in different forms for each id: - In the singular we could be using a `%{hash}` interpolation - In the plural we could be using a `%d` interpolation This changes the tests to accommodate for that: We now use the variables used in the relevant translation id as the source for the variables we mix in in specs. --- lib/gitlab/i18n/po_linter.rb | 11 ++++++++--- spec/fixtures/valid.po | 5 +++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/gitlab/i18n/po_linter.rb b/lib/gitlab/i18n/po_linter.rb index 3e9a035010f..aec3b1a3755 100644 --- a/lib/gitlab/i18n/po_linter.rb +++ b/lib/gitlab/i18n/po_linter.rb @@ -170,13 +170,18 @@ module Gitlab end def translate_plural(entry) - used_variables = entry.plural_id.scan(VARIABLE_REGEX) - variables = fill_in_variables(used_variables) + used_plural_variables = entry.plural_id.scan(VARIABLE_REGEX) + plural_variables = fill_in_variables(used_plural_variables) + + used_singular_variables = entry.msgid.scan(VARIABLE_REGEX) + singular_variables = fill_in_variables(used_singular_variables) numbers_covering_all_plurals.map do |number| translation = FastGettext::Translation.n_(entry.msgid, entry.plural_id, number) + index = index_for_pluralization(number) + variables = index == 0 ? singular_variables : plural_variables - translation % variables if used_variables.any? + translation % variables if variables.any? end end diff --git a/spec/fixtures/valid.po b/spec/fixtures/valid.po index 155b6cbb95d..28826f05595 100644 --- a/spec/fixtures/valid.po +++ b/spec/fixtures/valid.po @@ -1128,3 +1128,8 @@ msgid "parent" msgid_plural "parents" msgstr[0] "padre" msgstr[1] "padres" + +msgid "CycleAnalytics|%{stageName}" +msgid_plural "CycleAnalytics|%d stages selected" +msgstr[0] "%{stageName}" +msgstr[1] "%d stages selected" -- cgit v1.2.1 From 18a4afc50e098b3544fa0fc604177a99b7ad7983 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C5=82gorzata=20Ksionek?= Date: Tue, 10 Sep 2019 11:51:37 +0200 Subject: Add code review remarks --- lib/gitlab/i18n/po_linter.rb | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/lib/gitlab/i18n/po_linter.rb b/lib/gitlab/i18n/po_linter.rb index aec3b1a3755..c0687cd9b79 100644 --- a/lib/gitlab/i18n/po_linter.rb +++ b/lib/gitlab/i18n/po_linter.rb @@ -170,16 +170,11 @@ module Gitlab end def translate_plural(entry) - used_plural_variables = entry.plural_id.scan(VARIABLE_REGEX) - plural_variables = fill_in_variables(used_plural_variables) - - used_singular_variables = entry.msgid.scan(VARIABLE_REGEX) - singular_variables = fill_in_variables(used_singular_variables) - numbers_covering_all_plurals.map do |number| translation = FastGettext::Translation.n_(entry.msgid, entry.plural_id, number) index = index_for_pluralization(number) - variables = index == 0 ? singular_variables : plural_variables + used_variables = index == 0 ? entry.msgid.scan(VARIABLE_REGEX) : entry.plural_id.scan(VARIABLE_REGEX) + variables = fill_in_variables(used_variables) translation % variables if variables.any? end -- cgit v1.2.1