diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/sisu/develop/po4a.rb | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/sisu/develop/po4a.rb b/lib/sisu/develop/po4a.rb index 1ce46d1b..3a93c7fd 100644 --- a/lib/sisu/develop/po4a.rb +++ b/lib/sisu/develop/po4a.rb @@ -65,6 +65,7 @@ module SiSU_Po4a class Source @@opt_src,@@opt_trn,@@opt_src_,@@opt_trn_,@@md_src,@@md_trn= nil,nil,nil,nil,nil,nil + @@auto_translation_ = :go def initialize(opt,fn=nil) @opt,@fn=opt,fn #unless @opt.fns =~/(.+?\.(?:-|ssm\.)?sst)$/ @@ -544,6 +545,26 @@ GSUB hang ) end + def auto_translate?(set=nil) + @@auto_translation_=set \ + ? set + : @@auto_translation_ + end + def auto_translation(src_txt) # check for an appropriate request flag + begin + trans='' + unless auto_translate? == :skip + require 'timeout' + Timeout::timeout(5) { + #trans=`trans en:#{@md.opt.f_pth[:lng]} #{src_txt}` #+ ' ,{[G.Tr]},' + } + end + trans + rescue + auto_translate?(:skip) + p 'timeout issues with translation, skip remaining' + end + end def pot_structure_heading(dob_src='',notes_s='',dob_trn='',notes_t='') #% used to extract the structure of a document lv=n=n3=nil lv=dob_src.ln @@ -566,6 +587,9 @@ GSUB || (dob_src.obj == dob_trn.obj)) \ ? '' : "#{s_mark}#{dob_trn.obj}" + if trans.empty? # and --auto-trans + trans=auto_translation(dob_src.obj) + end util=pot_structure(desc,orig,trans) wrapped=util.line_wrap @pot[:body] << wrapped << br # main text, contents, body KEEP @@ -610,6 +634,9 @@ GSUB || (dob_src.obj == dob_trn.obj)) \ ? '' : "#{s_mark}#{dob_trn.obj}" + if trans.empty? # and --auto-trans + trans=auto_translation(dob_src.obj) + end util=pot_structure(desc,orig,trans) elsif dob_src.hang =~/[0-9]/ \ and dob_src.indent != dob_src.hang @@ -631,6 +658,9 @@ GSUB || (dob_src.obj == dob_trn.obj)) \ ? '' : "#{s_mark}#{dob_trn.obj}" + if trans.empty? # and --auto-trans + trans=auto_translation(dob_src.obj) + end util=pot_structure(desc,orig,trans) else s_mark=desc=orig=trans='' @@ -649,6 +679,9 @@ GSUB || (dob_src.obj == dob_trn.obj)) \ ? '' : "#{s_mark}#{dob_trn.obj}" + if trans.empty? # and --auto-trans + trans=auto_translation(dob_src.obj) + end else mark='' d=dob_src.is.to_s @@ -663,6 +696,9 @@ GSUB || (dob_src.obj == dob_trn.obj)) \ ? '' : "#{s_mark}#{dob_trn.obj}" + if trans.empty? # and --auto-trans + trans=auto_translation(dob_src.obj) + end end util=pot_structure(desc,orig,trans) end @@ -693,6 +729,9 @@ GSUB || (dob_src.obj == dob_trn.obj)) \ ? '' : "#{s_mark}#{dob_trn.obj}" + if trans.empty? # and --auto-trans + trans=auto_translation(dob_src.obj) + end util=pot_structure(desc,orig,trans) unwrapped=util.no_line_wrap_block @pot[:body] << unwrapped << br @@ -712,6 +751,9 @@ GSUB || (dob_src.obj == dob_trn.obj)) \ ? '' : "#{s_mark}#{dob_trn.obj}" + if trans.empty? # and --auto-trans + trans=auto_translation(dob_src.obj) + end util=pot_structure(desc,orig,trans) unwrapped=util.no_line_wrap_block @pot[:body] << unwrapped << br |