imposition 0.9.4.5.1 → 0.9.4.6

Sign up to get free protection for your applications and to get access to all the features.
data/bin/impostor CHANGED
@@ -13,7 +13,7 @@ def input(nombre)
13
13
  retorno["unidad"]="point"#default
14
14
  return retorno
15
15
  else
16
- regex = /(\d+\.*\d*)\s*(\w*)/
16
+ regex = /(\d*\.*\d*)\s*(\w*)/
17
17
  split = regex.match(input)
18
18
  if split!=nil then
19
19
  retorno["numero"]=split[1].to_f
@@ -24,18 +24,18 @@ def input(nombre)
24
24
  end
25
25
  return retorno
26
26
  else
27
- puts "la unidad de #{input} no es correcta"
27
+ puts I18n.t(:badunit, :input => input)
28
28
  input(nombre)
29
29
  end
30
30
  end
31
31
  end
32
32
  #
33
33
  def enBooklets()
34
- STDOUT.puts("¿imponer en cuadernillos? (y/n)")
34
+ STDOUT.puts(I18n.t(:bookletsq))
35
35
  bookies=STDIN.gets.to_s
36
- if bookies[0]==121 then#Y
36
+ if bookies[0].eql?("y") then
37
37
  return true
38
- elsif bookies[0]==110 then#N
38
+ elsif bookies[0].eql?("n") then
39
39
  return false
40
40
  else
41
41
  enBooklets()
@@ -53,15 +53,16 @@ end
53
53
  #
54
54
  def escalado(tipo)
55
55
  if tipo=="horizontalmente" then
56
- puts "no especifico ancho de pagina pero si ancho de pliego y numero de paginas por pliego "+tipo
56
+ puts I18n.t(:WnX)+" "+I18n.t(tipo)
57
57
  else
58
- puts "no especifico alto de pagina pero si alto de pliego y numero de paginas por pliego "+tipo
58
+ puts I18n.t(:HnY)+" "+I18n.t(tipo)
59
59
  end
60
- STDOUT.puts("¿escalar "+tipo+"? (y/n)")
60
+
61
+ puts(I18n.t(:scale, :tp=>I18n.t(tipo)))
61
62
  escalar=STDIN.gets.to_s
62
- if escalar[0]==121 then#Y
63
+ if escalar[0].eql?("y") then
63
64
  return true
64
- elsif escalar[0]==110 then#N
65
+ elsif escalar[0].eql?("n") then
65
66
  return false
66
67
  else
67
68
  escalado(tipo)
@@ -69,11 +70,11 @@ def escalado(tipo)
69
70
  end
70
71
  #
71
72
  def todasPag(nPliegos, nX, nY, caben, tiene)
72
- #STDOUT.puts("el pdf tiene #{tiene.to_i} paginas, pero en #{nPliegos.to_i} de #{nX}x#{nY} caben #{caben.to_i} paginas ¿usar las del pdf? (y/n)")
73
+ #TODO rm? STDOUT.puts("el pdf tiene #{tiene.to_i} paginas, pero en #{nPliegos.to_i} de #{nX}x#{nY} caben #{caben.to_i} paginas ¿usar las del pdf? (y/n)")
73
74
  escalar=STDIN.gets.to_s
74
- if escalar[0]==121 then#Y
75
+ if escalar[0].eql?("y") then
75
76
  return true
76
- elsif escalar[0]==110 then#N
77
+ elsif escalar[0].eql?("n") then
77
78
  return false
78
79
  else
79
80
  todasPag(nPliegos, nX, nY, caben, tiene)
@@ -81,12 +82,12 @@ def todasPag(nPliegos, nX, nY, caben, tiene)
81
82
  end
82
83
  #
83
84
  def reducirUltimo(cuadernillosPorCostura, paginasSobran, nCuad, sobranMenos)
84
- puts "al ultimo grupo de #{cuadernillosPorCostura} cuadernillos le sobraran #{paginasSobran}p"
85
- puts "podemos reducirlo a #{nCuad} cuadernillos, asi sobrarian #{sobranMenos}. ¿0K? (y/n)"
85
+ puts I18n.t(:excesscXC, :cXC=>cuadernillosPorCostura, :p=>paginasSobran)
86
+ puts I18n.t(:reducecXC, :nCuad=>nCuad,:sobranMenos=>sobranMenos)
86
87
  ok=STDIN.gets.to_s
87
- if ok[0]==121 then#Y
88
+ if ok[0].eql?("y") then
88
89
  return true
89
- elsif ok[0]==110 then#N
90
+ elsif ok[0].eql?("n") then
90
91
  return false
91
92
  else
92
93
  reducirUltimo(cuadernillosPorCostura, paginasSobran, nCuad, sobranMenos)
@@ -98,6 +99,14 @@ end
98
99
  #
99
100
  $entrada=ARGV.shift
100
101
  $salida=ARGV.shift
