class Jekyll::PotLocalizationPlugin
Attributes
site[R]
translations[R]
Public Instance Methods
add_translated_sites()
click to toggle source
# File lib/jekyll/gettext/plugin.rb, line 141 def add_translated_sites default_language = languages.first translated_pages = [] site.pages.reject! do |page| to_translate = page.data["translate"] if to_translate languages.each do |language| translated_pages << TranslatedPage.new(page, language, default_language) end end to_translate end site.pages.concat(translated_pages) end
generate(site)
click to toggle source
# File lib/jekyll/gettext/plugin.rb, line 101 def generate(site) @site = site site.pot_localization_plugin = self setup_translations add_translated_sites end
languages()
click to toggle source
# File lib/jekyll/gettext/plugin.rb, line 90 def languages unless site.config.include? "languages" site.config["languages"] = ["en"] end site.config["languages"] end
po_file(language)
click to toggle source
# File lib/jekyll/gettext/plugin.rb, line 97 def po_file(language) translations_folder + "/" + language + "/" + text_domain + ".po" end
pot_file()
click to toggle source
# File lib/jekyll/gettext/plugin.rb, line 86 def pot_file translations_folder + "/" + text_domain + ".pot" end
renew_translations()
click to toggle source
# File lib/jekyll/gettext/plugin.rb, line 124 def renew_translations languages.each do |language| repos = [ FastGettext::TranslationRepository.build(text_domain, :type=>:logger, :callback=>translations), FastGettext::TranslationRepository.build(text_domain, :path => translations_folder, :type => :po) ] FastGettext.add_text_domain(text_domain, :type=>:chain, :chain=>repos) end FastGettext.text_domain = text_domain end
save_translations(translations)
click to toggle source
# File lib/jekyll/gettext/plugin.rb, line 156 def save_translations(translations) if translations.empty? return end site.config["exclude"] ||= [] unless site.config["exclude"].include? pot_file site.config["exclude"] << pot_file end File.open(pot_file, 'w') do |file| file.write('msgid "" msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ' + languages.first + '\n" "X-Generator: ' + self.class.name + '\n" ') file.print(GetPomo::PoFile.to_text(translations)) end end
setup_translations()
click to toggle source
# File lib/jekyll/gettext/plugin.rb, line 108 def setup_translations @translations = TranslationLogger.new renew_translations Hooks.register(:site, :pre_render) do |_site, payload| renew_translations end Hooks.register(:site, :post_write) do |_site, payload| if _site == site and not translations.nil? save_translations translations.translations end end end
text_domain()
click to toggle source
# File lib/jekyll/gettext/plugin.rb, line 79 def text_domain unless site.config.include? "text_domain" site.config["text_domain"] = "website" end site.config["text_domain"] end
translations_folder()
click to toggle source
use the “translations_folder” tag from the _config.yml or default “_i18n”
# File lib/jekyll/gettext/plugin.rb, line 137 def translations_folder site.in_source_dir(site.config["translations_folder"] || "_i18n") end