37 lines
960 B
Ruby
37 lines
960 B
Ruby
module Jekyll
|
|
module TranslateFilter
|
|
def translate_text(input)
|
|
if input.nil? or input.empty?
|
|
input
|
|
else
|
|
text = input.strip
|
|
weblate_id = Weblate::ID.get(input)
|
|
page_language = @context.environments.first["page"]["language"]
|
|
site = @context.registers[:site]
|
|
|
|
if page_language.nil?
|
|
Weblate::SourceFile.add_entry(weblate_id, text)
|
|
|
|
text
|
|
else
|
|
translated_string = site.data["languages"][page_language][weblate_id]
|
|
|
|
translated_string.nil? ? text : translated_string.strip
|
|
end
|
|
end
|
|
end
|
|
|
|
def translate_page(page)
|
|
page_language = @context.environments.first["page"]["language"]
|
|
site = @context.registers[:site]
|
|
if page_language.nil?
|
|
page
|
|
else
|
|
"/#{page_language}#{page}"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
Liquid::Template.register_filter(Jekyll::TranslateFilter)
|