This repository has been archived on 2024-01-13. You can view files and clone it, but cannot push or open issues or pull requests.
privacytools.io/_plugins/translate-filter.rb
djoate 2a82bc59fa
Add support for translation notes
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".
2019-11-24 18:22:06 -05:00

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)