#707: messages for responses

This commit is contained in:
amartynov 2015-09-22 12:19:15 +03:00
parent ddb79f82e9
commit c98b418552
4 changed files with 61 additions and 17 deletions

View File

@ -0,0 +1,52 @@
require 'yaml'
module Devops
class Messages
@@messages = {}
class << self
def init
lang = lang_key
file = File.expand_path("../../messages/#{lang}.yml", __FILE__)
merge(file)
rescue => e
puts "Can not load messages from '#{file}'"
exit -6
end
def merge file
lang = lang_key
messages = read_file(file)[lang]
raise "It is undefined main key '#{lang}' in file '#{file}'" if messages.nil?
@@messages.merge!(messages)
end
def translate key, params={}
msg = @@messages
key.split(".").each do |msgk|
msg = msg[key]
raise "Invalid message key '#{key}'" if msg.nil?
end
raise "Invalid message value with key '#{key}', it must be a string" unless msg.is_a?(String)
unless msg.nil?
params.each do |k, v|
msg = msg.gsub('%{#{k}}', v)
end
end
msg
end
alias_method :t, :translate
private
def read_file file_path
YAML.load_file(file_path)
end
def lang_key
DevopsConfig.config["messages.lang"] || "en"
end
end
end
end

View File

@ -1,24 +1,11 @@
require "wisper"
require "lib/hash_ext"
=begin
require "db/exceptions/invalid_record"
require "db/exceptions/record_not_found"
require "exceptions/dependency_error"
require "db/validators/all"
require "providers/provider_factory"
require "fog"
require_relative "routes/v2.0"
require "hooks"
=end
require_relative "devops-loader"
require_relative "devops-application"
require_relative "devops-db"
require_relative "devops-logger"
require_relative "devops-messages"
require "lib/knife/knife_factory"
@ -26,8 +13,6 @@ require_relative "../sinatra/methods_with_headers"
require_relative "../applications"
require_relative "devops-routes"
#root = File.expand_path("../", __FILE__)
#$:.push root
class DevopsService
@ -50,6 +35,7 @@ class DevopsService
config = DevopsConfig.config
Devops::Routes.preffix = config[:url_prefix]
Devops::Messages.init
apps = Devops::Application.applications
apps.each do |a|

View File

@ -8,7 +8,7 @@ module Validators
end
def message
"These users are missing in mongo: '#{@nonexistent_users.join("', '")}'."
Devops::Messages.t("project.deploy_env.validation.users.not_exist", users: @nonexistent_users.join("', '"))
end
end
end

View File

@ -0,0 +1,6 @@
en:
project:
deploy_env:
validation:
users:
not_exist: "These users are missing in mongo: '%{users}'"