102
+ $locale=ARGV.shift
103
+
104
+ if $locale!=nil then
105
+ I18n.locale=$locale.strip
106
+ else
107
+ I18n.locale = :en
108
+ end
109
+
101
110
  #
102
111
  Metodos.refresh()
103
112
  #
@@ -107,7 +116,7 @@ if check.instance_of? Clases::Mensaje then
107
116
  exit
108
117
  end
109
118
  #
110
- puts "::::::::::impostor 9.2:::::::::::"#blink blink
119
+ puts I18n.t('welcome')#blink blink
111
120
  #
112
121
  w_=input("w:")
113
122
  h_=input("h:")
@@ -115,15 +124,15 @@ wP_=input("W:")
115
124
  hP_=input("H:")
116
125
  nX_=input("nX:")
117
126
  nY_=input("nY:")
118
- nPaginas_=input("nPaginas:")
119
- nPliegos_=input("nPliegos:")
127
+ nPaginas_=input(I18n.t(:nPages)+":")
128
+ nPliegos_=input(I18n.t(:nSheets)+":")
120
129
  cuadernillos = enBooklets()
121
130
  #
122
131
  def recursivo(w_,h_,wP_,hP_,nX,nY,nPaginas,nPliegos,cuadernillos, preguntas)
123
132
  impostor=Metodos.funcionar(w_,h_,wP_,hP_,nX,nY,nPaginas,nPliegos,cuadernillos,preguntas,$temp)
124
133
  if impostor.preguntasOk then
125
134
  if impostor.valido then
126
- puts "::::::::::::mensajes:::::::::::::"#blink blink
135
+ puts I18n.t(:msgs)#blink blink
127
136
  impostor.mensajes.each do |mensaje|
128
137
  puts mensaje.mensaje
129
138
  end
@@ -131,7 +140,7 @@ def recursivo(w_,h_,wP_,hP_,nX,nY,nPaginas,nPliegos,cuadernillos, preguntas)
131
140
  impostor.errores().each do |error|
132
141
  puts error.mensaje
133
142
  end
134
- puts "el programa no se ejecutara"
143
+ puts I18n.t(:dead)
135
144
  exit
136
145
  end
137
146
  else
@@ -170,7 +179,7 @@ if $salida == nil then
170
179
  end
171
180
  FileUtils.mv(File.dirname($temp)+"/"+"cutStack.pdf", $salida)
172
181
  #
173
- puts "::::::::::::Game Over::::::::::::"#blink blink
182
+ puts I18n.t(:end)#blink blink
174
183
  ensure
175
184
  #limpio todo, aunque se caiga
176
185
  if File.dirname($temp)!=nil then
data/lib/imposition.rb CHANGED
@@ -1,12 +1,14 @@
1
1
  #GEMAS
2
- require 'rubygems'
2
+ require 'rubygems' if RUBY_VERSION < '1.9'
3
3
  require 'uuidtools'
4
4
  require 'fileutils'
5
5
  require 'alchemist'
6
+ require 'i18n'
6
7
  #Clases
7
8
  require 'imposition/clases'
8
9
  require 'imposition/metodos'
9
- #
10
+ #i18n
11
+ I18n.load_path = Dir.glob(File.dirname(__FILE__)+"/locales/*.{rb,yml}")
10
12
  #
11
13
  $requerimientos=Hash.new
12
14
  $requerimientos["pdflatex"]="pdflatex"
@@ -18,5 +20,4 @@ check=Metodos.checksCompile()
18
20
  if check.instance_of? Clases::Mensaje then
19
21
  puts check.mensaje
20
22
  #exit
21
- end
22
-
23
+ end
@@ -31,15 +31,15 @@ class Imposicion
31
31
  if @cuadernillos then
32
32
  nXm*=2
33
33
  end
34
- str=":::::::::::::::vars::::::::::::::\n"
34
+ str=I18n.t(:params)+"\n"
35
35
  str+="nX:"+nXm.to_s+"\n"
36
36
  str+="nY:"+@nY.to_s+"\n"
37
- str+="nPaginas:"+@nPaginas.to_s+"\n"
38
- str+="nPliegos:"+@nPliegos.to_s+"\n"
39
- str+="ancho:"+@w.to_s+" "+@w_["unidad"]+"\n"
40
- str+="alto:"+@h.to_s+" "+@h_["unidad"]+"\n"
41
- str+="anchoPliego:"+@wP.to_s+" "+@wP_["unidad"]+"\n"
42
- str+="altoPliego:"+@hP.to_s+" "+@hP_["unidad"]+"\n"
37
+ str+=I18n.t(:nPages)+":"+@nPaginas.to_s+"\n"
38
+ str+=I18n.t(:nSheets)+":"+@nPliegos.to_s+"\n"
39
+ str+=I18n.t(:pwidth)+":"+@w.to_s+" "+@w_["unidad"]+"\n"
40
+ str+=I18n.t(:pheight)+":"+@h.to_s+" "+@h_["unidad"]+"\n"
41
+ str+=I18n.t(:swidth)+":"+@wP.to_s+" "+@wP_["unidad"]+"\n"
42
+ str+=I18n.t(:sheight)+":"+@hP.to_s+" "+@hP_["unidad"]+"\n"
43
43
  return str
