2013-06-12 15:59:58 +00:00
|
|
|
# Copyright (C) 2012-2013 Zammad Foundation, http://zammad-foundation.org/
|
|
|
|
|
2012-09-20 12:08:02 +00:00
|
|
|
class Translation < ApplicationModel
|
2012-05-18 14:24:00 +00:00
|
|
|
before_create :set_initial
|
|
|
|
|
2013-08-06 08:18:50 +00:00
|
|
|
def self.list(locale)
|
|
|
|
translations = Translation.where( :locale => locale )
|
|
|
|
list = []
|
|
|
|
translations.each { |item|
|
|
|
|
data = [
|
|
|
|
item.id,
|
|
|
|
item.source,
|
|
|
|
item.target,
|
|
|
|
]
|
|
|
|
list.push data
|
|
|
|
}
|
|
|
|
|
|
|
|
timestamp_map_default = 'yyyy-mm-dd HH:MM'
|
|
|
|
timestamp_map = {
|
|
|
|
:de => 'dd.mm.yyyy HH:MM',
|
|
|
|
}
|
|
|
|
timestamp = timestamp_map[ locale.to_sym ] || timestamp_map_default
|
|
|
|
return {
|
|
|
|
:list => list,
|
|
|
|
:timestampFormat => timestamp,
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
2013-01-04 13:14:20 +00:00
|
|
|
def self.translate(locale, string)
|
|
|
|
|
|
|
|
# translate string
|
2013-01-04 14:28:55 +00:00
|
|
|
records = Translation.where( :locale => locale, :source => string )
|
|
|
|
records.each {|record|
|
|
|
|
return record.target if record.source == string
|
|
|
|
}
|
2013-01-04 13:14:20 +00:00
|
|
|
|
|
|
|
# fallback lookup in en
|
2013-01-04 14:28:55 +00:00
|
|
|
records = Translation.where( :locale => 'en', :source => string )
|
|
|
|
records.each {|record|
|
|
|
|
return record.target if record.source == string
|
|
|
|
}
|
2013-01-04 13:14:20 +00:00
|
|
|
|
|
|
|
return string
|
|
|
|
end
|
|
|
|
|
2012-05-18 14:24:00 +00:00
|
|
|
private
|
2013-06-12 15:59:58 +00:00
|
|
|
def set_initial
|
|
|
|
self.target_initial = self.target
|
|
|
|
end
|
2012-05-18 14:24:00 +00:00
|
|
|
end
|