зеркало из
https://github.com/glebtv/telegram-bot.git
synced 2026-09-05 10:45:49 +03:00
Translation helper strips ! from action name for lazy translations
Этот коммит содержится в:
36
lib/telegram/bot/updates_controller/translation.rb
Обычный файл
36
lib/telegram/bot/updates_controller/translation.rb
Обычный файл
@@ -0,0 +1,36 @@
|
||||
module Telegram
|
||||
module Bot
|
||||
class UpdatesController
|
||||
# Provides helpers similar to AbstractController::Translation
|
||||
# but by default uses `action_name_i18n_key` in lazy translation keys
|
||||
# which strips `!` from action names by default. This makes translating
|
||||
# strings for commands more convenient.
|
||||
#
|
||||
# To disable this behaviour use `alias_method :action_name_i18n_key, :action_name`.
|
||||
module Translation
|
||||
# See toplevel description.
|
||||
def translate(key, options = {})
|
||||
if key.to_s.start_with?('.')
|
||||
path = controller_path.tr('/', '.')
|
||||
defaults = [:"#{path}#{key}"]
|
||||
defaults << options[:default] if options[:default]
|
||||
options[:default] = defaults.flatten
|
||||
key = "#{path}.#{action_name_i18n_key}#{key}"
|
||||
end
|
||||
I18n.translate(key, options)
|
||||
end
|
||||
alias :t :translate
|
||||
|
||||
# Strips trailing `!` from action_name.
|
||||
def action_name_i18n_key
|
||||
action_name.chomp('!')
|
||||
end
|
||||
|
||||
def localize(*args)
|
||||
I18n.localize(*args)
|
||||
end
|
||||
alias :l :localize
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Ссылка в новой задаче
Block a user