44
44
  end
45
45
  end
@@ -92,11 +92,11 @@ class Mensaje
92
92
  end
93
93
  def to_s
94
94
  if @level==1 then
95
- @retorno="info: "
95
+ @retorno=I18n.t(:info)+": "
96
96
  elsif @level==2 then
97
- @retorno="Warn: "
97
+ @retorno=I18n.t(:warn)+": "
98
98
  elsif @level==3 then
99
- @retorno="ERROR: "
99
+ @retorno=I18n(:error)+": "
100
100
  end
101
101
  @retorno+=@mensaje.to_s
102
102
  return @retorno
@@ -125,74 +125,74 @@ class MensajeDato < Mensaje
125
125
  if tipo=="horizontal" then
126
126
  if level==1 then#info
127
127
  if numero==1 then
128
- return "se calcula la cantidad de paginas por pliego horizontalmente en base al ancho del pliego y el de la pagina"
128
+ return I18n.t(:nXCalc)
129
129
  elsif numero==2 then
130
- return [2,"se calcula el ancho del pliego en base al de la pagina y la cantidad de paginas por pliego horizontalmente"]
130
+ return [2,I18n.t(:wPCalc)]
131
131
  elsif numero==3 then
132
- return [12,"se calcula el ancho de la pagina en base al del pliego y la cantidad de paginas por pliego horizontalmente"]
132
+ return [12,I18n.t(:wCalc)]
133
133
  elsif numero==4 then
134
- return [1,"se toma el ancho real de la pagina"]
134
+ return [1,I18n.t(:wRoyal)]
135
135
  end
136
136
  elsif level==3 then#error
137
137
  if numero==1 then
138
- return "ha especificado ancho de pagina pero no de pliego ni cuantas paginas por pliego horizontalmente"
138
+ return I18n.t(:wOnly)
139
139
  elsif numero==2 then
140
- return "ha especificado ancho de pliego pero no de pagina ni cuantas paginas por pliego horizontalmente"
140
+ return I18n.t(:wPOnly)
141
141
  elsif numero==3 then
142
- return "ha especificado cuantas paginas por pliego horizontalmente pero no ancho de pagina ni de pliego"
142
+ return I18n.t(:nXOnly)
143
143
  elsif numero==4 then
144
- return "no ha especificado ni ancho de pagina, ni ancho de pliego, ni cuantos paginas por pliego horizontalmente"
144
+ return I18n.t(:nothingH)
145
145
  elsif numero==5 then
146
- return "no cabe ninguna pagina horizontalmente"
146
+ return I18n.t(:noPageH)
147
147
  end
148
148
  end
149
149
  elsif tipo=="vertical" then
150
150
  if level==1 then#info
151
151
  if numero==1 then
152
- return "se calcula la cantidad de paginas por pliego verticalmente en base al alto del pliego y el de la pagina"
152
+ return I18n.t(:nYCalc)
153
153
  elsif numero==2 then
154
- return [4,"se calcula el alto del pliego en base al de la pagina y la cantidad de paginas por pliego verticalmente"]
154
+ return [4,I18n.t(:hPCalc)]
155
155
  elsif numero==3 then
156
- return [11,"se calcula el alto de la pagina en base al del pliego y la cantidad de paginas por pliego verticalmente"]
156
+ return [11,I18n.t(:hCalc)]
157
157
  elsif numero==4 then
158
- return [3,"se toma el alto real de la pagina"]
158
+ return [3,I18n.t(:hRoyal)]
159
159
  end
160
160
  elsif level==3 then#error
161
161
  if numero==1 then
162
- return "ha especificado alto de pagina pero no de pliego ni cuantas paginas por pliego verticalmente"
162
+ return I18n.t(:hOnly)
163
163
  elsif numero==2 then
164
- return "ha especificado alto de pliego pero no de pagina ni cuantas paginas por pliego verticalmente"
164
+ return I18n.t(:hPOnly)
165
165
  elsif numero==3 then
166
- return "ha especificado cuantas paginas por pliego verticalmente pero no alto de pagina ni de pliego"
166
+ return I18n.t(:nYOnly)
167
167
  elsif numero==4 then
168
- return "no ha especificado ni alto de pagina, ni alto de pliego, ni cuantos paginas por pliego verticalmente"
168
+ return I18n.t(:nothingV)
169
169
  elsif numero==5 then
170
- return "no cabe ninguna pagina verticalmente"
170
+ return I18n.t(:noPageV)
171
171
  end
172
172
  end
173
173
  elsif tipo=="paginas" then
