Add i18n-tasks with adapted config from CodeHarbor

This commit is contained in:
Sebastian Serth
2024-04-14 00:52:28 +02:00
committed by Sebastian Serth
parent 09fe592714
commit f6041af4c3
7 changed files with 275 additions and 1 deletions

View File

@ -0,0 +1,23 @@
# frozen_string_literal: true
require 'i18n/tasks/scanners/file_scanner'
module I18nTasks
class JsErbLocaleMatcher < I18n::Tasks::Scanners::FileScanner
include I18n::Tasks::Scanners::RelativeKeys
include I18n::Tasks::Scanners::OccurrenceFromPosition
# @return [Array<[absolute key, Results::Occurrence]>]
def scan_file(path)
text = read_file(path)
text.scan(/I18n.t\(['"]([\.\w]*)["'].*\)/).map do |match|
occurrence = occurrence_from_position(
path, text, Regexp.last_match.offset(0).first
)
[match.first, occurrence]
end
end
end
end
I18n::Tasks.add_scanner 'I18nTasks::JsErbLocaleMatcher', only: %w[*.js.erb]