diff options
Diffstat (limited to 'lib/gitlab/i18n/translation_entry.rb')
-rw-r--r-- | lib/gitlab/i18n/translation_entry.rb | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/lib/gitlab/i18n/translation_entry.rb b/lib/gitlab/i18n/translation_entry.rb index e6c95afca7e..13c544aed27 100644 --- a/lib/gitlab/i18n/translation_entry.rb +++ b/lib/gitlab/i18n/translation_entry.rb @@ -11,11 +11,11 @@ module Gitlab end def msgid - entry_data[:msgid] + @msgid ||= Array(entry_data[:msgid]).join end def plural_id - entry_data[:msgid_plural] + @plural_id ||= Array(entry_data[:msgid_plural]).join end def has_plural? @@ -23,12 +23,11 @@ module Gitlab end def singular_translation - all_translations.first if has_singular_translation? + all_translations.first.to_s if has_singular_translation? end def all_translations - @all_translations ||= entry_data.fetch_values(*translation_keys) - .reject(&:empty?) + @all_translations ||= translation_entries.map { |translation| Array(translation).join } end def translated? @@ -55,15 +54,15 @@ module Gitlab end def msgid_contains_newlines? - msgid.is_a?(Array) + entry_data[:msgid].is_a?(Array) end def plural_id_contains_newlines? - plural_id.is_a?(Array) + entry_data[:msgid_plural].is_a?(Array) end def translations_contain_newlines? - all_translations.any? { |translation| translation.is_a?(Array) } + translation_entries.any? { |translation| translation.is_a?(Array) } end def msgid_contains_unescaped_chars? @@ -84,6 +83,11 @@ module Gitlab private + def translation_entries + @translation_entries ||= entry_data.fetch_values(*translation_keys) + .reject(&:empty?) + end + def translation_keys @translation_keys ||= entry_data.keys.select { |key| key.to_s =~ /\Amsgstr(\[\d+\])?\z/ } end |