174
174
  if level==1 then
175
175
  if numero==1 then
176
- return "se calcula el numero de paginas a partir del numero de pliegos y de la cantidad de paginas por pliego"
176
+ return I18n.t(:nPageCalc)
177
177
  elsif numero==2 then
178
- return [6,"se calcula el numero de pliegos a partir del numero de paginas y de la cantidad de paginas por pliego"]
178
+ return [6,I18n.t(:nSheetCalc)]
179
179
  elsif numero==3 then
180
- return [5,"se usan todas las paginas del pdf"]
180
+ return [5,I18n.t(:nPagePdf)]
181
181
  end
182
182
  elsif level==3 then
183
183
  if numero==1 then
184
- return "esta especificando mas paginas de las que tiene el documento"
184
+ return I18n.t(:nPageXL)
185
185
  else
186
- return "no ha especificado numero de paginas ni de pliegos"
186
+ return I18n.t(:noPages)
187
187
  end
188
188
  end
189
189
  elsif tipo=="pliegos" then
190
190
  if level==1 then
191
- return "se toman los #{numero} pliegos necesarios"
191
+ return I18n.t(:allSheet, :n=>numero)
192
192
  elsif level==2 then
193
- return "sobran #{numero} pliegos"
193
+ return I18n.t(:sheetXL, :n=>numero)
194
194
  elsif level==3 then
195
- return "faltan #{numero} pliegos"
195
+ return I18n.t(:sheetXS, :n=>numero)
196
196
  end
197
197
  end
198
198
 
@@ -207,16 +207,17 @@ class MensajeMedida < Mensaje
207
207
  def deducirMensaje(level, tipo, args)
208
208
  if tipo=="horizontal" then
209
209
  if level==3 then
210
- return "no caben #{args[0]} paginas de #{args[1]["numero"].to_s+args[1]["unidad"]} de ancho en un pliego de #{args[2]["numero"].to_s+args[2]["unidad"]}"
210
+
211
+ return I18n.t(:nXwwPno, :nX=>args[0], :w=>args[1]["numero"].to_s+args[1]["unidad"], :wP=>args[2]["numero"].to_s+args[2]["unidad"])
211
212
  elsif level==2 then
212
- return "sobra #{args[0].to_s+args[1]} de ancho"
213
+ return I18n.t(:wPXL, :n=>args[0].to_s+args[1])
213
214
  end
214
215
  elsif tipo=="vertical" then
215
216
  if level==3 then
216
- return "no caben #{args[0]} paginas de #{args[1]["numero"].to_s+args[1]["unidad"]} de alto en un pliego de #{args[2]["numero"].to_s+args[2]["unidad"]}"
217
+ return I18n.t(:nYhhPno, :nY=>args[0], :h=>args[1]["numero"].to_s+args[1]["unidad"], :hP=>args[2]["numero"].to_s+args[2]["unidad"])
217
218
  elsif level==2 then
218
219
  @id=15
219
- return "sobra #{args[0].to_s+args[1]} de alto"
220
+ return I18n.t(:hPXL, :n=>args[0].to_s+args[1])
220
221
  end
221
222
  end
222
223
  end
@@ -229,14 +230,14 @@ class MensajeTiempo < Mensaje
229
230
  @level=1
230
231
  if tipo==1 then#booklets
231
232
  @id=14#fijo
232
- @mensaje="::::::::::::booklets:::::::::::::\n"#blink blink
233
- @mensaje+="booklets: "
233
+ @mensaje=I18n.t(:bookltsblink)#blink blink
234
+ @mensaje+=I18n.t(:bookltsxplain)
234
235
  elsif tipo==2 then
235
236
  @id=9#fijo
236
- @mensaje="::::::::::::cut&Stack::::::::::::\n"#blink blink
237
- @mensaje+="cut&Stack: "
237
+ @mensaje=I18n.t(:nUpblink)#blink blink
238
+ @mensaje+=I18n.t(:nUpxplain)
238
239
  end
239
- @mensaje+=@tiempo.to_s+" segundos"
240
+ @mensaje+=@tiempo.to_s+" "+I18n.t(:s)
240
241
  super(level,mensaje)
241
242
  end
242
243
  end
@@ -246,7 +247,7 @@ class MensajeLadoLado < Mensaje
246
247
  def initialize(nP)
247
248
  @id=7#fijo
248
249
  @nP=nP
249
- @mensaje="como son cuadernillos lado y lado los pliegos no pueden ser impares, se toman #{@nP}+1"
250
+ @mensaje=I18n.t(:sheetPair, :n=>@nP)
250
251
  super(1,@mensaje)
251
252
  end
252
253
  end
@@ -301,7 +302,7 @@ class PreguntaExigePar < Pregunta
301
302
  attr_accessor :nX
302
303
  def initialize(nX)
303
304
  @nX=nX
