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 +32 -23
- data/lib/imposition.rb +5 -4
- data/lib/imposition/clases.rb +55 -56
- data/lib/imposition/metodos.rb +8 -9
- data/lib/locales/en.yml +72 -0
- data/lib/locales/es.yml +72 -0
- metadata +6 -5
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
|
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
|
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(
|
34
|
+
STDOUT.puts(I18n.t(:bookletsq))
|
35
35
|
bookies=STDIN.gets.to_s
|
36
|
-
if bookies[0]
|
36
|
+
if bookies[0].eql?("y") then
|
37
37
|
return true
|
38
|
-
elsif bookies[0]
|
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 "
|
56
|
+
puts I18n.t(:WnX)+" "+I18n.t(tipo)
|
57
57
|
else
|
58
|
-
puts "
|
58
|
+
puts I18n.t(:HnY)+" "+I18n.t(tipo)
|
59
59
|
end
|
60
|
-
|
60
|
+
|
61
|
+
puts(I18n.t(:scale, :tp=>I18n.t(tipo)))
|
61
62
|
escalar=STDIN.gets.to_s
|
62
|
-
if escalar[0]
|
63
|
+
if escalar[0].eql?("y") then
|
63
64
|
return true
|
64
|
-
elsif escalar[0]
|
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]
|
75
|
+
if escalar[0].eql?("y") then
|
75
76
|
return true
|
76
|
-
elsif escalar[0]
|
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
|
85
|
-
puts
|
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]
|
88
|
+
if ok[0].eql?("y") then
|
88
89
|
return true
|
89
|
-
elsif ok[0]
|
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
|
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("
|
119
|
-
nPliegos_=input("
|
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
|
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
|
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
|
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
|
data/lib/imposition/clases.rb
CHANGED
@@ -31,15 +31,15 @@ class Imposicion
|
|
31
31
|
if @cuadernillos then
|
32
32
|
nXm*=2
|
33
33
|
end
|
34
|
-
str="
|
34
|
+
str=I18n.t(:params)+"\n"
|
35
35
|
str+="nX:"+nXm.to_s+"\n"
|
36
36
|
str+="nY:"+@nY.to_s+"\n"
|
37
|
-
str+="
|
38
|
-
str+="
|
39
|
-
str+="
|
40
|
-
str+="
|
41
|
-
str+="
|
42
|
-
str+="
|
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="
|
95
|
+
@retorno=I18n.t(:info)+": "
|
96
96
|
elsif @level==2 then
|
97
|
-
@retorno="
|
97
|
+
@retorno=I18n.t(:warn)+": "
|
98
98
|
elsif @level==3 then
|
99
|
-
@retorno="
|
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
|
128
|
+
return I18n.t(:nXCalc)
|
129
129
|
elsif numero==2 then
|
130
|
-
return [2,
|
130
|
+
return [2,I18n.t(:wPCalc)]
|
131
131
|
elsif numero==3 then
|
132
|
-
return [12,
|
132
|
+
return [12,I18n.t(:wCalc)]
|
133
133
|
elsif numero==4 then
|
134
|
-
return [1,
|
134
|
+
return [1,I18n.t(:wRoyal)]
|
135
135
|
end
|
136
136
|
elsif level==3 then#error
|
137
137
|
if numero==1 then
|
138
|
-
return
|
138
|
+
return I18n.t(:wOnly)
|
139
139
|
elsif numero==2 then
|
140
|
-
return
|
140
|
+
return I18n.t(:wPOnly)
|
141
141
|
elsif numero==3 then
|
142
|
-
return
|
142
|
+
return I18n.t(:nXOnly)
|
143
143
|
elsif numero==4 then
|
144
|
-
return
|
144
|
+
return I18n.t(:nothingH)
|
145
145
|
elsif numero==5 then
|
146
|
-
return
|
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
|
152
|
+
return I18n.t(:nYCalc)
|
153
153
|
elsif numero==2 then
|
154
|
-
return [4,
|
154
|
+
return [4,I18n.t(:hPCalc)]
|
155
155
|
elsif numero==3 then
|
156
|
-
return [11,
|
156
|
+
return [11,I18n.t(:hCalc)]
|
157
157
|
elsif numero==4 then
|
158
|
-
return [3,
|
158
|
+
return [3,I18n.t(:hRoyal)]
|
159
159
|
end
|
160
160
|
elsif level==3 then#error
|
161
161
|
if numero==1 then
|
162
|
-
return
|
162
|
+
return I18n.t(:hOnly)
|
163
163
|
elsif numero==2 then
|
164
|
-
return
|
164
|
+
return I18n.t(:hPOnly)
|
165
165
|
elsif numero==3 then
|
166
|
-
return
|
166
|
+
return I18n.t(:nYOnly)
|
167
167
|
elsif numero==4 then
|
168
|
-
return
|
168
|
+
return I18n.t(:nothingV)
|
169
169
|
elsif numero==5 then
|
170
|
-
return
|
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
|
176
|
+
return I18n.t(:nPageCalc)
|
177
177
|
elsif numero==2 then
|
178
|
-
return [6,
|
178
|
+
return [6,I18n.t(:nSheetCalc)]
|
179
179
|
elsif numero==3 then
|
180
|
-
return [5,
|
180
|
+
return [5,I18n.t(:nPagePdf)]
|
181
181
|
end
|
182
182
|
elsif level==3 then
|
183
183
|
if numero==1 then
|
184
|
-
return
|
184
|
+
return I18n.t(:nPageXL)
|
185
185
|
else
|
186
|
-
return
|
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
|
191
|
+
return I18n.t(:allSheet, :n=>numero)
|
192
192
|
elsif level==2 then
|
193
|
-
return
|
193
|
+
return I18n.t(:sheetXL, :n=>numero)
|
194
194
|
elsif level==3 then
|
195
|
-
return
|
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
|
-
|
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
|
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
|
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
|
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=
|
233
|
-
@mensaje+=
|
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=
|
237
|
-
@mensaje+=
|
237
|
+
@mensaje=I18n.t(:nUpblink)#blink blink
|
238
|
+
@mensaje+=I18n.t(:nUpxplain)
|
238
239
|
end
|
239
|
-
@mensaje+=@tiempo.to_s+"
|
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=
|
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=
|
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=
|
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="
|
333
|
+
@mensaje=I18n.t(:WnX)+" "+I18n.t(tipo)
|
333
334
|
elsif @tipo=="verticalmente" then
|
334
335
|
@ide=2
|
335
|
-
@mensaje="
|
336
|
+
@mensaje=I18n.t(:HnY)+" "+I18n.t(tipo)
|
336
337
|
end
|
337
|
-
@mensaje+=
|
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=
|
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=
|
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
|
data/lib/imposition/metodos.rb
CHANGED
@@ -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,
|
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,
|
38
|
+
return Clases::Mensaje.new(3,I18n.t(:wknowrite, :work=>$work))
|
40
39
|
end
|
41
40
|
else
|
42
|
-
return Clases::Mensaje.new(3,
|
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,
|
52
|
+
return Clases::Mensaje.new(3,I18n.t(:nopdf, :entrada=>entrada))
|
54
53
|
end
|
55
54
|
else
|
56
|
-
return Clases::Mensaje.new(3,
|
55
|
+
return Clases::Mensaje.new(3,I18n.t(:notmine))
|
57
56
|
end
|
58
57
|
else
|
59
|
-
return Clases::Mensaje.new(3,entrada
|
58
|
+
return Clases::Mensaje.new(3,I18n.t(:notafile, :entrada=>entrada))
|
60
59
|
end
|
61
60
|
else
|
62
|
-
return Clases::Mensaje.new(3,
|
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,
|
68
|
+
return Clases::Mensaje.new(3,I18n.t(:exitnowrite))
|
70
69
|
end
|
71
70
|
#else
|
72
71
|
# puts salida+ " no existe"
|
data/lib/locales/en.yml
ADDED
@@ -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"
|
data/lib/locales/es.yml
ADDED
@@ -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:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 9
|
9
9
|
- 4
|
10
|
-
-
|
11
|
-
|
12
|
-
version: 0.9.4.5.1
|
10
|
+
- 6
|
11
|
+
version: 0.9.4.6
|
13
12
|
platform: ruby
|
14
13
|
authors:
|
15
|
-
-
|
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: []
|