]> git.openstreetmap.org Git - rails.git/blobdiff - app/models/language.rb
Only fetch client side translations for the current locale
[rails.git] / app / models / language.rb
index 9c7ca4c0e83b2df9dce973f69d632b1bd7608064..67e98569bbf14315099efb4b79d40dc7ef32e2ad 100644 (file)
@@ -1,6 +1,36 @@
+# == Schema Information
+#
+# Table name: languages
+#
+#  code         :string           not null, primary key
+#  english_name :string           not null
+#  native_name  :string
+#
+
 class Language < ActiveRecord::Base
-  set_primary_key :language_code
-  
-  has_many :users, :foreign_key => 'locale'
-  has_many :diary_entries, :foreign_key => 'language'
+  self.primary_key = "code"
+
+  has_many :diary_entries, :foreign_key => "language"
+
+  def self.load(file)
+    Language.transaction do
+      YAML.safe_load(File.read(file)).each do |k, v|
+        begin
+          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
+
+  def name
+    name = english_name
+    name += " (#{native_name})" unless native_name.nil?
+    name
+  end
 end