304
- @mensaje="para imponer en cuadernillos tienen que caber horizontalmente en numeros pares pero ud especifico nX:#{@nX}."
305
+ @mensaje=I18n.t(:nXPair, :nX=>@nX)
305
306
  @ok=false
306
307
  end
307
308
  def metodo(nX)
@@ -315,7 +316,7 @@ class PreguntaCXC < Pregunta
315
316
  attr_reader :cXC
316
317
  def initialize()
317
318
  @ide=4
318
- @mensaje="cXC - cuadernillos por costura (0->todos unos dentro de otros, 1->todos uno al lado de otro o n-> de a n cuadernillos uno dentro de otro)"
319
+ @mensaje=I18n.t(:cXC)
319
320
  end
320
321
  def metodo(cXC)
321
322
  @cXC=cXC["numero"].to_i
@@ -329,12 +330,12 @@ class PreguntaEscalado < Pregunta
329
330
  @tipo=tipo
330
331
  if @tipo=="horizontalmente" then
331
332
  @ide=1
332
- @mensaje="no especifico ancho de pagina pero si ancho de pliego y numero de paginas por pliego "+tipo
333
+ @mensaje=I18n.t(:WnX)+" "+I18n.t(tipo)
333
334
  elsif @tipo=="verticalmente" then
334
335
  @ide=2
335
- @mensaje="no especifico alto de pagina pero si alto de pliego y numero de paginas por pliego "+tipo
336
+ @mensaje=I18n.t(:HnY)+" "+I18n.t(tipo)
336
337
  end
337
- @mensaje+=" ¿escalar "+tipo+"?"
338
+ @mensaje+=I18n.t(:scale, :tp=>I18n.t(tipo))
338
339
  end
339
340
  def metodo(yn)
340
341
  @yn=yn
@@ -346,7 +347,7 @@ class PreguntaTodasPag < Pregunta
346
347
  attr_accessor :nPliegos, :nX, :nY, :caben, :tiene
347
348
  def initialize(nPliegos, nX, nY, caben, tiene)
348
349
  @ide=3
349
- @mensaje="el pdf tiene #{tiene.to_i} paginas, pero en #{nPliegos.to_i} de #{nX}x#{nY} caben #{caben.to_i} paginas ¿usar las del pdf? (y/n)"
350
+ @mensaje=I18n.t(:allPdfq, :p=>tiene.to_i, :s=>nPliegos.to_i, :nX=>nX, :nY=>nY, :c=>caben.to_i,)
350
351
  @nPliegos=nPliegos
351
352
  @nX=nX
352
353
  @nY=nY
@@ -363,7 +364,7 @@ class PreguntaReducir < Pregunta
363
364
  attr_reader :q, :cuadernillosPorCostura, :paginasSobran, :nCuad, :sobranMenos
364
365
  def initialize(cuadernillosPorCostura, paginasSobran, nCuad, sobranMenos, q)
365
366
  @ide=5
366
- @mensaje="al ultimo grupo de #{cuadernillosPorCostura} cuadernillos le sobraran #{paginasSobran}p podemos reducirlo a #{nCuad} cuadernillos, asi sobrarian #{sobranMenos}. ¿0K? (y/n)"
367
+ @mensaje=I18n.t(:reduceq, :cXC=>cuadernillosPorCostura, :extra=>paginasSobran, :n=>nCuad, :less=>sobranMenos)
367
368
  @cuadernillosPorCostura=cuadernillosPorCostura
368
369
  @paginasSobran=paginasSobran
369
370
  @nCuad=nCuad
@@ -406,6 +407,4 @@ class RespuestaImpostor
406
407
  end
407
408
  end
408
409
 
409
- end#fin modulo
410
- #proximo
411
- #16
410
+ end#fin modulo
@@ -1,7 +1,6 @@
1
1
  #!/bin/env ruby
2
2
  # encoding: utf-8
3
3
 
4
-
5
4
  module Metodos
6
5
 
7
6
  #WORK
@@ -24,7 +23,7 @@ def checksCompile()
24
23
  $requerimientos.each do |k,v|
25
24
  `which #{v}`
26
25
  if !$?.success? then
27
- return Clases::Mensaje.new(3,"#{v} no es ejecutable")
26
+ return Clases::Mensaje.new(3, I18n.t(:notexe, :x=>v))
28
27
  end
29
28
  end
30
29
  #probamos que exista el directorio de trabajo
@@ -36,10 +35,10 @@ def checksCompile()
36
35
  Dir.mkdir($work)
37
36
  end
38
37
  else
39
- return Clases::Mensaje.new(3,"el directorio de trabajo "+$work+" no se puede escribir")
38
+ return Clases::Mensaje.new(3,I18n.t(:wknowrite, :work=>$work))
40
39
  end
41
40
  else
42
- return Clases::Mensaje.new(3,"el directorio de trabajo "+$work+ " no existe")
41
+ return Clases::Mensaje.new(3,I18n.t(:wknoexist, :work=>$work))
43
42
  end
