#!/usr/bin/env ruby load 'languages.rb' # this file auto-generates loaders for hyphenation patterns - to be improved $package_name="hyph-utf8" $ctan_url = "http://mirror.ctan.org/language/hyph-utf8/tex/generic/hyph-utf8" # TODO - make this a bit less hard-coded $path_tex_generic="../../../tex/generic" language_default = Language.new({ "code" => "(default)", "name" => "english", "synonyms" => ["usenglish", "USenglish", "american"], "hyphenmin" => [2,3], "encoding" => "ascii", "type" => "dictionary", "authors" => [ "donald_knuth" ], "licence" => "", }) $l = Languages.new # add english to the list $l["default"] = language_default # TODO: should be singleton languages = $l.list.sort{|a,b| a.name <=> b.name} $a = Authors.new language_grouping = { 'english' => ['default', 'en-gb', 'en-us'], 'latin' => ['la', 'la-x-classic'], 'norwegian' => ['nb', 'nn'], 'german' => ['de-1901', 'de-1996','de-ch-1901'], 'mongolian' => ['mn-cyrl', 'mn-cyrl-x-lmc'], 'greek' => ['el-monoton', 'el-polyton'], 'ancientgreek' => ['grc', 'grc-x-ibycus'], 'chinese' => ['zh-latn-pinyin'], # TODO - until someone tells what to do #'serbian' => ['sr-latn', 'sr-cyrl'], 'serbian' => ['sh-latn', 'sh-cyrl'], } language_used_in_group = Hash.new language_grouping.each_value do |group| group.each do |code| language_used_in_group[code] = true end end space_leading = " " space_tr = " " # a hash with language name as key and array of languages as the value language_groups = Hash.new # single languages first languages.each do |language| # temporary remove cyrilic serbian until someone explains what is needed if language.code == 'sr-cyrl' then languages.delete(language) elsif language_used_in_group[language.code] == nil then language_groups[language.name] = [language] end end # then groups of languages language_grouping.each do |name,group| language_groups[name] = [] group.each do |code| language_groups[name].push($l[code]) end end language_groups.sort.each do |language_name,language_list| first_line_printed = false language_list.each do |language| if language != nil then puts "#{space_leading}