X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/3a599519eb49c2211bbb513fbbda65a05068b9e5..79c306ad06155549ff6e5929ff20a1149b4862c4:/app/models/language.rb?ds=sidebyside diff --git a/app/models/language.rb b/app/models/language.rb index 150341cc7..f1d40feea 100644 --- a/app/models/language.rb +++ b/app/models/language.rb @@ -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 + + def name + name = english_name + name += " (#{native_name})" unless native_name.nil? || native_name == english_name + name + end end