]> git.openstreetmap.org Git - rails.git/blobdiff - app/models/language.rb
Merge remote-tracking branch 'upstream/pull/5139'
[rails.git] / app / models / language.rb
index 150341cc70f50fe2e5f8398bd25cb53ba6d5f64d..f1d40feeab109fc341c9aae48fa1ea184e63d494 100644 (file)
@@ -1,14 +1,32 @@
-class Language < ActiveRecord::Base
-  set_primary_key :code
+# == Schema Information
+#
+# Table name: languages
+#
+#  code         :string           not null, primary key
+#  english_name :string           not null
+#  native_name  :string
+#
 
 
-  has_many :users, :foreign_key => 'locale'
-  has_many :diary_entries, :foreign_key => 'language'
-  
-  def self.generate(code, name, translation_available)
-    Language.create do |l|
-      l.code = code
-      l.name = name
-      l.translation_available = translation_available
+class Language < ApplicationRecord
+  has_many :diary_entries, :foreign_key => "language", :inverse_of => :language
+
+  def self.load(file)
+    Language.transaction do
+      YAML.safe_load_file(file).each do |k, v|
+        Language.update(k, :english_name => v["english"], :native_name => v["native"])
+      rescue ActiveRecord::RecordNotFound
+        Language.create do |l|
+          l.code = k
+          l.english_name = v["english"]
+          l.native_name = v["native"]
+        end
+      end
     end
   end
     end
   end
+
+  def name
+    name = english_name
+    name += " (#{native_name})" unless native_name.nil? || native_name == english_name
+    name
+  end
 end
 end