From e314701d4955e3de6adcf0eae3361f710489f89b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Thu, 31 Oct 2019 15:03:57 +0100 Subject: [PATCH] Extract method to pluralize text in JavaScript This way we can reuse it in other places. --- app/assets/javascripts/application.js | 1 + app/assets/javascripts/globalize.js | 14 ++------------ app/assets/javascripts/i18n.js | 18 ++++++++++++++++++ 3 files changed, 21 insertions(+), 12 deletions(-) create mode 100644 app/assets/javascripts/i18n.js diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 9cc5833b7..abe121e1e 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -80,6 +80,7 @@ //= require investment_report_alert //= require send_newsletter_alert //= require managers +//= require i18n //= require globalize //= require send_admin_notification_alert //= require modal_download diff --git a/app/assets/javascripts/globalize.js b/app/assets/javascripts/globalize.js index 79c2aae9d..2b2a24aaf 100644 --- a/app/assets/javascripts/globalize.js +++ b/app/assets/javascripts/globalize.js @@ -77,19 +77,9 @@ update_description: function() { var count, description; count = App.Globalize.enabled_locales().length; - description = App.Globalize.language_description(count); + description = App.I18n.pluralize($(".globalize-languages").data("languages-description"), count); - $(".js-languages-description").text(description.replace("%{count}", count)); - }, - language_description: function(count) { - switch (count) { - case 0: - return $(".globalize-languages").data("languages-description").zero; - case 1: - return $(".globalize-languages").data("languages-description").one; - default: - return $(".globalize-languages").data("languages-description").other; - } + $(".js-languages-description").text(description); }, initialize: function() { $(".js-add-language").on("change", function() { diff --git a/app/assets/javascripts/i18n.js b/app/assets/javascripts/i18n.js new file mode 100644 index 000000000..c044aac4e --- /dev/null +++ b/app/assets/javascripts/i18n.js @@ -0,0 +1,18 @@ +(function() { + "use strict"; + App.I18n = { + pluralize: function(texts, count) { + return this.raw_text(texts, count).replace("%{count}", count); + }, + raw_text: function(texts, count) { + switch (count) { + case 0: + return texts.zero; + case 1: + return texts.one; + default: + return texts.other; + } + } + }; +}).call(this);