]> git.openstreetmap.org Git - rails.git/commitdiff
Add relevant osm-community-index data into I18n
authorAdam Hoyle <atomoil@gmail.com>
Wed, 24 Nov 2021 22:22:32 +0000 (22:22 +0000)
committerAdam Hoyle <atomoil@gmail.com>
Wed, 24 Nov 2021 22:22:32 +0000 (22:22 +0000)
app/views/site/communities.html.erb
lib/osm_community_index/local_chapter.rb

index 5db0d45fd5ccc83b7545fbdb1b5f41052ee47c27..e238d73779fd5e03c163eddce88e6b4898013feb 100644 (file)
@@ -11,7 +11,7 @@
   <p><%= t ".local_chapters.list_text" %></p>
   <ul>
     <% @local_chapters.each do |chapter| %>
-      <li><a href="<%= chapter.url %>"><%= chapter.name %></a></li>
+      <li><a href="<%= chapter.url %>"><%= chapter.name %> / <%= t "osm_community_index.local_chapter." + chapter.id + ".name" %></a></li>
     <% end %>
   </ul>
   <h2><%= t ".other_groups.title" %></h2>
index fc87f64d2a8972cae7ae366dfd97acf09a82b8ee..3471d78b0ba1f475a21cd4db2ff4fa9f76296f05 100644 (file)
@@ -11,9 +11,43 @@ module OsmCommunityIndex
     end
 
     def self.local_chapters_with_locale(locale)
+      load_local_chapter_localisation
       @localised_chapters[locale] ||= load_local_chapters(locale)
     end
 
+    def self.load_local_chapter_localisation
+      community_index = OsmCommunityIndex.community_index
+      localisation_files = Dir.children(Rails.root.join("node_modules/osm-community-index/i18n/"))
+      localisation_files.each do |file|
+        locale = File.basename(file,".yaml")
+        # rails wants en-GB but osm-community-index has en_GB
+        locale_rails = locale.split("_").join("-")
+        full_path = Rails.root.join("node_modules/osm-community-index/i18n/#{file}")
+        locale_data = YAML.safe_load(File.read(full_path))[locale]
+
+        community_index["resources"].each do |id, resource|
+          resource.each do |key, value|
+            next unless key == "type" && value == "osm-lc" && id != "OSMF"
+
+            strings = locale_data[id] || {}
+            strings['name'] = locale_data['name'] || resource["strings"]["name"] || resource["strings"]["community"]
+
+            data = {}
+            data["osm_community_index"] = {}
+            data["osm_community_index"]["local_chapter"] = {}
+            data["osm_community_index"]["local_chapter"][id] = strings
+            # data["osm_community_index.local_chapter." + id] = localisation
+            I18n.backend.store_translations locale_rails, data
+
+            if locale == "en"
+              puts locale_rails + " " + id + " " + data.to_s
+            end
+          end
+        end
+      end
+
+    end
+
     def self.load_local_chapters(locale)
       community_index = OsmCommunityIndex.community_index
       localised_strings = OsmCommunityIndex.localised_strings(locale)