
To add a translation note, use it as a filter. For example, consider {% Free %} If we want to say that this means free as in no monetary value, wrap it around in {{ }} and apply the tl_note filter: {% {{ "Free" | tl_note: Free as in no monetary value }} %} The tl_note parameter will be ignored when this Liquid filter is parsed, but the entirety will be used as the keyed string. Just make sure that translators don't remove the quotes around "Free".
49 lines
1.1 KiB
Ruby
49 lines
1.1 KiB
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"]
|
|
if page_language.nil?
|
|
page
|
|
else
|
|
"/#{page_language}#{page}"
|
|
end
|
|
end
|
|
|
|
def append_lang(page)
|
|
page_language = @context.environments.first["page"]["language"]
|
|
if page_language.nil?
|
|
page
|
|
else
|
|
"#{page}/#{page_language}"
|
|
end
|
|
end
|
|
|
|
def tl_note(text, comment)
|
|
text
|
|
end
|
|
end
|
|
end
|
|
|
|
Liquid::Template.register_filter(Jekyll::TranslateFilter)
|