def l(symbol, *arguments)
language = CONFIG[:default_language]
symbol = symbol.to_sym if symbol.is_a? String
return symbol.to_s if symbol.is_a? LString
if symbol.is_a? Array
raise ArgumentError.new("Cannot translate an empty array") if symbol.empty?
raise ArgumentError.new("Symbol is an array, arguments must be empty") unless arguments.empty?
arguments = symbol
symbol = arguments.shift
end
begin
translation = (LOCALIZED_STRINGS[language][symbol] or
LOCALIZED_STRINGS['en'][symbol] or
symbol.to_s)
rescue
translation = symbol.to_s
end
begin
return translation % arguments
rescue => e
raise ArgumentError.new("Translation value #{translation.inspect} " +
"with arguments #{arguments.inspect} caused error '#{e.message}'")
end
end