]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/application.js
Replace use of I18n in javascript with OSM.i18n
[rails.git] / app / assets / javascripts / application.js
index e07830d4ea7c7a010ffe5426732298997c5249aa..5c61b01ccfa6687587df15883533734f62530859 100644 (file)
 //= require leaflet.zoom
 //= require leaflet.locationfilter
 //= require i18n
+//= require make-plural/cardinals
 //= require matomo
 //= require richtext
 
 {
   const application_data = $("head").data();
+  const locale = application_data.locale;
 
-  I18n.default_locale = OSM.DEFAULT_LOCALE;
-  I18n.locale = application_data.locale;
-  I18n.fallbacks = true;
+  OSM.i18n = I18n;
+
+  OSM.i18n.default_locale = OSM.DEFAULT_LOCALE;
+  OSM.i18n.locale = locale;
+
+  // '-' are replaced with '_' in https://github.com/eemeli/make-plural/tree/main/packages/plurals
+  const pluralizer = plurals[locale.replace(/\W+/g, "_")] || plurals[locale.split("-")[0]];
+  if (pluralizer) {
+    OSM.i18n.pluralization[locale] = (count) => [pluralizer(count), "other"];
+  }
 
   OSM.preferred_editor = application_data.preferredEditor;
   OSM.preferred_languages = application_data.preferredLanguages;
@@ -190,5 +199,5 @@ $(function () {
   });
 
   $("#edit_tab")
-    .attr("title", I18n.t("javascripts.site.edit_disabled_tooltip"));
+    .attr("title", OSM.i18n.t("javascripts.site.edit_disabled_tooltip"));
 });