diff options
Diffstat (limited to 'lib')
31 files changed, 2184 insertions, 1835 deletions
diff --git a/lib/sisu/v2/manpage.rb b/lib/sisu/v2/manpage.rb index a040f1a0..f9c75227 100644 --- a/lib/sisu/v2/manpage.rb +++ b/lib/sisu/v2/manpage.rb @@ -293,6 +293,7 @@ WOK dob.obj.gsub!(/┆/,'|') dob.obj.gsub!(/\s\.(\S+)/,' \\.\1') dob.obj.gsub!(/(\n\.)(\S\S\S+)/m,'\1\\.\2') + dob.obj.gsub!(/-/,'\-') #manpages use this dob.obj.gsub!(/~/,'~') if dob.obj #manpages use this if dob.is =~/group|verse|alt|code/ if dob.is =='code' diff --git a/lib/sisu/v2/param.rb b/lib/sisu/v2/param.rb index c500c282..656490d9 100644 --- a/lib/sisu/v2/param.rb +++ b/lib/sisu/v2/param.rb @@ -733,12 +733,14 @@ module SiSU_Param end if manpage['name'] manpage['name']=manpage['name'].join("\n.br\n") + manpage['name'].gsub!(/(-)/m,"\\\\\\1") manpage['name'].gsub!(/\A/,"\n.br\n.SH NAME\n.br\n") else manpage['name']='man page "name/whatis" information not provided, set in header @man: name=[whatis information]' end if manpage['synopsis'] manpage['synopsis']=manpage['synopsis'].join("\n\n.br\n") + manpage['synopsis'].gsub!(/(-)/m,"\\\\\\1") manpage['synopsis'].gsub!(/\A/,"\n.br\n.SH SYNOPSIS\n.br\n") else manpage['synopsis']='' diff --git a/lib/sisu/v2/sysenv.rb b/lib/sisu/v2/sysenv.rb index 72b1ffc7..d3152947 100644 --- a/lib/sisu/v2/sysenv.rb +++ b/lib/sisu/v2/sysenv.rb @@ -1983,7 +1983,7 @@ WOK ((defined? @rc['program_select']['odf_viewer']) \ && @rc['program_select']['odf_viewer'] =~/\S\S+/) \ ? @rc['program_select']['odf_viewer'] \ - : 'oowriter' #'odf-viewer','oowriter' + : 'lowriter' #'odf-viewer','oowriter' end def manpage_viewer 'man' diff --git a/lib/sisu/v3/cgi_pgsql.rb b/lib/sisu/v3/cgi_pgsql.rb index 48211068..fc802f03 100644 --- a/lib/sisu/v3/cgi_pgsql.rb +++ b/lib/sisu/v3/cgi_pgsql.rb @@ -115,12 +115,12 @@ module SiSU_CGI_pgsql a="postgresql db used for present directory: #{@db.psql.db}" b="\n\t(to create and populate postgresql database see 'man sisu' and in particular the -D flag)\n\t[the database to be used for this directory (#{@db.psql.db}) will have to be created manually if it does not exist,\n\tsee 'sisu --help sql'\n\tif you have permission to create databases:\n\t'sisu -d --createdb'\n\tor using postgresql tools directly:\n\t'createdb #{@db.psql.db}'\n\tfor a list of existing databases try 'psql --list']" SiSU_Screen::Ansi.new(@opt.cmd,a,b).txt_cyan - else puts 'failed in attempt to write sisu_pgsql.cgi to present directory, is directory writable?' + else puts 'failed in attempt to write #{@cgi_file_name} to present directory, is directory writable?' end end def header0 <<-WOK_SQL -#!/usr/bin/env ruby +#!/usr/bin/ruby1.8 =begin #{about} * Description: generates naive cgi search form for search of sisu database (pgsql) @@ -145,7 +145,7 @@ module SiSU_CGI_pgsql @l,@t,@q,@c=l,t,q,cse end def string - search={ search: [], flag: false } + search={ :search => [], :flag => false } if @t =~/\S+/ or @q =~/\S+/ if @t =~/\S+/; unescaped_search=CGI.unescape(@t) elsif @q =~/\S+/; unescaped_search=CGI.unescape(@q) diff --git a/lib/sisu/v3/cgi_sql_common.rb b/lib/sisu/v3/cgi_sql_common.rb index 924b1533..1174be6e 100644 --- a/lib/sisu/v3/cgi_sql_common.rb +++ b/lib/sisu/v3/cgi_sql_common.rb @@ -299,9 +299,9 @@ module SiSU_CGI_sql end def text_to_match(identifier='') m={ - string: /#{identifier}\s*(.+?)/, - string: /#{identifier}\s*(.+?)(?:;|\n|\r|$)/, - word: /#{identifier}[\s(]*(\S+)/ + :string => /#{identifier}\s*(.+?)/, + :string => /#{identifier}\s*(.+?)(?:;|\n|\r|$)/, + :word => /#{identifier}[\s(]*(\S+)/ } search_string=if @search_field =~m[:word] search_string=if @search_field =~m[:braces]; m[:braces].match(@search_field)[1] @@ -328,10 +328,10 @@ module SiSU_CGI_sql def initialize(conn,search_for,q,c) @conn=conn @text_search_flag=false - @sql_statement={ body: '', endnotes: '',range: '' } + @sql_statement={ :body => '', :endnotes => '', :range => '' } #@offset||=@@offset #@offset+=@@limit - search={ text: [], endnotes: [] } + search={ :text => [], :endnotes => [] } cse=(c =~/\S/) ? true : false st=Dbi_search_string.new('doc_objects.clean',search_for.text1,q['s1'],cse).string se=Dbi_search_string.new('endnotes.clean',search_for.text1,q['s1'],cse).string @@ -645,7 +645,7 @@ module SiSU_CGI_sql @counters_txt,@counters_endn,@sql_select_body,@sql_select_endnotes='','','','' FCGI.each_cgi do |cgi| begin # all code goes in begin section - @search={ text: [], endnotes: [] } + @search={ :text => [], :endnotes => [] } q=CGI.new @db=if cgi['db'] =~/\S+/; @stub=/#{@db_name_prefix}(\S+)/.match(cgi['db'])[1] @@ -656,13 +656,13 @@ module SiSU_CGI_sql end checked_url,checked_stats,checked_searched,checked_tip,checked_case,checked_echo,checked_sql,checked_all,checked_none,checked_selected,checked_default,selected_db='','','','','','','','','' result_type=(cgi['view']=~/text/) \ - ? result_type={ index: '', text: 'checked'} \ - : result_type={ index: 'checked', text: ''} + ? result_type={ :index => '', :text => 'checked'} \ + : result_type={ :index => 'checked', :text => ''} @@limit=if cgi['sql_match_limit'].to_s=~/2500/ - checked_sql_limit={ l1000: '', l2500: 'checked'} + checked_sql_limit={ :l1000 => '', :l2500 => 'checked'} '2500' else - checked_sql_limit={ l1000: 'checked', l2500: ''} + checked_sql_limit={ :l1000 => 'checked', :l2500 => ''} '1000' end checked_echo='checked' if cgi['echo'] =~/\S/ @@ -792,7 +792,7 @@ module SiSU_CGI_sql </font> WOK #eg = %{canned search e.g.:<br /> <a href="#{url}">#{url}</a><br />find: #{analyze}<br />database: #{database}} - #dbi_canning + #% dbi_canning @header=Form.new(@base,search_field,selected_db,result_type,checked_sql_limit,checked_tip,checked_stats,checked_searched,checked_url,checked_case,checked_echo,checked_sql,checked_all,checked_none,checked_selected,checked_default,search_note,the_can).submission_form #% form unless q['s1'] =~/\S/ or q['au'] =~/\S/ or @search[:text][1] =~/\S/ print "Content-type: text/html\n\n" @@ -808,13 +808,13 @@ module SiSU_CGI_sql @search[:text]<<%{doc_objects.clean~*'#{CGI.unescape(s1)}'} @search[:endnotes]<<%{endnotes.clean~*'#{CGI.unescape(s1)}'} end - #dbi_request + #% dbi_request dbi_statement=Dbi_search_statement.new(@conn,@search_for,q,checked_case) @text_search_flag=false @text_search_flag=dbi_statement.text_search_flag s_contents=dbi_statement.contents s_endnotes=dbi_statement.endnotes - @body_main,@endnotes=[],[] + @body_main,@endnotes='','' @search_regx=nil oldtid=0 if @text_search_flag @@ -827,7 +827,48 @@ module SiSU_CGI_sql @endnotes << '<p><hr><br /><b>Endnotes:</b><br />' << sql_select_endnotes else end - #text_objects_body + @hostpath="#{@hosturl_files}/#{@stub}" + @ln='en' + def output_dir_structure + def by_language_code? + true + end + def by_filetype? + false + end + def by_filename? + false + end + self + end + def path_manifest(fn,ln=nil) + if output_dir_structure.by_language_code? + manifest_at="#{@hostpath}/#{ln}/manifest/#{fn}.manifest.html" + elsif output_dir_structure.by_filetype? + manifest_at="#{@hostpath}/manifest/#{fn}.manifest.html" + elsif output_dir_structure.by_filename? + manifest_at="#{@hostpath}/#{fn}/manifest.html" + end + end + def path_html_seg(fn,ln=nil) + if output_dir_structure.by_language_code? + html_at="#{@hostpath}/#{ln}/html/#{fn}" + elsif output_dir_structure.by_filetype? + html_at="#{@hostpath}/html/#{fn}" + elsif output_dir_structure.by_filename? + html_at="#{@hostpath}/#{fn}" + end + end + def path_html_doc(fn,ln=nil) + if output_dir_structure.by_language_code? + html_at="#{@hostpath}/#{ln}/html/#{fn}.html" + elsif output_dir_structure.by_filetype? + html_at="#{@hostpath}/html/#{fn}.html" + elsif output_dir_structure.by_filename? + html_at="#{@hostpath}/#{fn}/doc.html" + end + end + #% text_objects_body s_contents.each do |c| #% text body location=c['src_filename'][/(.+?)\.(?:ssm\.sst|sst)$/,1] file_suffix=c['src_filename'][/.+?\.(_?sst|ssm)$/,1] @@ -837,13 +878,13 @@ module SiSU_CGI_sql l=".#{l}" else '' end - #metadata_found_body + #% metadata_found_body if c['tid'].to_i != oldtid.to_i ti=c['title'] can_txt_srch=(cgi['view']=~/index/) \ ? %{<a href="#{@canned_base_url}&fns=#{c['src_filename']}&view=text"><img border="0" width="24" height="16" src="#{@image_src}/b_search.png" alt="search"></a> } \ : %{<a href="#{@canned_base_url}&fns=#{c['src_filename']}&view=index"><img border="0" width="24" height="16" src="#{@image_src}/b_search.png" alt="search"></a> } - title=%{<span style="background-color: #{@color_heading}"><a href="#{@hosturl_files}/#{@stub}/#{location}/toc#{lang}.html"><img border="0" width="15" height="18" src="#{@image_src}/b_toc.png" alt="toc html"> #{ti}</a></span> by #{c['creator_author']} #{can_txt_srch}<a href="#{@hosturl_files}/#{@stub}/#{location}/toc#{lang}.html"><img border="0" width="15" height="18" src="#{@image_src}/b_toc.png" alt="toc html"></a> <a href="#{@hosturl_files}/#{@stub}/epub/#{location}#{lang}.epub"><img border="0" width="15" height="15" src="#{@image_src}/b_epub.png" alt="epub"></a> <a href="#{@hosturl_files}/#{@stub}/#{location}/portrait#{lang}.pdf"><img border="0" width="15" height="18" src="#{@image_src}/b_pdf.png" alt="pdf portrait"></a> <a href="#{@hosturl_files}/#{@stub}/#{location}/landscape#{lang}.pdf"><img border="0" width="18" height="15" src="#{@image_src}/b_pdf.png" alt="pdf landscape"></a></a> <a href="#{@hosturl_files}/#{@stub}/#{location}/opendocument#{lang}.odt"><img border="0" width="15" height="15" src="#{@image_src}/b_odf.png" alt="odf"></a> <a href="#{@hosturl_files}/#{@stub}/#{location}/sisu_manifest#{lang}.html"><img border="0" width="15" height="15" src="#{@image_src}/b_info.png" alt="manifest"></a><br />} if file_suffix=~/s/ #hmm watch file_suffix + title=%{<span style="background-color: #{@color_heading}"><a href="#{path_html_seg(location,@ln)}/toc.html"><img border="0" width="15" height="18" src="#{@image_src}/b_toc.png" alt="toc html"> #{ti}</a></span> by #{c['creator_author']} #{can_txt_srch}<a href="#{path_html_seg(location,@ln)}/toc.html"><img border="0" width="15" height="18" src="#{@image_src}/b_toc.png" alt="toc html"></a> <a href="#{path_manifest(location,@ln)}"><img border="0" width="15" height="15" src="#{@image_src}/b_info.png" alt="manifest"></a><br />} if file_suffix=~/s/ #hmm watch file_suffix title=@text_search_flag \ ? '<br /><hr>'+title \ : '<br />'+title @@ -880,7 +921,7 @@ module SiSU_CGI_sql matched_para=(@search_regx.to_s.class==String && @search_regx.to_s=~/\S\S+/) \ ? (c['body'].gsub(/(<a\s+href="https?:\/\/[^><\s]+#{@search_regx}[^>]+?>|#{@search_regx})/mi,%{<span style="background-color: #{@color_match}">\\1</span>})) \ : c['body'] - %{<hr><p><font size="2">ocn <b><a href="#{@hosturl_files}/#{@stub}/#{location}/#{c['seg']}#{lang}.html##{c['ocn']}">#{c['ocn']}</a></b>:</font></p>#{matched_para}} + %{<hr><p><font size="2">ocn <b><a href="#{path_html_seg(location,@ln)}/#{c['seg']}#{lang}.html##{c['ocn']}">#{c['ocn']}</a></b>:</font></p>#{matched_para}} elsif c['suffix'] =~/1/ #doc %{#{title}<hr><p><font size="2">ocn #{c['ocn']}:#{c['body']}} end @@ -888,9 +929,9 @@ module SiSU_CGI_sql output=title+text else #elsif cgi['view']=~/index/ #% idx body if c['suffix'] !~/1/ #seg - index=%{<a href="#{@hosturl_files}/#{@stub}/#{location}/#{c['seg']}#{lang}.html##{c['ocn']}">#{c['ocn']}</a>, } if @text_search_flag - elsif c['suffix'] =~/1/ #doc - index=%{<a href="#{@hosturl_files}/#{@stub}/#{location}/doc#{lang}.html##{c['ocn']}">#{c['ocn']}</a>, } + index=%{<a href="#{path_html_seg(location,@ln)}/#{c['seg']}#{lang}.html##{c['ocn']}">#{c['ocn']}</a>, } if @text_search_flag + elsif c['suffix'] =~/1/ #doc #FIX + index=%{<a href="#{path_html_doc(location,@ln)}##{c['ocn']}">#{c['ocn']}</a>, } end if c['seg'] =~/\S+/ if @text_search_flag @@ -936,7 +977,7 @@ module SiSU_CGI_sql can_txt_srch=(cgi['view']=~/index/) \ ? %{<a href="#{@canned_base_url}&fns=#{e['src_filename']}&view=text"><img border="0" width="24" height="16" src="#{@image_src}/b_search.png" alt="search"></a> } \ : %{<a href="#{@canned_base_url}&fns=#{e['src_filename']}&view=index"><img border="0" width="24" height="16" src="#{@image_src}/b_search.png" alt="search"></a> } - title=%{<br /><hr><span style="background-color: #{@color_heading}"><a href="#{@hosturl_files}/#{@stub}/#{location}/toc#{lang}.html"><img border="0" width="15" height="18" src="#{@image_src}/b_toc.png" alt="toc html"> #{ti}</a></span> by #{e['creator_author']} #{can_txt_srch}<a href="#{@hosturl_files}/#{@stub}/#{location}/toc#{lang}.html"><img border="0" width="15" height="18" src="#{@image_src}/b_toc.png" alt="toc html"></a> <a href="#{@hosturl_files}/#{@stub}/epub/#{location}#{lang}.epub"><img border="0" width="15" height="15" src="#{@image_src}/b_epub.png" alt="epub"></a> <a href="#{@hosturl_files}/#{@stub}/#{location}/portrait.pdf"><img border="0" width="15" height="18" src="#{@image_src}/b_pdf.png" alt="pdf portrait"></a> <a href="#{@hosturl_files}/#{@stub}/#{location}/landscape.pdf"><img border="0" width="18" height="15" src="#{@image_src}/b_pdf.png" alt="pdf landscape"></a> <a href="#{@hosturl_files}/#{@stub}/#{location}/opendocument#{lang}.odt"><img border="0" width="15" height="15" src="#{@image_src}/b_odf.png" alt="odf"></a> <a href="#{@hosturl_files}/#{@stub}/#{location}/sisu_manifest#{lang}.html"><img border="0" width="15" height="15" src="#{@image_src}/b_info.png" alt="manifest"></a><br />} if file_suffix=~/s/ + title=%{<br /><hr><span style="background-color: #{@color_heading}"><a href="#{path_html_seg(location,@ln)}/toc.html"><img border="0" width="15" height="18" src="#{@image_src}/b_toc.png" alt="toc html"> #{ti}</a></span> by #{e['creator_author']} #{can_txt_srch}<a href="#{path_html_seg(location,@ln)}/toc.html"><img border="0" width="15" height="18" src="#{@image_src}/b_toc.png" alt="toc html"></a> <a href="#{path_manifest(location,@ln)}"><img border="0" width="15" height="15" src="#{@image_src}/b_info.png" alt="manifest"></a><br />} if file_suffix=~/s/ @counter_endn_doc+=1 oldtid=e['metadata_tid'].to_i else title = '' @@ -947,10 +988,10 @@ module SiSU_CGI_sql matched_endnote=(@search_regx.to_s.class==String && @search_regx.to_s=~/\S\S+/) \ ? matched=e['body'].gsub(/(<a\s+href="https?:\/\/[^><\s]+#{@search_regx}[^>]+?>|#{@search_regx})/mi,%{<span style="background-color: #{@color_match}">\\1</span>}) \ : e['body'] - output=%{#{title}<hr><font size="2">note <b><a href="#{@hosturl_files}/#{@stub}/#{location}/endnotes.html#_#{e['nr']}">#{e['nr']}</a></b> referred to from ocn <a href="#{@hosturl_files}/#{@stub}/#{location}/doc.html##{e['ocn']}">#{e['ocn']}</a>:</font> #{matched_endnote}} - else #elsif cgi['view']=~/index/ #% idx endnotes + output=%{#{title}<hr><font size="2">note <b><a href="#{path_html_seg(location,@ln)}/endnotes.html#_#{e['nr']}">#{e['nr']}</a></b> referred to from ocn <a href="#{path_html_doc(location,@ln)}##{e['ocn']}">#{e['ocn']}</a>:</font> #{matched_endnote}} + else #elsif cgi['view']=~/index/ #doc #FIX #% idx endnotes @counter_endn_ocn+=1 - output=%{#{title}<a href="#{@hosturl_files}/#{@stub}/#{location}/endnotes.html#_#{e['nr']}">#{e['nr']}</a> [§ <a href="#{@hosturl_files}/#{@stub}/#{location}/doc.html##{e['ocn']}">#{e['ocn']}</a>], } + output=%{#{title}<a href="#{path_html_seg(location,@ln)}/endnotes.html#_#{e['nr']}">#{e['nr']}</a> [§ <a href="#{path_html_doc(location,@ln)}##{e['ocn']}">#{e['ocn']}</a>], } end @counters_endn=if @counter_endn_doc > 0 if checked_stats =~/\S/ @@ -964,7 +1005,7 @@ module SiSU_CGI_sql end end @endnotes << output #+ details - else @endnotes=[] #does not take out yet + else @endnotes='' #does not take out yet end end offset=dbi_statement.sql_offset.to_s @@ -974,7 +1015,7 @@ module SiSU_CGI_sql ? dbi_statement.pre_next(true,@image_src).to_s \ : dbi_statement.pre_next(false,@image_src).to_s limit=dbi_statement.sql_match_limit.to_s - cgi.out{@header + @counters_txt + @counters_endn + canned + @body_main.join + @endnotes.join + canned + @tail} #% print cgi_output_header+counters+body+endnotes + cgi.out{@header + @counters_txt + @counters_endn + canned + @body_main + @endnotes + canned + @tail} #% print cgi_output_header+counters+body+endnotes end rescue Exception => e s='<pre>' + CGI::escapeHTML(e.backtrace.reverse.join("\n")) diff --git a/lib/sisu/v3/cgi_sqlite.rb b/lib/sisu/v3/cgi_sqlite.rb index 5a415b0d..4a5838ab 100644 --- a/lib/sisu/v3/cgi_sqlite.rb +++ b/lib/sisu/v3/cgi_sqlite.rb @@ -66,6 +66,7 @@ module SiSU_CGI_sqlite @env=SiSU_Env::Info_env.new('',opt) @image_src="#{@env.url.webserv_cgi}/_sisu/image_sys" @common=SiSU_CGI_sql::SiSU_CGI_common.new(@webserv,@opt.cmd,@image_src,@env) + @cgi_file_name="#{Db[:name_prefix_db]}sqlite.cgi" end def sqlite serve=[] @@ -95,7 +96,7 @@ module SiSU_CGI_sqlite end f3 << %{ else '#{@env.path.webserv}/#{serve[0]}/sisu_sqlite.db'\n end\n} if FileTest.writable?('.') - output=File.open('sisu_sqlite.cgi','w') + output=File.open(@cgi_file_name,'w') output << header0 << header1 << header_desc << header2 << f1 << buttons1 << buttons2 << search_request << search_statement << search_statement_common << search_query1 << @common.pages << search_query2 << @common.tail << @common.main1 << f2 << f3 << dbi_connect << @common.main2 a=%{ generated sisu_sqlite.cgi, BASED ON ALREADY CREATED sisu_sqlite.db OUTPUT, (-d) @@ -104,21 +105,22 @@ module SiSU_CGI_sqlite c=case @webserv when /pwd/; '' else "if necessary make the directory /usr/lib/cgi-bin : - sudo cp -vi #{Dir.pwd}/sisu_sqlite.cgi /usr/lib/cgi-bin/. - sudo chmod -v 755 /usr/lib/cgi-bin/sisu_sqlite.cgi - (copy sisu_sqlite.cgi to your cgi directory) and set file permissions to 755" + sudo cp -vi #{Dir.pwd}/#{@cgi_file_name} /usr/lib/cgi-bin/. + sudo chmod -v 755 /usr/lib/cgi-bin/#{@cgi_file_name} + sudo ln -s /usr/lib/cgi-bin/#{@cgi_file_name} /usr/lib/cgi-bin/sisu_sqlite.cgi + (copy #{@cgi_file_name} to your cgi directory) set file permissions to 755, and make symbolic link to sisu_sqlite.cgi" end a=%{#{c} #{@env.webserv_base_cgi}/cgi-bin/sisu_sqlite.cgi } b='(to create and populate sisu sqlite database see "man sisu" and in particular the -d flag)' SiSU_Screen::Ansi.new(@opt.cmd,a,b).warn - else puts 'failed in attempt to write sisu_sqlite.cgi to present directory, is directory writable?' + else puts "failed in attempt to write #{@cgi_file_name} to present directory, is directory writable?" end end def header0 <<-WOK_SQL -#!/usr/bin/env ruby +#!/usr/bin/ruby1.8 =begin #{about} * Description: generates naive cgi search form for search of sisu database (sqlite) @@ -141,7 +143,7 @@ module SiSU_CGI_sqlite @l,@t,@q=l,t,q end def string - search={ search: [], flag: false } + search={ :search => [], :flag => false } if @t =~/\S+/ or @q =~/\S+/ if @t =~/\S+/; unescaped_search=CGI.unescape(@t) elsif @q =~/\S+/; unescaped_search=CGI.unescape(@q) diff --git a/lib/sisu/v3/concordance.rb b/lib/sisu/v3/concordance.rb index 8b70fdc5..d97c7786 100644 --- a/lib/sisu/v3/concordance.rb +++ b/lib/sisu/v3/concordance.rb @@ -77,7 +77,7 @@ module SiSU_Concordance @env,@md=@particulars.env,@particulars.md loc=@env.url.output_tell unless @md.opt.cmd =~/q/ - tool=(@md.opt.cmd =~/[MVv]/) ? "#{@env.program.web_browser} #{loc}/#{@md.fnb}/#{@md.fn[:concordance]}" : @md.fns + tool=(@md.opt.cmd =~/[MVv]/) ? "#{@env.program.web_browser} #{@md.file.output_path.html_concordance}/#{@md.file.base_filename.html_concordance}" : @md.fns @md.opt.cmd=~/[MVvz]/ \ ? SiSU_Screen::Ansi.new(@md.opt.cmd,"Concordance",tool).grey_title_hi \ : SiSU_Screen::Ansi.new(@md.opt.cmd,'Concordance',tool).green_title_hi @@ -337,7 +337,7 @@ WOK end credits=@vz.credits_sisu @file_concordance << %{</div></body>\n</html>} # footer - SiSU_Screen::Ansi.new(@md.opt.cmd,@md.fns,"#{@env.path.output_tell}/#{@md.fn[:concordance]}").flow if @md.opt.cmd =~/[MV]/ + SiSU_Screen::Ansi.new(@opt.cmd,@md.fns,"#{@md.file.output_path.html_concordance}/#{@md.file.base_filename.html_concordance}").flow if @md.opt.cmd =~/[MV]/ end end end diff --git a/lib/sisu/v3/constants.rb b/lib/sisu/v3/constants.rb index d94da654..57491a7c 100644 --- a/lib/sisu/v3/constants.rb +++ b/lib/sisu/v3/constants.rb @@ -147,20 +147,18 @@ 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 h Px[:lv1]= '*' Px[:lv2]= '=' Px[:lv3]= '=' -#Px[:lv2_3]= '=' Px[:lv4]= '-' Px[:lv5]= '.' Px[:lv6]= '.' -#Px[:lv5_6]= '.' -Db[:name_prefix]="SiSU#{SiSU_version_dir}c_" -Db[:name_prefix_db]="sisu_#{SiSU_version_dir}c_" +Db[:name_prefix]="SiSU#{SiSU_version_dir}d_" +Db[:name_prefix_db]="sisu_#{SiSU_version_dir}d_" Db[:col_title]=800 Db[:col_title_part]=400 Db[:col_title_edition]=10 Db[:col_name]=600 Db[:col_creator_misc_short]=100 Db[:col_language]=100 -Db[:col_language_char]=3 +Db[:col_language_char]=6 Db[:col_date_text]=10 Db[:col_classify_txt_long]=600 Db[:col_classify_txt_short]=600 @@ -312,7 +310,7 @@ see polyglossia for subset * es_GA (Spanish, as spoken in Gabon) * es_GT (Spanish, as spoken in Guatemala) * es_HN (Spanish, as spoken in Honduras) -* es_LA (Spanish, as spoken in Lao People's Democratic Republic) +* es_LA (Spanish, as spoken in Lao People''s Democratic Republic) * es_MX (Spanish, as spoken in Mexico) * es_NI (Spanish, as spoken in Nicaragua) * es_PA (Spanish, as spoken in Panama) diff --git a/lib/sisu/v3/dal.rb b/lib/sisu/v3/dal.rb index a25f0f99..28e7193d 100644 --- a/lib/sisu/v3/dal.rb +++ b/lib/sisu/v3/dal.rb @@ -77,7 +77,7 @@ module SiSU_DAL require_relative 'dal_character_check' # dal_character_check.rb require_relative 'dal_substitutions_and_insertions' # dal_substitutions_and_insertions.rb require_relative 'dal_expand_insertions' # dal_expand_insertions.rb - require_relative 'i18n' # i18n.rb + require_relative 'prog_text_translation' # prog_text_translation.rb require_relative 'shared_sem' # shared_sem.rb class Instantiate < SiSU_Param::Parameters::Instructions def initialize diff --git a/lib/sisu/v3/dal_doc_str.rb b/lib/sisu/v3/dal_doc_str.rb index 61348d28..ed289015 100644 --- a/lib/sisu/v3/dal_doc_str.rb +++ b/lib/sisu/v3/dal_doc_str.rb @@ -482,8 +482,8 @@ 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) - language=l[:l] + l=SiSU_Env::Standardise_language.new(@md.opt.lng).language + language=l[:n] tr=SiSU_Translate::Source.new(@md,language) meta << @pb h={ ln: 2, obj: 'Metadata', ocn_: false } diff --git a/lib/sisu/v3/dal_metadata.rb b/lib/sisu/v3/dal_metadata.rb index 31a7e4b2..2e68c944 100644 --- a/lib/sisu/v3/dal_metadata.rb +++ b/lib/sisu/v3/dal_metadata.rb @@ -60,8 +60,8 @@ module SiSU_metadata class Metadata def initialize(md,metad) @md,@metadata=md,metad - l=SiSU_Env::Standardise_language.new.file_to_language(md.fns) - language=l[:l] + l=SiSU_Env::Standardise_language.new(@md.opt.lng).language + language=l[:n] @tr=SiSU_Translate::Source.new(md,language) end def make_para(obj,ocn) diff --git a/lib/sisu/v3/db_columns.rb b/lib/sisu/v3/db_columns.rb index 8b669b12..d8a6f3cf 100644 --- a/lib/sisu/v3/db_columns.rb +++ b/lib/sisu/v3/db_columns.rb @@ -64,6 +64,7 @@ module SiSU_DB_columns def initialize(md=nil) @md=md @db=SiSU_Env::Info_db.new #watch + @lang ||=SiSU_i18n::Languages.new if defined? md.opt.mod \ and md.opt.mod.inspect=~/import|update/ \ and FileTest.exist?(md.fns) @@ -98,7 +99,7 @@ module SiSU_DB_columns 'title' end def create_column - "#{name} VARCHAR(#{Db[:col_title]}) NULL," + "#{name} VARCHAR(#{Db[:col_title]}) NOT NULL," end def column_comment %{COMMENT ON COLUMN metadata_and_text.#{name} @@ -120,7 +121,7 @@ module SiSU_DB_columns 'title_main' end def create_column - "#{name} VARCHAR(#{Db[:col_title_part]}) NULL," + "#{name} VARCHAR(#{Db[:col_title_part]}) NOT NULL," end def column_comment %{COMMENT ON COLUMN metadata_and_text.#{name} @@ -237,9 +238,8 @@ module SiSU_DB_columns IS 'metadata document language [DC12]';} end def tuple - t=if defined? @md.title.language \ - and @md.title.language=~/\S+/ - txt=@md.title.language + t=if @lang.list[@md.opt.lng][:n] + txt=@lang.list[@md.opt.lng][:n] special_character_escape(txt) ["#{name}, ","'#{txt}', "] else ['',''] @@ -259,9 +259,9 @@ module SiSU_DB_columns IS 'metadata document language iso code';} end def tuple - t=if defined? @md.title.language_char \ - and @md.title.language_char=~/\S+/ - txt=@md.title.language_char + t=if defined? @md.opt.lng \ + and @md.opt.lng=~/\S+/ + txt=@md.opt.lng special_character_escape(txt) ["#{name}, ","'#{txt}', "] else ['',''] @@ -599,9 +599,8 @@ module SiSU_DB_columns IS 'metadata document language';} end def tuple - t=if defined? @md.language.document \ - and @md.language.document=~/\S+/ - txt=@md.language.document + t=if @lang.list[@md.opt.lng][:n] + txt=@lang.list[@md.opt.lng][:n] special_character_escape(txt) ["#{name}, ","'#{txt}', "] else ['',''] @@ -614,16 +613,17 @@ module SiSU_DB_columns 'language_document_char' end def create_column - "#{name} VARCHAR(#{Db[:col_language_char]}) NULL," + "#{name} VARCHAR(#{Db[:col_language_char]}) NOT NULL," end def column_comment %{COMMENT ON COLUMN metadata_and_text.#{name} 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 ['',''] @@ -1832,7 +1832,7 @@ module SiSU_DB_columns 'src_filename' end def create_column - "#{name} VARCHAR(#{Db[:col_filename]}) NULL," + "#{name} VARCHAR(#{Db[:col_filename]}) NOT NULL," end def column_comment %{COMMENT ON COLUMN metadata_and_text.#{name} diff --git a/lib/sisu/v3/db_import.rb b/lib/sisu/v3/db_import.rb index f1e7f064..541399a9 100644 --- a/lib/sisu/v3/db_import.rb +++ b/lib/sisu/v3/db_import.rb @@ -96,17 +96,17 @@ module SiSU_DB_import @col[:lid] ||=0 @col[:lid]=@driver_sqlite3 \ ? @conn.execute( sql ).join.to_i \ - : @conn.execute( sql ) { |x| x.fetch_all.to_s.to_i } + : @conn.execute( sql ) { |x| x.fetch_all.flatten[0] } rescue puts "#{__FILE__}:#{__LINE__}" if @opt.cmd =~/M/ end @col[:lid]=0 if @col[:lid].nil? or @col[:lid].to_s.empty? sql='SELECT MAX(nid) FROM endnotes' begin - @id_n ||=0 @id_n=@driver_sqlite3 \ ? @conn.execute( sql ).join.to_i \ - : @id_n=@conn.execute( sql ) { |x| x.fetch_all.to_s.to_i } + : @id_n=@conn.execute( sql ) { |x| x.fetch_all.flatten[0] } + @id_n ||=0 rescue puts "#{__FILE__}:#{__LINE__}" if @opt.cmd =~/M/ end @@ -120,7 +120,13 @@ 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) @@ -187,7 +193,7 @@ module SiSU_DB_import else if file_exist @db=SiSU_Env::Info_db.new - puts "\n#{@cX.grey}file #{@cX.off} #{@cX.blue}#{@opt.fns}#{@cX.off} #{@cX.grey}already exists in database#{@cX.off} #{@cX.blue}#{@db.psql.db}#{@cX.off} #{@cX.brown}update instead?#{@cX.off}" + puts "\n#{@cX.grey}file #{@cX.off} #{@cX.blue}#{@opt.fns}#{@cX.off} in language code #{cX.blue}#{@opt.lng}#{cX.off} #{@cX.grey}already exists in database#{@cX.off} #{@cX.blue}#{@db.psql.db}#{@cX.off} #{@cX.brown}update instead?#{@cX.off}" end end end @@ -215,18 +221,18 @@ module SiSU_DB_import #@tp[:title]=@md.title.full #special_character_escape(@tp[:title]) #@tp[:title_f],@tp[:title_i]='title, ',"'#{@tp[:title]}', " - sql='SELECT MAX(tid) FROM metadata_and_text' + sql='SELECT MAX(tid) FROM metadata_and_text;' begin @@id_t ||=0 id_t=if @driver_sqlite3 @conn.execute( sql ).join.to_i # { |x| id_t=x.join.to_i } - else @conn.execute( sql ) { |x| x.fetch_all.to_s.to_i } + else + @conn.execute( sql ) { |x| x.fetch_all.flatten[0] } end @@id_t=id_t if id_t rescue puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ end - @@id_t =0 if @col[:lid].nil? or @col[:lid].to_s.empty? @@id_t+=1 #bug related, needs to be performed once at start of file, but consider moving, as, placed here it means program will fail if document header lacks @title: puts %{\n#{@cX.grey}Processing file number#{@cX.off}: #{@cX.green}#{@@id_t}#{@@cX.off}} if @opt.cmd =~/vVM/ end @@ -421,7 +427,8 @@ module SiSU_DB_import txt=%{\n\nLARGE TEXT BLOCK OMITTED\n\n} end if txt - en={ type: 'endnotes', + en={ + type: 'endnotes', id: @id_n, lid: @col[:lid], nr: nr, @@ -459,7 +466,8 @@ module SiSU_DB_import txt=%{\n\nLARGE TEXT BLOCK OMITTED\n\n} end if txt - en={ type: 'endnotes_asterisk', + en={ + type: 'endnotes_asterisk', id: @id_n, lid: @col[:lid], nr: nr, @@ -497,7 +505,8 @@ module SiSU_DB_import txt=%{\n\nLARGE TEXT BLOCK OMITTED\n\n} end if txt - en={ type: 'endnotes_plus', + en={ + type: 'endnotes_plus', id: @id_n, lid: @col[:lid], nr: nr, 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..cfa19c9f 100644 --- a/lib/sisu/v3/db_remove.rb +++ b/lib/sisu/v3/db_remove.rb @@ -72,9 +72,19 @@ 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..e7b303ba 100644 --- a/lib/sisu/v3/digests.rb +++ b/lib/sisu/v3/digests.rb @@ -58,7 +58,7 @@ =end module SiSU_Digest_view require_relative 'particulars' # particulars.rb - require_relative 'i18n' # i18n.rb + require_relative 'prog_text_translation' # prog_text_translation.rb require_relative 'shared_markup_alt.rb' # shared_markup_alt.rb pwd=Dir.pwd class Source @@ -101,8 +101,8 @@ 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) - @language=l[:l] + l=SiSU_Env::Standardise_language.new(@md.opt.lng).language + @language=l[:n] @tr=SiSU_Translate::Source.new(@md,@language) @sp=' ' end 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/i18n.rb b/lib/sisu/v3/i18n.rb index 9fbe8c3e..1001b6fb 100644 --- a/lib/sisu/v3/i18n.rb +++ b/lib/sisu/v3/i18n.rb @@ -57,6 +57,160 @@ =end module SiSU_i18n + @@language_table,@@language_list=nil,nil + class Languages + def language + def table + @@language_table ||= { + am: { c: 'am', n: 'Amharic', xlp: 'amharic'}, + bg: { c: 'bg', n: 'Bulgarian', xlp: 'bulgarian'}, + bn: { c: 'bn', n: 'Bengali', xlp: 'bengali'}, + br: { c: 'br', n: 'Breton', xlp: 'breton'}, + ca: { c: 'ca', n: 'Catalan', xlp: 'catalan'}, + cs: { c: 'cs', n: 'Czech', xlp: 'czech'}, + cy: { c: 'cy', n: 'Welsh', xlp: 'welsh'}, + da: { c: 'da', n: 'Danish', xlp: 'danish'}, + de: { c: 'de', n: 'German', xlp: 'german'}, + el: { c: 'el', n: 'Greek', xlp: 'greek'}, + en: { c: 'en', n: 'English', xlp: 'english'}, + eo: { c: 'eo', n: 'Esperanto', xlp: 'esperanto'}, + es: { c: 'es', n: 'Spanish', xlp: 'spanish'}, + et: { c: 'et', n: 'Estonian', xlp: 'estonian'}, + eu: { c: 'eu', n: 'Basque', xlp: 'basque'}, + fi: { c: 'fi', n: 'Finnish', xlp: 'finnish'}, + fr: { c: 'fr', n: 'French', xlp: 'french'}, + ga: { c: 'ga', n: 'Irish', xlp: 'irish'}, + gl: { c: 'gl', n: 'Galician', xlp: 'galician'}, + he: { c: 'he', n: 'Hebrew', xlp: 'hebrew'}, + hi: { c: 'hi', n: 'Hindi', xlp: 'hindi'}, + hr: { c: 'hr', n: 'Croatian', xlp: 'croatian'}, + hy: { c: 'hy', n: 'Armenian', xlp: 'armenian'}, + ia: { c: 'ia', n: 'Interlingua', xlp: 'interlingua'}, + is: { c: 'is', n: 'Icelandic', xlp: 'icelandic'}, + it: { c: 'it', n: 'Italian', xlp: 'italian'}, + la: { c: 'la', n: 'Latin', xlp: 'latin'}, + lo: { c: 'lo', n: 'Lao', xlp: 'lao'}, + lt: { c: 'lt', n: 'Lithuanian', xlp: 'lithuanian'}, + lv: { c: 'lv', n: 'Latvian', xlp: 'latvian'}, + ml: { c: 'ml', n: 'Malayalam', xlp: 'malayalam'}, + mr: { c: 'mr', n: 'Marathi', xlp: 'marathi'}, + nl: { c: 'nl', n: 'Dutch', xlp: 'dutch'}, + no: { c: 'no', n: 'Norwegian', xlp: 'norsk'}, + nn: { c: 'nn', n: 'Norwegian Nynorsk', xlp: 'nynorsk'}, + oc: { c: 'oc', n: 'Occitan', xlp: 'occitan'}, + pl: { c: 'pl', n: 'Polish', xlp: 'polish'}, + pt: { c: 'pt', n: 'Portuguese', xlp: 'portuges'}, + pt_BR: { c: 'pt_BR', n: 'Portuguese Brazil', xlp: 'brazilian'}, + ro: { c: 'ro', n: 'Romanian', xlp: 'romanian'}, + ru: { c: 'ru', n: 'Russian', xlp: 'russian'}, + sa: { c: 'sa', n: 'Sanskrit', xlp: 'sanskrit'}, + se: { c: 'se', n: 'Sami', xlp: 'samin'}, + sk: { c: 'sk', n: 'Slovak', xlp: 'slovak'}, + sl: { c: 'sl', n: 'Slovenian', xlp: 'slovenian'}, + sq: { c: 'sq', n: 'Albanian', xlp: 'albanian'}, + sr: { c: 'sr', n: 'Serbian', xlp: 'serbian'}, + sv: { c: 'sv', n: 'Swedish', xlp: 'swedish'}, + ta: { c: 'ta', n: 'Tamil', xlp: 'tamil'}, + te: { c: 'te', n: 'Telugu', xlp: 'telugu'}, + th: { c: 'th', n: 'Thai', xlp: 'thai'}, + tk: { c: 'tk', n: 'Turkmen', xlp: 'turkmen'}, + tr: { c: 'tr', n: 'Turkish', xlp: 'turkish'}, + uk: { c: 'uk', n: 'Ukranian', xlp: 'ukrainian'}, + ur: { c: 'ur', n: 'Urdu', xlp: 'urdu'}, + us: { c: 'en', n: 'English (American)',xlp: 'english'}, + vi: { c: 'vi', n: 'Vietnamese', xlp: 'vietnamese'}, + en: { c: 'en', n: 'English', xlp: 'english'}, + xx: { c: 'xx', n: 'Default', xlp: 'english'}, + } + end + def list + @@language_list ||= { + 'am' => table[:am], + 'bg' => table[:bg], + 'bn' => table[:bn], + 'br' => table[:br], + 'ca' => table[:ca], + 'cs' => table[:cs], + 'cy' => table[:cy], + 'da' => table[:da], + 'de' => table[:de], + 'el' => table[:el], + 'en' => table[:en], + 'eo' => table[:eo], + 'es' => table[:es], + 'et' => table[:et], + 'eu' => table[:eu], + 'fi' => table[:fi], + 'fr' => table[:fr], + 'ga' => table[:ga], + 'gl' => table[:gl], + 'he' => table[:he], + 'hi' => table[:hi], + 'hr' => table[:hr], + 'hy' => table[:hy], + 'ia' => table[:ia], + 'is' => table[:is], + 'it' => table[:it], + 'la' => table[:la], + 'lo' => table[:lo], + 'lt' => table[:lt], + 'lv' => table[:lv], + 'ml' => table[:ml], + 'mr' => table[:mr], + 'nl' => table[:nl], + 'no' => table[:no], + 'nn' => table[:nn], + 'oc' => table[:oc], + 'pl' => table[:pl], + 'pt' => table[:pt], + 'pt_BR' => table[:pt_BR], + 'ro' => table[:ro], + 'ru' => table[:ru], + 'sa' => table[:sa], + 'se' => table[:se], + 'sk' => table[:sk], + 'sl' => table[:sl], + 'sq' => table[:sq], + 'sr' => table[:sr], + 'sv' => table[:sv], + 'ta' => table[:ta], + 'te' => table[:te], + 'th' => table[:th], + 'tk' => table[:tk], + 'tr' => table[:tr], + 'uk' => table[:uk], + 'ur' => table[:ur], + 'us' => table[:en], + 'vi' => table[:vi], + 'en' => table[:en], + 'xx' => table[:en] + } + end + self + end + end +end +__END__ +Language Lists +* po4a c: + <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] +* polyglossia xlp: + <http://mirrors.ctan.org/macros/xetex/latex/polyglossia/polyglossia.pdf> + missing from (:c) list: + arabic asturian bahasai bahasam coptic divehi farsi lsorbian magyar scottish syriac usorbian +note ISO_639-1 + <http://en.wikipedia.org/wiki/ISO_639-1> + <http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes> +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 + + + +module SiSU_text_translation class Language def initialize(md) @md=md @@ -140,1642 +294,3 @@ module SiSU_i18n end end end -module SiSU_Translate - require_relative 'sysenv' # sysenv.rb - include SiSU_Env; include SiSU_Param - class Source - def initialize(md,doc_lang,trans_str='') - @md,@doc_lang,@trans_str=md,doc_lang,trans_str - @lang_class=case @doc_lang - when /American/i; English.new(md,doc_lang,trans_str) # tag depreciated, see iso 639-2 - when /English/i; English.new(md,doc_lang,trans_str) - when /French/i; French.new(md,doc_lang,trans_str) - when /German/i; German.new(md,doc_lang,trans_str) - when /Italian/i; Italian.new(md,doc_lang,trans_str) - when /Spanish/i; Spanish.new(md,doc_lang,trans_str) - when /Brazilian(?: Portuguese)?/i; Portuguese.new(md,doc_lang,trans_str) # tag depreciated, see iso 639-2 - when /Portuguese/i; Portuguese.new(md,doc_lang,trans_str) - when /Swedish/i; Swedish.new(md,doc_lang,trans_str) - when /Danish/i; Danish.new(md,doc_lang,trans_str) - when /Finnish/i; Finnish.new(md,doc_lang,trans_str) - when /Norwegian/i; Norwegian.new(md,doc_lang,trans_str) - when /Icelandic/i; Icelandic.new(md,doc_lang,trans_str) - when /Dutch/i; Dutch.new(md,doc_lang,trans_str) - when /Estonian/i; Estonian.new(md,doc_lang,trans_str) - when /Hungarian/i; Hungarian.new(md,doc_lang,trans_str) - when /Polish/i; Polish.new(md,doc_lang,trans_str) - when /Romanian/i; Romanian.new(md,doc_lang,trans_str) - when /Russian/i; Russian.new(md,doc_lang,trans_str) - when /Greek/i; Greek.new(md,doc_lang,trans_str) - when /Ukranian/i; Ukranian.new(md,doc_lang,trans_str) - when /Turkish/i; Turkish.new(md,doc_lang,trans_str) - when /Slovenian/i; Slovenian.new(md,doc_lang,trans_str) - when /Croatian/i; Croatian.new(md,doc_lang,trans_str) - when /Slovak(?:ian)?/i; Slovak.new(md,doc_lang,trans_str) - when /Czech/i; Czech.new(md,doc_lang,trans_str) - when /Bulgarian/i; Bulgarian.new(md,doc_lang,trans_str) - else English.new(md,doc_lang,trans_str) - end - end - - def filename - @lang_class.filename - end - def description - @lang_class.description - end - def metadata - @lang_class.metadata - end - def filetype_description - @lang_class.filetype_description - end - def file_size - @lang_class.file_size - end - def sourcefile - @lang_class.sourcefile - end - def sourcefile_digest - @lang_class.sourcefile_digest - end - def full_title #dc - @lang_class.full_title - end - def title - @lang_class.title - end - def subtitle - @lang_class.subtitle - end - def author - @lang_class.author - end - def contributor - @lang_class.contributor - end - def translator - @lang_class.translator - end - def illustrator - @lang_class.illustrator - end - def publisher - @lang_class.publisher - end - def prepared_by - @lang_class.prepared_by - end - def digitized_by - @lang_class.digitized_by - end - def subject - @lang_class.subject - end - def description #dc (watch) - @lang_class.description - end - def abstract - @lang_class.abstract - end - def type - @lang_class.type - end - def rights - @lang_class.rights - end - def digitized_by - @lang_class.digitized_by - end - def date - @lang_class.date - end - def date_created - @lang_class.date_created - end - def date_available - @lang_class.date_available - end - def date_valid - @lang_class.date_valid - end - def date_modified - @lang_class.date_modified - end - def date_issued - @lang_class.date_issued - end - def language - @lang_class.language - end - def language_original - @lang_class.language_original - end - def format - @lang_class.format - end - def identifier - @lang_class.identifier - end - def source - @lang_class.source - end - def relation - @lang_class.relation - end - def coverage - @lang_class.coverage - end - def keywords - @lang_class.keywords - end - def comments - @lang_class.comments - end - def cls_loc - @lang_class.cls_loc - end - def cls_dewey - @lang_class.cls_dewey - end - def cls_oclc - @lang_class.cls_oclc - end - def cls_gutenberg - @lang_class.cls_gutenberg - end - def cls_isbn - @lang_class.cls_isbn - end - def prefix_a - @lang_class.prefix_a - end - def prefix_b - @lang_class.prefix_b - end - def topic_register - @lang_class.topic_register - end - def fns - @lang_class.fns - end - def word_count - @lang_class.word_count - end - def dgst - @lang_class.dgst - end - def sc_number - @lang_class.sc_number - end - def sc_date - @lang_class.sc_date - end - def last_generated - @lang_class.last_generated - end - def sisu_version - @lang_class.sisu_version - end - def ruby_version - @lang_class.ruby_version - end - def suggested_links - @lang_class.suggested_links - end - def language_version_list - @lang_class.language_version_list - end - def language - @lang_class.language - end - def manifest_description - @lang_class.manifest_description - end - def manifest_description_output - @lang_class.manifest_description_output - end - def manifest_description_metadata - @lang_class.manifest_description_metadata - end - def language_list_translated - @lang_class.language_list - end - def language_list - lang=case @trans_str - when /American/i; 'American English' # tag depreciated, see iso 639-2 - when /English/i; 'English' - when /French/i; 'français' - when /German/i; 'Deutsch' - when /Italian/i; 'Italiano' - when /Spanish/i; 'español' - when /Brazilian(?: Portuguese)?/i; 'Brazilian Português' # tag depreciated, see iso 639-2 - when /Portuguese/i; 'Português' - when /Swedish/i; 'svenska' - when /Danish/i; 'dansk' - when /Finnish/i; 'suomi' - when /Norwegian/i; 'norsk' - when /Icelandic/i; 'Icelandic' - when /Dutch/i; 'Nederlands' - when /Estonian/i; 'Estonian' - when /Hungarian/i; 'Hungarian' - when /Polish/i; 'polski' - when /Romanian/i; 'română' - when /Russian/i; 'Русский (Russkij)' - when /Greek/i; 'Ελληνικά (Ellinika)' - when /Ukranian/i; 'українська (ukrajins\'ka)' - when /Turkish/i; 'Türkçe' - when /Slovenian/i; 'Slovenian' - when /Croatian/i; 'Croatian' - when /Slovak(?:ian)?/i; 'slovensky' #slovensky ? - when /Czech/i; 'česky' - when /Bulgarian/i; 'Български (Bəlgarski)' - when /Japanese/i; '日本語 (Nihongo)' - when /Korean/i; '한국어 (Hangul)' - #when /Catalan/i; 'català' - else 'English' - end - #check on 中文 and عربي - end - end - class English - def initialize(md,doc_lang,trans_str) - @md,@doc_lang,@trans_str=md,doc_lang,trans_str - end - def filename - 'filename' - end - def description - 'description' - end - def filetype_description - 'filetype description' - end - def metadata - 'metadata' - end - def file_size - 'file size' - end - def full_title #dc - 'Title' - end - def title - 'Title' - end - def subtitle - 'Subtitle' - end - def author - 'Author' - end - def author #dc - 'Creator' - end - def contributor #dc - 'Contributor' - end - def translator - 'Translator' - end - def illustrator - 'Illustrator' - end - def publisher #dc - 'Publisher' - end - def prepared_by - 'Prepared by' - end - def digitized_by - 'Digitized by' - end - def subject #dc - 'Subject' - end - def description #dc (watch) - 'Description' - end - def abstract #dc - 'Abstract' - end - def type #dc - 'Type' - end - def rights #dc - 'Rights' - end - def date #dc - 'Date' - end - def date_created #dc - 'Date created' - end - def date_issued #dc - 'Date issued' - end - def date_available #dc - 'Date available' - end - def date_modified #dc - 'Date modified' - end - def date_valid #dc - 'Date valid' - end - def language #dc - 'Language' - end - def language_original - 'Original Language' - end - def format #dc - 'Format' - end - def identifier #dc - 'Identifier' - end - def source #dc - 'Source' - end - def relation #dc - 'Relation' - end - def coverage #dc - 'Coverage' - end - def keywords - 'Keywords' - end - def comments - 'Comments' - end - def cls_loc - 'Classify Library of Congress' - end - def cls_dewey - 'Classify Dewey' - end - def cls_oclc - 'Classify OCLC number' - end - def cls_gutenberg - 'Classify Project Gutenberg' - end - def cls_isbn - 'Classify ISBN' - end - def prefix_a - 'Prefix (a)' - end - def prefix_b - 'Prefix (b)' - end - def topic_register - 'Topics Registered' - end - def sourcefile - 'Sourcefile' - end - def word_count - 'Word Count approximate' - end - def sourcefile_digest - 'Sourcefile Digest' - end - def digest_md5 - 'Sourcefile Digest (md5)' - end - def digest_sha256 - 'Sourcefile Digest (sha256)' - end - def sc_number - 'Document (RCS/CVS) number' - end - def sc_date - 'Document (RCS/CVS) number' - end - def last_generated - 'Document (dal) last generated' - end - def sisu_version - 'Generated by' - end - def ruby_version - 'Ruby version' - end - def suggested_links - 'metadata suggested links' - end - def language_version_list - 'Document Language Versions, manifests' - end - def manifest_description - 'SiSU manifest of document filetypes and metadata' - end - def manifest_description_output - 'Available document filetypes' - end - def manifest_description_metadata - 'Document Metadata' - end - def language_list_translated - lang=case @trans_str - when /American/i; 'American English' # tag depreciated, see iso 639-2 - when /English/i; 'English' - when /French/i; 'French' - when /German/i; 'German' - when /Italian/i; 'Italian' - when /Spanish/i; 'Spanish' - when /Brazilian(?: Portuguese)?/i; 'Brazilian Portuguese' # tag depreciated, see iso 639-2 - when /Portuguese/i; 'Portuguese' - when /Swedish/i; 'Swedish' - when /Danish/i; 'Danish' - when /Finnish/i; 'Finnish' - when /Norwegian/i; 'Norwegian' - when /Icelandic/i; 'Icelandic' - when /Dutch/i; 'Dutch' - when /Estonian/i; 'Estonian' - when /Hungarian/i; 'Hungarian' - when /Polish/i; 'Polish' - when /Romanian/i; 'Romanian' - when /Russian/i; 'Russian' - when /Greek/i; 'Greek' - when /Ukranian/i; 'Ukranian' - when /Turkish/i; 'Turkish' - when /Slovenian/i; 'Slovenian' - when /Croatian/i; 'Croatian' - when /Slovak(?:ian)?/i; 'Slovakian' - when /Czech/i; 'Czech' - when /Bulgarian/i; 'Bulgarian' - else @trans_str - end - end - end - class French - def initialize(md,doc_lang,trans_str) - @md,@doc_lang,@trans_str=md,doc_lang,trans_str - end - def filename - 'nom de fichier' - end - def description - 'description' - end - def filetype_description - description - end - def metadata - 'metadonnées' - end - def file_size - 'taille' - end - def full_title #dc - 'Titre' - end - def title - 'Titre' - end - def subtitle - 'Sous titre' - end - def author - 'Auteur' - end - def author #dc - 'Auteur' - end - def contributor #dc - 'Contributeur' - end - def translator - 'Traducteur' - end - def illustrator - 'Illustrateur' - end - def publisher #dc - 'Éditeur' - end - def prepared_by - 'Préparé par' - end - def digitized_by - 'Numérisé par' - end - def subject #dc - 'Sujet' - end - def description #dc (watch) - 'Description' - end - def abstract #dc - 'Résumé' - end - def type #dc - 'Type' - end - def rights #dc - 'Droits relatifs à la ressource' - end - def date #dc - 'Date' - end - def date_created #dc - 'Date de création' - end - def date_issued #dc - 'Date de publication' - end - def date_available #dc - 'Date de mise à disposition' - end - def date_modified #dc - 'Date de modification' - end - def date_valid #dc - 'Date de validité' - end - def language #dc - 'Langue' - end - def language_original - 'Langue originale' - end - def format #dc - 'Format' - end - def identifier #dc - 'Identifiant' - end - def source #dc - 'Source' - end - def relation #dc - 'Lien' - end - def coverage #dc - 'Portée du document' - end - def keywords - 'Mots clef' - end - def comments - 'Commentaires' - end - def cls_loc - 'Classification de la bibliothèque du congres' - end - def cls_dewey - 'Classification Dewey' - end - def cls_oclc # fix - 'Classify OCLC number' - end - def cls_gutenberg - 'Classification du project Gutenberg' - end - def cls_isbn - 'Classification ISBN' - end - def prefix_a - 'Préfixe (a)' - end - def prefix_b - 'Préfixe (b)' - end - def topic_register - 'Topics Registered' - end - def sourcefile - 'Fichier source' - end - def word_count - 'Nombre approximatif de mots' - end - def sourcefile_digest - 'Condensé du fichier source' - end - def digest_md5 - 'Condensé du fichier source (md5)' - end - def digest_sha256 - 'Condensé du fichier source (sha256)' - end - def sc_number - 'Numéro (RCS/CVS) du document' - end - def sc_date - 'Numéro (RCS/CVS) du document' - end - def last_generated - 'Dernière production du document (metaverse)' - end - def sisu_version - 'Généré par' - end - def ruby_version - 'Version de Ruby' - end - def suggested_links - 'Liens suggérés' - end - def language_version_list - 'Versions des langues du document, manifestes' - end - def manifest_description - 'SiSU manifest of document filetypes and metadata' - end - def manifest_description_output - 'Manifeste SiSU du document généré' - end - def manifest_description_metadata - 'Manifeste SiSU des métadonnées du document' - end - def language_list_translated - lang=case @trans_str - when /American/i; 'Anglais americain' # tag depreciated, see iso 639-2 - when /English/i; 'Anglais' - when /French/i; 'Français' - when /German/i; 'Allemand' - when /Italian/i; 'Italien' - when /Spanish/i; 'Espagnol' - when /Brazilian(?: Portuguese)?/i; 'Portugais brésilien' # tag depreciated, see iso 639-2 - when /Portuguese/i; 'Portugais' - when /Swedish/i; 'Suédois' - when /Danish/i; 'Danois' - when /Finnish/i; 'Finnois' - when /Norwegian/i; 'Norvégien' - when /Icelandic/i; 'Islandais' - when /Dutch/i; 'Néerlandais' - when /Estonian/i; 'Estonien' - when /Hungarian/i; 'Hongrois' - when /Polish/i; 'Polonais' - when /Romanian/i; 'Roumain' - when /Russian/i; 'Russe' - when /Greek/i; 'Grec' - when /Ukranian/i; 'Ukrainien' - when /Turkish/i; 'Turc' - when /Slovenian/i; 'Slovène' - when /Croatian/i; 'Croate' - when /Slovak(?:ian)?/i; 'Slovaque' - when /Czech/i; 'Tcheque' - when /Bulgarian/i; 'Bulgare' - else @trans_str - end - end - end - class German - def initialize(md,doc_lang,trans_str) - @md,@doc_lang,@trans_str=md,doc_lang,trans_str - end - def filename - 'Dateiname' - end - def description - 'Beschreibung' - end - def filetype_description - description - end - def metadata - 'Metadata' - end - def file_size - 'Dateigrösse' - end - def full_title #dc - 'Titel' - end - def title - 'Titel' - end - def subtitle - 'Untertitel' - end - def author - 'Autor' - end - def contributor #dc - 'Mitautor' - end - def translator - 'Übersetzung' - end - def illustrator - 'Illustrator' - end - def publisher - 'Herausgeber' - end - def prepared_by - 'gesetzt von' - end - def digitized_by - 'digitalisiert von' - end - def subject - 'Titel' - end - def description #dc (watch) - 'Beschreibung' - end - def abstract #dc - 'Abstract' - end - def type - 'Typ' - end - def rights - 'Rechte' - end - def date - 'Datum' - end - def date_created - 'Erstellung' - end - def date_issued - 'Herausgabe' - end - def date_available - 'Veröffentlichung' - end - def date_modified - 'Modifikation' - end - def date_valid - 'Gültigkeit' - end - def language - 'Sprache' - end - def language_original - 'Ursprungssprache' - end - def format #dc - 'Format' - end - def identifier #dc - 'Bezeichnung' - end - def source #dc - 'Quelle' - end - def relation #dc - 'Beziehung' - end - def coverage #dc - 'Eingrenzung' - end - def keywords - 'Schlüsselwörter' - end - def comments - 'Kommentare' - end - def cls_loc - 'Klassifikation nach Library of Congress' - end - def cls_dewey - 'Klassifikation nach Dewey' - end - def cls_oclc # fix - 'Classify OCLC number' - end - def cls_gutenberg - 'Klassifikation nach Projekt Gutenberg' - end - def cls_isbn - 'Klassifikation nach ISBN' - end - def prefix_a - 'Präfix (a)' - end - def prefix_b - 'Präfix (b)' - end - def topic_register - 'Topics Registered' - end - def sourcefile - 'Quelldatei' - end - def word_count - 'Anzahl Wörter' - end - def sourcefile_digest - 'Quelldatei Digest' - end - def digest_md5 - 'Prüfsumme der Quelldatei (MD5)' - end - def digest_sha256 - 'Prüfsumme der Quelldatei (SHA256)' - end - def sc_number - 'Dokumentversion (RCS/CVS)' - end - def sc_date - 'Dokumentdatum (RCS/CVS)' - end - def last_generated - 'Letzte Erstellung (metaverse)' - end - def sisu_version - 'erstellt bei' - end - def ruby_version - 'Ruby Version' - end - def suggested_links - 'empfohlene Links' - end - def language_version_list - 'verfügbare Sprachen' - end - def manifest_description - 'SiSU manifest of document filetypes and metadata' - end - def manifest_description_output - 'SiSU Zusammenfassung des Dokumentes' - end - def manifest_description_metadata - 'SiSU Zusammenfassung der Metadaten' - end - def language_list_translated - lang=case @trans_str - when /American/i; 'Amerikanisch-Englisch' # tag depreciated, see iso 639-2 - when /English/i; 'Englisch' - when /French/i; 'Französisch' - when /German/i; 'Deutsch' - when /Italian/i; 'Italienisch' - when /Spanish/i; 'Spanisch' - when /Brazilian(?: Portuguese)?/i; 'Brasilianisch-Portugiesisch' # tag depreciated, see iso 639-2 - when /Portuguese/i; 'Portugiesisch' - when /Swedish/i; 'Schwedisch' - when /Danish/i; 'Dänisch' - when /Finnish/i; 'Finnisch' - when /Norwegian/i; 'Norwegisch' - when /Icelandic/i; 'Isländisch' - when /Dutch/i; 'Niederländisch' - when /Estonian/i; 'Estnisch' - when /Hungarian/i; 'Ungarisch' - when /Polish/i; 'Polnisch' - when /Romanian/i; 'Rumänisch' - when /Russian/i; 'Russisch' - when /Greek/i; 'Griechisch' - when /Ukranian/i; 'Ukrainisch' - when /Turkish/i; 'Türkisch' - when /Slovenian/i; 'Slovenisch' - when /Croatian/i; 'Kroatisch' - when /Slovak(?:ian)?/i; 'Slovakisch' - when /Czech/i; 'Tschechisch' - when /Bulgarian/i; 'Bulgarisch' - else @trans_str - end - end - end - class Spanish - def initialize(md,doc_lang,trans_str) - @md,@doc_lang,@trans_str=md,doc_lang,trans_str - end - def filename - 'nombre del fichero' - end - def description - 'descripción' - end - def filetype_description - description - end - def metadata - 'metadatos' - end - def file_size - 'tamaño del fichero' - end - def full_title #dc - 'Título' - end - def title - 'Título' - end - def subtitle - 'Subtítulo' - end - def author #dc - 'Creador' - end - def contributor #dc - 'Contribuidor' - end - def translator - 'Traductor' - end - def illustrator - 'Ilustrador' - end - def publisher #dc - 'Editor' - end - def prepared_by - 'Preparado por' - end - def digitized_by - 'Digitalizado por' - end - def subject #dc - 'Asunto' - end - def description #dc (watch) - 'Descripción' - end - def abstract #dc - 'Resumen' - end - def type #dc - 'Tipo' - end - def rights #dc - 'Derechos' - end - def date #dc - 'Fecha' - end - def date_created #dc - 'Fecha de creación' - end - def date_issued #dc - 'Fecha de publicación' - end - def date_available #dc - 'Fecha de disponibilidad' - end - def date_modified #dc - 'Fecha de modificación' - end - def date_valid #dc - 'Fecha de valided' - end - def language #dc - 'Idioma' - end - def language_original - 'Lenguaje original' - end - def format #dc - 'Formato' - end - def identifier #dc - 'Identificador' - end - def source #dc - 'Fuente' - end - def relation #dc - 'Relación' - end - def coverage #dc - 'Cobertura' - end - def keywords - 'Palabras claves' - end - def comments - 'Comentarios' - end - def cls_loc - 'Clasificación Biblioteca del Congreso' - end - def cls_dewey - 'Clasificación Dewey' - end - def cls_oclc # fix - 'Classify OCLC number' - end - def cls_gutenberg - 'Clasificación Proyecto Gutenberg' - end - def cls_isbn - 'Clasificación ISBN' - end - def prefix_a - 'Prefijo (a)' - end - def prefix_b - 'Prefijo (b)' - end - def topic_register - 'Topics Registered' - end - def sourcefile - 'Fichero fuente' - end - def word_count - 'Número de palabras apróximado' - end - def sourcefile_digest - 'Resumen del fichero fuente' - end - def digest_md5 - 'Resumen del fichero fuente (md5)' - end - def digest_sha256 - 'Resumen del fichero fuente (sha256)' - end - def sc_number - 'Versión (RCS/CVS) del documento' - end - def sc_date - 'Versión (RCS/CVS) del documento' - end - def last_generated - 'Última generación (metaverse) del documento' - end - def sisu_version - 'Generado por' - end - def ruby_version - 'Versión de Ruby' - end - def suggested_links - 'enlaces sugeridos de metadatos' - end - def language_version_list - 'Document Language Versions, manifests' - end - def manifest_description - 'SiSU manifest of document filetypes and metadata' - end - def manifest_description_output - 'Manifiesto SiSU de salida generada' - end - def manifest_description_metadata - 'Manifiesto SiSU de metadatos de documento' - end - def language_list_translated - lang=case @trans_str - when /American/i; 'Inglés Americano' # tag depreciated, see iso 639-2 - when /English/i; 'Inglés' - when /French/i; 'Francés' - when /German/i; 'Alemán' - when /Italian/i; 'Italiano' - when /Spanish/i; 'Español' - when /Brazilian(?: Portuguese)?/i; 'Portugués de Brasil' # tag depreciated, see iso 639-2 - when /Portuguese/i; 'Portugués' - when /Swedish/i; 'Sueco' - when /Danish/i; 'Danés' - when /Finnish/i; 'Finés' - when /Norwegian/i; 'Noruego' - when /Icelandic/i; 'Islandés' - when /Dutch/i; 'Holandés' - when /Estonian/i; 'Estonio' - when /Hungarian/i; 'Húngaro' - when /Polish/i; 'Polaco' - when /Romanian/i; 'Rumano' - when /Russian/i; 'Ruso' - when /Greek/i; 'Griego' - when /Ukranian/i; 'Ucraniano' - when /Turkish/i; 'Turco' - when /Slovenian/i; 'Eslovaco' - when /Croatian/i; 'Croata' - when /Slovak(?:ian)?/i; 'Eslovaco' - when /Czech/i; 'Checo' - when /Bulgarian/i; 'Búlgaro' - else @trans_str - end - end - end - class Italian - def initialize(md,doc_lang,trans_str) - @md,@doc_lang,@trans_str=md,doc_lang,trans_str - end - def filename - 'nome del file' - end - def description - 'descrizione' - end - def filetype_description - description - end - def metadata - 'metadati' - end - def file_size - 'dimensione' - end - def full_title #dc - 'Titolo' - end - def title - 'Titolo' - end - def subtitle - 'Sottotitolo' - end - def author #dc - 'Autore' - end - def contributor #dc - 'Contributore' - end - def translator - 'Traduttore' - end - def illustrator - 'Illustratore' - end - def publisher #dc - 'Casa editrice' - end - def prepared_by - 'Preparato da' - end - def digitized_by - 'Convertito in digitale da' - end - def subject #dc - 'Oggetto' - end - def description #dc (watch) - 'Descrizione' - end - def abstract #dc - 'Abstract' - end - def type #dc - 'Tipo' - end - def rights #dc - 'Diritti del lettore' - end - def date #dc - 'Data' - end - def date_created #dc - 'Data di creazione' - end - def date_issued #dc - 'Data di pubblicazione' - end - def date_available #dc - 'Data di effettiva disponibilità' - end - def date_modified #dc - 'Data di ultima modifica' - end - def date_valid #dc - 'Data di inizo validità' - end - def language #dc - 'Lingua' - end - def language_original - 'Lingua originale' - end - def format #dc - 'Formato' - end - def identifier #dc - 'Indentificatore' - end - def source #dc - 'Fonte' - end - def relation #dc - 'Collegamento' - end - def coverage #dc - 'Ambito' - end - def keywords - 'Parole chiave' - end - def comments - 'Commenti' - end - def cls_loc - 'Classificazione della Library of Congress' - end - def cls_dewey - 'Classificazione Dewey' - end - def cls_oclc # fix - 'Classify OCLC number' - end - def cls_gutenberg - 'Classificazione del Progetto Gutenberg' - end - def cls_isbn - 'Numero ISBN' - end - def prefix_a - 'Premessa (a)' - end - def prefix_b - 'Premessa (b)' - end - def topic_register - 'Topics Registered' - end - def sourcefile - 'Sorgente' - end - def word_count - 'Numero approssimativo di parole' - end - def sourcefile_digest - 'Checksum file sorgente' - end - def digest_md5 - 'Checksum file sorgente (md5)' - end - def digest_sha256 - 'Checksum file sorgente (sha256)' - end - def sc_number - 'Numero di revisione (RCS/CVS)' - end - def sc_date - 'Numero di revisione (RCS/CVS)' - end - def last_generated - 'Data di ultima generazione (dal metaverse)' - end - def sisu_version - 'Generato da' - end - def ruby_version - 'Ruby versione' - end - def suggested_links - 'Link suggeriti' - end - def language_version_list - 'Traduzioni disponibili' - end - def manifest_description - 'SiSU manifest of document filetypes and metadata' - end - def manifest_description_output - 'Inventario SiSU dell\'output generato' - end - def manifest_description_metadata - 'Inventario SiSU dei metadati' - end - def language_list_translated - lang=case @trans_str - when /American/i; 'Inglese USA' # tag depreciated, see iso 639-2 - when /English/i; 'Inglese' - when /French/i; 'Francese' - when /German/i; 'Tedesco' - when /Italian/i; 'Italiano' - when /Spanish/i; 'Spagnolo' - when /Brazilian(?: Portuguese)?/i; 'Portoguese (Brasile)' # tag depreciated, see iso 639-2 - when /Portuguese/i; 'Portoguese' - when /Swedish/i; 'Svedese' - when /Danish/i; 'Danese' - when /Finnish/i; 'Finlandese' - when /Norwegian/i; 'Norvegese' - when /Icelandic/i; 'Islandese' - when /Dutch/i; 'Olandese' - when /Estonian/i; 'Estone' - when /Hungarian/i; 'Ungherese' - when /Polish/i; 'Polacco' - when /Romanian/i; 'Romeno' - when /Russian/i; 'Russo' - when /Greek/i; 'Greco' - when /Ukranian/i; 'Ucraino' - when /Turkish/i; 'Turco' - when /Slovenian/i; 'Sloveno' - when /Croatian/i; 'Croato' - when /Slovak(?:ian)?/i; 'Slovacco' - when /Czech/i; 'Ceco' - when /Bulgarian/i; 'Bulgaro' - else @trans_str - end - end - end - class Finnish - def initialize(md,doc_lang,trans_str) - @md,@doc_lang,@trans_str=md,doc_lang,trans_str - end - def filename - 'tiedostonimi' - end - def description - 'kuvaus' - end - def filetype_description - description - end - def metadata - 'metadata' - end - def file_size - 'tiedoston koko' - end - def full_title #dc - 'otsikko' - end - def title - 'Otsikko' - end - def subtitle - 'Alaotsikko' - end - def author #dc - 'tekijä' - end - def contributor #dc - 'osallistuja' - end - def translator - 'Kääntäjä' - end - def illustrator - 'Kuvittaja' - end - def publisher #dc - 'julkaisija' - end - def prepared_by - 'Valmistaja' - end - def digitized_by - 'Digitalisoinut' - end - def subject #dc - 'aihe' - end - def description #dc (watch) - 'kuvaus' - end - def abstract #dc - 'tiivistelmä' - end - def type #dc - 'tyyppi' - end - def rights #dc - 'oikeudet' - end - def date #dc - 'päiväys' - end - def date_created #dc - 'luontipäivä' - end - def date_issued #dc - 'julkaisupäivä' - end - def date_available #dc - 'saantipäivä' - end - def date_modified #dc - 'muokkauspäivä' - end - def date_valid #dc - 'kelpoisuuspäivä' - end - def language #dc - 'kieli' - end - def language_original - 'Alkuperäiskieli' - end - def format #dc - 'muoto' - end - def identifier #dc - 'tunnus' - end - def source #dc - 'lähde' - end - def relation #dc - 'suhde' - end - def coverage #dc - 'kattavuus' - end - def keywords - 'Avainsanat' - end - def comments - 'Kommentit' - end - def cls_loc - 'Classify Library of Congress' - end - def cls_dewey - 'Classify Dewey' - end - def cls_oclc # fix - 'Classify OCLC number' - end - def cls_gutenberg - 'Classify Project Gutenberg' - end - def cls_isbn - 'Classify ISBN' - end - def prefix_a - 'Prefix (a)' - end - def prefix_b - 'Prefix (b)' - end - def topic_register - 'Topics Registered' - end - def sourcefile - 'Lähdetiedosto' - end - def word_count - 'Arvioitu sanamäärä' - end - def sourcefile_digest - 'Lähdetiedoston tiiviste' - end - def digest_md5 - 'Lähdetiedoston tiiviste (md5)' - end - def digest_sha256 - 'Lähdetiedoston tiiviste (sha256)' - end - def sc_number - 'Dokumentin RCS/CVS-numero' - end - def sc_date - 'Dokumentin RCS/CVS-päiväys' - end - def last_generated - 'Viimeksi tuotettu dokumentti (metaverse)' - end - def sisu_version - 'Generoinut' - end - def ruby_version - 'Ruby-versio' - end - def suggested_links - 'metadatan ehdottamat linkit' - end - def language_version_list - 'Dokumentin kieliversiot, manifestit' - end - def manifest_description - 'SiSU manifest of document filetypes and metadata' - end - def manifest_description_output - 'Tuotetun tuloksen SISU-manifesti' - end - def manifest_description_metadata - 'Dokumenttimetadatan SISU-manifesti' - end - def language_list_translated - lang=case @trans_str - when /American/i; 'Amerikanenglanti' # tag depreciated, see iso 639-2 - when /English/i; 'Englanti' - when /French/i; 'Ranska' - when /German/i; 'Saksa' - when /Italian/i; 'Italia' - when /Spanish/i; 'Espanja' - when /Brazilian(?: Portuguese)?/i; 'Brasilian portugali' # tag depreciated, see iso 639-2 - when /Portuguese/i; 'Portugali' - when /Swedish/i; 'Ruotsi' - when /Danish/i; 'Tanska' - when /Finnish/i; 'Suomi' - when /Norwegian/i; 'Norja' - when /Icelandic/i; 'Islanti' - when /Dutch/i; 'Hollanti' - when /Estonian/i; 'Viro' - when /Hungarian/i; 'Unkari' - when /Polish/i; 'Puola' - when /Romanian/i; 'Romania' - when /Russian/i; 'Venäjä' - when /Greek/i; 'Kreikka' - when /Ukranian/i; 'Ukraina' - when /Turkish/i; 'Turkki' - when /Slovenian/i; 'Slovenia' - when /Croatian/i; 'Kroatia' - when /Slovak(?:ian)?/i; 'Slovakki' - when /Czech/i; 'Tsekki' - when /Bulgarian/i; 'Bulgaria' - else @trans_str - end - end - end - class Porguguese < English - end - class Swedish < English - end - class Danish < English - end - class Norwegian < English - end - class Icelandic < English - end - class Dutch < English - end - class Estonian < English - end - class Hungarian < English - end - class Polish < English - end - class Romanian < English - end - class Russian < English - end - class Greek < English - end - class Ukranian < English - end - class Turkish < English - end - class Croatian < English - end - class Slovakian < English - end - class Czech < English - end - class Bulgarian < English - end -end -__END__ -http://www.debian.org/international/l10n/po/ -http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes -http://www.loc.gov/standards/iso639-2/php/code_list.php -albanian sq -amharic am -arabic ar -armenian hy -asturian -bahasai -bahasam -basque eu -bengali bn -brazil[ian] pt_BR -breton br -bulgarian bg -catalan ca -coptic -croatian hr -czech cs -danish da -divehi -dutch nl -english en -esperanto eo -estonian et -galician gl -german de -greek el -hebrew he -hindi hi -icelandic is -interlingua ia -irish ga -italian it -farsi -finnish fi -french fr -lao lo -latin la -latvian lv -lithuanian lt -lsorbian -magyar -malayalam ml -marathi mr -norsk no -nynorsk nn -occitan oc -polish pl -portuges pt -romanian ro -russian ru -samin se (check sami?) -sanskrit sa -scottish # (gd (Gaelic (Scots))) -serbian sr -slovak sk -slovenian sl -spanish es -swedish sv -syriac # (ar_SY (Arabic, as spoken in Syrian Arab Republic)) -tamil ta -telugu te -thai th -turkish tr -turkmen tk -ukrainian uk -urdu ur -usorbian -vietnamese vi -welsh cy diff --git a/lib/sisu/v3/manifest.rb b/lib/sisu/v3/manifest.rb index 38dc994c..4373ad26 100644 --- a/lib/sisu/v3/manifest.rb +++ b/lib/sisu/v3/manifest.rb @@ -59,7 +59,7 @@ module SiSU_Manifest require_relative 'sysenv' # sysenv.rb include SiSU_Env - require_relative 'i18n' # i18n.rb + require_relative 'prog_text_translation' # prog_text_translation.rb require_relative 'particulars' # particulars.rb include SiSU_Particulars require_relative 'html_minitoc' # html_minitoc.rb @@ -72,8 +72,8 @@ 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) - @doc_language=l[:l] + l=SiSU_Env::Standardise_language.new(@opt.lng).language + @doc_language=l[:n] end def read begin @@ -108,8 +108,8 @@ 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) - @language=l[:l] + l=SiSU_Env::Standardise_language.new(@md.opt.lng).language + @language=l[:n] @translate=SiSU_Translate::Source.new(@md,@language) @brace_url=SiSU_Viz::Skin.new.url_decoration end @@ -149,7 +149,7 @@ module SiSU_Manifest flv=@env.published_manifests?(@base_path) @manifest[:html] << %{<tr><th class="left"><div id="horizontal_links"><ul id="horizontal">\n} flv.each do |l| - lang=SiSU_Translate::Source.new(@md,@language,l[:l]).language_list + lang=SiSU_Translate::Source.new(@md,@language,l[:n]).language_list @manifest[:txt] << "#{l[:m]} #{lang}\n" @manifest[:html] << %{<li class="norm"><a href="#{l[:m]}">#{lang}</a> </li>} end @@ -158,7 +158,7 @@ module SiSU_Manifest def published_languages(id,file) flv=@env.published_manifests?(@base_path) flv.each do |l| - lang=SiSU_Translate::Source.new(@md,@language,l[:l]).language_list + lang=SiSU_Translate::Source.new(@md,@language,l[:n]).language_list @manifest[:txt] << "#{l[:m]} #{lang}\n" @manifest[:html] << %{<tr><th class="left"><p class="bold"><a href="#{l[:m]}">#{lang}</a></p></th><td><p class="norm">#{lang}</p><p class="tiny">#{@brace_url.xml_open}<a href="#{@base_url}/#{l[:m]}">#{@base_url}/#{l[:m]}</a>#{@brace_url.xml_close}</p></td><td class="right"><p class="right"> </p></td></tr>\n} end diff --git a/lib/sisu/v3/manpage.rb b/lib/sisu/v3/manpage.rb index 362d9cda..17fef80b 100644 --- a/lib/sisu/v3/manpage.rb +++ b/lib/sisu/v3/manpage.rb @@ -293,6 +293,7 @@ WOK dob.obj.gsub!(/┆/,'|') dob.obj.gsub!(/\s\.(\S+)/,' \\.\1') dob.obj.gsub!(/(\n\.)(\S\S\S+)/m,'\1\\.\2') + dob.obj.gsub!(/-/,'\-') #manpages use this dob.obj.gsub!(/~/,'~') if dob.obj #manpages use this if dob.is =~/block|group|verse|alt|code/ if dob.is =='code' 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 c2968564..87a556ec 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) @@ -744,12 +744,14 @@ module SiSU_Param end if manpage['name'] manpage['name']=manpage['name'].join("\n.br\n") + manpage['name'].gsub!(/(-)/m,"\\\\\\1") manpage['name'].gsub!(/\A/,"\n.br\n.SH NAME\n.br\n") else manpage['name']='man page "name/whatis" information not provided, set in header @man: name=[whatis information]' end if manpage['synopsis'] manpage['synopsis']=manpage['synopsis'].join("\n\n.br\n") + manpage['synopsis'].gsub!(/(-)/m,"\\\\\\1") manpage['synopsis'].gsub!(/\A/,"\n.br\n.SH SYNOPSIS\n.br\n") else manpage['synopsis']='' @@ -1230,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 @@ -1239,18 +1241,19 @@ module SiSU_Param end unless fn_set_lang[:d]==true #decide, naming convention overrides other settings, within document, etc. @language[:code]=fn_set_lang[:c] - @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 + @language[:name]=fn_set_lang[:n] + end + @fnl=@env.i18n.lang_filename(fn_set_lang[:n]) +#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[:n],"#{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/prog_text_translation.rb b/lib/sisu/v3/prog_text_translation.rb new file mode 100644 index 00000000..e5a78e92 --- /dev/null +++ b/lib/sisu/v3/prog_text_translation.rb @@ -0,0 +1,1697 @@ +# encoding: utf-8 +=begin + + * Name: SiSU + + * Description: a framework for document structuring, publishing and search + + * Author: Ralph Amissah + + * Copyright: (C) 1997 - 2011, Ralph Amissah, All Rights Reserved. + + * License: GPL 3 or later: + + SiSU, a framework for document structuring, publishing and search + + Copyright (C) Ralph Amissah + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation, either version 3 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along with + this program. If not, see <http://www.gnu.org/licenses/>. + + If you have Internet connection, the latest version of the GPL should be + available at these locations: + <http://www.fsf.org/licensing/licenses/gpl.html> + <http://www.gnu.org/licenses/gpl.html> + + <http://www.jus.uio.no/sisu/gpl.fsf/toc.html> + <http://www.jus.uio.no/sisu/gpl.fsf/doc.html> + <http://www.jus.uio.no/sisu/gpl.fsf/plain.txt> + + * SiSU uses: + * Standard SiSU markup syntax, + * Standard SiSU meta-markup syntax, and the + * Standard SiSU object citation numbering and system + + * Hompages: + <http://www.jus.uio.no/sisu> + <http://www.sisudoc.org> + + * Download: + <http://www.jus.uio.no/sisu/SiSU/download.html> + + * Ralph Amissah + <ralph@amissah.com> + <ralph.amissah@gmail.com> + + ** Description: internationalisation + +=end +module SiSU_Translate + require_relative 'sysenv' # sysenv.rb + include SiSU_Env; include SiSU_Param + class Source + def initialize(md,doc_lang,trans_str='') + @md,@doc_lang,@trans_str=md,doc_lang,trans_str + @lang_class=case @doc_lang + when /American/i; English.new(md,doc_lang,trans_str) # tag depreciated, see iso 639-2 + when /English/i; English.new(md,doc_lang,trans_str) + when /French/i; French.new(md,doc_lang,trans_str) + when /German/i; German.new(md,doc_lang,trans_str) + when /Italian/i; Italian.new(md,doc_lang,trans_str) + when /Spanish/i; Spanish.new(md,doc_lang,trans_str) + when /Brazilian(?: Portuguese)?/i; Portuguese.new(md,doc_lang,trans_str) # tag depreciated, see iso 639-2 + when /Portuguese/i; Portuguese.new(md,doc_lang,trans_str) + when /Swedish/i; Swedish.new(md,doc_lang,trans_str) + when /Danish/i; Danish.new(md,doc_lang,trans_str) + when /Finnish/i; Finnish.new(md,doc_lang,trans_str) + when /Norwegian/i; Norwegian.new(md,doc_lang,trans_str) + when /Icelandic/i; Icelandic.new(md,doc_lang,trans_str) + when /Dutch/i; Dutch.new(md,doc_lang,trans_str) + when /Estonian/i; Estonian.new(md,doc_lang,trans_str) + when /Hungarian/i; Hungarian.new(md,doc_lang,trans_str) + when /Polish/i; Polish.new(md,doc_lang,trans_str) + when /Romanian/i; Romanian.new(md,doc_lang,trans_str) + when /Russian/i; Russian.new(md,doc_lang,trans_str) + when /Greek/i; Greek.new(md,doc_lang,trans_str) + when /Ukranian/i; Ukranian.new(md,doc_lang,trans_str) + when /Turkish/i; Turkish.new(md,doc_lang,trans_str) + when /Slovenian/i; Slovenian.new(md,doc_lang,trans_str) + when /Croatian/i; Croatian.new(md,doc_lang,trans_str) + when /Slovak(?:ian)?/i; Slovak.new(md,doc_lang,trans_str) + when /Czech/i; Czech.new(md,doc_lang,trans_str) + when /Bulgarian/i; Bulgarian.new(md,doc_lang,trans_str) + else English.new(md,doc_lang,trans_str) + end + end + + def filename + @lang_class.filename + end + def description + @lang_class.description + end + def metadata + @lang_class.metadata + end + def filetype_description + @lang_class.filetype_description + end + def file_size + @lang_class.file_size + end + def sourcefile + @lang_class.sourcefile + end + def sourcefile_digest + @lang_class.sourcefile_digest + end + def full_title #dc + @lang_class.full_title + end + def title + @lang_class.title + end + def subtitle + @lang_class.subtitle + end + def author + @lang_class.author + end + def contributor + @lang_class.contributor + end + def translator + @lang_class.translator + end + def illustrator + @lang_class.illustrator + end + def publisher + @lang_class.publisher + end + def prepared_by + @lang_class.prepared_by + end + def digitized_by + @lang_class.digitized_by + end + def subject + @lang_class.subject + end + def description #dc (watch) + @lang_class.description + end + def abstract + @lang_class.abstract + end + def type + @lang_class.type + end + def rights + @lang_class.rights + end + def digitized_by + @lang_class.digitized_by + end + def date + @lang_class.date + end + def date_created + @lang_class.date_created + end + def date_available + @lang_class.date_available + end + def date_valid + @lang_class.date_valid + end + def date_modified + @lang_class.date_modified + end + def date_issued + @lang_class.date_issued + end + def language + @lang_class.language + end + def language_original + @lang_class.language_original + end + def format + @lang_class.format + end + def identifier + @lang_class.identifier + end + def source + @lang_class.source + end + def relation + @lang_class.relation + end + def coverage + @lang_class.coverage + end + def keywords + @lang_class.keywords + end + def comments + @lang_class.comments + end + def cls_loc + @lang_class.cls_loc + end + def cls_dewey + @lang_class.cls_dewey + end + def cls_oclc + @lang_class.cls_oclc + end + def cls_gutenberg + @lang_class.cls_gutenberg + end + def cls_isbn + @lang_class.cls_isbn + end + def prefix_a + @lang_class.prefix_a + end + def prefix_b + @lang_class.prefix_b + end + def topic_register + @lang_class.topic_register + end + def fns + @lang_class.fns + end + def word_count + @lang_class.word_count + end + def dgst + @lang_class.dgst + end + def sc_number + @lang_class.sc_number + end + def sc_date + @lang_class.sc_date + end + def last_generated + @lang_class.last_generated + end + def sisu_version + @lang_class.sisu_version + end + def ruby_version + @lang_class.ruby_version + end + def suggested_links + @lang_class.suggested_links + end + def language_version_list + @lang_class.language_version_list + end + def language + @lang_class.language + end + def manifest_description + @lang_class.manifest_description + end + def manifest_description_output + @lang_class.manifest_description_output + end + def manifest_description_metadata + @lang_class.manifest_description_metadata + end + def language_list_translated + @lang_class.language_list + end + def language_list + lang=case @trans_str + when /American/i; 'American English' # tag depreciated, see iso 639-2 + when /English/i; 'English' + when /French/i; 'français' + when /German/i; 'Deutsch' + when /Italian/i; 'Italiano' + when /Spanish/i; 'español' + when /Brazilian(?: Portuguese)?/i; 'Brazilian Português' # tag depreciated, see iso 639-2 + when /Portuguese/i; 'Português' + when /Swedish/i; 'svenska' + when /Danish/i; 'dansk' + when /Finnish/i; 'suomi' + when /Norwegian/i; 'norsk' + when /Icelandic/i; 'Icelandic' + when /Dutch/i; 'Nederlands' + when /Estonian/i; 'Estonian' + when /Hungarian/i; 'Hungarian' + when /Polish/i; 'polski' + when /Romanian/i; 'română' + when /Russian/i; 'Русский (Russkij)' + when /Greek/i; 'Ελληνικά (Ellinika)' + when /Ukranian/i; 'українська (ukrajins\'ka)' + when /Turkish/i; 'Türkçe' + when /Slovenian/i; 'Slovenian' + when /Croatian/i; 'Croatian' + when /Slovak(?:ian)?/i; 'slovensky' #slovensky ? + when /Czech/i; 'česky' + when /Bulgarian/i; 'Български (Bəlgarski)' + when /Japanese/i; '日本語 (Nihongo)' + when /Korean/i; '한국어 (Hangul)' + #when /Catalan/i; 'català' + else 'English' + end + #check on 中文 and عربي + end + end + class English + def initialize(md,doc_lang,trans_str) + @md,@doc_lang,@trans_str=md,doc_lang,trans_str + end + def filename + 'filename' + end + def description + 'description' + end + def filetype_description + 'filetype description' + end + def metadata + 'metadata' + end + def file_size + 'file size' + end + def full_title #dc + 'Title' + end + def title + 'Title' + end + def subtitle + 'Subtitle' + end + def author + 'Author' + end + def author #dc + 'Creator' + end + def contributor #dc + 'Contributor' + end + def translator + 'Translator' + end + def illustrator + 'Illustrator' + end + def publisher #dc + 'Publisher' + end + def prepared_by + 'Prepared by' + end + def digitized_by + 'Digitized by' + end + def subject #dc + 'Subject' + end + def description #dc (watch) + 'Description' + end + def abstract #dc + 'Abstract' + end + def type #dc + 'Type' + end + def rights #dc + 'Rights' + end + def date #dc + 'Date' + end + def date_created #dc + 'Date created' + end + def date_issued #dc + 'Date issued' + end + def date_available #dc + 'Date available' + end + def date_modified #dc + 'Date modified' + end + def date_valid #dc + 'Date valid' + end + def language #dc + 'Language' + end + def language_original + 'Original Language' + end + def format #dc + 'Format' + end + def identifier #dc + 'Identifier' + end + def source #dc + 'Source' + end + def relation #dc + 'Relation' + end + def coverage #dc + 'Coverage' + end + def keywords + 'Keywords' + end + def comments + 'Comments' + end + def cls_loc + 'Classify Library of Congress' + end + def cls_dewey + 'Classify Dewey' + end + def cls_oclc + 'Classify OCLC number' + end + def cls_gutenberg + 'Classify Project Gutenberg' + end + def cls_isbn + 'Classify ISBN' + end + def prefix_a + 'Prefix (a)' + end + def prefix_b + 'Prefix (b)' + end + def topic_register + 'Topics Registered' + end + def sourcefile + 'Sourcefile' + end + def word_count + 'Word Count approximate' + end + def sourcefile_digest + 'Sourcefile Digest' + end + def digest_md5 + 'Sourcefile Digest (md5)' + end + def digest_sha256 + 'Sourcefile Digest (sha256)' + end + def sc_number + 'Document (RCS/CVS) number' + end + def sc_date + 'Document (RCS/CVS) number' + end + def last_generated + 'Document (dal) last generated' + end + def sisu_version + 'Generated by' + end + def ruby_version + 'Ruby version' + end + def suggested_links + 'metadata suggested links' + end + def language_version_list + 'Document Language Versions, manifests' + end + def manifest_description + 'SiSU manifest of document filetypes and metadata' + end + def manifest_description_output + 'Available document filetypes' + end + def manifest_description_metadata + 'Document Metadata' + end + def language_list_translated + lang=case @trans_str + when /American/i; 'American English' # tag depreciated, see iso 639-2 + when /English/i; 'English' + when /French/i; 'French' + when /German/i; 'German' + when /Italian/i; 'Italian' + when /Spanish/i; 'Spanish' + when /Brazilian(?: Portuguese)?/i; 'Brazilian Portuguese' # tag depreciated, see iso 639-2 + when /Portuguese/i; 'Portuguese' + when /Swedish/i; 'Swedish' + when /Danish/i; 'Danish' + when /Finnish/i; 'Finnish' + when /Norwegian/i; 'Norwegian' + when /Icelandic/i; 'Icelandic' + when /Dutch/i; 'Dutch' + when /Estonian/i; 'Estonian' + when /Hungarian/i; 'Hungarian' + when /Polish/i; 'Polish' + when /Romanian/i; 'Romanian' + when /Russian/i; 'Russian' + when /Greek/i; 'Greek' + when /Ukranian/i; 'Ukranian' + when /Turkish/i; 'Turkish' + when /Slovenian/i; 'Slovenian' + when /Croatian/i; 'Croatian' + when /Slovak(?:ian)?/i; 'Slovakian' + when /Czech/i; 'Czech' + when /Bulgarian/i; 'Bulgarian' + else @trans_str + end + end + end + class French + def initialize(md,doc_lang,trans_str) + @md,@doc_lang,@trans_str=md,doc_lang,trans_str + end + def filename + 'nom de fichier' + end + def description + 'description' + end + def filetype_description + description + end + def metadata + 'metadonnées' + end + def file_size + 'taille' + end + def full_title #dc + 'Titre' + end + def title + 'Titre' + end + def subtitle + 'Sous titre' + end + def author + 'Auteur' + end + def author #dc + 'Auteur' + end + def contributor #dc + 'Contributeur' + end + def translator + 'Traducteur' + end + def illustrator + 'Illustrateur' + end + def publisher #dc + 'Éditeur' + end + def prepared_by + 'Préparé par' + end + def digitized_by + 'Numérisé par' + end + def subject #dc + 'Sujet' + end + def description #dc (watch) + 'Description' + end + def abstract #dc + 'Résumé' + end + def type #dc + 'Type' + end + def rights #dc + 'Droits relatifs à la ressource' + end + def date #dc + 'Date' + end + def date_created #dc + 'Date de création' + end + def date_issued #dc + 'Date de publication' + end + def date_available #dc + 'Date de mise à disposition' + end + def date_modified #dc + 'Date de modification' + end + def date_valid #dc + 'Date de validité' + end + def language #dc + 'Langue' + end + def language_original + 'Langue originale' + end + def format #dc + 'Format' + end + def identifier #dc + 'Identifiant' + end + def source #dc + 'Source' + end + def relation #dc + 'Lien' + end + def coverage #dc + 'Portée du document' + end + def keywords + 'Mots clef' + end + def comments + 'Commentaires' + end + def cls_loc + 'Classification de la bibliothèque du congres' + end + def cls_dewey + 'Classification Dewey' + end + def cls_oclc # fix + 'Classify OCLC number' + end + def cls_gutenberg + 'Classification du project Gutenberg' + end + def cls_isbn + 'Classification ISBN' + end + def prefix_a + 'Préfixe (a)' + end + def prefix_b + 'Préfixe (b)' + end + def topic_register + 'Topics Registered' + end + def sourcefile + 'Fichier source' + end + def word_count + 'Nombre approximatif de mots' + end + def sourcefile_digest + 'Condensé du fichier source' + end + def digest_md5 + 'Condensé du fichier source (md5)' + end + def digest_sha256 + 'Condensé du fichier source (sha256)' + end + def sc_number + 'Numéro (RCS/CVS) du document' + end + def sc_date + 'Numéro (RCS/CVS) du document' + end + def last_generated + 'Dernière production du document (metaverse)' + end + def sisu_version + 'Généré par' + end + def ruby_version + 'Version de Ruby' + end + def suggested_links + 'Liens suggérés' + end + def language_version_list + 'Versions des langues du document, manifestes' + end + def manifest_description + 'SiSU manifest of document filetypes and metadata' + end + def manifest_description_output + 'Manifeste SiSU du document généré' + end + def manifest_description_metadata + 'Manifeste SiSU des métadonnées du document' + end + def language_list_translated + lang=case @trans_str + when /American/i; 'Anglais americain' # tag depreciated, see iso 639-2 + when /English/i; 'Anglais' + when /French/i; 'Français' + when /German/i; 'Allemand' + when /Italian/i; 'Italien' + when /Spanish/i; 'Espagnol' + when /Brazilian(?: Portuguese)?/i; 'Portugais brésilien' # tag depreciated, see iso 639-2 + when /Portuguese/i; 'Portugais' + when /Swedish/i; 'Suédois' + when /Danish/i; 'Danois' + when /Finnish/i; 'Finnois' + when /Norwegian/i; 'Norvégien' + when /Icelandic/i; 'Islandais' + when /Dutch/i; 'Néerlandais' + when /Estonian/i; 'Estonien' + when /Hungarian/i; 'Hongrois' + when /Polish/i; 'Polonais' + when /Romanian/i; 'Roumain' + when /Russian/i; 'Russe' + when /Greek/i; 'Grec' + when /Ukranian/i; 'Ukrainien' + when /Turkish/i; 'Turc' + when /Slovenian/i; 'Slovène' + when /Croatian/i; 'Croate' + when /Slovak(?:ian)?/i; 'Slovaque' + when /Czech/i; 'Tcheque' + when /Bulgarian/i; 'Bulgare' + else @trans_str + end + end + end + class German + def initialize(md,doc_lang,trans_str) + @md,@doc_lang,@trans_str=md,doc_lang,trans_str + end + def filename + 'Dateiname' + end + def description + 'Beschreibung' + end + def filetype_description + description + end + def metadata + 'Metadata' + end + def file_size + 'Dateigrösse' + end + def full_title #dc + 'Titel' + end + def title + 'Titel' + end + def subtitle + 'Untertitel' + end + def author + 'Autor' + end + def contributor #dc + 'Mitautor' + end + def translator + 'Übersetzung' + end + def illustrator + 'Illustrator' + end + def publisher + 'Herausgeber' + end + def prepared_by + 'gesetzt von' + end + def digitized_by + 'digitalisiert von' + end + def subject + 'Titel' + end + def description #dc (watch) + 'Beschreibung' + end + def abstract #dc + 'Abstract' + end + def type + 'Typ' + end + def rights + 'Rechte' + end + def date + 'Datum' + end + def date_created + 'Erstellung' + end + def date_issued + 'Herausgabe' + end + def date_available + 'Veröffentlichung' + end + def date_modified + 'Modifikation' + end + def date_valid + 'Gültigkeit' + end + def language + 'Sprache' + end + def language_original + 'Ursprungssprache' + end + def format #dc + 'Format' + end + def identifier #dc + 'Bezeichnung' + end + def source #dc + 'Quelle' + end + def relation #dc + 'Beziehung' + end + def coverage #dc + 'Eingrenzung' + end + def keywords + 'Schlüsselwörter' + end + def comments + 'Kommentare' + end + def cls_loc + 'Klassifikation nach Library of Congress' + end + def cls_dewey + 'Klassifikation nach Dewey' + end + def cls_oclc # fix + 'Classify OCLC number' + end + def cls_gutenberg + 'Klassifikation nach Projekt Gutenberg' + end + def cls_isbn + 'Klassifikation nach ISBN' + end + def prefix_a + 'Präfix (a)' + end + def prefix_b + 'Präfix (b)' + end + def topic_register + 'Topics Registered' + end + def sourcefile + 'Quelldatei' + end + def word_count + 'Anzahl Wörter' + end + def sourcefile_digest + 'Quelldatei Digest' + end + def digest_md5 + 'Prüfsumme der Quelldatei (MD5)' + end + def digest_sha256 + 'Prüfsumme der Quelldatei (SHA256)' + end + def sc_number + 'Dokumentversion (RCS/CVS)' + end + def sc_date + 'Dokumentdatum (RCS/CVS)' + end + def last_generated + 'Letzte Erstellung (metaverse)' + end + def sisu_version + 'erstellt bei' + end + def ruby_version + 'Ruby Version' + end + def suggested_links + 'empfohlene Links' + end + def language_version_list + 'verfügbare Sprachen' + end + def manifest_description + 'SiSU manifest of document filetypes and metadata' + end + def manifest_description_output + 'SiSU Zusammenfassung des Dokumentes' + end + def manifest_description_metadata + 'SiSU Zusammenfassung der Metadaten' + end + def language_list_translated + lang=case @trans_str + when /American/i; 'Amerikanisch-Englisch' # tag depreciated, see iso 639-2 + when /English/i; 'Englisch' + when /French/i; 'Französisch' + when /German/i; 'Deutsch' + when /Italian/i; 'Italienisch' + when /Spanish/i; 'Spanisch' + when /Brazilian(?: Portuguese)?/i; 'Brasilianisch-Portugiesisch' # tag depreciated, see iso 639-2 + when /Portuguese/i; 'Portugiesisch' + when /Swedish/i; 'Schwedisch' + when /Danish/i; 'Dänisch' + when /Finnish/i; 'Finnisch' + when /Norwegian/i; 'Norwegisch' + when /Icelandic/i; 'Isländisch' + when /Dutch/i; 'Niederländisch' + when /Estonian/i; 'Estnisch' + when /Hungarian/i; 'Ungarisch' + when /Polish/i; 'Polnisch' + when /Romanian/i; 'Rumänisch' + when /Russian/i; 'Russisch' + when /Greek/i; 'Griechisch' + when /Ukranian/i; 'Ukrainisch' + when /Turkish/i; 'Türkisch' + when /Slovenian/i; 'Slovenisch' + when /Croatian/i; 'Kroatisch' + when /Slovak(?:ian)?/i; 'Slovakisch' + when /Czech/i; 'Tschechisch' + when /Bulgarian/i; 'Bulgarisch' + else @trans_str + end + end + end + class Spanish + def initialize(md,doc_lang,trans_str) + @md,@doc_lang,@trans_str=md,doc_lang,trans_str + end + def filename + 'nombre del fichero' + end + def description + 'descripción' + end + def filetype_description + description + end + def metadata + 'metadatos' + end + def file_size + 'tamaño del fichero' + end + def full_title #dc + 'Título' + end + def title + 'Título' + end + def subtitle + 'Subtítulo' + end + def author #dc + 'Creador' + end + def contributor #dc + 'Contribuidor' + end + def translator + 'Traductor' + end + def illustrator + 'Ilustrador' + end + def publisher #dc + 'Editor' + end + def prepared_by + 'Preparado por' + end + def digitized_by + 'Digitalizado por' + end + def subject #dc + 'Asunto' + end + def description #dc (watch) + 'Descripción' + end + def abstract #dc + 'Resumen' + end + def type #dc + 'Tipo' + end + def rights #dc + 'Derechos' + end + def date #dc + 'Fecha' + end + def date_created #dc + 'Fecha de creación' + end + def date_issued #dc + 'Fecha de publicación' + end + def date_available #dc + 'Fecha de disponibilidad' + end + def date_modified #dc + 'Fecha de modificación' + end + def date_valid #dc + 'Fecha de valided' + end + def language #dc + 'Idioma' + end + def language_original + 'Lenguaje original' + end + def format #dc + 'Formato' + end + def identifier #dc + 'Identificador' + end + def source #dc + 'Fuente' + end + def relation #dc + 'Relación' + end + def coverage #dc + 'Cobertura' + end + def keywords + 'Palabras claves' + end + def comments + 'Comentarios' + end + def cls_loc + 'Clasificación Biblioteca del Congreso' + end + def cls_dewey + 'Clasificación Dewey' + end + def cls_oclc # fix + 'Classify OCLC number' + end + def cls_gutenberg + 'Clasificación Proyecto Gutenberg' + end + def cls_isbn + 'Clasificación ISBN' + end + def prefix_a + 'Prefijo (a)' + end + def prefix_b + 'Prefijo (b)' + end + def topic_register + 'Topics Registered' + end + def sourcefile + 'Fichero fuente' + end + def word_count + 'Número de palabras apróximado' + end + def sourcefile_digest + 'Resumen del fichero fuente' + end + def digest_md5 + 'Resumen del fichero fuente (md5)' + end + def digest_sha256 + 'Resumen del fichero fuente (sha256)' + end + def sc_number + 'Versión (RCS/CVS) del documento' + end + def sc_date + 'Versión (RCS/CVS) del documento' + end + def last_generated + 'Última generación (metaverse) del documento' + end + def sisu_version + 'Generado por' + end + def ruby_version + 'Versión de Ruby' + end + def suggested_links + 'enlaces sugeridos de metadatos' + end + def language_version_list + 'Document Language Versions, manifests' + end + def manifest_description + 'SiSU manifest of document filetypes and metadata' + end + def manifest_description_output + 'Manifiesto SiSU de salida generada' + end + def manifest_description_metadata + 'Manifiesto SiSU de metadatos de documento' + end + def language_list_translated + lang=case @trans_str + when /American/i; 'Inglés Americano' # tag depreciated, see iso 639-2 + when /English/i; 'Inglés' + when /French/i; 'Francés' + when /German/i; 'Alemán' + when /Italian/i; 'Italiano' + when /Spanish/i; 'Español' + when /Brazilian(?: Portuguese)?/i; 'Portugués de Brasil' # tag depreciated, see iso 639-2 + when /Portuguese/i; 'Portugués' + when /Swedish/i; 'Sueco' + when /Danish/i; 'Danés' + when /Finnish/i; 'Finés' + when /Norwegian/i; 'Noruego' + when /Icelandic/i; 'Islandés' + when /Dutch/i; 'Holandés' + when /Estonian/i; 'Estonio' + when /Hungarian/i; 'Húngaro' + when /Polish/i; 'Polaco' + when /Romanian/i; 'Rumano' + when /Russian/i; 'Ruso' + when /Greek/i; 'Griego' + when /Ukranian/i; 'Ucraniano' + when /Turkish/i; 'Turco' + when /Slovenian/i; 'Eslovaco' + when /Croatian/i; 'Croata' + when /Slovak(?:ian)?/i; 'Eslovaco' + when /Czech/i; 'Checo' + when /Bulgarian/i; 'Búlgaro' + else @trans_str + end + end + end + class Italian + def initialize(md,doc_lang,trans_str) + @md,@doc_lang,@trans_str=md,doc_lang,trans_str + end + def filename + 'nome del file' + end + def description + 'descrizione' + end + def filetype_description + description + end + def metadata + 'metadati' + end + def file_size + 'dimensione' + end + def full_title #dc + 'Titolo' + end + def title + 'Titolo' + end + def subtitle + 'Sottotitolo' + end + def author #dc + 'Autore' + end + def contributor #dc + 'Contributore' + end + def translator + 'Traduttore' + end + def illustrator + 'Illustratore' + end + def publisher #dc + 'Casa editrice' + end + def prepared_by + 'Preparato da' + end + def digitized_by + 'Convertito in digitale da' + end + def subject #dc + 'Oggetto' + end + def description #dc (watch) + 'Descrizione' + end + def abstract #dc + 'Abstract' + end + def type #dc + 'Tipo' + end + def rights #dc + 'Diritti del lettore' + end + def date #dc + 'Data' + end + def date_created #dc + 'Data di creazione' + end + def date_issued #dc + 'Data di pubblicazione' + end + def date_available #dc + 'Data di effettiva disponibilità' + end + def date_modified #dc + 'Data di ultima modifica' + end + def date_valid #dc + 'Data di inizo validità' + end + def language #dc + 'Lingua' + end + def language_original + 'Lingua originale' + end + def format #dc + 'Formato' + end + def identifier #dc + 'Indentificatore' + end + def source #dc + 'Fonte' + end + def relation #dc + 'Collegamento' + end + def coverage #dc + 'Ambito' + end + def keywords + 'Parole chiave' + end + def comments + 'Commenti' + end + def cls_loc + 'Classificazione della Library of Congress' + end + def cls_dewey + 'Classificazione Dewey' + end + def cls_oclc # fix + 'Classify OCLC number' + end + def cls_gutenberg + 'Classificazione del Progetto Gutenberg' + end + def cls_isbn + 'Numero ISBN' + end + def prefix_a + 'Premessa (a)' + end + def prefix_b + 'Premessa (b)' + end + def topic_register + 'Topics Registered' + end + def sourcefile + 'Sorgente' + end + def word_count + 'Numero approssimativo di parole' + end + def sourcefile_digest + 'Checksum file sorgente' + end + def digest_md5 + 'Checksum file sorgente (md5)' + end + def digest_sha256 + 'Checksum file sorgente (sha256)' + end + def sc_number + 'Numero di revisione (RCS/CVS)' + end + def sc_date + 'Numero di revisione (RCS/CVS)' + end + def last_generated + 'Data di ultima generazione (dal metaverse)' + end + def sisu_version + 'Generato da' + end + def ruby_version + 'Ruby versione' + end + def suggested_links + 'Link suggeriti' + end + def language_version_list + 'Traduzioni disponibili' + end + def manifest_description + 'SiSU manifest of document filetypes and metadata' + end + def manifest_description_output + 'Inventario SiSU dell\'output generato' + end + def manifest_description_metadata + 'Inventario SiSU dei metadati' + end + def language_list_translated + lang=case @trans_str + when /American/i; 'Inglese USA' # tag depreciated, see iso 639-2 + when /English/i; 'Inglese' + when /French/i; 'Francese' + when /German/i; 'Tedesco' + when /Italian/i; 'Italiano' + when /Spanish/i; 'Spagnolo' + when /Brazilian(?: Portuguese)?/i; 'Portoguese (Brasile)' # tag depreciated, see iso 639-2 + when /Portuguese/i; 'Portoguese' + when /Swedish/i; 'Svedese' + when /Danish/i; 'Danese' + when /Finnish/i; 'Finlandese' + when /Norwegian/i; 'Norvegese' + when /Icelandic/i; 'Islandese' + when /Dutch/i; 'Olandese' + when /Estonian/i; 'Estone' + when /Hungarian/i; 'Ungherese' + when /Polish/i; 'Polacco' + when /Romanian/i; 'Romeno' + when /Russian/i; 'Russo' + when /Greek/i; 'Greco' + when /Ukranian/i; 'Ucraino' + when /Turkish/i; 'Turco' + when /Slovenian/i; 'Sloveno' + when /Croatian/i; 'Croato' + when /Slovak(?:ian)?/i; 'Slovacco' + when /Czech/i; 'Ceco' + when /Bulgarian/i; 'Bulgaro' + else @trans_str + end + end + end + class Finnish + def initialize(md,doc_lang,trans_str) + @md,@doc_lang,@trans_str=md,doc_lang,trans_str + end + def filename + 'tiedostonimi' + end + def description + 'kuvaus' + end + def filetype_description + description + end + def metadata + 'metadata' + end + def file_size + 'tiedoston koko' + end + def full_title #dc + 'otsikko' + end + def title + 'Otsikko' + end + def subtitle + 'Alaotsikko' + end + def author #dc + 'tekijä' + end + def contributor #dc + 'osallistuja' + end + def translator + 'Kääntäjä' + end + def illustrator + 'Kuvittaja' + end + def publisher #dc + 'julkaisija' + end + def prepared_by + 'Valmistaja' + end + def digitized_by + 'Digitalisoinut' + end + def subject #dc + 'aihe' + end + def description #dc (watch) + 'kuvaus' + end + def abstract #dc + 'tiivistelmä' + end + def type #dc + 'tyyppi' + end + def rights #dc + 'oikeudet' + end + def date #dc + 'päiväys' + end + def date_created #dc + 'luontipäivä' + end + def date_issued #dc + 'julkaisupäivä' + end + def date_available #dc + 'saantipäivä' + end + def date_modified #dc + 'muokkauspäivä' + end + def date_valid #dc + 'kelpoisuuspäivä' + end + def language #dc + 'kieli' + end + def language_original + 'Alkuperäiskieli' + end + def format #dc + 'muoto' + end + def identifier #dc + 'tunnus' + end + def source #dc + 'lähde' + end + def relation #dc + 'suhde' + end + def coverage #dc + 'kattavuus' + end + def keywords + 'Avainsanat' + end + def comments + 'Kommentit' + end + def cls_loc + 'Classify Library of Congress' + end + def cls_dewey + 'Classify Dewey' + end + def cls_oclc # fix + 'Classify OCLC number' + end + def cls_gutenberg + 'Classify Project Gutenberg' + end + def cls_isbn + 'Classify ISBN' + end + def prefix_a + 'Prefix (a)' + end + def prefix_b + 'Prefix (b)' + end + def topic_register + 'Topics Registered' + end + def sourcefile + 'Lähdetiedosto' + end + def word_count + 'Arvioitu sanamäärä' + end + def sourcefile_digest + 'Lähdetiedoston tiiviste' + end + def digest_md5 + 'Lähdetiedoston tiiviste (md5)' + end + def digest_sha256 + 'Lähdetiedoston tiiviste (sha256)' + end + def sc_number + 'Dokumentin RCS/CVS-numero' + end + def sc_date + 'Dokumentin RCS/CVS-päiväys' + end + def last_generated + 'Viimeksi tuotettu dokumentti (metaverse)' + end + def sisu_version + 'Generoinut' + end + def ruby_version + 'Ruby-versio' + end + def suggested_links + 'metadatan ehdottamat linkit' + end + def language_version_list + 'Dokumentin kieliversiot, manifestit' + end + def manifest_description + 'SiSU manifest of document filetypes and metadata' + end + def manifest_description_output + 'Tuotetun tuloksen SISU-manifesti' + end + def manifest_description_metadata + 'Dokumenttimetadatan SISU-manifesti' + end + def language_list_translated + lang=case @trans_str + when /American/i; 'Amerikanenglanti' # tag depreciated, see iso 639-2 + when /English/i; 'Englanti' + when /French/i; 'Ranska' + when /German/i; 'Saksa' + when /Italian/i; 'Italia' + when /Spanish/i; 'Espanja' + when /Brazilian(?: Portuguese)?/i; 'Brasilian portugali' # tag depreciated, see iso 639-2 + when /Portuguese/i; 'Portugali' + when /Swedish/i; 'Ruotsi' + when /Danish/i; 'Tanska' + when /Finnish/i; 'Suomi' + when /Norwegian/i; 'Norja' + when /Icelandic/i; 'Islanti' + when /Dutch/i; 'Hollanti' + when /Estonian/i; 'Viro' + when /Hungarian/i; 'Unkari' + when /Polish/i; 'Puola' + when /Romanian/i; 'Romania' + when /Russian/i; 'Venäjä' + when /Greek/i; 'Kreikka' + when /Ukranian/i; 'Ukraina' + when /Turkish/i; 'Turkki' + when /Slovenian/i; 'Slovenia' + when /Croatian/i; 'Kroatia' + when /Slovak(?:ian)?/i; 'Slovakki' + when /Czech/i; 'Tsekki' + when /Bulgarian/i; 'Bulgaria' + else @trans_str + end + end + end + class Porguguese < English + end + class Swedish < English + end + class Danish < English + end + class Norwegian < English + end + class Icelandic < English + end + class Dutch < English + end + class Estonian < English + end + class Hungarian < English + end + class Polish < English + end + class Romanian < English + end + class Russian < English + end + class Greek < English + end + class Ukranian < English + end + class Turkish < English + end + class Croatian < English + end + class Slovakian < English + end + class Czech < English + end + class Bulgarian < English + end +end +__END__ +http://www.debian.org/international/l10n/po/ +http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes +http://www.loc.gov/standards/iso639-2/php/code_list.php +albanian sq +amharic am +arabic ar +armenian hy +asturian +bahasai +bahasam +basque eu +bengali bn +brazil[ian] pt_BR +breton br +bulgarian bg +catalan ca +coptic +croatian hr +czech cs +danish da +divehi +dutch nl +english en +esperanto eo +estonian et +galician gl +german de +greek el +hebrew he +hindi hi +icelandic is +interlingua ia +irish ga +italian it +farsi +finnish fi +french fr +lao lo +latin la +latvian lv +lithuanian lt +lsorbian +magyar +malayalam ml +marathi mr +norsk no +nynorsk nn +occitan oc +polish pl +portuges pt +romanian ro +russian ru +samin se (check sami?) +sanskrit sa +scottish # (gd (Gaelic (Scots))) +serbian sr +slovak sk +slovenian sl +spanish es +swedish sv +syriac # (ar_SY (Arabic, as spoken in Syrian Arab Republic)) +tamil ta +telugu te +thai th +turkish tr +turkmen tk +ukrainian uk +urdu ur +usorbian +vietnamese vi +welsh cy diff --git a/lib/sisu/v3/shared_metadata.rb b/lib/sisu/v3/shared_metadata.rb index 167af5c4..c40bf68d 100644 --- a/lib/sisu/v3/shared_metadata.rb +++ b/lib/sisu/v3/shared_metadata.rb @@ -67,8 +67,8 @@ 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) - language=l[:l] + l=SiSU_Env::Standardise_language.new(@md.opt.lng).language + language=l[:n] tr=SiSU_Translate::Source.new(@md,language) @attrib='md' if @display_heading @@ -997,8 +997,8 @@ 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) - language=l[:l] + l=SiSU_Env::Standardise_language.new(@md.opt.lng).language + language=l[:n] tr=SiSU_Translate::Source.new(@md,language) tag="Document Manifest @" inf="#{@br}#{base_html}/#{@md.fn[: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..60247060 100644 --- a/lib/sisu/v3/sst_do_inline_footnotes.rb +++ b/lib/sisu/v3/sst_do_inline_footnotes.rb @@ -170,8 +170,8 @@ 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) - @language=l[:l] + l=SiSU_Env::Standardise_language.new(@md.opt.lng).language + @language=l[:n] @translate=SiSU_Translate::Source.new(@md,@language) end def reset diff --git a/lib/sisu/v3/sysenv.rb b/lib/sisu/v3/sysenv.rb index 6f69296a..a1c6228b 100644 --- a/lib/sisu/v3/sysenv.rb +++ b/lib/sisu/v3/sysenv.rb @@ -58,6 +58,7 @@ =end @@cX=nil @@current_document=Dir.pwd #nil #'' +@@lang_info=nil module SiSU_Env require_relative 'constants' # constants.rb require 'fileutils' @@ -444,7 +445,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 +500,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) - lng=fn_set_lang[:l] + fn_set_lang=SiSU_Env::Standardise_language.new.file_to_language(fns_c) #reconsider file_to_language + lng=fn_set_lang[:n] 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 } @@ -790,68 +791,111 @@ module SiSU_Env end end class Standardise_language + require_relative 'i18n' # i18n.rb def initialize(l='') @language=l if @language.empty? @language=Info_env.new.defaults[:language] end + @r=%{(?:#{Px[:lng_lst].join('|')})} + @lang_info=SiSU_i18n::Languages.new end - def language #use ISO_639-2 - lang={} + def lang_lst # from i18n + @@lang_info ||=@lang_info.language.list + end + def lang(l='') # from i18n + x=if l =~/^#{@r}$/ + @lang_info.language.list[l] + elsif @language =~/^#{@r}$/ + @lang_info.language.list[@language] + else nil + end + end + def language + lng={} 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' - end - lang[:d],lang[:c],lang[:l]=d,c,l - lang + when /^am$|Amharic/i; d,c,l=false,lang_lst['am'][:c], lang_lst['am'][:n] + when /^bg$|Bulgarian/i; d,c,l=false,lang_lst['bg'][:c], lang_lst['bg'][:n] + when /^bn$|Bengali/i; d,c,l=false,lang_lst['bn'][:c], lang_lst['bn'][:n] + when /^br$|Breton/i; d,c,l=false,lang_lst['br'][:c], lang_lst['br'][:n] + when /^ca$|Catalan/i; d,c,l=false,lang_lst['ca'][:c], lang_lst['ca'][:n] + when /^cs$|Czech/i; d,c,l=false,lang_lst['cs'][:c], lang_lst['cs'][:n] + when /^cy$|Welsh/i; d,c,l=false,lang_lst['cy'][:c], lang_lst['cy'][:n] + when /^da$|Danish|Dansk/i; d,c,l=false,lang_lst['da'][:c], lang_lst['da'][:n] + when /^de$|German/i; d,c,l=false,lang_lst['de'][:c], lang_lst['de'][:n] + when /^el$|Greek/i; d,c,l=false,lang_lst['el'][:c], lang_lst['el'][:n] + when /^en$|English/i; d,c,l=false,lang_lst['en'][:c], lang_lst['en'][:n] + when /^eo$|Esperanto/i; d,c,l=false,lang_lst['eo'][:c], lang_lst['eo'][:n] + when /^es$|Spanish|Espanol/i; d,c,l=false,lang_lst['es'][:c], lang_lst['es'][:n] + when /^et$|Estonian/i; d,c,l=false,lang_lst['et'][:c], lang_lst['et'][:n] + when /^eu$|Basque/i; d,c,l=false,lang_lst['eu'][:c], lang_lst['eu'][:n] + when /^fi$|Finnish|Finsk|Suomi/i; d,c,l=false,lang_lst['fi'][:c], lang_lst['fi'][:n] + when /^fr$|French|Francais/i; d,c,l=false,lang_lst['fr'][:c], lang_lst['fr'][:n] + when /^ga$|Irish/i; d,c,l=false,lang_lst['ga'][:c], lang_lst['ga'][:n] + when /^gl$|Galician/i; d,c,l=false,lang_lst['gl'][:c], lang_lst['gl'][:n] + when /^he$|Hebrew/i; d,c,l=false,lang_lst['he'][:c], lang_lst['he'][:n] + when /^hi$|Hindi/i; d,c,l=false,lang_lst['hi'][:c], lang_lst['hi'][:n] + when /^hr$|Croatian/i; d,c,l=false,lang_lst['hr'][:c], lang_lst['hr'][:n] + when /^hy$|Armenian/i; d,c,l=false,lang_lst['hy'][:c], lang_lst['hy'][:n] + when /^ia$|Interlingua/i; d,c,l=false,lang_lst['ia'][:c], lang_lst['ia'][:n] + when /^is$|Icelandic/i; d,c,l=false,lang_lst['is'][:c], lang_lst['is'][:n] + when /^it$|Italian/i; d,c,l=false,lang_lst['it'][:c], lang_lst['it'][:n] + when /^la$|Latin/i; d,c,l=false,lang_lst['la'][:c], lang_lst['la'][:n] + when /^lo$|Lao/i; d,c,l=false,lang_lst['lo'][:c], lang_lst['lo'][:n] + when /^lt$|Lithuanian/i; d,c,l=false,lang_lst['lt'][:c], lang_lst['lt'][:n] + when /^lv$|Latvian/i; d,c,l=false,lang_lst['lv'][:c], lang_lst['lv'][:n] + when /^ml$|Malayalam/i; d,c,l=false,lang_lst['ml'][:c], lang_lst['ml'][:n] + when /^mr$|Marathi/i; d,c,l=false,lang_lst['mr'][:c], lang_lst['mr'][:n] + when /^nl$|Dutch/i; d,c,l=false,lang_lst['nl'][:c], lang_lst['nl'][:n] + when /^no$|Norwegian|Norsk/i; d,c,l=false,lang_lst['no'][:c], lang_lst['no'][:n] + when /^nn$|Norwegian Nynorsk/i; d,c,l=false,lang_lst['nn'][:c], lang_lst['nn'][:n] + when /^oc$|Occitan/i; d,c,l=false,lang_lst['oc'][:c], lang_lst['oc'][:n] + when /^pl$|Polish/i; d,c,l=false,lang_lst['pl'][:c], lang_lst['pl'][:n] + when /^pt$|Portuguese/i; d,c,l=false,lang_lst['pt'][:c], lang_lst['pt'][:n] + when /^pt_BR$|Portuguese Brazil/i; d,c,l=false,lang_lst['pt_BR'][:c], lang_lst['pt_BR'][:n] + when /^ro$|Romanian/i; d,c,l=false,lang_lst['ro'][:c], lang_lst['ro'][:n] + when /^ru$|Russian/i; d,c,l=false,lang_lst['ru'][:c], lang_lst['ru'][:n] + when /^sa$|Sanskrit/i; d,c,l=false,lang_lst['sa'][:c], lang_lst['sa'][:n] + when /^se$|Sami/i; d,c,l=false,lang_lst['se'][:c], lang_lst['se'][:n] + when /^sk$|Slovak/i; d,c,l=false,lang_lst['sk'][:c], lang_lst['sk'][:n] + when /^sl$|Slovenian/i; d,c,l=false,lang_lst['sl'][:c], lang_lst['sl'][:n] + when /^sq$|Albanian/i; d,c,l=false,lang_lst['sq'][:c], lang_lst['sq'][:n] + when /^sr$|Serbian/i; d,c,l=false,lang_lst['sr'][:c], lang_lst['sr'][:n] + when /^sv$|Swedish|Svensk/i; d,c,l=false,lang_lst['sv'][:c], lang_lst['sv'][:n] + when /^ta$|Tamil/i; d,c,l=false,lang_lst['ta'][:c], lang_lst['ta'][:n] + when /^te$|Telugu/i; d,c,l=false,lang_lst['te'][:c], lang_lst['te'][:n] + when /^th$|Thai/i; d,c,l=false,lang_lst['th'][:c], lang_lst['th'][:n] + when /^tk$|Turkmen/i; d,c,l=false,lang_lst['tk'][:c], lang_lst['tk'][:n] + when /^tr$|Turkish/i; d,c,l=false,lang_lst['tr'][:c], lang_lst['tr'][:n] + when /^uk$|Ukranian/i; d,c,l=false,lang_lst['uk'][:c], lang_lst['uk'][:n] + when /^ur$|Urdu/i; d,c,l=false,lang_lst['ur'][:c], lang_lst['ur'][:n] + when /^us|American$|/i; d,c,l=false,lang_lst['en'][:c], lang_lst['en'][:n] + when /^vi$|Vietnamese/i; d,c,l=false,lang_lst['vi'][:c], lang_lst['vi'][:n] + else d,c,l=true, lang_lst['en'][:c], lang_lst['en'][:n] #default + end + lng[:d],lng[:c],lng[:n]=d,c,l + lng end def name - language[:l].downcase + #lang(@language)[:n].downcase + #lang[@language][:n].downcase + #language[:n].downcase + language[:n].downcase end def title - language[:l] + #lang(@language)[:n] + #lang[@language][:n] + language[:n] end def code + #lang[@language][:c] + #lang(@language)[:c] language[:c] end - def file_to_language(file) + def tex_name + language[:xlp] + end + 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 +903,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 @@ -2091,7 +2143,7 @@ WOK elsif defined? @rc['program_select']['console_web_browser'] \ and @rc['program_select']['console_web_browser'] =~/\S\S+/ @rc['program_select']['console_web_browser'] - else 'console-www-browser' #'lynx' 'links2' 'elinks' 'epiphany' + else 'console-www-browser' #'lynx' 'links' 'links2' 'elinks' 'w3m' end end def console_www_browser @@ -2104,7 +2156,7 @@ WOK elsif defined? @rc['program_select']['epub_viewer'] \ and @rc['program_select']['epub_viewer'] =~/\S\S+/ @rc['program_select']['epub_viewer'] - else 'ebook-viewer' #'calibre' 'fbreader' + else 'ebook-viewer' #'calibre' 'fbreader' end end def xml_viewer @@ -2120,7 +2172,7 @@ WOK ((defined? @rc['program_select']['odf_viewer']) \ && @rc['program_select']['odf_viewer'] =~/\S\S+/) \ ? @rc['program_select']['odf_viewer'] \ - : 'libreoffice' #'odf-viewer','oowriter' + : 'lowriter' #'odf-viewer','oowriter' end def manpage_viewer 'man' @@ -3382,14 +3434,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 +3445,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 +3476,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 +3559,9 @@ WOK ft='sitemaps' path=set_path_ab(ft) end + def sqlite + path=output_path.base + end self end end @@ -3638,8 +3688,12 @@ 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] + #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/texpdf_format.rb b/lib/sisu/v3/texpdf_format.rb index 90dd7452..8c53b458 100644 --- a/lib/sisu/v3/texpdf_format.rb +++ b/lib/sisu/v3/texpdf_format.rb @@ -614,7 +614,7 @@ module SiSU_TeX_Pdf end end class Format_head - require_relative 'i18n' # defaults.rb + require_relative 'prog_text_translation' # prog_text_translation.rb def initialize(md,t_o) @md,@t_o=md,t_o @env=SiSU_Env::Info_env.new(@md.fns) @@ -632,14 +632,14 @@ module SiSU_TeX_Pdf @brace_url=SiSU_Viz::Skin.new.url_decoration @tex2pdf=@@tex3pdf ||=SiSU_Env::System_call.new.tex2pdf_engine @ps=@txt if @txt=~/(?:a4|letter|legal|book|a5|b5)/i - @lang ||=SiSU_i18n::Language.new(@md) + @lang ||=SiSU_i18n::Languages.new #.list[@md.opt.lng][:xlp] end def tex_head_lang #babel 18n lang_char_arr=@md.i18n mainlang_char=lang_char_arr.slice(0) - mainlang=@lang.tex_name(mainlang_char) + mainlang=@lang.list[mainlang_char][:xlp] otherlang=[] - lang_char_arr.slice(1..9).each { |ch| otherlang << @lang.tex_name(ch) } + lang_char_arr.slice(1..9).each { |ch| otherlang << @lang.list[ch][:xlp] } otherlang=otherlang.join(',') { mainlang: mainlang, otherlang: otherlang } end @@ -893,7 +893,7 @@ WOK end def document_head_with_orientation endnotes=("\\usepackage{endnotes}" if @txt =~/endnotes?/)||'' #not implemented see also def endnotes - @lang.tex_name(@md.i18n[0]) + @lang.list[@md.i18n[0]][:xlp] <<WOK #{tex_head_paper} #{tex_head_encode} @@ -956,7 +956,7 @@ WOK {-\\baselineskip}{0.5\\baselineskip}% {\\normalfont\\normalsize\\itshape\\raggedright}} % \\makeatother -\\selectlanguage{#{@lang.tex_name(@md.i18n[0])}} +\\selectlanguage{#{@lang.list[@md.i18n[0]][:xlp]}} WOK end def a4generic diff --git a/lib/sisu/v3/urls.rb b/lib/sisu/v3/urls.rb index 77952d0b..c963c97e 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)$/ @@ -216,7 +215,7 @@ module SiSU_urls SiSU_Screen::Ansi.new(@opt.cmd,"-#{x} DBI psql","#{@pwd_stub}::#{@opt.fns}",y).result end def sqlite(x,y) - SiSU_Screen::Ansi.new(@opt.cmd,"-#{x} DBI sqlite","sqlite3 #{@env.path.output}/sisu_sqlite.db", "#{y}").result + SiSU_Screen::Ansi.new(@opt.cmd,"-#{x} DBI sqlite","sqlite3 #{@env.path.webserv}/#{@md.opt.f_pth[:pth_stub]}/sisu_sqlite.db", "#{y}").result end self end |