summaryrefslogtreecommitdiff
path: root/lib/gitlab/i18n/translation_entry.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/i18n/translation_entry.rb')
-rw-r--r--lib/gitlab/i18n/translation_entry.rb20
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