diff options
| author | Ralph Amissah <ralph@amissah.com> | 2011-05-04 22:19:42 -0400 | 
|---|---|---|
| committer | Ralph Amissah <ralph@amissah.com> | 2011-05-04 22:41:19 -0400 | 
| commit | 46eebe8bbf6c0102c2f921f65778a99121c91ff2 (patch) | |
| tree | ffd8084f66aa9a7c57eaf24d336ba0501ab9c41f | |
| parent | v3: concordance, output path, screen info correction (diff) | |
v3: options, language setting, based on directory structure or filename
* affects multiple libraries
| -rw-r--r-- | data/doc/sisu/CHANGELOG_v3 | 8 | ||||
| -rw-r--r-- | lib/sisu/v3/dal_doc_str.rb | 2 | ||||
| -rw-r--r-- | lib/sisu/v3/dal_metadata.rb | 2 | ||||
| -rw-r--r-- | lib/sisu/v3/db_columns.rb | 7 | ||||
| -rw-r--r-- | lib/sisu/v3/db_import.rb | 3 | ||||
| -rw-r--r-- | lib/sisu/v3/db_indexes.rb | 1 | ||||
| -rw-r--r-- | lib/sisu/v3/db_remove.rb | 4 | ||||
| -rw-r--r-- | lib/sisu/v3/db_select.rb | 10 | ||||
| -rw-r--r-- | lib/sisu/v3/digests.rb | 2 | ||||
| -rw-r--r-- | lib/sisu/v3/git.rb | 2 | ||||
| -rw-r--r-- | lib/sisu/v3/hub.rb | 1 | ||||
| -rw-r--r-- | lib/sisu/v3/manifest.rb | 4 | ||||
| -rw-r--r-- | lib/sisu/v3/options.rb | 23 | ||||
| -rw-r--r-- | lib/sisu/v3/param.rb | 23 | ||||
| -rw-r--r-- | lib/sisu/v3/shared_metadata.rb | 4 | ||||
| -rw-r--r-- | lib/sisu/v3/sitemaps.rb | 2 | ||||
| -rw-r--r-- | lib/sisu/v3/sst_do_inline_footnotes.rb | 2 | ||||
| -rw-r--r-- | lib/sisu/v3/sysenv.rb | 141 | ||||
| -rw-r--r-- | lib/sisu/v3/urls.rb | 3 | 
19 files changed, 147 insertions, 97 deletions
| diff --git a/data/doc/sisu/CHANGELOG_v3 b/data/doc/sisu/CHANGELOG_v3 index 36c0c28e..91f8b5c6 100644 --- a/data/doc/sisu/CHANGELOG_v3 +++ b/data/doc/sisu/CHANGELOG_v3 @@ -35,6 +35,10 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_3.0.8.orig.tar.gz        * *-cterm-ruby & *-cterm-sisu colors adjusted where other color groupings are          preferred for programming / sisu markup +  * options, language setting, based on directory structure or filename +    * sysenv, language setting from options +    * affects multiple libraries +    * sysenv, lowriter (instead of libreoffice)    * manpage, reinstate escape of hyphens (clearly preferred, else lintian @@ -66,10 +70,10 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_3.0.8.orig.tar.gz        and develop for that      or some meaningful combination of any of the above. -  * vim colors colorscheme sparse-* frugal-* Slate minor changes -    * concordance, output path, screen info correction +  * vim colors colorscheme sparse-* frugal-* Slate minor changes +  %% 3.0.7.orig.tar.gz (2011-04-20:16/3)  http://git.sisudoc.org/?p=code/sisu.git;a=log;h=refs/tags/debian/3.0.7-1  http://www.jus.uio.no/sisu/pkg/src/sisu_3.0.7.orig.tar.gz diff --git a/lib/sisu/v3/dal_doc_str.rb b/lib/sisu/v3/dal_doc_str.rb index 61348d28..063ddd82 100644 --- a/lib/sisu/v3/dal_doc_str.rb +++ b/lib/sisu/v3/dal_doc_str.rb @@ -482,7 +482,7 @@ module SiSU_document_structure_extract        meta=[]        dir=SiSU_Env::Info_env.new(@md.fns)        base_html="#{dir.url.root}/#{@md.fnb}" -      l=SiSU_Env::Standardise_language.new.file_to_language(@md.fns) +      l=SiSU_Env::Standardise_language.new(@md.opt.lng).language        language=l[:l]        tr=SiSU_Translate::Source.new(@md,language)        meta << @pb diff --git a/lib/sisu/v3/dal_metadata.rb b/lib/sisu/v3/dal_metadata.rb index 31a7e4b2..56ef662c 100644 --- a/lib/sisu/v3/dal_metadata.rb +++ b/lib/sisu/v3/dal_metadata.rb @@ -60,7 +60,7 @@ module SiSU_metadata    class Metadata      def initialize(md,metad)        @md,@metadata=md,metad -      l=SiSU_Env::Standardise_language.new.file_to_language(md.fns) +      l=SiSU_Env::Standardise_language.new(@md.opt.lng).language        language=l[:l]        @tr=SiSU_Translate::Source.new(md,language)      end diff --git a/lib/sisu/v3/db_columns.rb b/lib/sisu/v3/db_columns.rb index 8b669b12..8b8a0b3c 100644 --- a/lib/sisu/v3/db_columns.rb +++ b/lib/sisu/v3/db_columns.rb @@ -621,9 +621,10 @@ module SiSU_DB_columns             IS 'metadata document language';}          end          def tuple -          t=if defined? @md.language.document_char \ -          and @md.language.document_char=~/\S+/ -            txt=@md.language.document_char +          #modify check, is now required, SiSUv3d_ +          t=if defined? @md.opt.lng \ +          and @md.opt.lng=~/\S+/ +            txt=@md.opt.lng              special_character_escape(txt)              ["#{name}, ","'#{txt}', "]            else ['',''] diff --git a/lib/sisu/v3/db_import.rb b/lib/sisu/v3/db_import.rb index f1e7f064..45bb37f3 100644 --- a/lib/sisu/v3/db_import.rb +++ b/lib/sisu/v3/db_import.rb @@ -120,7 +120,8 @@ module SiSU_DB_import        @dal_array=SiSU_DAL::Source.new(@opt).get            # dal file drawn here        SiSU_Screen::Ansi.new(@opt.cmd,"#{@db.psql.db}::#{@opt.fns}").puts_blue if @opt.cmd =~/vVM/        SiSU_Screen::Ansi.new(@opt.cmd,'Marshal Load',@fnc).puts_grey if @opt.cmd =~/v/ -      select_first_match=%{ SELECT metadata_and_text.tid FROM metadata_and_text WHERE metadata_and_text.src_filename = '#{@opt.fns}'; } +#% +      select_first_match=%{ SELECT metadata_and_text.tid FROM metadata_and_text WHERE metadata_and_text.src_filename = '#{@opt.fns}' AND metadata_and_text.language_document_char = '#{@opt.lng}'; }        file_exist=@sql_type=~/sqlite/ \        ? @conn.get_first_value(select_first_match) \        : @conn.select_one(select_first_match) diff --git a/lib/sisu/v3/db_indexes.rb b/lib/sisu/v3/db_indexes.rb index de20e4c4..64a51474 100644 --- a/lib/sisu/v3/db_indexes.rb +++ b/lib/sisu/v3/db_indexes.rb @@ -93,6 +93,7 @@ module SiSU_DB_index            %{CREATE INDEX idx_title ON metadata_and_text(title);},            %{CREATE INDEX idx_author ON metadata_and_text(creator_author);},            %{CREATE INDEX idx_filename ON metadata_and_text(src_filename);}, +          %{CREATE INDEX idx_language ON metadata_and_text(language_document_char);},            %{CREATE INDEX idx_topics ON metadata_and_text(classify_topic_register)},          ]          conn_execute_array(sql_arr) diff --git a/lib/sisu/v3/db_remove.rb b/lib/sisu/v3/db_remove.rb index 025514b1..7644ad52 100644 --- a/lib/sisu/v3/db_remove.rb +++ b/lib/sisu/v3/db_remove.rb @@ -72,9 +72,9 @@ module SiSU_DB_remove          : false        end        del_id=if driver_sqlite3 -        @conn.get_first_value(%{ SELECT tid FROM metadata_and_text WHERE src_filename = '#{@opt.fns}'; }).to_i +        @conn.get_first_value(%{ SELECT tid FROM metadata_and_text WHERE src_filename = '#{@opt.fns}' AND metadata_and_text.language_document_char = '#{@opt.lng}'; }).to_i        else -        x=@conn.select_one(%{ SELECT metadata_and_text.tid FROM metadata_and_text WHERE metadata_and_text.src_filename = '#{@opt.fns}'; }) +        x=@conn.select_one(%{ SELECT metadata_and_text.tid FROM metadata_and_text WHERE metadata_and_text.src_filename = '#{@opt.fns}' AND metadata_and_text.language_document_char = '#{@opt.lng}'; })          x ? (x.join.to_i) : nil        end        if del_id diff --git a/lib/sisu/v3/db_select.rb b/lib/sisu/v3/db_select.rb index 9bf8acbc..0cd34bcd 100644 --- a/lib/sisu/v3/db_select.rb +++ b/lib/sisu/v3/db_select.rb @@ -164,7 +164,7 @@ module SiSU_DB_select            db_exist?            @sdb_import.marshal_load            tell=case @sql_type -          when /sqlite/; SiSU_Screen::Ansi.new(@opt.cmd,"sqlite #{@db.sqlite.db} database?") +          when /sqlite/; SiSU_Screen::Ansi.new(@opt.cmd,"sqlite3 #{@db.sqlite.db} database?")            when /pg/;     SiSU_Screen::Ansi.new(@opt.cmd,"pgaccess or psql #{@db.psql.db} database?")            else '???'            end @@ -173,7 +173,13 @@ module SiSU_DB_select            db_exist?            @sdb_remove_doc.remove            @sdb_import.marshal_load -          SiSU_Screen::Ansi.new(@opt.cmd,"pgaccess or psql #{@db.psql.db} database?").puts_grey if @opt.cmd =~/v/ +          tell=case @sql_type +          when /sqlite/; SiSU_Screen::Ansi.new(@opt.cmd,"sqlite3 #{@db.sqlite.db} database?") +          when /pg/;     SiSU_Screen::Ansi.new(@opt.cmd,"pgaccess or psql #{@db.psql.db} database?") +          else '???' +          end +          tell.puts_grey if @opt.cmd =~/v/ +        when /^--update$/          when /^--remove$/            db_exist?            @sdb_remove_doc.remove diff --git a/lib/sisu/v3/digests.rb b/lib/sisu/v3/digests.rb index e11ac945..0e6852b2 100644 --- a/lib/sisu/v3/digests.rb +++ b/lib/sisu/v3/digests.rb @@ -101,7 +101,7 @@ module SiSU_Digest_view          @@dg ||=@env.digest.type          @@dl ||=@env.digest.length          @dg,@dl=@@dg,@@dl -        l=SiSU_Env::Standardise_language.new.file_to_language(@md.fns) +        l=SiSU_Env::Standardise_language.new(@md.opt.lng).language          @language=l[:l]          @tr=SiSU_Translate::Source.new(@md,@language)          @sp=' ' diff --git a/lib/sisu/v3/git.rb b/lib/sisu/v3/git.rb index 9d1d9332..bef93bc3 100644 --- a/lib/sisu/v3/git.rb +++ b/lib/sisu/v3/git.rb @@ -67,7 +67,7 @@ module SiSU_Git        @env=SiSU_Env::Info_env.new        @md=SiSU_Param::Parameters.new(@opt).get        @file=SiSU_Env::SiSU_file.new(@md) -      l=SiSU_Env::Standardise_language.new.file_to_language(@opt.fns) +      l=SiSU_Env::Standardise_language.new(@md.opt.lng).language        unless @md.i18n[0]==l[:c]          p "using: #{@md.i18n[0]} (@make: :language:); filename #{@md.fns} filename language: #{l[:c]}, mismatch"        end diff --git a/lib/sisu/v3/hub.rb b/lib/sisu/v3/hub.rb index e20b4293..ed3aad1d 100644 --- a/lib/sisu/v3/hub.rb +++ b/lib/sisu/v3/hub.rb @@ -105,6 +105,7 @@ module SiSU              @opt.fns=fns              @opt.pth=@opt.paths[i]              @opt.f_pth=@opt.f_pths[i] +            @opt.lng=@opt.lngs[i]              @@pwd=@opt.pth              Dir.chdir(@opt.pth) #watch              env=SiSU_Env::Info_env.new(fns) diff --git a/lib/sisu/v3/manifest.rb b/lib/sisu/v3/manifest.rb index 38dc994c..98ccddb4 100644 --- a/lib/sisu/v3/manifest.rb +++ b/lib/sisu/v3/manifest.rb @@ -72,7 +72,7 @@ module SiSU_Manifest      def initialize(opt)        @opt=opt        @particulars=SiSU_Particulars::Combined_singleton.instance.get_all(opt) -      l=SiSU_Env::Standardise_language.new.file_to_language(@opt.fns) +      l=SiSU_Env::Standardise_language.new(@opt.lng).language        @doc_language=l[:l]      end      def read @@ -108,7 +108,7 @@ module SiSU_Manifest          @base_path=@md.file.output_path.manifest          @@dg ||=SiSU_Env::Info_env.new.digest.type          @dg=@@dg -        l=SiSU_Env::Standardise_language.new.file_to_language(@md.fns) +        l=SiSU_Env::Standardise_language.new(@md.opt.lng).language          @language=l[:l]          @translate=SiSU_Translate::Source.new(@md,@language)          @brace_url=SiSU_Viz::Skin.new.url_decoration diff --git a/lib/sisu/v3/options.rb b/lib/sisu/v3/options.rb index a1a448e6..110ebd85 100644 --- a/lib/sisu/v3/options.rb +++ b/lib/sisu/v3/options.rb @@ -61,10 +61,10 @@ module SiSU_commandline    require "pathname"    require_relative 'sysenv'                             # sysenv.rb    class Options -    attr_accessor :cmd,:mod,:act,:f_pths,:files,:paths,:f_pth,:pth,:fns,:fnb,:fnc,:fncb,:lng,:what +    attr_accessor :cmd,:mod,:act,:f_pths,:files,:paths,:lngs,:f_pth,:pth,:fns,:fnb,:fnc,:fncb,:lng,:what      def initialize(a)        @a=a -      @cmd,@f_pth,@pth,@fns,@fnb,@fnc,@fncb,@what='','','','','','','','','' +      @cmd,@f_pth,@pth,@fns,@fnb,@fnc,@fncb,@what,@lng='','','','','','','','','',''        @f_pths,@files,@paths,@mod,@act=Array.new(5){[]}        @env=SiSU_Env::Info_env.new        r=Px[:lng_lst].join('|') @@ -109,6 +109,7 @@ module SiSU_commandline        @paths = q[:paths]        @files = q[:files]        @f_pths = q[:f_pths] +      @lngs = q[:lngs]        if @files.length > 0 \        and @cmd.empty? \        and @mod.length==0 #% if no other action called on filename given, default is sisu -0 [filename(s)] configured as flag default @@ -122,7 +123,7 @@ module SiSU_commandline      end      def set_files_and_paths_and_general_extract(s)        c,w='','' -      m,f,pth,z,lng=[],[],[],[],[] +      m,f,pth,z,lng,lngs=[],[],[],[],[],[]        a=s.split(/\s+/)        a.each do |x|          if x =~/^-[a-z0-5]+/i \ @@ -138,12 +139,20 @@ module SiSU_commandline              pt=Pathname.new(x)              pth << pt.split[0].realpath.to_s     #remove?              f << pt.split[1].to_s                #remove? -            u=/.+?\/([^\/]+)(?:(?:\/(?:en|fr|es)$)|$)/ -            t=/.+\/(en|fr|es)/ -            lng << (pt.split[0].realpath.to_s[t,1]) \ +            r=Px[:lng_lst].join('|') +            u=/.+?\/([^\/]+)(?:\/(?:#{r})$|$)/ +            t=/.+\/(#{r})$/ +            l_p = (pt.split[0].realpath.to_s[t,1]) \                ? pt.split[0].realpath.to_s[t,1] \                : nil                #: '' +            lng << l_p +            lngs << if l_p +              l_p +            elsif x =~/~(#{r})\.ss[tm]/ +              $1 +            else 'en' +            end              f_pths << {                pth: pt.split[0].realpath.to_s,                f: pt.split[1].to_s, @@ -163,7 +172,7 @@ module SiSU_commandline            puts "#{x} in #{a.join(' ')}?"          end        end -      { cmd: c, mod: m, what: w, paths: pth, files: f, f_pths: f_pths, lng: lng } +      { cmd: c, mod: m, what: w, paths: pth, files: f, f_pths: f_pths, lng: lng, lngs: lngs }      end      def expand_numeric_shortcuts(a)        shortcut=SiSU_Env::Info_processing_flag.new diff --git a/lib/sisu/v3/param.rb b/lib/sisu/v3/param.rb index 8aa543db..357bc725 100644 --- a/lib/sisu/v3/param.rb +++ b/lib/sisu/v3/param.rb @@ -272,7 +272,7 @@ module SiSU_Param            l,n=Db[:col_language],'title.language'            validate_length(s,l,n)          end -        def language_char +        def language_char # look into, this must be set, from 1 directory stub (.fi), 2 filename (~fi), [3 (not used) document header (@title:\n  :language_char: fi)]            s=@h['language_char']            l,n=Db[:col_language_char],'title.language_char'            validate_length(s,l,n) @@ -1232,7 +1232,7 @@ module SiSU_Param            end          end          @publisher ||= "#@@publisher (this copy)" -        fn_set_lang=SiSU_Env::Standardise_language.new.file_to_language(@fns) +        fn_set_lang=SiSU_Env::Standardise_language.new(@opt.lng).language          unless @language[:code] \          and @language[:name]            lang=@env.i18n.language #default language settings for directory by name, or in sysrc.yml @@ -1244,15 +1244,16 @@ module SiSU_Param            @language[:name]=fn_set_lang[:l]          end          @fnl=@env.i18n.lang_filename(fn_set_lang[:c]) -        @flv.each do |l| -          lang=SiSU_Env::Standardise_language.new.file_to_language(l) -          c={ a: '', b: '', c: '' } -          if @fnl[:pre] =~/\S/;     c[:a]="#{lang[:c]}." -          elsif @fnl[:mid] =~/\S/;  c[:b]=".#{lang[:c]}" -          elsif @fnl[:post] =~/\S/; c[:c]=".#{lang[:c]}" -          end -          @lang << [lang[:l],"#{c[:a]}sisu_manifest#{c[:b]}.html#{c[:c]}"] -        end if @flv +#fix +#       @flv.each do |l| +#         lang=SiSU_Env::Standardise_language.new.file_to_language(l) +#         c={ a: '', b: '', c: '' } +#         if @fnl[:pre] =~/\S/;     c[:a]="#{lang[:c]}." +#         elsif @fnl[:mid] =~/\S/;  c[:b]=".#{lang[:c]}" +#         elsif @fnl[:post] =~/\S/; c[:c]=".#{lang[:c]}" +#         end +#         @lang << [lang[:l],"#{c[:a]}sisu_manifest#{c[:b]}.html#{c[:c]}"] +#       end if @flv          @lang.uniq!          @fn=SiSU_Env::Env_call.new(@fns).lang(fn_set_lang[:c])          @identifier="#{@env.url.root}/#{@fnb}/#{@fn[:toc]}" #DC note constructed dc identifier diff --git a/lib/sisu/v3/shared_metadata.rb b/lib/sisu/v3/shared_metadata.rb index 167af5c4..25ca19f1 100644 --- a/lib/sisu/v3/shared_metadata.rb +++ b/lib/sisu/v3/shared_metadata.rb @@ -67,7 +67,7 @@ module Metadata        meta,tag=[],[]        dir=SiSU_Env::Info_env.new(@md.fns)        base_html="#{dir.url.root}/#{@md.fnb}" -      l=SiSU_Env::Standardise_language.new.file_to_language(@md.fns) +      l=SiSU_Env::Standardise_language.new(@md.opt.lng).language        language=l[:l]        tr=SiSU_Translate::Source.new(@md,language)        @attrib='md' @@ -997,7 +997,7 @@ WOK        meta=[]        dir=SiSU_Env::Info_env.new(@md.fns)        base_html="#{dir.url.root}/#{@md.fnb}" -      l=SiSU_Env::Standardise_language.new.file_to_language(@md.fns) +      l=SiSU_Env::Standardise_language.new(@md.opt.lng).language        language=l[:l]        tr=SiSU_Translate::Source.new(@md,language)        tag="Document Manifest @" diff --git a/lib/sisu/v3/sitemaps.rb b/lib/sisu/v3/sitemaps.rb index 2241b5e6..c306ee99 100644 --- a/lib/sisu/v3/sitemaps.rb +++ b/lib/sisu/v3/sitemaps.rb @@ -75,7 +75,7 @@ module SiSU_Sitemaps      def songsheet        begin          @sys=SiSU_Env::System_call.new -        fn_set_lang=SiSU_Env::Standardise_language.new.file_to_language(@opt.fns) +        fn_set_lang=SiSU_Env::Standardise_language.new(@opt.lng).language          @fn=SiSU_Env::Env_call.new(@opt.fns).lang(fn_set_lang[:c])          if @opt.cmd =~/Y/            @md=SiSU_Param::Parameters.new(@opt).get diff --git a/lib/sisu/v3/sst_do_inline_footnotes.rb b/lib/sisu/v3/sst_do_inline_footnotes.rb index 27ccf6db..3936d612 100644 --- a/lib/sisu/v3/sst_do_inline_footnotes.rb +++ b/lib/sisu/v3/sst_do_inline_footnotes.rb @@ -170,7 +170,7 @@ module SiSU_Convert_footnotes        @@word_mode=[]        @env=SiSU_Env::Info_env.new(@md.fns)        @skin=SiSU_Env::Info_skin.new(@md) -      l=SiSU_Env::Standardise_language.new.file_to_language(@md.fns) +      l=SiSU_Env::Standardise_language.new(@md.opt.lng).language        @language=l[:l]        @translate=SiSU_Translate::Source.new(@md,@language)      end diff --git a/lib/sisu/v3/sysenv.rb b/lib/sisu/v3/sysenv.rb index 1b621c61..ac584e80 100644 --- a/lib/sisu/v3/sysenv.rb +++ b/lib/sisu/v3/sysenv.rb @@ -444,7 +444,7 @@ module SiSU_Env        end        self      end -    def document_language_versions_found +    def document_language_versions_found #REVISIT        @fn={}        unless (@fns.nil? \        or @fns.empty?) @@ -499,12 +499,12 @@ module SiSU_Env          fns_c="#{@fn[:m]}~#{lng.code}.#{@fn[:t]}"          fns_l="#{@fn[:m]}~#{lng.name}.#{@fn[:t]}"          if FileTest.file?(fns_c) -          fn_set_lang=SiSU_Env::Standardise_language.new.file_to_language(fns_c) +          fn_set_lang=SiSU_Env::Standardise_language.new.file_to_language(fns_c) #reconsider file_to_language            lng=fn_set_lang[:l]            fn=SiSU_Env::Env_call.new(fns_c).lang(fn_set_lang[:c])            @m << { m: fn[:manifest], l: lng }          elsif FileTest.file?(fns_l) -          fn_set_lang=SiSU_Env::Standardise_language.new.file_to_language(fns_l) +          fn_set_lang=SiSU_Env::Standardise_language.new.file_to_language(fns_l) #reconsider file_to_language            @fnl=dir.i18n.lang_filename(fn_set_lang[:c])            fn=SiSU_Env::Env_call.new(fns_l).lang(fn_set_lang[:c])            @m << { m: fn[:manifest], l: lng } @@ -796,48 +796,67 @@ module SiSU_Env          @language=Info_env.new.defaults[:language]        end      end -    def language #use ISO_639-2 +    def language        lang={}        case @language -      when /American|^us$/i;                  d,c,l=false,'en','American English' #depreciated, see iso 639-2 -      when /English|^en$/i;                   d,c,l=false,'en','English' -      when /French|Francais|^fr$/i;           d,c,l=false,'fr','French' -      when /German|^de$/i;                    d,c,l=false,'de','German' -      when /Italian|^it$/i;                   d,c,l=false,'it','Italian' -      when /Spanish|Espanol|^es$/i;           d,c,l=false,'es','Spanish' -      when /Brazilian(?: Portuguese)?|^br$/i; d,c,l=false,'pt','Brazilian Portuguese' #depreciated, see iso 639-2 -      when /Portuguese|^pt$/i;                d,c,l=false,'pt','Portuguese' -      when /Swedish|Svensk|^sv$/i;            d,c,l=false,'sv','Swedish' -      when /Danish|Dansk|^da$/i;              d,c,l=false,'da','Danish' -      when /Finnish|Finsk|Suomi|^fi$/i;       d,c,l=false,'fi','Finnish' -      when /Norwegian|Norsk|^no$/i;           d,c,l=false,'no','Norwegian' -      when /Icelandic|^is$/i;                 d,c,l=false,'is','Icelandic' -      when /Dutch|^nl$/i;                     d,c,l=false,'nl','Dutch' -      when /Estonian|^et$/i;                  d,c,l=false,'et','Estonian' -      when /Hungarian|^hu$/i;                 d,c,l=false,'hu','Hungarian' -      when /Polish|^pl$/i;                    d,c,l=false,'pl','Polish' -      when /Romanian|^ro$/i;                  d,c,l=false,'ro','Romanian' -      when /Russian|^ru$/i;                   d,c,l=false,'ru','Russian' -      when /Greek|^el$/i;                     d,c,l=false,'el','Greek' -      when /Ukranian|^uk$/i;                  d,c,l=false,'uk','Ukranian' -      when /Turkish|^tr$/i;                   d,c,l=false,'tr','Turkish' -      #when /Serbian/i;                       d,c,l=false,'', 'Serbian' -      #when /Welsh/i;                         d,c,l=false,'', 'Welsh' -      #when /Basque/i;                        d,c,l=false,'', 'Basque' -      #when /Breton/i;                        d,c,l=false,'', 'Breton' -      #when /Catalan/i;                       d,c,l=false,'', 'Catalan' -      #when /Galician/i;                      d,c,l=false,'', 'Galician' -      #when /Saa?mi/i;                        d,c,l=false,'', 'Saami' -      #when /Hebrew/i;                        d,c,l=false,'', 'Hebrew' -      #when /Latin/i;                         d,c,l=false,'', 'Latin' -      #when /Esperanto/i;                     d,c,l=false,'', 'Esperanto' -      when /Slovenian|^sl$/i;                 d,c,l=false,'sl','Slovenian' -      when /Croatian|^hr$/i;                  d,c,l=false,'hr','Croatian' -      when /Slovak(?:ian)?|^sk$/i;            d,c,l=false,'sk','Slovakian' -      when /Czech|^cs$/i;                     d,c,l=false,'cs','Czech' -      when /Bulgarian|^bg$/i;                 d,c,l=false,'bg','Bulgarian' -      else                                    d,c,l=true,'en','English (default)' -      #else                                   d,c,l=true,'xx','Default' +      when /^am$|Amharic/i;                    d,c,l=false,'am','Amharic' +      when /^bg$|Bulgarian/i;                  d,c,l=false,'bg','Bulgarian' +      when /^br$|Breton/i;                     d,c,l=false,'br','Breton' +      when /^ca$|Catalan/i;                    d,c,l=false,'ca','Catalan' +      when /^cs$|Czech/i;                      d,c,l=false,'cs','Czech' +      when /^cy$|Welsh/i;                      d,c,l=false,'cy','Welsh' +      when /^da$|Danish|Dansk/i;               d,c,l=false,'da','Danish' +      when /^de$|German/i;                     d,c,l=false,'de','German' +      when /^el$|Greek/i;                      d,c,l=false,'el','Greek' +      when /^en$|English/i;                    d,c,l=false,'en','English' +      when /^eo$|Esperanto/i;                  d,c,l=false,'eo','Esperanto' +      when /^es$|Spanish|Espanol/i;            d,c,l=false,'es','Spanish' +      when /^et$|Estonian/i;                   d,c,l=false,'et','Estonian' +      when /^eu$|Basque/i;                     d,c,l=false,'eu','Basque' +      when /^fi$|Finnish|Finsk|Suomi/i;        d,c,l=false,'fi','Finnish' +      when /^fr$|French|Francais/i;            d,c,l=false,'fr','French' +      when /^ga$|Irish/i;                      d,c,l=false,'ga','Irish' +      when /^gl$|Galician/i;                   d,c,l=false,'gl','Galician' +      when /^he$|Hebrew/i;                     d,c,l=false,'he','Hebrew' +      when /^hi$|Hindi/i;                      d,c,l=false,'hi','Hindi' +      when /^hr$|Croatian/i;                   d,c,l=false,'hr','Croatian' +      when /^hy$|Armenian/i;                   d,c,l=false,'hy','Armenian' +      when /^ia$|Interlingua/i;                d,c,l=false,'ia','Interlingua' +      when /^is$|Icelandic/i;                  d,c,l=false,'is','Icelandic' +      when /^it$|Italian/i;                    d,c,l=false,'it','Italian' +      when /^la$|Latin/i;                      d,c,l=false,'la','Latin' +      when /^lo$|Lao/i;                        d,c,l=false,'lo','Lao' +      when /^lt$|Lithuanian/i;                 d,c,l=false,'lt','Lithuanian' +      when /^lv$|Latvian/i;                    d,c,l=false,'lv','Latvian' +      when /^ml$|Malayalam/i;                  d,c,l=false,'ml','Malayalam' +      when /^mr$|Marathi/i;                    d,c,l=false,'mr','Marathi' +      when /^nl$|Dutch/i;                      d,c,l=false,'nl','Dutch' +      when /^no$|Norwegian|Norsk/i;            d,c,l=false,'no','Norwegian' +      when /^nn$|Norwegian Nynorsk/i;          d,c,l=false,'nn','Norwegian Nynorsk' +      when /^oc$|Occitan/i;                    d,c,l=false,'oc','Occitan' +      when /^pl$|Polish/i;                     d,c,l=false,'pl','Polish' +      when /^pt$|Portuguese/i;                 d,c,l=false,'pt','Portuguese' +      when /^pt_BR$|Portuguese Brazil/i;       d,c,l=false,'pt_BR','Portuguese Brazil' +      when /^ro$|Romanian/i;                   d,c,l=false,'ro','Romanian' +      when /^ru$|Russian/i;                    d,c,l=false,'ru','Russian' +      when /^sa$|Sanskrit/i;                   d,c,l=false,'sa','Sanskrit' +      when /^se$|Sami/i;                       d,c,l=false,'se','Sami' +      when /^sk$|Slovak/i;                     d,c,l=false,'sk','Slovak' +      when /^sl$|Slovenian/i;                  d,c,l=false,'sl','Slovenian' +      when /^sq$|Albanian/i;                   d,c,l=false,'sq','Albanian' +      when /^sr$|Serbian/i;                    d,c,l=false,'sr','Serbian' +      when /^sv$|Swedish|Svensk/i;             d,c,l=false,'sv','Swedish' +      when /^ta$|Tamil/i;                      d,c,l=false,'ta','Tamil' +      when /^te$|Telugu/i;                     d,c,l=false,'te','Telugu' +      when /^th$|Thai/i;                       d,c,l=false,'th','Thai' +      when /^tk$|Turkmen/i;                    d,c,l=false,'tk','Turkmen' +      when /^tr$|Turkish/i;                    d,c,l=false,'tr','Turkish' +      when /^uk$|Ukranian/i;                   d,c,l=false,'uk','Ukranian' +      when /^ur$|Urdu/i;                       d,c,l=false,'ur','Urdu' +     #when /^us$|/i;                           d,c,l=false,'us','' +      when /^vi$|Vietnamese/i;                 d,c,l=false,'vi','Vietnamese' +      else                                     d,c,l=true,'en','English (default)' +      #else                                    d,c,l=true,'xx','Default'        end        lang[:d],lang[:c],lang[:l]=d,c,l        lang @@ -851,7 +870,7 @@ module SiSU_Env      def code        language[:c]      end -    def file_to_language(file) +    def file_to_language(file) # used, fix and remove        m=/.+?\~(\w{2,3})\.(?:-|ssm\.)?sst$/        @language=if file =~m ; file[m,1]        else '' @@ -859,7 +878,15 @@ module SiSU_Env        language      end      def codes -      codes=['us','en','fr','de','it','es','br','pt','sv','da','fi','no','is','nl','et','hu','pl','ro','ru','el','uk','tr','sk','hr','sl','cs','bg'] # remove us and br see iso-639-2 +      # Language List po4a +      #   <http://www.debian.org/international/l10n/po/> +      #   Px[:lng_lst]=%w[am bg bn br ca cs cy da de el en eo es et eu fi fr ga gl he hi hr hy ia is it la lo lt lv ml mr nl nn no oc pl pt pt_BR ro ru sa se sk sl sq sr sv ta te th tk tr uk ur us vi] +      # see polyglossia for subset +      #   <http://mirrors.ctan.org/macros/xetex/latex/polyglossia/polyglossia.pdf> +      # also note ISO_639-2 +      #   <http://en.wikipedia.org/wiki/ISO_639-2> +      #   <http://en.wikipedia.org/wiki/List_of_ISO_639-2_codes> +      Px[:lng_lst] # constants.rb      end    end    class Info_env < Env_call @@ -3382,14 +3409,9 @@ WOK        end        self      end -    def lang_part -      (@md.opt.f_pth[:lng]) \ -      ? @md.opt.f_pth[:lng] \ -      : @md.i18n[0] -    end      def set_path_abc(ft)        if @env.output_dir_structure.by_language_code? -        "#{output_path.base}/#{lang_part}/#{ft}" +        "#{output_path.base}/#{@md.opt.lng}/#{ft}"        elsif @env.output_dir_structure.by_filetype?          "#{output_path.base}/#{ft}"        else @@ -3398,14 +3420,14 @@ WOK      end      def set_path_ab(ft)        if @env.output_dir_structure.by_language_code? -        "#{output_path.base}/#{lang_part}/#{ft}" +        "#{output_path.base}/#{@md.opt.lng}/#{ft}"        else          "#{output_path.base}/#{ft}"        end      end      def set_path_ab_src(ft)        if @env.output_dir_structure.by_language_code? -        "#{output_path.base}/#{ft}/#{lang_part}" +        "#{output_path.base}/#{ft}/#{@md.opt.lng}"        else          "#{output_path.base}/#{ft}"        end @@ -3429,14 +3451,14 @@ WOK          path=set_path_ab_src(ft)        end        def po -        "#{output_path.base}/po4a/#{@md.fnb}/po/#{lang_part}" +        "#{output_path.base}/po4a/#{@md.fnb}/po/#{@md.opt.lng}"        end        def pot          "#{output_path.base}/po4a/#{@md.fnb}/pot"        end        def po_git          ft=Gt[:po] -        pth=@env.processing_path.git + '/' + @md.fnb + '/' + ft + '/' + lang_part +        pth=@env.processing_path.git + '/' + @md.fnb + '/' + ft + '/' + @md.opt.lng          mkdir_p(pth) unless FileTest.directory?(pth)          pth        end @@ -3512,6 +3534,9 @@ WOK          ft='sitemaps'          path=set_path_ab(ft)        end +      def sqlite +        path=output_path.base +      end        self      end    end @@ -3638,8 +3663,10 @@ WOK        @@pwd ||=Dir.pwd        @pwd=Dir.pwd        @env=SiSU_Env::Info_env.new -      m=/.+\/(?:src\/)?(\S+)/m # m=/.+?\/(?:src\/)?([^\/]+)$/im # m=/.+\/(\S+)/m -      @pwd_stub=@pwd[m,1] +      pt=Pathname.new(@pwd) +      r=Px[:lng_lst].join('|') +      u=/.+?\/([^\/]+)(?:\/(?:#{r})$|$)/ +      @pwd_stub=pt.realpath.to_s[u,1]        @rc=@@rc ||=Get_init.instance.sisu_yaml.rc        @defaults=Info_env.new.defaults      end diff --git a/lib/sisu/v3/urls.rb b/lib/sisu/v3/urls.rb index 77952d0b..14788c00 100644 --- a/lib/sisu/v3/urls.rb +++ b/lib/sisu/v3/urls.rb @@ -79,12 +79,11 @@ module SiSU_urls      def initialize(opt)        @opt=opt        @particulars=SiSU_Particulars::Combined_singleton.instance.get_env_md(opt) -      fn_set_lang=SiSU_Env::Standardise_language.new.file_to_language(@opt.fns)        @cmd=@opt.cmd        @md=@particulars.md        @env=@particulars.env        @fnb=@env.fnb -      fn_set_lang=SiSU_Env::Standardise_language.new.file_to_language(@opt.fns) +      fn_set_lang=SiSU_Env::Standardise_language.new(@opt.lng).language        @fnl=@env.i18n.lang_filename(fn_set_lang[:c])        @fn=SiSU_Env::Env_call.new(@opt.fns).lang(fn_set_lang[:c])        @m_regular=/(.+?)\.(?:(?:-|ssm\.)?sst|ssm)$/ | 
