Class: Xforum::Language

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/xforum/language.rb

Class Method Summary collapse

Class Method Details

.add_language(params, user) ⇒ Object



29
30
31
32
33
# File 'app/models/xforum/language.rb', line 29

def self.add_language(params,user)
  if user.forum_admin?
     Language.create(code:params[:code],name:params[:name],local_name:params[:local])
  end
end

.get_language_locale(params) ⇒ Object



83
84
85
86
# File 'app/models/xforum/language.rb', line 83

def self.get_language_locale(params)
  params[:language].nil? ? id= Language.where(code:I18n.locale.to_s).pluck(:id)[0]  : id=Language.get_me(params)
  id.nil? ? Language.first.id : id
end

.get_me(params) ⇒ Object



87
88
89
90
91
92
# File 'app/models/xforum/language.rb', line 87

def self.get_me(params)
  return if params[:language].nil?
  params[:language] = params[:language][0] if params[:language].is_a?(Array)
  code=params[:language].split('-')[0].strip
  Language.where(code:code).pluck(:id)[0]
end

.get_suggestions(params, user) ⇒ Object



62
63
64
65
66
67
68
69
70
71
# File 'app/models/xforum/language.rb', line 62

def self.get_suggestions(params,user)
  if user.forum_admin?
    data= Language.where(suggestion:true).pluck(:name, :user_id, :id)
    data=ForumAssist.named_array(data, [:suggestion, :user,:id ]) unless data.empty?
    data=ForumAssist.add_user_name(data.clone) unless data.empty?
    {data:data,list:'forum-language-prososals-list'}
  else
    {reply:'nothing doing'}
  end
end

.init_language_setObject



94
95
96
97
98
99
100
101
102
103
# File 'app/models/xforum/language.rb', line 94

def self.init_language_set
  language_table = %w(af.Afrikaans.Afrikaans ar.Arabic.العربية be.Belarusian.беларускі bg.Bulgarian.български ca.Catalan.Català cs.Czech.čeština da.Danish.dansk de.German.dansk el.Greek.ελληνικά en.English.English es.Spanish.español et.Estonian.eesti eu.Basque.Euskal fa.Farsi.فارسی fi.Finnish.suomalainen fo.Faroese.føroyskt fr.French.français ga.Irish.Gaeilge gd.Gaelic.gaélico he.Hebrew.עברית hi.Hindi.हिंदी hr.Croatian.hrvatski hu.Hungarian.magyar id.Indonesian.Indonesia is.Icelandic.Icelandic it.Italian.italiano ja.Japanese.日本の ji.Yiddish.ייִדיש ko.Korean.한국의 lt.Lithuanian.Lietuvos lv.Latvian.Latvijas mk.Macedonian.македонски ms.Malaysian.Malaysia mt.Maltese.Malti nl.Dutch.Nederlands no.Norwegian.norsk pl.Polish.polski pt.Portuguese.português ro.Romanian.român ru.Russian.русский sk.Slovak.slovenský sl.Slovenian.slovenščina sq.Albanian.shqiptar sr.Serbian.српски sv.Swedish.Svenska th.Thai.ภาษาไทย tr.Turkish.Türk uk.Ukrainian.Український ur.Urdu.اردو vi.Vietnamese.Việt zh.Chinese.中國的 zu.Zulu.Zulu)
  language_table.each {|entry|
    language=ForumAssist.named_array(entry.split('.'),[:code,:language,:local])[0]
    Language.find_or_create_by(code:language[:code]) {|entry|
      entry.name=language[:language]
      entry.local_name=language[:local]
      entry.active=false
    } }
end

.languages(params) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'app/models/xforum/language.rb', line 35

def self.languages(params)
  if ENV['XFORUM_LANGUAGES'].nil?
    alist=[]
  elsif Language.first.nil?
    Language.init_language_set
    Language.load_env_set
  else
    Language.load_env_set
    params[:active] == 'true' ?
      alist=Language.where(active:true).order(:code).pluck(:id,:name,:code,:local_name,:active)  :
      alist=Language.where(active:false).order(:code).pluck(:id,:name,:code,:local_name,:active)
    unless alist.empty?
      alist=ForumAssist.named_array(alist,[:id,:item,:value,:local_name,:state])
      alist=Translation.translate_list(alist,'','language')
    end
    alist.unshift({value: I18n.t('xForum.select_language'),item: I18n.t('xForum.select_language') ,state:'open',id:0}) unless params[:short]
    {list_data:alist,id:params[:list]}
  end
end

.load_env_setObject



55
56
57
58
59
60
61
# File 'app/models/xforum/language.rb', line 55

def self.load_env_set
  set=ENV['XFORUM_LANGUAGES'].split(';')
  set.each {|code|
    Language.where(code:code).update_all(active:true)
  }

end

.suggestion(params, user) ⇒ Object

add new category or topic



73
74
75
76
# File 'app/models/xforum/language.rb', line 73

def self.suggestion(params,user)  #add new category or topic
  Language.create(suggestion:true,content:params[:suggestion],user_id:user.id,hold:true)
  {response:'nothing to do'}
end

.suggestion_close(params, user) ⇒ Object



78
79
80
81
82
# File 'app/models/xforum/language.rb', line 78

def self.suggestion_close(params,user)
  params[:result]=='Accept' ?
      (Language.where(id: params[:id]).update_all(suggestion: false) if user.forum_admin?) :
      Language.where(id: params[:id]).update_all(state: 'closed') if user.forum_admin?
end

.toggle_language(params, user) ⇒ Object

this has to be an all new language



23
24
25
26
27
# File 'app/models/xforum/language.rb', line 23

def self.toggle_language(params,user)  #this has to be an all new  language
  state= Language.where(name:params[:language]).pluck(:active)[0]
  Language.where(name:params[:language]).update_all(active:!state) if user.forum_admin?
  {action:'nothing to do'}
end