44
43
  end
45
44
 
@@ -50,23 +49,23 @@ def checksRun(entrada,salida)
50
49
  if File.owned?(entrada) then
51
50
  busca = /.*(.pdf)/
52
51
  if !busca.match(File.basename(entrada)) then
53
- return Clases::Mensaje.new(3,"el archivo "+entrada+" no es pdf")
52
+ return Clases::Mensaje.new(3,I18n.t(:nopdf, :entrada=>entrada))
54
53
  end
55
54
  else
56
- return Clases::Mensaje.new(3,"el archivo "+entrada+" no es mio")
55
+ return Clases::Mensaje.new(3,I18n.t(:notmine))
57
56
  end
58
57
  else
59
- return Clases::Mensaje.new(3,entrada+" no es un archivo")
58
+ return Clases::Mensaje.new(3,I18n.t(:notafile, :entrada=>entrada))
60
59
  end
61
60
  else
62
- return Clases::Mensaje.new(3,"no ha especificado archivo a imponer")
61
+ return Clases::Mensaje.new(3,I18n.t(:nofile))
63
62
  end
64
63
  #y la salida, de haberla
65
64
  if salida!=nil then
66
65
  #if File.exists?(salida) then #TODO crearla si es escribible
67
66
  salidaDir=File.dirname(salida)
68
67
  if !File.writable?(salidaDir) or !File.writable_real?(salidaDir) then
69
- return Clases::Mensaje.new(3,"el directorio de salida "+salida+" no se puede escribir")
68
+ return Clases::Mensaje.new(3,I18n.t(:exitnowrite))
70
69
  end
71
70
  #else
72
71
  # puts salida+ " no existe"
