summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorOmar Roth <omarroth@hotmail.com>2019-04-28 14:50:17 -0500
committerOmar Roth <omarroth@hotmail.com>2019-04-28 14:50:17 -0500
commit6cdb6ec711794c2887da03c0e5d3cfac67bded3f (patch)
treeae7142425c08d462c1796ccc9848270dcb80f858 /src
parent03891b66b655a972f75a66a6764dc180059dc435 (diff)
downloadinvidious-6cdb6ec711794c2887da03c0e5d3cfac67bded3f.tar.gz
invidious-6cdb6ec711794c2887da03c0e5d3cfac67bded3f.tar.bz2
invidious-6cdb6ec711794c2887da03c0e5d3cfac67bded3f.zip
Add support for plurlization to locales
Diffstat (limited to 'src')
-rw-r--r--src/invidious/helpers/i18n.cr20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/invidious/helpers/i18n.cr b/src/invidious/helpers/i18n.cr
index 5acdcfc5..c3d3fbf4 100644
--- a/src/invidious/helpers/i18n.cr
+++ b/src/invidious/helpers/i18n.cr
@@ -7,8 +7,24 @@ def translate(locale : Hash(String, JSON::Any) | Nil, translation : String, text
# puts "Could not find translation for #{translation.dump}"
# end
- if locale && locale[translation]? && !locale[translation].as_s.empty?
- translation = locale[translation].as_s
+ if locale && locale[translation]?
+ case locale[translation]
+ when .as_h?
+ match_length = 0
+
+ locale[translation].as_h.each do |key, value|
+ if md = text.try &.match(/#{key}/)
+ if md[0].size >= match_length
+ translation = value.as_s
+ match_length = md[0].size
+ end
+ end
+ end
+ when .as_s?
+ if !locale[translation].as_s.empty?
+ translation = locale[translation].as_s
+ end
+ end
end
if text