2023-10-08 00:16:37 +02:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2023-10-07 08:21:48 +02:00
|
|
|
module Mixin::T
|
2023-10-07 22:44:58 +02:00
|
|
|
extend Memoize
|
|
|
|
|
2023-10-07 15:09:53 +02:00
|
|
|
def t(locale, key, local_assigns = {})
|
|
|
|
str = [locale, *key.split(".")].inject(i18n) { _1[_2] }
|
|
|
|
format(str, local_assigns)
|
2023-10-07 08:21:48 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
def i18n
|
2024-03-15 18:51:06 +01:00
|
|
|
path = File.join(Dir.getwd, "src", "json", "i18n.json")
|
2023-10-07 22:44:58 +02:00
|
|
|
json = File.binread(path)
|
|
|
|
Ryo.from JSON.parse(json)
|
2023-10-07 08:21:48 +02:00
|
|
|
end
|
2023-10-07 22:44:58 +02:00
|
|
|
memoize :i18n
|
2023-10-07 08:21:48 +02:00
|
|
|
end
|