@@ -0,0 +1,72 @@
1
+ en:
2
+ welcome: "- Welcome human, let's print a book. says :::impostor::0.9.4.5.1:::"
3
+ badunit: "%{input}'s unit is incorrect."
4
+ bookletsq: "order for booklets? (y/n)"
5
+ WnX: "You didn't specify Page width but you specified Sheet width and how many Pages per Sheet"
6
+ horizontalmente: "horizontally"
7
+ verticalmente: "vertically"
8
+ HnY: "You didn't specify Page height pero you specified Sheet height and how many Pages per Sheet"
9
+ scale: "¿Do you really wanna scale %{tp} ? (y/n)"
10
+ excesscXC: "Last group of %{cXC} booklets will have extra %{p} pages"
11
+ reducecXC: "We can reduce it to %{nCuad} booklets, to have extra %{sobranMenos} pages. ¿0K? (y/n)"
12
+ nPages: "nPages"
13
+ nSheets: "nSheets"
14
+ dead: "::impostor:: won't work like that"
15
+ end: "Game Over"
16
+ msg: "::::::::::::messages:::::::::::::"
17
+ params: ":::::::::::::params::::::::::::::"
18
+ pwidth: "page width"
19
+ pheight: "page height"
20
+ swidth: "sheet width"
21
+ sheight: "sheet height"
22
+ info: "info"
23
+ warn: "Warning"
24
+ error: "ERROR"
25
+ nXCalc: "nX (pages per sheet horizontally) calculated based on sheet width (W) and page width (w)"
26
+ wPCalc: "W (sheet width) calculated based on page width (w) and number of pages per sheet horizontally (nX)"
27
+ wCalc: "w (page width) calculated based on sheet width (W) and number of pages per sheet horizontally (nX)"
28
+ wRoyal: "Real page width taken"
29
+ wOnly: "You specified w (page width) but not W (sheet width) nor nX (pages per sheet horizontally)"
30
+ wPOnly: "You specified W (sheet width) but not w (page width) nor nX (pages per sheet horizontally)"
31
+ nXOnly: "You specified nX (pages per sheet horizontally) but nor page width (w) nor sheet width (W)"
32
+ nothingH: "You didn't specify page width (w), sheet width (W), nor pages per sheet horizontally (nX)"
33
+ noPageH: "No pages fit horizontally"
34
+ nYCalc: "nY (pages per sheet vertically) calculated based on sheet height (H) and page height (h)"
35
+ hPCalc: "H (sheet height) calculated based on page height (h) and pages per sheet vertically (nY)"
36
+ hCalc: "h (page height) calculated based on sheet height (H) and number of pages per sheet vertically (nY)"
37
+ hRoyal: "Real page height taken"
38
+ hOnly: "You specified h (page height) but not H (sheet height) nor nY (pages per sheet vertically)"
39
+ hPOnly: "You specified H (sheet height) but not h (page height) nor nY (pages per sheet vertically)"
40
+ nYOnly: "You specified nY (pages per sheet vertically) but not page height (h) nor sheet height (H)"
41
+ nothingV: "You didn't specify page height (h), sheet height (H) nor pages per sheet vertically (nY)"
42
+ noPageV: "No pages fit vertically"
43
+ nPageCalc: "Number of pages calculated based on number of sheets and pages per sheet"
44
+ nSheetCalc: "Number of sheets calculated based on number of pages and pages per sheet"
45
+ nPagePdf: "All document's pages taken"
46
+ nPageXL: "You're specifying more pages than the document has"
47
+ noPages: "You didn't specify number of pages or sheets"
48
+ allSheet: "%{n} needed sheets taken"
49
+ sheetXL: "%{n} sheets leftover"
50
+ sheetXS: "%{n} sheets missing"
51
+ nXwwPno: "%{nX} pages %{w} wide don't fit into a %{wP} wide sheet"
52
+ wPXL: "%{n} wide leftover"
53
+ nYhhPno: "%{nY} pages %{h} high don't fit into a %{hP} high sheet"
54
+ hPXL: "%{n} high leftover"
55
+ bookltsblink: "::::::::::booklets:::::::::::\n"
56
+ bookltsxplain: "Ordered for booklets in "
57
+ nUpblink: "::::::::::::cut&Stack::::::::::::\n"
58
+ nUpxplain: "imposed for Cut & Stack in "
59
+ s: "seconds"
60
+ sheetPair: "Sheets can't be odd for side by side booklets, %{n}+1 sheets taken"
61
+ nXPair: "For foldable booklets pages per sheet must be even horizontally but you specified nX:%{nX}."
62
+ cXC: "cXC - booklets per group \n 0: all booklets one inside another, 1: all booklets side by side, or n: in groups of n booklets one inside another"
63
+ allPdfq: "The document has %{p} pages, but in %{s} sheets of %{nX}x%{nY} pages %{c} pages fit ¿use document's? (y/n)"
64
+ reduceq: "Last group of %{cXC} booklets will have an extra %{extra}p leftover. We can reduce it to %{n} booklets, thus only %{less} booklets would be leftover. ¿0K? (y/n)"
65
+ notexe: "%{x} not executable"
66
+ wknoexist: "working directory %{work} doesn't exist"
67
+ wknowrite: "wrking directory %{work} not writeable"
68
+ nopdf: "file %{entrada} is not a pdf"
69
+ notmine: "i don't own %{entrada}"
70
+ notafile: "%{entrada} not a file"
71
+ nofile: "you have specified no file"
72
+ exitnowrite: "output directory %{salida} not writeable"
@@ -0,0 +1,72 @@
1
+ es:
2
+ welcome: "- Bienvenido ser humano, leer es volar al centro de los tiempos... \n Dice :::impostor::0.9.4.5.1:::"
3
+ badunit: "La unidad de %{input} no es correcta."
4
+ bookletsq: "¿imponer en cuadernillos? (y/n)"
5
+ WnX: "No especificó ancho de Página pero sí ancho de Pliego y número de páginas por Pliego"
6
+ horizontalmente: "horizontalmente"
7
+ verticalmente: "verticalmente"
8
+ HnY: "No especificó alto de Página pero sí alto de Pliego y número de páginas por Pliego"
9
+ scale: "¿Confirma escalar %{tp} ? (y/n)"
10
+ excesscXC: "Al último grupo de %{cXC} cuadernillos le sobrarán %{p}p"
11
+ reducecXC: "Podemos reducirlo a %{nCuad} cuadernillos, así sobrarían %{sobranMenos}. ¿0K? (y/n)"
12
+ nPages: "nPáginas"
13
+ nSheets: "nPliegos"
14
+ dead: "::impostor:: se niega a trabajar"
15
+ end: "Colorín colorado..."
16
+ msg: "::::::::::::mensajes:::::::::::::"
17
+ params: ":::::::::::parámetros::::::::::::"
18
+ pwidth: "ancho página"
19
+ pheight: "alto página"
20
+ swidth: "ancho pliego"
21
+ sheight: "alto pliego"
22
+ info: "info"
23
+ warn: "Atención"
24
+ error: "ERROR"
25
+ nXCalc: "Se calcula nX (páginas por pliego horizontalmente) en base al ancho del pliego (W) y el de la página (w)"
26
+ wPCalc: "Se calcula W (ancho del pliego) en base al de la página (w) y la cantidad de páginas por pliego horizontalmente (nX)"
27
+ wCalc: "Se calcula w (ancho de la página) en base al del pliego (W) y la cantidad de páginas por pliego horizontalmente (nX)"
28
+ wRoyal: "Se toma el ancho real de la página"
29
+ wOnly: "Ha especificado w (ancho de página) pero no W (de pliego) ni nX (páginas por pliego horizontalmente)"
30
+ wPOnly: "Ha especificado W (ancho del pliego) pero no w (de página) ni nX (páginas por pliego horizontalmente)"
31
+ nXOnly: "Ha especificado nX (páginas por pliego horizontalmente) pero no ancho de página (w) ni de pliego (W)"
32
+ nothingH: "No ha especificado ni ancho de página (w), ancho de pliego (W), ni páginas por pliego horizontalmente (nX)"
33
+ noPageH: "No cabe ninguna página horizontalmente"
34
+ nYCalc: "Se calcula nY (páginas por pliego verticalmente) en base al alto del pliego (H) y el de la página (h)"
35
+ hPCalc: "Se calcula H (alto del pliego) en base al de la página (h) y la cantidad de páginas por pliego verticalmente (nY)"
36
+ hCalc: "Se calcula h (alto de la página) en base al del pliego (H) y la cantidad de páginas por pliego verticalmente (nY)"
37
+ hRoyal: "Se toma el alto real de la página"
38
+ hOnly: "Ha especificado h (alto de página) pero no H (de pliego) ni nY (páginas por pliego verticalmente)"
39
+ hPOnly: "Ha especificado H (alto del pliego) pero no h (de página) ni nY (páginas por pliego verticalmente)"
40
+ nYOnly: "Ha especificado nY (páginas por pliego verticalmente) pero no alto de página (h) ni de pliego (H)"
41
+ nothingV: "No ha especificado ni alto de página (h), alto de pliego (H), ni páginas por pliego verticalmente (nY)"
42
+ noPageV: "No cabe ninguna página verticalmente"
43
+ nPageCalc: "Se calcula el número de páginas a partir del número de pliegos y de la cantidad de páginas por pliego"
44
+ nSheetCalc: "Se calcula el número de pliegos a partir del número de páginas y de la cantidad de paginas por pliego"
45
+ nPagePdf: "Se usan todas las páginas del PDF"
46
+ nPageXL: "Está especificando más páginas de las que tiene el documento"
47
+ noPages: "No ha especificado número de páginas ni de pliegos"
48
+ allSheet: "Se toman los %{n} pliegos necesarios"
49
+ sheetXL: "Sobran %{n} pliegos"
50
+ sheetXS: "Faltan %{n} pliegos"
51
+ nXwwPno: "No caben %{nX} paginas de %{w} de ancho en un pliego de %{wP}"
52
+ wPXL: "Sobra %{n} de ancho"
53
+ nYhhPno: "No caben %{nY} paginas de %{h} de alto en un pliego de %{hP}"
54
+ hPXL: "Sobra %{n} de alto"
55
+ bookltsblink: "::::::::::cuadernillos:::::::::::\n"
56
+ bookltsxplain: "Ordenado en cuadernillos en "
57
+ nUpblink: "::::::::::::cut&Stack::::::::::::\n"
58
+ nUpxplain: "impuesto para Cut & Stack en "
59
+ s: "segundos"
60
+ sheetPair: "Como son cuadernillos lado y lado, los pliegos no pueden ser impares, se toman %{n}+1"
61
+ nXPair: "Los cuadernillos tienen que caber horizontalmente en números pares pero ud. especificó nX:%{nX}."
62
+ cXC: "cXC - cuadernillos por costura \n 0: todos unos dentro de otros, 1: todos uno al lado del otro, o n: de a n cuadernillos unos dentro de otros"
63
+ allPdfq: "El pdf tiene %{p} páginas, pero en %{s} pliegos de %{nX}x%{nY} caben %{c} páginas ¿usar las del pdf? (y/n)"
64
+ reduceq: "Al último grupo de %{cXC} cuadernillos le sobrarán %{extra}p podemos reducirlo a %{n} cuadernillos, asi sobrarían %{less}. ¿0K? (y/n)"
65
+ notexe: "%{x} no es ejecutable"
66
+ wknoexist: "el directorio de trabajo %{work} no existe"
67
+ wknowrite: "el directorio de trabajo %{work} no se puede escribir"
68
+ nopdf: "el archivo %{entrada} no es pdf"
69
+ notmine: "el archivo %{entrada} no es mio"
70
+ notafile: "%{entrada} no es un archivo"
71
+ nofile: "no ha especificado archivo a imponer"
72
+ exitnowrite: "el directorio de salida %{salida} no se puede escribir"
metadata CHANGED
@@ -1,18 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imposition
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 9
9
9
  - 4
10
- - 5
11
- - 1
12
- version: 0.9.4.5.1
10
+ - 6
11
+ version: 0.9.4.6
13
12
  platform: ruby
14
13
  authors:
15
- - Numerico
14
+ - numerico
16
15
  autorequire:
17
16
  bindir: bin
18
17
  cert_chain: []
@@ -101,6 +100,8 @@ files:
101
100
  - lib/imposition.rb
102
101
  - lib/imposition/metodos.rb
103
102
  - lib/imposition/clases.rb
103
+ - lib/locales/en.yml
104
+ - lib/locales/es.yml
104
105
  - bin/impostor
105
106
  homepage: http://impostor.herokuapp.com
106
107
  licenses: []