Commit 2a1897a85c4b012c4edc6c56d58c043e2176fbff

Authored by perry.werneck@gmail.com
1 parent 946398e1

Incluindo tradução dos arquivos .xml

Makefile.in
... ... @@ -52,6 +52,7 @@ DBGLIB=-L../../$(BINDIR)/Debug/lib -l3270
52 52 RLSLIB=-L../../$(BINDIR)/Release/lib -l3270
53 53 TMPDIR=.tmp
54 54 GLOBAL_DEPS=$(PWD)/include/*.h $(PWD)/include/lib3270/*.h
  55 +LANG_FILES=$(wildcard po/*.po)
55 56  
56 57 #---[ Tools ]------------------------------------------------------------------
57 58  
... ... @@ -65,6 +66,7 @@ CONVERT=@CONVERT@
65 66 MSGCAT=@MSGCAT@
66 67 MSGINIT=@MSGINIT@
67 68 MSGMERGE=@MSGMERGE@
  69 +XML2POT=src/tools/xml2pot@EXEEXT@
68 70  
69 71 #---[ Rules ]------------------------------------------------------------------
70 72  
... ... @@ -89,9 +91,12 @@ po/%.po: $(PACKAGE_NAME).po
89 91 @touch $(TMPDIR)/$@
90 92 @$(MSGMERGE) $(TMPDIR)/$@ $(PACKAGE_NAME).po --output-file=$@
91 93  
  94 +src/tools/%@EXEEXT@: src/tools/%.c
  95 + @make -C src/tools $(notdir $@)
  96 +
92 97 #---[ Release targets ]--------------------------------------------------------
93 98  
94   -all: $(BINDIR)/Release/$(PACKAGE_TARNAME)$(EXEEXT) filelist
  99 +all: $(BINDIR)/Release/$(PACKAGE_TARNAME)$(EXEEXT) lang filelist
95 100  
96 101 Release: $(BINDIR)/Release/$(PACKAGE_TARNAME)$(EXEEXT)
97 102  
... ... @@ -135,6 +140,8 @@ endif
135 140  
136 141 #---[ Targets ]----------------------------------------------------------------
137 142  
  143 +lang: $(foreach SRC, $(basename $(LANG_FILES)), $(SRC).po)
  144 +
138 145 tgz: $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.gz
139 146  
140 147 rpm: $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.gz
... ... @@ -151,7 +158,12 @@ $(PACKAGE_NAME).po: $(TMPDIR)/$(PACKAGE_NAME).pot
151 158 @echo " INIT `basename $@`"
152 159 @$(MSGINIT) --no-translator -o $@ -i $^
153 160  
154   -$(TMPDIR)/$(PACKAGE_NAME).pot: $(BINDIR)/pot/pw3270.pot $(BINDIR)/pot/lib3270.pot
  161 +$(BINDIR)/pot/ui.pot: $(XML2POT) $(wildcard ui/*.xml)
  162 + @echo " TEXT `basename $@`"
  163 + @$(MKDIR) `dirname $@`
  164 + @$(XML2POT) $(wildcard ui/*.xml) > $@
  165 +
  166 +$(TMPDIR)/$(PACKAGE_NAME).pot: $(BINDIR)/pot/pw3270.pot $(BINDIR)/pot/lib3270.pot $(BINDIR)/pot/ui.pot
155 167 @echo " TEXT `basename $@`"
156 168 @$(MKDIR) `dirname $@`
157 169 @$(MSGCAT) --sort-output $^ | sed "s&VERSION&$(PACKAGE_VERSION)&;s&CHARSET&UTF-8&;s&PACKAGE&$(PACKAGE_NAME)&g" > $@
... ... @@ -203,6 +215,7 @@ clean:
203 215 @rm -f debian/*.install
204 216 @make -C src/lib3270 clean
205 217 @make -C src/pw3270 clean
  218 + @make -C src/tools clean
206 219 @rm -f *.log
207 220  
208 221 distclean: clean
... ...
configure.ac
... ... @@ -273,6 +273,7 @@ AC_CONFIG_FILES([
273 273 src/pw3270/Makefile
274 274 src/pw3270/uiparser/Makefile
275 275 src/pw3270/common/common.h
  276 + src/tools/Makefile
276 277  
277 278 ])
278 279  
... ...
po/pt_BR.po
... ... @@ -2,7 +2,7 @@ msgid ""
2 2 msgstr ""
3 3 "Project-Id-Version: pw3270 5.0\n"
4 4 "Report-Msgid-Bugs-To: \n"
5   -"POT-Creation-Date: 2012-05-03 16:52-0300\n"
  5 +"POT-Creation-Date: 2012-05-04 08:17-0300\n"
6 6 "PO-Revision-Date: \n"
7 7 "Last-Translator: Perry Werneck <perry.werneck@gmail.com>\n"
8 8 "Language-Team: \n"
... ... @@ -18,15 +18,12 @@ msgstr &quot;&quot;
18 18 msgid " Unknown frame type from host"
19 19 msgstr ""
20 20  
21   -#: actions.c:608
22   -#: actions.c:620
  21 +#: actions.c:608 actions.c:620
23 22 #, c-format
24 23 msgid "%s action needs a valid id attribute"
25 24 msgstr "Ação %s exige um atributo ID válido"
26 25  
27   -#: actions.c:483
28   -#: actions.c:585
29   -#: actions.c:597
  26 +#: actions.c:483 actions.c:585 actions.c:597
30 27 #, c-format
31 28 msgid "%s action needs a valid toggle name"
32 29 msgstr "Ação %s exige um nome de toggle válido"
... ... @@ -55,10 +52,7 @@ msgstr &quot;%s:%d&quot;
55 52 msgid "- 3270 Emulator for Gtk"
56 53 msgstr "- Emulador 3270 para GTK"
57 54  
58   -#: screen.c:622
59   -#: screen.c:647
60   -#: screen.c:659
61   -#: screen.c:768
  55 +#: screen.c:622 screen.c:647 screen.c:659 screen.c:768
62 56 #, fuzzy
63 57 msgid "3270 Error"
64 58 msgstr "Erro 3270"
... ... @@ -75,6 +69,11 @@ msgstr &quot;Tela 3270&quot;
75 69 msgid "3270 terminal emulator for GTK+"
76 70 msgstr "Emulador 3270 para GTK+"
77 71  
  72 +#: uiparser/menubar.c:40 uiparser/toolbar.c:49
  73 +#, c-format
  74 +msgid "<%s> should be on toplevel"
  75 +msgstr ""
  76 +
78 77 #: uiparser/accelerator.c:41
79 78 msgid "<accelerator> should be on toplevel"
80 79 msgstr ""
... ... @@ -108,10 +107,6 @@ msgstr &quot;&lt;menu&gt; é inválido nesse contexto&quot;
108 107 msgid "<menu> requires a label attribute"
109 108 msgstr ""
110 109  
111   -#: uiparser/menubar.c:40
112   -msgid "<menubar> should be on toplevel"
113   -msgstr ""
114   -
115 110 #: uiparser/menuitem.c:60
116 111 msgid "<menuitem> is invalid at this context"
117 112 msgstr ""
... ... @@ -142,11 +137,7 @@ msgstr &quot;&quot;
142 137  
143 138 #: uiparser/separator.c:53
144 139 msgid "<separator> should be inside a <menu> or <toolbar>"
145   -msgstr ""
146   -
147   -#: uiparser/toolbar.c:49
148   -msgid "<toolbar> should be on toplevel"
149   -msgstr ""
  140 +msgstr "<separator> só é válido dentro de <menu> ou <toolbar>"
150 141  
151 142 #: uiparser/toolitem.c:42
152 143 msgid "<toolitem> is invalid at this context"
... ... @@ -156,6 +147,14 @@ msgstr &quot;&quot;
156 147 msgid "Action failed"
157 148 msgstr "Ação falhou"
158 149  
  150 +#: ui/00default.xml:113
  151 +msgid "Add to copy"
  152 +msgstr "Adicionar à cópia"
  153 +
  154 +#: ui/00default.xml:180
  155 +msgid "Alert sound"
  156 +msgstr "Aviso sonoro"
  157 +
159 158 #: main.c:145
160 159 msgid "Application name"
161 160 msgstr "Nome da aplicação"
... ... @@ -165,6 +164,11 @@ msgstr &quot;Nome da aplicação&quot;
165 164 msgid "Attribute \"%s\" is invalid or undefined"
166 165 msgstr "Atributo \"%s\" é invalido ou indefinido"
167 166  
  167 +#: ui/00default.xml:175
  168 +#, fuzzy
  169 +msgid "Auto-Reconnect"
  170 +msgstr "Servidor a conectar"
  171 +
168 172 #: colors.c:351
169 173 msgid "Background"
170 174 msgstr "Fundo"
... ... @@ -177,10 +181,22 @@ msgstr &quot;Versão winsock inválida&quot;
177 181 msgid "Black"
178 182 msgstr "Preto"
179 183  
  184 +#: ui/00default.xml:173
  185 +msgid "Blank Fill"
  186 +msgstr "Completar com espaços"
  187 +
  188 +#: ui/00default.xml:167
  189 +msgid "Blinking Cursor"
  190 +msgstr "Cursor piscante"
  191 +
180 192 #: colors.c:352
181 193 msgid "Blue"
182 194 msgstr "Azul"
183 195  
  196 +#: ui/00default.xml:176
  197 +msgid "Bold"
  198 +msgstr "Negrito"
  199 +
184 200 #: dialog.c:576
185 201 msgid "Brazilian Public Software Portal"
186 202 msgstr "Portal do Software Público Brasileiro"
... ... @@ -225,9 +241,7 @@ msgstr &quot;Não foi possível carregar arquivo&quot;
225 241 msgid "Can't open local file"
226 242 msgstr "Não foi possível abrir arquivo local"
227 243  
228   -#: uiparser/parser.c:241
229   -#: uiparser/parsefile.c:301
230   -#: uiparser/parsefile.c:329
  244 +#: uiparser/parser.c:241 uiparser/parsefile.c:301 uiparser/parsefile.c:329
231 245 msgid "Can't parse UI"
232 246 msgstr ""
233 247  
... ... @@ -236,8 +250,7 @@ msgstr &quot;&quot;
236 250 msgid "Can't parse UI description files in %s"
237 251 msgstr ""
238 252  
239   -#: uiparser/parsefile.c:100
240   -#: uiparser/parsefile.c:126
  253 +#: uiparser/parsefile.c:100 uiparser/parsefile.c:126
241 254 msgid "Can't parse unnamed element"
242 255 msgstr ""
243 256  
... ... @@ -288,12 +301,16 @@ msgstr &quot;&quot;
288 301 #: init.c:224
289 302 #, c-format
290 303 msgid "Cannot find charset \"%s\", using defaults"
291   -msgstr ""
  304 +msgstr "Não encontrei codificação \"%s\", usando default"
292 305  
293 306 #: v3270/selection.c:383
294 307 msgid "Charset error"
295 308 msgstr "Erro de codificação de caracteres"
296 309  
  310 +#: ui/00default.xml:127
  311 +msgid "Clear"
  312 +msgstr "Limpar"
  313 +
297 314 #: colors.c:473
298 315 msgid "Color scheme:"
299 316 msgstr "Tema de cores:"
... ... @@ -302,6 +319,29 @@ msgstr &quot;Tema de cores:&quot;
302 319 msgid "Color setup"
303 320 msgstr "Configuração de cores"
304 321  
  322 +#: ui/00default.xml:157
  323 +#, fuzzy
  324 +msgid "Colors"
  325 +msgstr "Configuração de cores"
  326 +
  327 +#: ui/00default.xml:166
  328 +#, fuzzy
  329 +msgid "Connect on startup"
  330 +msgstr "Não foi possível conectar ao servidor"
  331 +
  332 +#: ui/00default.xml:110
  333 +msgid "Copy"
  334 +msgstr "Copiar"
  335 +
  336 +#: ui/00default.xml:111
  337 +msgid "Copy as table"
  338 +msgstr "Copiar como tabela"
  339 +
  340 +#: ui/00default.xml:172
  341 +#, fuzzy
  342 +msgid "Cross Hair Cursor"
  343 +msgstr "Cursor mira"
  344 +
305 345 #: colors.c:376
306 346 msgid "Cross-hair cursor"
307 347 msgstr "Cursor mira"
... ... @@ -315,6 +355,10 @@ msgstr &quot;Current (%s)&quot;
315 355 msgid "Custom colors"
316 356 msgstr "Cores personalizadas"
317 357  
  358 +#: ui/99debug.xml:36
  359 +msgid "DS Trace"
  360 +msgstr ""
  361 +
318 362 #: colors.c:360
319 363 msgid "Dark Blue"
320 364 msgstr "Azul Escuro"
... ... @@ -323,11 +367,18 @@ msgstr &quot;Azul Escuro&quot;
323 367 msgid "Dark Green"
324 368 msgstr "Verde Escuro"
325 369  
326   -#: ft_cut.c:163
327   -#: ft_cut.c:171
  370 +#: ft_cut.c:163 ft_cut.c:171
328 371 msgid "Data conversion error"
329 372 msgstr "Erro na conversão de dados"
330 373  
  374 +#: ui/99debug.xml:43
  375 +msgid "Debug"
  376 +msgstr ""
  377 +
  378 +#: ui/99debug.xml:45
  379 +msgid "Debug window updates"
  380 +msgstr ""
  381 +
331 382 #: telnet.c:1260
332 383 msgid "EOR received when not in 3270 mode, ignored."
333 384 msgstr ""
... ... @@ -336,8 +387,7 @@ msgstr &quot;&quot;
336 387 msgid "Empty LU name"
337 388 msgstr "Nome da LU está em branco"
338 389  
339   -#: host.c:266
340   -#: host.c:393
  390 +#: host.c:266 host.c:393
341 391 msgid "Empty hostname"
342 392 msgstr "Nome do host em branco"
343 393  
... ... @@ -345,6 +395,18 @@ msgstr &quot;Nome do host em branco&quot;
345 395 msgid "Empty port name"
346 396 msgstr "Porta em branco"
347 397  
  398 +#: ui/00default.xml:128
  399 +msgid "Erase input"
  400 +msgstr "Apagar campos"
  401 +
  402 +#: ui/00default.xml:130
  403 +msgid "Erase to end of field"
  404 +msgstr "Apagar até o final do campo"
  405 +
  406 +#: ui/00default.xml:131
  407 +msgid "Erase to end of line"
  408 +msgstr "Apagar até o final da linha"
  409 +
348 410 #: resolver.c:106
349 411 #, c-format
350 412 msgid "Error %d resolving %s"
... ... @@ -360,6 +422,10 @@ msgstr &quot;Erro lendo %s&quot;
360 422 msgid "Error resolving %s: %s"
361 423 msgstr "Erro ao resolver %s: %s"
362 424  
  425 +#: ui/99debug.xml:38
  426 +msgid "Event Trace"
  427 +msgstr ""
  428 +
363 429 #: colors.c:344
364 430 msgid "Fields"
365 431 msgstr ""
... ... @@ -372,6 +438,10 @@ msgstr &quot;&quot;
372 438 msgid "Forces monochrome display"
373 439 msgstr "Força tela monocromática"
374 440  
  441 +#: ui/00default.xml:170
  442 +msgid "Full Screen"
  443 +msgstr ""
  444 +
375 445 #: main.c:60
376 446 msgid "GTK Version mismatch"
377 447 msgstr "Divergência de versão GTK"
... ... @@ -384,6 +454,10 @@ msgstr &quot;Cinza&quot;
384 454 msgid "Green"
385 455 msgstr "Verde"
386 456  
  457 +#: ui/00default.xml:190
  458 +msgid "Help"
  459 +msgstr "Ajuda"
  460 +
387 461 #: ft.c:378
388 462 msgid "Host disconnected, transfer cancelled"
389 463 msgstr "Host desconectou, transferência cancelada"
... ... @@ -392,14 +466,8 @@ msgstr &quot;Host desconectou, transferência cancelada&quot;
392 466 msgid "Host to connect"
393 467 msgstr "Servidor a conectar"
394 468  
395   -#: host.c:314
396   -#: host.c:339
397   -#: host.c:351
398   -#: host.c:377
399   -#: host.c:389
400   -#: host.c:393
401   -#: host.c:446
402   -#: host.c:461
  469 +#: host.c:314 host.c:339 host.c:351 host.c:377 host.c:389 host.c:393
  470 +#: host.c:446 host.c:461
403 471 msgid "Hostname syntax error"
404 472 msgstr "Formato inválido no nome do servidor"
405 473  
... ... @@ -407,6 +475,10 @@ msgstr &quot;Formato inválido no nome do servidor&quot;
407 475 msgid "Illegal frame length"
408 476 msgstr ""
409 477  
  478 +#: ui/00default.xml:185
  479 +msgid "Input method"
  480 +msgstr ""
  481 +
410 482 #: colors.c:371
411 483 msgid "Intensified/Protected"
412 484 msgstr "Intensificado/Protegido"
... ... @@ -419,13 +491,14 @@ msgstr &quot;Intensificado/Desprotegido&quot;
419 491 msgid "Invalid (empty) hostname"
420 492 msgstr "Nome do host é invalido (vazio)"
421 493  
422   -#: uiparser/menubar.c:46
423   -msgid "Invalid or unexpected action attribute in <menubar>"
424   -msgstr ""
  494 +#: uiparser/menubar.c:46 uiparser/toolbar.c:55
  495 +#, fuzzy, c-format
  496 +msgid "Invalid or unexpected action attribute in <%s>"
  497 +msgstr "Atributo "
425 498  
426   -#: uiparser/toolbar.c:55
427   -msgid "Invalid or unexpected action attribute in <toolbar>"
428   -msgstr ""
  499 +#: ui/00default.xml:178
  500 +msgid "Keep selected"
  501 +msgstr "Manter selecionado"
429 502  
430 503 #: paste.c:267
431 504 msgid "Keyboard is locked"
... ... @@ -440,6 +513,10 @@ msgstr &quot;Faltando &#39;]&#39;&quot;
440 513 msgid "Model %d (%s)"
441 514 msgstr "Modelo %d (%s)"
442 515  
  516 +#: ui/00default.xml:168
  517 +msgid "Monocase"
  518 +msgstr "Só Maiúsculas"
  519 +
443 520 #: actions.c:500
444 521 msgid "Move action needs target & direction attributes"
445 522 msgstr "Ação \"move\" precisa dos atributos \"target\" e \"direction\""
... ... @@ -456,14 +533,14 @@ msgstr &quot;Mostarda&quot;
456 533 msgid "Network error"
457 534 msgstr "Erro de rede"
458 535  
459   -#: telnet.c:374
460   -#: telnet.c:385
461   -#: telnet.c:692
462   -#: telnet.c:704
463   -#: telnet.c:976
  536 +#: telnet.c:374 telnet.c:385 telnet.c:692 telnet.c:704 telnet.c:976
464 537 msgid "Network startup error"
465 538 msgstr "Erro ao iniciar a rede"
466 539  
  540 +#: ui/00default.xml:237
  541 +msgid "Next field"
  542 +msgstr "Próximo campo"
  543 +
467 544 #: colors.c:370
468 545 msgid "Normal/Protected"
469 546 msgstr "Normal/Protegido"
... ... @@ -522,14 +599,48 @@ msgstr &quot;Erro de interpretação&quot;
522 599 msgid "Parse error in %s"
523 600 msgstr "Erro de interpretação em %s"
524 601  
  602 +#: ui/00default.xml:114
  603 +msgid "Paste"
  604 +msgstr "Colar"
  605 +
  606 +#: ui/00default.xml:115
  607 +msgid "Paste next"
  608 +msgstr "Colar próximo"
  609 +
  610 +#: ui/00default.xml:118
  611 +#, fuzzy
  612 +msgid "Paste text file"
  613 +msgstr "Não foi possível salvar arquivo"
  614 +
525 615 #: dialog.c:486
526 616 msgid "Paste text file contents"
527   -msgstr ""
  617 +msgstr "Colar conteúdo de arquivo texto"
  618 +
  619 +#: ui/00default.xml:171
  620 +msgid "Paste with left margin"
  621 +msgstr "Colar com margem esquerda"
528 622  
529 623 #: colors.c:354
530 624 msgid "Pink"
531 625 msgstr "Rosa"
532 626  
  627 +#: ui/00default.xml:236
  628 +msgid "Previous field"
  629 +msgstr "Campo anterior"
  630 +
  631 +#: ui/00default.xml:98
  632 +msgid "Print"
  633 +msgstr "Imprimir"
  634 +
  635 +#: ui/00default.xml:100
  636 +msgid "Print copy"
  637 +msgstr "Imprimir cópia"
  638 +
  639 +#: ui/00default.xml:99
  640 +#, fuzzy
  641 +msgid "Print selected"
  642 +msgstr "X Protegido"
  643 +
533 644 #: print.c:333
534 645 msgid "Print selection box"
535 646 msgstr ""
... ... @@ -542,10 +653,31 @@ msgstr &quot;Servidor proxy (tipo:nome[:port])&quot;
542 653 msgid "Purple"
543 654 msgstr "Púrpura"
544 655  
  656 +#: ui/00default.xml:103
  657 +msgid "Receive file"
  658 +msgstr ""
  659 +
545 660 #: colors.c:353
546 661 msgid "Red"
547 662 msgstr "Vermelho"
548 663  
  664 +#: ui/99debug.xml:44
  665 +msgid "Reload buffer contents"
  666 +msgstr ""
  667 +
  668 +#: ui/00default.xml:123
  669 +#, fuzzy
  670 +msgid "Remove selection"
  671 +msgstr "Salvar seleção para arquivo"
  672 +
  673 +#: ui/00default.xml:124
  674 +msgid "Reselect"
  675 +msgstr "Reselecionar"
  676 +
  677 +#: ui/00default.xml:238
  678 +msgid "Return"
  679 +msgstr ""
  680 +
549 681 #: telnet.c:3327
550 682 msgid "SSL Connect error"
551 683 msgstr "Erro na conexão SSL"
... ... @@ -554,22 +686,61 @@ msgstr &quot;Erro na conexão SSL&quot;
554 686 msgid "SSL error"
555 687 msgstr "Erro SSL"
556 688  
  689 +#: ui/00default.xml:95
  690 +#, fuzzy
  691 +msgid "Save copy"
  692 +msgstr "Salvar cópia para arquivo"
  693 +
557 694 #: dialog.c:428
558 695 msgid "Save copy to file"
559 696 msgstr "Salvar cópia para arquivo"
560 697  
  698 +#: ui/00default.xml:93
  699 +#, fuzzy
  700 +msgid "Save screen"
  701 +msgstr "Salvar tela para arquivo"
  702 +
561 703 #: dialog.c:403
562 704 msgid "Save screen to file"
563 705 msgstr "Salvar tela para arquivo"
564 706  
  707 +#: ui/00default.xml:94
  708 +#, fuzzy
  709 +msgid "Save selected"
  710 +msgstr "Salvar seleção para arquivo"
  711 +
565 712 #: dialog.c:417
566 713 msgid "Save selection to file"
567 714 msgstr "Salvar seleção para arquivo"
568 715  
  716 +#: ui/00default.xml:163
  717 +#, fuzzy
  718 +msgid "Screen size"
  719 +msgstr "Salvar tela para arquivo"
  720 +
569 721 #: telnet.c:977
570 722 msgid "Second connect() failed"
571 723 msgstr "Segundo connect() falhou"
572 724  
  725 +#: ui/00default.xml:122
  726 +#, fuzzy
  727 +msgid "Select Field"
  728 +msgstr "WSAEventSelect falhou"
  729 +
  730 +#: ui/00default.xml:121
  731 +#, fuzzy
  732 +msgid "Select all"
  733 +msgstr "Selecione host"
  734 +
  735 +#: ui/00default.xml:174
  736 +msgid "Select by rectangles"
  737 +msgstr "Seleção retangular"
  738 +
  739 +#: ui/00default.xml:160
  740 +#, fuzzy
  741 +msgid "Select font"
  742 +msgstr "Selecione host"
  743 +
573 744 #: dialog.c:296
574 745 msgid "Select hostname"
575 746 msgstr "Selecione host"
... ... @@ -582,13 +753,46 @@ msgstr &quot;Fundo da seleção&quot;
582 753 msgid "Selection foreground"
583 754 msgstr "Frente da seleção"
584 755  
  756 +#: ui/00default.xml:104
  757 +msgid "Send file"
  758 +msgstr "Enviar arquivo"
  759 +
  760 +#: ui/00default.xml:103
  761 +msgid "Send/Receive"
  762 +msgstr "Enviar/Receber"
  763 +
  764 +#: ui/00default.xml:142
  765 +#, fuzzy
  766 +msgid "Set hostname"
  767 +msgstr "Selecione host"
  768 +
585 769 #: glue.c:325
586 770 msgid "Set terminal model (screen size)"
587 771 msgstr "Modelo de terminal (tamanho da tela)"
588 772  
589 773 #: glue.c:330
590   -msgid "Sets the screen dimensions to be larger than the default for the chosen model (COLSxROWS)."
591   -msgstr "Define que as dimensões da tela serão maiores do que o padrão para o modelo escolhido (COLSxROWS)."
  774 +msgid ""
  775 +"Sets the screen dimensions to be larger than the default for the chosen "
  776 +"model (COLSxROWS)."
  777 +msgstr ""
  778 +"Define que as dimensões da tela serão maiores do que o padrão para o modelo "
  779 +"escolhido (COLSxROWS)."
  780 +
  781 +#: ui/00default.xml:157
  782 +msgid "Settings"
  783 +msgstr "Configurações"
  784 +
  785 +#: ui/00default.xml:177
  786 +msgid "Show Underline"
  787 +msgstr ""
  788 +
  789 +#: ui/99debug.xml:43
  790 +msgid "Show test pattern"
  791 +msgstr "Mostrar padrão de teste"
  792 +
  793 +#: ui/00default.xml:179
  794 +msgid "Smart paste"
  795 +msgstr "Colar inteligente"
592 796  
593 797 #: telnet.c:1045
594 798 msgid "Socket read error"
... ... @@ -603,7 +807,8 @@ msgid &quot;Space in LU name&quot;
603 807 msgstr "Espaçõ no nome da LU"
604 808  
605 809 #: glue.c:347
606   -msgid "Specifies the terminal name to be transmitted over the telnet connection."
  810 +msgid ""
  811 +"Specifies the terminal name to be transmitted over the telnet connection."
607 812 msgstr "Define o nome do terminal a ser transmitido através da conexão telnet."
608 813  
609 814 #: colors.c:343
... ... @@ -629,31 +834,56 @@ msgstr &quot;O nome do arquivo remoto não é válido&quot;
629 834  
630 835 #: dialog.c:526
631 836 msgid ""
632   -"This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\n"
  837 +"This program is free software; you can redistribute it and/or modify it "
  838 +"under the terms of the GNU General Public License as published by the Free "
  839 +"Software Foundation; either version 2 of the License, or (at your option) "
  840 +"any later version.\n"
633 841 "\n"
634   -"This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n"
  842 +"This program is distributed in the hope that it will be useful, but WITHOUT "
  843 +"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or "
  844 +"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for "
  845 +"more details.\n"
635 846 "\n"
636   -"You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02111-1307 USA"
  847 +"You should have received a copy of the GNU General Public License along with "
  848 +"this program; if not, write to the Free Software Foundation, Inc., 51 "
  849 +"Franklin St, Fifth Floor, Boston, MA 02111-1307 USA"
637 850 msgstr ""
638   -"Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela Free Software Foundation.\n"
  851 +"Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo "
  852 +"sob os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado "
  853 +"pela Free Software Foundation.\n"
639 854 "\n"
640   -"Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para obter mais detalhes.\n"
  855 +"Este programa é distribuído na expectativa de ser útil, mas SEM "
  856 +"QUALQUER GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de "
  857 +"ADEQUAÇÃO A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública "
  858 +"Geral GNU para obter mais detalhes.\n"
641 859 "\n"
642   -"Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA, 02111-1307, USA"
  860 +"Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este "
  861 +"programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple "
  862 +"Place, Suite 330, Boston, MA, 02111-1307, USA"
643 863  
644 864 #: host.c:303
645 865 #, c-format
646   -msgid "This version of %s was built without support for secure sockets layer (SSL)."
  866 +msgid ""
  867 +"This version of %s was built without support for secure sockets layer (SSL)."
647 868 msgstr "Esta versão do %s foi gerada sem suporte para conexões seguras (SSL)."
648 869  
  870 +#: ui/00default.xml:196
  871 +msgid "Toolbar"
  872 +msgstr "Barra de ferramentas"
  873 +
  874 +#: ui/99debug.xml:36
  875 +msgid "Trace"
  876 +msgstr ""
  877 +
  878 +#: ui/00default.xml:169
  879 +msgid "Track Cursor"
  880 +msgstr "Mostrar posição do cursor"
  881 +
649 882 #: ft_cut.c:347
650 883 msgid "Transfer cancelled by host"
651 884 msgstr "Transferência cancelada pelo servidor"
652 885  
653   -#: ft_cut.c:374
654   -#: ft_cut.c:468
655   -#: ft_dft.c:218
656   -#: ft_dft.c:354
  886 +#: ft_cut.c:374 ft_cut.c:468 ft_dft.c:218 ft_dft.c:354
657 887 msgid "Transfer cancelled by user"
658 888 msgstr "Transferência cancelada pelo usuário"
659 889  
... ... @@ -661,8 +891,7 @@ msgstr &quot;Transferência cancelada pelo usuário&quot;
661 891 msgid "Transmission error"
662 892 msgstr "Erro de transmissão"
663 893  
664   -#: colors.c:356
665   -#: colors.c:364
  894 +#: colors.c:356 colors.c:364
666 895 msgid "Turquoise"
667 896 msgstr "Turquesa"
668 897  
... ... @@ -715,8 +944,11 @@ msgid &quot;Unexpected or invalid src attribute: \&quot;%s\&quot;&quot;
715 944 msgstr ""
716 945  
717 946 #: v3270/widget.c:687
718   -msgid "Unexpected signature in H3270 object, possible version mismatch in lib3270"
719   -msgstr "Assinatura inválida no objeto H3270, possível divergência de versão na lib3270"
  947 +msgid ""
  948 +"Unexpected signature in H3270 object, possible version mismatch in lib3270"
  949 +msgstr ""
  950 +"Assinatura inválida no objeto H3270, possível divergência de versão na "
  951 +"lib3270"
720 952  
721 953 #: actions.c:305
722 954 #, c-format
... ... @@ -761,6 +993,10 @@ msgstr &quot;&quot;
761 993 msgid "Unknown port number or service: %s"
762 994 msgstr "Número de porta ou serviço desconhecido: %s"
763 995  
  996 +#: ui/00default.xml:181
  997 +msgid "Use +/- for field navigation"
  998 +msgstr "Usar teclas +/- para navegar por campos"
  999 +
764 1000 #: dialog.c:565
765 1001 #, c-format
766 1002 msgid "Version %s - Revision %s"
... ... @@ -782,13 +1018,15 @@ msgstr &quot;Europa ocidental (ISO 8859-1)&quot;
782 1018 msgid "White"
783 1019 msgstr "Branco"
784 1020  
  1021 +#: ui/00default.xml:207
  1022 +msgid "Window"
  1023 +msgstr ""
  1024 +
785 1025 #: dialog.c:89
786 1026 msgid "Windows Western languages (CP1252)"
787 1027 msgstr ""
788 1028  
789   -#: v3270/oia.c:387
790   -#: v3270/oia.c:411
791   -#: v3270/oia.c:415
  1029 +#: v3270/oia.c:387 v3270/oia.c:411 v3270/oia.c:415
792 1030 msgid "X"
793 1031 msgstr ""
794 1032  
... ... @@ -836,6 +1074,24 @@ msgstr &quot;X Aguarde&quot;
836 1074 msgid "Yellow"
837 1075 msgstr "Amarelo"
838 1076  
  1077 +#: ui/00default.xml:152
  1078 +#, fuzzy
  1079 +msgid "_Connect"
  1080 +msgstr "X Conectando"
  1081 +
  1082 +#: ui/00default.xml:153
  1083 +#, fuzzy
  1084 +msgid "_Disconnect"
  1085 +msgstr "Servidor a conectar"
  1086 +
  1087 +#: ui/00default.xml:110
  1088 +msgid "_Edit"
  1089 +msgstr "_Editar"
  1090 +
  1091 +#: ui/00default.xml:85
  1092 +msgid "_File"
  1093 +msgstr "_Arquivo"
  1094 +
839 1095 #: print.c:290
840 1096 msgid "_Font:"
841 1097 msgstr "_Fonte:"
... ... @@ -844,6 +1100,16 @@ msgstr &quot;_Fonte:&quot;
844 1100 msgid "_Hostname:"
845 1101 msgstr "Nome do _Host:"
846 1102  
  1103 +#: ui/00default.xml:142
  1104 +#, fuzzy
  1105 +msgid "_Network"
  1106 +msgstr "Erro de rede"
  1107 +
  1108 +#: ui/00default.xml:166
  1109 +#, fuzzy
  1110 +msgid "_Options"
  1111 +msgstr "Opções"
  1112 +
847 1113 #: dialog.c:316
848 1114 msgid "_Port:"
849 1115 msgstr "_Porta:"
... ... @@ -852,8 +1118,11 @@ msgstr &quot;_Porta:&quot;
852 1118 msgid "_Secure connection"
853 1119 msgstr "Conexão _Segura"
854 1120  
855   -#: telnet.c:3203
856   -#: telnet.c:3211
  1121 +#: ui/00default.xml:135
  1122 +msgid "_View"
  1123 +msgstr "_Exibir"
  1124 +
  1125 +#: telnet.c:3203 telnet.c:3211
857 1126 #, c-format
858 1127 msgid "fcntl(%s)"
859 1128 msgstr "fcntl(%s)"
... ... @@ -863,9 +1132,7 @@ msgstr &quot;fcntl(%s)&quot;
863 1132 msgid "ioctl(%s)"
864 1133 msgstr "ioctl(%s)"
865 1134  
866   -#: telnet.c:584
867   -#: telnet.c:590
868   -#: telnet.c:597
  1135 +#: telnet.c:584 telnet.c:590 telnet.c:597
869 1136 #, c-format
870 1137 msgid "setsockopt(%s)"
871 1138 msgstr "setsockopt(%s)"
... ...
pw3270.cbp
... ... @@ -46,103 +46,19 @@
46 46 <Unit filename="configure.ac" />
47 47 <Unit filename="pw3270.spec.in" />
48 48 <Unit filename="src/gtk/Makefile.in" />
49   - <Unit filename="src/gtk/actions.c">
50   - <Option compilerVar="CC" />
51   - </Unit>
52   - <Unit filename="src/gtk/colors.c">
53   - <Option compilerVar="CC" />
54   - </Unit>
55 49 <Unit filename="src/gtk/common/common.h" />
56 50 <Unit filename="src/gtk/common/common.h.in" />
57   - <Unit filename="src/gtk/common/config.c">
58   - <Option compilerVar="CC" />
59   - </Unit>
60   - <Unit filename="src/gtk/dialog.c">
61   - <Option compilerVar="CC" />
62   - </Unit>
63   - <Unit filename="src/gtk/fonts.c">
64   - <Option compilerVar="CC" />
65   - </Unit>
66 51 <Unit filename="src/gtk/globals.h" />
67   - <Unit filename="src/gtk/main.c">
68   - <Option compilerVar="CC" />
69   - </Unit>
70   - <Unit filename="src/gtk/print.c">
71   - <Option compilerVar="CC" />
72   - </Unit>
73 52 <Unit filename="src/gtk/uiparser/Makefile.in" />
74   - <Unit filename="src/gtk/uiparser/accelerator.c">
75   - <Option compilerVar="CC" />
76   - </Unit>
77   - <Unit filename="src/gtk/uiparser/action.c">
78   - <Option compilerVar="CC" />
79   - </Unit>
80   - <Unit filename="src/gtk/uiparser/menu.c">
81   - <Option compilerVar="CC" />
82   - </Unit>
83   - <Unit filename="src/gtk/uiparser/menubar.c">
84   - <Option compilerVar="CC" />
85   - </Unit>
86   - <Unit filename="src/gtk/uiparser/menuitem.c">
87   - <Option compilerVar="CC" />
88   - </Unit>
89   - <Unit filename="src/gtk/uiparser/parsefile.c">
90   - <Option compilerVar="CC" />
91   - </Unit>
92   - <Unit filename="src/gtk/uiparser/parser.c">
93   - <Option compilerVar="CC" />
94   - </Unit>
95 53 <Unit filename="src/gtk/uiparser/parser.h" />
96   - <Unit filename="src/gtk/uiparser/popup.c">
97   - <Option compilerVar="CC" />
98   - </Unit>
99 54 <Unit filename="src/gtk/uiparser/private.h" />
100   - <Unit filename="src/gtk/uiparser/script.c">
101   - <Option compilerVar="CC" />
102   - </Unit>
103   - <Unit filename="src/gtk/uiparser/separator.c">
104   - <Option compilerVar="CC" />
105   - </Unit>
106 55 <Unit filename="src/gtk/uiparser/sources.mak" />
107   - <Unit filename="src/gtk/uiparser/toolbar.c">
108   - <Option compilerVar="CC" />
109   - </Unit>
110   - <Unit filename="src/gtk/uiparser/toolitem.c">
111   - <Option compilerVar="CC" />
112   - </Unit>
113   - <Unit filename="src/gtk/v3270/accessible.c">
114   - <Option compilerVar="CC" />
115   - </Unit>
116 56 <Unit filename="src/gtk/v3270/accessible.h" />
117   - <Unit filename="src/gtk/v3270/draw.c">
118   - <Option compilerVar="CC" />
119   - </Unit>
120 57 <Unit filename="src/gtk/v3270/genmarshal" />
121   - <Unit filename="src/gtk/v3270/iocallback.c">
122   - <Option compilerVar="CC" />
123   - </Unit>
124   - <Unit filename="src/gtk/v3270/keyboard.c">
125   - <Option compilerVar="CC" />
126   - </Unit>
127   - <Unit filename="src/gtk/v3270/mouse.c">
128   - <Option compilerVar="CC" />
129   - </Unit>
130   - <Unit filename="src/gtk/v3270/oia.c">
131   - <Option compilerVar="CC" />
132   - </Unit>
133 58 <Unit filename="src/gtk/v3270/private.h" />
134   - <Unit filename="src/gtk/v3270/selection.c">
135   - <Option compilerVar="CC" />
136   - </Unit>
137 59 <Unit filename="src/gtk/v3270/sources.mak" />
138 60 <Unit filename="src/gtk/v3270/v3270.h" />
139   - <Unit filename="src/gtk/v3270/widget.c">
140   - <Option compilerVar="CC" />
141   - </Unit>
142 61 <Unit filename="src/gtk/valgrind.suppression" />
143   - <Unit filename="src/gtk/window.c">
144   - <Option compilerVar="CC" />
145   - </Unit>
146 62 <Unit filename="src/include/lib3270.h" />
147 63 <Unit filename="src/include/lib3270/action_table.h" />
148 64 <Unit filename="src/include/lib3270/actions.h" />
... ... @@ -317,6 +233,102 @@
317 233 </Unit>
318 234 <Unit filename="src/lib3270/xioc.h" />
319 235 <Unit filename="src/lib3270/xl.h" />
  236 + <Unit filename="src/pw3270/actions.c">
  237 + <Option compilerVar="CC" />
  238 + </Unit>
  239 + <Unit filename="src/pw3270/colors.c">
  240 + <Option compilerVar="CC" />
  241 + </Unit>
  242 + <Unit filename="src/pw3270/common/common.h.in" />
  243 + <Unit filename="src/pw3270/common/config.c">
  244 + <Option compilerVar="CC" />
  245 + </Unit>
  246 + <Unit filename="src/pw3270/common/sources.mak" />
  247 + <Unit filename="src/pw3270/dialog.c">
  248 + <Option compilerVar="CC" />
  249 + </Unit>
  250 + <Unit filename="src/pw3270/fonts.c">
  251 + <Option compilerVar="CC" />
  252 + </Unit>
  253 + <Unit filename="src/pw3270/globals.h" />
  254 + <Unit filename="src/pw3270/main.c">
  255 + <Option compilerVar="CC" />
  256 + </Unit>
  257 + <Unit filename="src/pw3270/print.c">
  258 + <Option compilerVar="CC" />
  259 + </Unit>
  260 + <Unit filename="src/pw3270/uiparser/Makefile.in" />
  261 + <Unit filename="src/pw3270/uiparser/accelerator.c">
  262 + <Option compilerVar="CC" />
  263 + </Unit>
  264 + <Unit filename="src/pw3270/uiparser/action.c">
  265 + <Option compilerVar="CC" />
  266 + </Unit>
  267 + <Unit filename="src/pw3270/uiparser/menu.c">
  268 + <Option compilerVar="CC" />
  269 + </Unit>
  270 + <Unit filename="src/pw3270/uiparser/menubar.c">
  271 + <Option compilerVar="CC" />
  272 + </Unit>
  273 + <Unit filename="src/pw3270/uiparser/menuitem.c">
  274 + <Option compilerVar="CC" />
  275 + </Unit>
  276 + <Unit filename="src/pw3270/uiparser/parsefile.c">
  277 + <Option compilerVar="CC" />
  278 + </Unit>
  279 + <Unit filename="src/pw3270/uiparser/parser.c">
  280 + <Option compilerVar="CC" />
  281 + </Unit>
  282 + <Unit filename="src/pw3270/uiparser/parser.h" />
  283 + <Unit filename="src/pw3270/uiparser/popup.c">
  284 + <Option compilerVar="CC" />
  285 + </Unit>
  286 + <Unit filename="src/pw3270/uiparser/private.h" />
  287 + <Unit filename="src/pw3270/uiparser/script.c">
  288 + <Option compilerVar="CC" />
  289 + </Unit>
  290 + <Unit filename="src/pw3270/uiparser/separator.c">
  291 + <Option compilerVar="CC" />
  292 + </Unit>
  293 + <Unit filename="src/pw3270/uiparser/sources.mak" />
  294 + <Unit filename="src/pw3270/uiparser/toolbar.c">
  295 + <Option compilerVar="CC" />
  296 + </Unit>
  297 + <Unit filename="src/pw3270/uiparser/toolitem.c">
  298 + <Option compilerVar="CC" />
  299 + </Unit>
  300 + <Unit filename="src/pw3270/v3270/accessible.c">
  301 + <Option compilerVar="CC" />
  302 + </Unit>
  303 + <Unit filename="src/pw3270/v3270/accessible.h" />
  304 + <Unit filename="src/pw3270/v3270/draw.c">
  305 + <Option compilerVar="CC" />
  306 + </Unit>
  307 + <Unit filename="src/pw3270/v3270/genmarshal" />
  308 + <Unit filename="src/pw3270/v3270/iocallback.c">
  309 + <Option compilerVar="CC" />
  310 + </Unit>
  311 + <Unit filename="src/pw3270/v3270/keyboard.c">
  312 + <Option compilerVar="CC" />
  313 + </Unit>
  314 + <Unit filename="src/pw3270/v3270/mouse.c">
  315 + <Option compilerVar="CC" />
  316 + </Unit>
  317 + <Unit filename="src/pw3270/v3270/oia.c">
  318 + <Option compilerVar="CC" />
  319 + </Unit>
  320 + <Unit filename="src/pw3270/v3270/private.h" />
  321 + <Unit filename="src/pw3270/v3270/selection.c">
  322 + <Option compilerVar="CC" />
  323 + </Unit>
  324 + <Unit filename="src/pw3270/v3270/sources.mak" />
  325 + <Unit filename="src/pw3270/v3270/v3270.h" />
  326 + <Unit filename="src/pw3270/v3270/widget.c">
  327 + <Option compilerVar="CC" />
  328 + </Unit>
  329 + <Unit filename="src/pw3270/window.c">
  330 + <Option compilerVar="CC" />
  331 + </Unit>
320 332 <Unit filename="ui/00default.xml" />
321 333 <Unit filename="ui/99debug.xml" />
322 334 <Extensions>
... ...
pw3270.spec.in
... ... @@ -112,7 +112,7 @@ autoconf
112 112  
113 113 %build
114 114 make clean
115   -make Release
  115 +make all
116 116  
117 117 %install
118 118 rm -rf $RPM_BUILD_ROOT
... ...
src/pw3270/uiparser/menubar.c
... ... @@ -37,13 +37,13 @@
37 37 {
38 38 if(info->element)
39 39 {
40   - *error = g_error_new(ERROR_DOMAIN,EINVAL,"%s", _( "<menubar> should be on toplevel"));
  40 + *error = g_error_new(ERROR_DOMAIN,EINVAL, _( "<%s> should be on toplevel"), "menubar");
41 41 return NULL;
42 42 }
43 43  
44 44 if(action)
45 45 {
46   - *error = g_error_new(ERROR_DOMAIN,EINVAL,"%s", _( "Invalid or unexpected action attribute in <menubar>"));
  46 + *error = g_error_new(ERROR_DOMAIN,EINVAL, _( "Invalid or unexpected action attribute in <%s>"), "menubar");
47 47 return NULL;
48 48 }
49 49  
... ...
src/pw3270/uiparser/toolbar.c
... ... @@ -46,13 +46,13 @@
46 46  
47 47 if(info->element)
48 48 {
49   - *error = g_error_new(ERROR_DOMAIN,EINVAL,"%s", _( "<toolbar> should be on toplevel"));
  49 + *error = g_error_new(ERROR_DOMAIN,EINVAL, _( "<%s> should be on toplevel"), "toolbar");
50 50 return NULL;
51 51 }
52 52  
53 53 if(action)
54 54 {
55   - *error = g_error_new(ERROR_DOMAIN,EINVAL,"%s", _( "Invalid or unexpected action attribute in <toolbar>"));
  55 + *error = g_error_new(ERROR_DOMAIN,EINVAL, _( "Invalid or unexpected action attribute in <%s>"), "toolbar");
56 56 return NULL;
57 57 }
58 58  
... ...
src/tools/xml2pot.c 0 → 100644
... ... @@ -0,0 +1,184 @@
  1 +/*
  2 + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
  3 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
  4 + * aplicativos mainframe. Registro no INPI sob o nome G3270.
  5 + *
  6 + * Copyright (C) <2008> <Banco do Brasil S.A.>
  7 + *
  8 + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
  9 + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
  10 + * Free Software Foundation.
  11 + *
  12 + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
  13 + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
  14 + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
  15 + * obter mais detalhes.
  16 + *
  17 + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
  18 + * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple
  19 + * Place, Suite 330, Boston, MA, 02111-1307, USA
  20 + *
  21 + * Este programa está nomeado como xml2pot.c e possui - linhas de código.
  22 + *
  23 + * Contatos:
  24 + *
  25 + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
  26 + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  27 + * licinio@bb.com.br (Licínio Luis Branco)
  28 + * kraucer@bb.com.br (Kraucer Fernandes Mazuco)
  29 + * macmiranda@bb.com.br (Marco Aurélio Caldas Miranda)
  30 + *
  31 + */
  32 +
  33 +#include <stdlib.h>
  34 +#include <stdio.h>
  35 +#include <glib.h>
  36 +#include <string.h>
  37 +
  38 + static const gchar *filename = NULL;
  39 + static FILE *out;
  40 + static GHashTable *hash = NULL;
  41 +
  42 + struct record
  43 + {
  44 + const gchar *filename;
  45 + const gchar *label;
  46 + gint line_number;
  47 + gint char_number;
  48 +
  49 + gchar text[1];
  50 + };
  51 +
  52 +/*---[ Implement ]----------------------------------------------------------------------------------------*/
  53 +
  54 + static void element_start(GMarkupParseContext *context,const gchar *element_name,const gchar **names,const gchar **values, gpointer user_data, GError **error)
  55 + {
  56 + int f;
  57 +
  58 + for(f=0;names[f];f++)
  59 + {
  60 + if(!strcmp(names[f],"label") && values[f])
  61 + {
  62 + struct record *rec = g_hash_table_lookup(hash,values[f]);
  63 +
  64 + if(!rec)
  65 + {
  66 + struct record *rec = g_malloc0(sizeof(struct record)+strlen(values[f])+strlen(filename)+3);
  67 + char *ptr = rec->text;
  68 +
  69 + g_markup_parse_context_get_position(context,&rec->line_number,&rec->char_number);
  70 +
  71 + strcpy(ptr,filename);
  72 + rec->filename = ptr;
  73 + ptr += (strlen(ptr)+1);
  74 +
  75 + strcpy(ptr,values[f]);
  76 + rec->label = ptr;
  77 +
  78 + g_hash_table_insert(hash,(gpointer) rec->label, rec);
  79 + }
  80 + }
  81 + }
  82 +
  83 + }
  84 +
  85 + static void element_end(GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error)
  86 + {
  87 + }
  88 +
  89 + static void element_text(GMarkupParseContext *context,const gchar *text,gsize text_len, gpointer user_data, GError **error)
  90 + {
  91 + }
  92 +
  93 + static void element_passthrough(GMarkupParseContext *context,const gchar *passthrough_text, gsize text_len, gpointer user_data,GError **error)
  94 + {
  95 + }
  96 +
  97 + static void element_error(GMarkupParseContext *context,GError *error,gpointer user_data)
  98 + {
  99 + }
  100 +
  101 + static const GMarkupParser parser =
  102 + {
  103 + element_start,
  104 + element_end,
  105 + element_text,
  106 + element_passthrough,
  107 + element_error,
  108 + };
  109 +
  110 + static int parsefile(GMarkupParseContext *context)
  111 + {
  112 + GError *error = NULL;
  113 + gchar *contents = NULL;
  114 +
  115 + if(!g_file_get_contents(filename,&contents,NULL,&error))
  116 + {
  117 + fprintf(stderr,"%s\n",error->message);
  118 + g_error_free(error);
  119 + return -1;
  120 + }
  121 +
  122 + if(!g_markup_parse_context_parse(context,contents,strlen(contents),&error))
  123 + {
  124 + fprintf(stderr,"%s\n",error->message);
  125 + g_error_free(error);
  126 + g_free(contents);
  127 + return -1;
  128 + }
  129 +
  130 + g_free(contents);
  131 + return 0;
  132 + }
  133 +
  134 + static void write_file(gpointer key,struct record *rec, FILE *out)
  135 + {
  136 + fprintf(out,"#: %s:%d\n",rec->filename,(int) rec->line_number);
  137 + fprintf(out,"msgid \"%s\"\n",rec->label);
  138 + fprintf(out,"msgstr \"\"\n\n");
  139 + }
  140 +
  141 + int main (int argc, char *argv[])
  142 + {
  143 + static const char * header= "# SOME DESCRIPTIVE TITLE.\n"
  144 + "# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n"
  145 + "# This file is distributed under the same license as the PACKAGE package.\n"
  146 + "# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n"
  147 + "#\n"
  148 + "#, fuzzy\n"
  149 + "msgid \"\"\n"
  150 + "msgstr \"\"\n"
  151 + "\"Project-Id-Version: PACKAGE VERSION\\n\"\n"
  152 + "\"Report-Msgid-Bugs-To: \\n\"\n"
  153 + "\"POT-Creation-Date: 2010-01-18 17:12-0200\\n\"\n"
  154 + "\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n"
  155 + "\"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n\"\n"
  156 + "\"Language-Team: LANGUAGE <LL@li.org>\\n\"\n"
  157 + "\"Language: \\n\"\n"
  158 + "\"MIME-Version: 1.0\\n\"\n"
  159 + "\"Content-Type: text/plain; charset=CHARSET\\n\"\n"
  160 + "\"Content-Transfer-Encoding: 8bit\\n\"\n\n";
  161 +
  162 + int rc = 0;
  163 + int f;
  164 +
  165 + GMarkupParseContext *context = g_markup_parse_context_new(&parser,G_MARKUP_TREAT_CDATA_AS_TEXT,NULL,NULL);
  166 +
  167 + out = stdout;
  168 +
  169 + fprintf(out,"%s",header);
  170 +
  171 + hash = g_hash_table_new(g_str_hash, g_str_equal);
  172 +
  173 + for(f=1;f<argc;f++)
  174 + {
  175 + filename = argv[f];
  176 + rc = parsefile(context);
  177 + }
  178 +
  179 + g_hash_table_foreach(hash,(GHFunc) write_file, out);
  180 +
  181 +
  182 + return rc;
  183 + }
  184 +
... ...