aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/develop/po4a.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/develop/po4a.rb')
-rw-r--r--lib/sisu/develop/po4a.rb42
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