imposition 0.9.4.5.1 → 0.9.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []