Added caching of translation table. Thanks to Roy!

This commit is contained in:
Martin Edenhofer 2013-08-06 16:17:30 +02:00
parent bd2310f88e
commit 0a38481287

View file

@ -2,10 +2,17 @@
class Translation < ApplicationModel
before_create :set_initial
after_create :cache_clear
after_update :cache_clear
after_destroy :cache_clear
def self.list(locale)
translations = Translation.where( :locale => locale )
# check cache
list = cache_get( locale )
if !list
list = []
translations = Translation.where( :locale => locale.downcase )
translations.each { |item|
data = [
item.id,
@ -15,6 +22,10 @@ class Translation < ApplicationModel
list.push data
}
# set cache
cache_set( locale, list )
end
timestamp_map_default = 'yyyy-mm-dd HH:MM'
timestamp_map = {
:de => 'dd.mm.yyyy HH:MM',
@ -47,4 +58,13 @@ class Translation < ApplicationModel
def set_initial
self.target_initial = self.target
end
def cache_clear
Cache.delete( 'Translation::' + self.locale.downcase )
end
def self.cache_set(locale, data)
Cache.write( 'Translation::' + locale.downcase, data )
end
def self.cache_get(locale)
Cache.get( 'Translation::' + locale.downcase )
end
end