20 lines
514 B
Crystal
20 lines
514 B
Crystal
def load_locale(name)
|
|
return JSON.parse(File.read("locales/#{name}.json")).as_h
|
|
end
|
|
|
|
def translate(locale : Hash(String, JSON::Any) | Nil, translation : String, text : String | Nil = nil)
|
|
# if locale && !locale[translation]?
|
|
# puts "Could not find translation for #{translation.dump}"
|
|
# end
|
|
|
|
if locale && locale[translation]? && !locale[translation].as_s.empty?
|
|
translation = locale[translation].as_s
|
|
end
|
|
|
|
if text
|
|
translation = translation.gsub("`x`", text)
|
|
end
|
|
|
|
return translation
|
|
end
|