By default, Bugzilla does not search the list of RESOLVED bugs.
You can force it to do so by putting the upper-case word ALL in front of your search query, e.g.: ALL tdelibs
We recommend searching for bugs this way, as you may discover that your bug has already been resolved and fixed in a later release. View | Details | Raw Unified | Return to bug 1932
Collapse All | Expand All

(-)a/ChangeLog (+81 lines)
Lines 1-3 Link Here
1
2009-09-26  Robby Stephenson  <robby@periapsis.org>
2
3
	* Updated Amazon fetcher to use authentication.
4
	* Released Tellico 1.3.6
5
6
2009-02-14  Robby Stephenson  <robby@periapsis.org>
7
8
	* Released Tellico 1.3.5.
9
10
2009-02-04  Robby Stephenson  <robby@periapsis.org>
11
12
	* Reverted change from 2007 that merged entries by combining all values in multiple-value fields.
13
14
2009-02-02  Robby Stephenson  <robby@periapsis.org>
15
16
	* Fixed the CueCat decoder to work for ISBN searches, as well as UPC.
17
18
2009-01-30  Robby Stephenson  <robby@periapsis.org>
19
20
	* Updated Deliciour Library 1 importer to handle movies and games.
21
	* Fixed Ubuntu bug#317822, don't mark collection modified when image is found in local data directory.
22
	* Fixed query bug with z39.50 ISBN search.
23
24
2008-12-07  Robby Stephenson  <robby@periapsis.org>
25
26
	* Updated it.po, thanks to Valerio Ricci.
27
28
2008-10-23  Robby Stephenson  <robby@periapsis.org>
29
30
	* Added date, time, and username as available params for the XSLT export.
31
32
2008-09-13  Robby Stephenson  <robby@periapsis.org>
33
34
	* Released Tellico 1.3.4.
35
36
2008-09-04  Robby Stephenson  <robby@periapsis.org>
37
38
	* Fixed error with consecutive tabs in CSV import.
39
40
2008-08-26  Robby Stephenson  <robby@periapsis.org>
41
42
	* Fixed bug with image links in reports not being linked correctly.
43
44
2008-08-20  Robby Stephenson  <robby@periapsis.org>
45
46
	* Added minimal searching for board games from Amazon.
47
48
2008-08-07  Robby Stephenson  <robby@periapsis.org>
49
50
	* Changed Choice fields to sort by position in list.
51
52
2008-07-25  Robby Stephenson  <robby@periapsis.org>
53
54
	* Added ESC key for clearing quick filter.
55
	* Improved drag/drop to match on file extension after checking mimetype.
56
57
2008-07-22  Robby Stephenson  <robby@periapsis.org>
58
59
	* Updated IMDb plot regexp.
60
61
2008-07-09  Robby Stephenson  <robby@periapsis.org>
62
63
	* Fixed EntryView to honor copy() command properly, for clipboard.
64
	* Released Tellico 1.3.3.
65
66
2008-06-24  Robby Stephenson  <robby@periapsis.org>
67
68
	* Updated Porbase URL in z39.50 server list.
69
70
2008-06-13  Robby Stephenson  <robby@periapsis.org>
71
72
	* Updated drag-and-drop to allow HTTP urls.
73
74
2008-06-12  Robby Stephenson  <robby@periapsis.org>
75
76
	* Changed Arxiv fetcher to remove ID version number for results.
77
78
2008-06-07  Robby Stephenson  <robby@periapsis.org>
79
80
	* Fixed bug with merging file catalogs, to properly match on URL.
81
1
2008-05-24  Robby Stephenson  <robby@periapsis.org>
82
2008-05-24  Robby Stephenson  <robby@periapsis.org>
2
83
3
	* Released Tellico 1.3.2.1.
84
	* Released Tellico 1.3.2.1.
(-)a/config.h.in (+6 lines)
Lines 66-71 Link Here
66
/* Define if you have libz */
66
/* Define if you have libz */
67
#undef HAVE_LIBZ
67
#undef HAVE_LIBZ
68
68
69
/* Define to 1 if you have the <linux/videodev.h> header file. */
70
#undef HAVE_LINUX_VIDEODEV_H
71
69
/* Define to 1 if you have the <memory.h> header file. */
72
/* Define to 1 if you have the <memory.h> header file. */
70
#undef HAVE_MEMORY_H
73
#undef HAVE_MEMORY_H
71
74
Lines 174-179 Link Here
174
/* Define to the version of this package. */
177
/* Define to the version of this package. */
175
#undef PACKAGE_VERSION
178
#undef PACKAGE_VERSION
176
179
180
/* Define to 1 if the XML loader should use SAX */
181
#undef SAX_SUPPORT
182
177
/* The size of `char', as computed by sizeof. */
183
/* The size of `char', as computed by sizeof. */
178
#undef SIZEOF_CHAR
184
#undef SIZEOF_CHAR
179
185
(-)a/configure.in (-5 / +33 lines)
Lines 40-46 dnl Perform program name transformation Link Here
40
AC_ARG_PROGRAM
40
AC_ARG_PROGRAM
41
41
42
dnl Automake doc recommends to do this only here. (Janos)
42
dnl Automake doc recommends to do this only here. (Janos)
43
AM_INIT_AUTOMAKE(tellico, 1.3.2.1) dnl searches for some needed programs
43
AM_INIT_AUTOMAKE(tellico, 1.3.6) dnl searches for some needed programs
44
44
45
KDE_SET_PREFIX
45
KDE_SET_PREFIX
46
46
Lines 491-497 AC_ARG_WITH([ooo-dir], Link Here
491
	    AC_HELP_STRING([--with-ooo-dir=DIR],
491
	    AC_HELP_STRING([--with-ooo-dir=DIR],
492
			   [where the OpenOffice.org program files are installed]),
492
			   [where the OpenOffice.org program files are installed]),
493
	    [ac_ooo_libdir="${withval}/program"
493
	    [ac_ooo_libdir="${withval}/program"
494
	     ac_ooo_datadir="${withval}/program"])
494
	     ac_ooo_datadir="${withval}/program"
495
             ac_ooo_basisdir="${withval}/basis3.0"])
495
AC_ARG_WITH([ooo-libdir],
496
AC_ARG_WITH([ooo-libdir],
496
	    AC_HELP_STRING([--with-ooo-libdir=DIR],
497
	    AC_HELP_STRING([--with-ooo-libdir=DIR],
497
			   [where the OpenOffice.org program libraries are installed (<ooo-dir>/program)]),
498
			   [where the OpenOffice.org program libraries are installed (<ooo-dir>/program)]),
Lines 542-547 AC_CHECK_FILE([$ac_ooo_datadir/types.rdb], Link Here
542
	      [OFFICE_registry="$ac_ooo_datadir"/types.rdb],
543
	      [OFFICE_registry="$ac_ooo_datadir"/types.rdb],
543
	      AC_MSG_ERROR([[types.rdb not found, try '--with-ooo-dir=OpenOffice.org_installation_path']]))
544
	      AC_MSG_ERROR([[types.rdb not found, try '--with-ooo-dir=OpenOffice.org_installation_path']]))
544
545
546
AC_FIND_FILE([offapi.rdb],
547
             [$ac_ooo_basisdir/program $ac_ooo_libdir $ac_ooo_datadir],
548
             offapi_dir)
549
if test "$offapi_dir" != "NO"; then
550
  OFFICE_registry="$OFFICE_registry $offapi_dir/offapi.rdb"
551
fi
552
545
dnl Substitute the values
553
dnl Substitute the values
546
AC_SUBST(OFFICE_SDK_includes)
554
AC_SUBST(OFFICE_SDK_includes)
547
AC_SUBST(OFFICE_libadd)
555
AC_SUBST(OFFICE_libadd)
Lines 562-568 AC_ARG_ENABLE(exempi, Link Here
562
)
570
)
563
571
564
if test x$enable_libexempi = xyes; then
572
if test x$enable_libexempi = xyes; then
565
   KDE_PKG_CHECK_MODULES(EXEMPI, 
573
   KDE_PKG_CHECK_MODULES(EXEMPI,
566
                                 [exempi-2.0 >= 1.99.0],
574
                                 [exempi-2.0 >= 1.99.0],
567
                                 [have_exempi=yes],
575
                                 [have_exempi=yes],
568
                                 [have_exempi=no])
576
                                 [have_exempi=no])
Lines 586-593 AC_ARG_ENABLE(poppler, Link Here
586
)
594
)
587
595
588
if test x$enable_libpoppler = xyes; then
596
if test x$enable_libpoppler = xyes; then
589
   KDE_PKG_CHECK_MODULES(POPPLER, 
597
   KDE_PKG_CHECK_MODULES(POPPLER,
590
                                 [poppler-qt >= 0.5],
598
                                 [poppler-tqt >= 0.5],
591
                                 [have_poppler=yes],
599
                                 [have_poppler=yes],
592
                                 [have_poppler=no])
600
                                 [have_poppler=no])
593
   AC_SUBST(POPPLER_LIBS)
601
   AC_SUBST(POPPLER_LIBS)
Lines 609-620 AC_ARG_ENABLE(webcam, Link Here
609
    [enable_webcam=no]
617
    [enable_webcam=no]
610
)
618
)
611
619
620
if test x$enable_webcam = xyes; then
621
    KDE_CHECK_HEADERS([linux/videodev.h],
622
		     [],
623
		     [enable_webcam="no"])
624
fi
625
612
AM_CONDITIONAL(ENABLE_WEBCAM, test $enable_webcam = yes)
626
AM_CONDITIONAL(ENABLE_WEBCAM, test $enable_webcam = yes)
613
if test x$enable_webcam = xyes; then
627
if test x$enable_webcam = xyes; then
614
    AC_DEFINE(ENABLE_WEBCAM, 1, [Define to 1 if webcam support is enabled])
628
    AC_DEFINE(ENABLE_WEBCAM, 1, [Define to 1 if webcam support is enabled])
615
fi
629
fi
616
630
617
dnl ---------- END WEBCAM CHECK ----------
631
dnl ---------- END WEBCAM CHECK ----------
632
633
dnl ---------- SAX CHECK ----------
634
635
AC_ARG_ENABLE(sax,
636
    AC_HELP_STRING([--enable-sax], [enable SAX document loading (experimental), default=disable]),
637
    [enable_sax=$enableval],
638
    [enable_sax=no]
639
)
640
641
if test x$enable_sax = xyes; then
642
    AC_DEFINE(SAX_SUPPORT, 1, [Define to 1 if the XML loader should use SAX])
643
fi
644
645
dnl ---------- END SAX CHECK ----------
618
KDE_CREATE_SUBDIRSLIST
646
KDE_CREATE_SUBDIRSLIST
619
AC_CONFIG_FILES([ Makefile ])
647
AC_CONFIG_FILES([ Makefile ])
620
AC_CONFIG_FILES([ doc/Makefile ])
648
AC_CONFIG_FILES([ doc/Makefile ])
(-)a/configure.in.in (-5 / +40 lines)
Lines 2-8 Link Here
2
2
3
KDE_ENABLE_HIDDEN_VISIBILITY
3
KDE_ENABLE_HIDDEN_VISIBILITY
4
4
5
AM_INIT_AUTOMAKE(tellico,1.3.2.1)
5
AM_INIT_AUTOMAKE(tellico,1.3.6)
6
6
7
dnl AM_KDE_MIN_VERSION(MIN-VERSION-MAJOR, MIN-VERSION-MINOR, MIN-VERSION-MICRO)
7
dnl AM_KDE_MIN_VERSION(MIN-VERSION-MAJOR, MIN-VERSION-MINOR, MIN-VERSION-MICRO)
8
dnl (taken from KMyMoney2)
8
dnl (taken from KMyMoney2)
Lines 428-434 AC_ARG_WITH([ooo-dir], Link Here
428
	    AC_HELP_STRING([--with-ooo-dir=DIR],
428
	    AC_HELP_STRING([--with-ooo-dir=DIR],
429
			   [where the OpenOffice.org program files are installed]),
429
			   [where the OpenOffice.org program files are installed]),
430
	    [ac_ooo_libdir="${withval}/program"
430
	    [ac_ooo_libdir="${withval}/program"
431
	     ac_ooo_datadir="${withval}/program"])
431
	     ac_ooo_datadir="${withval}/program"
432
             ac_ooo_basisdir="${withval}/basis3.0"])
432
AC_ARG_WITH([ooo-libdir],
433
AC_ARG_WITH([ooo-libdir],
433
	    AC_HELP_STRING([--with-ooo-libdir=DIR],
434
	    AC_HELP_STRING([--with-ooo-libdir=DIR],
434
			   [where the OpenOffice.org program libraries are installed (<ooo-dir>/program)]),
435
			   [where the OpenOffice.org program libraries are installed (<ooo-dir>/program)]),
Lines 479-484 AC_CHECK_FILE([$ac_ooo_datadir/types.rdb], Link Here
479
	      [OFFICE_registry="$ac_ooo_datadir"/types.rdb],
480
	      [OFFICE_registry="$ac_ooo_datadir"/types.rdb],
480
	      AC_MSG_ERROR([[types.rdb not found, try '--with-ooo-dir=OpenOffice.org_installation_path']]))
481
	      AC_MSG_ERROR([[types.rdb not found, try '--with-ooo-dir=OpenOffice.org_installation_path']]))
481
482
483
AC_FIND_FILE([offapi.rdb],
484
             [$ac_ooo_basisdir/program $ac_ooo_libdir $ac_ooo_datadir],
485
             offapi_dir)
486
if test "$offapi_dir" != "NO"; then
487
  OFFICE_registry="$OFFICE_registry $offapi_dir/offapi.rdb"
488
fi
489
482
dnl Substitute the values
490
dnl Substitute the values
483
AC_SUBST(OFFICE_SDK_includes)
491
AC_SUBST(OFFICE_SDK_includes)
484
AC_SUBST(OFFICE_libadd)
492
AC_SUBST(OFFICE_libadd)
Lines 499-505 AC_ARG_ENABLE(exempi, Link Here
499
)
507
)
500
508
501
if test x$enable_libexempi = xyes; then
509
if test x$enable_libexempi = xyes; then
502
   KDE_PKG_CHECK_MODULES(EXEMPI, 
510
   KDE_PKG_CHECK_MODULES(EXEMPI,
503
                                 [exempi-2.0 >= 1.99.0],
511
                                 [exempi-2.0 >= 1.99.0],
504
                                 [have_exempi=yes],
512
                                 [have_exempi=yes],
505
                                 [have_exempi=no])
513
                                 [have_exempi=no])
Lines 523-530 AC_ARG_ENABLE(poppler, Link Here
523
)
531
)
524
532
525
if test x$enable_libpoppler = xyes; then
533
if test x$enable_libpoppler = xyes; then
526
   KDE_PKG_CHECK_MODULES(POPPLER, 
534
   KDE_PKG_CHECK_MODULES(POPPLER,
527
                                 [poppler-qt >= 0.5],
535
                                 [poppler-tqt >= 0.5],
528
                                 [have_poppler=yes],
536
                                 [have_poppler=yes],
529
                                 [have_poppler=no])
537
                                 [have_poppler=no])
530
   AC_SUBST(POPPLER_LIBS)
538
   AC_SUBST(POPPLER_LIBS)
Lines 546-554 AC_ARG_ENABLE(webcam, Link Here
546
    [enable_webcam=no]
554
    [enable_webcam=no]
547
)
555
)
548
556
557
if test x$enable_webcam = xyes; then
558
    KDE_CHECK_HEADERS([linux/videodev.h],
559
		     [],
560
		     [enable_webcam="no"])
561
fi
562
549
AM_CONDITIONAL(ENABLE_WEBCAM, test $enable_webcam = yes)
563
AM_CONDITIONAL(ENABLE_WEBCAM, test $enable_webcam = yes)
550
if test x$enable_webcam = xyes; then
564
if test x$enable_webcam = xyes; then
551
    AC_DEFINE(ENABLE_WEBCAM, 1, [Define to 1 if webcam support is enabled])
565
    AC_DEFINE(ENABLE_WEBCAM, 1, [Define to 1 if webcam support is enabled])
552
fi
566
fi
553
567
554
dnl ---------- END WEBCAM CHECK ----------
568
dnl ---------- END WEBCAM CHECK ----------
569
570
dnl ---------- SAX CHECK ----------
571
572
AC_ARG_ENABLE(sax,
573
    AC_HELP_STRING([--enable-sax], [enable SAX document loading (experimental), default=disable]),
574
    [enable_sax=$enableval],
575
    [enable_sax=no]
576
)
577
578
if test x$enable_sax = xyes; then
579
    AC_DEFINE(SAX_SUPPORT, 1, [Define to 1 if the XML loader should use SAX])
580
fi
581
582
dnl ---------- END SAX CHECK ----------
583
584
dnl -------- fix TQTDCOPIDLNG ---------
585
if test "$kde_cv_tqt" = "no"; then
586
    if test -z "$TQTDCOPIDLNG"; then
587
        KDE_FIND_PATH(dcopidlng, TQTDCOPIDLNG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidlng)])
588
    fi
589
fi
(-)a/po/README (-1 / +19 lines)
Lines 2-5 To regenerate the message strings, type Link Here
2
2
3
make package-messages
3
make package-messages
4
4
5
from the top-level directory
5
from the top-level directory.
6
7
Please note that you need a special for KDE patched version of xgettext. You
8
can obtain it from http://packages.ubuntu.com/de/edgy/gettext-kde. Don't forget
9
to make this binary available as xgettext (instead of kde-xgettext) by e.g.
10
creating a link in your search path.
11
12
If you don't do this, code such as i18n("Comic Book Illustrator", "Artist")
13
would correspond to two separate strings "Comic Book Illustrator" and
14
"Artist" instead of a combined entry from which only the second one has to be
15
translated:
16
17
msgid ""
18
"_: Comic Book Illustrator\n"
19
"Artist"
20
msgstr "Künstler"
21
22
You also need the tool extractrc. In Debian it is available in the package
23
tdesdk-scripts.
(-)a/po/de.po (-10 / +7 lines)
Lines 16-22 msgid "" Link Here
16
msgstr ""
16
msgstr ""
17
"Project-Id-Version: de\n"
17
"Project-Id-Version: de\n"
18
"POT-Creation-Date: 2008-01-26 10:52-0800\n"
18
"POT-Creation-Date: 2008-01-26 10:52-0800\n"
19
"PO-Revision-Date: 2008-01-25 10:34+0100\n"
19
"PO-Revision-Date: 2008-05-24 22:47+0200\n"
20
"Last-Translator: Jens Seidel <jensseidel@users.sf.net>\n"
20
"Last-Translator: Jens Seidel <jensseidel@users.sf.net>\n"
21
"Language-Team: german <de@li.org>\n"
21
"Language-Team: german <de@li.org>\n"
22
"MIME-Version: 1.0\n"
22
"MIME-Version: 1.0\n"
Lines 1094-1100 msgstr "Mechanismus" Link Here
1094
1094
1095
#: collections/boardgamecollection.cpp:66
1095
#: collections/boardgamecollection.cpp:66
1096
msgid "Designer"
1096
msgid "Designer"
1097
msgstr ""
1097
msgstr "Designer"
1098
1098
1099
#: collections/boardgamecollection.cpp:72
1099
#: collections/boardgamecollection.cpp:72
1100
msgid "Number of Players"
1100
msgid "Number of Players"
Lines 1792-1798 msgstr "" Link Here
1792
1792
1793
#: fetch/discogsfetcher.cpp:718
1793
#: fetch/discogsfetcher.cpp:718
1794
msgid "Discogs Link"
1794
msgid "Discogs Link"
1795
msgstr ""
1795
msgstr "Discogs-Link"
1796
1796
1797
#: newstuff/dialog.cpp:94
1797
#: newstuff/dialog.cpp:94
1798
msgid "Get Hot New Stuff"
1798
msgid "Get Hot New Stuff"
Lines 1986-1994 msgid "Scanning audio files..." Link Here
1986
msgstr "Taste Audio-Dateien ab ..."
1986
msgstr "Taste Audio-Dateien ab ..."
1987
1987
1988
#: translators/audiofileimporter.cpp:129
1988
#: translators/audiofileimporter.cpp:129
1989
#, fuzzy
1990
msgid "Bitrate"
1989
msgid "Bitrate"
1991
msgstr "Bibtex"
1990
msgstr "Bitrate"
1992
1991
1993
#: translators/audiofileimporter.cpp:160 translators/audiofileimporter.cpp:170
1992
#: translators/audiofileimporter.cpp:160 translators/audiofileimporter.cpp:170
1994
msgid "Tracks (Disc %1)"
1993
msgid "Tracks (Disc %1)"
Lines 2023-2036 msgstr "" Link Here
2023
2022
2024
#: translators/audiofileimporter.cpp:352
2023
#: translators/audiofileimporter.cpp:352
2025
msgid "Include &bitrate"
2024
msgid "Include &bitrate"
2026
msgstr ""
2025
msgstr "&Bitrate inkludieren"
2027
2026
2028
#: translators/audiofileimporter.cpp:353
2027
#: translators/audiofileimporter.cpp:353
2029
#, fuzzy
2030
msgid "If checked, the bitrate for each track is added to the entries."
2028
msgid "If checked, the bitrate for each track is added to the entries."
2031
msgstr ""
2029
msgstr ""
2032
"Wenn markiert, werden die Datei-Namen für jede Spur zu den Einträgen "
2030
"Wenn markiert, wird die Bitrate für jede Spur zu den Einträgen hinzugefügt."
2033
"hinzugefügt."
2034
2031
2035
#: translators/csvexporter.cpp:40
2032
#: translators/csvexporter.cpp:40
2036
msgid "CSV"
2033
msgid "CSV"
Lines 5369-5375 msgstr "Copac (Großbritannien und Irland)" Link Here
5369
5366
5370
#: scripts.cpp:2
5367
#: scripts.cpp:2
5371
msgid "BoardGameGeek"
5368
msgid "BoardGameGeek"
5372
msgstr ""
5369
msgstr "BoardGameGeek"
5373
5370
5374
#: scripts.cpp:4
5371
#: scripts.cpp:4
5375
msgid "Dark Horse Comics"
5372
msgid "Dark Horse Comics"
(-)a/po/it.po (-1270 / +581 lines)
Lines 1-33 Link Here
1
# translation of it.po to Italiano
1
# translation of v0.9_edited_it.po to Italiano
2
# Copyright (C) 2001-2002, Robby Stephenson
2
# Copyright (C) 2001-2002, Robby Stephenson
3
# This file is distributed under the same license as the Tellico package.
3
# This file is distributed under the same license as the Tellico package.
4
#
4
# First translation by FaUsT <faust@inventati.org>, 2002, 2003, 2004.
5
# First translation by FaUsT <faust@inventati.org>, 2002, 2003, 2004.
5
# Lorenzo Novaro <novalore@inwind.it>, 2004, 2005.
6
# Lorenzo Novaro <novalore@inwind.it>, 2004, 2005.
6
#
7
# Pompa <pompafi@hotmail.it>, 2008.
7
msgid ""
8
msgid ""
8
msgstr ""
9
msgstr ""
9
"Project-Id-Version: it\n"
10
"Project-Id-Version: v0.9_edited_it\n"
10
"POT-Creation-Date: 2008-01-26 10:52-0800\n"
11
"POT-Creation-Date: 2008-01-26 10:52-0800\n"
11
"PO-Revision-Date: 2005-10-12 18:20+0200\n"
12
"PO-Revision-Date: 2008-12-08 18:06+0900\n"
12
"Last-Translator: Lorenzo Novaro <novalore@inwind.it>\n"
13
"Last-Translator: Pompa <pompafi@hotmail.it>\n"
13
"Language-Team: Italiano <kde-i18n-it@kde.org>\n"
14
"Language-Team: Italiano <it@li.org>\n"
14
"MIME-Version: 1.0\n"
15
"MIME-Version: 1.0\n"
15
"Content-Type: text/plain; charset=UTF-8\n"
16
"Content-Type: text/plain; charset=UTF-8\n"
16
"Content-Transfer-Encoding: 8bit\n"
17
"Content-Transfer-Encoding: 8bit\n"
17
"Report-Msgid-Bugs-To: \n"
18
"Report-Msgid-Bugs-To: \n"
18
"X-Generator: KBabel 1.10.2\n"
19
"X-Generator: KBabel 1.11.4\n"
20
"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
19
21
20
#: cite/lyxpipe.cpp:50
22
#: cite/lyxpipe.cpp:50
21
msgid "<qt>Tellico is unable to write to the server pipe at <b>%1</b>.</qt>"
23
msgid "<qt>Tellico is unable to write to the server pipe at <b>%1</b>.</qt>"
22
msgstr "<qt>Tellico non riesce a scrivere sulla server pipe in <b>%1</b>.</qt>"
24
msgstr "<qt>Tellico non è riuscito a scrivere sulla server pipe in <b>%1</b>.</qt>"
23
25
24
#: cite/openoffice.cpp:82
26
#: cite/openoffice.cpp:82
25
msgid "Connecting to OpenOffice.org..."
27
msgid "Connecting to OpenOffice.org..."
26
msgstr ""
28
msgstr "Connessione a OpenOffice.org..."
27
29
28
#: cite/openoffice.cpp:165 cite/openoffice.cpp:186
30
#: cite/openoffice.cpp:165 cite/openoffice.cpp:186
29
msgid "OpenOffice.org Connection"
31
msgid "OpenOffice.org Connection"
30
msgstr ""
32
msgstr "Connessione a OpenOffice.org"
31
33
32
#: cite/openoffice.cpp:179
34
#: cite/openoffice.cpp:179
33
msgid ""
35
msgid ""
Lines 35-106 msgid "" Link Here
35
"connection settings below, and that OpenOffice.org Writer is currently "
37
"connection settings below, and that OpenOffice.org Writer is currently "
36
"running."
38
"running."
37
msgstr ""
39
msgstr ""
40
"Tellico non è stato in grado di connettersi ad OpenOffice.org. Per favore "
41
"verifica i parametri di connessione sottostanti, e che OpenOffice.org Word "
42
"Processor sia in esecuzione."
38
43
39
#: cite/openoffice.cpp:191
44
#: cite/openoffice.cpp:191
40
#, fuzzy
41
msgid "Pipe"
45
msgid "Pipe"
42
msgstr "Gente"
46
msgstr "Pipe"
43
47
44
#: cite/openoffice.cpp:193
48
#: cite/openoffice.cpp:193
45
msgid "TCP/IP"
49
msgid "TCP/IP"
46
msgstr ""
50
msgstr "TCP/IP"
47
51
48
#: gui/tablefieldwidget.cpp:181
52
#: gui/tablefieldwidget.cpp:181
49
#, fuzzy
53
#, fuzzy
50
msgid "Rename Column"
54
msgid "Rename Column"
51
msgstr "Rinomina Collezione"
55
msgstr "Rinomina Colonna"
52
56
53
#: gui/tablefieldwidget.cpp:181
57
#: gui/tablefieldwidget.cpp:181
54
#, fuzzy
58
#, fuzzy
55
msgid "New column name:"
59
msgid "New column name:"
56
msgstr "Nuovo nome della collezione:"
60
msgstr "Nome della nuova colonna:"
57
61
58
#: gui/tablefieldwidget.cpp:206
62
#: gui/tablefieldwidget.cpp:206
59
#, fuzzy, c-format
63
#, c-format
60
msgid "Column %1"
64
msgid "Column %1"
61
msgstr "Colonna:"
65
msgstr "Colonna %1"
62
66
63
#: gui/tablefieldwidget.cpp:241 gui/tablefieldwidget.cpp:289
67
#: gui/tablefieldwidget.cpp:241 gui/tablefieldwidget.cpp:289
64
#, fuzzy
68
#, fuzzy
65
msgid "Rename Column..."
69
msgid "Rename Column..."
66
msgstr "&Rinomina Collezione ..."
70
msgstr "Rinomina Colonna..."
67
71
68
#: gui/tablefieldwidget.cpp:274
72
#: gui/tablefieldwidget.cpp:274
69
msgid "Insert Row"
73
msgid "Insert Row"
70
msgstr ""
74
msgstr "Inserisci Riga"
71
75
72
#: gui/tablefieldwidget.cpp:276
76
#: gui/tablefieldwidget.cpp:276
73
#, fuzzy
77
#, fuzzy
74
msgid "Remove Row"
78
msgid "Remove Row"
75
msgstr "Rimuo&vi"
79
msgstr "Rimuovi Riga"
76
80
77
#: gui/tablefieldwidget.cpp:278
81
#: gui/tablefieldwidget.cpp:278
78
msgid "Move Row Up"
82
msgid "Move Row Up"
79
msgstr ""
83
msgstr "Sposta Riga in alto"
80
84
81
#: gui/tablefieldwidget.cpp:283
85
#: gui/tablefieldwidget.cpp:283
82
msgid "Move Row Down"
86
msgid "Move Row Down"
83
msgstr ""
87
msgstr "Sposta Riga in basso"
84
88
85
#: gui/tablefieldwidget.cpp:295
89
#: gui/tablefieldwidget.cpp:295
86
#, fuzzy
87
msgid "Clear Table"
90
msgid "Clear Table"
88
msgstr "Cancella filtro"
91
msgstr "Pulisci tabella"
89
92
90
#: gui/previewdialog.cpp:27
93
#: gui/previewdialog.cpp:27
91
#, fuzzy
92
msgid "Template Preview"
94
msgid "Template Preview"
93
msgstr "Template"
95
msgstr "Anteprima template"
94
96
95
#: gui/stringmapdialog.cpp:57
97
#: gui/stringmapdialog.cpp:57
96
msgid "&Set"
98
msgid "&Set"
97
msgstr "&Set"
99
msgstr "&Configura"
98
100
99
#: gui/fieldwidget.cpp:101 gui/fieldwidget.cpp:195
101
#: gui/fieldwidget.cpp:101 gui/fieldwidget.cpp:195
100
msgid ""
102
msgid ""
101
"_: Edit Label\n"
103
"_: Edit Label\n"
102
"%1:"
104
"%1:"
103
msgstr ""
105
msgstr "%1:"
104
106
105
#: gui/kwidgetlister.cpp:58
107
#: gui/kwidgetlister.cpp:58
106
msgid ""
108
msgid ""
Lines 118-155 msgstr "Meno" Link Here
118
msgid ""
120
msgid ""
119
"_: clear widgets\n"
121
"_: clear widgets\n"
120
"Clear"
122
"Clear"
121
msgstr "Cancella"
123
msgstr "Pulisci"
122
124
123
#: gui/imagewidget.cpp:57
125
#: gui/imagewidget.cpp:57
124
msgid "Select Image..."
126
msgid "Select Image..."
125
msgstr "Seleziona immagine ..."
127
msgstr "Seleziona immagine..."
126
128
127
#: gui/imagewidget.cpp:63
129
#: gui/imagewidget.cpp:63
128
msgid "Save link only"
130
msgid "Save link only"
129
msgstr ""
131
msgstr "Salva solo collegamento"
130
132
131
#: gui/imagewidget.cpp:162
133
#: gui/imagewidget.cpp:162
132
msgid "Saving a link is only possible for newly added images."
134
msgid "Saving a link is only possible for newly added images."
133
msgstr ""
135
msgstr "Salvare il collegamento è possibile soltanto per le immagini aggiunte successivamente"
134
136
135
#: commands/modifyentries.cpp:73 commands/updateentries.cpp:50
137
#: commands/modifyentries.cpp:73 commands/updateentries.cpp:50
136
#, fuzzy, c-format
138
#, c-format
137
msgid ""
139
msgid ""
138
"_: Modify (Entry Title)\n"
140
"_: Modify (Entry Title)\n"
139
"Modify %1"
141
"Modify %1"
140
msgstr "Salva %1"
142
msgstr "Modifica %1"
141
143
142
#: commands/collectioncommand.cpp:110
144
#: commands/collectioncommand.cpp:110
143
msgid "Append Collection"
145
msgid "Append Collection"
144
msgstr "Collega Collezione"
146
msgstr "Collega collezione"
145
147
146
#: commands/collectioncommand.cpp:112
148
#: commands/collectioncommand.cpp:112
147
msgid "Merge Collection"
149
msgid "Merge Collection"
148
msgstr "Incorpora Collezione"
150
msgstr "Incorpora collezione"
149
151
150
#: commands/collectioncommand.cpp:114
152
#: commands/collectioncommand.cpp:114
151
msgid "Replace Collection"
153
msgid "Replace Collection"
152
msgstr "Rimpiazza Collezione"
154
msgstr "Rimpiazza collezione"
153
155
154
#: commands/modifyentries.cpp:72 entryeditdialog.cpp:365
156
#: commands/modifyentries.cpp:72 entryeditdialog.cpp:365
155
#, fuzzy
157
#, fuzzy
Lines 158-184 msgstr "Modifica elementi" Link Here
158
160
159
#: commands/fieldcommand.cpp:104
161
#: commands/fieldcommand.cpp:104
160
msgid "Add %1 Field"
162
msgid "Add %1 Field"
161
msgstr "Aggiungi %1 campo"
163
msgstr "Aggiungi il campo %1"
162
164
163
#: commands/fieldcommand.cpp:106
165
#: commands/fieldcommand.cpp:106
164
msgid "Modify %1 Field"
166
msgid "Modify %1 Field"
165
msgstr "Modifica %1 campo"
167
msgstr "Modifica il campo %1"
166
168
167
#: commands/fieldcommand.cpp:108
169
#: commands/fieldcommand.cpp:108
168
msgid "Delete %1 Field"
170
msgid "Delete %1 Field"
169
msgstr "Cancella %1 campo"
171
msgstr "Cancella il campo %1"
170
172
171
#: commands/addentries.cpp:50
173
#: commands/addentries.cpp:50
172
#, fuzzy
173
msgid "Add Entries"
174
msgid "Add Entries"
174
msgstr "Modifica elementi"
175
msgstr "Aggiungi elementi"
175
176
176
#: commands/addentries.cpp:51
177
#: commands/addentries.cpp:51
177
#, fuzzy, c-format
178
#, c-format
178
msgid ""
179
msgid ""
179
"_: Add (Entry Title)\n"
180
"_: Add (Entry Title)\n"
180
"Add %1"
181
"Add %1"
181
msgstr "Salva %1"
182
msgstr "Aggiungi %1"
182
183
183
#: commands/renamecollection.cpp:45 tellico_kernel.cpp:323
184
#: commands/renamecollection.cpp:45 tellico_kernel.cpp:323
184
msgid "Rename Collection"
185
msgid "Rename Collection"
Lines 198-215 msgstr "Modifica filtro" Link Here
198
199
199
#: commands/filtercommand.cpp:102 filterview.cpp:70
200
#: commands/filtercommand.cpp:102 filterview.cpp:70
200
msgid "Delete Filter"
201
msgid "Delete Filter"
201
msgstr "Cancella campo"
202
msgstr "Cancella filtro"
202
203
203
#: commands/addloans.cpp:108
204
#: commands/addloans.cpp:108
204
msgid "Check-out Items"
205
msgid "Check-out Items"
205
msgstr "Verifica oggetti"
206
msgstr "Presta oggetti"
206
207
207
#: commands/addloans.cpp:109
208
#: commands/addloans.cpp:109
208
#, c-format
209
#, c-format
209
msgid ""
210
msgid ""
210
"_: Check-out (Entry Title)\n"
211
"_: Check-out (Entry Title)\n"
211
"Check-out %1"
212
"Check-out %1"
212
msgstr "Verifica %1"
213
msgstr "Presta %1"
213
214
214
#: commands/removeentries.cpp:48
215
#: commands/removeentries.cpp:48
215
msgid "Delete Entries"
216
msgid "Delete Entries"
Lines 228-241 msgstr "Riordina campi" Link Here
228
229
229
#: commands/removeloans.cpp:79
230
#: commands/removeloans.cpp:79
230
msgid "Check-in Entries"
231
msgid "Check-in Entries"
231
msgstr "Registra elementi"
232
msgstr "Riconsegnato"
232
233
233
#: commands/removeloans.cpp:80
234
#: commands/removeloans.cpp:80
234
#, c-format
235
#, c-format
235
msgid ""
236
msgid ""
236
"_: Check-in (Entry Title)\n"
237
"_: Check-in (Entry Title)\n"
237
"Check-in %1"
238
"Check-in %1"
238
msgstr "Registra %1"
239
msgstr "Riconsegna di %1"
239
240
240
#: collectionfactory.cpp:83 collections/bibtexcollection.cpp:24
241
#: collectionfactory.cpp:83 collections/bibtexcollection.cpp:24
241
#: collections/bibtexcollection.cpp:58 collections/bibtexcollection.cpp:88
242
#: collections/bibtexcollection.cpp:58 collections/bibtexcollection.cpp:88
Lines 302-308 msgstr "Anno di emissione" Link Here
302
303
303
#: collections/stampcollection.cpp:66 collections/videocollection.cpp:172
304
#: collections/stampcollection.cpp:66 collections/videocollection.cpp:172
304
msgid "Color"
305
msgid "Color"
305
msgstr "A colori"
306
msgstr "Colore"
306
307
307
#: collections/stampcollection.cpp:71
308
#: collections/stampcollection.cpp:71
308
msgid "Scott#"
309
msgid "Scott#"
Lines 312-333 msgstr "Scott#" Link Here
312
msgid ""
313
msgid ""
313
"_: Stamp grade levels - Superb,Extremely Fine,Very Fine,Fine,Average,Poor\n"
314
"_: Stamp grade levels - Superb,Extremely Fine,Very Fine,Fine,Average,Poor\n"
314
"Superb,Extremely Fine,Very Fine,Fine,Average,Poor"
315
"Superb,Extremely Fine,Very Fine,Fine,Average,Poor"
315
msgstr ""
316
msgstr "Superbo,Eccellente,Molto buono,Buono,Medio,Cattivo"
316
"Mint,Near Mint,Molto soddisfacente,Soddisfacente,Molto "
317
"buono,Buono,Insomma,Cattivo"
318
317
319
#: collections/coincollection.cpp:88 collections/stampcollection.cpp:80
318
#: collections/coincollection.cpp:88 collections/stampcollection.cpp:80
320
msgid "Grade"
319
msgid "Grade"
321
msgstr "Grado"
320
msgstr "Stato"
322
321
323
#: collections/stampcollection.cpp:85
322
#: collections/stampcollection.cpp:85
324
msgid "Cancelled"
323
msgid "Cancelled"
325
msgstr "Cancellato"
324
msgstr "Annullato"
326
325
327
#. TRANSLATORS: See http://en.wikipedia.org/wiki/Stamp_hinge
326
#. TRANSLATORS: See http://en.wikipedia.org/wiki/Stamp_hinge
328
#: collections/stampcollection.cpp:90
327
#: collections/stampcollection.cpp:90
329
msgid "Hinged"
328
msgid "Hinged"
330
msgstr "Incollato (Hinged)"
329
msgstr "Linguellato"
331
330
332
#: collections/stampcollection.cpp:95
331
#: collections/stampcollection.cpp:95
333
msgid "Centering"
332
msgid "Centering"
Lines 335-341 msgstr "Centratura" Link Here
335
334
336
#: collections/stampcollection.cpp:100
335
#: collections/stampcollection.cpp:100
337
msgid "Gummed"
336
msgid "Gummed"
338
msgstr "Adesivo"
337
msgstr "Gommato"
339
338
340
#: collections/boardgamecollection.cpp:85 collections/bookcollection.cpp:64
339
#: collections/boardgamecollection.cpp:85 collections/bookcollection.cpp:64
341
#: collections/cardcollection.cpp:82 collections/coincollection.cpp:103
340
#: collections/cardcollection.cpp:82 collections/coincollection.cpp:103
Lines 351-362 msgstr "Data di acquisto" Link Here
351
#: collections/musiccollection.cpp:95 collections/stampcollection.cpp:110
350
#: collections/musiccollection.cpp:95 collections/stampcollection.cpp:110
352
#: collections/videocollection.cpp:199 collections/winecollection.cpp:84
351
#: collections/videocollection.cpp:199 collections/winecollection.cpp:84
353
msgid "Purchase Price"
352
msgid "Purchase Price"
354
msgstr "Prezzo"
353
msgstr "Prezzo d'acquisto"
355
354
356
#: collections/cardcollection.cpp:91 collections/coincollection.cpp:112
355
#: collections/cardcollection.cpp:91 collections/coincollection.cpp:112
357
#: collections/stampcollection.cpp:114 collections/winecollection.cpp:88
356
#: collections/stampcollection.cpp:114 collections/winecollection.cpp:88
358
msgid "Location"
357
msgid "Location"
359
msgstr "Provenienza"
358
msgstr "Collocazione"
360
359
361
#: collections/boardgamecollection.cpp:90 collections/bookcollection.cpp:155
360
#: collections/boardgamecollection.cpp:90 collections/bookcollection.cpp:155
362
#: collections/cardcollection.cpp:96 collections/coincollection.cpp:118
361
#: collections/cardcollection.cpp:96 collections/coincollection.cpp:118
Lines 406-412 msgstr "Sceneggiatore" Link Here
406
msgid ""
405
msgid ""
407
"_: Comic Book Illustrator\n"
406
"_: Comic Book Illustrator\n"
408
"Artist"
407
"Artist"
409
msgstr ""
408
msgstr "Disegnatore"
410
409
411
#: collections/bibtexcollection.cpp:200 collections/bookcollection.cpp:132
410
#: collections/bibtexcollection.cpp:200 collections/bookcollection.cpp:132
412
#: collections/cardcollection.cpp:71 collections/comicbookcollection.cpp:62
411
#: collections/cardcollection.cpp:71 collections/comicbookcollection.cpp:62
Lines 415-421 msgstr "Collana" Link Here
415
414
416
#: collections/comicbookcollection.cpp:68
415
#: collections/comicbookcollection.cpp:68
417
msgid "Issue"
416
msgid "Issue"
418
msgstr "Serie"
417
msgstr "Numero"
419
418
420
#: collections/bibtexcollection.cpp:120 collections/boardgamecollection.cpp:60
419
#: collections/bibtexcollection.cpp:120 collections/boardgamecollection.cpp:60
421
#: collections/bookcollection.cpp:73 collections/comicbookcollection.cpp:73
420
#: collections/bookcollection.cpp:73 collections/comicbookcollection.cpp:73
Lines 459-467 msgid "" Link Here
459
"_: Comic book grade levels - Mint,Near Mint,Very Fine,Fine,Very "
458
"_: Comic book grade levels - Mint,Near Mint,Very Fine,Fine,Very "
460
"Good,Good,Fair,Poor\n"
459
"Good,Good,Fair,Poor\n"
461
"Mint,Near Mint,Very Fine,Fine,Very Good,Good,Fair,Poor"
460
"Mint,Near Mint,Very Fine,Fine,Very Good,Good,Fair,Poor"
462
msgstr ""
461
msgstr "Perfetto,Edicola,Ottimo,Buono/Ottimo,Buono,Discreto"
463
"Mint,Near Mint,Molto soddisfacente,Soddisfacente,Molto "
464
"buono,Buono,Insomma,Cattivo"
465
462
466
#: collections/bookcollection.cpp:147 collections/comicbookcollection.cpp:135
463
#: collections/bookcollection.cpp:147 collections/comicbookcollection.cpp:135
467
msgid "Signed"
464
msgid "Signed"
Lines 495-505 msgstr "Anno" Link Here
495
492
496
#: collections/coincollection.cpp:61
493
#: collections/coincollection.cpp:61
497
msgid "Mint Mark"
494
msgid "Mint Mark"
498
msgstr "Mint"
495
msgstr "Segno di zecca"
499
496
500
#: collections/coincollection.cpp:73
497
#: collections/coincollection.cpp:73
501
msgid "Coin Set"
498
msgid "Coin Set"
502
msgstr "Set di monete"
499
msgstr "Serie"
503
500
504
#: collections/coincollection.cpp:83
501
#: collections/coincollection.cpp:83
505
msgid ""
502
msgid ""
Lines 509-518 msgid "" Link Here
509
"Proof-65,Proof-60,Mint State-65,Mint State-60,Almost Uncirculated-55,Almost "
506
"Proof-65,Proof-60,Mint State-65,Mint State-60,Almost Uncirculated-55,Almost "
510
"Uncirculated-50,Extremely Fine-40,Very Fine-30,Very Fine-20,Fine-12,Very "
507
"Uncirculated-50,Extremely Fine-40,Very Fine-30,Very Fine-20,Fine-12,Very "
511
"Good-8,Good-4,Fair"
508
"Good-8,Good-4,Fair"
512
msgstr ""
509
msgstr "Fondo specchio (FS),Fior di conio (FDC),Splendido (SPL),Bellissimo (BB),Molto bello (MB),Bello (B),Discreto (D)"
513
"Fior di conio-65,Fior di conio-60,Fior di "
514
"conio-65,Splendida-60,Splendida-55,Splendida-50,Bellissima-40,Bellissima-30,M"
515
"olto bella-20,Molto bella-12,Bella-8,Bella-4,Fair"
516
510
517
#: collections/coincollection.cpp:96
511
#: collections/coincollection.cpp:96
518
msgid ""
512
msgid ""
Lines 522-536 msgstr "PCGS,NGC,ANACS,ICG,ASA,PCI" Link Here
522
516
523
#: collections/coincollection.cpp:98
517
#: collections/coincollection.cpp:98
524
msgid "Grading Service"
518
msgid "Grading Service"
525
msgstr "SeErvizi di valutazione"
519
msgstr "Servizi di valutazione"
526
520
527
#: collections/coincollection.cpp:122
521
#: collections/coincollection.cpp:122
528
msgid "Obverse"
522
msgid "Obverse"
529
msgstr "Osserva"
523
msgstr "Dritto (Recto)"
530
524
531
#: collections/coincollection.cpp:125
525
#: collections/coincollection.cpp:125
532
msgid "Reverse"
526
msgid "Reverse"
533
msgstr "Seconda faccia"
527
msgstr "Rovescio (Verso)"
534
528
535
#: collections/bookcollection.cpp:28
529
#: collections/bookcollection.cpp:28
536
msgid "My Books"
530
msgid "My Books"
Lines 558-568 msgstr "E-Book" Link Here
558
552
559
#: collections/bookcollection.cpp:58
553
#: collections/bookcollection.cpp:58
560
msgid "Magazine"
554
msgid "Magazine"
561
msgstr "Rivista"
555
msgstr "Periodico"
562
556
563
#: collections/bibtexcollection.cpp:157 collections/bookcollection.cpp:58
557
#: collections/bibtexcollection.cpp:157 collections/bookcollection.cpp:58
564
msgid "Journal"
558
msgid "Journal"
565
msgstr "Giornale"
559
msgstr "Rivista"
566
560
567
#: collections/bookcollection.cpp:59
561
#: collections/bookcollection.cpp:59
568
msgid "Binding"
562
msgid "Binding"
Lines 575-598 msgstr "Copyright (anno)" Link Here
575
#: collections/bibtexcollection.cpp:151 collections/bookcollection.cpp:95
569
#: collections/bibtexcollection.cpp:151 collections/bookcollection.cpp:95
576
#: translators/grs1importer.cpp:57 translators/risimporter.cpp:278
570
#: translators/grs1importer.cpp:57 translators/risimporter.cpp:278
577
msgid "ISBN#"
571
msgid "ISBN#"
578
msgstr "num. ISBN"
572
msgstr "Num. ISBN"
579
573
580
#: collections/bibtexcollection.cpp:154 collections/bookcollection.cpp:97
574
#: collections/bibtexcollection.cpp:154 collections/bookcollection.cpp:97
581
#: translators/grs1importer.cpp:59 translators/risimporter.cpp:282
575
#: translators/grs1importer.cpp:59 translators/risimporter.cpp:282
582
msgid "International Standard Book Number"
576
msgid "International Standard Book Number"
583
msgstr "Numero Standard Internazionale per i libri"
577
msgstr "Numero Standard Internazionale per i libri (International Standard Book Number)"
584
578
585
#: collections/bookcollection.cpp:100
579
#: collections/bookcollection.cpp:100
586
msgid "LCCN#"
580
msgid "LCCN#"
587
msgstr "num. LCCN"
581
msgstr "Num. LCCN"
588
582
589
#: collections/bookcollection.cpp:102
583
#: collections/bookcollection.cpp:102
590
msgid "Library of Congress Control Number"
584
msgid "Library of Congress Control Number"
591
msgstr "Numero di Controllo della Biblioteca del Congresso"
585
msgstr "Numero di Controllo della Biblioteca del Congresso (Library of Congress Control Number)"
592
586
593
#: collections/bookcollection.cpp:109
587
#: collections/bookcollection.cpp:109
594
msgid "Translator"
588
msgid "Translator"
595
msgstr ""
589
msgstr "Traduttore"
596
590
597
#: collections/bookcollection.cpp:137
591
#: collections/bookcollection.cpp:137
598
msgid "Series Number"
592
msgid "Series Number"
Lines 619-625 msgstr "Voto" Link Here
619
#: collections/filecatalog.cpp:25
613
#: collections/filecatalog.cpp:25
620
#, fuzzy
614
#, fuzzy
621
msgid "My Files"
615
msgid "My Files"
622
msgstr "I miei vini"
616
msgstr "I miei File"
623
617
624
#: borrowerdialog.cpp:49 collections/filecatalog.cpp:36
618
#: borrowerdialog.cpp:49 collections/filecatalog.cpp:36
625
#: newstuff/dialog.cpp:113
619
#: newstuff/dialog.cpp:113
Lines 639-683 msgstr "Volume" Link Here
639
#: collections/filecatalog.cpp:55
633
#: collections/filecatalog.cpp:55
640
#, fuzzy
634
#, fuzzy
641
msgid "Folder"
635
msgid "Folder"
642
msgstr "Filtro"
636
msgstr "Cartella"
643
637
644
#: collections/filecatalog.cpp:60
638
#: collections/filecatalog.cpp:60
645
msgid "Mimetype"
639
msgid "Mimetype"
646
msgstr ""
640
msgstr "Tipo MIME"
647
641
648
#: collections/filecatalog.cpp:65
642
#: collections/filecatalog.cpp:65
649
#, fuzzy
643
#, fuzzy
650
msgid "Size"
644
msgid "Size"
651
msgstr "Autografato"
645
msgstr "Dimensioni"
652
646
653
#: collections/filecatalog.cpp:69
647
#: collections/filecatalog.cpp:69
654
#, fuzzy
648
#, fuzzy
655
msgid "Permissions"
649
msgid "Permissions"
656
msgstr "Persona"
650
msgstr "Permessi"
657
651
658
#: collections/filecatalog.cpp:74
652
#: collections/filecatalog.cpp:74
659
#, fuzzy
653
#, fuzzy
660
msgid "Owner"
654
msgid "Owner"
661
msgstr "Altro"
655
msgstr "Proprietario"
662
656
663
#: collections/filecatalog.cpp:79
657
#: collections/filecatalog.cpp:79
664
#, fuzzy
665
msgid "Group"
658
msgid "Group"
666
msgstr "Raggruppa per:"
659
msgstr "Gruppo"
667
660
668
#: collections/filecatalog.cpp:85
661
#: collections/filecatalog.cpp:85
669
#, fuzzy
670
msgid "Created"
662
msgid "Created"
671
msgstr "Finito"
663
msgstr "Data creazione"
672
664
673
#: collections/filecatalog.cpp:89
665
#: collections/filecatalog.cpp:89
674
#, fuzzy
675
msgid "Modified"
666
msgid "Modified"
676
msgstr "Modifica campi"
667
msgstr "Ultima modifica"
677
668
678
#: collections/filecatalog.cpp:93
669
#: collections/filecatalog.cpp:93
679
msgid "Meta Info"
670
msgid "Meta Info"
680
msgstr ""
671
msgstr "Meta informazioni"
681
672
682
#: collectionfieldsdialog.cpp:873 collections/filecatalog.cpp:95
673
#: collectionfieldsdialog.cpp:873 collections/filecatalog.cpp:95
683
msgid "Property"
674
msgid "Property"
Lines 688-696 msgid "Value" Link Here
688
msgstr "Valore"
679
msgstr "Valore"
689
680
690
#: collections/filecatalog.cpp:99
681
#: collections/filecatalog.cpp:99
691
#, fuzzy
692
msgid "Icon"
682
msgid "Icon"
693
msgstr "Icone"
683
msgstr "Icona"
694
684
695
#: collections/winecollection.cpp:26
685
#: collections/winecollection.cpp:26
696
msgid "My Wines"
686
msgid "My Wines"
Lines 702-708 msgstr "Produttore" Link Here
702
692
703
#: collections/winecollection.cpp:49
693
#: collections/winecollection.cpp:49
704
msgid "Appellation"
694
msgid "Appellation"
705
msgstr "Denominazione "
695
msgstr "Denominazione"
706
696
707
#: collections/winecollection.cpp:55
697
#: collections/winecollection.cpp:55
708
msgid "Varietal"
698
msgid "Varietal"
Lines 730-736 msgstr "Quantità" Link Here
730
720
731
#: collections/winecollection.cpp:97
721
#: collections/winecollection.cpp:97
732
msgid "Drink By"
722
msgid "Drink By"
733
msgstr "Da bere"
723
msgstr "Da bere per"
734
724
735
#: collections/winecollection.cpp:111
725
#: collections/winecollection.cpp:111
736
msgid "Label Image"
726
msgid "Label Image"
Lines 742-748 msgstr "Altre persone" Link Here
742
732
743
#: collections/videocollection.cpp:21 fetch/animenfofetcher.cpp:271
733
#: collections/videocollection.cpp:21 fetch/animenfofetcher.cpp:271
744
msgid "Features"
734
msgid "Features"
745
msgstr "Features"
735
msgstr "Caratteristiche"
746
736
747
#: collections/videocollection.cpp:28
737
#: collections/videocollection.cpp:28
748
msgid "My Videos"
738
msgid "My Videos"
Lines 766-777 msgstr "DivX" Link Here
766
756
767
#: collections/videocollection.cpp:46 fetch/amazonfetcher.cpp:823
757
#: collections/videocollection.cpp:46 fetch/amazonfetcher.cpp:823
768
msgid "Blu-ray"
758
msgid "Blu-ray"
769
msgstr ""
759
msgstr "Blu-ray"
770
760
771
#: collections/videocollection.cpp:46 fetch/amazonfetcher.cpp:826
761
#: collections/videocollection.cpp:46 fetch/amazonfetcher.cpp:826
772
#, fuzzy
762
#, fuzzy
773
msgid "HD DVD"
763
msgid "HD DVD"
774
msgstr "DVD"
764
msgstr "HD DVD"
775
765
776
#: collections/musiccollection.cpp:45 collections/videocollection.cpp:47
766
#: collections/musiccollection.cpp:45 collections/videocollection.cpp:47
777
msgid "Medium"
767
msgid "Medium"
Lines 785-797 msgstr "Anno di produzione" Link Here
785
msgid ""
775
msgid ""
786
"_: Movie ratings - G (USA),PG (USA),PG-13 (USA),R (USA), U (USA)\n"
776
"_: Movie ratings - G (USA),PG (USA),PG-13 (USA),R (USA), U (USA)\n"
787
"G (USA),PG (USA),PG-13 (USA),R (USA), U (USA)"
777
"G (USA),PG (USA),PG-13 (USA),R (USA), U (USA)"
788
msgstr ""
778
msgstr "T,V.M. 14,V.M. 16,V.M. 18"
789
"Per tutti -G (USA),Da vedere con un adulto -PG (USA),Vietato ai minori di 13 "
790
"anni -PG-13 (USA),Vietato ai minori di 17 anni -R (USA)"
791
779
792
#: collections/videocollection.cpp:62
780
#: collections/videocollection.cpp:62
793
msgid "Certification"
781
msgid "Certification"
794
msgstr "Certificazione"
782
msgstr "Visto censura"
795
783
796
#: collections/videocollection.cpp:74
784
#: collections/videocollection.cpp:74
797
msgid "Region 1"
785
msgid "Region 1"
Lines 855-870 msgstr "Cast" Link Here
855
843
856
#: collections/videocollection.cpp:102 translators/tellicoimporter.cpp:443
844
#: collections/videocollection.cpp:102 translators/tellicoimporter.cpp:443
857
msgid "Actor/Actress"
845
msgid "Actor/Actress"
858
msgstr ""
846
msgstr "Attore/Attrice"
859
847
860
#: collections/videocollection.cpp:103 translators/tellicoimporter.cpp:444
848
#: collections/videocollection.cpp:103 translators/tellicoimporter.cpp:444
861
#, fuzzy
849
#, fuzzy
862
msgid "Role"
850
msgid "Role"
863
msgstr "Volume"
851
msgstr "Ruolo"
864
852
865
#: collections/videocollection.cpp:106
853
#: collections/videocollection.cpp:106
866
msgid "A table for the cast members, along with the roles they play"
854
msgid "A table for the cast members, along with the roles they play"
867
msgstr "Una tabella comprendente gli attori del cast con i ruoli interpretati"
855
msgstr "Una tabella per gli attori che compongono il cast con i ruoli che interpretano"
868
856
869
#: collections/videocollection.cpp:109
857
#: collections/videocollection.cpp:109
870
msgid "Director"
858
msgid "Director"
Lines 880-886 msgstr "Studio" Link Here
880
868
881
#: collections/videocollection.cpp:139
869
#: collections/videocollection.cpp:139
882
msgid "Language Tracks"
870
msgid "Language Tracks"
883
msgstr "Lingue del sonoro"
871
msgstr "Lingue audio"
884
872
885
#: collections/videocollection.cpp:145
873
#: collections/videocollection.cpp:145
886
msgid "Subtitle Languages"
874
msgid "Subtitle Languages"
Lines 896-902 msgstr "Durata" Link Here
896
884
897
#: collections/videocollection.cpp:159
885
#: collections/videocollection.cpp:159
898
msgid "The running time of the video (in minutes)"
886
msgid "The running time of the video (in minutes)"
899
msgstr "La durata del video in minuti"
887
msgstr "La durata del video (in minuti)"
900
888
901
#: collections/videocollection.cpp:162
889
#: collections/videocollection.cpp:162
902
msgid "Aspect Ratio"
890
msgid "Aspect Ratio"
Lines 905-911 msgstr "Tipo di visualizzazione" Link Here
905
#: collections/videocollection.cpp:167 fetch/amazonfetcher.cpp:815
893
#: collections/videocollection.cpp:167 fetch/amazonfetcher.cpp:815
906
#: translators/tellicoimporter.cpp:958
894
#: translators/tellicoimporter.cpp:958
907
msgid "Widescreen"
895
msgid "Widescreen"
908
msgstr "Grande schermo"
896
msgstr "Widescreen"
909
897
910
#: collections/videocollection.cpp:172
898
#: collections/videocollection.cpp:172
911
msgid "Black & White"
899
msgid "Black & White"
Lines 913-919 msgstr "Bianco e nero" Link Here
913
901
914
#: collections/videocollection.cpp:173
902
#: collections/videocollection.cpp:173
915
msgid "Color Mode"
903
msgid "Color Mode"
916
msgstr "Modalità a colori"
904
msgstr "Colori"
917
905
918
#: collections/videocollection.cpp:178 fetch/amazonfetcher.cpp:830
906
#: collections/videocollection.cpp:178 fetch/amazonfetcher.cpp:830
919
msgid "Director's Cut"
907
msgid "Director's Cut"
Lines 939-945 msgstr "I miei giochi" Link Here
939
#: collections/gamecollection.cpp:44
927
#: collections/gamecollection.cpp:44
940
#, fuzzy
928
#, fuzzy
941
msgid "Xbox 360"
929
msgid "Xbox 360"
942
msgstr "Xbox"
930
msgstr "Xbox 360"
943
931
944
#: collections/gamecollection.cpp:44
932
#: collections/gamecollection.cpp:44
945
msgid "Xbox"
933
msgid "Xbox"
Lines 948-954 msgstr "Xbox" Link Here
948
#: collections/gamecollection.cpp:45
936
#: collections/gamecollection.cpp:45
949
#, fuzzy
937
#, fuzzy
950
msgid "PlayStation3"
938
msgid "PlayStation3"
951
msgstr "PlayStation"
939
msgstr "PlayStation3"
952
940
953
#: collections/gamecollection.cpp:45
941
#: collections/gamecollection.cpp:45
954
msgid "PlayStation2"
942
msgid "PlayStation2"
Lines 967-973 msgstr "PSP" Link Here
967
#: collections/gamecollection.cpp:46
955
#: collections/gamecollection.cpp:46
968
#, fuzzy
956
#, fuzzy
969
msgid "Nintendo Wii"
957
msgid "Nintendo Wii"
970
msgstr "Regione"
958
msgstr "Nintendo Wii"
971
959
972
#: collections/gamecollection.cpp:46
960
#: collections/gamecollection.cpp:46
973
msgid "Nintendo DS"
961
msgid "Nintendo DS"
Lines 1005-1011 msgstr "Mac OS" Link Here
1005
993
1006
#: collections/gamecollection.cpp:48
994
#: collections/gamecollection.cpp:48
1007
msgid "Linux"
995
msgid "Linux"
1008
msgstr ""
996
msgstr "Linux"
1009
997
1010
#: collections/gamecollection.cpp:49
998
#: collections/gamecollection.cpp:49
1011
msgid "Platform"
999
msgid "Platform"
Lines 1013-1025 msgstr "Piattaforma" Link Here
1013
1001
1014
#: collections/boardgamecollection.cpp:55 collections/gamecollection.cpp:60
1002
#: collections/boardgamecollection.cpp:55 collections/gamecollection.cpp:60
1015
msgid "Release Year"
1003
msgid "Release Year"
1016
msgstr "Anno di pubblicazione"
1004
msgstr "Anno"
1017
1005
1018
#: collections/gamecollection.cpp:65
1006
#: collections/gamecollection.cpp:65
1019
msgid ""
1007
msgid ""
1020
"_: Games - Publisher\n"
1008
"_: Games - Publisher\n"
1021
"Publisher"
1009
"Publisher"
1022
msgstr "Casa editrice"
1010
msgstr "Produttore"
1023
1011
1024
#: collections/gamecollection.cpp:71
1012
#: collections/gamecollection.cpp:71
1025
msgid "Developer"
1013
msgid "Developer"
Lines 1031-1042 msgid "" Link Here
1031
"Childhood, Pending\n"
1019
"Childhood, Pending\n"
1032
"Unrated, Adults Only, Mature, Teen, Everyone, Early Childhood, Pending"
1020
"Unrated, Adults Only, Mature, Teen, Everyone, Early Childhood, Pending"
1033
msgstr ""
1021
msgstr ""
1034
"Non classificato, Pubblico Adulto, Teenager, Per tutti, Per bambini, "
1022
"Non classificato,Pubblico Adulto,Adolescenti,Per tutti,Per bambini,"
1035
"Classificazione in corso"
1023
"Classificazione in corso"
1036
1024
1037
#: collections/gamecollection.cpp:82
1025
#: collections/gamecollection.cpp:82
1038
msgid "ESRB Rating"
1026
msgid "ESRB Rating"
1039
msgstr "ESRB Rating"
1027
msgstr "Classificazione ESRB"
1040
1028
1041
#: collections/gamecollection.cpp:95
1029
#: collections/gamecollection.cpp:95
1042
msgid "Completed"
1030
msgid "Completed"
Lines 1064-1070 msgstr "Numero della carta" Link Here
1064
1052
1065
#: collections/cardcollection.cpp:77
1053
#: collections/cardcollection.cpp:77
1066
msgid "Card Type"
1054
msgid "Card Type"
1067
msgstr "Tipo della carta"
1055
msgstr "Tipo di carta"
1068
1056
1069
#: collections/cardcollection.cpp:109
1057
#: collections/cardcollection.cpp:109
1070
msgid "Front Image"
1058
msgid "Front Image"
Lines 1077-1096 msgstr "Immagine posteriore" Link Here
1077
#: collections/boardgamecollection.cpp:26
1065
#: collections/boardgamecollection.cpp:26
1078
#, fuzzy
1066
#, fuzzy
1079
msgid "My Board Games"
1067
msgid "My Board Games"
1080
msgstr "I miei giochi"
1068
msgstr "I miei giochi da tavolo"
1081
1069
1082
#: collections/boardgamecollection.cpp:49
1070
#: collections/boardgamecollection.cpp:49
1083
msgid "Mechanism"
1071
msgid "Mechanism"
1084
msgstr ""
1072
msgstr "Meccanismo"
1085
1073
1086
#: collections/boardgamecollection.cpp:66
1074
#: collections/boardgamecollection.cpp:66
1087
msgid "Designer"
1075
msgid "Designer"
1088
msgstr ""
1076
msgstr "Ideatore"
1089
1077
1090
#: collections/boardgamecollection.cpp:72
1078
#: collections/boardgamecollection.cpp:72
1091
#, fuzzy
1079
#, fuzzy
1092
msgid "Number of Players"
1080
msgid "Number of Players"
1093
msgstr "Elementi totali: %1"
1081
msgstr "Numero di giocatori"
1094
1082
1095
#: collectionfactory.cpp:125 collections/bibtexcollection.cpp:30
1083
#: collectionfactory.cpp:125 collections/bibtexcollection.cpp:30
1096
msgid "Bibliography"
1084
msgid "Bibliography"
Lines 1129-1139 msgstr "Indirizzo" Link Here
1129
1117
1130
#: collections/bibtexcollection.cpp:164 fetch/fetchmanager.cpp:73
1118
#: collections/bibtexcollection.cpp:164 fetch/fetchmanager.cpp:73
1131
msgid "DOI"
1119
msgid "DOI"
1132
msgstr ""
1120
msgstr "DOI"
1133
1121
1134
#: collections/bibtexcollection.cpp:167
1122
#: collections/bibtexcollection.cpp:167
1135
msgid "Digital Object Identifier"
1123
msgid "Digital Object Identifier"
1136
msgstr ""
1124
msgstr "Digital Object Identifier"
1137
1125
1138
#: collections/bibtexcollection.cpp:172
1126
#: collections/bibtexcollection.cpp:172
1139
msgid "Month"
1127
msgid "Month"
Lines 1202-1214 msgstr "Tracce" Link Here
1202
#: collections/musiccollection.cpp:78 translators/audiofileimporter.cpp:166
1190
#: collections/musiccollection.cpp:78 translators/audiofileimporter.cpp:166
1203
#: translators/tellicoimporter.cpp:441
1191
#: translators/tellicoimporter.cpp:441
1204
msgid "Length"
1192
msgid "Length"
1205
msgstr ""
1193
msgstr "Durata"
1206
1194
1207
#: core/tellico_config.cpp:134
1195
#: core/tellico_config.cpp:134
1208
msgid ""
1196
msgid ""
1209
"a,an,and,as,at,but,by,for,from,in,into,nor,of,off,on,onto,or,out,over,the,to,"
1197
"a,an,and,as,at,but,by,for,from,in,into,nor,of,off,on,onto,or,out,over,the,to,"
1210
"up,with"
1198
"up,with"
1211
msgstr "uno,un,una,un',in,di,del,della,il,la,lo,a"
1199
msgstr "uno,un,una,un',in,di,del,della,il,la,lo,a,i,gli,le"
1212
1200
1213
#: core/tellico_config.cpp:137
1201
#: core/tellico_config.cpp:137
1214
msgid "the"
1202
msgid "the"
Lines 1224-1230 msgstr "de,De,di,Di,van,der,van der,von,mc" Link Here
1224
1212
1225
#: fetch/isbndbfetcher.cpp:54
1213
#: fetch/isbndbfetcher.cpp:54
1226
msgid "ISBNdb.com"
1214
msgid "ISBNdb.com"
1227
msgstr ""
1215
msgstr "ISBNdb.com"
1228
1216
1229
#: fetch/amazonfetcher.cpp:192 fetch/animenfofetcher.cpp:75
1217
#: fetch/amazonfetcher.cpp:192 fetch/animenfofetcher.cpp:75
1230
#: fetch/arxivfetcher.cpp:83 fetch/bibsonomyfetcher.cpp:66
1218
#: fetch/arxivfetcher.cpp:83 fetch/bibsonomyfetcher.cpp:66
Lines 1250-1258 msgid "Entrez Database" Link Here
1250
msgstr "Database Entrez"
1238
msgstr "Database Entrez"
1251
1239
1252
#: fetch/entrezfetcher.cpp:485
1240
#: fetch/entrezfetcher.cpp:485
1253
#, fuzzy
1254
msgid "Institution"
1241
msgid "Institution"
1255
msgstr "Condizioni"
1242
msgstr "Istituzione"
1256
1243
1257
#: fetch/z3950connection.cpp:132
1244
#: fetch/z3950connection.cpp:132
1258
msgid "Query error!"
1245
msgid "Query error!"
Lines 1260-1266 msgstr "Errore nella query!" Link Here
1260
1247
1261
#: fetch/z3950connection.cpp:173
1248
#: fetch/z3950connection.cpp:173
1262
msgid "Connection search error %1: %2"
1249
msgid "Connection search error %1: %2"
1263
msgstr "Connection search error %1: %2"
1250
msgstr "Errore di connessione %1: %2"
1264
1251
1265
#: fetch/z3950connection.cpp:250
1252
#: fetch/z3950connection.cpp:250
1266
msgid "Record syntax error"
1253
msgid "Record syntax error"
Lines 1268-1279 msgstr "Errore nella sintassi dell'elemento" Link Here
1268
1255
1269
#: fetch/z3950connection.cpp:345
1256
#: fetch/z3950connection.cpp:345
1270
msgid "Connection error %1: %2"
1257
msgid "Connection error %1: %2"
1271
msgstr "Errore nella connessione %1: %2"
1258
msgstr "Errore di connessione %1: %2"
1272
1259
1273
#: fetch/srufetcher.cpp:72
1260
#: fetch/srufetcher.cpp:72
1274
#, fuzzy
1275
msgid "SRU Server"
1261
msgid "SRU Server"
1276
msgstr "Ripristinare"
1262
msgstr "Server SRU"
1277
1263
1278
#: fetch/srufetcher.cpp:405 z3950.cpp:2
1264
#: fetch/srufetcher.cpp:405 z3950.cpp:2
1279
msgid "Library of Congress (US)"
1265
msgid "Library of Congress (US)"
Lines 1295-1314 msgid "&Port: " Link Here
1295
msgstr "&Porta: "
1281
msgstr "&Porta: "
1296
1282
1297
#: fetch/srufetcher.cpp:445 fetch/z3950fetcher.cpp:520
1283
#: fetch/srufetcher.cpp:445 fetch/z3950fetcher.cpp:520
1298
#, fuzzy, c-format
1284
#, c-format
1299
msgid "Enter the port number of the server. The default is %1."
1285
msgid "Enter the port number of the server. The default is %1."
1300
msgstr ""
1286
msgstr "Inserisci il numero della porta del server. La porta di default è %1."
1301
"Inserisci il numero della porta del server z39.50. La porta di default è %1."
1302
1287
1303
#: fetch/srufetcher.cpp:450
1288
#: fetch/srufetcher.cpp:450
1304
#, fuzzy
1305
msgid "Path: "
1289
msgid "Path: "
1306
msgstr "&Porta: "
1290
msgstr "Path:"
1307
1291
1308
#: fetch/srufetcher.cpp:455
1292
#: fetch/srufetcher.cpp:455
1309
#, fuzzy
1310
msgid "Enter the path to the database used by the server."
1293
msgid "Enter the path to the database used by the server."
1311
msgstr "Inserisci il nome del database usato dal server z39.50."
1294
msgstr "Inserisci il nome del database usato dal server"
1312
1295
1313
#: fetch/srufetcher.cpp:460
1296
#: fetch/srufetcher.cpp:460
1314
#, fuzzy
1297
#, fuzzy
Lines 1316-1338 msgid "Format: " Link Here
1316
msgstr "Formato"
1299
msgstr "Formato"
1317
1300
1318
#: fetch/srufetcher.cpp:468
1301
#: fetch/srufetcher.cpp:468
1319
#, fuzzy
1320
msgid "Enter the result format used by the server."
1302
msgid "Enter the result format used by the server."
1321
msgstr "Inserisci il nome del database usato dal server z39.50."
1303
msgstr "Scegli il formato usato dal server."
1322
1304
1323
#: fetch/yahoofetcher.cpp:54
1305
#: fetch/yahoofetcher.cpp:54
1324
msgid "Yahoo! Audio Search"
1306
msgid "Yahoo! Audio Search"
1325
msgstr ""
1307
msgstr "Yahoo! Audio Search"
1326
1308
1327
#: fetch/amazonfetcher.cpp:730 fetch/discogsfetcher.cpp:539
1309
#: fetch/amazonfetcher.cpp:730 fetch/discogsfetcher.cpp:539
1328
#: fetch/yahoofetcher.cpp:242
1310
#: fetch/yahoofetcher.cpp:242
1329
msgid "The cover image could not be loaded."
1311
msgid "The cover image could not be loaded."
1330
msgstr "Immagine di copertina non caricata."
1312
msgstr "L'immagine di copertina non è stata caricata."
1331
1313
1332
#: fetch/amazonfetcher.cpp:53
1314
#: fetch/amazonfetcher.cpp:53
1333
#, fuzzy
1334
msgid "Amazon Link"
1315
msgid "Amazon Link"
1335
msgstr "Amazon (Giappone)"
1316
msgstr "Link Amazon"
1336
1317
1337
#: fetch/amazonfetcher.cpp:62
1318
#: fetch/amazonfetcher.cpp:62
1338
msgid "Amazon (US)"
1319
msgid "Amazon (US)"
Lines 1424-1461 msgid "" Link Here
1424
"The cover image may be downloaded as well. However, too many large images in "
1405
"The cover image may be downloaded as well. However, too many large images in "
1425
"the collection may degrade performance."
1406
"the collection may degrade performance."
1426
msgstr ""
1407
msgstr ""
1427
"L'immagine di copertina può essere scaricata. Inserire troppe immagini "
1408
"L'immagine di copertina può essere scaricata comunque. Inserire troppe immagini "
1428
"grandi nella collezione può però peggiorare le performance."
1409
"grandi nella collezione può però peggiorare le prestazioni."
1429
1410
1430
#: fetch/amazonfetcher.cpp:881
1411
#: fetch/amazonfetcher.cpp:881
1431
msgid "&Associate's ID: "
1412
msgid "&Associate's ID: "
1432
msgstr "ID del &socio: "
1413
msgstr "ID &utente: "
1433
1414
1434
#: fetch/amazonfetcher.cpp:886
1415
#: fetch/amazonfetcher.cpp:886
1435
msgid ""
1416
msgid ""
1436
"The associate's id identifies the person accessing the Amazon.com Web "
1417
"The associate's id identifies the person accessing the Amazon.com Web "
1437
"Services, and is included in any links to the Amazon.com site."
1418
"Services, and is included in any links to the Amazon.com site."
1438
msgstr ""
1419
msgstr ""
1439
"L'ID del socio identifica la persona che accede ai servizi di Amazon.com ed "
1420
"L'ID utente identifica la persona che accede ai servizi di Amazon.com ed "
1440
"incluso in tutti i link al sito Amazon.com."
1421
"incluso in tutti i link al sito."
1441
1422
1442
#: fetch/z3950fetcher.cpp:79 fetch/z3950fetcher.cpp:755
1423
#: fetch/z3950fetcher.cpp:79 fetch/z3950fetcher.cpp:755
1443
#, fuzzy
1444
msgid "z39.50 Server"
1424
msgid "z39.50 Server"
1445
msgstr "z39.50"
1425
msgstr "Server z39.50"
1446
1426
1447
#: fetch/z3950fetcher.cpp:494
1427
#: fetch/z3950fetcher.cpp:494
1448
msgid "Use preset &server:"
1428
msgid "Use preset &server:"
1449
msgstr ""
1429
msgstr "Usa &server predefinito:"
1450
1430
1451
#: fetch/z3950fetcher.cpp:525
1431
#: fetch/z3950fetcher.cpp:525
1452
msgid "&Database: "
1432
msgid "&Database: "
1453
msgstr "&Database: "
1433
msgstr "&Database: "
1454
1434
1455
#: fetch/z3950fetcher.cpp:530
1435
#: fetch/z3950fetcher.cpp:530
1456
#, fuzzy
1457
msgid "Enter the database name used by the server."
1436
msgid "Enter the database name used by the server."
1458
msgstr "Inserisci il nome del database usato dal server z39.50."
1437
msgstr "Inserisci il nome del database usato dal server."
1459
1438
1460
#: fetch/z3950fetcher.cpp:535
1439
#: fetch/z3950fetcher.cpp:535
1461
msgid "Ch&aracter set: "
1440
msgid "Ch&aracter set: "
Lines 1465-1473 msgstr "Set di c&aratteri: " Link Here
1465
msgid ""
1444
msgid ""
1466
"Enter the character set encoding used by the z39.50 server. The most likely "
1445
"Enter the character set encoding used by the z39.50 server. The most likely "
1467
"choice is MARC-8, although ISO-8859-1 is common as well."
1446
"choice is MARC-8, although ISO-8859-1 is common as well."
1468
msgstr ""
1447
msgstr "Inserisci il set di caratteri utilizzato dal server z39.50. Generalmente i server utilizzano MARC-8. Anche ISO-8859-1 è piuttosto comune."
1469
"Inserisci il set di caratteri utilizzato dal server z39.50. La scelta più "
1470
"probabile è MARC-8, anche se ISO-8859-1 è altrettanto comune."
1471
1448
1472
#: fetch/z3950fetcher.cpp:550
1449
#: fetch/z3950fetcher.cpp:550
1473
#, fuzzy
1450
#, fuzzy
Lines 1476-1488 msgstr "Formato" Link Here
1476
1453
1477
#: fetch/z3950fetcher.cpp:553
1454
#: fetch/z3950fetcher.cpp:553
1478
msgid "Auto-detect"
1455
msgid "Auto-detect"
1479
msgstr ""
1456
msgstr "Rileva automaticamente"
1480
1457
1481
#: fetch/z3950fetcher.cpp:561
1458
#: fetch/z3950fetcher.cpp:561
1482
msgid ""
1459
msgid ""
1483
"Enter the data format used by the z39.50 server. Tellico will attempt to "
1460
"Enter the data format used by the z39.50 server. Tellico will attempt to "
1484
"automatically detect the best setting if <i>auto-detect</i> is selected."
1461
"automatically detect the best setting if <i>auto-detect</i> is selected."
1485
msgstr ""
1462
msgstr ""
1463
"Inserisci il formato dati del server z39.50. Se è stato selezionato <i>"
1464
"rileva automaticamente</i> Tellico cercherà automaticamente di rilevare le "
1465
"migliori impostazioni."
1486
1466
1487
#: fetch/z3950fetcher.cpp:567
1467
#: fetch/z3950fetcher.cpp:567
1488
msgid "&User: "
1468
msgid "&User: "
Lines 1497-1503 msgid "" Link Here
1497
"Enter the authentication user name used by the z39.50 database. Most servers "
1477
"Enter the authentication user name used by the z39.50 database. Most servers "
1498
"do not need one."
1478
"do not need one."
1499
msgstr ""
1479
msgstr ""
1500
"Inserisci lo username per l'autenticazione nel database z39.50. Per molti "
1480
"Inserisci il nome utente per l'autenticazione nel database z39.50. Per molti "
1501
"server non è necessario."
1481
"server non è necessario."
1502
1482
1503
#: fetch/z3950fetcher.cpp:579
1483
#: fetch/z3950fetcher.cpp:579
Lines 1512-1522 msgid "" Link Here
1512
"configuration file."
1492
"configuration file."
1513
msgstr ""
1493
msgstr ""
1514
"Inserisci la password di autenticazione utilizzata dal database z39.50. Per "
1494
"Inserisci la password di autenticazione utilizzata dal database z39.50. Per "
1515
"molti server non è necessario."
1495
"molti server non è necessario. La password verrà salvata in chiaro nel file "
1496
"di configurazione di Tellico."
1516
1497
1517
#: fetch/z3950fetcher.cpp:670
1498
#: fetch/z3950fetcher.cpp:670
1518
msgid "Illustrator"
1499
msgid "Illustrator"
1519
msgstr ""
1500
msgstr "Illustrator"
1520
1501
1521
#: fetch/execexternalfetcher.cpp:82
1502
#: fetch/execexternalfetcher.cpp:82
1522
msgid "External Application"
1503
msgid "External Application"
Lines 1528-1551 msgid "Collection &type:" Link Here
1528
msgstr "&Tipo di collezione:"
1509
msgstr "&Tipo di collezione:"
1529
1510
1530
#: fetch/execexternalfetcher.cpp:351
1511
#: fetch/execexternalfetcher.cpp:351
1531
msgid ""
1512
msgid "Set the collection type of the data returned from the external application."
1532
"Set the collection type of the data returned from the external application."
1513
msgstr "Seleziona il tipo di collezione per i dati forniti dal programma esterno."
1533
msgstr ""
1534
"Seleziona il tipo di collezione per i dati forniti dal programma esterno."
1535
1514
1536
#: fetch/execexternalfetcher.cpp:356
1515
#: fetch/execexternalfetcher.cpp:356
1537
msgid "&Result type: "
1516
msgid "&Result type: "
1538
msgstr ""
1517
msgstr "Tipo di &risultato:"
1539
1518
1540
#: fetch/execexternalfetcher.cpp:365
1519
#: fetch/execexternalfetcher.cpp:365
1541
#, fuzzy
1542
msgid "Set the result type of the data returned from the external application."
1520
msgid "Set the result type of the data returned from the external application."
1543
msgstr ""
1521
msgstr "Seleziona il tipo di risultato per i dati forniti dal programma esterno."
1544
"Seleziona il tipo di collezione per i dati forniti dal programma esterno."
1545
1522
1546
#: fetch/execexternalfetcher.cpp:370
1523
#: fetch/execexternalfetcher.cpp:370
1547
msgid "Application &path: "
1524
msgid "Application &path: "
1548
msgstr "&path del programma: "
1525
msgstr "&Path del programma: "
1549
1526
1550
#: fetch/execexternalfetcher.cpp:375
1527
#: fetch/execexternalfetcher.cpp:375
1551
msgid ""
1528
msgid ""
Lines 1557-1563 msgstr "" Link Here
1557
1534
1558
#: fetch/execexternalfetcher.cpp:380
1535
#: fetch/execexternalfetcher.cpp:380
1559
msgid "Select the search keys supported by the data source."
1536
msgid "Select the search keys supported by the data source."
1560
msgstr ""
1537
msgstr "Seleziona le chiavi di ricerca supportate dalla fonte dei dati."
1561
1538
1562
#: fetch/execexternalfetcher.cpp:381
1539
#: fetch/execexternalfetcher.cpp:381
1563
msgid ""
1540
msgid ""
Lines 1568-1581 msgstr "" Link Here
1568
"ricercate."
1545
"ricercate."
1569
1546
1570
#: fetch/execexternalfetcher.cpp:382
1547
#: fetch/execexternalfetcher.cpp:382
1571
#, fuzzy
1572
msgid "Arguments"
1548
msgid "Arguments"
1573
msgstr "&Argomenti: "
1549
msgstr "&Argomenti"
1574
1550
1575
#: fetch/execexternalfetcher.cpp:415 newstuff/dialog.cpp:152
1551
#: fetch/execexternalfetcher.cpp:415 newstuff/dialog.cpp:152
1576
#, fuzzy
1577
msgid "Update"
1552
msgid "Update"
1578
msgstr "&Cita elemento"
1553
msgstr "&Aggiorna"
1579
1554
1580
#. TRANSLATORS: Do not translate %{author}.
1555
#. TRANSLATORS: Do not translate %{author}.
1581
#: fetch/execexternalfetcher.cpp:423
1556
#: fetch/execexternalfetcher.cpp:423
Lines 1585-1590 msgid "" Link Here
1585
"where field values are contained inside braces, such as <i>%{author}</i>. "
1560
"where field values are contained inside braces, such as <i>%{author}</i>. "
1586
"See the documentation for details.</p>"
1561
"See the documentation for details.</p>"
1587
msgstr ""
1562
msgstr ""
1563
"<p>Inserisci gli argomenti da usare per ricercare gli aggiornamenti disponibili per "
1564
"un elemento.</p><p>Il formato è lo stesso dei campi <i>Dipendenti</i>, in cui "
1565
"il valore di un campo è racchiuso fra parentesi, come ad esempio <i>%{author}</i>. "
1566
"Leggi la documentazione per ulteriori dettagli.</p>"
1588
1567
1589
#: fetch/configwidget.cpp:29
1568
#: fetch/configwidget.cpp:29
1590
msgid "Source Options"
1569
msgid "Source Options"
Lines 1604-1611 msgid "Select IMDB Result" Link Here
1604
msgstr "Seleziona il risultato IMDB"
1583
msgstr "Seleziona il risultato IMDB"
1605
1584
1606
#: fetch/imdbfetcher.cpp:581
1585
#: fetch/imdbfetcher.cpp:581
1607
msgid ""
1586
msgid "<qt>Your search returned multiple matches. Please select one below.</qt>"
1608
"<qt>Your search returned multiple matches. Please select one below.</qt>"
1609
msgstr ""
1587
msgstr ""
1610
"<qt>La tua ricerca ha dato più di un risultato. Seleziona uno dei "
1588
"<qt>La tua ricerca ha dato più di un risultato. Seleziona uno dei "
1611
"seguenti.</qt>"
1589
"seguenti.</qt>"
Lines 1616-1622 msgstr "<qt>Seleziona un risultato.</qt>" Link Here
1616
1594
1617
#: fetch/imdbfetcher.cpp:688 fetch/imdbfetcher.cpp:1185
1595
#: fetch/imdbfetcher.cpp:688 fetch/imdbfetcher.cpp:1185
1618
msgid "IMDB Link"
1596
msgid "IMDB Link"
1619
msgstr ""
1597
msgstr "Link IMDB"
1620
1598
1621
#: fetch/animenfofetcher.cpp:260 fetch/imdbfetcher.cpp:746
1599
#: fetch/animenfofetcher.cpp:260 fetch/imdbfetcher.cpp:746
1622
#: fetch/imdbfetcher.cpp:1187
1600
#: fetch/imdbfetcher.cpp:1187
Lines 1624-1632 msgid "Alternative Titles" Link Here
1624
msgstr "Titoli alternativi"
1602
msgstr "Titoli alternativi"
1625
1603
1626
#: fetch/imdbfetcher.cpp:947 fetch/imdbfetcher.cpp:1186
1604
#: fetch/imdbfetcher.cpp:947 fetch/imdbfetcher.cpp:1186
1627
#, fuzzy
1628
msgid "IMDB Rating"
1605
msgid "IMDB Rating"
1629
msgstr "ESRB Rating"
1606
msgstr "Valutazione IMDB"
1630
1607
1631
#: fetch/imdbfetcher.cpp:1065 fetch/imdbfetcher.cpp:1188
1608
#: fetch/imdbfetcher.cpp:1065 fetch/imdbfetcher.cpp:1188
1632
msgid "Certifications"
1609
msgid "Certifications"
Lines 1641-1664 msgstr "" Link Here
1641
"usare."
1618
"usare."
1642
1619
1643
#: fetch/imdbfetcher.cpp:1132
1620
#: fetch/imdbfetcher.cpp:1132
1644
#, fuzzy
1645
msgid "&Maximum cast: "
1621
msgid "&Maximum cast: "
1646
msgstr "Larghezza massima delle immagini:"
1622
msgstr "Numero &massimo attori:"
1647
1623
1648
#: fetch/imdbfetcher.cpp:1137
1624
#: fetch/imdbfetcher.cpp:1137
1649
msgid ""
1625
msgid ""
1650
"The list of cast members may include many people. Set the maximum number "
1626
"The list of cast members may include many people. Set the maximum number "
1651
"returned from the search."
1627
"returned from the search."
1652
msgstr ""
1628
msgstr ""
1629
"La lista dei componenti del cast potrebbe includere molte persone. Scegli "
1630
"un numero massimo per i risultati della ricerca."
1653
1631
1654
#: fetch/discogsfetcher.cpp:679 fetch/imdbfetcher.cpp:1142
1632
#: fetch/discogsfetcher.cpp:679 fetch/imdbfetcher.cpp:1142
1655
#, fuzzy
1656
msgid "Download cover &image"
1633
msgid "Download cover &image"
1657
msgstr "Scarica l'immagine di copertina"
1634
msgstr "Scarica l'&immagine di copertina"
1658
1635
1659
#: fetch/ibsfetcher.cpp:47
1636
#: fetch/ibsfetcher.cpp:47
1660
msgid "Internet Bookshop (ibs.it)"
1637
msgid "Internet Bookshop (ibs.it)"
1661
msgstr ""
1638
msgstr "Internet Bookshop (ibs.it)"
1662
1639
1663
#: fetch/fetchmanager.cpp:69
1640
#: fetch/fetchmanager.cpp:69
1664
msgid "Person"
1641
msgid "Person"
Lines 1670-1676 msgstr "ISBN" Link Here
1670
1647
1671
#: fetch/fetchmanager.cpp:71
1648
#: fetch/fetchmanager.cpp:71
1672
msgid "UPC/EAN"
1649
msgid "UPC/EAN"
1673
msgstr ""
1650
msgstr "UPC/EAN"
1674
1651
1675
#: fetch/fetchmanager.cpp:72
1652
#: fetch/fetchmanager.cpp:72
1676
msgid "Keyword"
1653
msgid "Keyword"
Lines 1678-1688 msgstr "Parola chiave" Link Here
1678
1655
1679
#: fetch/fetchmanager.cpp:74 translators/pdfimporter.cpp:173
1656
#: fetch/fetchmanager.cpp:74 translators/pdfimporter.cpp:173
1680
msgid "arXiv ID"
1657
msgid "arXiv ID"
1681
msgstr ""
1658
msgstr "arXiv ID"
1682
1659
1683
#: fetch/fetchmanager.cpp:75
1660
#: fetch/fetchmanager.cpp:75
1684
msgid "Pubmed ID"
1661
msgid "Pubmed ID"
1685
msgstr ""
1662
msgstr "Pubmed ID"
1686
1663
1687
#: fetch/fetchmanager.cpp:76
1664
#: fetch/fetchmanager.cpp:76
1688
msgid "Raw Query"
1665
msgid "Raw Query"
Lines 1690-1713 msgstr "Query in modalità Raw" Link Here
1690
1667
1691
#: fetch/animenfofetcher.cpp:257
1668
#: fetch/animenfofetcher.cpp:257
1692
msgid "Original Title"
1669
msgid "Original Title"
1693
msgstr ""
1670
msgstr "Titolo originale"
1694
1671
1695
#: fetch/animenfofetcher.cpp:264
1672
#: fetch/animenfofetcher.cpp:264
1696
#, fuzzy
1673
#, fuzzy
1697
msgid "Distributor"
1674
msgid "Distributor"
1698
msgstr "Regista"
1675
msgstr "Distributore"
1699
1676
1700
#: fetch/animenfofetcher.cpp:270
1677
#: fetch/animenfofetcher.cpp:270
1701
msgid "Episodes"
1678
msgid "Episodes"
1702
msgstr ""
1679
msgstr "Episodi"
1703
1680
1704
#: fetch/arxivfetcher.cpp:53
1681
#: fetch/arxivfetcher.cpp:53
1705
msgid "arXiv.org"
1682
msgid "arXiv.org"
1706
msgstr ""
1683
msgstr "arXiv.org"
1707
1684
1708
#: fetch/crossreffetcher.cpp:83
1685
#: fetch/crossreffetcher.cpp:83
1709
msgid "%1 requires a username and password."
1686
msgid "%1 requires a username and password."
1710
msgstr ""
1687
msgstr "%1 richiede un username e password."
1711
1688
1712
#: fetch/crossreffetcher.cpp:332
1689
#: fetch/crossreffetcher.cpp:332
1713
msgid ""
1690
msgid ""
Lines 1715-1725 msgid "" Link Here
1715
"conditions and <a href='http://www.crossref.org/requestaccount/'>request an "
1692
"conditions and <a href='http://www.crossref.org/requestaccount/'>request an "
1716
"account</a>. Enter your OpenURL account information below."
1693
"account</a>. Enter your OpenURL account information below."
1717
msgstr ""
1694
msgstr ""
1695
"CrossRef richiede un account per accedere. Per favore leggi termini e condizioni "
1696
"e <a href='http://www.crossref.org/requestaccount/'>richiedi un "
1697
"account</a>. Inserisci i tuoi dati OpenURL qui sotto."
1718
1698
1719
#: fetch/crossreffetcher.cpp:343
1699
#: fetch/crossreffetcher.cpp:343
1720
#, fuzzy
1721
msgid "&Username: "
1700
msgid "&Username: "
1722
msgstr "&Utente: "
1701
msgstr "Nome &Utente: "
1723
1702
1724
#: fetch/crossreffetcher.cpp:348
1703
#: fetch/crossreffetcher.cpp:348
1725
#, fuzzy
1704
#, fuzzy
Lines 1727-1734 msgid "" Link Here
1727
"A username and password is required to access the CrossRef service. The "
1706
"A username and password is required to access the CrossRef service. The "
1728
"password is stored as plain text in the Tellico configuration file."
1707
"password is stored as plain text in the Tellico configuration file."
1729
msgstr ""
1708
msgstr ""
1730
"Inserisci la password di autenticazione utilizzata dal database z39.50. Per "
1709
"Nome utente e password sono necessari per accedere ai servizi CrossRef. "
1731
"molti server non è necessario."
1710
"La password verrà salvata in chiaro nel file di configurazione di Tellico."
1732
1711
1733
#: fetch/crossreffetcher.cpp:354
1712
#: fetch/crossreffetcher.cpp:354
1734
#, fuzzy
1713
#, fuzzy
Lines 1736-1794 msgid "&Password: " Link Here
1736
msgstr "Pass&word: "
1715
msgstr "Pass&word: "
1737
1716
1738
#: fetch/gcstarpluginfetcher.cpp:190
1717
#: fetch/gcstarpluginfetcher.cpp:190
1739
#, fuzzy
1740
msgid "GCstar Plugin"
1718
msgid "GCstar Plugin"
1741
msgstr "GCstar"
1719
msgstr "Plugin GCstar"
1742
1720
1743
#: fetch/gcstarpluginfetcher.cpp:404
1721
#: fetch/gcstarpluginfetcher.cpp:404
1744
#, fuzzy
1745
msgid "Set the collection type of the data returned from the plugin."
1722
msgid "Set the collection type of the data returned from the plugin."
1746
msgstr ""
1723
msgstr "Seleziona il tipo di collezione per i dati forniti dal plugin."
1747
"Seleziona il tipo di collezione per i dati forniti dal programma esterno."
1748
1724
1749
#: fetch/gcstarpluginfetcher.cpp:409
1725
#: fetch/gcstarpluginfetcher.cpp:409
1750
msgid "&Plugin: "
1726
msgid "&Plugin: "
1751
msgstr ""
1727
msgstr "&Plugin: "
1752
1728
1753
#: fetch/gcstarpluginfetcher.cpp:415
1729
#: fetch/gcstarpluginfetcher.cpp:415
1754
msgid "Select the GCstar plugin used for the data source."
1730
msgid "Select the GCstar plugin used for the data source."
1755
msgstr ""
1731
msgstr "Seleziona il plugin GCstar da usare per questa fonte"
1756
1732
1757
#: fetch/gcstarpluginfetcher.cpp:420
1733
#: fetch/gcstarpluginfetcher.cpp:420
1758
#, fuzzy
1759
msgid "Author: "
1734
msgid "Author: "
1760
msgstr "Autore"
1735
msgstr "Autore: "
1761
1736
1762
#: fetch/discogsfetcher.cpp:58
1737
#: fetch/discogsfetcher.cpp:58
1763
msgid "Discogs Audio Search"
1738
msgid "Discogs Audio Search"
1764
msgstr ""
1739
msgstr "Ricerca Audio Discogs"
1765
1740
1766
#: fetch/discogsfetcher.cpp:668
1741
#: fetch/discogsfetcher.cpp:668
1767
msgid "API &key: "
1742
msgid "API &key: "
1768
msgstr ""
1743
msgstr "API &key: "
1769
1744
1770
#: fetch/discogsfetcher.cpp:674
1745
#: fetch/discogsfetcher.cpp:674
1771
msgid ""
1746
msgid ""
1772
"With your discogs.com account you receive an API key for the usage of their "
1747
"With your discogs.com account you receive an API key for the usage of their "
1773
"XML-based interface (See http://www.discogs.com/help/api)."
1748
"XML-based interface (See http://www.discogs.com/help/api)."
1774
msgstr ""
1749
msgstr ""
1750
"Con il tuo account discogs.com riceverai un 'API key' da usare per l'interfaccia "
1751
"XML (Vedi http://www.discogs.com/help/api)."
1775
1752
1776
#: fetch/discogsfetcher.cpp:718
1753
#: fetch/discogsfetcher.cpp:718
1777
msgid "Discogs Link"
1754
msgid "Discogs Link"
1778
msgstr ""
1755
msgstr "Link Discogs"
1779
1756
1780
#: newstuff/dialog.cpp:94
1757
#: newstuff/dialog.cpp:94
1781
msgid "Get Hot New Stuff"
1758
msgid "Get Hot New Stuff"
1782
msgstr ""
1759
msgstr "Scarica le ultime novità"
1783
1760
1784
#: newstuff/dialog.cpp:114
1761
#: newstuff/dialog.cpp:114
1785
#, fuzzy
1762
#, fuzzy
1786
msgid "Version"
1763
msgid "Version"
1787
msgstr "Persona"
1764
msgstr "Versione"
1788
1765
1789
#: newstuff/dialog.cpp:116
1766
#: newstuff/dialog.cpp:116
1790
msgid "Downloads"
1767
msgid "Downloads"
1791
msgstr ""
1768
msgstr "Download"
1792
1769
1793
#: newstuff/dialog.cpp:117
1770
#: newstuff/dialog.cpp:117
1794
#, fuzzy
1771
#, fuzzy
Lines 1801-1840 msgid "" Link Here
1801
"items have a checkmark icon, while items with new version available have an "
1778
"items have a checkmark icon, while items with new version available have an "
1802
"update icon"
1779
"update icon"
1803
msgstr ""
1780
msgstr ""
1781
"Questa è una lista di tutti gli oggetti disponibili per il download. Quelli "
1782
"già istallati hanno il segno di spunta, mentre quelli per cui è disponibile una "
1783
"nuova versione hanno l'icona di aggiornamento"
1804
1784
1805
#: newstuff/dialog.cpp:137
1785
#: newstuff/dialog.cpp:137
1806
#, fuzzy
1786
#, fuzzy
1807
msgid "The name and license of the selected item"
1787
msgid "The name and license of the selected item"
1808
msgstr "Registra gli elementi selezionati"
1788
msgstr "Nome e licenza degli elementi selezionati"
1809
1789
1810
#: newstuff/dialog.cpp:140
1790
#: newstuff/dialog.cpp:140
1811
#, fuzzy
1791
#, fuzzy
1812
msgid "The author of the selected item"
1792
msgid "The author of the selected item"
1813
msgstr "Controlla gli elementi selezionati"
1793
msgstr "Autore degli elementi selezionati"
1814
1794
1815
#: newstuff/dialog.cpp:142 newstuff/dialog.cpp:396
1795
#: newstuff/dialog.cpp:142 newstuff/dialog.cpp:396
1816
msgid "Install"
1796
msgid "Install"
1817
msgstr ""
1797
msgstr "Installa"
1818
1798
1819
#: newstuff/dialog.cpp:161
1799
#: newstuff/dialog.cpp:161
1820
msgid "Download and install the selected template."
1800
msgid "Download and install the selected template."
1821
msgstr ""
1801
msgstr "Scarica e installa il template selezionato."
1822
1802
1823
#: newstuff/dialog.cpp:164
1803
#: newstuff/dialog.cpp:164
1824
msgid ""
1804
msgid ""
1825
"Download and install the selected script. Some scripts may need to be "
1805
"Download and install the selected script. Some scripts may need to be "
1826
"configured after being installed."
1806
"configured after being installed."
1827
msgstr ""
1807
msgstr "Scarica e installa lo script selezionato. Alcuni script potrebbero necessitare di una configurazione successiva."
1828
1808
1829
#: newstuff/dialog.cpp:194
1809
#: newstuff/dialog.cpp:194
1830
#, fuzzy
1831
msgid "A description of the selected item is shown here."
1810
msgid "A description of the selected item is shown here."
1832
msgstr "Registra gli elementi selezionati"
1811
msgstr "Una descrizione degli elementi selezionati viene mostrata qui."
1833
1812
1834
#: newstuff/dialog.cpp:224
1813
#: newstuff/dialog.cpp:224
1835
#, fuzzy
1836
msgid "Downloading information..."
1814
msgid "Downloading information..."
1837
msgstr "Importa le informazioni CDAudio da FreeDB"
1815
msgstr "Dowload delle informazioni..."
1838
1816
1839
#: controller.cpp:135 fetchdialog.cpp:226 fetchdialog.cpp:333
1817
#: controller.cpp:135 fetchdialog.cpp:226 fetchdialog.cpp:333
1840
#: fetchdialog.cpp:451 fetchdialog.cpp:506 newstuff/dialog.cpp:297
1818
#: fetchdialog.cpp:451 fetchdialog.cpp:506 newstuff/dialog.cpp:297
Lines 1846-1862 msgstr "Pronto." Link Here
1846
msgid ""
1824
msgid ""
1847
"_: Update Stuff\n"
1825
"_: Update Stuff\n"
1848
"Update"
1826
"Update"
1849
msgstr ""
1827
msgstr "Aggiorna"
1850
1828
1851
#: newstuff/dialog.cpp:413
1829
#: newstuff/dialog.cpp:413
1852
#, fuzzy
1853
msgid "Installing item..."
1830
msgid "Installing item..."
1854
msgstr "Sto salvando il  file ..."
1831
msgstr "Installazione oggetto..."
1855
1832
1856
#: translators/bibteximporter.cpp:79
1833
#: translators/bibteximporter.cpp:79
1857
#, fuzzy
1858
msgid "No valid bibtex entries were found"
1834
msgid "No valid bibtex entries were found"
1859
msgstr "Non è stato trovato alcun elemento Bibtex valido nel file - %1"
1835
msgstr "Non è stato trovato alcun elemento Bibtex valido."
1860
1836
1861
#: translators/bibteximporter.cpp:96
1837
#: translators/bibteximporter.cpp:96
1862
#, c-format
1838
#, c-format
Lines 1883-1891 msgid "Use user locale (%1) encoding" Link Here
1883
msgstr "Codifica secondo le impostazioni dell'utente (%1)"
1859
msgstr "Codifica secondo le impostazioni dell'utente (%1)"
1884
1860
1885
#: translators/bibteximporter.cpp:293
1861
#: translators/bibteximporter.cpp:293
1886
#, fuzzy
1887
msgid "Read the imported file in the local encoding."
1862
msgid "Read the imported file in the local encoding."
1888
msgstr "Codifica il file esportato secondo l'impostazione locale."
1863
msgstr "Leggi il file importato usando la codifica locale."
1889
1864
1890
#: translators/tellicozipexporter.cpp:35
1865
#: translators/tellicozipexporter.cpp:35
1891
msgid "Tellico Zip File"
1866
msgid "Tellico Zip File"
Lines 1926-1936 msgstr "C'è un errore di parsing HTML nella linea %1, colonna %2." Link Here
1926
#: filehandler.cpp:143 translators/tellicoimporter.cpp:115
1901
#: filehandler.cpp:143 translators/tellicoimporter.cpp:115
1927
#: translators/xmlimporter.cpp:45 translators/xmlimporter.cpp:62
1902
#: translators/xmlimporter.cpp:45 translators/xmlimporter.cpp:62
1928
msgid "The error message from Qt is:"
1903
msgid "The error message from Qt is:"
1929
msgstr "Il messaggio di errore Qt è:"
1904
msgstr "Il messaggio di errore di Qt è:"
1930
1905
1931
#: translators/tellicoimporter.cpp:152
1906
#: translators/tellicoimporter.cpp:152
1932
msgid "It is from a future version of Tellico."
1907
msgid "It is from a future version of Tellico."
1933
msgstr "Il file sembra appartenere ad una versione futura di Tellico."
1908
msgstr "Il file sembra appartenere ad una versione successiva di Tellico."
1934
1909
1935
#: translators/tellicoimporter.cpp:162
1910
#: translators/tellicoimporter.cpp:162
1936
msgid ""
1911
msgid ""
Lines 1973-1988 msgstr "Preferiti" Link Here
1973
1948
1974
#: translators/audiofileimporter.cpp:69
1949
#: translators/audiofileimporter.cpp:69
1975
msgid "Scanning audio files..."
1950
msgid "Scanning audio files..."
1976
msgstr "Scansione dei file audio ..."
1951
msgstr "Scansione dei file audio..."
1977
1952
1978
#: translators/audiofileimporter.cpp:129
1953
#: translators/audiofileimporter.cpp:129
1979
#, fuzzy
1980
msgid "Bitrate"
1954
msgid "Bitrate"
1981
msgstr "Bibtex"
1955
msgstr "Bitrate"
1982
1956
1983
#: translators/audiofileimporter.cpp:160 translators/audiofileimporter.cpp:170
1957
#: translators/audiofileimporter.cpp:160 translators/audiofileimporter.cpp:170
1984
msgid "Tracks (Disc %1)"
1958
msgid "Tracks (Disc %1)"
1985
msgstr ""
1959
msgstr "Tracce (Disco %1)"
1986
1960
1987
#: translators/audiofileimporter.cpp:189 xslt.cpp:4
1961
#: translators/audiofileimporter.cpp:189 xslt.cpp:4
1988
msgid "(Various)"
1962
msgid "(Various)"
Lines 1994-2026 msgstr "Opzioni file audio" Link Here
1994
1968
1995
#: translators/audiofileimporter.cpp:342
1969
#: translators/audiofileimporter.cpp:342
1996
msgid "Recursive &folder search"
1970
msgid "Recursive &folder search"
1997
msgstr "Ricerca ricorsiva"
1971
msgstr "Ricerca &ricorsiva"
1998
1972
1999
#: translators/audiofileimporter.cpp:343
1973
#: translators/audiofileimporter.cpp:343
2000
msgid "If checked, folders are recursively searched for audio files."
1974
msgid "If checked, folders are recursively searched for audio files."
2001
msgstr ""
1975
msgstr ""
2002
"Se selezionato, i file audio verranno ricercati ricorsivamente all'interno "
1976
"Se selezionato, i file verranno ricercati ricorsivamente all'interno "
2003
"delle cartelle."
1977
"delle cartelle."
2004
1978
2005
#: translators/audiofileimporter.cpp:347
1979
#: translators/audiofileimporter.cpp:347
2006
msgid "Include file &location"
1980
msgid "Include file &location"
2007
msgstr ""
1981
msgstr "Includi &percorso file"
2008
1982
2009
#: translators/audiofileimporter.cpp:348
1983
#: translators/audiofileimporter.cpp:348
2010
#, fuzzy
2011
msgid "If checked, the file names for each track are added to the entries."
1984
msgid "If checked, the file names for each track are added to the entries."
2012
msgstr ""
1985
msgstr "Se selezionato, i nomi di campo saranno stampati come intestazioni della tabella."
2013
"Se selezionato, i nomi di campo saranno stampati come headers della tabella."
2014
1986
2015
#: translators/audiofileimporter.cpp:352
1987
#: translators/audiofileimporter.cpp:352
2016
msgid "Include &bitrate"
1988
msgid "Include &bitrate"
2017
msgstr ""
1989
msgstr "Includi &bitrate"
2018
1990
2019
#: translators/audiofileimporter.cpp:353
1991
#: translators/audiofileimporter.cpp:353
2020
#, fuzzy
2021
msgid "If checked, the bitrate for each track is added to the entries."
1992
msgid "If checked, the bitrate for each track is added to the entries."
2022
msgstr ""
1993
msgstr "Se selezionato,il bitrate dei brani verrà aggiunto agli elementi."
2023
"Se selezionato, i nomi di campo saranno stampati come headers della tabella."
2024
1994
2025
#: translators/csvexporter.cpp:40
1995
#: translators/csvexporter.cpp:40
2026
msgid "CSV"
1996
msgid "CSV"
Lines 2036-2042 msgstr "Opzioni CSV" Link Here
2036
2006
2037
#: translators/csvexporter.cpp:112
2007
#: translators/csvexporter.cpp:112
2038
msgid "Include field titles as column headers"
2008
msgid "Include field titles as column headers"
2039
msgstr "Includi i titoli degli elementi com header della colonna"
2009
msgstr "Includi i titoli degli elementi come intestazione della colonna"
2040
2010
2041
#: translators/csvexporter.cpp:114
2011
#: translators/csvexporter.cpp:114
2042
msgid "If checked, a header row will be added with the field titles."
2012
msgid "If checked, a header row will be added with the field titles."
Lines 2095-2106 msgstr "" Link Here
2095
#: translators/filelistingimporter.cpp:63
2065
#: translators/filelistingimporter.cpp:63
2096
#, fuzzy
2066
#, fuzzy
2097
msgid "Scanning files..."
2067
msgid "Scanning files..."
2098
msgstr "Scansione dei file audio ..."
2068
msgstr "Scansione dei file..."
2099
2069
2100
#: translators/filelistingimporter.cpp:191
2070
#: translators/filelistingimporter.cpp:191
2101
#, fuzzy
2102
msgid "File Listing Options"
2071
msgid "File Listing Options"
2103
msgstr "Opzioni di stampa"
2072
msgstr "Opzioni di indicizzazione dei file"
2104
2073
2105
#: translators/filelistingimporter.cpp:193
2074
#: translators/filelistingimporter.cpp:193
2106
#, fuzzy
2075
#, fuzzy
Lines 2108-2129 msgid "Recursive folder search" Link Here
2108
msgstr "Ricerca ricorsiva"
2077
msgstr "Ricerca ricorsiva"
2109
2078
2110
#: translators/filelistingimporter.cpp:194
2079
#: translators/filelistingimporter.cpp:194
2111
#, fuzzy
2112
msgid "If checked, folders are recursively searched for all files."
2080
msgid "If checked, folders are recursively searched for all files."
2113
msgstr ""
2081
msgstr ""
2114
"Se selezionato, i file audio verranno ricercati ricorsivamente all'interno "
2082
"Se selezionato, i file verranno ricercati ricorsivamente all'interno "
2115
"delle cartelle."
2083
"delle cartelle."
2116
2084
2117
#: translators/filelistingimporter.cpp:198
2085
#: translators/filelistingimporter.cpp:198
2118
#, fuzzy
2119
msgid "Generate file previews"
2086
msgid "Generate file previews"
2120
msgstr "&Genera resoconti ..."
2087
msgstr "&Genera anteprime dei file"
2121
2088
2122
#: translators/filelistingimporter.cpp:199
2089
#: translators/filelistingimporter.cpp:199
2123
msgid ""
2090
msgid ""
2124
"If checked, previews of the file contents are generated, which can slow down "
2091
"If checked, previews of the file contents are generated, which can slow down "
2125
"the folder listing."
2092
"the folder listing."
2126
msgstr ""
2093
msgstr ""
2094
"Se selezionato verranno generate anteprime del contenuto dei file. Questo "
2095
"può rallentare il processo."
2127
2096
2128
#: translators/onixexporter.cpp:63
2097
#: translators/onixexporter.cpp:63
2129
msgid "ONIX Archive"
2098
msgid "ONIX Archive"
Lines 2156-2183 msgstr "" Link Here
2156
"<i>%1</i>.</qt>"
2125
"<i>%1</i>.</qt>"
2157
2126
2158
#: translators/freedbimporter.cpp:196
2127
#: translators/freedbimporter.cpp:196
2159
#, fuzzy
2160
msgid "Select CDDB Entry"
2128
msgid "Select CDDB Entry"
2161
msgstr "Cancella Elemento"
2129
msgstr "Seleziona elemento CDDB"
2162
2130
2163
#: translators/freedbimporter.cpp:197
2131
#: translators/freedbimporter.cpp:197
2164
#, fuzzy
2165
msgid "Select a CDDB entry:"
2132
msgid "Select a CDDB entry:"
2166
msgstr "Seleziona il risultato IMDB"
2133
msgstr "Selezionare un elemento IMDB"
2167
2134
2168
#: translators/freedbimporter.cpp:220
2135
#: translators/freedbimporter.cpp:220
2169
#, fuzzy
2170
msgid "<qt>No records were found to match the CD.</qt>"
2136
msgid "<qt>No records were found to match the CD.</qt>"
2171
msgstr "<qt>No ho trovato elementi da confrontare con il CD.</qt>"
2137
msgstr "<qt>No sono stati trovati elementi corrispondenti al CD.</qt>"
2172
2138
2173
#: translators/freedbimporter.cpp:238
2139
#: translators/freedbimporter.cpp:238
2174
msgid "<qt>Tellico was unable to complete the CD lookup.</qt>"
2140
msgid "<qt>Tellico was unable to complete the CD lookup.</qt>"
2175
msgstr "<qt>Tellico mnon ha potuto completare il controllo del CD.</qt>"
2141
msgstr "<qt>Tellico non ha potuto completare il controllo del CD.</qt>"
2176
2142
2177
#: translators/freedbimporter.cpp:470
2143
#: translators/freedbimporter.cpp:470
2178
#, fuzzy
2179
msgid "Various"
2144
msgid "Various"
2180
msgstr "(Varie)"
2145
msgstr "Varie"
2181
2146
2182
#: translators/freedbimporter.cpp:489
2147
#: translators/freedbimporter.cpp:489
2183
msgid "Audio CD Options"
2148
msgid "Audio CD Options"
Lines 2205-2221 msgstr "" Link Here
2205
2170
2206
#: translators/gcfilmsexporter.cpp:37
2171
#: translators/gcfilmsexporter.cpp:37
2207
msgid "GCfilms"
2172
msgid "GCfilms"
2208
msgstr ""
2173
msgstr "GCfilms"
2209
2174
2210
#: importdialog.cpp:273 translators/gcfilmsexporter.cpp:41
2175
#: importdialog.cpp:273 translators/gcfilmsexporter.cpp:41
2211
#, fuzzy
2212
msgid "*.gcf|GCfilms Data Files (*.gcf)"
2176
msgid "*.gcf|GCfilms Data Files (*.gcf)"
2213
msgstr "*.csv|file CSV (*.csv)"
2177
msgstr "*.gcf|File dati GCfilms(*.gcf)"
2214
2178
2215
#: importdialog.cpp:272 translators/gcfilmsexporter.cpp:43
2179
#: importdialog.cpp:272 translators/gcfilmsexporter.cpp:43
2216
#, fuzzy
2217
msgid "*.gcs|GCstar Data Files (*.gcs)"
2180
msgid "*.gcs|GCstar Data Files (*.gcs)"
2218
msgstr "*.csv|file CSV (*.csv)"
2181
msgstr "*.gcs|File dati GCstar(*.gcs)"
2219
2182
2220
#: translators/xsltexporter.cpp:37
2183
#: translators/xsltexporter.cpp:37
2221
msgid "XSLT"
2184
msgid "XSLT"
Lines 2238-2246 msgid "Alexandria Options" Link Here
2238
msgstr "Opzioni di Alexandria"
2201
msgstr "Opzioni di Alexandria"
2239
2202
2240
#: translators/alexandriaimporter.cpp:195
2203
#: translators/alexandriaimporter.cpp:195
2241
#, fuzzy
2242
msgid "&Library:"
2204
msgid "&Library:"
2243
msgstr "Biblioteca:"
2205
msgstr "&Biblioteca:"
2244
2206
2245
#: translators/bibtexmlexporter.cpp:36
2207
#: translators/bibtexmlexporter.cpp:36
2246
msgid "Bibtexml"
2208
msgid "Bibtexml"
Lines 2276-2289 msgstr "" Link Here
2276
"flusso XML come elementi codificati in base64."
2238
"flusso XML come elementi codificati in base64."
2277
2239
2278
#: translators/importer.h:100
2240
#: translators/importer.h:100
2279
#, fuzzy
2280
msgid "Loading data..."
2241
msgid "Loading data..."
2281
msgstr "Sto importando i dati ..."
2242
msgstr "Sto importando i dati..."
2282
2243
2283
#: translators/importer.h:100
2244
#: translators/importer.h:100
2284
#, fuzzy
2285
msgid "Loading %1..."
2245
msgid "Loading %1..."
2286
msgstr "Passo in rassegna %1 ..."
2246
msgstr "Caricamento di %1..."
2287
2247
2288
#: translators/bibtexexporter.cpp:48
2248
#: translators/bibtexexporter.cpp:48
2289
msgid "Bibtex"
2249
msgid "Bibtex"
Lines 2311-2318 msgstr "Usa il pacchetto URL" Link Here
2311
2271
2312
#: translators/bibtexexporter.cpp:210
2272
#: translators/bibtexexporter.cpp:210
2313
msgid "If checked, any URL fields will be wrapped in a \\url declaration."
2273
msgid "If checked, any URL fields will be wrapped in a \\url declaration."
2314
msgstr ""
2274
msgstr "Se selezionato, qualsiasi campo URL verrà tradotto in un indirizzo \\url."
2315
"Se selezionato, qualsiasi campo URL verrà tradotto in un indirizzo \\url."
2316
2275
2317
#: translators/bibtexexporter.cpp:213
2276
#: translators/bibtexexporter.cpp:213
2318
msgid "Skip entries with empty citation keys"
2277
msgid "Skip entries with empty citation keys"
Lines 2329-2339 msgstr "Stile per le citazioni Bibtex:" Link Here
2329
#: translators/bibtexexporter.cpp:221 translators/bibtexexporter.cpp:228
2288
#: translators/bibtexexporter.cpp:221 translators/bibtexexporter.cpp:228
2330
#: translators/bibtexexporter.cpp:259
2289
#: translators/bibtexexporter.cpp:259
2331
msgid "Braces"
2290
msgid "Braces"
2332
msgstr "Sostegni"
2291
msgstr "Parentesi"
2333
2292
2334
#: translators/bibtexexporter.cpp:222 translators/bibtexexporter.cpp:230
2293
#: translators/bibtexexporter.cpp:222 translators/bibtexexporter.cpp:230
2335
msgid "Quotes"
2294
msgid "Quotes"
2336
msgstr "Citazioni"
2295
msgstr "Virgolette"
2337
2296
2338
#: translators/bibtexexporter.cpp:223
2297
#: translators/bibtexexporter.cpp:223
2339
msgid ""
2298
msgid ""
Lines 2354-2382 msgstr "La prima riga contiene i titoli dei campi" Link Here
2354
2313
2355
#: translators/csvimporter.cpp:236
2314
#: translators/csvimporter.cpp:236
2356
msgid "If checked, the first row is used as field titles."
2315
msgid "If checked, the first row is used as field titles."
2357
msgstr ""
2316
msgstr "Se selezionato, la prima riga verrà utilizzata come titolo dei campi"
2358
"Se selezionato, la prima riga verrà utilizzata per contenere i titoli dei "
2359
"campi."
2360
2317
2361
#: translators/csvimporter.cpp:248
2318
#: translators/csvimporter.cpp:248
2362
#, fuzzy
2363
msgid "&Comma"
2319
msgid "&Comma"
2364
msgstr "Virgola"
2320
msgstr "&Virgola"
2365
2321
2366
#: translators/csvimporter.cpp:254
2322
#: translators/csvimporter.cpp:254
2367
#, fuzzy
2368
msgid "&Semicolon"
2323
msgid "&Semicolon"
2369
msgstr "Punto e virgola"
2324
msgstr "Pun&to e virgola"
2370
2325
2371
#: translators/csvimporter.cpp:259
2326
#: translators/csvimporter.cpp:259
2372
#, fuzzy
2373
msgid "Ta&b"
2327
msgid "Ta&b"
2374
msgstr "Tab"
2328
msgstr "Ta&b"
2375
2329
2376
#: translators/csvimporter.cpp:264
2330
#: translators/csvimporter.cpp:264
2377
#, fuzzy
2378
msgid "Ot&her:"
2331
msgid "Ot&her:"
2379
msgstr "Altro:"
2332
msgstr "&Altro:"
2380
2333
2381
#: translators/csvimporter.cpp:289
2334
#: translators/csvimporter.cpp:289
2382
msgid "The table shows up to the first five lines of the CSV file."
2335
msgid "The table shows up to the first five lines of the CSV file."
Lines 2393-2417 msgstr "" Link Here
2393
"selezionando una colonna  e un campo e premendo il pulsante <i>Set</i>.</qt>"
2346
"selezionando una colonna  e un campo e premendo il pulsante <i>Set</i>.</qt>"
2394
2347
2395
#: translators/csvimporter.cpp:298
2348
#: translators/csvimporter.cpp:298
2396
#, fuzzy
2397
msgid "Co&lumn:"
2349
msgid "Co&lumn:"
2398
msgstr "Colonna:"
2350
msgstr "Co&lonna:"
2399
2351
2400
#: translators/csvimporter.cpp:307
2352
#: translators/csvimporter.cpp:307
2401
#, fuzzy
2402
msgid "&Data field in this column:"
2353
msgid "&Data field in this column:"
2403
msgstr "Campo di dati in questa colonna:"
2354
msgstr "&Campo di dati in questa colonna:"
2404
2355
2405
#: translators/csvimporter.cpp:315
2356
#: translators/csvimporter.cpp:315
2406
#, fuzzy
2407
msgid "&Assign Field"
2357
msgid "&Assign Field"
2408
msgstr "Assegna campo"
2358
msgstr "&Assegna campo"
2409
2359
2410
#: translators/csvimporter.cpp:347
2360
#: translators/csvimporter.cpp:347
2411
msgid ""
2361
msgid ""
2412
"At least one column must be assigned to a field. Only assigned columns will "
2362
"At least one column must be assigned to a field. Only assigned columns will "
2413
"be imported."
2363
"be imported."
2414
msgstr ""
2364
msgstr ""
2365
"Almeno una colonna deve essere assegnata ad un campo. Solo le colonne assegnate "
2366
"verranno importate."
2415
2367
2416
#: collectionfieldsdialog.cpp:409 collectionfieldsdialog.cpp:412
2368
#: collectionfieldsdialog.cpp:409 collectionfieldsdialog.cpp:412
2417
#: translators/csvimporter.cpp:396 translators/csvimporter.cpp:510
2369
#: translators/csvimporter.cpp:396 translators/csvimporter.cpp:510
Lines 2444-2452 msgid "Set PDA backup flag for database" Link Here
2444
msgstr "Imposta la flag di backup del palmare per il database"
2396
msgstr "Imposta la flag di backup del palmare per il database"
2445
2397
2446
#: translators/gcfilmsimporter.cpp:110 translators/gcfilmsimporter.cpp:255
2398
#: translators/gcfilmsimporter.cpp:110 translators/gcfilmsimporter.cpp:255
2447
#, fuzzy
2448
msgid "<qt>The file is not a valid GCstar data file.</qt>"
2399
msgid "<qt>The file is not a valid GCstar data file.</qt>"
2449
msgstr "<qt>Importa la lista dei numeri ISBN da un file di testo.</qt>"
2400
msgstr "<qt>Il file selezionato non è un file GCstar valido.</qt>"
2450
2401
2451
#: mainwindow.cpp:1738 translators/gcfilmsimporter.cpp:248
2402
#: mainwindow.cpp:1738 translators/gcfilmsimporter.cpp:248
2452
#: translators/xsltimporter.cpp:76
2403
#: translators/xsltimporter.cpp:76
Lines 2472-2478 msgstr "*.html|file HTML (*.html)" Link Here
2472
#: groupview.cpp:479 mainwindow.cpp:1591 mainwindow.cpp:1631
2423
#: groupview.cpp:479 mainwindow.cpp:1591 mainwindow.cpp:1631
2473
#: translators/htmlexporter.cpp:316
2424
#: translators/htmlexporter.cpp:316
2474
msgid "People"
2425
msgid "People"
2475
msgstr "Gente"
2426
msgstr "Persone"
2476
2427
2477
#: translators/htmlexporter.cpp:320
2428
#: translators/htmlexporter.cpp:320
2478
msgid "(grouped by %1)"
2429
msgid "(grouped by %1)"
Lines 2484-2495 msgstr "Opzioni HTML" Link Here
2484
2435
2485
#: translators/htmlexporter.cpp:468
2436
#: translators/htmlexporter.cpp:468
2486
msgid "Print field headers"
2437
msgid "Print field headers"
2487
msgstr "Stampa i field headers"
2438
msgstr "Stampa le intestazioni dei campi"
2488
2439
2489
#: configdialog.cpp:307 translators/htmlexporter.cpp:469
2440
#: configdialog.cpp:307 translators/htmlexporter.cpp:469
2490
msgid "If checked, the field names will be printed as table headers."
2441
msgid "If checked, the field names will be printed as table headers."
2491
msgstr ""
2442
msgstr "Se selezionato, i nomi di campo saranno stampati come intestazioni della tabella."
2492
"Se selezionato, i nomi di campo saranno stampati come headers della tabella."
2493
2443
2494
#: translators/htmlexporter.cpp:473
2444
#: translators/htmlexporter.cpp:473
2495
msgid "Group the entries"
2445
msgid "Group the entries"
Lines 2510-2518 msgid "If checked, individual files will be created for each entry." Link Here
2510
msgstr "Se selezionato, verranno creati singoli file per ogni elemento."
2460
msgstr "Se selezionato, verranno creati singoli file per ogni elemento."
2511
2461
2512
#: translators/pdfimporter.cpp:92 translators/pdfimporter.cpp:100
2462
#: translators/pdfimporter.cpp:92 translators/pdfimporter.cpp:100
2513
#, fuzzy
2514
msgid "Tellico was unable to read any metadata from the PDF file."
2463
msgid "Tellico was unable to read any metadata from the PDF file."
2515
msgstr "Impossibile caricare immagini dal file - %1."
2464
msgstr "Tellico non è riuscito a leggere i metadati del file PDF."
2516
2465
2517
#: translators/pdfimporter.cpp:231
2466
#: translators/pdfimporter.cpp:231
2518
msgid ""
2467
msgid ""
Lines 2520-2559 msgid "" Link Here
2520
"CrossRef.org. However, you must create an CrossRef account and add a new "
2469
"CrossRef.org. However, you must create an CrossRef account and add a new "
2521
"data source with your account information."
2470
"data source with your account information."
2522
msgstr ""
2471
msgstr ""
2472
"Tellico è in grado di scaricare le informazioni di elementi con un DOI da "
2473
"CrossRef.org. Tuttavia per fare ciò è necessario creare un acocunt CrossRef "
2474
"e aggiungerlo come fonte di dati."
2523
2475
2524
#: fetcherconfigdialog.cpp:39 fetcherconfigdialog.cpp:49
2476
#: fetcherconfigdialog.cpp:39 fetcherconfigdialog.cpp:49
2525
msgid "Data Source Properties"
2477
msgid "Data Source Properties"
2526
msgstr "Proprietà della fonte dei fati"
2478
msgstr "Proprietà della fonte dei dati"
2527
2479
2528
#: fetcherconfigdialog.cpp:77
2480
#: fetcherconfigdialog.cpp:77
2529
msgid "&Source name: "
2481
msgid "&Source name: "
2530
msgstr "Nome della &fonte: "
2482
msgstr "Nome della &fonte: "
2531
2483
2532
#: fetcherconfigdialog.cpp:79
2484
#: fetcherconfigdialog.cpp:79
2533
msgid ""
2485
msgid "The name identifies the data source and should be unique and informative."
2534
"The name identifies the data source and should be unique and informative."
2535
msgstr ""
2486
msgstr ""
2536
"Il nome identifica òa fonte dei dati e dovrebbe essere univoco e "
2487
"Il nome identifica la fonte dei dati e dovrebbe essere univoco e "
2537
"permetterne la facile identificazione."
2488
"permetterne la facile identificazione."
2538
2489
2539
#: fetcherconfigdialog.cpp:90 fetcherconfigdialog.cpp:94
2490
#: fetcherconfigdialog.cpp:90 fetcherconfigdialog.cpp:94
2540
msgid "Source &type: "
2491
msgid "Source &type: "
2541
msgstr "Tipo della fon&te: "
2492
msgstr "&Tipo della fonte: "
2542
2493
2543
#: fetcherconfigdialog.cpp:97
2494
#: fetcherconfigdialog.cpp:97
2544
msgid "Tellico supports several different data sources."
2495
msgid "Tellico supports several different data sources."
2545
msgstr ""
2496
msgstr "Tellico supporta molti tipi di fonti di dati."
2546
2497
2547
#: fetcherconfigdialog.cpp:111
2498
#: fetcherconfigdialog.cpp:111
2548
msgid "Updating from source should overwrite user data"
2499
msgid "Updating from source should overwrite user data"
2549
msgstr ""
2500
msgstr "Aggiornare dalla fonte scelta potrebbe sovrascrivere i dati attuali"
2550
2501
2551
#: fetcherconfigdialog.cpp:114
2502
#: fetcherconfigdialog.cpp:114
2552
#, fuzzy
2553
msgid "If checked, updating entries will overwrite any existing information."
2503
msgid "If checked, updating entries will overwrite any existing information."
2554
msgstr ""
2504
msgstr "Se selezionato, l'aggiornamento sovrascriverà i dati attuali."
2555
"Se selezionato, gli elementi verranno raggruppati secondo il campo "
2556
"selezionato."
2557
2505
2558
#: filterdialog.cpp:60
2506
#: filterdialog.cpp:60
2559
msgid "Any Field"
2507
msgid "Any Field"
Lines 2569-2579 msgstr "non contiene" Link Here
2569
2517
2570
#: filterdialog.cpp:70
2518
#: filterdialog.cpp:70
2571
msgid "equals"
2519
msgid "equals"
2572
msgstr "equivale"
2520
msgstr "uguale a"
2573
2521
2574
#: filterdialog.cpp:71
2522
#: filterdialog.cpp:71
2575
msgid "does not equal"
2523
msgid "does not equal"
2576
msgstr "non è uguale"
2524
msgstr "diverso da"
2577
2525
2578
#: filterdialog.cpp:72
2526
#: filterdialog.cpp:72
2579
msgid "matches regexp"
2527
msgid "matches regexp"
Lines 2585-2591 msgstr "non corrisponde alla espressione regolare" Link Here
2585
2533
2586
#: filterdialog.cpp:90
2534
#: filterdialog.cpp:90
2587
msgid "Edit..."
2535
msgid "Edit..."
2588
msgstr "Modifica ..."
2536
msgstr "Modifica..."
2589
2537
2590
#: filterdialog.cpp:282
2538
#: filterdialog.cpp:282
2591
msgid "Advanced Filter"
2539
msgid "Advanced Filter"
Lines 2601-2607 msgstr "Verifica &tutti i criteri seguenti" Link Here
2601
2549
2602
#: filterdialog.cpp:301
2550
#: filterdialog.cpp:301
2603
msgid "Match an&y of the following"
2551
msgid "Match an&y of the following"
2604
msgstr "Verifica alme&no uno dei criteri seguenti"
2552
msgstr "Verifica almeno &uno dei criteri seguenti"
2605
2553
2606
#: filterdialog.cpp:311
2554
#: filterdialog.cpp:311
2607
msgid "Filter name:"
2555
msgid "Filter name:"
Lines 2640-2681 msgid "Date" Link Here
2640
msgstr "Data"
2588
msgstr "Data"
2641
2589
2642
#: entryupdater.cpp:81
2590
#: entryupdater.cpp:81
2643
#, fuzzy
2644
msgid "Updating %1..."
2591
msgid "Updating %1..."
2645
msgstr "Passo in rassegna %1 ..."
2592
msgstr "Aggiornamento di %1..."
2646
2593
2647
#: entryupdater.cpp:83
2594
#: entryupdater.cpp:83
2648
#, fuzzy
2649
msgid "Updating entries..."
2595
msgid "Updating entries..."
2650
msgstr "&Modifica elementi ..."
2596
msgstr "Aggiornamento elementi..."
2651
2597
2652
#: entryupdater.cpp:85
2598
#: entryupdater.cpp:85
2653
#, fuzzy
2654
msgid "Update Entries"
2599
msgid "Update Entries"
2655
msgstr "Modifica elementi"
2600
msgstr "Aggiorna elementi"
2656
2601
2657
#: entryupdater.cpp:99
2602
#: entryupdater.cpp:99
2658
msgid "Updating <b>%1</b>..."
2603
msgid "Updating <b>%1</b>..."
2659
msgstr ""
2604
msgstr "Aggiornamento <b>%1</b>..."
2660
2605
2661
#: entryupdater.cpp:209
2606
#: entryupdater.cpp:209
2662
#, fuzzy
2663
msgid "Select Match"
2607
msgid "Select Match"
2664
msgstr "Seleziona il risultato IMDB"
2608
msgstr "Seleziona il risultato"
2665
2609
2666
#: entryupdater.cpp:217
2610
#: entryupdater.cpp:217
2667
msgid ""
2611
msgid ""
2668
"<qt><b>%1</b> returned multiple results which could match <b>%2</b>, the "
2612
"<qt><b>%1</b> returned multiple results which could match <b>%2</b>, the "
2669
"entry currently in the collection. Please select the correct match.</qt>"
2613
"entry currently in the collection. Please select the correct match.</qt>"
2670
msgstr ""
2614
msgstr ""
2615
"<qt><b>%1</b> he restituito più risultati che potrebbero corrispondere a <b>%2</b>, "
2616
"l'attuale elemento della collezione. Per favore seleziona il risultato corretto</qt>"
2671
2617
2672
#: groupview.cpp:252
2618
#: groupview.cpp:252
2673
msgid "Expand All Groups"
2619
msgid "Expand All Groups"
2674
msgstr "Espandi elenco"
2620
msgstr "Espandi tutti i gruppi"
2675
2621
2676
#: groupview.cpp:254
2622
#: groupview.cpp:254
2677
msgid "Collapse All Groups"
2623
msgid "Collapse All Groups"
2678
msgstr "Riduci elenco"
2624
msgstr "Riduci tutti i gruppi"
2679
2625
2680
#: groupview.cpp:256
2626
#: groupview.cpp:256
2681
msgid "Filter by Group"
2627
msgid "Filter by Group"
Lines 2714-2720 msgid "" Link Here
2714
"Append the contents of the imported file to the current collection. This is "
2660
"Append the contents of the imported file to the current collection. This is "
2715
"only possible when the collection types match."
2661
"only possible when the collection types match."
2716
msgstr ""
2662
msgstr ""
2717
"Allega il contenuto del file importato alla collezione attuale. This è "
2663
"Allega il contenuto del file importato alla collezione attuale. Questo è "
2718
"possibile solo se le collezioni sono dello stesso tipo."
2664
"possibile solo se le collezioni sono dello stesso tipo."
2719
2665
2720
#: importdialog.cpp:69
2666
#: importdialog.cpp:69
Lines 2730-2736 msgid "" Link Here
2730
msgstr ""
2676
msgstr ""
2731
"Unifica i contenuti del file importato a quelli della collezione attuale. "
2677
"Unifica i contenuti del file importato a quelli della collezione attuale. "
2732
"Questo è possibile solo quando le collezioni sono dello stesso tipo. Per "
2678
"Questo è possibile solo quando le collezioni sono dello stesso tipo. Per "
2733
"poter essere unificati tutti gli elementi devono corrispondere esattamente."
2679
"poter essere unificati gli elementi devono corrispondere esattamente."
2734
2680
2735
#: importdialog.cpp:95 mainwindow.cpp:318 rc.cpp:9
2681
#: importdialog.cpp:95 mainwindow.cpp:318 rc.cpp:9
2736
#, no-c-format
2682
#, no-c-format
Lines 2742-2760 msgid "*.ris|RIS Files (*.ris)" Link Here
2742
msgstr "*.ris|file RIS (*.ris)"
2688
msgstr "*.ris|file RIS (*.ris)"
2743
2689
2744
#: importdialog.cpp:277
2690
#: importdialog.cpp:277
2745
#, fuzzy
2746
msgid "*.amc|AMC Data Files (*.amc)"
2691
msgid "*.amc|AMC Data Files (*.amc)"
2747
msgstr "*.csv|file CSV (*.csv)"
2692
msgstr "*.amc|AMC Data Files (*.amc)"
2748
2693
2749
#: importdialog.cpp:281
2694
#: importdialog.cpp:281
2750
#, fuzzy
2751
msgid "*.pdf|PDF Files (*.pdf)"
2695
msgid "*.pdf|PDF Files (*.pdf)"
2752
msgstr "*.pdb|File di database Pilot (*.pdb)"
2696
msgstr "*.pdf|File PDF (*.pdf)"
2753
2697
2754
#: importdialog.cpp:285
2698
#: importdialog.cpp:285
2755
#, fuzzy
2756
msgid "*.reflib|Referencer Files (*.reflib)"
2699
msgid "*.reflib|Referencer Files (*.reflib)"
2757
msgstr "*.ris|file RIS (*.ris)"
2700
msgstr "*.reflib|File Referencer (*.reflib)"
2758
2701
2759
#: tellico_strings.cpp:18
2702
#: tellico_strings.cpp:18
2760
#, c-format
2703
#, c-format
Lines 2769-2775 msgstr "Impossibile scrivere sul file - %1." Link Here
2769
#: tellico_strings.cpp:20
2712
#: tellico_strings.cpp:20
2770
#, c-format
2713
#, c-format
2771
msgid "Tellico is unable to upload the file - %1."
2714
msgid "Tellico is unable to upload the file - %1."
2772
msgstr "Impossibile uploadare il file - %1."
2715
msgstr "Impossibile aggiornare il file - %1."
2773
2716
2774
#: tellico_strings.cpp:21
2717
#: tellico_strings.cpp:21
2775
msgid ""
2718
msgid ""
Lines 2795-2801 msgstr "Impossibile caricare immagini dal file - %1." Link Here
2795
#: entryiconview.cpp:287
2738
#: entryiconview.cpp:287
2796
#, fuzzy
2739
#, fuzzy
2797
msgid "&Sort By"
2740
msgid "&Sort By"
2798
msgstr "&Porta: "
2741
msgstr "&Ordina per"
2799
2742
2800
#: loandialog.cpp:40
2743
#: loandialog.cpp:40
2801
msgid "Loan Dialog"
2744
msgid "Loan Dialog"
Lines 2803-2817 msgstr "Modulo per il prestito" Link Here
2803
2746
2804
#: loandialog.cpp:78
2747
#: loandialog.cpp:78
2805
msgid "The following items are being checked out:"
2748
msgid "The following items are being checked out:"
2806
msgstr "I seguenti oggetti sono stati controllati:"
2749
msgstr "I seguenti oggetti sono stati dati in prestito:"
2807
2750
2808
#: loandialog.cpp:84
2751
#: loandialog.cpp:84
2809
msgid "The following item is on-loan:"
2752
msgid "The following item is on-loan:"
2810
msgstr "Il seguente oggetto è stato prestato:"
2753
msgstr "Il seguente oggetto è in presito:"
2811
2754
2812
#: loandialog.cpp:94
2755
#: loandialog.cpp:94
2813
msgid "&Lend to:"
2756
msgid "&Lend to:"
2814
msgstr "pr&esta a:"
2757
msgstr "&Presta a:"
2815
2758
2816
#: loandialog.cpp:107
2759
#: loandialog.cpp:107
2817
msgid ""
2760
msgid ""
Lines 2823-2841 msgstr "" Link Here
2823
2766
2824
#: loandialog.cpp:117
2767
#: loandialog.cpp:117
2825
msgid "&Loan date:"
2768
msgid "&Loan date:"
2826
msgstr "Data del p&restito:"
2769
msgstr "&Data del prestito:"
2827
2770
2828
#: loandialog.cpp:123
2771
#: loandialog.cpp:123
2829
msgid ""
2772
msgid ""
2830
"The check-out date is the date that you lent the items. By default, today's "
2773
"The check-out date is the date that you lent the items. By default, today's "
2831
"date is used."
2774
"date is used."
2832
msgstr ""
2775
msgstr ""
2833
"La dara in cui tu hai prestato gli oggetti. La data di default è quella di "
2776
"La data in cui hai prestato gli oggetti. La data di default è quella di "
2834
"oggi."
2777
"oggi."
2835
2778
2836
#: loandialog.cpp:132
2779
#: loandialog.cpp:132
2837
msgid "D&ue date:"
2780
msgid "D&ue date:"
2838
msgstr "Data di restit&uzione:"
2781
msgstr "Data di &restituzione:"
2839
2782
2840
#: loandialog.cpp:139
2783
#: loandialog.cpp:139
2841
msgid ""
2784
msgid ""
Lines 2856-2862 msgstr "Puoi aggiungere delle note riguardanti il prestito." Link Here
2856
2799
2857
#: loandialog.cpp:154
2800
#: loandialog.cpp:154
2858
msgid "&Add a reminder to the active calendar"
2801
msgid "&Add a reminder to the active calendar"
2859
msgstr "&Aggiungi un memorandum al calendario"
2802
msgstr "&Aggiungi un promemoria al calendario"
2860
2803
2861
#: loandialog.cpp:157
2804
#: loandialog.cpp:157
2862
msgid ""
2805
msgid ""
Lines 2874-2880 msgstr "Crea una nuova collezione" Link Here
2874
2817
2875
#: mainwindow.cpp:192
2818
#: mainwindow.cpp:192
2876
msgid "New &Book Collection"
2819
msgid "New &Book Collection"
2877
msgstr "Nuova Collez&ione di libri"
2820
msgstr "Nuova Collezione di &libri"
2878
2821
2879
#: mainwindow.cpp:194
2822
#: mainwindow.cpp:194
2880
msgid "Create a new book collection"
2823
msgid "Create a new book collection"
Lines 2882-2896 msgstr "Crea una nuova collezione di libri" Link Here
2882
2825
2883
#: mainwindow.cpp:200
2826
#: mainwindow.cpp:200
2884
msgid "New B&ibliography"
2827
msgid "New B&ibliography"
2885
msgstr "Nuova B&ibliografia"
2828
msgstr "Nuova &bibliografia"
2886
2829
2887
#: mainwindow.cpp:202
2830
#: mainwindow.cpp:202
2888
msgid "Create a new bibtex bibliography"
2831
msgid "Create a new bibtex bibliography"
2889
msgstr "Crea una nuova bibliografia bibtex"
2832
msgstr "Crea una nuova bibliografia bibte&x"
2890
2833
2891
#: mainwindow.cpp:208
2834
#: mainwindow.cpp:208
2892
msgid "New &Comic Book Collection"
2835
msgid "New &Comic Book Collection"
2893
msgstr "Nuova &Collezione di fumetti"
2836
msgstr "Nuova collezione di &fumetti"
2894
2837
2895
#: mainwindow.cpp:210
2838
#: mainwindow.cpp:210
2896
msgid "Create a new comic book collection"
2839
msgid "Create a new comic book collection"
Lines 2898-2904 msgstr "Crea una nuova collezione di fumetti" Link Here
2898
2841
2899
#: mainwindow.cpp:216
2842
#: mainwindow.cpp:216
2900
msgid "New &Video Collection"
2843
msgid "New &Video Collection"
2901
msgstr "Nuova collezione &Video"
2844
msgstr "Nuova collezione &video"
2902
2845
2903
#: mainwindow.cpp:218
2846
#: mainwindow.cpp:218
2904
msgid "Create a new video collection"
2847
msgid "Create a new video collection"
Lines 2906-2912 msgstr "Crea una nuova collezione di video" Link Here
2906
2849
2907
#: mainwindow.cpp:224
2850
#: mainwindow.cpp:224
2908
msgid "New &Music Collection"
2851
msgid "New &Music Collection"
2909
msgstr "Nuova Collezione &Musicale"
2852
msgstr "Nuova collezione &musicale"
2910
2853
2911
#: mainwindow.cpp:226
2854
#: mainwindow.cpp:226
2912
msgid "Create a new music collection"
2855
msgid "Create a new music collection"
Lines 2938-2944 msgstr "Crea una nuova collezione di carte collezionabili" Link Here
2938
2881
2939
#: mainwindow.cpp:256
2882
#: mainwindow.cpp:256
2940
msgid "New &Wine Collection"
2883
msgid "New &Wine Collection"
2941
msgstr "Nuova collezione di &Vini"
2884
msgstr "Nuova collezione di vi&ni"
2942
2885
2943
#: mainwindow.cpp:258
2886
#: mainwindow.cpp:258
2944
msgid "Create a new wine collection"
2887
msgid "Create a new wine collection"
Lines 2953-2980 msgid "Create a new game collection" Link Here
2953
msgstr "Crea una nuova collezione di giochi"
2896
msgstr "Crea una nuova collezione di giochi"
2954
2897
2955
#: mainwindow.cpp:272
2898
#: mainwindow.cpp:272
2956
#, fuzzy
2957
msgid "New Boa&rd Game Collection"
2899
msgid "New Boa&rd Game Collection"
2958
msgstr "Nuova collezione di &giochi"
2900
msgstr "Nuova collezione di giochi da tavolo"
2959
2901
2960
#: mainwindow.cpp:274
2902
#: mainwindow.cpp:274
2961
#, fuzzy
2903
#, fuzzy
2962
msgid "Create a new board game collection"
2904
msgid "Create a new board game collection"
2963
msgstr "Crea una nuova collezione di giochi"
2905
msgstr "Crea una nuova collezione di giochi da tavolo"
2964
2906
2965
#: mainwindow.cpp:280
2907
#: mainwindow.cpp:280
2966
#, fuzzy
2967
msgid "New &File Catalog"
2908
msgid "New &File Catalog"
2968
msgstr "Nuovo campo"
2909
msgstr "Nuova collezione di &file"
2969
2910
2970
#: mainwindow.cpp:282
2911
#: mainwindow.cpp:282
2971
#, fuzzy
2912
#, fuzzy
2972
msgid "Create a new file catalog"
2913
msgid "Create a new file catalog"
2973
msgstr "Crea una nuova collezione"
2914
msgstr "Crea una nuova collezione di File"
2974
2915
2975
#: mainwindow.cpp:288
2916
#: mainwindow.cpp:288
2976
msgid "New C&ustom Collection"
2917
msgid "New C&ustom Collection"
2977
msgstr "Nuova colle&zione personalizzata"
2918
msgstr "Nuova collezione &personalizzata"
2978
2919
2979
#: mainwindow.cpp:290
2920
#: mainwindow.cpp:290
2980
msgid "Create a new custom collection"
2921
msgid "Create a new custom collection"
Lines 2994-3008 msgstr "Salva il documento" Link Here
2994
2935
2995
#: mainwindow.cpp:305
2936
#: mainwindow.cpp:305
2996
msgid "Save the document as a different file..."
2937
msgid "Save the document as a different file..."
2997
msgstr "Salva il documento su un file diverso ..."
2938
msgstr "Salva il documento come nuovo file..."
2998
2939
2999
#: mainwindow.cpp:307
2940
#: mainwindow.cpp:307
3000
msgid "Print the contents of the document..."
2941
msgid "Print the contents of the document..."
3001
msgstr "Stampa il documento ..."
2942
msgstr "Stampa il documento..."
3002
2943
3003
#: mainwindow.cpp:309
2944
#: mainwindow.cpp:309
3004
msgid "Quit the application"
2945
msgid "Quit the application"
3005
msgstr "Chiudi il programma"
2946
msgstr "Esci"
3006
2947
3007
#: mainwindow.cpp:320
2948
#: mainwindow.cpp:320
3008
msgid "Import collection data from other formats"
2949
msgid "Import collection data from other formats"
Lines 3010-3016 msgstr "Importa i dati di una collezione da un formato diverso" Link Here
3010
2951
3011
#: mainwindow.cpp:324
2952
#: mainwindow.cpp:324
3012
msgid "Import Tellico Data..."
2953
msgid "Import Tellico Data..."
3013
msgstr "Importa dati Tellico ..."
2954
msgstr "Importa dati Tellico..."
3014
2955
3015
#: mainwindow.cpp:325
2956
#: mainwindow.cpp:325
3016
msgid "Import another Tellico data file"
2957
msgid "Import another Tellico data file"
Lines 3018-3024 msgstr "Importa un altro file Tellico" Link Here
3018
2959
3019
#: mainwindow.cpp:331
2960
#: mainwindow.cpp:331
3020
msgid "Import CSV Data..."
2961
msgid "Import CSV Data..."
3021
msgstr "Importa dati CSV ..."
2962
msgstr "Importa dati CSV..."
3022
2963
3023
#: mainwindow.cpp:332
2964
#: mainwindow.cpp:332
3024
msgid "Import a CSV file"
2965
msgid "Import a CSV file"
Lines 3026-3032 msgstr "Importa un file CSV" Link Here
3026
2967
3027
#: mainwindow.cpp:338
2968
#: mainwindow.cpp:338
3028
msgid "Import MODS Data..."
2969
msgid "Import MODS Data..."
3029
msgstr "Importa dati MODS ..."
2970
msgstr "Importa dati MODS..."
3030
2971
3031
#: mainwindow.cpp:339
2972
#: mainwindow.cpp:339
3032
msgid "Import a MODS data file"
2973
msgid "Import a MODS data file"
Lines 3034-3040 msgstr "Importa un file di dati MODS" Link Here
3034
2975
3035
#: mainwindow.cpp:345
2976
#: mainwindow.cpp:345
3036
msgid "Import Alexandria Data..."
2977
msgid "Import Alexandria Data..."
3037
msgstr "Importa dati Alexandria ..."
2978
msgstr "Importa dati Alexandria..."
3038
2979
3039
#: mainwindow.cpp:346
2980
#: mainwindow.cpp:346
3040
msgid "Import data from the Alexandria book collection manager"
2981
msgid "Import data from the Alexandria book collection manager"
Lines 3043-3068 msgstr "Importa dati dal gestore di collezioni Alexandria" Link Here
3043
#: mainwindow.cpp:352
2984
#: mainwindow.cpp:352
3044
#, fuzzy
2985
#, fuzzy
3045
msgid "Import Delicious Library Data..."
2986
msgid "Import Delicious Library Data..."
3046
msgstr "Importa dati Tellico ..."
2987
msgstr "Importa dati Delicious Library..."
3047
2988
3048
#: mainwindow.cpp:353
2989
#: mainwindow.cpp:353
3049
#, fuzzy
2990
#, fuzzy
3050
msgid "Import data from Delicious Library"
2991
msgid "Import data from Delicious Library"
3051
msgstr "Importa metadati dai file audio"
2992
msgstr "Importa dati da Delicious Library"
3052
2993
3053
#: mainwindow.cpp:359
2994
#: mainwindow.cpp:359
3054
#, fuzzy
3055
msgid "Import Referencer Data..."
2995
msgid "Import Referencer Data..."
3056
msgstr "Importa dati RIS ..."
2996
msgstr "Importa dati Referencer..."
3057
2997
3058
#: mainwindow.cpp:360
2998
#: mainwindow.cpp:360
3059
#, fuzzy
2999
#, fuzzy
3060
msgid "Import data from Referencer"
3000
msgid "Import data from Referencer"
3061
msgstr "Importa un reference file RIS"
3001
msgstr "Importa dati da Referencer"
3062
3002
3063
#: mainwindow.cpp:366
3003
#: mainwindow.cpp:366
3064
msgid "Import Bibtex Data..."
3004
msgid "Import Bibtex Data..."
3065
msgstr "Importa dati Bibtex ..."
3005
msgstr "Importa dati Bibtex..."
3066
3006
3067
#: mainwindow.cpp:367
3007
#: mainwindow.cpp:367
3068
msgid "Import a bibtex bibliography file"
3008
msgid "Import a bibtex bibliography file"
Lines 3070-3076 msgstr "Importa un file di bibliografia Bibtex" Link Here
3070
3010
3071
#: mainwindow.cpp:373
3011
#: mainwindow.cpp:373
3072
msgid "Import Bibtexml Data..."
3012
msgid "Import Bibtexml Data..."
3073
msgstr "Importa dati Bibtexml ..."
3013
msgstr "Importa dati Bibtexml..."
3074
3014
3075
#: mainwindow.cpp:374
3015
#: mainwindow.cpp:374
3076
msgid "Import a Bibtexml bibliography file"
3016
msgid "Import a Bibtexml bibliography file"
Lines 3078-3084 msgstr "Importa un file di bibliografia Bibtexml" Link Here
3078
3018
3079
#: mainwindow.cpp:380
3019
#: mainwindow.cpp:380
3080
msgid "Import RIS Data..."
3020
msgid "Import RIS Data..."
3081
msgstr "Importa dati RIS ..."
3021
msgstr "Importa dati RIS..."
3082
3022
3083
#: mainwindow.cpp:381
3023
#: mainwindow.cpp:381
3084
msgid "Import an RIS reference file"
3024
msgid "Import an RIS reference file"
Lines 3087-3102 msgstr "Importa un reference file RIS" Link Here
3087
#: mainwindow.cpp:387
3027
#: mainwindow.cpp:387
3088
#, fuzzy
3028
#, fuzzy
3089
msgid "Import PDF File..."
3029
msgid "Import PDF File..."
3090
msgstr "Importa file"
3030
msgstr "Importa file PDF..."
3091
3031
3092
#: mainwindow.cpp:388
3032
#: mainwindow.cpp:388
3093
#, fuzzy
3033
#, fuzzy
3094
msgid "Import a PDF file"
3034
msgid "Import a PDF file"
3095
msgstr "Importa un file CSV"
3035
msgstr "Importa un file PDF"
3096
3036
3097
#: mainwindow.cpp:394
3037
#: mainwindow.cpp:394
3098
msgid "Import Audio File Metadata..."
3038
msgid "Import Audio File Metadata..."
3099
msgstr "Importa metadati di un file audio ..."
3039
msgstr "Importa metadati di un file audio..."
3100
3040
3101
#: mainwindow.cpp:395
3041
#: mainwindow.cpp:395
3102
msgid "Import meta-data from audio files"
3042
msgid "Import meta-data from audio files"
Lines 3104-3158 msgstr "Importa metadati dai file audio" Link Here
3104
3044
3105
#: mainwindow.cpp:404
3045
#: mainwindow.cpp:404
3106
msgid "Import Audio CD Data..."
3046
msgid "Import Audio CD Data..."
3107
msgstr "Importa dati CDAudio ..."
3047
msgstr "Importa dati CDAudio..."
3108
3048
3109
#: mainwindow.cpp:405
3049
#: mainwindow.cpp:405
3110
#, fuzzy
3111
msgid "Import audio CD information"
3050
msgid "Import audio CD information"
3112
msgstr "Importa le informazioni CDAudio da FreeDB"
3051
msgstr "Importa informazioni CDAudio"
3113
3052
3114
#: mainwindow.cpp:414
3053
#: mainwindow.cpp:414
3115
#, fuzzy
3054
#, fuzzy
3116
msgid "Import GCstar Data..."
3055
msgid "Import GCstar Data..."
3117
msgstr "Importa dati CSV ..."
3056
msgstr "Importa dati GCstar..."
3118
3057
3119
#: mainwindow.cpp:415
3058
#: mainwindow.cpp:415
3120
#, fuzzy
3059
#, fuzzy
3121
msgid "Import a GCstar data file"
3060
msgid "Import a GCstar data file"
3122
msgstr "Importa un file di dati MODS"
3061
msgstr "Importa un file GCstar"
3123
3062
3124
#: mainwindow.cpp:421
3063
#: mainwindow.cpp:421
3125
#, fuzzy
3064
#, fuzzy
3126
msgid "Import Griffith Data..."
3065
msgid "Import Griffith Data..."
3127
msgstr "Importa dati CSV ..."
3066
msgstr "Importa dati Griffith..."
3128
3067
3129
#: mainwindow.cpp:422
3068
#: mainwindow.cpp:422
3130
#, fuzzy
3069
#, fuzzy
3131
msgid "Import a Griffith database"
3070
msgid "Import a Griffith database"
3132
msgstr "Esporta in un database PilotDB"
3071
msgstr "Importa un database Griffith"
3133
3072
3134
#: mainwindow.cpp:428
3073
#: mainwindow.cpp:428
3135
#, fuzzy
3074
#, fuzzy
3136
msgid "Import Ant Movie Catalog Data..."
3075
msgid "Import Ant Movie Catalog Data..."
3137
msgstr "Importa dati CDAudio ..."
3076
msgstr "Importa dati da un Movie Catlog Ant..."
3138
3077
3139
#: mainwindow.cpp:429
3078
#: mainwindow.cpp:429
3140
#, fuzzy
3141
msgid "Import an Ant Movie Catalog data file"
3079
msgid "Import an Ant Movie Catalog data file"
3142
msgstr "Importa un altro file Tellico"
3080
msgstr "Importa dati da un file Movie Catlog Ant"
3143
3081
3144
#: mainwindow.cpp:435
3082
#: mainwindow.cpp:435
3145
#, fuzzy
3146
msgid "Import File Listing..."
3083
msgid "Import File Listing..."
3147
msgstr "Importa file"
3084
msgstr "Importa lista file..."
3148
3085
3149
#: mainwindow.cpp:436
3086
#: mainwindow.cpp:436
3150
msgid "Import information about files in a folder"
3087
msgid "Import information about files in a folder"
3151
msgstr ""
3088
msgstr "Importa le informazioni su un file in una cartella"
3152
3089
3153
#: mainwindow.cpp:442
3090
#: mainwindow.cpp:442
3154
msgid "Import XSL Transform..."
3091
msgid "Import XSL Transform..."
3155
msgstr "Importa XSL Transform ..."
3092
msgstr "Importa XSL Transform..."
3156
3093
3157
#: mainwindow.cpp:443
3094
#: mainwindow.cpp:443
3158
msgid "Import using an XSL Transform"
3095
msgid "Import using an XSL Transform"
Lines 3170-3176 msgstr "Esporta i dati della collezione in un altro formato" Link Here
3170
#: mainwindow.cpp:461
3107
#: mainwindow.cpp:461
3171
#, fuzzy
3108
#, fuzzy
3172
msgid "Export to XML..."
3109
msgid "Export to XML..."
3173
msgstr "Esporta in HTML ..."
3110
msgstr "Esporta in XML..."
3174
3111
3175
#: mainwindow.cpp:462
3112
#: mainwindow.cpp:462
3176
#, fuzzy
3113
#, fuzzy
Lines 3179-3194 msgstr "Esporta in un file XML di Tellico" Link Here
3179
3116
3180
#: mainwindow.cpp:468
3117
#: mainwindow.cpp:468
3181
msgid "Export to Zip..."
3118
msgid "Export to Zip..."
3182
msgstr "Esporta in Zip ..."
3119
msgstr "Esporta in Zip..."
3183
3120
3184
#: mainwindow.cpp:469
3121
#: mainwindow.cpp:469
3185
#, fuzzy
3122
#, fuzzy
3186
msgid "Export to a Tellico Zip file"
3123
msgid "Export to a Tellico Zip file"
3187
msgstr "Esporta in un file XML di Tellico"
3124
msgstr "Esporta in un file Zip di Tellico"
3188
3125
3189
#: mainwindow.cpp:475
3126
#: mainwindow.cpp:475
3190
msgid "Export to HTML..."
3127
msgid "Export to HTML..."
3191
msgstr "Esporta in HTML ..."
3128
msgstr "Esporta in HTML..."
3192
3129
3193
#: mainwindow.cpp:476
3130
#: mainwindow.cpp:476
3194
msgid "Export to an HTML file"
3131
msgid "Export to an HTML file"
Lines 3196-3202 msgstr "Esporta in un file HTML" Link Here
3196
3133
3197
#: mainwindow.cpp:482
3134
#: mainwindow.cpp:482
3198
msgid "Export to CSV..."
3135
msgid "Export to CSV..."
3199
msgstr "Esporta in CSV ..."
3136
msgstr "Esporta in CSV..."
3200
3137
3201
#: mainwindow.cpp:483
3138
#: mainwindow.cpp:483
3202
msgid "Export to a comma-separated values file"
3139
msgid "Export to a comma-separated values file"
Lines 3204-3210 msgstr "Esporta su un file Comma-Separated Values" Link Here
3204
3141
3205
#: mainwindow.cpp:489
3142
#: mainwindow.cpp:489
3206
msgid "Export to PilotDB..."
3143
msgid "Export to PilotDB..."
3207
msgstr "Esporta in PilotDB ..."
3144
msgstr "Esporta in PilotDB..."
3208
3145
3209
#: mainwindow.cpp:490
3146
#: mainwindow.cpp:490
3210
msgid "Export to a PilotDB database"
3147
msgid "Export to a PilotDB database"
Lines 3212-3218 msgstr "Esporta in un database PilotDB" Link Here
3212
3149
3213
#: mainwindow.cpp:496
3150
#: mainwindow.cpp:496
3214
msgid "Export to Alexandria..."
3151
msgid "Export to Alexandria..."
3215
msgstr "Esporta in Alexandria ..."
3152
msgstr "Esporta in Alexandria..."
3216
3153
3217
#: mainwindow.cpp:497
3154
#: mainwindow.cpp:497
3218
msgid "Export to an Alexandria library"
3155
msgid "Export to an Alexandria library"
Lines 3220-3226 msgstr "Esporta in una biblioteca Alexandria" Link Here
3220
3157
3221
#: mainwindow.cpp:503
3158
#: mainwindow.cpp:503
3222
msgid "Export to Bibtex..."
3159
msgid "Export to Bibtex..."
3223
msgstr "Esporta in Bibtex ..."
3160
msgstr "Esporta in Bibtex..."
3224
3161
3225
#: mainwindow.cpp:504
3162
#: mainwindow.cpp:504
3226
msgid "Export to a bibtex file"
3163
msgid "Export to a bibtex file"
Lines 3228-3234 msgstr "Esporta come file Bibtex" Link Here
3228
3165
3229
#: mainwindow.cpp:510
3166
#: mainwindow.cpp:510
3230
msgid "Export to Bibtexml..."
3167
msgid "Export to Bibtexml..."
3231
msgstr "Esporta in Bibtexml ..."
3168
msgstr "Esporta in Bibtexml..."
3232
3169
3233
#: mainwindow.cpp:511
3170
#: mainwindow.cpp:511
3234
msgid "Export to a Bibtexml file"
3171
msgid "Export to a Bibtexml file"
Lines 3236-3242 msgstr "Esporta come file Bibtexml" Link Here
3236
3173
3237
#: mainwindow.cpp:517
3174
#: mainwindow.cpp:517
3238
msgid "Export to ONIX..."
3175
msgid "Export to ONIX..."
3239
msgstr "Esporta in ONIX ..."
3176
msgstr "Esporta in ONIX..."
3240
3177
3241
#: mainwindow.cpp:518
3178
#: mainwindow.cpp:518
3242
msgid "Export to an ONIX file"
3179
msgid "Export to an ONIX file"
Lines 3245-3270 msgstr "Esporta in un file ONIX" Link Here
3245
#: mainwindow.cpp:524
3182
#: mainwindow.cpp:524
3246
#, fuzzy
3183
#, fuzzy
3247
msgid "Export to GCfilms..."
3184
msgid "Export to GCfilms..."
3248
msgstr "Esporta in CSV ..."
3185
msgstr "Esporta in GCfilms..."
3249
3186
3250
#: mainwindow.cpp:525
3187
#: mainwindow.cpp:525
3251
#, fuzzy
3188
#, fuzzy
3252
msgid "Export to a GCfilms data file"
3189
msgid "Export to a GCfilms data file"
3253
msgstr "Esporta come file Bibtex"
3190
msgstr "Esporta come file GCfilms"
3254
3191
3255
#: mainwindow.cpp:531
3192
#: mainwindow.cpp:531
3256
#, fuzzy
3193
#, fuzzy
3257
msgid "Export to GCstar..."
3194
msgid "Export to GCstar..."
3258
msgstr "Esporta in CSV ..."
3195
msgstr "Esporta in GCstar..."
3259
3196
3260
#: mainwindow.cpp:532
3197
#: mainwindow.cpp:532
3261
#, fuzzy
3198
#, fuzzy
3262
msgid "Export to a GCstar data file"
3199
msgid "Export to a GCstar data file"
3263
msgstr "Esporta come file Bibtex"
3200
msgstr "Esporta come file GCstar"
3264
3201
3265
#: mainwindow.cpp:536
3202
#: mainwindow.cpp:536
3266
msgid "Export XSL Transform..."
3203
msgid "Export XSL Transform..."
3267
msgstr "Esporta XSL Transform ..."
3204
msgstr "Esporta XSL Transform..."
3268
3205
3269
#: mainwindow.cpp:537
3206
#: mainwindow.cpp:537
3270
msgid "Export using an XSL Transform"
3207
msgid "Export using an XSL Transform"
Lines 3284-3306 msgstr "Incolla il contenuto degli appunti" Link Here
3284
3221
3285
#: mainwindow.cpp:552
3222
#: mainwindow.cpp:552
3286
msgid "Select all the entries in the collection"
3223
msgid "Select all the entries in the collection"
3287
msgstr "Seleziona tutti i campi della collezione"
3224
msgstr "Seleziona tutti gli elementi della collezione"
3288
3225
3289
#: mainwindow.cpp:554
3226
#: mainwindow.cpp:554
3290
msgid "Deselect all the entries in the collection"
3227
msgid "Deselect all the entries in the collection"
3291
msgstr "Deseleziona tutti i campi della collezione"
3228
msgstr "Deseleziona tutti gli elementi della collezione"
3292
3229
3293
#: mainwindow.cpp:556
3230
#: mainwindow.cpp:556
3294
msgid "Internet Search..."
3231
msgid "Internet Search..."
3295
msgstr "Ricerca su Internet ..."
3232
msgstr "Cerca su Internet..."
3296
3233
3297
#: mainwindow.cpp:559
3234
#: mainwindow.cpp:559
3298
msgid "Search the internet..."
3235
msgid "Search the internet..."
3299
msgstr "Ricerca attraverso Internet ..."
3236
msgstr "Ricerca attraverso Internet..."
3300
3237
3301
#: mainwindow.cpp:561
3238
#: mainwindow.cpp:561
3302
msgid "Advanced &Filter..."
3239
msgid "Advanced &Filter..."
3303
msgstr "&Filtro avanzato ..."
3240
msgstr "&Filtro avanzato..."
3304
3241
3305
#: mainwindow.cpp:564 mainwindow.cpp:719
3242
#: mainwindow.cpp:564 mainwindow.cpp:719
3306
msgid "Filter the collection"
3243
msgid "Filter the collection"
Lines 3308-3314 msgstr "Applica filtri" Link Here
3308
3245
3309
#: mainwindow.cpp:569
3246
#: mainwindow.cpp:569
3310
msgid "&New Entry..."
3247
msgid "&New Entry..."
3311
msgstr "&Nuovo Elemento ..."
3248
msgstr "&Nuovo Elemento..."
3312
3249
3313
#: mainwindow.cpp:572
3250
#: mainwindow.cpp:572
3314
msgid "Create a new entry"
3251
msgid "Create a new entry"
Lines 3316-3331 msgstr "Crea un nuovo elemento" Link Here
3316
3253
3317
#: controller.cpp:620 mainwindow.cpp:573
3254
#: controller.cpp:620 mainwindow.cpp:573
3318
msgid "&Edit Entry..."
3255
msgid "&Edit Entry..."
3319
msgstr "&Modifica elemento ..."
3256
msgstr "&Modifica elemento..."
3320
3257
3321
#: mainwindow.cpp:576
3258
#: mainwindow.cpp:576
3322
msgid "Edit the selected entries"
3259
msgid "Edit the selected entries"
3323
msgstr "Modifica gli elementi selezionati"
3260
msgstr "Modifica gli elementi selezionati"
3324
3261
3325
#: controller.cpp:621 mainwindow.cpp:577
3262
#: controller.cpp:621 mainwindow.cpp:577
3326
#, fuzzy
3327
msgid "D&uplicate Entry"
3263
msgid "D&uplicate Entry"
3328
msgstr "Duplica elemento"
3264
msgstr "D&uplica elemento"
3329
3265
3330
#: mainwindow.cpp:580
3266
#: mainwindow.cpp:580
3331
msgid "Copy the selected entries"
3267
msgid "Copy the selected entries"
Lines 3342-3357 msgstr "Cancella gli elementi selezionati" Link Here
3342
#: mainwindow.cpp:585
3278
#: mainwindow.cpp:585
3343
#, fuzzy
3279
#, fuzzy
3344
msgid "&Merge Entries"
3280
msgid "&Merge Entries"
3345
msgstr "Cance&lla elementi"
3281
msgstr "&Fondi elementi"
3346
3282
3347
#: mainwindow.cpp:588
3283
#: mainwindow.cpp:588
3348
#, fuzzy
3284
#, fuzzy
3349
msgid "Merge the selected entries"
3285
msgid "Merge the selected entries"
3350
msgstr "Cancella gli elementi selezionati"
3286
msgstr "Fondi gli elementi selezionati"
3351
3287
3352
#: mainwindow.cpp:591
3288
#: mainwindow.cpp:591
3353
msgid "&Generate Reports..."
3289
msgid "&Generate Reports..."
3354
msgstr "&Genera resoconti ..."
3290
msgstr "&Genera resoconti..."
3355
3291
3356
#: mainwindow.cpp:594
3292
#: mainwindow.cpp:594
3357
msgid "Generate collection reports"
3293
msgid "Generate collection reports"
Lines 3359-3381 msgstr "Genera resoconti sulla collezione" Link Here
3359
3295
3360
#: mainwindow.cpp:595
3296
#: mainwindow.cpp:595
3361
msgid "Check-&out..."
3297
msgid "Check-&out..."
3362
msgstr "&Verifica ..."
3298
msgstr "&Presta..."
3363
3299
3364
#: mainwindow.cpp:598
3300
#: mainwindow.cpp:598
3365
msgid "Check-out the selected items"
3301
msgid "Check-out the selected items"
3366
msgstr "Controlla gli elementi selezionati"
3302
msgstr "Presta gli elementi selezionati"
3367
3303
3368
#: mainwindow.cpp:599
3304
#: mainwindow.cpp:599
3369
msgid "Check-&in"
3305
msgid "Check-&in"
3370
msgstr "Reg&istrazione"
3306
msgstr "Riconsegnato"
3371
3307
3372
#: mainwindow.cpp:602
3308
#: mainwindow.cpp:602
3373
msgid "Check-in the selected items"
3309
msgid "Check-in the selected items"
3374
msgstr "Registra gli elementi selezionati"
3310
msgstr "Segna come riconsegnati gli elementi selezionati"
3375
3311
3376
#: mainwindow.cpp:604
3312
#: mainwindow.cpp:604
3377
msgid "&Rename Collection..."
3313
msgid "&Rename Collection..."
3378
msgstr "&Rinomina Collezione ..."
3314
msgstr "&Rinomina Collezione..."
3379
3315
3380
#: mainwindow.cpp:607
3316
#: mainwindow.cpp:607
3381
msgid "Rename the collection"
3317
msgid "Rename the collection"
Lines 3383-3393 msgstr "Rinomina la collezione" Link Here
3383
3319
3384
#: mainwindow.cpp:608
3320
#: mainwindow.cpp:608
3385
msgid "Collection &Fields..."
3321
msgid "Collection &Fields..."
3386
msgstr "Campi della colle&zione ..."
3322
msgstr "Campi della colle&zione..."
3387
3323
3388
#: mainwindow.cpp:611
3324
#: mainwindow.cpp:611
3389
msgid "Modify the collection fields"
3325
msgid "Modify the collection fields"
3390
msgstr "Modifica i campi della tabella della collezione"
3326
msgstr "Modifica i campi della collezione"
3391
3327
3392
#: mainwindow.cpp:612
3328
#: mainwindow.cpp:612
3393
msgid "Convert to &Bibliography"
3329
msgid "Convert to &Bibliography"
Lines 3399-3424 msgstr "Trasforma una collezione di libri in una bibliografia" Link Here
3399
3335
3400
#: mainwindow.cpp:616
3336
#: mainwindow.cpp:616
3401
msgid "String &Macros..."
3337
msgid "String &Macros..."
3402
msgstr "String &Macros..."
3338
msgstr "Stringhe &Macro..."
3403
3339
3404
#: mainwindow.cpp:619
3340
#: mainwindow.cpp:619
3405
msgid "Edit the bibtex string macros"
3341
msgid "Edit the bibtex string macros"
3406
msgstr "Edita le string macros Bibtex"
3342
msgstr "Edita le stringhe macro Bibtex"
3407
3343
3408
#: mainwindow.cpp:626
3344
#: mainwindow.cpp:626
3409
#, fuzzy
3345
#, fuzzy
3410
msgid "Copy Bibtex to Cli&pboard"
3346
msgid "Copy Bibtex to Cli&pboard"
3411
msgstr "Copia il testo selezionato negli appunti"
3347
msgstr "Copia dati Bibtex negli appunti"
3412
3348
3413
#: mainwindow.cpp:627
3349
#: mainwindow.cpp:627
3414
#, fuzzy
3350
#, fuzzy
3415
msgid "Copy bibtex citations to the clipboard"
3351
msgid "Copy bibtex citations to the clipboard"
3416
msgstr "Copia il testo selezionato negli appunti"
3352
msgstr "Copia le citazioni Bibtex negli appunti"
3417
3353
3418
#: mainwindow.cpp:632
3354
#: mainwindow.cpp:632
3419
#, fuzzy
3355
#, fuzzy
3420
msgid "Cite Entry in &LyX"
3356
msgid "Cite Entry in &LyX"
3421
msgstr "&Cita elemento"
3357
msgstr "Cita elemento in &LyX"
3422
3358
3423
#: mainwindow.cpp:633
3359
#: mainwindow.cpp:633
3424
msgid "Cite the selected entries in LyX"
3360
msgid "Cite the selected entries in LyX"
Lines 3427-3452 msgstr "Cita l'elemento selezionato in LyX" Link Here
3427
#: mainwindow.cpp:638
3363
#: mainwindow.cpp:638
3428
#, fuzzy
3364
#, fuzzy
3429
msgid "Ci&te Entry in OpenOffice.org"
3365
msgid "Ci&te Entry in OpenOffice.org"
3430
msgstr "&Cita elemento"
3366
msgstr "Cita elemento in &OpenOffice.org"
3431
3367
3432
#: mainwindow.cpp:639
3368
#: mainwindow.cpp:639
3433
#, fuzzy
3434
msgid "Cite the selected entries in OpenOffice.org"
3369
msgid "Cite the selected entries in OpenOffice.org"
3435
msgstr "Cita l'elemento selezionato in LyX"
3370
msgstr "Cita gli elementi selezionato in OpenOffice.org"
3436
3371
3437
#: controller.cpp:622 mainwindow.cpp:647 rc.cpp:18
3372
#: controller.cpp:622 mainwindow.cpp:647 rc.cpp:18
3438
#, fuzzy, no-c-format
3373
#, fuzzy, no-c-format
3439
msgid "&Update Entry"
3374
msgid "&Update Entry"
3440
msgstr "&Cita elemento"
3375
msgstr "&Aggiorna elemento"
3441
3376
3442
#: mainwindow.cpp:652
3377
#: mainwindow.cpp:652
3443
#, fuzzy
3378
#, fuzzy
3444
msgid "All Sources"
3379
msgid "All Sources"
3445
msgstr "Fonte"
3380
msgstr "Tutte le fonti"
3446
3381
3447
#: mainwindow.cpp:653
3382
#: mainwindow.cpp:653
3448
msgid "Update entry data from all available sources"
3383
msgid "Update entry data from all available sources"
3449
msgstr ""
3384
msgstr "Aggiorna l'elemento da tutte le fonti disponibili"
3450
3385
3451
#: mainwindow.cpp:665
3386
#: mainwindow.cpp:665
3452
msgid "Show Grou&p View"
3387
msgid "Show Grou&p View"
Lines 3494-3500 msgstr "Selezione di &gruppo" Link Here
3494
3429
3495
#: mainwindow.cpp:700
3430
#: mainwindow.cpp:700
3496
msgid "Change the grouping of the collection"
3431
msgid "Change the grouping of the collection"
3497
msgstr "Cambia il modo di raggruppamento"
3432
msgstr "Cambia il modo di raggruppamento della collezione"
3498
3433
3499
#: filterview.cpp:33 filterview.cpp:85 mainwindow.cpp:702 mainwindow.cpp:717
3434
#: filterview.cpp:33 filterview.cpp:85 mainwindow.cpp:702 mainwindow.cpp:717
3500
msgid "Filter"
3435
msgid "Filter"
Lines 3506-3512 msgstr "Cancella filtro" Link Here
3506
3441
3507
#: mainwindow.cpp:710
3442
#: mainwindow.cpp:710
3508
msgid "Filter here..."
3443
msgid "Filter here..."
3509
msgstr "Filtra qui ..."
3444
msgstr "Filtra qui..."
3510
3445
3511
#: mainwindow.cpp:768
3446
#: mainwindow.cpp:768
3512
msgid "Groups"
3447
msgid "Groups"
Lines 3531-3537 msgstr "" Link Here
3531
#: mainwindow.cpp:831
3466
#: mainwindow.cpp:831
3532
#, fuzzy
3467
#, fuzzy
3533
msgid "Welcome to the Tellico Collection Manager"
3468
msgid "Welcome to the Tellico Collection Manager"
3534
msgstr "Tellico - un gestore delle collezioni personali per KDE"
3469
msgstr "Tellico - un gestore di collezioni personali per KDE"
3535
3470
3536
#: mainwindow.cpp:833
3471
#: mainwindow.cpp:833
3537
msgid ""
3472
msgid ""
Lines 3541-3554 msgid "" Link Here
3541
"by <a href=\"tc:///edit_search_internet\">downloading data</a> from various "
3476
"by <a href=\"tc:///edit_search_internet\">downloading data</a> from various "
3542
"Internet sources.</h3>"
3477
"Internet sources.</h3>"
3543
msgstr ""
3478
msgstr ""
3479
"<h3>Tellico è uno strumento di gestione di collezioni di libri, materiale video, "
3480
"musica, e qualsiasi altra cosa tu voglia catalogare.</h3><h3>I nuovi elementi possono "
3481
"essere aggiunti alla tua collezione <a href=\"tc:///coll_new_entry\">manualmente</a> "
3482
"o <a href=\"tc:///edit_search_internet\">recuperando i dati</a> da diverse fonti su "
3483
"internet.</h3>"
3544
3484
3545
#: mainwindow.cpp:1066
3485
#: mainwindow.cpp:1066
3546
msgid "Creating new document..."
3486
msgid "Creating new document..."
3547
msgstr "Creazione nuovo documento ..."
3487
msgstr "Creazione nuovo documento..."
3548
3488
3549
#: mainwindow.cpp:1098 mainwindow.cpp:1117 mainwindow.cpp:1135
3489
#: mainwindow.cpp:1098 mainwindow.cpp:1117 mainwindow.cpp:1135
3550
msgid "Opening file..."
3490
msgid "Opening file..."
3551
msgstr "Sto aprendo il file ..."
3491
msgstr "Apertura file..."
3552
3492
3553
#: mainwindow.cpp:1108
3493
#: mainwindow.cpp:1108
3554
msgid "Open File"
3494
msgid "Open File"
Lines 3556-3562 msgstr "Apri file" Link Here
3556
3496
3557
#: document.cpp:192 mainwindow.cpp:1215
3497
#: document.cpp:192 mainwindow.cpp:1215
3558
msgid "Saving file..."
3498
msgid "Saving file..."
3559
msgstr "Sto salvando il  file ..."
3499
msgstr "Salvataggio file..."
3560
3500
3561
#: mainwindow.cpp:1226
3501
#: mainwindow.cpp:1226
3562
msgid ""
3502
msgid ""
Lines 3565-3602 msgid "" Link Here
3565
"data directory to improve performance?</p><p>Your choice can always be "
3505
"data directory to improve performance?</p><p>Your choice can always be "
3566
"changed in the configuration dialog.</p></qt>"
3506
"changed in the configuration dialog.</p></qt>"
3567
msgstr ""
3507
msgstr ""
3508
"<qt><p>Stai savando un file con molte immagini, e questo può rallentare molto"
3509
"Tellico. Vuoi salvare le immagini separatamente nella cartella dati di Tellico "
3510
"per aumentare le prestazioni del programma?</p><p>Potrai sempre cambiare la tua "
3511
"scelta nella finestra di configurazione.</p></qt>"
3568
3512
3569
#: mainwindow.cpp:1231
3513
#: mainwindow.cpp:1231
3570
msgid "Save Images Separately"
3514
msgid "Save Images Separately"
3571
msgstr ""
3515
msgstr "Salva immagini separatamente"
3572
3516
3573
#: mainwindow.cpp:1232
3517
#: mainwindow.cpp:1232
3574
msgid "Save Images in File"
3518
msgid "Save Images in File"
3575
msgstr ""
3519
msgstr "Salva immagini nel file"
3576
3520
3577
#: mainwindow.cpp:1265
3521
#: mainwindow.cpp:1265
3578
msgid "Saving file with a new filename..."
3522
msgid "Saving file with a new filename..."
3579
msgstr "Sto salvando il file con un nuovo nome ..."
3523
msgstr "Salvataggio file con un nuovo nome..."
3580
3524
3581
#: mainwindow.cpp:1303 mainwindow.cpp:1353
3525
#: mainwindow.cpp:1303 mainwindow.cpp:1353
3582
msgid "Printing..."
3526
msgid "Printing..."
3583
msgstr "In stampa ..."
3527
msgstr "In stampa..."
3584
3528
3585
#: mainwindow.cpp:1312
3529
#: mainwindow.cpp:1312
3586
msgid ""
3530
msgid ""
3587
"The collection is currently being filtered to show a limited subset of the "
3531
"The collection is currently being filtered to show a limited subset of the "
3588
"entries. Only the visible entries will be printed. Continue?"
3532
"entries. Only the visible entries will be printed. Continue?"
3589
msgstr ""
3533
msgstr ""
3590
"Sto filtrando la collezione per mostrare solo un numero ridotto di elementi. "
3534
"La collezione è attualmente filtrata per mostrare solo un numero limitato di elementi. "
3591
"Solo gli elementi visibili saranno stampati. Continuare?"
3535
"Solo gli elementi visibili saranno stampati. Continuare?"
3592
3536
3593
#: mainwindow.cpp:1337
3537
#: mainwindow.cpp:1337
3594
msgid "Processing document..."
3538
msgid "Processing document..."
3595
msgstr "Sto processando il documento ..."
3539
msgstr "Analisi documento..."
3596
3540
3597
#: mainwindow.cpp:1360
3541
#: mainwindow.cpp:1360
3598
msgid "Exiting..."
3542
msgid "Exiting..."
3599
msgstr "Chiusura ..."
3543
msgstr "Chiusura in corso..."
3600
3544
3601
#: mainwindow.cpp:1498
3545
#: mainwindow.cpp:1498
3602
#, c-format
3546
#, c-format
Lines 3605-3619 msgstr "Elementi totali: %1" Link Here
3605
3549
3606
#: mainwindow.cpp:1505
3550
#: mainwindow.cpp:1505
3607
msgid "(%1 filtered; %2 selected)"
3551
msgid "(%1 filtered; %2 selected)"
3608
msgstr "(%1 filtrato, %2 selezionato)"
3552
msgstr "(%1 filtrati, %2 selezionati)"
3609
3553
3610
#: mainwindow.cpp:1508
3554
#: mainwindow.cpp:1508
3611
msgid "(%1 filtered)"
3555
msgid "(%1 filtered)"
3612
msgstr "(%1 filtrato)"
3556
msgstr "(%1 filtrati)"
3613
3557
3614
#: mainwindow.cpp:1511
3558
#: mainwindow.cpp:1511
3615
msgid "(%1 selected)"
3559
msgid "(%1 selected)"
3616
msgstr "(%1 selezionato)"
3560
msgstr "(%1 selezionati)"
3617
3561
3618
#: mainwindow.cpp:1679
3562
#: mainwindow.cpp:1679
3619
#, c-format
3563
#, c-format
Lines 3631-3637 msgstr "Controlla la tua installazione, grazie." Link Here
3631
3575
3632
#: mainwindow.cpp:1849
3576
#: mainwindow.cpp:1849
3633
msgid "Importing data..."
3577
msgid "Importing data..."
3634
msgstr "Sto importando i dati ..."
3578
msgstr "Sto importando i dati..."
3635
3579
3636
#: mainwindow.cpp:1858
3580
#: mainwindow.cpp:1858
3637
msgid "Import File"
3581
msgid "Import File"
Lines 3640-3650 msgstr "Importa file" Link Here
3640
#: mainwindow.cpp:1864
3584
#: mainwindow.cpp:1864
3641
#, fuzzy
3585
#, fuzzy
3642
msgid "Import Directory"
3586
msgid "Import Directory"
3643
msgstr "Importatore"
3587
msgstr "Importa directory"
3644
3588
3645
#: mainwindow.cpp:1885
3589
#: mainwindow.cpp:1885
3646
msgid "Exporting data..."
3590
msgid "Exporting data..."
3647
msgstr "Sto esportando i dati ..."
3591
msgstr "Sto esportando i dati..."
3648
3592
3649
#: mainwindow.cpp:1907
3593
#: mainwindow.cpp:1907
3650
msgid "Export As"
3594
msgid "Export As"
Lines 3665-3671 msgstr "Stringa" Link Here
3665
#: mainwindow.cpp:1999
3609
#: mainwindow.cpp:1999
3666
#, fuzzy
3610
#, fuzzy
3667
msgid "Creating citations..."
3611
msgid "Creating citations..."
3668
msgstr "Sto tagliando ..."
3612
msgstr "Creazione citazioni..."
3669
3613
3670
#: mainwindow.cpp:2104
3614
#: mainwindow.cpp:2104
3671
msgid "Filters"
3615
msgid "Filters"
Lines 3676-3682 msgid "" Link Here
3676
"<qt>The <i>Filter View</i> shows the entries which meet certain filter "
3620
"<qt>The <i>Filter View</i> shows the entries which meet certain filter "
3677
"rules.</qt>"
3621
"rules.</qt>"
3678
msgstr ""
3622
msgstr ""
3679
"<qt>La <i>vista filtrata</i> mostra gli elementi che soddisfano certi filtri "
3623
"<qt>La <i>vista filtrata</i> mostra gli elementi che soddisfano i criteri del filtro "
3680
"di ricerca.</qt>"
3624
"di ricerca.</qt>"
3681
3625
3682
#: mainwindow.cpp:2121
3626
#: mainwindow.cpp:2121
Lines 3694-3706 msgstr "" Link Here
3694
#: mainwindow.cpp:2255
3638
#: mainwindow.cpp:2255
3695
#, c-format
3639
#, c-format
3696
msgid "Update entry data from %1"
3640
msgid "Update entry data from %1"
3697
msgstr ""
3641
msgstr "Aggiorna elemento da %1"
3698
3642
3699
#: mainwindow.cpp:2274
3643
#: mainwindow.cpp:2274
3700
msgid ""
3644
msgid ""
3701
"Tellico can only import one file of this type at a time. Only %1 will be "
3645
"Tellico can only import one file of this type at a time. Only %1 will be "
3702
"imported."
3646
"imported."
3703
msgstr ""
3647
msgstr ""
3648
"Tellico può importare un solo file alla volta di questo tipo. Solo "
3649
"%1 verrà importato."
3704
3650
3705
#: filehandler.cpp:193
3651
#: filehandler.cpp:193
3706
#, c-format
3652
#, c-format
Lines 3708-3715 msgid "Tellico is unable to load the image - %1." Link Here
3708
msgstr "Impossibile caricare l'immagine - %1."
3654
msgstr "Impossibile caricare l'immagine - %1."
3709
3655
3710
#: filehandler.cpp:207
3656
#: filehandler.cpp:207
3711
msgid ""
3657
msgid "A file named \"%1\" already exists. Are you sure you want to overwrite it?"
3712
"A file named \"%1\" already exists. Are you sure you want to overwrite it?"
3713
msgstr "Il file \"%1\" esiste già. lo vuoi sovrascrivere?"
3658
msgstr "Il file \"%1\" esiste già. lo vuoi sovrascrivere?"
3714
3659
3715
#: filehandler.cpp:210
3660
#: filehandler.cpp:210
Lines 3738-3762 msgstr "Vuoi davvero cancellare questi elementi?" Link Here
3738
3683
3739
#: controller.cpp:443
3684
#: controller.cpp:443
3740
msgid "Delete Multiple Entries"
3685
msgid "Delete Multiple Entries"
3741
msgstr "Cancella diversi elementi"
3686
msgstr "Cancella più elementi"
3742
3687
3743
#: controller.cpp:626
3688
#: controller.cpp:626
3744
msgid "&Edit Entries..."
3689
msgid "&Edit Entries..."
3745
msgstr "&Modifica elementi ..."
3690
msgstr "&Modifica elementi..."
3746
3691
3747
#: controller.cpp:627
3692
#: controller.cpp:627
3748
#, fuzzy
3749
msgid "D&uplicate Entries"
3693
msgid "D&uplicate Entries"
3750
msgstr "Duplica elemento"
3694
msgstr "D&uplica elementi"
3751
3695
3752
#: controller.cpp:628
3696
#: controller.cpp:628
3753
#, fuzzy
3697
#, fuzzy
3754
msgid "&Update Entries"
3698
msgid "&Update Entries"
3755
msgstr "Modifica elementi"
3699
msgstr "&Aggiorna elementi"
3756
3700
3757
#: controller.cpp:629
3701
#: controller.cpp:629
3758
msgid "&Delete Entries"
3702
msgid "&Delete Entries"
3759
msgstr "Cance&lla elementi"
3703
msgstr "&Cancella elementi"
3760
3704
3761
#: controller.cpp:684
3705
#: controller.cpp:684
3762
msgid ""
3706
msgid ""
Lines 3770-3776 msgstr "" Link Here
3770
3714
3771
#: calendarhandler.cpp:167
3715
#: calendarhandler.cpp:167
3772
msgid "Default Calendar"
3716
msgid "Default Calendar"
3773
msgstr "Calendario di default"
3717
msgstr "Calendario predefinito"
3774
3718
3775
#: calendarhandler.cpp:175
3719
#: calendarhandler.cpp:175
3776
msgid ""
3720
msgid ""
Lines 3817-3825 msgid "File to open" Link Here
3817
msgstr "File da aprire"
3761
msgstr "File da aprire"
3818
3762
3819
#: main.cpp:42
3763
#: main.cpp:42
3820
#, fuzzy
3821
msgid "Data source scripts"
3764
msgid "Data source scripts"
3822
msgstr "Opzioni della fonte dei dati"
3765
msgstr "Script della fonte di dati"
3823
3766
3824
#: main.cpp:44
3767
#: main.cpp:44
3825
msgid "Icons"
3768
msgid "Icons"
Lines 3831-3847 msgstr "Autore della libreria btparse" Link Here
3831
3774
3832
#: main.cpp:48
3775
#: main.cpp:48
3833
msgid "Code examples and general inspiration"
3776
msgid "Code examples and general inspiration"
3834
msgstr ""
3777
msgstr "Esempi di codice e ispirazioni in generale"
3835
3778
3836
#: main.cpp:50
3779
#: main.cpp:50
3837
#, fuzzy
3838
msgid "Author of libcsv library"
3780
msgid "Author of libcsv library"
3839
msgstr "Autore della libreria btparse"
3781
msgstr "Autore della libreria libcsv"
3840
3782
3841
#: main.cpp:52
3783
#: main.cpp:52
3842
#, fuzzy
3784
#, fuzzy
3843
msgid "Author of rtf2html library"
3785
msgid "Author of rtf2html library"
3844
msgstr "Autore della libreria btparse"
3786
msgstr "Autore della libreria rtf2html"
3845
3787
3846
#: collectionfieldsdialog.cpp:56
3788
#: collectionfieldsdialog.cpp:56
3847
msgid "Collection Fields"
3789
msgid "Collection Fields"
Lines 3865-3871 msgstr "Aggiungi un campo alla collezione" Link Here
3865
msgid ""
3807
msgid ""
3866
"_: Delete Field\n"
3808
"_: Delete Field\n"
3867
"&Delete"
3809
"&Delete"
3868
msgstr "Cance&lla"
3810
msgstr "&Cancella"
3869
3811
3870
#: collectionfieldsdialog.cpp:89
3812
#: collectionfieldsdialog.cpp:89
3871
msgid "Remove a field from the collection"
3813
msgid "Remove a field from the collection"
Lines 3944-3951 msgid "An <i>Image</i> field holds a picture. " Link Here
3944
msgstr "Un campo <i>Immagine</i> contiene immagini. "
3886
msgstr "Un campo <i>Immagine</i> contiene immagini. "
3945
3887
3946
#: collectionfieldsdialog.cpp:144
3888
#: collectionfieldsdialog.cpp:144
3947
msgid ""
3889
msgid "A <i>Date</i> field can be used for values with a day, month, and year. "
3948
"A <i>Date</i> field can be used for values with a day, month, and year. "
3949
msgstr ""
3890
msgstr ""
3950
"In un campo <i>Data</i> si possono inserire valori comprensivi di giorno, "
3891
"In un campo <i>Data</i> si possono inserire valori comprensivi di giorno, "
3951
"mese e anno. "
3892
"mese e anno. "
Lines 3997-4014 msgstr "" Link Here
3997
"sostituiti nella stringa."
3938
"sostituiti nella stringa."
3998
3939
3999
#: collectionfieldsdialog.cpp:193
3940
#: collectionfieldsdialog.cpp:193
4000
#, fuzzy
4001
msgid "&Default value:"
3941
msgid "&Default value:"
4002
msgstr "Calendario di default"
3942
msgstr "Predefiniti"
4003
3943
4004
#: collectionfieldsdialog.cpp:198
3944
#: collectionfieldsdialog.cpp:198
4005
msgid "<qt>A default value can be set for new entries.</qt>"
3945
msgid "<qt>A default value can be set for new entries.</qt>"
4006
msgstr ""
3946
msgstr "<qt>Si può inserire un valore di default per i nuovi elementi.</qt>"
4007
3947
4008
#: collectionfieldsdialog.cpp:203
3948
#: collectionfieldsdialog.cpp:203
4009
#, fuzzy
3949
#, fuzzy
4010
msgid "A&llowed values:"
3950
msgid "A&llowed values:"
4011
msgstr "A&mmessi:"
3951
msgstr "Valori a&mmessi:"
4012
3952
4013
#: collectionfieldsdialog.cpp:208
3953
#: collectionfieldsdialog.cpp:208
4014
#, fuzzy
3954
#, fuzzy
Lines 4018-4024 msgid "" Link Here
4018
"semi-colon, for example: \"dog; cat; mouse\"</qt>"
3958
"semi-colon, for example: \"dog; cat; mouse\"</qt>"
4019
msgstr ""
3959
msgstr ""
4020
"<qt>Per i campi di tipo <i>Scelta</i>, questi sono gli unici valori ammessi. "
3960
"<qt>Per i campi di tipo <i>Scelta</i>, questi sono gli unici valori ammessi. "
4021
"Vengono inseriti in una combo box.</qt>"
3961
"Vengono inseriti in menù a tendina. I valori inseriti devo essere separati da "
3962
" un punto e vigola, ad esempio: \"gatto; cane; topo\"</qt>"
4022
3963
4023
#: collectionfieldsdialog.cpp:215
3964
#: collectionfieldsdialog.cpp:215
4024
msgid "Extended &properties:"
3965
msgid "Extended &properties:"
Lines 4026-4032 msgstr "Pro&prietà estese:" Link Here
4026
3967
4027
#: collectionfieldsdialog.cpp:217
3968
#: collectionfieldsdialog.cpp:217
4028
msgid "&Set..."
3969
msgid "&Set..."
4029
msgstr "Impo&sta ..."
3970
msgstr "Impo&sta..."
4030
3971
4031
#: collectionfieldsdialog.cpp:221
3972
#: collectionfieldsdialog.cpp:221
4032
msgid ""
3973
msgid ""
Lines 4054-4064 msgstr "" Link Here
4054
3995
4055
#: collectionfieldsdialog.cpp:230
3996
#: collectionfieldsdialog.cpp:230
4056
msgid "Allow auto-capitalization only"
3997
msgid "Allow auto-capitalization only"
4057
msgstr "Permetti il maiuscolo automatico"
3998
msgstr "Permetti solo il maiuscolo automatico"
4058
3999
4059
#: collectionfieldsdialog.cpp:231
4000
#: collectionfieldsdialog.cpp:231
4060
msgid ""
4001
msgid "This option allows the field to be capitalized, but not specially formatted."
4061
"This option allows the field to be capitalized, but not specially formatted."
4062
msgstr ""
4002
msgstr ""
4063
"Questa opzione permette che gli elementi del campo vengano automaticamente "
4003
"Questa opzione permette che gli elementi del campo vengano automaticamente "
4064
"resi maiuscoli, senza però cambiare la formattazione."
4004
"resi maiuscoli, senza però cambiare la formattazione."
Lines 4113-4135 msgid "" Link Here
4113
"separated by a semi-colon."
4053
"separated by a semi-colon."
4114
msgstr ""
4054
msgstr ""
4115
"Se selezionato, Tellico analizzerà i valori del campo cercando valori "
4055
"Se selezionato, Tellico analizzerà i valori del campo cercando valori "
4116
"multipli, i valori devono essere diviso da un punto e virgola."
4056
"multipli, i valori devono essere divisi da un punto e virgola."
4117
4057
4118
#: collectionfieldsdialog.cpp:248
4058
#: collectionfieldsdialog.cpp:248
4119
msgid "Allow grouping"
4059
msgid "Allow grouping"
4120
msgstr "Ammetti il raggruppamento"
4060
msgstr "Ammetti il raggruppamento"
4121
4061
4122
#: collectionfieldsdialog.cpp:249
4062
#: collectionfieldsdialog.cpp:249
4123
msgid ""
4063
msgid "If checked, this field may be used to group the entries in the group view."
4124
"If checked, this field may be used to group the entries in the group view."
4125
msgstr ""
4064
msgstr ""
4126
"Se selezionato, il campo può essere usato per ragruppare gli elementi nella "
4065
"Se selezionato, il campo può essere usato per ragruppare gli elementi nella "
4127
"vista di gruppo."
4066
"vista di gruppo."
4128
4067
4129
#: collectionfieldsdialog.cpp:263
4068
#: collectionfieldsdialog.cpp:263
4130
msgid "Revert the selected field's properties to the default values."
4069
msgid "Revert the selected field's properties to the default values."
4131
msgstr ""
4070
msgstr "Ripristina le proprietà dei campi selezionati secondo i valori predefiniti."
4132
"Ripristina le proprietà dei campi selezionati secondo i valori predefiniti."
4133
4071
4134
#: collectionfieldsdialog.cpp:306
4072
#: collectionfieldsdialog.cpp:306
4135
msgid "Modify Fields"
4073
msgid "Modify Fields"
Lines 4151-4157 msgstr "Usa i valori modificati" Link Here
4151
4089
4152
#: collectionfieldsdialog.cpp:745
4090
#: collectionfieldsdialog.cpp:745
4153
msgid "Revert Field Properties"
4091
msgid "Revert Field Properties"
4154
msgstr "Inverti le proprietà del campo"
4092
msgstr "Ripristina valori predefiniti"
4155
4093
4156
#: collectionfieldsdialog.cpp:746
4094
#: collectionfieldsdialog.cpp:746
4157
msgid ""
4095
msgid ""
Lines 4163-4169 msgstr "" Link Here
4163
4101
4164
#: collectionfieldsdialog.cpp:749
4102
#: collectionfieldsdialog.cpp:749
4165
msgid "Revert"
4103
msgid "Revert"
4166
msgstr "Ripristinare"
4104
msgstr "Ripristina"
4167
4105
4168
#: collectionfieldsdialog.cpp:872
4106
#: collectionfieldsdialog.cpp:872
4169
msgid "Extended Field Properties"
4107
msgid "Extended Field Properties"
Lines 4175-4181 msgstr "Esiste già un campo con questo titolo. Inserisci un titolo diverso." Link Here
4175
4113
4176
#: collectionfieldsdialog.cpp:909
4114
#: collectionfieldsdialog.cpp:909
4177
msgid "<qt>The category may not be empty. Please enter a category.</qt>"
4115
msgid "<qt>The category may not be empty. Please enter a category.</qt>"
4178
msgstr "<qt>La categoria non può essere nulla, Inserisci una categoria. </qt>"
4116
msgstr "<qt>La categoria non può essere vuota. Inserisci una categoria.</qt>"
4179
4117
4180
#: collectionfieldsdialog.cpp:917
4118
#: collectionfieldsdialog.cpp:917
4181
msgid ""
4119
msgid ""
Lines 4183-4198 msgid "" Link Here
4183
"<em>Table</em> or <em>Image</em> field. Please enter a different "
4121
"<em>Table</em> or <em>Image</em> field. Please enter a different "
4184
"category.</qt>"
4122
"category.</qt>"
4185
msgstr ""
4123
msgstr ""
4186
"<qt>Un campo potrebbe non essere nella stessa categoria del campo "
4124
"<qt>Alcuni tipi di campo non possono essere nella stessa categoria dei campi "
4187
"<em>Paragrafo</em>, <em>Tabella</em> o <em>Immagine</em>. Inserisci un'altra "
4125
"<em>Paragrafo</em>, <em>Tabella</em> o <em>Immagine</em>. Inseriscili in un'altra categoria.</qt>"
4188
"categoria.</qt>"
4189
4126
4190
#: collectionfieldsdialog.cpp:925
4127
#: collectionfieldsdialog.cpp:925
4191
msgid ""
4128
msgid ""
4192
"A field's title may not be the same as an existing category. Please enter a "
4129
"A field's title may not be the same as an existing category. Please enter a "
4193
"different title."
4130
"different title."
4194
msgstr ""
4131
msgstr ""
4195
"Il titolo non un campo non può essere uguale al nome di una categoria. "
4132
"Il titolo di un campo non può essere uguale al nome di una categoria. "
4196
"Inserisci un altro titolo."
4133
"Inserisci un altro titolo."
4197
4134
4198
#: collectionfieldsdialog.cpp:937
4135
#: collectionfieldsdialog.cpp:937
Lines 4203-4221 msgid "" Link Here
4203
msgstr ""
4140
msgstr ""
4204
"Il valore di un campo di valutazione dev'essere compreso tra 1 e 10 e il "
4141
"Il valore di un campo di valutazione dev'essere compreso tra 1 e 10 e il "
4205
"limite minimo dev'essere necessariamente inferiore a quello massimo. "
4142
"limite minimo dev'essere necessariamente inferiore a quello massimo. "
4206
"Inserisci proprietà alte e basse differenti."
4143
"Inserisci valori diversi per minimo e massimo."
4207
4144
4208
#: collectionfieldsdialog.cpp:952
4145
#: collectionfieldsdialog.cpp:952
4209
#, fuzzy
4210
msgid "Tables are limited to a maximum of ten columns."
4146
msgid "Tables are limited to a maximum of ten columns."
4211
msgstr "Le tabelle hanno un limite massimo di cinque colonne."
4147
msgstr "Le tabelle hanno un limite massimo di dieci colonne."
4212
4148
4213
#: document.cpp:158
4149
#: document.cpp:158
4214
msgid ""
4150
msgid ""
4215
"The current file has been modified.\n"
4151
"The current file has been modified.\n"
4216
"Do you want to save it?"
4152
"Do you want to save it?"
4217
msgstr ""
4153
msgstr ""
4218
"Il file attuale �stato modificato.\n"
4154
"Il file attuale è stato modificato.\n"
4219
"Lo vuoi salvare?"
4155
"Lo vuoi salvare?"
4220
4156
4221
#: document.cpp:160 entryeditdialog.cpp:660
4157
#: document.cpp:160 entryeditdialog.cpp:660
Lines 4224-4230 msgstr "Modifiche non salvate" Link Here
4224
4160
4225
#: borrowerdialog.cpp:42
4161
#: borrowerdialog.cpp:42
4226
msgid "Select Borrower"
4162
msgid "Select Borrower"
4227
msgstr "Seleziona a chi hai fatto il prestito "
4163
msgstr "Seleziona la persona a cui hai fatto il prestito"
4228
4164
4229
#: configdialog.cpp:103
4165
#: configdialog.cpp:103
4230
msgid "Configure Tellico"
4166
msgid "Configure Tellico"
Lines 4243-4249 msgstr "Riapri il file all'avvio" Link Here
4243
msgid ""
4179
msgid ""
4244
"If checked, the file that was last open will be re-opened at program "
4180
"If checked, the file that was last open will be re-opened at program "
4245
"start-up."
4181
"start-up."
4246
msgstr "Se selezionato, l'ultimo file aperto dev'essere riaperto all'avvio."
4182
msgstr "Se selezionato, l'ultimo file usato verrà riaperto all'avvio."
4247
4183
4248
#: configdialog.cpp:207
4184
#: configdialog.cpp:207
4249
#, fuzzy
4185
#, fuzzy
Lines 4259-4265 msgstr "" Link Here
4259
#: configdialog.cpp:213
4195
#: configdialog.cpp:213
4260
#, fuzzy
4196
#, fuzzy
4261
msgid "Image Storage Options"
4197
msgid "Image Storage Options"
4262
msgstr "Opzioni dell'immagine"
4198
msgstr "Opzioni di salvataggio delle immagini"
4263
4199
4264
#: configdialog.cpp:214
4200
#: configdialog.cpp:214
4265
#, fuzzy
4201
#, fuzzy
Lines 4268-4278 msgstr "Includi immagini nell'archivio" Link Here
4268
4204
4269
#: configdialog.cpp:215
4205
#: configdialog.cpp:215
4270
msgid "Store images in common application directory"
4206
msgid "Store images in common application directory"
4271
msgstr ""
4207
msgstr "Salva le immagini nella cartella dell'apllicazione"
4272
4208
4273
#: configdialog.cpp:216
4209
#: configdialog.cpp:216
4274
msgid "Store images in directory relative to data file"
4210
msgid "Store images in directory relative to data file"
4275
msgstr ""
4211
msgstr "Salva le immagini in una cartella relativa al file della collezione"
4276
4212
4277
#: configdialog.cpp:217
4213
#: configdialog.cpp:217
4278
msgid ""
4214
msgid ""
Lines 4280-4299 msgid "" Link Here
4280
"slowly, stored in the Tellico application directory, or stored in a "
4216
"slowly, stored in the Tellico application directory, or stored in a "
4281
"directory in the same location as the data file."
4217
"directory in the same location as the data file."
4282
msgstr ""
4218
msgstr ""
4219
"Le immagini possono essere salvate nel file della collezione, con la possibilità "
4220
"di rallentare l'esecuzione del programma, oppure nella cartella di Tellico o in "
4221
"una cartella nello stesso percorso del file dati."
4283
4222
4284
#: configdialog.cpp:224 configdialog.cpp:299
4223
#: configdialog.cpp:224 configdialog.cpp:299
4285
msgid "Formatting Options"
4224
msgid "Formatting Options"
4286
msgstr "Opzioni di formattazione"
4225
msgstr "Opzioni di formattazione"
4287
4226
4288
#: configdialog.cpp:227
4227
#: configdialog.cpp:227
4289
#, fuzzy
4290
msgid "Auto capitalize &titles and names"
4228
msgid "Auto capitalize &titles and names"
4291
msgstr "Maiuscolo automatico in titoli e nomi"
4229
msgstr "Maiuscolo automatico per titoli e nomi"
4292
4230
4293
#: configdialog.cpp:228
4231
#: configdialog.cpp:228
4294
msgid "If checked, titles and names will be automatically capitalized."
4232
msgid "If checked, titles and names will be automatically capitalized."
4295
msgstr ""
4233
msgstr "Se selezionato, titoli e nomi diventeranno automaticamente maiuscoli."
4296
"Se selezionato, i titoli e gli autori diventeranno automaticamente maiuscoli."
4297
4234
4298
#: configdialog.cpp:232
4235
#: configdialog.cpp:232
4299
#, fuzzy
4236
#, fuzzy
Lines 4302-4308 msgstr "Formattazione automatica di titoli e nomi" Link Here
4302
4239
4303
#: configdialog.cpp:233 configdialog.cpp:303
4240
#: configdialog.cpp:233 configdialog.cpp:303
4304
msgid "If checked, titles and names will be automatically formatted."
4241
msgid "If checked, titles and names will be automatically formatted."
4305
msgstr "Se selezionato, titoli e nomi verranno ordinati automaticamente."
4242
msgstr "Se selezionato, titoli e nomi verranno formattati automaticamente."
4306
4243
4307
#: configdialog.cpp:240
4244
#: configdialog.cpp:240
4308
#, fuzzy
4245
#, fuzzy
Lines 4315-4322 msgid "" Link Here
4315
"<qt>A list of words which should not be capitalized. Multiple values should "
4252
"<qt>A list of words which should not be capitalized. Multiple values should "
4316
"be separated by a semi-colon.</qt>"
4253
"be separated by a semi-colon.</qt>"
4317
msgstr ""
4254
msgstr ""
4318
"<qt>Una lista di prefissi, separati da punto e virgola,  da usare nei "
4255
"<qt>Una lista di prefissi, separati da punto e virgola, che non verranno resi "
4319
"cognomi.</qt>"
4256
"in maiuscolo.</qt>"
4320
4257
4321
#: configdialog.cpp:249
4258
#: configdialog.cpp:249
4322
#, fuzzy
4259
#, fuzzy
Lines 4343-4349 msgid "" Link Here
4343
"values should be separated by a semi-colon.</qt>"
4280
"values should be separated by a semi-colon.</qt>"
4344
msgstr ""
4281
msgstr ""
4345
"<qt>Una lista di suffissi ,separati da punto e virgola, da usare nei nomi di "
4282
"<qt>Una lista di suffissi ,separati da punto e virgola, da usare nei nomi di "
4346
"persona</qt>"
4283
"persona.</qt>"
4347
4284
4348
#: configdialog.cpp:268
4285
#: configdialog.cpp:268
4349
#, fuzzy
4286
#, fuzzy
Lines 4372-4380 msgid "&Format titles and names" Link Here
4372
msgstr "Formatta titoli e nomi"
4309
msgstr "Formatta titoli e nomi"
4373
4310
4374
#: configdialog.cpp:306
4311
#: configdialog.cpp:306
4375
#, fuzzy
4376
msgid "&Print field headers"
4312
msgid "&Print field headers"
4377
msgstr "Stampa i field headers"
4313
msgstr "Stampa le intestazioni dei campi"
4378
4314
4379
#: configdialog.cpp:310
4315
#: configdialog.cpp:310
4380
msgid "Grouping Options"
4316
msgid "Grouping Options"
Lines 4387-4393 msgstr "Raggruppa gli elementi" Link Here
4387
4323
4388
#: configdialog.cpp:317
4324
#: configdialog.cpp:317
4389
msgid "Image Options"
4325
msgid "Image Options"
4390
msgstr "Opzioni dell'immagine"
4326
msgstr "Opzioni immagini"
4391
4327
4392
#: configdialog.cpp:323
4328
#: configdialog.cpp:323
4393
#, fuzzy
4329
#, fuzzy
Lines 4411-4418 msgstr "Altezza massima delle immagini:" Link Here
4411
msgid ""
4347
msgid ""
4412
"The maximum height of the images in the printout. The aspect ration is "
4348
"The maximum height of the images in the printout. The aspect ration is "
4413
"preserved."
4349
"preserved."
4414
msgstr ""
4350
msgstr "L'altezza massima delle immagini in stampa. Le proporzioni sono rispettate."
4415
"L'altezza massima delle immagini in stampa. Le proporzioni sono rispettate."
4416
4351
4417
#: configdialog.cpp:355
4352
#: configdialog.cpp:355
4418
msgid "Templates"
4353
msgid "Templates"
Lines 4432-4522 msgid "" Link Here
4432
"Select the template to use for the current type of collections. Not all "
4367
"Select the template to use for the current type of collections. Not all "
4433
"templates will use the font and color settings."
4368
"templates will use the font and color settings."
4434
msgstr ""
4369
msgstr ""
4370
"Seleziona il template da usare per questo tipo di collezione. Non tutti "
4371
"i template hanno impostazioni per font e colori."
4435
4372
4436
#: configdialog.cpp:380
4373
#: configdialog.cpp:380
4437
#, fuzzy
4438
msgid "&Preview..."
4374
msgid "&Preview..."
4439
msgstr "&Nuovo ..."
4375
msgstr "&Anteprima..."
4440
4376
4441
#: configdialog.cpp:381
4377
#: configdialog.cpp:381
4442
msgid "Show a preview of the template"
4378
msgid "Show a preview of the template"
4443
msgstr ""
4379
msgstr "Mostra anteprima template"
4444
4380
4445
#: configdialog.cpp:398
4381
#: configdialog.cpp:398
4446
#, fuzzy
4447
msgid "Font Options"
4382
msgid "Font Options"
4448
msgstr "Opzioni di formattazione"
4383
msgstr "Opzioni carattere"
4449
4384
4450
#: configdialog.cpp:405
4385
#: configdialog.cpp:405
4451
#, fuzzy
4452
msgid "Font:"
4386
msgid "Font:"
4453
msgstr "Mese"
4387
msgstr "Carattere:"
4454
4388
4455
#: configdialog.cpp:411
4389
#: configdialog.cpp:411
4456
msgid "This font is passed to the template used in the Entry View."
4390
msgid "This font is passed to the template used in the Entry View."
4457
msgstr ""
4391
msgstr "Questo font sarà usato nel template per la vista degli elementi."
4458
4392
4459
#: configdialog.cpp:415
4393
#: configdialog.cpp:415
4460
#, fuzzy
4394
#, fuzzy
4461
msgid "Size:"
4395
msgid "Size:"
4462
msgstr "Autografato"
4396
msgstr "Dimensione:"
4463
4397
4464
#: configdialog.cpp:425
4398
#: configdialog.cpp:425
4465
#, fuzzy
4399
#, fuzzy
4466
msgid "Color Options"
4400
msgid "Color Options"
4467
msgstr "Opzioni CSV"
4401
msgstr "Opzioni colore"
4468
4402
4469
#: configdialog.cpp:432
4403
#: configdialog.cpp:432
4470
msgid "Background color:"
4404
msgid "Background color:"
4471
msgstr ""
4405
msgstr "Colore di sfondo:"
4472
4406
4473
#: configdialog.cpp:438
4407
#: configdialog.cpp:438
4474
msgid "This color is passed to the template used in the Entry View."
4408
msgid "This color is passed to the template used in the Entry View."
4475
msgstr ""
4409
msgstr "Questo colore sarà usato nel template per la vista degli elementi."
4476
4410
4477
#: configdialog.cpp:442
4411
#: configdialog.cpp:442
4478
msgid "Text color:"
4412
msgid "Text color:"
4479
msgstr ""
4413
msgstr "Colore testo:"
4480
4414
4481
#: configdialog.cpp:451
4415
#: configdialog.cpp:451
4482
msgid "Highlight color:"
4416
msgid "Highlight color:"
4483
msgstr ""
4417
msgstr "Colore evidenziatore"
4484
4418
4485
#: configdialog.cpp:460
4419
#: configdialog.cpp:460
4486
msgid "Highlighted text color:"
4420
msgid "Highlighted text color:"
4487
msgstr ""
4421
msgstr "Colore del testo evidenziato"
4488
4422
4489
#: configdialog.cpp:469
4423
#: configdialog.cpp:469
4490
#, fuzzy
4424
#, fuzzy
4491
msgid "Manage Templates"
4425
msgid "Manage Templates"
4492
msgstr "Template"
4426
msgstr "Gestisci Template"
4493
4427
4494
#: configdialog.cpp:475
4428
#: configdialog.cpp:475
4495
msgid "Install..."
4429
msgid "Install..."
4496
msgstr ""
4430
msgstr "Installa..."
4497
4431
4498
#: configdialog.cpp:478
4432
#: configdialog.cpp:478
4499
msgid "Click to install a new template directly."
4433
msgid "Click to install a new template directly."
4500
msgstr ""
4434
msgstr "Fare click per installare direttamente un nuovo template."
4501
4435
4502
#: configdialog.cpp:481 configdialog.cpp:537
4436
#: configdialog.cpp:481 configdialog.cpp:537
4503
msgid "Download..."
4437
msgid "Download..."
4504
msgstr ""
4438
msgstr "Download..."
4505
4439
4506
#: configdialog.cpp:484
4440
#: configdialog.cpp:484
4507
#, fuzzy
4508
msgid "Click to download additional templates via the Internet."
4441
msgid "Click to download additional templates via the Internet."
4509
msgstr ""
4442
msgstr "Fare click per scaricare altri template via internet."
4510
"Clicca per aprire una casella in cui inserire o modificare i valori ISBN."
4511
4443
4512
#: configdialog.cpp:487
4444
#: configdialog.cpp:487
4513
#, fuzzy
4514
msgid "Delete..."
4445
msgid "Delete..."
4515
msgstr "Seleziona immagine ..."
4446
msgstr "Rimuovi..."
4516
4447
4517
#: configdialog.cpp:490
4448
#: configdialog.cpp:490
4518
msgid "Click to select and remove installed templates."
4449
msgid "Click to select and remove installed templates."
4519
msgstr ""
4450
msgstr "Fare click per selezionare e rimuovere i template installati."
4520
4451
4521
#: configdialog.cpp:501
4452
#: configdialog.cpp:501
4522
msgid "Data Sources"
4453
msgid "Data Sources"
Lines 4524-4530 msgstr "Fonti dei dati" Link Here
4524
4455
4525
#: configdialog.cpp:501
4456
#: configdialog.cpp:501
4526
msgid "Data Source Options"
4457
msgid "Data Source Options"
4527
msgstr "Opzioni della fonte dei dati"
4458
msgstr "Opzioni fonti di dati"
4528
4459
4529
#: configdialog.cpp:506 fetchdialog.cpp:171
4460
#: configdialog.cpp:506 fetchdialog.cpp:171
4530
msgid "Source"
4461
msgid "Source"
Lines 4532-4603 msgstr "Fonte" Link Here
4532
4463
4533
#: configdialog.cpp:517
4464
#: configdialog.cpp:517
4534
msgid "Move &Up"
4465
msgid "Move &Up"
4535
msgstr ""
4466
msgstr "Movi &su"
4536
4467
4537
#: configdialog.cpp:519 configdialog.cpp:523
4468
#: configdialog.cpp:519 configdialog.cpp:523
4538
msgid ""
4469
msgid ""
4539
"The order of the data sources sets the order that Tellico uses when entries "
4470
"The order of the data sources sets the order that Tellico uses when entries "
4540
"are automatically updated."
4471
"are automatically updated."
4541
msgstr ""
4472
msgstr ""
4473
"L'ordine delle fonti di dati sarà quello usato da Tellico quando si aggiorna "
4474
"automaticamente un elemento."
4542
4475
4543
#: configdialog.cpp:521
4476
#: configdialog.cpp:521
4544
#, fuzzy
4477
#, fuzzy
4545
msgid "Move &Down"
4478
msgid "Move &Down"
4546
msgstr "Rimuo&vi"
4479
msgstr "Muovi &giù"
4547
4480
4548
#: configdialog.cpp:528
4481
#: configdialog.cpp:528
4549
msgid "&New..."
4482
msgid "&New..."
4550
msgstr "&Nuovo ..."
4483
msgstr "&Nuovo..."
4551
4484
4552
#: configdialog.cpp:530
4485
#: configdialog.cpp:530
4553
msgid "Click to add a new data source."
4486
msgid "Click to add a new data source."
4554
msgstr ""
4487
msgstr "Aggiunge una nuova fonte di dati."
4555
4488
4556
#: configdialog.cpp:531
4489
#: configdialog.cpp:531
4557
msgid "&Modify..."
4490
msgid "&Modify..."
4558
msgstr "&Modifica ..."
4491
msgstr "&Modifica..."
4559
4492
4560
#: configdialog.cpp:533
4493
#: configdialog.cpp:533
4561
#, fuzzy
4562
msgid "Click to modify the selected data source."
4494
msgid "Click to modify the selected data source."
4563
msgstr "Controlla gli elementi selezionati"
4495
msgstr "Modifica la fonte selezionata."
4564
4496
4565
#: configdialog.cpp:536
4497
#: configdialog.cpp:536
4566
#, fuzzy
4567
msgid "Click to delete the selected data source."
4498
msgid "Click to delete the selected data source."
4568
msgstr "Cancella gli elementi selezionati"
4499
msgstr "Cancella la fonte selezionata"
4569
4500
4570
#: configdialog.cpp:539
4501
#: configdialog.cpp:539
4571
#, fuzzy
4502
#, fuzzy
4572
msgid "Click to download additional data sources via the Internet."
4503
msgid "Click to download additional data sources via the Internet."
4573
msgstr ""
4504
msgstr "Scarica ulteriori fonti da internet"
4574
"Clicca per aprire una casella in cui inserire o modificare i valori ISBN."
4575
4505
4576
#: configdialog.cpp:1016
4506
#: configdialog.cpp:1016
4577
msgid "*.tar.gz *.tgz|Template Packages (*.tar.gz)"
4507
msgid "*.tar.gz *.tgz|Template Packages (*.tar.gz)"
4578
msgstr ""
4508
msgstr "*.tar.gz *.tgz|Pacchetti template (*.tar.gz)"
4579
4509
4580
#: configdialog.cpp:1049
4510
#: configdialog.cpp:1049
4581
#, fuzzy
4511
#, fuzzy
4582
msgid "Delete Template"
4512
msgid "Delete Template"
4583
msgstr "Cancella campo"
4513
msgstr "Cancella template"
4584
4514
4585
#: configdialog.cpp:1050
4515
#: configdialog.cpp:1050
4586
#, fuzzy
4516
#, fuzzy
4587
msgid "Select template to delete:"
4517
msgid "Select template to delete:"
4588
msgstr "Seleziona il database per la ricerca"
4518
msgstr "Seleziona il template da cancellare"
4589
4519
4590
#: loanview.cpp:33 loanview.cpp:91 xslt.cpp:26
4520
#: loanview.cpp:33 loanview.cpp:91 xslt.cpp:26
4591
msgid "Borrower"
4521
msgid "Borrower"
4592
msgstr "A chi hai fatto il prestito "
4522
msgstr "A chi hai fatto il prestito"
4593
4523
4594
#: loanview.cpp:74
4524
#: loanview.cpp:74
4595
msgid "Check-in"
4525
msgid "Check-in"
4596
msgstr "Registrazione"
4526
msgstr "Riconsegna"
4597
4527
4598
#: loanview.cpp:76
4528
#: loanview.cpp:76
4599
msgid "Modify Loan..."
4529
msgid "Modify Loan..."
4600
msgstr "Modifica prestito ..."
4530
msgstr "Modifica prestito..."
4601
4531
4602
#: loanview.cpp:93
4532
#: loanview.cpp:93
4603
msgid "Borrower (Sort by Count)"
4533
msgid "Borrower (Sort by Count)"
Lines 4613-4619 msgstr "Collezione di libri" Link Here
4613
4543
4614
#: collectionfactory.cpp:126
4544
#: collectionfactory.cpp:126
4615
msgid "Comic Book Collection"
4545
msgid "Comic Book Collection"
4616
msgstr "Collezione difumetti"
4546
msgstr "Collezione di fumetti"
4617
4547
4618
#: collectionfactory.cpp:127
4548
#: collectionfactory.cpp:127
4619
msgid "Video Collection"
4549
msgid "Video Collection"
Lines 4629-4635 msgstr "Collezione di monete" Link Here
4629
4559
4630
#: collectionfactory.cpp:130
4560
#: collectionfactory.cpp:130
4631
msgid "Stamp Collection"
4561
msgid "Stamp Collection"
4632
msgstr "Collezione di cartoline"
4562
msgstr "Collezione di francobolli"
4633
4563
4634
#: collectionfactory.cpp:131
4564
#: collectionfactory.cpp:131
4635
msgid "Wine Collection"
4565
msgid "Wine Collection"
Lines 4637-4643 msgstr "Collezione di vini" Link Here
4637
4567
4638
#: collectionfactory.cpp:132
4568
#: collectionfactory.cpp:132
4639
msgid "Card Collection"
4569
msgid "Card Collection"
4640
msgstr "Collection di carte"
4570
msgstr "Collezione di carte"
4641
4571
4642
#: collectionfactory.cpp:133
4572
#: collectionfactory.cpp:133
4643
msgid "Game Collection"
4573
msgid "Game Collection"
Lines 4645-4656 msgstr "Collezione di giochi" Link Here
4645
4575
4646
#: collectionfactory.cpp:134
4576
#: collectionfactory.cpp:134
4647
msgid "File Catalog"
4577
msgid "File Catalog"
4648
msgstr ""
4578
msgstr "Catalogo di file"
4649
4579
4650
#: collectionfactory.cpp:135
4580
#: collectionfactory.cpp:135
4651
#, fuzzy
4581
#, fuzzy
4652
msgid "Board Game Collection"
4582
msgid "Board Game Collection"
4653
msgstr "Collezione di giochi"
4583
msgstr "Collezione di giochi da tavolo"
4654
4584
4655
#: collectionfactory.cpp:136
4585
#: collectionfactory.cpp:136
4656
msgid "Custom Collection"
4586
msgid "Custom Collection"
Lines 4661-4668 msgid "" Link Here
4661
"<qt>The <i>Entry View</i> shows a formatted view of the entry's "
4591
"<qt>The <i>Entry View</i> shows a formatted view of the entry's "
4662
"contents.</qt>"
4592
"contents.</qt>"
4663
msgstr ""
4593
msgstr ""
4664
"<qt>La <i>vista per elementi</i> riordina la vista secondo i contenuti degli "
4594
"<qt>La <i>vista per elementi</i> mostra il contenuto degli "
4665
"elementi.</qt>"
4595
"elementi formattato secondo il template scelto.</qt>"
4666
4596
4667
#: viewstack.cpp:31
4597
#: viewstack.cpp:31
4668
msgid ""
4598
msgid ""
Lines 4691-4697 msgid "" Link Here
4691
"according to their format type."
4621
"according to their format type."
4692
msgstr ""
4622
msgstr ""
4693
"Se selezionato, i valori nei campi saranno automaticamente formattati "
4623
"Se selezionato, i valori nei campi saranno automaticamente formattati "
4694
"secondo il tipo di formattazione."
4624
"secondo il tipo di formato."
4695
4625
4696
#: exportdialog.cpp:59
4626
#: exportdialog.cpp:59
4697
msgid "Export selected entries only"
4627
msgid "Export selected entries only"
Lines 4732-4749 msgstr "&Stop" Link Here
4732
4662
4733
#: fetchdialog.cpp:86
4663
#: fetchdialog.cpp:86
4734
msgid "Internet Search"
4664
msgid "Internet Search"
4735
msgstr "Ricerca Internet"
4665
msgstr "Ricerca su Internet"
4736
4666
4737
#: fetchdialog.cpp:94
4667
#: fetchdialog.cpp:94
4738
#, fuzzy
4739
msgid "Search Query"
4668
msgid "Search Query"
4740
msgstr "Search Query"
4669
msgstr "Query di ricerca"
4741
4670
4742
#: fetchdialog.cpp:100
4671
#: fetchdialog.cpp:100
4743
msgid ""
4672
msgid ""
4744
"_: Start the search\n"
4673
"_: Start the search\n"
4745
"S&earch:"
4674
"S&earch:"
4746
msgstr "Ric&erca:"
4675
msgstr "C&erca:"
4747
4676
4748
#: fetchdialog.cpp:104
4677
#: fetchdialog.cpp:104
4749
msgid "Enter a search value. An ISBN search must include the full ISBN."
4678
msgid "Enter a search value. An ISBN search must include the full ISBN."
Lines 4762-4784 msgstr "Clicca per cominciare o fermare la ricerca" Link Here
4762
#: fetchdialog.cpp:134
4691
#: fetchdialog.cpp:134
4763
#, fuzzy
4692
#, fuzzy
4764
msgid "&Multiple ISBN/UPC search"
4693
msgid "&Multiple ISBN/UPC search"
4765
msgstr "Ricerca di ISBN &Multipli"
4694
msgstr "Ricerca di ISBN/UPC &Multipli"
4766
4695
4767
#: fetchdialog.cpp:135
4696
#: fetchdialog.cpp:135
4768
#, fuzzy
4697
#, fuzzy
4769
msgid "Check this box to search for multiple ISBN or UPC values."
4698
msgid "Check this box to search for multiple ISBN or UPC values."
4770
msgstr "Seleziona questa casella per ricercare diversi valori ISBN."
4699
msgstr "Seleziona questa casella per ricercare diversi valori ISBN o UPC."
4771
4700
4772
#: fetchdialog.cpp:138
4701
#: fetchdialog.cpp:138
4773
#, fuzzy
4702
#, fuzzy
4774
msgid "Edit List..."
4703
msgid "Edit List..."
4775
msgstr "Modifica la lista degli &ISBN ..."
4704
msgstr "Modifica lista..."
4776
4705
4777
#: fetchdialog.cpp:140
4706
#: fetchdialog.cpp:140
4778
msgid ""
4707
msgid "Click to open a text edit box for entering or editing multiple ISBN values."
4779
"Click to open a text edit box for entering or editing multiple ISBN values."
4708
msgstr "Clicca per aprire una casella in cui inserire o modificare i valori ISBN."
4780
msgstr ""
4781
"Clicca per aprire una casella in cui inserire o modificare i valori ISBN."
4782
4709
4783
#: fetchdialog.cpp:146
4710
#: fetchdialog.cpp:146
4784
msgid "Search s&ource:"
4711
msgid "Search s&ource:"
Lines 4802-4808 msgid "" Link Here
4802
"selecting it in the list above"
4729
"selecting it in the list above"
4803
msgstr ""
4730
msgstr ""
4804
"Un elemento può essere visualizzato qui prima di aggiungerlo alla "
4731
"Un elemento può essere visualizzato qui prima di aggiungerlo alla "
4805
"colelzione attuale selezionando dalla lista sopra. "
4732
"collezione attuale selezionandolo dalla lista sopra."
4806
4733
4807
#: fetchdialog.cpp:192
4734
#: fetchdialog.cpp:192
4808
msgid "&Add Entry"
4735
msgid "&Add Entry"
Lines 4810-4825 msgstr "&Aggiungi elemento" Link Here
4810
4737
4811
#: fetchdialog.cpp:196
4738
#: fetchdialog.cpp:196
4812
msgid "Add the selected entry to the current collection"
4739
msgid "Add the selected entry to the current collection"
4813
msgstr "Aggiungi l'elemento selezionato alla collezione attuale"
4740
msgstr "Aggiungi l'elemento selezionato alla collezione."
4814
4741
4815
#: fetchdialog.cpp:198
4742
#: fetchdialog.cpp:198
4816
#, fuzzy
4743
#, fuzzy
4817
msgid "Get More Results"
4744
msgid "Get More Results"
4818
msgstr "Seleziona il risultato IMDB"
4745
msgstr "Ottieni più risultati"
4819
4746
4820
#: fetchdialog.cpp:201
4747
#: fetchdialog.cpp:201
4821
msgid "Fetch more results from the current data source"
4748
msgid "Fetch more results from the current data source"
4822
msgstr ""
4749
msgstr "Ottieni più risultati dalla fonte attuale"
4823
4750
4824
#: fetchdialog.cpp:205
4751
#: fetchdialog.cpp:205
4825
msgid "Clear all search fields and results"
4752
msgid "Clear all search fields and results"
Lines 4827-4837 msgstr "Pulisci tutti i campi di ricerca e i risultati" Link Here
4827
4754
4828
#: fetchdialog.cpp:298
4755
#: fetchdialog.cpp:298
4829
msgid "Cancelling the search..."
4756
msgid "Cancelling the search..."
4830
msgstr "Ripulisco la ricerca ..."
4757
msgstr "Ripulisco la ricerca..."
4831
4758
4832
#: fetchdialog.cpp:313 fetchdialog.cpp:472
4759
#: fetchdialog.cpp:313 fetchdialog.cpp:472
4833
msgid "Searching..."
4760
msgid "Searching..."
4834
msgstr "Ricerca in corso ..."
4761
msgstr "Ricerca in corso..."
4835
4762
4836
#: fetchdialog.cpp:368
4763
#: fetchdialog.cpp:368
4837
msgid "The search returned no items."
4764
msgid "The search returned no items."
Lines 4842-4891 msgstr "La ricerca non ha dato risultati." Link Here
4842
msgid ""
4769
msgid ""
4843
"_n: The search returned 1 item.\n"
4770
"_n: The search returned 1 item.\n"
4844
"The search returned %n items."
4771
"The search returned %n items."
4845
msgstr ""
4772
msgstr "La ricerca ha trovato %n oggetti."
4846
"La ricerca ha trovato 1 oggetto.\n"
4847
"La ricerca ha trovato %n oggetti."
4848
4773
4849
#: fetchdialog.cpp:412
4774
#: fetchdialog.cpp:412
4850
#, fuzzy
4851
msgid "No results were found for the following ISBN values:"
4775
msgid "No results were found for the following ISBN values:"
4852
msgstr "<qt>Non ho trovato voci per i seguenti valori ISBN:</qt>"
4776
msgstr "Non ho trovato voci per i seguenti valori ISBN:"
4853
4777
4854
#: fetchdialog.cpp:443 fetchdialog.cpp:495
4778
#: fetchdialog.cpp:443 fetchdialog.cpp:495
4855
msgid "Fetching %1..."
4779
msgid "Fetching %1..."
4856
msgstr "Passo in rassegna %1 ..."
4780
msgstr "Passo in rassegna %1..."
4857
4781
4858
#: fetchdialog.cpp:528 fetchdialog.cpp:708
4782
#: fetchdialog.cpp:528 fetchdialog.cpp:708
4859
msgid "No Internet sources are available for your current collection type."
4783
msgid "No Internet sources are available for your current collection type."
4860
msgstr ""
4784
msgstr "Non sono disponibili su Internet fonti adatte a questo tipo di collezione."
4861
"Non sono disponibili su Internet fonti adatte a questo tipo di collezione."
4862
4785
4863
#: fetchdialog.cpp:594
4786
#: fetchdialog.cpp:594
4864
#, fuzzy
4787
#, fuzzy
4865
msgid "Edit ISBN/UPC Values"
4788
msgid "Edit ISBN/UPC Values"
4866
msgstr "Modifica i valori ISBN"
4789
msgstr "Modifica i valori ISBN/UPC"
4867
4790
4868
#: fetchdialog.cpp:598
4791
#: fetchdialog.cpp:598
4869
#, fuzzy
4870
msgid "<qt>Enter the ISBN or UPC values, one per line.</qt>"
4792
msgid "<qt>Enter the ISBN or UPC values, one per line.</qt>"
4871
msgstr "<qt>Inserisci i valori ISBN, uno per riga.</qt>"
4793
msgstr "<qt>Inserisci i valori ISBN. Uno per riga.</qt>"
4872
4794
4873
#: fetchdialog.cpp:604
4795
#: fetchdialog.cpp:604
4874
msgid "&Load From File..."
4796
msgid "&Load From File..."
4875
msgstr "&Carica da file ..."
4797
msgstr "&Carica da file..."
4876
4798
4877
#: fetchdialog.cpp:605
4799
#: fetchdialog.cpp:605
4878
#, fuzzy
4800
#, fuzzy
4879
msgid "<qt>Load the list from a text file.</qt>"
4801
msgid "<qt>Load the list from a text file.</qt>"
4880
msgstr "<qt>Importa la lista dei numeri ISBN da un file di testo.</qt>"
4802
msgstr "<qt>Importa lista da un file di testo.</qt>"
4881
4803
4882
#: fetchdialog.cpp:624
4804
#: fetchdialog.cpp:624
4883
msgid ""
4805
msgid ""
4884
"<qt>An ISBN search can contain a maximum of 100 ISBN values. Only the first "
4806
"<qt>An ISBN search can contain a maximum of 100 ISBN values. Only the first "
4885
"100 values in your list will be used.</qt>"
4807
"100 values in your list will be used.</qt>"
4886
msgstr ""
4808
msgstr ""
4887
"<qt>Una ricerca ISBN può contenere al massimo 100 valori ISBN.Verranno "
4809
"<qt>Una ricerca ISBN può contenere al massimo 100 valori ISBN. Solo i primi "
4888
"utilizzat solo i primi cento numeri della tua lista.</qt>"
4810
"cento numeri della tua lista verranno utilizzati.</qt>"
4889
4811
4890
#: entryeditdialog.cpp:51 entryeditdialog.cpp:382 entryeditdialog.cpp:406
4812
#: entryeditdialog.cpp:51 entryeditdialog.cpp:382 entryeditdialog.cpp:406
4891
#: entryeditdialog.cpp:512
4813
#: entryeditdialog.cpp:512
Lines 4902-4915 msgid "Sa&ve Entry" Link Here
4902
msgstr "Sal&va elemento"
4824
msgstr "Sal&va elemento"
4903
4825
4904
#: entryeditdialog.cpp:77
4826
#: entryeditdialog.cpp:77
4905
#, fuzzy
4906
msgid "Go to the previous entry in the collection"
4827
msgid "Go to the previous entry in the collection"
4907
msgstr "Trova la pecedente corrispondenza nella collezione"
4828
msgstr "Vai al precedente elemento della collezione"
4908
4829
4909
#: entryeditdialog.cpp:82
4830
#: entryeditdialog.cpp:82
4910
#, fuzzy
4911
msgid "Go to the next entry in the collection"
4831
msgid "Go to the next entry in the collection"
4912
msgstr "Seleziona tutti i campi della collezione"
4832
msgstr "Vai all'elemento successivo della collezione"
4913
4833
4914
#: entryeditdialog.cpp:315
4834
#: entryeditdialog.cpp:315
4915
msgid "Do you really want to modify these entries?"
4835
msgid "Do you really want to modify these entries?"
Lines 4917-4927 msgstr "Vuoi davvero modificare questi elementi?" Link Here
4917
4837
4918
#: entryeditdialog.cpp:317
4838
#: entryeditdialog.cpp:317
4919
msgid "Modify Multiple Entries"
4839
msgid "Modify Multiple Entries"
4920
msgstr "Modifica vari elementi"
4840
msgstr "Modifica più elementi"
4921
4841
4922
#: entryeditdialog.cpp:359
4842
#: entryeditdialog.cpp:359
4923
msgid "A value is required for the following fields. Do you want to continue?"
4843
msgid "A value is required for the following fields. Do you want to continue?"
4924
msgstr ""
4844
msgstr "È necessario inserire un valore per i seguenti campi. Vuoi continuare?"
4925
4845
4926
#: entryeditdialog.cpp:456
4846
#: entryeditdialog.cpp:456
4927
msgid "Edit Entries"
4847
msgid "Edit Entries"
Lines 4960-4974 msgid "Select a report template and click <em>Generate</em>." Link Here
4960
msgstr "Seleziona un template per il resoconto e clicca su <em>Genera</em>."
4880
msgstr "Seleziona un template per il resoconto e clicca su <em>Genera</em>."
4961
4881
4962
#: reportdialog.cpp:108
4882
#: reportdialog.cpp:108
4963
msgid ""
4883
msgid "Some reports may take several seconds to generate for large collections."
4964
"Some reports may take several seconds to generate for large collections."
4965
msgstr ""
4884
msgstr ""
4966
"Per generare i resoconti di grandi collezioni possono essere necessari "
4885
"Per generare i resoconti di grandi collezioni possono essere necessari "
4967
"diversi secondi."
4886
"diversi secondi."
4968
4887
4969
#: tellico_kernel.cpp:285
4888
#: tellico_kernel.cpp:285
4970
msgid "Do you really want to delete this filter?"
4889
msgid "Do you really want to delete this filter?"
4971
msgstr "Vuoi davvero cancellare questo elemento?"
4890
msgstr "Vuoi davvero cancellare questo filtro?"
4972
4891
4973
#: tellico_kernel.cpp:287
4892
#: tellico_kernel.cpp:287
4974
msgid "Delete Filter?"
4893
msgid "Delete Filter?"
Lines 4981-5014 msgstr "Nuovo nome della collezione:" Link Here
4981
#: tellico_kernel.cpp:377
4900
#: tellico_kernel.cpp:377
4982
#, fuzzy
4901
#, fuzzy
4983
msgid "Entry 1"
4902
msgid "Entry 1"
4984
msgstr "Elemento"
4903
msgstr "Elemento 1"
4985
4904
4986
#: tellico_kernel.cpp:378
4905
#: tellico_kernel.cpp:378
4987
#, fuzzy
4906
#, fuzzy
4988
msgid "Entry 2"
4907
msgid "Entry 2"
4989
msgstr "Elemento"
4908
msgstr "Elemento 2"
4990
4909
4991
#: tellico_kernel.cpp:387
4910
#: tellico_kernel.cpp:387
4992
msgid "Conflicting values for %1 were found while merging entries."
4911
msgid "Conflicting values for %1 were found while merging entries."
4993
msgstr ""
4912
msgstr "I due elementi hanno valori diversi per %1 "
4994
4913
4995
#: tellico_kernel.cpp:393
4914
#: tellico_kernel.cpp:393
4996
msgid "Please choose which value to keep."
4915
msgid "Please choose which value to keep."
4997
msgstr ""
4916
msgstr "Scegli quale conservare."
4998
4917
4999
#: entrymerger.cpp:33 tellico_kernel.cpp:398
4918
#: entrymerger.cpp:33 tellico_kernel.cpp:398
5000
#, fuzzy
4919
#, fuzzy
5001
msgid "Merge Entries"
4920
msgid "Merge Entries"
5002
msgstr "Cancella elementi"
4921
msgstr "Fondi elementi"
5003
4922
5004
#: tellico_kernel.cpp:399 tellico_kernel.cpp:400
4923
#: tellico_kernel.cpp:399 tellico_kernel.cpp:400
5005
#, c-format
4924
#, c-format
5006
msgid "Select value from %1"
4925
msgid "Select value from %1"
5007
msgstr ""
4926
msgstr "Seleziona valore da %1"
5008
4927
5009
#: entryview.cpp:186
4928
#: entryview.cpp:186
5010
msgid "Tellico is unable to locate the default entry stylesheet."
4929
msgid "Tellico is unable to locate the default entry stylesheet."
5011
msgstr "Tellico non è in grado di trovare il foglio di stile di default."
4930
msgstr "Tellico non riesce a trovare il foglio di stile predefinito."
5012
4931
5013
#: rc.cpp:6
4932
#: rc.cpp:6
5014
#, no-c-format
4933
#, no-c-format
Lines 5023-5051 msgstr "&Collezione" Link Here
5023
#: rc.cpp:24
4942
#: rc.cpp:24
5024
#, no-c-format
4943
#, no-c-format
5025
msgid "Collection Toolbar"
4944
msgid "Collection Toolbar"
5026
msgstr "Barra degli strumenti-collezione"
4945
msgstr "Barra degli strumenti Collezione"
5027
4946
5028
#: _translatorinfo.cpp:1
4947
#: _translatorinfo.cpp:1
5029
msgid ""
4948
msgid ""
5030
"_: NAME OF TRANSLATORS\n"
4949
"_: NAME OF TRANSLATORS\n"
5031
"Your names"
4950
"Your names"
5032
msgstr "Lorenzo Novaro"
4951
msgstr ""
4952
"Lorenzo Novaro"
4953
"Valerio Ricci"
5033
4954
5034
#: _translatorinfo.cpp:3
4955
#: _translatorinfo.cpp:3
5035
msgid ""
4956
msgid ""
5036
"_: EMAIL OF TRANSLATORS\n"
4957
"_: EMAIL OF TRANSLATORS\n"
5037
"Your emails"
4958
"Your emails"
5038
msgstr "novalore@inwind.it"
4959
msgstr ""
4960
"novalore@inwind.it"
4961
"pompafi@hotmail.it"
5039
4962
5040
#: entrymerger.cpp:35
4963
#: entrymerger.cpp:35
5041
#, fuzzy
4964
#, fuzzy
5042
msgid "Merging entries..."
4965
msgid "Merging entries..."
5043
msgstr "&Modifica elementi ..."
4966
msgstr "&Fusione elementi..."
5044
4967
5045
#: entrymerger.cpp:49
4968
#: entrymerger.cpp:49
5046
#, fuzzy
5047
msgid "Total merged/scanned entries: %1/%2"
4969
msgid "Total merged/scanned entries: %1/%2"
5048
msgstr "Elementi totali: %1"
4970
msgstr "Elementi Fusi/Scansionati: %1/%2"
5049
4971
5050
#: tips.cpp:3
4972
#: tips.cpp:3
5051
msgid ""
4973
msgid ""
Lines 5055-5062 msgid "" Link Here
5055
"<p>Any other field which allows multiple values should be entered the\n"
4977
"<p>Any other field which allows multiple values should be entered the\n"
5056
"same way, with a semi-colon (;) separating each value.</p>\n"
4978
"same way, with a semi-colon (;) separating each value.</p>\n"
5057
msgstr ""
4979
msgstr ""
5058
"<p>... che se un libro ha più di un autore, dovresti separare i diversi "
4980
"<p>... che se un libro ha più di un autore, dovresti separare i diversi nomi \n"
5059
"nomi \n"
5060
"usando un punto e virgola, cosicché Tellico possa suddividerli \n"
4981
"usando un punto e virgola, cosicché Tellico possa suddividerli \n"
5061
"ed usarli separatamente.</p>\n"
4982
"ed usarli separatamente.</p>\n"
5062
"<p>Qualsiasi campo che ammetta valori multipli riconoscerà i diversi \n"
4983
"<p>Qualsiasi campo che ammetta valori multipli riconoscerà i diversi \n"
Lines 5102-5108 msgstr "" Link Here
5102
"il pulsante <em>Verifica tutti i criteri seguenti</em>, imposta la prima\n"
5023
"il pulsante <em>Verifica tutti i criteri seguenti</em>, imposta la prima\n"
5103
"regola così: \"Genere\" \"contiene\" \"Fantascienza\" (non usare le "
5024
"regola così: \"Genere\" \"contiene\" \"Fantascienza\" (non usare le "
5104
"virgolette)\n"
5025
"virgolette)\n"
5105
"e la seconda regola così: \"Letto\" \"non contiene\" |\"vero\"\n"
5026
"e la seconda regola così: \"Letto\" \"non contiene\" |\"true\"\n"
5106
"(anche qui non usare le virgolette).</p>\n"
5027
"(anche qui non usare le virgolette).</p>\n"
5107
5028
5108
#: tips.cpp:33
5029
#: tips.cpp:33
Lines 5112-5118 msgid "" Link Here
5112
"<p>To show only books which are by Weber or Bujold, for example, then\n"
5033
"<p>To show only books which are by Weber or Bujold, for example, then\n"
5113
"type \"weber|bujold\" (no quotes) in the filter box.</p>\n"
5034
"type \"weber|bujold\" (no quotes) in the filter box.</p>\n"
5114
msgstr ""
5035
msgstr ""
5115
"<p>.. che se nel filtro rapido inserisci un carattere diverso da una "
5036
"<p>... che se nel filtro rapido inserisci un carattere diverso da una "
5116
"lettera, il testo\n"
5037
"lettera, il testo\n"
5117
"verrà interpretato come una espressione regolare (regexp).</p>\n"
5038
"verrà interpretato come una espressione regolare (regexp).</p>\n"
5118
"<p>Per mostrare solo i libri di Vidal o Weber, per esempio, digita \n"
5039
"<p>Per mostrare solo i libri di Vidal o Weber, per esempio, digita \n"
Lines 5212-5217 msgid "" Link Here
5212
"types by respecting proper sorting at the same time. Consider for example\n"
5133
"types by respecting proper sorting at the same time. Consider for example\n"
5213
"a number field followed by a text subfield with entries 3b, 14a.</p>\n"
5134
"a number field followed by a text subfield with entries 3b, 14a.</p>\n"
5214
msgstr ""
5135
msgstr ""
5136
"<p>...che puoi usare i campi dipendenti per combinare più campi singoli\n"
5137
"in un unico campo derivato. Per fare ciò seleziona il campo dipendente e usa\n"
5138
"una descrizione del tipo \"%{campoa}%{campob}\" in cui tra le graffe %{ } "
5139
"va indicato il nome del campo nella collezione. Il risultato sarà un campo derivato "
5140
"che contiene i valori di entrambi i campi singoli.\n"
5141
"Questa operazione può tornare utile per raggruppare più valori in un unico\n"
5142
"campo, per un raggruppamento migliore, e per combinare campi di tipi \n"
5143
"diversi senza influire sull'ordinamento. Ad esempio un campo numerico \n"
5144
"seguito da un sottocampo testuale.</p>\n"
5215
5145
5216
#: xslt.cpp:2
5146
#: xslt.cpp:2
5217
msgid ""
5147
msgid ""
Lines 5222-5228 msgstr "Album" Link Here
5222
#: xslt.cpp:3
5152
#: xslt.cpp:3
5223
#, fuzzy
5153
#, fuzzy
5224
msgid "This template is meant for music collections only."
5154
msgid "This template is meant for music collections only."
5225
msgstr "Crea una nuova collezione di musica"
5155
msgstr "Questo template è solo per collezioni di musica."
5226
5156
5227
#: xslt.cpp:5
5157
#: xslt.cpp:5
5228
#, fuzzy
5158
#, fuzzy
Lines 5256-5262 msgstr "Video" Link Here
5256
#: xslt.cpp:14 xslt.cpp:43
5186
#: xslt.cpp:14 xslt.cpp:43
5257
#, fuzzy
5187
#, fuzzy
5258
msgid "This template is meant for video collections only."
5188
msgid "This template is meant for video collections only."
5259
msgstr "Crea una nuova collezione di video"
5189
msgstr "Questo template è solo per collezioni di video."
5260
5190
5261
#: xslt.cpp:16
5191
#: xslt.cpp:16
5262
msgid ""
5192
msgid ""
Lines 5279-5285 msgstr "Numero totale di elementi:" Link Here
5279
#: xslt.cpp:20 xslt.cpp:32 xslt.cpp:46
5209
#: xslt.cpp:20 xslt.cpp:32 xslt.cpp:46
5280
#, fuzzy
5210
#, fuzzy
5281
msgid "Generated by Tellico"
5211
msgid "Generated by Tellico"
5282
msgstr "Generato da"
5212
msgstr "Generato da Tellico"
5283
5213
5284
#: xslt.cpp:21
5214
#: xslt.cpp:21
5285
msgid "Distinct values: "
5215
msgid "Distinct values: "
Lines 5303-5309 msgstr "Data di prestito" Link Here
5303
5233
5304
#: xslt.cpp:28 xslt.cpp:31
5234
#: xslt.cpp:28 xslt.cpp:31
5305
msgid "Note"
5235
msgid "Note"
5306
msgstr "Nota"
5236
msgstr "Note"
5307
5237
5308
#: xslt.cpp:30
5238
#: xslt.cpp:30
5309
msgid "Due Date"
5239
msgid "Due Date"
Lines 5338-5344 msgstr "Vista a colonne" Link Here
5338
msgid ""
5268
msgid ""
5339
"_: Tri-Column XSL Template\n"
5269
"_: Tri-Column XSL Template\n"
5340
"Tri-Column"
5270
"Tri-Column"
5341
msgstr "Vista a colonne"
5271
msgstr "Tre colonne"
5342
5272
5343
#: xslt.cpp:44
5273
#: xslt.cpp:44
5344
#, fuzzy
5274
#, fuzzy
Lines 5347-6027 msgstr "Cer&ca" Link Here
5347
5277
5348
#: z3950.cpp:4
5278
#: z3950.cpp:4
5349
msgid "The British Library"
5279
msgid "The British Library"
5350
msgstr ""
5280
msgstr "The British Library"
5351
5281
5352
#: z3950.cpp:6
5282
#: z3950.cpp:6
5353
#, fuzzy
5283
#, fuzzy
5354
msgid "Sudoc (France)"
5284
msgid "Sudoc (France)"
5355
msgstr "Amazon (Francia)"
5285
msgstr "Sudoc (Francia)"
5356
5286
5357
#: z3950.cpp:8
5287
#: z3950.cpp:8
5358
msgid "BIBSYS (Norway)"
5288
msgid "BIBSYS (Norway)"
5359
msgstr ""
5289
msgstr "BIBSYS (Norvegia)"
5360
5290
5361
#: z3950.cpp:10
5291
#: z3950.cpp:10
5362
msgid "Italian National Library"
5292
msgid "Italian National Library"
5363
msgstr ""
5293
msgstr "Biblioteca Nazionale Italiana"
5364
5294
5365
#: z3950.cpp:12
5295
#: z3950.cpp:12
5366
msgid "Portuguese National Library"
5296
msgid "Portuguese National Library"
5367
msgstr ""
5297
msgstr "Biblioteca Nazionale Portoghese"
5368
5298
5369
#: z3950.cpp:14
5299
#: z3950.cpp:14
5370
msgid "National Library of Poland"
5300
msgid "National Library of Poland"
5371
msgstr ""
5301
msgstr "Biblioteca Nazionale Polacca"
5372
5302
5373
#: z3950.cpp:16
5303
#: z3950.cpp:16
5374
msgid "National Library of Canada"
5304
msgid "National Library of Canada"
5375
msgstr ""
5305
msgstr "Biblioteca Nazionale del Canada"
5376
5306
5377
#: z3950.cpp:18
5307
#: z3950.cpp:18
5378
msgid "Israel Union List"
5308
msgid "Israel Union List"
5379
msgstr ""
5309
msgstr "Israel Union List"
5380
5310
5381
#: z3950.cpp:20
5311
#: z3950.cpp:20
5382
msgid "National Library of Australia"
5312
msgid "National Library of Australia"
5383
msgstr ""
5313
msgstr "Biblioteca Nazionale Australiana"
5384
5314
5385
#: z3950.cpp:22
5315
#: z3950.cpp:22
5386
msgid "National Library of Lithuania"
5316
msgid "National Library of Lithuania"
5387
msgstr ""
5317
msgstr "Biblioteca Nazionale Lituana"
5388
5318
5389
#: z3950.cpp:24
5319
#: z3950.cpp:24
5390
msgid "Copac (UK and Ireland)"
5320
msgid "Copac (UK and Ireland)"
5391
msgstr ""
5321
msgstr "Copac (Regno Unito e Irlanda)"
5392
5322
5393
#: scripts.cpp:2
5323
#: scripts.cpp:2
5394
msgid "BoardGameGeek"
5324
msgid "BoardGameGeek"
5395
msgstr ""
5325
msgstr "BoardGameGeek"
5396
5326
5397
#: scripts.cpp:4
5327
#: scripts.cpp:4
5398
msgid "Dark Horse Comics"
5328
msgid "Dark Horse Comics"
5399
msgstr ""
5329
msgstr "Dark Horse Comics"
5400
5330
5401
#: scripts.cpp:6
5331
#: scripts.cpp:6
5402
msgid "Allocine.fr"
5332
msgid "Allocine.fr"
5403
msgstr ""
5333
msgstr "Allocine.fr"
5404
5334
5405
#: scripts.cpp:8
5335
#: scripts.cpp:8
5406
msgid "Spanish Ministry of Culture"
5336
msgid "Spanish Ministry of Culture"
5407
msgstr ""
5337
msgstr "Ministero della Cultura Spagnolo"
5408
5409
#, fuzzy
5410
#~ msgid "CrossRef"
5411
#~ msgstr "Riferimento incrociato"
5412
5413
#, fuzzy
5414
#~ msgid "MODS"
5415
#~ msgstr "Mac OS"
5416
5417
#~ msgid "GCstar"
5418
#~ msgstr "GCstar"
5419
5420
#, fuzzy
5421
#~ msgid "Griffith"
5422
#~ msgstr "Regalo"
5423
5424
#, fuzzy
5425
#~ msgid "Referencer"
5426
#~ msgstr "Riferimento incrociato"
5427
5428
#~ msgid "Comics"
5429
#~ msgstr "Fumetti"
5430
5431
#~ msgid "Stamps"
5432
#~ msgstr "Francobolli"
5433
5434
#~ msgid "Coins"
5435
#~ msgstr "Monete"
5436
5437
#~ msgid "Books"
5438
#~ msgstr "Libri"
5439
5440
#~ msgid "Wines"
5441
#~ msgstr "Vini"
5442
5443
#~ msgid "Videos"
5444
#~ msgstr "Video"
5445
5446
#~ msgid "Games"
5447
#~ msgstr "Giochi"
5448
5449
#~ msgid "Cards"
5450
#~ msgstr "Carte"
5451
5452
#~ msgid "Entries"
5453
#~ msgstr "Elementi"
5454
5455
#~ msgid "Albums"
5456
#~ msgstr "Album"
5457
5458
#, fuzzy
5459
#~ msgid "Copac"
5460
#~ msgstr "Virgola"
5461
5462
#~ msgid "Tellico"
5463
#~ msgstr "Tellico"
5464
5465
#~ msgid "&Copy Entry"
5466
#~ msgstr "&Copia elemento"
5467
5468
#~ msgid "&Copy Entries"
5469
#~ msgstr "&Copia elementi"
5470
5471
#, fuzzy
5472
#~ msgid "<qt>Multiple records were found to match the CD.</qt>"
5473
#~ msgstr "<qt>Ho trovato diversi elementi da confrontare con il CD.</qt>"
5474
5475
#~ msgid "Remo&ve"
5476
#~ msgstr "Rimuo&vi"
5477
5478
#~ msgid "Scanning CDDB cache files..."
5479
#~ msgstr "Scansione dei file di cache CDDB ..."
5480
5481
#~ msgid "Collection &type: "
5482
#~ msgstr "&tipo di collezione: "
5483
5484
#~ msgid "Save Entries"
5485
#~ msgstr "Salva elementi"
5486
5487
#~ msgid ""
5488
#~ "_: Save (Entry Title)\n"
5489
#~ "Save %1"
5490
#~ msgstr "Salva %1"
5491
5492
#~ msgid ""
5493
#~ "Tellico currently supports five source types: Amazon.com, IMDB, z39.50, "
5494
#~ "Entrez, and external applications."
5495
#~ msgstr ""
5496
#~ "Tellico attualmente supporta cinque tipi di fonti: Amazon.com, IMDB, z39.50, "
5497
#~ "Entrez e l'uso di programmi esterni."
5498
5499
#~ msgid "Enable/disable the statusbar"
5500
#~ msgstr "Abilita/disabilita la barra di stato"
5501
5502
#~ msgid ""
5503
#~ "The password will be saved in plain text in the Tellico configuration file."
5504
#~ msgstr ""
5505
#~ "La password verrà salvata in chiaro nel file di configurazione di Tellico."
5506
5507
#, fuzzy
5508
#~ msgid "Reading files..."
5509
#~ msgstr "Sto salvando il  file ..."
5510
5511
#~ msgid ""
5512
#~ "<p>...that you can rename a collection by right-clicking on\n"
5513
#~ "the top collection item in the left column.</p>\n"
5514
#~ msgstr ""
5515
#~ "<p>... che puoi rinominare una collezione clickando con il tasto destro sul "
5516
#~ "primo elemento\n"
5517
#~ " in alto nella colonna di sinistra.</p>\n"
5518
5519
#, fuzzy
5520
#~ msgid "S&earch:"
5521
#~ msgstr "Cerca in:"
5522
5523
#, fuzzy
5524
#~ msgid "Group by:"
5525
#~ msgstr "Raggruppa per:"
5526
5527
#, fuzzy
5528
#~ msgid "Quick filter:"
5529
#~ msgstr "Filtro rapido:"
5530
5531
#~ msgid "Filter Entry"
5532
#~ msgstr "Filtra elemento"
5533
5534
#, fuzzy
5535
#~ msgid "Tellico: %1 is due to return %2"
5536
#~ msgstr "Impossibile leggere il file - %1."
5537
5538
#~ msgid "Find Text"
5539
#~ msgstr "Trova testo"
5540
5541
#~ msgid "&Find"
5542
#~ msgstr "&Trova"
5543
5544
#, fuzzy
5545
#~ msgid "Find"
5546
#~ msgstr "&Trova"
5547
5548
#~ msgid "&Text to find:"
5549
#~ msgstr "Testo da trovare:"
5550
5551
#~ msgid "The search string"
5552
#~ msgstr "La stringa da ricercare"
5553
5554
#~ msgid "As regular e&xpression"
5555
#~ msgstr "Come Espressione &Regolare"
5556
5557
#~ msgid "If checked, the search string is used as a regular expression."
5558
#~ msgstr ""
5559
#~ "Se selezionato, la stringa inserita viene cercata come espressione regolare."
5560
5561
#, fuzzy
5562
#~ msgid "&Edit Regular Expression..."
5563
#~ msgstr "&Edita espressione regolare ..."
5564
5565
#, fuzzy
5566
#~ msgid "Field"
5567
#~ msgstr "Campi"
5568
5569
#~ msgid "Search in:"
5570
#~ msgstr "Cerca in:"
5571
5572
#~ msgid "Select which field should be searched."
5573
#~ msgstr "Seleziona in quale campo eseguire la ricerca."
5574
5575
#~ msgid "C&ase sensitive"
5576
#~ msgstr "C&ase sensitive"
5577
5578
#~ msgid "If checked, the search is case-sensitive."
5579
#~ msgstr "Se selezionato, la ricerca distingue tra maiuscole e minuscole."
5580
5581
#~ msgid "Find &backwards"
5582
#~ msgstr "Trova &Indietro"
5583
5584
#~ msgid "If checked, the document is searched in reverse."
5585
#~ msgstr ""
5586
#~ "Se selezionato, la ricerca procede dalla fine all'inizio del documento."
5587
5588
#~ msgid "&Whole words only"
5589
#~ msgstr "S&olo parole intere"
5590
5591
#~ msgid "If checked, the search is limited to whole words."
5592
#~ msgstr "Se selezionato, la ricerca si limita alle parole intere."
5593
5594
#~ msgid "All Fields"
5595
#~ msgstr "Tutti i campi"
5596
5597
#~ msgid "Invalid regular expression."
5598
#~ msgstr "Espressione regolare non valida."
5599
5600
#~ msgid "5 - Best"
5601
#~ msgstr "5 - Bellissimo"
5602
5603
#~ msgid "4 - Good"
5604
#~ msgstr "4 - Bello"
5605
5606
#~ msgid "3 - Neutral"
5607
#~ msgstr "3 - Insomma..."
5608
5609
#~ msgid "2 - Bad"
5610
#~ msgstr "2 - Brutto"
5611
5612
#~ msgid "1 - Worst"
5613
#~ msgstr "1 - Pessimo"
5614
5615
#~ msgid "Table (2 Columns)"
5616
#~ msgstr "Tabella (2 Colonne)"
5617
5618
#, fuzzy
5619
#~ msgid "Delete Entry?"
5620
#~ msgstr "&Cancella Elemento"
5621
5622
#~ msgid "Warning!"
5623
#~ msgstr "Attenzione!"
5624
5625
#~ msgid "(grouped by %1; sorted by %2)"
5626
#~ msgstr "(Raggruppa per %1; ordinato per %2)"
5627
5628
#~ msgid "(sorted by %1)"
5629
#~ msgstr "(ordina per %1)"
5630
5631
#~ msgid ""
5632
#~ "<qt><p>Do you really want to delete the <em>%1</em> field? This action "
5633
#~ "occurs immediately and can not be undone!</p></qt>"
5634
#~ msgstr ""
5635
#~ "<qt><p>Vuoi davvero cancellare il campo <em>%1</em>? Questa azione non può "
5636
#~ "essere annullata!</p></qt>"
5637
5638
#~ msgid "Sort by Group, Ascending"
5639
#~ msgstr "Ordine ascendente per gruppo, "
5640
5641
#~ msgid "Sort by Group, Descending"
5642
#~ msgstr "Ordine discendente per gruppo"
5643
5644
#~ msgid "Sort by Count, Ascending"
5645
#~ msgstr "Ordine ascendente per conteggio"
5646
5647
#~ msgid "Sort by Count, Descending"
5648
#~ msgstr "Ordine discendente per conteggio"
5649
5650
#~ msgid "Search the collection"
5651
#~ msgstr "Ricerca la collezione"
5652
5653
#~ msgid "Find next match in the collection"
5654
#~ msgstr "Trova la prossima corrispondenza nella collezione"
5655
5656
#, fuzzy
5657
#~ msgid "Reports"
5658
#~ msgstr "&Esporta"
5659
5660
#~ msgid "Show number of items in group"
5661
#~ msgstr "Mostra il numero degli oggetti nel gruppo"
5662
5663
#~ msgid ""
5664
#~ "If checked, the number of items in the group will be appended to the group "
5665
#~ "name."
5666
#~ msgstr ""
5667
#~ "Se selezionato, il numero di oggetti nel gruppo viene allegato al nome del "
5668
#~ "gruppo."
5669
5670
#~ msgid "Search string '%1' not found."
5671
#~ msgstr "Stringa '%1' non trovata."
5672
5673
#~ msgid "Video"
5674
#~ msgstr "Video"
5675
5676
#, fuzzy
5677
#~ msgid "*.bc .tc|Tellico files (*.tc)"
5678
#~ msgstr "*.tc *.bc|File di Tellico (*.tc)"
5679
5680
#~ msgid "&From Beginning"
5681
#~ msgstr "&Dall'inizio"
5682
5683
#~ msgid "If checked, the document is searched from the beginning."
5684
#~ msgstr "Se selezionato, la ricerca comincia dall'inizio del documento."
5685
5686
#~ msgid "Path to LyX server:"
5687
#~ msgstr "Percorso per il server LyX:"
5688
5689
#~ msgid ""
5690
#~ "<qt>The location of the LyX server for citing bibliographic entries. Also "
5691
#~ "used by other applications such as Kile or Pybliographer. Do not include the "
5692
#~ "trailing .in suffix.</qt>"
5693
#~ msgstr ""
5694
#~ "<qt>L'ubicazione del server LyX per citare elementi bibliografici. È anche "
5695
#~ "usata da altre applicazioni come Kile o Pybliographer. Non includere il "
5696
#~ "suffisso .in</qt>"
5697
5698
#, fuzzy
5699
#~ msgid "<qt>Tellico was unable to open the CD-ROM device - <i>%1</i>.</qt>"
5700
#~ msgstr ""
5701
#~ "<qt>Tellico non riesce a scrivere sulla server pipe in <b>%1</b>.</qt>"
5702
5703
#~ msgid "Do you really want to modify these books?"
5704
#~ msgstr "Vuoi davvero modificare questi libri?"
5705
5706
#~ msgid "*.ogg|Ogg files (*.ogg)"
5707
#~ msgstr "*.ogg|file Ogg (*.ogg)"
5708
5709
#~ msgid ""
5710
#~ "<qt>The type of the field determines what values may be used. <i>Simple "
5711
#~ "Text</i> is used for most fields. <i>Paragraph</i> is for large text blocks. "
5712
#~ "<i>Choice</i> limits the field to certain values. <i>Checkbox</i> is for a "
5713
#~ "simple yes/no value. <i>Number</i> indicates that the field contains a "
5714
#~ "numerical value. <i>URL</i> is for fields which refer to URLs, including "
5715
#~ "references to other files. <i>Table</i>s may be a single or double column of "
5716
#~ "values, while <i>Read Only</i> is for internal values, possibly useful for "
5717
#~ "import and export. A <i>Dependent</i> field depends on the values of other "
5718
#~ "fields, and is formatted according to the field description. An <i>Image</i> "
5719
#~ "holds a picture.</qt>"
5720
#~ msgstr ""
5721
#~ "<qt>Il tipo di campo determina quali valori possono esservi inseriti. "
5722
#~ "<i>Testo semplice</i> è utilizzato per la gran parte dei campi. "
5723
#~ "<i>Paragrafo</i> è utilizzato per ampi blocchi di testo. <i>Scelta</i> "
5724
#~ "Permette di inserire nel campo solo alcuni valori. <i>Checkbox</i> permette "
5725
#~ "di inserire solo sì o no. <i>Numero</i> indica che il campo può contenere "
5726
#~ "solo un valore numerico. <i>URL</i> serve per i campi che contengono "
5727
#~ "riferimenti ipertestuali, inclusi riferimenti ad altri file. <i>Tabella</i> "
5728
#~ "può essere uina colonna o una doppia colonna di valori, mentre <i>Sola "
5729
#~ "lettura</i> serve per valori interni, utili per l'importazione e "
5730
#~ "l'esportazione di file. Un campo <i>Dipendente</i> dipende dai valori di "
5731
#~ "altri campi ed è creato secondo la descrizione del campo. Un campo "
5732
#~ "<i>Immagine</i> contiene una figura</qt>"
5733
5734
#, fuzzy
5735
#~ msgid "Export images"
5736
#~ msgstr "Esporta immagini"
5737
5738
#~ msgid "List"
5739
#~ msgstr "Lista"
5740
5741
#~ msgid "(Requires restart)"
5742
#~ msgstr "(�necessario riavviare il programma)"
5743
5744
#~ msgid ""
5745
#~ "A comma-separated list of suffixes which might be used in personal names."
5746
#~ msgstr ""
5747
#~ "Un elenco di parole separate da virgole da usare nei nomi di persona."
5748
5749
#~ msgid "A comma-separated list of prefixes which might be used in surnames."
5750
#~ msgstr "Un elenco di parole separate da virgole da usare nei cognomi."
5751
5752
#~ msgid "Enable/disable the toolbar"
5753
#~ msgstr "Abilita/disabilita la barra degli strumenti"
5754
5755
#~ msgid "Show Co&llection ToolBar"
5756
#~ msgstr "Mostra la barra degli strumenti-co&llezione"
5757
5758
#~ msgid "Enable/disable the collection toolbar"
5759
#~ msgstr "Abilita/disabilita la barra degli strumenti-collezione"
5760
5761
#~ msgid "Tip of the &Day"
5762
#~ msgstr "Consiglio &del giorno"
5763
5764
#~ msgid "Show the \"Tip of the Day\" dialog..."
5765
#~ msgstr "Mostra la finestra del \"consiglio del giorno\" ..."
5766
5767
#~ msgid "*.bcz|Tellico files(*.bcz)"
5768
#~ msgstr "*.bcz|File di Tellico (*.bcz)"
5769
5770
#, fuzzy
5771
#~ msgid "Good"
5772
#~ msgstr "4 - Bello"
5773
5774
#~ msgid ""
5775
#~ "An article is from a journal or magazine. A book has an explicit publisher, "
5776
#~ "while a booklet does not."
5777
#~ msgstr ""
5778
#~ "Un articolo è parte di una rivista o di un giornale. Un libro riporta "
5779
#~ "l'indicazione di un editore, mentre un libretto no."
5780
5781
#, fuzzy
5782
#~ msgid "Mint"
5783
#~ msgstr "Mese"
5784
5785
#, fuzzy
5786
#~ msgid "Fine"
5787
#~ msgstr "Trova:"
5788
5789
#, fuzzy
5790
#~ msgid "New Entry"
5791
#~ msgstr "&Nuovo Elemento"
5792
5793
#~ msgid "Copying selection to clipboard..."
5794
#~ msgstr "Sto copiando ..."
5795
5796
#~ msgid "Inserting clipboard contents..."
5797
#~ msgstr "Sto incollando ..."
5798
5799
#~ msgid "Toggling toolbar..."
5800
#~ msgstr "Sto modificando la barra degli strumenti ..."
5801
5802
#~ msgid "Toggling collection toolbar..."
5803
#~ msgstr "Sto modificando la barra degli strumenti-collezione ..."
5804
5805
#~ msgid "Toggle the statusbar..."
5806
#~ msgstr "Sto modificando la barra di stato ..."
5807
5808
#~ msgid "Tellico is unable to find a required file - %1.\n"
5809
#~ msgstr "Impossibile trovare un file necessario - %1.\n"
5810
5811
#~ msgid "Editing string macros..."
5812
#~ msgstr "Sto editando le string macros ..."
5813
5814
#~ msgid "&New Collection"
5815
#~ msgstr "&Nuova Collezione"
5816
5817
#~ msgid "TextImporter"
5818
#~ msgstr "TextImporter"
5819
5820
#~ msgid "XSLTImporter"
5821
#~ msgstr "XSLTImporter"
5822
5823
#~ msgid "CSVImporter"
5824
#~ msgstr "CSVImporter"
5825
5826
#~ msgid "BibtexImporter"
5827
#~ msgstr "BibtexImporter"
5828
5829
#~ msgid ""
5830
#~ "Both the macro and the string can be edited by triple-clicking the item."
5831
#~ msgstr ""
5832
#~ "Sia la macro che la stringa possono essere modificate con tre click "
5833
#~ "sull'oggetto."
5834
5835
#~ msgid ""
5836
#~ "The description is useful reminder of what information is contained in the "
5837
#~ "field."
5838
#~ msgstr ""
5839
#~ "La descrizione è utile per ricordare quale informazione è contenuta nei "
5840
#~ "campi."
5841
5842
#~ msgid "Bibtex Field Name:"
5843
#~ msgstr "Campo Nome-Bibtex:"
5844
5845
#~ msgid ""
5846
#~ "The Bibtex field name determines the entry name for exporting to "
5847
#~ "bibliogrgaphy files."
5848
#~ msgstr ""
5849
#~ "Il campo Nome-Bibtex determina i nomi degli lementi per l'esportazione su "
5850
#~ "file di bibliografia."
5851
5852
#, fuzzy
5853
#~ msgid "Processing new entries..."
5854
#~ msgstr "Sto processando il documento ..."
5855
5856
#, fuzzy
5857
#~ msgid "If checked, the first row is used as field headers."
5858
#~ msgstr ""
5859
#~ "Se selezionato, i nomi di campo saranno stampati come headers della tabella."
5860
5861
#, fuzzy
5862
#~ msgid "Collection Field in this Column:"
5863
#~ msgstr "Opzioni per la collezione di audio"
5864
5865
#~ msgid "Tellico is unable to find the file - %1."
5866
#~ msgstr "Impossibile trovare il file - %1."
5867
5868
#~ msgid "Tellico is unable to download the file - %1."
5869
#~ msgstr "Impossibile scaricare il file - %1."
5870
5871
#~ msgid "The collection is grouped by this field."
5872
#~ msgstr "La collezione viene ordinata secondo questo campo"
5873
5874
#~ msgid "These are the available fields in the collection."
5875
#~ msgstr "Questi sono i campi disponibili per la collezione"
5876
5877
#~ msgid "Selected Fields"
5878
#~ msgstr "Campi selezionati"
5879
5880
#, fuzzy
5881
#~ msgid "Import..."
5882
#~ msgstr "In stampa ..."
5883
5884
#, fuzzy
5885
#~ msgid "Read Only"
5886
#~ msgstr "Pronto."
5887
5888
#, fuzzy
5889
#~ msgid "Text"
5890
#~ msgstr "Trova testo"
5891
5892
#, fuzzy
5893
#~ msgid "Enoding Options"
5894
#~ msgstr "Raggruppamento"
5895
5896
#, fuzzy
5897
#~ msgid "Edit Collection Fields..."
5898
#~ msgstr "Chiusura ..."
5899
5900
#, fuzzy
5901
#~ msgid "&Create new collection"
5902
#~ msgstr "Crea un nuovo documento"
5903
5904
#, fuzzy
5905
#~ msgid "*.txt|Text files (*.txt)"
5906
#~ msgstr "*.xsl|file XSLT (*.xsl)"
5907
5908
#~ msgid "New Book"
5909
#~ msgstr "Nuovo libro"
5910
5911
#, fuzzy
5912
#~ msgid "Modify Books"
5913
#~ msgstr "Modifica libro"
5914
5915
#, fuzzy
5916
#~ msgid "Delete Books"
5917
#~ msgstr "Cancella libro"
5918
5919
#~ msgid "Group Books By"
5920
#~ msgstr "Raggruppa libri per"
5921
5922
#~ msgid "Configure the options for the application..."
5923
#~ msgstr "Configura le opzioni di Tellico ..."
5924
5925
#~ msgid "Importing from Bibtex..."
5926
#~ msgstr "Sto importando da bibtex ..."
5927
5928
#~ msgid "Import from Bibtex..."
5929
#~ msgstr "Sto importando da bibtex ..."
5930
5931
#~ msgid "Importing from Bibtexml..."
5932
#~ msgstr "Sto importando da bibtexml ..."
5933
5934
#~ msgid "Song"
5935
#~ msgstr "Canzone"
5936
5937
#~ msgid "CD"
5938
#~ msgstr "CD"
5939
5940
#~ msgid "Clear Data"
5941
#~ msgstr "Cancella dati"
5942
5943
#~ msgid ""
5944
#~ "*.tc *.bc|Tellico files (*.tc)\n"
5945
#~ "*.xml|XML files (*.xml)\n"
5946
#~ "*|All files"
5947
#~ msgstr ""
5948
#~ "*.tc *.bc|file di Tellico (*.tc)\n"
5949
#~ "*.xml|file XML (*.xml)\n"
5950
#~ "*|tutti i file"
5951
5952
#, fuzzy
5953
#~ msgid "Unable to upload file - %1."
5954
#~ msgstr "Impossibile scaricare il file - %1."
5955
5956
#, fuzzy
5957
#~ msgid "Unable to write file - %1."
5958
#~ msgstr "Impossibile leggere il file - %1."
5959
5960
#~ msgid ""
5961
#~ "Unable to find a file needed for printing - %1.\n"
5962
#~ "Please check your installation."
5963
#~ msgstr ""
5964
#~ "Impossibile trovare un file necessario per la stampa - %1.\n"
5965
#~ "Controlla la tua installazione, grazie."
5966
5967
#, fuzzy
5968
#~ msgid "Unable to find file - %1."
5969
#~ msgstr "Impossibile aprire il file - %1."
5970
5971
#~ msgid "Unable to download file - %1."
5972
#~ msgstr "Impossibile scaricare il file - %1."
5973
5974
#~ msgid "Unable to open file - %1."
5975
#~ msgstr "Impossibile aprire il file - %1."
5976
5977
#~ msgid "Unable to read file - %1."
5978
#~ msgstr "Impossibile leggere il file - %1."
5979
5980
#~ msgid "File is not in XML format - %1."
5981
#~ msgstr "Il file non ha l'aspetto di un file XML -%1."
5982
5983
#, fuzzy
5984
#~ msgid "Unable to load file - %1."
5985
#~ msgstr "Impossibile scaricare il file - %1."
5986
5987
#, fuzzy
5988
#~ msgid "File has no syntax version - %1."
5989
#~ msgstr "Il file non ha l'aspetto di un file XML -%1."
5990
5991
#~ msgid "8mm"
5992
#~ msgstr "8mm"
5993
5994
#~ msgid "LaserDisc"
5995
#~ msgstr "LaserDisc"
5996
5997
#~ msgid "Betamax"
5998
#~ msgstr "Beta"
5999
6000
#~ msgid "CDs"
6001
#~ msgstr "CD"
6002
6003
#~ msgid "%1 %2"
6004
#~ msgstr "%1 %2"
6005
6006
#, fuzzy
6007
#~ msgid ""
6008
#~ "Unable to find a required file - %1.\n"
6009
#~ "Please check your installation."
6010
#~ msgstr ""
6011
#~ "Impossibile trovare un file necessario per la stampa - %1.\n"
6012
#~ "Controlla la tua installazione, grazie."
6013
6014
#~ msgid "(None)"
6015
#~ msgstr "(Nessuno)"
6016
6017
#~ msgid "Full Contents"
6018
#~ msgstr "Intero contenuto"
6019
6020
#~ msgid "Creates a full report"
6021
#~ msgstr "Crea un report completo"
6022
6023
#~ msgid "Unable to find %1 in standard KDE directories."
6024
#~ msgstr "Impossibile trovare %1 nelle directory standard di KDE."
6025
5338
6026
#~ msgid "Show Browse Toolbar"
6027
#~ msgstr "Mostra la barra di navigazione"
(-)a/po/pt_BR.po (-1700 / +1248 lines)
Lines 1-86 Link Here
1
# translation of pt_BR.po to Brazillian Portuguese
1
# translation of pt_BR.po to Brazilian Portuguese
2
# Copyright (C) 2007 Robby Stephenson <robby@periapsis.org>.
2
# Copyright (C) 2007 Robby Stephenson <robby@periapsis.org>.
3
#
3
#
4
# Claudio Henrique Fortes Felix <claudio@helpo.com.br>, 2006.
4
# Claudio Henrique Fortes Felix <claudio@helpo.com.br>, 2006.
5
# Doutor Zero <doutor.zero@gmail.com>, 2008.
5
msgid ""
6
msgid ""
6
msgstr ""
7
msgstr ""
7
"Project-Id-Version: pt_BR\n"
8
"Project-Id-Version: pt_BR\n"
8
"POT-Creation-Date: 2008-01-26 10:52-0800\n"
9
"POT-Creation-Date: 2007-06-22 17:58-0700\n"
9
"PO-Revision-Date: 2006-12-25 01:47-0200\n"
10
"PO-Revision-Date: 2008-11-01 09:36-0200\n"
10
"Last-Translator: Claudio Henrique Fortes Felix <claudio@helpo.com.br>\n"
11
"Last-Translator: Doutor Zero <doutor.zero@gmail.com>\n"
11
"Language-Team: Brazillian Portuguese\n"
12
"Language-Team: Brazilian Portuguese <kde-i18n-pt_BR@mail.kde.org>\n"
12
"MIME-Version: 1.0\n"
13
"MIME-Version: 1.0\n"
13
"Content-Type: text/plain; charset=UTF-8\n"
14
"Content-Type: text/plain; charset=UTF-8\n"
14
"Content-Transfer-Encoding: 8bit\n"
15
"Content-Transfer-Encoding: 8bit\n"
15
"X-Generator: KBabel 1.11.4\n"
16
"X-Generator: KBabel 1.11.4\n"
16
"Plural-Forms:  nplurals=2; plural=(n > 1);\n"
17
"Plural-Forms:  nplurals=2; plural=(n > 1);\n"
17
18
18
#: cite/lyxpipe.cpp:50
19
#: cite/lyxpipe.cpp:49
19
msgid "<qt>Tellico is unable to write to the server pipe at <b>%1</b>.</qt>"
20
msgid "<qt>Tellico is unable to write to the server pipe at <b>%1</b>.</qt>"
20
msgstr ""
21
msgstr ""
21
"<qt>Tellico não conseguiu escrever para o 'pipe' do servidor em "
22
"<qt>Tellico não conseguiu escrever para o 'pipe' do servidor em <b>%1</b>.</"
22
"<b>%1</b>.</qt>"
23
"qt>"
23
24
24
#: cite/openoffice.cpp:82
25
#: cite/openoffice.cpp:81
25
msgid "Connecting to OpenOffice.org..."
26
msgid "Connecting to OpenOffice.org..."
26
msgstr "Conectando ao OpenOffice.org..."
27
msgstr "Conectando ao OpenOffice.org..."
27
28
28
#: cite/openoffice.cpp:165 cite/openoffice.cpp:186
29
#: cite/openoffice.cpp:164 cite/openoffice.cpp:185
29
msgid "OpenOffice.org Connection"
30
msgid "OpenOffice.org Connection"
30
msgstr "Conexão ao OpenOffice.org"
31
msgstr "Conexão ao OpenOffice.org"
31
32
32
#: cite/openoffice.cpp:179
33
#: cite/openoffice.cpp:178
33
msgid ""
34
msgid ""
34
"Tellico was unable to connect to OpenOffice.org. Please verify the "
35
"Tellico was unable to connect to OpenOffice.org. Please verify the "
35
"connection settings below, and that OpenOffice.org Writer is currently "
36
"connection settings below, and that OpenOffice.org Writer is currently "
36
"running."
37
"running."
37
msgstr ""
38
msgstr ""
38
"Tellico não conseguiu se conectar ao OpenOffice.org. Por favor verifique as "
39
"Tellico não conseguiu se conectar ao OpenOffice.org. Por favor verifique as "
39
"opções de conexão abaixo e verifique se o OpenOffice.org Writer está "
40
"opções de conexão abaixo e verifique se o OpenOffice.org Writer está rodando."
40
"rodando."
41
41
42
#: cite/openoffice.cpp:191
42
#: cite/openoffice.cpp:190
43
msgid "Pipe"
43
msgid "Pipe"
44
msgstr "Pipe"
44
msgstr "Pipe"
45
45
46
#: cite/openoffice.cpp:193
46
#: cite/openoffice.cpp:192
47
msgid "TCP/IP"
47
msgid "TCP/IP"
48
msgstr "TCP/IP"
48
msgstr "TCP/IP"
49
49
50
#: gui/tablefieldwidget.cpp:181
50
#: gui/tablefieldwidget.cpp:180
51
msgid "Rename Column"
51
msgid "Rename Column"
52
msgstr "Renomear Coluna"
52
msgstr "Renomear Coluna"
53
53
54
#: gui/tablefieldwidget.cpp:181
54
#: gui/tablefieldwidget.cpp:180
55
msgid "New column name:"
55
msgid "New column name:"
56
msgstr "Novo nome da coluna:"
56
msgstr "Novo nome da coluna:"
57
57
58
#: gui/tablefieldwidget.cpp:206
58
#: gui/tablefieldwidget.cpp:205
59
#, c-format
59
#, c-format
60
msgid "Column %1"
60
msgid "Column %1"
61
msgstr "Coluna %1"
61
msgstr "Coluna %1"
62
62
63
#: gui/tablefieldwidget.cpp:241 gui/tablefieldwidget.cpp:289
63
#: gui/tablefieldwidget.cpp:240 gui/tablefieldwidget.cpp:288
64
msgid "Rename Column..."
64
msgid "Rename Column..."
65
msgstr "Renomear Coluna..."
65
msgstr "Renomear Coluna..."
66
66
67
#: gui/tablefieldwidget.cpp:274
67
#: gui/tablefieldwidget.cpp:273
68
msgid "Insert Row"
68
msgid "Insert Row"
69
msgstr "Inserir Linha "
69
msgstr "Inserir Linha "
70
70
71
#: gui/tablefieldwidget.cpp:276
71
#: gui/tablefieldwidget.cpp:275
72
msgid "Remove Row"
72
msgid "Remove Row"
73
msgstr "Remover Linha "
73
msgstr "Remover Linha "
74
74
75
#: gui/tablefieldwidget.cpp:278
75
#: gui/tablefieldwidget.cpp:277
76
msgid "Move Row Up"
76
msgid "Move Row Up"
77
msgstr "Mover Linha para Cima"
77
msgstr "Mover Linha para Cima"
78
78
79
#: gui/tablefieldwidget.cpp:283
79
#: gui/tablefieldwidget.cpp:282
80
msgid "Move Row Down"
80
msgid "Move Row Down"
81
msgstr "Mover Linha para Baixo"
81
msgstr "Mover Linha para Baixo"
82
82
83
#: gui/tablefieldwidget.cpp:295
83
#: gui/tablefieldwidget.cpp:294
84
msgid "Clear Table"
84
msgid "Clear Table"
85
msgstr "Limpar Tabela"
85
msgstr "Limpar Tabela"
86
86
Lines 116-133 msgid "" Link Here
116
"Clear"
116
"Clear"
117
msgstr "Limpar"
117
msgstr "Limpar"
118
118
119
#: gui/imagewidget.cpp:57
119
#: gui/imagewidget.cpp:53
120
msgid "Select Image..."
120
msgid "Select Image..."
121
msgstr "Selecionar Imagem..."
121
msgstr "Selecionar Imagem..."
122
122
123
#: gui/imagewidget.cpp:63
124
msgid "Save link only"
125
msgstr ""
126
127
#: gui/imagewidget.cpp:162
128
msgid "Saving a link is only possible for newly added images."
129
msgstr ""
130
131
#: commands/modifyentries.cpp:73 commands/updateentries.cpp:50
123
#: commands/modifyentries.cpp:73 commands/updateentries.cpp:50
132
#, c-format
124
#, c-format
133
msgid ""
125
msgid ""
Lines 147-153 msgstr "Combinar Coleção" Link Here
147
msgid "Replace Collection"
139
msgid "Replace Collection"
148
msgstr "Substituir Coleção"
140
msgstr "Substituir Coleção"
149
141
150
#: commands/modifyentries.cpp:72 entryeditdialog.cpp:365
142
#: commands/modifyentries.cpp:72
151
msgid "Modify Entries"
143
msgid "Modify Entries"
152
msgstr "Modificar Registros"
144
msgstr "Modificar Registros"
153
145
Lines 231-497 msgid "" Link Here
231
"Check-in %1"
223
"Check-in %1"
232
msgstr "Registrar entrada de %1"
224
msgstr "Registrar entrada de %1"
233
225
234
#: collectionfactory.cpp:83 collections/bibtexcollection.cpp:24
226
#: collectionfactory.cpp:79 collections/bibtexcollection.cpp:24
235
#: collections/bibtexcollection.cpp:58 collections/bibtexcollection.cpp:88
227
#: collections/bibtexcollection.cpp:59 collections/bibtexcollection.cpp:89
236
#: collections/boardgamecollection.cpp:19 collections/bookcollection.cpp:19
228
#: collections/bookcollection.cpp:19 collections/bookcollection.cpp:41
237
#: collections/bookcollection.cpp:40 collections/cardcollection.cpp:19
229
#: collections/cardcollection.cpp:19 collections/coincollection.cpp:19
238
#: collections/coincollection.cpp:19 collections/comicbookcollection.cpp:19
230
#: collections/comicbookcollection.cpp:19 collections/filecatalog.cpp:19
239
#: collections/filecatalog.cpp:19 collections/gamecollection.cpp:19
231
#: collections/gamecollection.cpp:19 collections/musiccollection.cpp:19
240
#: collections/musiccollection.cpp:19 collections/stampcollection.cpp:19
232
#: collections/stampcollection.cpp:19 collections/videocollection.cpp:19
241
#: collections/videocollection.cpp:19 collections/videocollection.cpp:40
233
#: collections/videocollection.cpp:41 collections/winecollection.cpp:19
242
#: collections/winecollection.cpp:19 configdialog.cpp:198
234
#: configdialog.cpp:192 fetch/imdbfetcher.cpp:689 fetch/imdbfetcher.cpp:933
243
#: fetch/imdbfetcher.cpp:689 fetch/imdbfetcher.cpp:948 field.cpp:40
235
#: field.cpp:40 field.cpp:72 translators/gcfilmsimporter.cpp:54
244
#: field.cpp:72 translators/gcfilmsimporter.cpp:78
245
msgid "General"
236
msgid "General"
246
msgstr "Geral "
237
msgstr "Geral "
247
238
248
#: collections/bookcollection.cpp:143 collections/comicbookcollection.cpp:122
249
#: collections/stampcollection.cpp:20
250
msgid "Condition"
251
msgstr "Condição"
252
253
#: collections/boardgamecollection.cpp:20 collections/bookcollection.cpp:22
254
#: collections/cardcollection.cpp:20 collections/coincollection.cpp:20
255
#: collections/comicbookcollection.cpp:22 collections/gamecollection.cpp:20
256
#: collections/musiccollection.cpp:20 collections/stampcollection.cpp:21
257
#: collections/videocollection.cpp:22 collections/winecollection.cpp:20
258
#: document.cpp:468
259
msgid "Personal"
260
msgstr "Pessoal"
261
262
#: collections/stampcollection.cpp:27
263
msgid "My Stamps"
264
msgstr "Meus Selos"
265
266
#: collectionfactory.cpp:82 collections/bibtexcollection.cpp:56
267
#: collections/boardgamecollection.cpp:37 collections/bookcollection.cpp:39
268
#: collections/cardcollection.cpp:37 collections/coincollection.cpp:37
269
#: collections/comicbookcollection.cpp:39 collections/gamecollection.cpp:37
270
#: collections/musiccollection.cpp:76 collections/stampcollection.cpp:38
271
#: collections/videocollection.cpp:39 collections/winecollection.cpp:37
272
#: entryupdater.cpp:229 fetch/fetchmanager.cpp:68 fetchdialog.cpp:169
273
#: translators/audiofileimporter.cpp:164 translators/tellicoimporter.cpp:439
274
msgid "Title"
275
msgstr "Título"
276
277
#: collections/boardgamecollection.cpp:77 collections/filecatalog.cpp:45
278
#: collections/gamecollection.cpp:87 collections/stampcollection.cpp:44
279
#: entryupdater.cpp:230 fetchdialog.cpp:170
280
msgid "Description"
281
msgstr "Descrição"
282
283
#. TRANSLATORS: denomination refers to the monetary value.
284
#: collections/coincollection.cpp:51 collections/stampcollection.cpp:50
285
msgid "Denomination"
286
msgstr "Denominação"
287
288
#: collections/coincollection.cpp:67 collections/comicbookcollection.cpp:94
289
#: collections/stampcollection.cpp:55 collections/winecollection.cpp:73
290
msgid "Country"
291
msgstr "País"
292
293
#: collections/stampcollection.cpp:61
294
msgid "Issue Year"
295
msgstr "Ano de Edição"
296
297
#: collections/stampcollection.cpp:66 collections/videocollection.cpp:172
298
msgid "Color"
299
msgstr "Cor"
300
301
#: collections/stampcollection.cpp:71
302
msgid "Scott#"
303
msgstr "Scott#"
304
305
#: collections/stampcollection.cpp:78
306
msgid ""
307
"_: Stamp grade levels - Superb,Extremely Fine,Very Fine,Fine,Average,Poor\n"
308
"Superb,Extremely Fine,Very Fine,Fine,Average,Poor"
309
msgstr "Soberbo,Excelente,Muito Bom,Bom,Regular,Ruim"
310
311
#: collections/coincollection.cpp:88 collections/stampcollection.cpp:80
312
msgid "Grade"
313
msgstr "Classificação"
314
315
#: collections/stampcollection.cpp:85
316
msgid "Cancelled"
317
msgstr "Cancelado"
318
319
#. TRANSLATORS: See http://en.wikipedia.org/wiki/Stamp_hinge
320
#: collections/stampcollection.cpp:90
321
msgid "Hinged"
322
msgstr "Articulado"
323
324
#: collections/stampcollection.cpp:95
325
msgid "Centering"
326
msgstr "Centrada"
327
328
#: collections/stampcollection.cpp:100
329
msgid "Gummed"
330
msgstr "Colado"
331
332
#: collections/boardgamecollection.cpp:85 collections/bookcollection.cpp:64
333
#: collections/cardcollection.cpp:82 collections/coincollection.cpp:103
334
#: collections/comicbookcollection.cpp:126 collections/gamecollection.cpp:99
335
#: collections/musiccollection.cpp:86 collections/stampcollection.cpp:105
336
#: collections/videocollection.cpp:190 collections/winecollection.cpp:79
337
msgid "Purchase Date"
338
msgstr "Data de compra"
339
340
#: collections/boardgamecollection.cpp:94 collections/bookcollection.cpp:69
341
#: collections/cardcollection.cpp:87 collections/coincollection.cpp:108
342
#: collections/comicbookcollection.cpp:131 collections/gamecollection.cpp:108
343
#: collections/musiccollection.cpp:95 collections/stampcollection.cpp:110
344
#: collections/videocollection.cpp:199 collections/winecollection.cpp:84
345
msgid "Purchase Price"
346
msgstr "Preço de compra"
347
348
#: collections/cardcollection.cpp:91 collections/coincollection.cpp:112
349
#: collections/stampcollection.cpp:114 collections/winecollection.cpp:88
350
msgid "Location"
351
msgstr "Localização"
352
353
#: collections/boardgamecollection.cpp:90 collections/bookcollection.cpp:155
354
#: collections/cardcollection.cpp:96 collections/coincollection.cpp:118
355
#: collections/comicbookcollection.cpp:139 collections/gamecollection.cpp:104
356
#: collections/musiccollection.cpp:91 collections/stampcollection.cpp:120
357
#: collections/videocollection.cpp:195 collections/winecollection.cpp:107
358
msgid "Gift"
359
msgstr "Presente"
360
361
#: collections/stampcollection.cpp:124 field.cpp:497
362
msgid "Image"
363
msgstr "Imagem "
364
365
#: collections/boardgamecollection.cpp:105 collections/bookcollection.cpp:171
366
#: collections/cardcollection.cpp:115 collections/coincollection.cpp:128
367
#: collections/comicbookcollection.cpp:150 collections/gamecollection.cpp:119
368
#: collections/musiccollection.cpp:111 collections/stampcollection.cpp:127
369
#: collections/videocollection.cpp:210 collections/winecollection.cpp:114
370
msgid "Comments"
371
msgstr "Comentários"
372
373
#: collections/bibtexcollection.cpp:25 collections/bookcollection.cpp:20
239
#: collections/bibtexcollection.cpp:25 collections/bookcollection.cpp:20
374
#: collections/comicbookcollection.cpp:20 translators/grs1importer.cpp:58
240
#: collections/comicbookcollection.cpp:20 translators/grs1importer.cpp:58
375
#: translators/grs1importer.cpp:68 translators/pdfimporter.cpp:174
241
#: translators/grs1importer.cpp:68 translators/risimporter.cpp:258
376
#: translators/risimporter.cpp:281
377
msgid "Publishing"
242
msgid "Publishing"
378
msgstr "Publicação"
243
msgstr "Publicação"
379
244
380
#: collections/bookcollection.cpp:21 collections/comicbookcollection.cpp:21
245
#: collections/bookcollection.cpp:21 collections/comicbookcollection.cpp:21
381
#: translators/grs1importer.cpp:63 translators/risimporter.cpp:275
246
#: translators/grs1importer.cpp:63 translators/risimporter.cpp:252
382
msgid "Classification"
247
msgid "Classification"
383
msgstr "Classificação"
248
msgstr "Classificação"
384
249
250
#: collections/bookcollection.cpp:22 collections/cardcollection.cpp:20
251
#: collections/coincollection.cpp:20 collections/comicbookcollection.cpp:22
252
#: collections/gamecollection.cpp:20 collections/musiccollection.cpp:20
253
#: collections/stampcollection.cpp:21 collections/videocollection.cpp:22
254
#: collections/winecollection.cpp:20 document.cpp:464
255
msgid "Personal"
256
msgstr "Pessoal"
257
385
#: collections/comicbookcollection.cpp:28
258
#: collections/comicbookcollection.cpp:28
259
msgid "Comics"
260
msgstr "Revistas em Quadrinhos"
261
262
#: collections/comicbookcollection.cpp:29
386
msgid "My Comic Books"
263
msgid "My Comic Books"
387
msgstr "Minhas Revistas em Quadrinhos"
264
msgstr "Minhas Revistas em Quadrinhos"
388
265
389
#: collections/bookcollection.cpp:45 collections/comicbookcollection.cpp:45
266
#: collectionfactory.cpp:78 collections/bibtexcollection.cpp:57
267
#: collections/bookcollection.cpp:40 collections/cardcollection.cpp:38
268
#: collections/coincollection.cpp:38 collections/comicbookcollection.cpp:40
269
#: collections/gamecollection.cpp:38 collections/musiccollection.cpp:77
270
#: collections/stampcollection.cpp:39 collections/videocollection.cpp:40
271
#: collections/winecollection.cpp:38 entryupdater.cpp:231
272
#: fetch/fetchmanager.cpp:62 fetchdialog.cpp:159
273
#: translators/audiofileimporter.cpp:150 translators/tellicoimporter.cpp:405
274
msgid "Title"
275
msgstr "Título"
276
277
#: collections/bookcollection.cpp:46 collections/comicbookcollection.cpp:46
390
msgid "Subtitle"
278
msgid "Subtitle"
391
msgstr "Sub-Título"
279
msgstr "Sub-Título"
392
280
393
#: collections/comicbookcollection.cpp:50 collections/videocollection.cpp:121
281
#: collections/comicbookcollection.cpp:51 collections/videocollection.cpp:122
394
msgid "Writer"
282
msgid "Writer"
395
msgstr "Escritor"
283
msgstr "Escritor"
396
284
397
#: collections/comicbookcollection.cpp:56
285
#: collections/comicbookcollection.cpp:57
398
msgid ""
286
msgid ""
399
"_: Comic Book Illustrator\n"
287
"_: Comic Book Illustrator\n"
400
"Artist"
288
"Artist"
401
msgstr "Artista Gráfico"
289
msgstr "Artista Gráfico"
402
290
403
#: collections/bibtexcollection.cpp:200 collections/bookcollection.cpp:132
291
#: collections/bibtexcollection.cpp:195 collections/bookcollection.cpp:127
404
#: collections/cardcollection.cpp:71 collections/comicbookcollection.cpp:62
292
#: collections/cardcollection.cpp:72 collections/comicbookcollection.cpp:63
405
msgid "Series"
293
msgid "Series"
406
msgstr "Série"
294
msgstr "Série"
407
295
408
#: collections/comicbookcollection.cpp:68
296
#: collections/comicbookcollection.cpp:69
409
msgid "Issue"
297
msgid "Issue"
410
msgstr "Número"
298
msgstr "Número"
411
299
412
#: collections/bibtexcollection.cpp:120 collections/boardgamecollection.cpp:60
300
#: collections/bibtexcollection.cpp:121 collections/bookcollection.cpp:74
413
#: collections/bookcollection.cpp:73 collections/comicbookcollection.cpp:73
301
#: collections/comicbookcollection.cpp:74
414
msgid "Publisher"
302
msgid "Publisher"
415
msgstr "Editora"
303
msgstr "Editora"
416
304
417
#: collections/bibtexcollection.cpp:133 collections/bookcollection.cpp:79
305
#: collections/bibtexcollection.cpp:134 collections/bookcollection.cpp:80
418
#: collections/comicbookcollection.cpp:79
306
#: collections/comicbookcollection.cpp:80
419
msgid "Edition"
307
msgid "Edition"
420
msgstr "Edição"
308
msgstr "Edição"
421
309
422
#: collections/bookcollection.cpp:90 collections/comicbookcollection.cpp:85
310
#: collections/bookcollection.cpp:91 collections/comicbookcollection.cpp:86
423
msgid "Publication Year"
311
msgid "Publication Year"
424
msgstr "Ano de Publicação"
312
msgstr "Ano de Publicação"
425
313
426
#: collections/bibtexcollection.cpp:140 collections/bookcollection.cpp:105
314
#: collections/bibtexcollection.cpp:141 collections/bookcollection.cpp:106
427
#: collections/comicbookcollection.cpp:90
315
#: collections/comicbookcollection.cpp:91
428
msgid "Pages"
316
msgid "Pages"
429
msgstr "Páginas"
317
msgstr "Páginas"
430
318
431
#: collections/bookcollection.cpp:115 collections/comicbookcollection.cpp:100
319
#: collections/coincollection.cpp:68 collections/comicbookcollection.cpp:95
320
#: collections/stampcollection.cpp:56 collections/winecollection.cpp:74
321
msgid "Country"
322
msgstr "País"
323
324
#: collections/bookcollection.cpp:110 collections/comicbookcollection.cpp:101
432
#: translators/grs1importer.cpp:67
325
#: translators/grs1importer.cpp:67
433
msgid "Language"
326
msgid "Language"
434
msgstr "Língua"
327
msgstr "Língua"
435
328
436
#: collections/boardgamecollection.cpp:43 collections/bookcollection.cpp:120
329
#: collections/bookcollection.cpp:115 collections/comicbookcollection.cpp:107
437
#: collections/comicbookcollection.cpp:106 collections/gamecollection.cpp:54
330
#: collections/gamecollection.cpp:55 collections/musiccollection.cpp:68
438
#: collections/musiccollection.cpp:67 collections/videocollection.cpp:67
331
#: collections/videocollection.cpp:68
439
msgid "Genre"
332
msgid "Genre"
440
msgstr "Gênero"
333
msgstr "Gênero"
441
334
442
#: collections/bibtexcollection.cpp:222 collections/bookcollection.cpp:127
335
#: collections/bibtexcollection.cpp:217 collections/bookcollection.cpp:122
443
#: collections/cardcollection.cpp:100 collections/comicbookcollection.cpp:112
336
#: collections/cardcollection.cpp:101 collections/comicbookcollection.cpp:113
444
#: collections/musiccollection.cpp:103 fetch/amazonfetcher.cpp:933
337
#: collections/musiccollection.cpp:104 fetch/amazonfetcher.cpp:913
445
#: translators/grs1importer.cpp:62 translators/risimporter.cpp:273
338
#: translators/grs1importer.cpp:62 translators/risimporter.cpp:250
446
msgid "Keywords"
339
msgid "Keywords"
447
msgstr "Palavras-chave"
340
msgstr "Palavras-chave"
448
341
449
#: collections/comicbookcollection.cpp:120
342
#: collections/comicbookcollection.cpp:121
450
msgid ""
343
msgid ""
451
"_: Comic book grade levels - Mint,Near Mint,Very Fine,Fine,Very "
344
"_: Comic book grade levels - Mint,Near Mint,Very Fine,Fine,Very Good,Good,"
452
"Good,Good,Fair,Poor\n"
345
"Fair,Poor\n"
453
"Mint,Near Mint,Very Fine,Fine,Very Good,Good,Fair,Poor"
346
"Mint,Near Mint,Very Fine,Fine,Very Good,Good,Fair,Poor"
454
msgstr "Novo,Quase novo,Excelente,Ótimo,Muito bom,Bom,Razoável,Ruim"
347
msgstr "Novo,Quase novo,Excelente,Ótimo,Muito bom,Bom,Razoável,Ruim"
455
348
456
#: collections/bookcollection.cpp:147 collections/comicbookcollection.cpp:135
349
#: collections/bookcollection.cpp:138 collections/comicbookcollection.cpp:123
350
#: collections/stampcollection.cpp:20
351
msgid "Condition"
352
msgstr "Condição"
353
354
#: collections/bookcollection.cpp:65 collections/cardcollection.cpp:83
355
#: collections/coincollection.cpp:104 collections/comicbookcollection.cpp:127
356
#: collections/gamecollection.cpp:100 collections/musiccollection.cpp:87
357
#: collections/stampcollection.cpp:106 collections/videocollection.cpp:191
358
#: collections/winecollection.cpp:80
359
msgid "Purchase Date"
360
msgstr "Data de compra"
361
362
#: collections/bookcollection.cpp:70 collections/cardcollection.cpp:88
363
#: collections/coincollection.cpp:109 collections/comicbookcollection.cpp:132
364
#: collections/gamecollection.cpp:109 collections/musiccollection.cpp:96
365
#: collections/stampcollection.cpp:111 collections/videocollection.cpp:200
366
#: collections/winecollection.cpp:85
367
msgid "Purchase Price"
368
msgstr "Preço de compra"
369
370
#: collections/bookcollection.cpp:142 collections/comicbookcollection.cpp:136
457
msgid "Signed"
371
msgid "Signed"
458
msgstr "Autografado"
372
msgstr "Autografado"
459
373
460
#: collections/boardgamecollection.cpp:98 collections/bookcollection.cpp:159
374
#: collections/bookcollection.cpp:150 collections/cardcollection.cpp:97
461
#: collections/comicbookcollection.cpp:143 collections/gamecollection.cpp:112
375
#: collections/coincollection.cpp:119 collections/comicbookcollection.cpp:140
462
#: collections/musiccollection.cpp:99 collections/videocollection.cpp:203
376
#: collections/gamecollection.cpp:105 collections/musiccollection.cpp:92
463
#: document.cpp:466
377
#: collections/stampcollection.cpp:121 collections/videocollection.cpp:196
378
#: collections/winecollection.cpp:108
379
msgid "Gift"
380
msgstr "Presente"
381
382
#: collections/bookcollection.cpp:154 collections/comicbookcollection.cpp:144
383
#: collections/gamecollection.cpp:113 collections/musiccollection.cpp:100
384
#: collections/videocollection.cpp:204 document.cpp:462
464
msgid "Loaned"
385
msgid "Loaned"
465
msgstr "Emprestado"
386
msgstr "Emprestado"
466
387
467
#: collections/bookcollection.cpp:168 collections/comicbookcollection.cpp:147
388
#: collections/bookcollection.cpp:163 collections/comicbookcollection.cpp:148
468
#: fetch/arxivfetcher.cpp:216 fetch/crossreffetcher.cpp:206
469
#: translators/pdfimporter.cpp:204 translators/referencerimporter.cpp:48
470
msgid "Front Cover"
389
msgid "Front Cover"
471
msgstr "Capa"
390
msgstr "Capa"
472
391
392
#: collections/bookcollection.cpp:166 collections/cardcollection.cpp:116
393
#: collections/coincollection.cpp:129 collections/comicbookcollection.cpp:151
394
#: collections/gamecollection.cpp:120 collections/musiccollection.cpp:112
395
#: collections/stampcollection.cpp:128 collections/videocollection.cpp:211
396
#: collections/winecollection.cpp:115
397
msgid "Comments"
398
msgstr "Comentários"
399
400
#: collections/stampcollection.cpp:27
401
msgid "Stamps"
402
msgstr "Selos"
403
404
#: collections/stampcollection.cpp:28
405
msgid "My Stamps"
406
msgstr "Meus Selos"
407
408
#: collections/filecatalog.cpp:46 collections/gamecollection.cpp:88
409
#: collections/stampcollection.cpp:45 entryupdater.cpp:232 fetchdialog.cpp:160
410
msgid "Description"
411
msgstr "Descrição"
412
413
#. TRANSLATORS: denomination refers to the monetary value.
414
#: collections/coincollection.cpp:52 collections/stampcollection.cpp:51
415
msgid "Denomination"
416
msgstr "Denominação"
417
418
#: collections/stampcollection.cpp:62
419
msgid "Issue Year"
420
msgstr "Ano de Edição"
421
422
#: collections/stampcollection.cpp:67 collections/videocollection.cpp:173
423
msgid "Color"
424
msgstr "Cor"
425
426
#: collections/stampcollection.cpp:72
427
msgid "Scott#"
428
msgstr "Scott#"
429
430
#: collections/stampcollection.cpp:79
431
msgid ""
432
"_: Stamp grade levels - Superb,Extremely Fine,Very Fine,Fine,Average,Poor\n"
433
"Superb,Extremely Fine,Very Fine,Fine,Average,Poor"
434
msgstr "Soberbo,Excelente,Muito Bom,Bom,Regular,Ruim"
435
436
#: collections/coincollection.cpp:89 collections/stampcollection.cpp:81
437
msgid "Grade"
438
msgstr "Classificação"
439
440
#: collections/stampcollection.cpp:86
441
msgid "Cancelled"
442
msgstr "Cancelado"
443
444
#. TRANSLATORS: See http://en.wikipedia.org/wiki/Stamp_hinge
445
#: collections/stampcollection.cpp:91
446
msgid "Hinged"
447
msgstr "Articulado"
448
449
#: collections/stampcollection.cpp:96
450
msgid "Centering"
451
msgstr "Centrada"
452
453
#: collections/stampcollection.cpp:101
454
msgid "Gummed"
455
msgstr "Colado"
456
457
#: collections/cardcollection.cpp:92 collections/coincollection.cpp:113
458
#: collections/stampcollection.cpp:115 collections/winecollection.cpp:89
459
msgid "Location"
460
msgstr "Localização"
461
462
#: collections/stampcollection.cpp:125 field.cpp:489
463
msgid "Image"
464
msgstr "Imagem "
465
473
#: collections/coincollection.cpp:26
466
#: collections/coincollection.cpp:26
467
msgid "Coins"
468
msgstr "Moedas"
469
470
#: collections/coincollection.cpp:27
474
msgid "My Coins"
471
msgid "My Coins"
475
msgstr "Minhas Moedas"
472
msgstr "Minhas Moedas"
476
473
477
#: collections/coincollection.cpp:44 collections/winecollection.cpp:68
474
#: collections/coincollection.cpp:45 collections/winecollection.cpp:69
478
msgid "Type"
475
msgid "Type"
479
msgstr "Tipo"
476
msgstr "Tipo"
480
477
481
#: collections/bibtexcollection.cpp:145 collections/cardcollection.cpp:66
478
#: collections/bibtexcollection.cpp:146 collections/cardcollection.cpp:67
482
#: collections/coincollection.cpp:56 collections/musiccollection.cpp:62
479
#: collections/coincollection.cpp:57 collections/musiccollection.cpp:63
483
msgid "Year"
480
msgid "Year"
484
msgstr "Ano"
481
msgstr "Ano"
485
482
486
#: collections/coincollection.cpp:61
483
#: collections/coincollection.cpp:62
487
msgid "Mint Mark"
484
msgid "Mint Mark"
488
msgstr "Marca da Casa Emissora"
485
msgstr "Marca da Casa Emissora"
489
486
490
#: collections/coincollection.cpp:73
487
#: collections/coincollection.cpp:74
491
msgid "Coin Set"
488
msgid "Coin Set"
492
msgstr "Conjunto de Moedas"
489
msgstr "Conjunto de Moedas"
493
490
494
#: collections/coincollection.cpp:83
491
#: collections/coincollection.cpp:84
495
msgid ""
492
msgid ""
496
"_: Coin grade levels - Proof-65,Proof-60,Mint State-65,Mint State-60,Almost "
493
"_: Coin grade levels - Proof-65,Proof-60,Mint State-65,Mint State-60,Almost "
497
"Uncirculated-55,Almost Uncirculated-50,Extremely Fine-40,Very Fine-30,Very "
494
"Uncirculated-55,Almost Uncirculated-50,Extremely Fine-40,Very Fine-30,Very "
Lines 500-720 msgid "" Link Here
500
"Uncirculated-50,Extremely Fine-40,Very Fine-30,Very Fine-20,Fine-12,Very "
497
"Uncirculated-50,Extremely Fine-40,Very Fine-30,Very Fine-20,Fine-12,Very "
501
"Good-8,Good-4,Fair"
498
"Good-8,Good-4,Fair"
502
msgstr ""
499
msgstr ""
503
"Proof-65,Proof-60,Mint-65,Mint-60,Quase não Circulada-55,Quase não "
500
"Proof-65,Proof-60,Mint-65,Mint-60,Quase não Circulada-55,Quase não Circulada-"
504
"Circulada-50,Extremamente Rara-40,Muito Rara-30,Muito Rara-20,Rara-12,Muito "
501
"50,Extremamente Rara-40,Muito Rara-30,Muito Rara-20,Rara-12,Muito Boa-8,Boa-"
505
"Boa-8,Boa-4,Razoável"
502
"4,Razoável"
506
503
507
#: collections/coincollection.cpp:96
504
#: collections/coincollection.cpp:97
508
msgid ""
505
msgid ""
509
"_: Coin grading services - PCGS,NGC,ANACS,ICG,ASA,PCI\n"
506
"_: Coin grading services - PCGS,NGC,ANACS,ICG,ASA,PCI\n"
510
"PCGS,NGC,ANACS,ICG,ASA,PCI"
507
"PCGS,NGC,ANACS,ICG,ASA,PCI"
511
msgstr "PCGS,NGC,ANACS,ICG,ASA,PCI"
508
msgstr "PCGS,NGC,ANACS,ICG,ASA,PCI"
512
509
513
#: collections/coincollection.cpp:98
510
#: collections/coincollection.cpp:99
514
msgid "Grading Service"
511
msgid "Grading Service"
515
msgstr "Serviços de Classificação"
512
msgstr "Serviços de Classificação"
516
513
517
#: collections/coincollection.cpp:122
514
#: collections/coincollection.cpp:123
518
msgid "Obverse"
515
msgid "Obverse"
519
msgstr "Observação"
516
msgstr "Observação"
520
517
521
#: collections/coincollection.cpp:125
518
#: collections/coincollection.cpp:126
522
msgid "Reverse"
519
msgid "Reverse"
523
msgstr "Verso"
520
msgstr "Verso"
524
521
525
#: collections/bookcollection.cpp:28
522
#: collections/bookcollection.cpp:28
523
msgid "Books"
524
msgstr "Livros"
525
526
#: collections/bookcollection.cpp:29
526
msgid "My Books"
527
msgid "My Books"
527
msgstr "Meus Livros"
528
msgstr "Meus Livros"
528
529
529
#: collections/bibtexcollection.cpp:79 collections/bookcollection.cpp:50
530
#: collections/bibtexcollection.cpp:80 collections/bookcollection.cpp:51
530
msgid "Author"
531
msgid "Author"
531
msgstr "Autor"
532
msgstr "Autor"
532
533
533
#: collections/bookcollection.cpp:57 translators/alexandriaimporter.cpp:135
534
#: collections/bookcollection.cpp:58 translators/alexandriaimporter.cpp:134
534
msgid "Hardback"
535
msgid "Hardback"
535
msgstr "Capa Dura"
536
msgstr "Capa Dura"
536
537
537
#: collections/bookcollection.cpp:57
538
#: collections/bookcollection.cpp:58
538
msgid "Paperback"
539
msgid "Paperback"
539
msgstr "Capa Flexível Econômica"
540
msgstr "Capa Flexível Econômica"
540
541
541
#: collections/bookcollection.cpp:57
542
#: collections/bookcollection.cpp:58
542
msgid "Trade Paperback"
543
msgid "Trade Paperback"
543
msgstr "Capa Flexível"
544
msgstr "Capa Flexível"
544
545
545
#: collections/bookcollection.cpp:58
546
#: collections/bookcollection.cpp:59
546
msgid "E-Book"
547
msgid "E-Book"
547
msgstr "Livro Eletrônico"
548
msgstr "Livro Eletrônico"
548
549
549
#: collections/bookcollection.cpp:58
550
#: collections/bookcollection.cpp:59
550
msgid "Magazine"
551
msgid "Magazine"
551
msgstr "Revista"
552
msgstr "Revista"
552
553
553
#: collections/bibtexcollection.cpp:157 collections/bookcollection.cpp:58
554
#: collections/bibtexcollection.cpp:158 collections/bookcollection.cpp:59
554
msgid "Journal"
555
msgid "Journal"
555
msgstr "Jornal"
556
msgstr "Jornal"
556
557
557
#: collections/bookcollection.cpp:59
558
#: collections/bookcollection.cpp:60
558
msgid "Binding"
559
msgid "Binding"
559
msgstr "Formato"
560
msgstr "Formato"
560
561
561
#: collections/bookcollection.cpp:85
562
#: collections/bookcollection.cpp:86
562
msgid "Copyright Year"
563
msgid "Copyright Year"
563
msgstr "Ano do Copyright"
564
msgstr "Ano do Copyright"
564
565
565
#: collections/bibtexcollection.cpp:151 collections/bookcollection.cpp:95
566
#: collections/bibtexcollection.cpp:152 collections/bookcollection.cpp:96
566
#: translators/grs1importer.cpp:57 translators/risimporter.cpp:278
567
#: translators/grs1importer.cpp:57 translators/risimporter.cpp:255
567
msgid "ISBN#"
568
msgid "ISBN#"
568
msgstr "ISBN#"
569
msgstr "ISBN#"
569
570
570
#: collections/bibtexcollection.cpp:154 collections/bookcollection.cpp:97
571
#: collections/bibtexcollection.cpp:155 collections/bookcollection.cpp:98
571
#: translators/grs1importer.cpp:59 translators/risimporter.cpp:282
572
#: translators/grs1importer.cpp:59 translators/risimporter.cpp:259
572
msgid "International Standard Book Number"
573
msgid "International Standard Book Number"
573
msgstr "Número Internacional Normalizado do Livro"
574
msgstr "Número Internacional Normalizado do Livro"
574
575
575
#: collections/bookcollection.cpp:100
576
#: collections/bookcollection.cpp:101
576
msgid "LCCN#"
577
msgid "LCCN#"
577
msgstr "LCCN#"
578
msgstr "LCCN#"
578
579
579
#: collections/bookcollection.cpp:102
580
#: collections/bookcollection.cpp:103
580
msgid "Library of Congress Control Number"
581
msgid "Library of Congress Control Number"
581
msgstr "Número de Controlo da Biblioteca do Congresso"
582
msgstr "Número de Controlo da Biblioteca do Congresso"
582
583
583
#: collections/bookcollection.cpp:109
584
#: collections/bookcollection.cpp:132
584
msgid "Translator"
585
msgstr ""
586
587
#: collections/bookcollection.cpp:137
588
msgid "Series Number"
585
msgid "Series Number"
589
msgstr "Nº de série"
586
msgstr "Nº de série"
590
587
591
#: collections/bookcollection.cpp:142 mainwindow.cpp:185
588
#: collections/bookcollection.cpp:137 mainwindow.cpp:192
592
msgid "New"
589
msgid "New"
593
msgstr "Novo "
590
msgstr "Novo "
594
591
595
#: collections/bookcollection.cpp:142
592
#: collections/bookcollection.cpp:137
596
msgid "Used"
593
msgid "Used"
597
msgstr "Usado"
594
msgstr "Usado"
598
595
599
#: collections/bookcollection.cpp:151
596
#: collections/bookcollection.cpp:146
600
msgid "Read"
597
msgid "Read"
601
msgstr "Lido"
598
msgstr "Lido"
602
599
603
#: collections/boardgamecollection.cpp:80 collections/bookcollection.cpp:163
600
#: collections/bookcollection.cpp:158 collections/musiccollection.cpp:82
604
#: collections/musiccollection.cpp:81 collections/winecollection.cpp:102
601
#: collections/winecollection.cpp:103 field.cpp:493 newstuff/dialog.cpp:114
605
#: field.cpp:501 newstuff/dialog.cpp:115
606
msgid "Rating"
602
msgid "Rating"
607
msgstr "Classificação "
603
msgstr "Classificação "
608
604
609
#: collections/filecatalog.cpp:25
605
#: collections/filecatalog.cpp:26
610
msgid "My Files"
606
msgid "My Files"
611
msgstr "Meus Arquivos"
607
msgstr "Meus Arquivos"
612
608
613
#: borrowerdialog.cpp:49 collections/filecatalog.cpp:36
609
#: borrowerdialog.cpp:49 collections/filecatalog.cpp:37
614
#: newstuff/dialog.cpp:113
610
#: newstuff/dialog.cpp:112
615
msgid "Name"
611
msgid "Name"
616
msgstr "Nome"
612
msgstr "Nome"
617
613
618
#: collections/bibtexcollection.cpp:227 collections/filecatalog.cpp:41
614
#: collections/filecatalog.cpp:42 fetch/entrezfetcher.cpp:396
619
#: fetch/entrezfetcher.cpp:400 fetch/entrezfetcher.cpp:487 field.cpp:495
615
#: fetch/entrezfetcher.cpp:465 field.cpp:487
620
#: translators/gcfilmsimporter.cpp:77 translators/risimporter.cpp:284
616
#: translators/gcfilmsimporter.cpp:53 translators/risimporter.cpp:261
621
msgid "URL"
617
msgid "URL"
622
msgstr "URL"
618
msgstr "URL"
623
619
624
#: collections/bibtexcollection.cpp:207 collections/filecatalog.cpp:50
620
#: collections/bibtexcollection.cpp:202 collections/filecatalog.cpp:51
625
msgid "Volume"
621
msgid "Volume"
626
msgstr "Volume"
622
msgstr "Volume"
627
623
628
#: collections/filecatalog.cpp:55
624
#: collections/filecatalog.cpp:56
629
msgid "Folder"
625
msgid "Folder"
630
msgstr "Pasta"
626
msgstr "Pasta"
631
627
632
#: collections/filecatalog.cpp:60
628
#: collections/filecatalog.cpp:61
633
msgid "Mimetype"
629
msgid "Mimetype"
634
msgstr "Tipo MIME"
630
msgstr "Tipo MIME"
635
631
636
#: collections/filecatalog.cpp:65
632
#: collections/filecatalog.cpp:66
637
msgid "Size"
633
msgid "Size"
638
msgstr "Tamanho"
634
msgstr "Tamanho"
639
635
640
#: collections/filecatalog.cpp:69
636
#: collections/filecatalog.cpp:70
641
msgid "Permissions"
637
msgid "Permissions"
642
msgstr "Permissões"
638
msgstr "Permissões"
643
639
644
#: collections/filecatalog.cpp:74
640
#: collections/filecatalog.cpp:75
645
msgid "Owner"
641
msgid "Owner"
646
msgstr "Dono"
642
msgstr "Dono"
647
643
648
#: collections/filecatalog.cpp:79
644
#: collections/filecatalog.cpp:80
649
msgid "Group"
645
msgid "Group"
650
msgstr "Grupo"
646
msgstr "Grupo"
651
647
652
#: collections/filecatalog.cpp:85
648
#: collections/filecatalog.cpp:86
653
msgid "Created"
649
msgid "Created"
654
msgstr "Criado"
650
msgstr "Criado"
655
651
656
#: collections/filecatalog.cpp:89
652
#: collections/filecatalog.cpp:90
657
msgid "Modified"
653
msgid "Modified"
658
msgstr "Modificado"
654
msgstr "Modificado"
659
655
660
#: collections/filecatalog.cpp:93
656
#: collections/filecatalog.cpp:94
661
msgid "Meta Info"
657
msgid "Meta Info"
662
msgstr "Meta-informação"
658
msgstr "Meta-informação"
663
659
664
#: collectionfieldsdialog.cpp:873 collections/filecatalog.cpp:95
660
#: collectionfieldsdialog.cpp:869 collections/filecatalog.cpp:96
665
msgid "Property"
661
msgid "Property"
666
msgstr "Propriedade"
662
msgstr "Propriedade"
667
663
668
#: collectionfieldsdialog.cpp:873 collections/filecatalog.cpp:96
664
#: collectionfieldsdialog.cpp:869 collections/filecatalog.cpp:97
669
msgid "Value"
665
msgid "Value"
670
msgstr "Valor"
666
msgstr "Valor"
671
667
672
#: collections/filecatalog.cpp:99
668
#: collections/filecatalog.cpp:100
673
msgid "Icon"
669
msgid "Icon"
674
msgstr "Ícone"
670
msgstr "Ícone"
675
671
676
#: collections/winecollection.cpp:26
672
#: collections/winecollection.cpp:26
673
msgid "Wines"
674
msgstr "Vinhos"
675
676
#: collections/winecollection.cpp:27
677
msgid "My Wines"
677
msgid "My Wines"
678
msgstr "Meus Vinhos"
678
msgstr "Meus Vinhos"
679
679
680
#: collections/videocollection.cpp:115 collections/winecollection.cpp:43
680
#: collections/videocollection.cpp:116 collections/winecollection.cpp:44
681
msgid "Producer"
681
msgid "Producer"
682
msgstr "Produtor"
682
msgstr "Produtor"
683
683
684
#: collections/winecollection.cpp:49
684
#: collections/winecollection.cpp:50
685
msgid "Appellation"
685
msgid "Appellation"
686
msgstr "Apelação"
686
msgstr "Apelação"
687
687
688
#: collections/winecollection.cpp:55
688
#: collections/winecollection.cpp:56
689
msgid "Varietal"
689
msgid "Varietal"
690
msgstr "Variedade"
690
msgstr "Variedade"
691
691
692
# Não sei ainda qual a tradução correta
692
# Não sei ainda qual a tradução correta
693
#: collections/winecollection.cpp:61
693
#: collections/winecollection.cpp:62
694
msgid "Vintage"
694
msgid "Vintage"
695
msgstr "Safra"
695
msgstr "Safra"
696
696
697
#: collections/winecollection.cpp:67
697
#: collections/winecollection.cpp:68
698
msgid "Red Wine"
698
msgid "Red Wine"
699
msgstr "Vinho tinto"
699
msgstr "Vinho tinto"
700
700
701
#: collections/winecollection.cpp:67
701
#: collections/winecollection.cpp:68
702
msgid "White Wine"
702
msgid "White Wine"
703
msgstr "Vinho branco"
703
msgstr "Vinho branco"
704
704
705
#: collections/winecollection.cpp:67
705
#: collections/winecollection.cpp:68
706
msgid "Sparkling Wine"
706
msgid "Sparkling Wine"
707
msgstr "Espumoso"
707
msgstr "Espumoso"
708
708
709
#: collections/cardcollection.cpp:105 collections/winecollection.cpp:93
709
#: collections/cardcollection.cpp:106 collections/winecollection.cpp:94
710
msgid "Quantity"
710
msgid "Quantity"
711
msgstr "Quantidade"
711
msgstr "Quantidade"
712
712
713
#: collections/winecollection.cpp:97
713
#: collections/winecollection.cpp:98
714
msgid "Drink By"
714
msgid "Drink By"
715
msgstr "Bebido Por"
715
msgstr "Bebido Por"
716
716
717
#: collections/winecollection.cpp:111
717
#: collections/winecollection.cpp:112
718
msgid "Label Image"
718
msgid "Label Image"
719
msgstr "Etiqueta"
719
msgstr "Etiqueta"
720
720
Lines 727-1008 msgid "Features" Link Here
727
msgstr "Características"
727
msgstr "Características"
728
728
729
#: collections/videocollection.cpp:28
729
#: collections/videocollection.cpp:28
730
msgid "Videos"
731
msgstr "Vídeos"
732
733
#: collections/videocollection.cpp:29
730
msgid "My Videos"
734
msgid "My Videos"
731
msgstr "Meus Vídeos"
735
msgstr "Meus Vídeos"
732
736
733
#: collections/musiccollection.cpp:44 collections/videocollection.cpp:46
737
#: collections/musiccollection.cpp:45 collections/videocollection.cpp:47
734
msgid "DVD"
738
msgid "DVD"
735
msgstr "DVD"
739
msgstr "DVD"
736
740
737
#: collections/videocollection.cpp:46
741
#: collections/videocollection.cpp:47
738
msgid "VHS"
742
msgid "VHS"
739
msgstr "VHS"
743
msgstr "VHS"
740
744
741
#: collections/videocollection.cpp:46
745
#: collections/videocollection.cpp:47
742
msgid "VCD"
746
msgid "VCD"
743
msgstr "VCD"
747
msgstr "VCD"
744
748
745
#: collections/videocollection.cpp:46
749
#: collections/videocollection.cpp:47
746
msgid "DivX"
750
msgid "DivX"
747
msgstr "DivX"
751
msgstr "DivX"
748
752
749
#: collections/videocollection.cpp:46 fetch/amazonfetcher.cpp:823
753
#: collections/videocollection.cpp:47 fetch/amazonfetcher.cpp:801
750
msgid "Blu-ray"
754
msgid "Blu-ray"
751
msgstr ""
755
msgstr "Blu-ray"
752
756
753
#: collections/videocollection.cpp:46 fetch/amazonfetcher.cpp:826
757
#: collections/videocollection.cpp:47 fetch/amazonfetcher.cpp:804
754
#, fuzzy
755
msgid "HD DVD"
758
msgid "HD DVD"
756
msgstr "DVD"
759
msgstr "HD DVD"
757
760
758
#: collections/musiccollection.cpp:45 collections/videocollection.cpp:47
761
#: collections/musiccollection.cpp:46 collections/videocollection.cpp:48
759
msgid "Medium"
762
msgid "Medium"
760
msgstr "Mídia"
763
msgstr "Mídia"
761
764
762
#: collections/videocollection.cpp:52
765
#: collections/videocollection.cpp:53
763
msgid "Production Year"
766
msgid "Production Year"
764
msgstr "Ano de Produção"
767
msgstr "Ano de Produção"
765
768
766
#: collections/videocollection.cpp:60
769
#: collections/videocollection.cpp:61
767
msgid ""
770
msgid ""
768
"_: Movie ratings - G (USA),PG (USA),PG-13 (USA),R (USA), U (USA)\n"
771
"_: Movie ratings - G (USA),PG (USA),PG-13 (USA),R (USA), U (USA)\n"
769
"G (USA),PG (USA),PG-13 (USA),R (USA), U (USA)"
772
"G (USA),PG (USA),PG-13 (USA),R (USA), U (USA)"
770
msgstr "G (USA),PG (USA),PG-13 (USA),R (USA), U (USA)"
773
msgstr "G (USA),PG (USA),PG-13 (USA),R (USA), U (USA)"
771
774
772
#: collections/videocollection.cpp:62
775
#: collections/videocollection.cpp:63
773
msgid "Certification"
776
msgid "Certification"
774
msgstr "Certificação"
777
msgstr "Certificação"
775
778
776
#: collections/videocollection.cpp:74
779
#: collections/videocollection.cpp:75
777
msgid "Region 1"
780
msgid "Region 1"
778
msgstr "Região 1"
781
msgstr "Região 1"
779
782
780
#: collections/videocollection.cpp:75
783
#: collections/videocollection.cpp:76
781
msgid "Region 2"
784
msgid "Region 2"
782
msgstr "Região 2"
785
msgstr "Região 2"
783
786
784
#: collections/videocollection.cpp:76
787
#: collections/videocollection.cpp:77
785
msgid "Region 3"
788
msgid "Region 3"
786
msgstr "Região 3"
789
msgstr "Região 3"
787
790
788
#: collections/videocollection.cpp:77
791
#: collections/videocollection.cpp:78
789
msgid "Region 4"
792
msgid "Region 4"
790
msgstr "Região 4"
793
msgstr "Região 4"
791
794
792
#: collections/videocollection.cpp:78
795
#: collections/videocollection.cpp:79
793
msgid "Region 5"
796
msgid "Region 5"
794
msgstr "Região 5"
797
msgstr "Região 5"
795
798
796
#: collections/videocollection.cpp:79
799
#: collections/videocollection.cpp:80
797
msgid "Region 6"
800
msgid "Region 6"
798
msgstr "Região 6"
801
msgstr "Região 6"
799
802
800
#: collections/videocollection.cpp:80
803
#: collections/videocollection.cpp:81
801
msgid "Region 7"
804
msgid "Region 7"
802
msgstr "Região 7"
805
msgstr "Região 7"
803
806
804
#: collections/videocollection.cpp:81
807
#: collections/videocollection.cpp:82
805
msgid "Region 8"
808
msgid "Region 8"
806
msgstr "Região 8"
809
msgstr "Região 8"
807
810
808
#: collections/videocollection.cpp:82
811
#: collections/videocollection.cpp:83
809
msgid "Region"
812
msgid "Region"
810
msgstr "Região"
813
msgstr "Região"
811
814
812
#: collections/videocollection.cpp:87
815
#: collections/videocollection.cpp:88
813
msgid "Nationality"
816
msgid "Nationality"
814
msgstr "Nacionalidade"
817
msgstr "Nacionalidade"
815
818
816
#: collections/videocollection.cpp:94
819
#: collections/videocollection.cpp:95
817
msgid "NTSC"
820
msgid "NTSC"
818
msgstr "NTSC"
821
msgstr "NTSC"
819
822
820
#: collections/videocollection.cpp:94
823
#: collections/videocollection.cpp:95
821
msgid "PAL"
824
msgid "PAL"
822
msgstr "PAL"
825
msgstr "PAL"
823
826
824
#: collections/videocollection.cpp:94
827
#: collections/videocollection.cpp:95
825
msgid "SECAM"
828
msgid "SECAM"
826
msgstr "SECAM"
829
msgstr "SECAM"
827
830
828
#: collections/videocollection.cpp:95
831
#: collections/videocollection.cpp:96
829
msgid "Format"
832
msgid "Format"
830
msgstr "Formato"
833
msgstr "Formato"
831
834
832
#: collections/videocollection.cpp:100
835
#: collections/videocollection.cpp:101
833
msgid "Cast"
836
msgid "Cast"
834
msgstr "Elenco"
837
msgstr "Elenco"
835
838
836
#: collections/videocollection.cpp:102 translators/tellicoimporter.cpp:443
839
#: collections/videocollection.cpp:103 translators/tellicoimporter.cpp:409
837
msgid "Actor/Actress"
840
msgid "Actor/Actress"
838
msgstr "Ator/Atriz"
841
msgstr "Ator/Atriz"
839
842
840
#: collections/videocollection.cpp:103 translators/tellicoimporter.cpp:444
843
#: collections/videocollection.cpp:104 translators/tellicoimporter.cpp:410
841
msgid "Role"
844
msgid "Role"
842
msgstr "Personagem"
845
msgstr "Personagem"
843
846
844
#: collections/videocollection.cpp:106
847
#: collections/videocollection.cpp:107
845
msgid "A table for the cast members, along with the roles they play"
848
msgid "A table for the cast members, along with the roles they play"
846
msgstr ""
849
msgstr "Uma tabela para o elenco do filme, com o papel representado por cada um"
847
"Uma tabela para o elenco do filme, com o papel representado por cada um"
848
850
849
#: collections/videocollection.cpp:109
851
#: collections/videocollection.cpp:110
850
msgid "Director"
852
msgid "Director"
851
msgstr "Diretor"
853
msgstr "Diretor"
852
854
853
#: collections/videocollection.cpp:127
855
#: collections/videocollection.cpp:128
854
msgid "Composer"
856
msgid "Composer"
855
msgstr "Compositor"
857
msgstr "Compositor"
856
858
857
#: collections/videocollection.cpp:133
859
#: collections/videocollection.cpp:134
858
msgid "Studio"
860
msgid "Studio"
859
msgstr "Estúdio"
861
msgstr "Estúdio"
860
862
861
#: collections/videocollection.cpp:139
863
#: collections/videocollection.cpp:140
862
msgid "Language Tracks"
864
msgid "Language Tracks"
863
msgstr "Línguas disponíveis"
865
msgstr "Línguas disponíveis"
864
866
865
#: collections/videocollection.cpp:145
867
#: collections/videocollection.cpp:146
866
msgid "Subtitle Languages"
868
msgid "Subtitle Languages"
867
msgstr "Língua das Legendas"
869
msgstr "Língua das Legendas"
868
870
869
#: collections/videocollection.cpp:151
871
#: collections/videocollection.cpp:152
870
msgid "Audio Tracks"
872
msgid "Audio Tracks"
871
msgstr "Áudios Disponíveis"
873
msgstr "Áudios Disponíveis"
872
874
873
#: collections/videocollection.cpp:157
875
#: collections/videocollection.cpp:158
874
msgid "Running Time"
876
msgid "Running Time"
875
msgstr "Duração"
877
msgstr "Duração"
876
878
877
#: collections/videocollection.cpp:159
879
#: collections/videocollection.cpp:160
878
msgid "The running time of the video (in minutes)"
880
msgid "The running time of the video (in minutes)"
879
msgstr "Duração do vídeo (em minutos)"
881
msgstr "Duração do vídeo (em minutos)"
880
882
881
#: collections/videocollection.cpp:162
883
#: collections/videocollection.cpp:163
882
msgid "Aspect Ratio"
884
msgid "Aspect Ratio"
883
msgstr "Formato da Imagem"
885
msgstr "Formato da Imagem"
884
886
885
#: collections/videocollection.cpp:167 fetch/amazonfetcher.cpp:815
887
#: collections/videocollection.cpp:168 fetch/amazonfetcher.cpp:793
886
#: translators/tellicoimporter.cpp:958
888
#: translators/tellicoimporter.cpp:903
887
msgid "Widescreen"
889
msgid "Widescreen"
888
msgstr "Tela Larga"
890
msgstr "Tela Larga"
889
891
890
#: collections/videocollection.cpp:172
892
#: collections/videocollection.cpp:173
891
msgid "Black & White"
893
msgid "Black & White"
892
msgstr "Preto & Branco"
894
msgstr "Preto & Branco"
893
895
894
#: collections/videocollection.cpp:173
896
#: collections/videocollection.cpp:174
895
msgid "Color Mode"
897
msgid "Color Mode"
896
msgstr "Formato de Cor"
898
msgstr "Formato de Cor"
897
899
898
#: collections/videocollection.cpp:178 fetch/amazonfetcher.cpp:830
900
#: collections/videocollection.cpp:179 fetch/amazonfetcher.cpp:808
899
msgid "Director's Cut"
901
msgid "Director's Cut"
900
msgstr "Cortes do Diretor"
902
msgstr "Cortes do Diretor"
901
903
902
#: collections/videocollection.cpp:182 fetch/ibsfetcher.cpp:358
904
#: collections/videocollection.cpp:183 fetch/ibsfetcher.cpp:358
903
msgid "Plot Summary"
905
msgid "Plot Summary"
904
msgstr "Resumo da Ação"
906
msgstr "Resumo da Ação"
905
907
906
#: collections/gamecollection.cpp:90 collections/videocollection.cpp:185
908
#: collections/gamecollection.cpp:91 collections/videocollection.cpp:186
907
msgid "Personal Rating"
909
msgid "Personal Rating"
908
msgstr "Nota Pessoal"
910
msgstr "Nota Pessoal"
909
911
910
#: collections/boardgamecollection.cpp:102 collections/gamecollection.cpp:116
912
#: collections/gamecollection.cpp:117 collections/musiccollection.cpp:109
911
#: collections/musiccollection.cpp:108 collections/videocollection.cpp:207
913
#: collections/videocollection.cpp:208
912
msgid "Cover"
914
msgid "Cover"
913
msgstr "Capa"
915
msgstr "Capa"
914
916
915
#: collections/gamecollection.cpp:26
917
#: collections/gamecollection.cpp:26
918
msgid "Games"
919
msgstr "Jogos"
920
921
#: collections/gamecollection.cpp:27
916
msgid "My Games"
922
msgid "My Games"
917
msgstr "Meus Jogos"
923
msgstr "Meus Jogos"
918
924
919
#: collections/gamecollection.cpp:44
925
#: collections/gamecollection.cpp:45
920
msgid "Xbox 360"
926
msgid "Xbox 360"
921
msgstr "Xbox 360"
927
msgstr "Xbox 360"
922
928
923
#: collections/gamecollection.cpp:44
929
#: collections/gamecollection.cpp:45
924
msgid "Xbox"
930
msgid "Xbox"
925
msgstr "Xbox"
931
msgstr "Xbox"
926
932
927
#: collections/gamecollection.cpp:45
933
#: collections/gamecollection.cpp:46
928
msgid "PlayStation3"
934
msgid "PlayStation3"
929
msgstr "PlayStation3"
935
msgstr "PlayStation3"
930
936
931
#: collections/gamecollection.cpp:45
937
#: collections/gamecollection.cpp:46
932
msgid "PlayStation2"
938
msgid "PlayStation2"
933
msgstr "PlayStation2"
939
msgstr "PlayStation2"
934
940
935
#: collections/gamecollection.cpp:45
941
#: collections/gamecollection.cpp:46
936
msgid "PlayStation"
942
msgid "PlayStation"
937
msgstr "PlayStation"
943
msgstr "PlayStation"
938
944
939
#: collections/gamecollection.cpp:45
945
#: collections/gamecollection.cpp:46
940
msgid ""
946
msgid ""
941
"_: PlayStation Portable\n"
947
"_: PlayStation Portable\n"
942
"PSP"
948
"PSP"
943
msgstr "PSP"
949
msgstr "PSP"
944
950
945
#: collections/gamecollection.cpp:46
951
#: collections/gamecollection.cpp:47
946
msgid "Nintendo Wii"
952
msgid "Nintendo Wii"
947
msgstr "Revolução"
953
msgstr "Revolução"
948
954
949
#: collections/gamecollection.cpp:46
955
#: collections/gamecollection.cpp:47
950
msgid "Nintendo DS"
956
msgid "Nintendo DS"
951
msgstr "Nintendo DS"
957
msgstr "Nintendo DS"
952
958
953
#: collections/gamecollection.cpp:46
959
#: collections/gamecollection.cpp:47
954
msgid "GameCube"
960
msgid "GameCube"
955
msgstr "GameCube"
961
msgstr "GameCube"
956
962
957
#: collections/gamecollection.cpp:46
963
#: collections/gamecollection.cpp:47
958
msgid "Dreamcast"
964
msgid "Dreamcast"
959
msgstr "Dreamcast"
965
msgstr "Dreamcast"
960
966
961
#: collections/gamecollection.cpp:47
967
#: collections/gamecollection.cpp:48
962
msgid "Game Boy Advance"
968
msgid "Game Boy Advance"
963
msgstr "Game Boy Advance"
969
msgstr "Game Boy Advance"
964
970
965
#: collections/gamecollection.cpp:47
971
#: collections/gamecollection.cpp:48
966
msgid "Game Boy Color"
972
msgid "Game Boy Color"
967
msgstr "Game Boy Color"
973
msgstr "Game Boy Color"
968
974
969
#: collections/gamecollection.cpp:47
975
#: collections/gamecollection.cpp:48
970
msgid "Game Boy"
976
msgid "Game Boy"
971
msgstr "Game Boy"
977
msgstr "Game Boy"
972
978
973
#: collections/gamecollection.cpp:48
979
#: collections/gamecollection.cpp:49
974
msgid ""
980
msgid ""
975
"_: Windows Platform\n"
981
"_: Windows Platform\n"
976
"Windows"
982
"Windows"
977
msgstr "Windows"
983
msgstr "Windows"
978
984
979
#: collections/gamecollection.cpp:48
985
#: collections/gamecollection.cpp:49
980
msgid "Mac OS"
986
msgid "Mac OS"
981
msgstr "Mac OS"
987
msgstr "Mac OS"
982
988
983
#: collections/gamecollection.cpp:48
989
#: collections/gamecollection.cpp:50
984
msgid "Linux"
985
msgstr ""
986
987
#: collections/gamecollection.cpp:49
988
msgid "Platform"
990
msgid "Platform"
989
msgstr "Platforma"
991
msgstr "Platforma"
990
992
991
#: collections/boardgamecollection.cpp:55 collections/gamecollection.cpp:60
993
#: collections/gamecollection.cpp:61
992
msgid "Release Year"
994
msgid "Release Year"
993
msgstr "Ano de Lançamento"
995
msgstr "Ano de Lançamento"
994
996
995
#: collections/gamecollection.cpp:65
997
#: collections/gamecollection.cpp:66
996
msgid ""
998
msgid ""
997
"_: Games - Publisher\n"
999
"_: Games - Publisher\n"
998
"Publisher"
1000
"Publisher"
999
msgstr "Editora"
1001
msgstr "Editora"
1000
1002
1001
#: collections/gamecollection.cpp:71
1003
#: collections/gamecollection.cpp:72
1002
msgid "Developer"
1004
msgid "Developer"
1003
msgstr "Desenvolvedor"
1005
msgstr "Desenvolvedor"
1004
1006
1005
#: collections/gamecollection.cpp:80
1007
#: collections/gamecollection.cpp:81
1006
msgid ""
1008
msgid ""
1007
"_: Video game ratings - Unrated, Adults Only, Mature, Teen, Everyone, Early "
1009
"_: Video game ratings - Unrated, Adults Only, Mature, Teen, Everyone, Early "
1008
"Childhood, Pending\n"
1010
"Childhood, Pending\n"
Lines 1011-1391 msgstr "" Link Here
1011
"Não Classificado, Somente Adultos, Jovens, Adolescentes, Sem Censura, "
1013
"Não Classificado, Somente Adultos, Jovens, Adolescentes, Sem Censura, "
1012
"Infantil, Pendente"
1014
"Infantil, Pendente"
1013
1015
1014
#: collections/gamecollection.cpp:82
1016
#: collections/gamecollection.cpp:83
1015
msgid "ESRB Rating"
1017
msgid "ESRB Rating"
1016
msgstr "Classificação da ESRB"
1018
msgstr "Classificação da ESRB"
1017
1019
1018
#: collections/gamecollection.cpp:95
1020
#: collections/gamecollection.cpp:96
1019
msgid "Completed"
1021
msgid "Completed"
1020
msgstr "Completado"
1022
msgstr "Completado"
1021
1023
1022
#: collections/cardcollection.cpp:26
1024
#: collections/cardcollection.cpp:26
1025
msgid "Cards"
1026
msgstr "Cartões"
1027
1028
#: collections/cardcollection.cpp:27
1023
msgid "My Cards"
1029
msgid "My Cards"
1024
msgstr "Meus Cartões"
1030
msgstr "Meus Cartões"
1025
1031
1026
#: collections/cardcollection.cpp:43
1032
#: collections/cardcollection.cpp:44
1027
msgid "Player"
1033
msgid "Player"
1028
msgstr "Jogador"
1034
msgstr "Jogador"
1029
1035
1030
#: collections/cardcollection.cpp:49
1036
#: collections/cardcollection.cpp:50
1031
msgid "Team"
1037
msgid "Team"
1032
msgstr "Time"
1038
msgstr "Time"
1033
1039
1034
#: collections/cardcollection.cpp:55
1040
#: collections/cardcollection.cpp:56
1035
msgid "Brand"
1041
msgid "Brand"
1036
msgstr "Marca"
1042
msgstr "Marca"
1037
1043
1038
#: collections/cardcollection.cpp:62
1044
#: collections/cardcollection.cpp:63
1039
msgid "Card Number"
1045
msgid "Card Number"
1040
msgstr "Número do Cartão"
1046
msgstr "Número do Cartão"
1041
1047
1042
#: collections/cardcollection.cpp:77
1048
#: collections/cardcollection.cpp:78
1043
msgid "Card Type"
1049
msgid "Card Type"
1044
msgstr "Tipo do Cartão"
1050
msgstr "Tipo do Cartão"
1045
1051
1046
#: collections/cardcollection.cpp:109
1052
#: collections/cardcollection.cpp:110
1047
msgid "Front Image"
1053
msgid "Front Image"
1048
msgstr "Imagem Frontal"
1054
msgstr "Imagem Frontal"
1049
1055
1050
#: collections/cardcollection.cpp:112
1056
#: collections/cardcollection.cpp:113
1051
msgid "Back Image"
1057
msgid "Back Image"
1052
msgstr "Imagem no Verso"
1058
msgstr "Imagem no Verso"
1053
1059
1054
#: collections/boardgamecollection.cpp:26
1060
#: collections/bibtexcollection.cpp:30
1055
#, fuzzy
1061
msgid "Entries"
1056
msgid "My Board Games"
1062
msgstr "Registros"
1057
msgstr "Meus Jogos"
1058
1059
#: collections/boardgamecollection.cpp:49
1060
msgid "Mechanism"
1061
msgstr ""
1062
1063
#: collections/boardgamecollection.cpp:66
1064
msgid "Designer"
1065
msgstr ""
1066
1063
1067
#: collections/boardgamecollection.cpp:72
1064
#: collectionfactory.cpp:119 collections/bibtexcollection.cpp:31
1068
msgid "Number of Players"
1069
msgstr ""
1070
1071
#: collectionfactory.cpp:125 collections/bibtexcollection.cpp:30
1072
msgid "Bibliography"
1065
msgid "Bibliography"
1073
msgstr "Bibliografia"
1066
msgstr "Bibliografia"
1074
1067
1075
#: collections/bibtexcollection.cpp:72
1068
#: collections/bibtexcollection.cpp:73
1076
msgid "Entry Type"
1069
msgid "Entry Type"
1077
msgstr "Tipo de Registro"
1070
msgstr "Tipo de Registro"
1078
1071
1079
#: collections/bibtexcollection.cpp:76
1072
#: collections/bibtexcollection.cpp:77
1080
msgid "These entry types are specific to bibtex. See the bibtex documentation."
1073
msgid "These entry types are specific to bibtex. See the bibtex documentation."
1081
msgstr ""
1074
msgstr ""
1082
"Estes tipos de registro são específicos para o BibTeX. Consulte a "
1075
"Estes tipos de registro são específicos para o BibTeX. Consulte a "
1083
"documentação do mesmo."
1076
"documentação do mesmo."
1084
1077
1085
#: collections/bibtexcollection.cpp:86
1078
#: collections/bibtexcollection.cpp:87
1086
msgid "Bibtex Key"
1079
msgid "Bibtex Key"
1087
msgstr "Chave do BibTeX"
1080
msgstr "Chave do BibTeX"
1088
1081
1089
#: collections/bibtexcollection.cpp:92
1082
#: collections/bibtexcollection.cpp:93
1090
msgid "Book Title"
1083
msgid "Book Title"
1091
msgstr "Título do livro"
1084
msgstr "Título do livro"
1092
1085
1093
#: collections/bibtexcollection.cpp:98
1086
#: collections/bibtexcollection.cpp:99
1094
msgid "Editor"
1087
msgid "Editor"
1095
msgstr "Editor"
1088
msgstr "Editor"
1096
1089
1097
#: collections/bibtexcollection.cpp:105
1090
#: collections/bibtexcollection.cpp:106
1098
msgid "Organization"
1091
msgid "Organization"
1099
msgstr "Organização"
1092
msgstr "Organização"
1100
1093
1101
#: collections/bibtexcollection.cpp:127 fetch/srufetcher.cpp:412
1094
#: collections/bibtexcollection.cpp:128 fetch/srufetcher.cpp:434
1102
#: fetch/z3950fetcher.cpp:668
1095
#: fetch/z3950fetcher.cpp:670
1103
msgid "Address"
1096
msgid "Address"
1104
msgstr "Endereço"
1097
msgstr "Endereço"
1105
1098
1106
#: collections/bibtexcollection.cpp:164 fetch/fetchmanager.cpp:73
1107
msgid "DOI"
1108
msgstr ""
1109
1110
#: collections/bibtexcollection.cpp:167
1099
#: collections/bibtexcollection.cpp:167
1111
msgid "Digital Object Identifier"
1112
msgstr ""
1113
1114
#: collections/bibtexcollection.cpp:172
1115
msgid "Month"
1100
msgid "Month"
1116
msgstr "Mês"
1101
msgstr "Mês"
1117
1102
1118
#: collections/bibtexcollection.cpp:178 field.cpp:494
1103
#: collections/bibtexcollection.cpp:173 field.cpp:486
1119
msgid "Number"
1104
msgid "Number"
1120
msgstr "Número "
1105
msgstr "Número "
1121
1106
1122
#: collections/bibtexcollection.cpp:183
1107
#: collections/bibtexcollection.cpp:178
1123
msgid "How Published"
1108
msgid "How Published"
1124
msgstr "Modo de publicação"
1109
msgstr "Modo de publicação"
1125
1110
1126
#: collections/bibtexcollection.cpp:195
1111
#: collections/bibtexcollection.cpp:190
1127
msgid "Chapter"
1112
msgid "Chapter"
1128
msgstr "Capítulo"
1113
msgstr "Capítulo"
1129
1114
1130
#: collections/bibtexcollection.cpp:212
1115
#: collections/bibtexcollection.cpp:207
1131
msgid "Cross-Reference"
1116
msgid "Cross-Reference"
1132
msgstr "Referência cruzada"
1117
msgstr "Referência cruzada"
1133
1118
1134
#: collections/bibtexcollection.cpp:232 fetch/entrezfetcher.cpp:486
1119
#: collections/bibtexcollection.cpp:222 fetch/entrezfetcher.cpp:464
1135
#: fetch/srufetcher.cpp:413 fetch/z3950fetcher.cpp:669
1120
#: fetch/srufetcher.cpp:435 fetch/z3950fetcher.cpp:671
1136
#: translators/risimporter.cpp:269
1121
#: translators/risimporter.cpp:246
1137
msgid "Abstract"
1122
msgid "Abstract"
1138
msgstr "Resumo"
1123
msgstr "Resumo"
1139
1124
1140
#: collections/bibtexcollection.cpp:236
1125
#: collections/bibtexcollection.cpp:226
1141
msgid "Notes"
1126
msgid "Notes"
1142
msgstr "Notas"
1127
msgstr "Notas"
1143
1128
1144
#: collections/musiccollection.cpp:26
1129
#: collections/musiccollection.cpp:26
1130
msgid "Albums"
1131
msgstr "Álbuns"
1132
1133
#: collections/musiccollection.cpp:27
1145
msgid "My Music"
1134
msgid "My Music"
1146
msgstr "Minhas Músicas"
1135
msgstr "Minhas Músicas"
1147
1136
1148
#: collections/musiccollection.cpp:37
1137
#: collections/musiccollection.cpp:38
1149
msgid "Album"
1138
msgid "Album"
1150
msgstr "Álbum"
1139
msgstr "Álbum"
1151
1140
1152
#: collections/musiccollection.cpp:44 translators/freedbimporter.cpp:257
1141
#: collections/musiccollection.cpp:45 translators/freedbimporter.cpp:257
1153
#: translators/freedbimporter.cpp:375 translators/freedbimporter.cpp:446
1142
#: translators/freedbimporter.cpp:374 translators/freedbimporter.cpp:445
1154
msgid "Compact Disc"
1143
msgid "Compact Disc"
1155
msgstr "CD"
1144
msgstr "CD"
1156
1145
1157
#: collections/musiccollection.cpp:44
1146
#: collections/musiccollection.cpp:45
1158
msgid "Cassette"
1147
msgid "Cassette"
1159
msgstr "Cassete"
1148
msgstr "Cassete"
1160
1149
1161
#: collections/musiccollection.cpp:44
1150
#: collections/musiccollection.cpp:45
1162
msgid "Vinyl"
1151
msgid "Vinyl"
1163
msgstr "Vinil"
1152
msgstr "Vinil"
1164
1153
1165
#: collections/musiccollection.cpp:50 collections/musiccollection.cpp:77
1154
#: collections/musiccollection.cpp:51 collections/musiccollection.cpp:78
1166
#: translators/audiofileimporter.cpp:165 translators/tellicoimporter.cpp:440
1155
#: translators/audiofileimporter.cpp:151 translators/tellicoimporter.cpp:406
1167
msgid "Artist"
1156
msgid "Artist"
1168
msgstr "Artista"
1157
msgstr "Artista"
1169
1158
1170
#: collections/musiccollection.cpp:56
1159
#: collections/musiccollection.cpp:57
1171
msgid "Label"
1160
msgid "Label"
1172
msgstr "Selo"
1161
msgstr "Selo"
1173
1162
1174
#: collections/musiccollection.cpp:73
1163
#: collections/musiccollection.cpp:74 translators/audiofileimporter.cpp:146
1175
msgid "Tracks"
1164
msgid "Tracks"
1176
msgstr "Pistas"
1165
msgstr "Pistas"
1177
1166
1178
#: collections/musiccollection.cpp:78 translators/audiofileimporter.cpp:166
1167
#: collections/musiccollection.cpp:79 translators/audiofileimporter.cpp:152
1179
#: translators/tellicoimporter.cpp:441
1168
#: translators/tellicoimporter.cpp:407
1180
msgid "Length"
1169
msgid "Length"
1181
msgstr "Duração"
1170
msgstr "Duração"
1182
1171
1183
#: core/tellico_config.cpp:134
1172
#: core/tellico_config.cpp:118
1184
msgid ""
1173
msgid ""
1185
"a,an,and,as,at,but,by,for,from,in,into,nor,of,off,on,onto,or,out,over,the,to,"
1174
"a,an,and,as,at,but,by,for,from,in,into,nor,of,off,on,onto,or,out,over,the,to,"
1186
"up,with"
1175
"up,with"
1187
msgstr "um,uma,e,em,de,o,a "
1176
msgstr "um,uma,e,em,de,o,a "
1188
1177
1189
#: core/tellico_config.cpp:137
1178
#: core/tellico_config.cpp:121
1190
msgid "the"
1179
msgid "the"
1191
msgstr "o,a,os,as "
1180
msgstr "o,a,os,as "
1192
1181
1193
#: core/tellico_config.cpp:140
1182
#: core/tellico_config.cpp:124
1194
msgid "jr.,jr,iii,iv"
1183
msgid "jr.,jr,iii,iv"
1195
msgstr "jr.,jr,iii,iv "
1184
msgstr "jr.,jr,iii,iv "
1196
1185
1197
#: core/tellico_config.cpp:143
1186
#: core/tellico_config.cpp:127
1198
msgid "de,van,der,van der,von"
1187
msgid "de,van,der,van der,von"
1199
msgstr "de,o,a "
1188
msgstr "de,o,a "
1200
1189
1201
#: fetch/isbndbfetcher.cpp:54
1190
#: fetch/isbndbfetcher.cpp:51
1202
msgid "ISBNdb.com"
1191
msgid "ISBNdb.com"
1203
msgstr "ISBNdb.com"
1192
msgstr "ISBNdb.com"
1204
1193
1205
#: fetch/amazonfetcher.cpp:192 fetch/animenfofetcher.cpp:75
1194
#: fetch/amazonfetcher.cpp:192 fetch/animenfofetcher.cpp:75
1206
#: fetch/arxivfetcher.cpp:83 fetch/bibsonomyfetcher.cpp:66
1195
#: fetch/ibsfetcher.cpp:72 fetch/isbndbfetcher.cpp:76
1207
#: fetch/citebasefetcher.cpp:67 fetch/crossreffetcher.cpp:89
1196
#: fetch/yahoofetcher.cpp:94
1208
#: fetch/discogsfetcher.cpp:102 fetch/ibsfetcher.cpp:72
1209
#: fetch/isbndbfetcher.cpp:79 fetch/yahoofetcher.cpp:94
1210
msgid "%1 does not allow searching for this collection type."
1197
msgid "%1 does not allow searching for this collection type."
1211
msgstr "%1 não permite a pesquisa para este tipo de coleção."
1198
msgstr "%1 não permite a pesquisa para este tipo de coleção."
1212
1199
1213
#: fetch/amazonfetcher.cpp:562 fetch/isbndbfetcher.cpp:247
1200
#: fetch/animenfofetcher.cpp:370 fetch/entrezfetcher.cpp:444
1214
msgid "Results from %1: %2/%3"
1201
#: fetch/ibsfetcher.cpp:407 fetch/isbndbfetcher.cpp:258
1215
msgstr "Resultados de %1 : %2/%3"
1202
#: fetch/yahoofetcher.cpp:393
1216
1217
#: fetch/animenfofetcher.cpp:370 fetch/arxivfetcher.cpp:355
1218
#: fetch/bibsonomyfetcher.cpp:198 fetch/citebasefetcher.cpp:237
1219
#: fetch/entrezfetcher.cpp:466 fetch/ibsfetcher.cpp:407
1220
#: fetch/isbndbfetcher.cpp:342 fetch/yahoofetcher.cpp:392
1221
msgid "This source has no options."
1203
msgid "This source has no options."
1222
msgstr "Esta fonte não tem opções"
1204
msgstr "Esta fonte não tem opções."
1223
1205
1224
#: fetch/entrezfetcher.cpp:56
1206
#: fetch/entrezfetcher.cpp:55
1225
msgid "Entrez Database"
1207
msgid "Entrez Database"
1226
msgstr "Banco de Dados Entrez"
1208
msgstr "Banco de Dados Entrez"
1227
1209
1228
#: fetch/entrezfetcher.cpp:485
1210
#: fetch/entrezfetcher.cpp:463
1229
msgid "Institution"
1211
msgid "Institution"
1230
msgstr "Instituição"
1212
msgstr "Instituição"
1231
1213
1232
#: fetch/z3950connection.cpp:132
1214
#: fetch/z3950connection.cpp:117
1233
msgid "Query error!"
1215
msgid "Query error!"
1234
msgstr "Erro na pesquisa!"
1216
msgstr "Erro na pesquisa!"
1235
1217
1236
#: fetch/z3950connection.cpp:173
1218
#: fetch/z3950connection.cpp:158
1237
msgid "Connection search error %1: %2"
1219
msgid "Connection search error %1: %2"
1238
msgstr "Erro na procura da conexão %1: %2"
1220
msgstr "Erro na procura da conexão %1: %2"
1239
1221
1240
#: fetch/z3950connection.cpp:250
1222
#: fetch/z3950connection.cpp:235
1241
msgid "Record syntax error"
1223
msgid "Record syntax error"
1242
msgstr "Erro de Sintaxe no Registro"
1224
msgstr "Erro de Sintaxe no Registro"
1243
1225
1244
#: fetch/z3950connection.cpp:345
1226
#: fetch/z3950connection.cpp:331
1245
msgid "Connection error %1: %2"
1227
msgid "Connection error %1: %2"
1246
msgstr "Erro de conexão %1: %2"
1228
msgstr "Erro de conexão %1: %2"
1247
1229
1248
#: fetch/srufetcher.cpp:72
1230
#: fetch/srufetcher.cpp:65
1249
msgid "SRU Server"
1231
msgid "SRU Server"
1250
msgstr "Servidor SRU"
1232
msgstr "Servidor SRU"
1251
1233
1252
#: fetch/srufetcher.cpp:405 z3950.cpp:2
1234
#: fetch/srufetcher.cpp:334 z3950.cpp:2
1253
msgid "Library of Congress (US)"
1235
msgid "Library of Congress (US)"
1254
msgstr "Biblioteca do Congresso (Estados Unidos)"
1236
msgstr "Biblioteca do Congresso (Estados Unidos)"
1255
1237
1256
#: fetch/imdbfetcher.cpp:1121 fetch/srufetcher.cpp:428
1238
#: fetch/imdbfetcher.cpp:1099 fetch/srufetcher.cpp:349
1257
#: fetch/z3950fetcher.cpp:504
1239
#: fetch/z3950fetcher.cpp:506
1258
msgid "Hos&t: "
1240
msgid "Hos&t: "
1259
msgstr "&Servidor:"
1241
msgstr "&Servidor: "
1260
1242
1261
#: fetch/srufetcher.cpp:435 fetch/z3950fetcher.cpp:510
1243
#: fetch/srufetcher.cpp:355 fetch/z3950fetcher.cpp:512
1262
msgid "Enter the host name of the server."
1244
msgid "Enter the host name of the server."
1263
msgstr "Insira o nome do servidor"
1245
msgstr "Insira o nome do servidor."
1264
1246
1265
#: fetch/srufetcher.cpp:440 fetch/z3950fetcher.cpp:515
1247
#: fetch/srufetcher.cpp:360 fetch/z3950fetcher.cpp:517
1266
msgid "&Port: "
1248
msgid "&Port: "
1267
msgstr "&Porta:"
1249
msgstr "&Porta: "
1268
1250
1269
#: fetch/srufetcher.cpp:445 fetch/z3950fetcher.cpp:520
1251
#: fetch/srufetcher.cpp:365 fetch/z3950fetcher.cpp:522
1270
#, c-format
1252
#, c-format
1271
msgid "Enter the port number of the server. The default is %1."
1253
msgid "Enter the port number of the server. The default is %1."
1272
msgstr "Insira o número da porta do servidor z39.50. A porta padrão é %1."
1254
msgstr "Insira o número da porta do servidor z39.50. A porta padrão é %1."
1273
1255
1274
#: fetch/srufetcher.cpp:450
1256
#: fetch/srufetcher.cpp:370
1275
msgid "Path: "
1257
msgid "Path: "
1276
msgstr "Caminho:"
1258
msgstr "Caminho: "
1277
1259
1278
#: fetch/srufetcher.cpp:455
1260
#: fetch/srufetcher.cpp:375
1279
msgid "Enter the path to the database used by the server."
1261
msgid "Enter the path to the database used by the server."
1280
msgstr "Insira o caminho para o banco de dados utilizado pelo servidor"
1262
msgstr "Insira o caminho para o banco de dados utilizado pelo servidor."
1281
1263
1282
#: fetch/srufetcher.cpp:460
1264
#: fetch/srufetcher.cpp:380
1283
msgid "Format: "
1265
msgid "Format: "
1284
msgstr "Formato:"
1266
msgstr "Formato: "
1285
1267
1286
#: fetch/srufetcher.cpp:468
1268
#: fetch/srufetcher.cpp:387
1287
msgid "Enter the result format used by the server."
1269
msgid "Enter the result format used by the server."
1288
msgstr "Informe o formato de resultado utilizado pelo servidor."
1270
msgstr "Informe o formato de resultado utilizado pelo servidor."
1289
1271
1290
#: fetch/yahoofetcher.cpp:54
1272
#: fetch/yahoofetcher.cpp:53
1291
msgid "Yahoo! Audio Search"
1273
msgid "Yahoo! Audio Search"
1292
msgstr "Yahoo! Audio Search"
1274
msgstr "Yahoo! Audio Search"
1293
1275
1294
#: fetch/amazonfetcher.cpp:730 fetch/discogsfetcher.cpp:539
1276
#: fetch/amazonfetcher.cpp:709 fetch/yahoofetcher.cpp:243
1295
#: fetch/yahoofetcher.cpp:242
1296
msgid "The cover image could not be loaded."
1277
msgid "The cover image could not be loaded."
1297
msgstr "A imagem da capa não pôde ser carregada."
1278
msgstr "A imagem da capa não pôde ser carregada."
1298
1279
1299
#: fetch/amazonfetcher.cpp:53
1280
#: fetch/amazonfetcher.cpp:52
1300
msgid "Amazon Link"
1281
msgid "Amazon Link"
1301
msgstr "Amazon Link"
1282
msgstr "Amazon Link"
1302
1283
1303
#: fetch/amazonfetcher.cpp:62
1284
#: fetch/amazonfetcher.cpp:61
1304
msgid "Amazon (US)"
1285
msgid "Amazon (US)"
1305
msgstr "Amazon (Estados Unidos)"
1286
msgstr "Amazon (Estados Unidos)"
1306
1287
1307
#: fetch/amazonfetcher.cpp:65
1288
#: fetch/amazonfetcher.cpp:64
1308
msgid "Amazon (UK)"
1289
msgid "Amazon (UK)"
1309
msgstr "Amazon (Reino Unido)"
1290
msgstr "Amazon (Reino Unido)"
1310
1291
1311
#: fetch/amazonfetcher.cpp:68
1292
#: fetch/amazonfetcher.cpp:67
1312
msgid "Amazon (Germany)"
1293
msgid "Amazon (Germany)"
1313
msgstr "Amazon (Alemanha)"
1294
msgstr "Amazon (Alemanha)"
1314
1295
1315
#: fetch/amazonfetcher.cpp:71
1296
#: fetch/amazonfetcher.cpp:70
1316
msgid "Amazon (Japan)"
1297
msgid "Amazon (Japan)"
1317
msgstr "Amazon (Japão)"
1298
msgstr "Amazon (Japão)"
1318
1299
1319
#: fetch/amazonfetcher.cpp:74
1300
#: fetch/amazonfetcher.cpp:73
1320
msgid "Amazon (France)"
1301
msgid "Amazon (France)"
1321
msgstr "Amazon (França)"
1302
msgstr "Amazon (França)"
1322
1303
1323
#: fetch/amazonfetcher.cpp:77
1304
#: fetch/amazonfetcher.cpp:76
1324
msgid "Amazon (Canada)"
1305
msgid "Amazon (Canada)"
1325
msgstr "Amazon (Canadá)"
1306
msgstr "Amazon (Canadá)"
1326
1307
1327
#: fetch/amazonfetcher.cpp:99
1308
#: fetch/amazonfetcher.cpp:98
1328
msgid "Amazon.com Web Services"
1309
msgid "Amazon.com Web Services"
1329
msgstr "Serviços Web da Amazon.com"
1310
msgstr "Serviços Web da Amazon.com"
1330
1311
1331
#: fetch/amazonfetcher.cpp:848
1312
#: fetch/amazonfetcher.cpp:543
1313
msgid "Results from %1: %2/%3"
1314
msgstr "Resultados de %1 : %2/%3"
1315
1316
#: fetch/amazonfetcher.cpp:826
1332
msgid "Co&untry: "
1317
msgid "Co&untry: "
1333
msgstr "&País"
1318
msgstr "&País"
1334
1319
1335
#: fetch/amazonfetcher.cpp:851
1320
#: fetch/amazonfetcher.cpp:830
1336
msgid "United States"
1321
msgid "United States"
1337
msgstr "Estados Unidos"
1322
msgstr "Estados Unidos"
1338
1323
1339
#: fetch/amazonfetcher.cpp:852
1324
#: fetch/amazonfetcher.cpp:831
1340
msgid "United Kingdom"
1325
msgid "United Kingdom"
1341
msgstr "Reino Unido"
1326
msgstr "Reino Unido"
1342
1327
1343
#: fetch/amazonfetcher.cpp:853
1328
#: fetch/amazonfetcher.cpp:832
1344
msgid "Germany"
1329
msgid "Germany"
1345
msgstr "Alemanha"
1330
msgstr "Alemanha"
1346
1331
1347
#: fetch/amazonfetcher.cpp:854
1332
#: fetch/amazonfetcher.cpp:833
1348
msgid "Japan"
1333
msgid "Japan"
1349
msgstr "Japão"
1334
msgstr "Japão"
1350
1335
1351
#: fetch/amazonfetcher.cpp:855
1336
#: fetch/amazonfetcher.cpp:834
1352
msgid "France"
1337
msgid "France"
1353
msgstr "França"
1338
msgstr "França"
1354
1339
1355
#: fetch/amazonfetcher.cpp:856
1340
#: fetch/amazonfetcher.cpp:835
1356
msgid "Canada"
1341
msgid "Canada"
1357
msgstr "Canadá"
1342
msgstr "Canadá"
1358
1343
1359
#: fetch/amazonfetcher.cpp:860
1344
#: fetch/amazonfetcher.cpp:839
1360
msgid ""
1345
msgid ""
1361
"Amazon.com provides data from several different localized sites. Choose the "
1346
"Amazon.com provides data from several different localized sites. Choose the "
1362
"one you wish to use for this data source."
1347
"one you wish to use for this data source."
1363
msgstr ""
1348
msgstr ""
1364
"Amazon.com disponibiliza dados de vários sites em diferentes "
1349
"Amazon.com disponibiliza dados de vários sites em diferentes localizações. "
1365
"localizações. Escolha o que deseja utilizar como fonte de dados."
1350
"Escolha o que deseja utilizar como fonte de dados."
1366
1351
1367
#: fetch/amazonfetcher.cpp:866
1352
#: fetch/amazonfetcher.cpp:845
1368
msgid "&Image size: "
1353
msgid "&Image size: "
1369
msgstr "&Tamanho da Imagem"
1354
msgstr "&Tamanho da Imagem"
1370
1355
1371
#: fetch/amazonfetcher.cpp:869
1356
#: fetch/amazonfetcher.cpp:849
1372
msgid "Small Image"
1357
msgid "Small Image"
1373
msgstr "Imagem Pequena"
1358
msgstr "Imagem Pequena"
1374
1359
1375
#: fetch/amazonfetcher.cpp:870
1360
#: fetch/amazonfetcher.cpp:850
1376
msgid "Medium Image"
1361
msgid "Medium Image"
1377
msgstr "Imagem Média"
1362
msgstr "Imagem Média"
1378
1363
1379
#: fetch/amazonfetcher.cpp:871
1364
#: fetch/amazonfetcher.cpp:851
1380
msgid "Large Image"
1365
msgid "Large Image"
1381
msgstr "Imagem Grande"
1366
msgstr "Imagem Grande"
1382
1367
1383
#: fetch/amazonfetcher.cpp:872
1368
#: fetch/amazonfetcher.cpp:852
1384
msgid "No Image"
1369
msgid "No Image"
1385
msgstr "Sem Imagem"
1370
msgstr "Sem Imagem"
1386
1371
1387
#: fetch/amazonfetcher.cpp:875 fetch/discogsfetcher.cpp:683
1372
#: fetch/amazonfetcher.cpp:855 fetch/imdbfetcher.cpp:1124
1388
#: fetch/imdbfetcher.cpp:1146
1389
msgid ""
1373
msgid ""
1390
"The cover image may be downloaded as well. However, too many large images in "
1374
"The cover image may be downloaded as well. However, too many large images in "
1391
"the collection may degrade performance."
1375
"the collection may degrade performance."
Lines 1393-1431 msgstr "" Link Here
1393
"A imagem da capa pode obtida da mesma forma. No entanto, imagens grandes na "
1377
"A imagem da capa pode obtida da mesma forma. No entanto, imagens grandes na "
1394
"coleção podem degradar o desempenho."
1378
"coleção podem degradar o desempenho."
1395
1379
1396
#: fetch/amazonfetcher.cpp:881
1380
#: fetch/amazonfetcher.cpp:861
1397
msgid "&Associate's ID: "
1381
msgid "&Associate's ID: "
1398
msgstr "Identidade &associada: "
1382
msgstr "Identidade &associada: "
1399
1383
1400
#: fetch/amazonfetcher.cpp:886
1384
#: fetch/amazonfetcher.cpp:866
1401
msgid ""
1385
msgid ""
1402
"The associate's id identifies the person accessing the Amazon.com Web "
1386
"The associate's id identifies the person accessing the Amazon.com Web "
1403
"Services, and is included in any links to the Amazon.com site."
1387
"Services, and is included in any links to the Amazon.com site."
1404
msgstr ""
1388
msgstr ""
1405
"A identidade associada identifica a pessoa acessando os serviços Web "
1389
"A identidade associada identifica a pessoa acessando os serviços Web Amazon."
1406
"Amazon.com, e será incluída em todos os links para o site Amazon.com."
1390
"com, e será incluída em todos os links para o site Amazon.com."
1407
1391
1408
#: fetch/z3950fetcher.cpp:79 fetch/z3950fetcher.cpp:755
1392
#: fetch/z3950fetcher.cpp:79 fetch/z3950fetcher.cpp:757
1409
msgid "z39.50 Server"
1393
msgid "z39.50 Server"
1410
msgstr "Servidor z39.50"
1394
msgstr "Servidor z39.50"
1411
1395
1412
#: fetch/z3950fetcher.cpp:494
1396
#: fetch/z3950fetcher.cpp:496
1413
msgid "Use preset &server:"
1397
msgid "Use preset &server:"
1414
msgstr "Usar &servidor pré-definido"
1398
msgstr "Usar &servidor pré-definido:"
1415
1399
1416
#: fetch/z3950fetcher.cpp:525
1400
#: fetch/z3950fetcher.cpp:527
1417
msgid "&Database: "
1401
msgid "&Database: "
1418
msgstr "Base de &dados:"
1402
msgstr "Base de &dados: "
1419
1403
1420
#: fetch/z3950fetcher.cpp:530
1404
#: fetch/z3950fetcher.cpp:532
1421
msgid "Enter the database name used by the server."
1405
msgid "Enter the database name used by the server."
1422
msgstr "Insira o nome da base de dados utilizado pelo servidor."
1406
msgstr "Insira o nome da base de dados utilizado pelo servidor."
1423
1407
1424
#: fetch/z3950fetcher.cpp:535
1408
#: fetch/z3950fetcher.cpp:537
1425
msgid "Ch&aracter set: "
1409
msgid "Ch&aracter set: "
1426
msgstr "Conjunto de c&aracteres: "
1410
msgstr "Conjunto de c&aracteres: "
1427
1411
1428
#: fetch/z3950fetcher.cpp:544
1412
#: fetch/z3950fetcher.cpp:546
1429
msgid ""
1413
msgid ""
1430
"Enter the character set encoding used by the z39.50 server. The most likely "
1414
"Enter the character set encoding used by the z39.50 server. The most likely "
1431
"choice is MARC-8, although ISO-8859-1 is common as well."
1415
"choice is MARC-8, although ISO-8859-1 is common as well."
Lines 1433-1447 msgstr "" Link Here
1433
"Insira o conjunto de caracteres utilizado pelo servidor z39.50. A escolha "
1417
"Insira o conjunto de caracteres utilizado pelo servidor z39.50. A escolha "
1434
"mais provável é MARC-8, apesar do ISO-8859-1 ser tão comum quanto."
1418
"mais provável é MARC-8, apesar do ISO-8859-1 ser tão comum quanto."
1435
1419
1436
#: fetch/z3950fetcher.cpp:550
1420
#: fetch/z3950fetcher.cpp:552
1437
msgid "&Format: "
1421
msgid "&Format: "
1438
msgstr "&Formato:"
1422
msgstr "&Formato: "
1439
1423
1440
#: fetch/z3950fetcher.cpp:553
1424
#: fetch/z3950fetcher.cpp:555
1441
msgid "Auto-detect"
1425
msgid "Auto-detect"
1442
msgstr "Detectar automaticamente"
1426
msgstr "Detectar automaticamente"
1443
1427
1444
#: fetch/z3950fetcher.cpp:561
1428
#: fetch/z3950fetcher.cpp:563
1445
msgid ""
1429
msgid ""
1446
"Enter the data format used by the z39.50 server. Tellico will attempt to "
1430
"Enter the data format used by the z39.50 server. Tellico will attempt to "
1447
"automatically detect the best setting if <i>auto-detect</i> is selected."
1431
"automatically detect the best setting if <i>auto-detect</i> is selected."
Lines 1450-1464 msgstr "" Link Here
1450
"tentar detectar a melhor configuração se <i>Detectar automaticamente</i> "
1434
"tentar detectar a melhor configuração se <i>Detectar automaticamente</i> "
1451
"estiver selecionado."
1435
"estiver selecionado."
1452
1436
1453
#: fetch/z3950fetcher.cpp:567
1437
#: fetch/z3950fetcher.cpp:569
1454
msgid "&User: "
1438
msgid "&User: "
1455
msgstr "&Usuário:"
1439
msgstr "&Usuário: "
1456
1440
1457
#: fetch/z3950fetcher.cpp:570 fetch/z3950fetcher.cpp:582
1441
#: fetch/z3950fetcher.cpp:572 fetch/z3950fetcher.cpp:584
1458
msgid "Optional"
1442
msgid "Optional"
1459
msgstr "Opcional"
1443
msgstr "Opcional"
1460
1444
1461
#: fetch/z3950fetcher.cpp:573
1445
#: fetch/z3950fetcher.cpp:575
1462
msgid ""
1446
msgid ""
1463
"Enter the authentication user name used by the z39.50 database. Most servers "
1447
"Enter the authentication user name used by the z39.50 database. Most servers "
1464
"do not need one."
1448
"do not need one."
Lines 1466-1486 msgstr "" Link Here
1466
"Insira o nome da base de dados utilizada pelo servidor z39.50. A maioria dos "
1450
"Insira o nome da base de dados utilizada pelo servidor z39.50. A maioria dos "
1467
"servidores não precisam dele."
1451
"servidores não precisam dele."
1468
1452
1469
#: fetch/z3950fetcher.cpp:579
1453
#: fetch/z3950fetcher.cpp:581
1470
msgid "Pass&word: "
1454
msgid "Pass&word: "
1471
msgstr "&Senha:"
1455
msgstr "&Senha: "
1472
1456
1473
#: fetch/z3950fetcher.cpp:586
1457
#: fetch/z3950fetcher.cpp:588
1474
msgid ""
1458
msgid ""
1475
"Enter the authentication password used by the z39.50 database. Most servers "
1459
"Enter the authentication password used by the z39.50 database. Most servers "
1476
"do not need one. The password will be saved in plain text in the Tellico "
1460
"do not need one. The password will be saved in plain text in the Tellico "
1477
"configuration file."
1461
"configuration file."
1478
msgstr ""
1462
msgstr ""
1479
"Insira a senha utilizada para a base de dados z39.50. A maior parte dos "
1463
"Insira a senha utilizada para a base de dados z39.50. A maior parte dos "
1480
"servidores não precisam dela. A senha será salva em formato texto no "
1464
"servidores não precisam dela. A senha será salva em formato texto no arquivo "
1481
"arquivo de configuração do Tellico."
1465
"de configuração do Tellico."
1482
1466
1483
#: fetch/z3950fetcher.cpp:670
1467
#: fetch/z3950fetcher.cpp:672
1484
msgid "Illustrator"
1468
msgid "Illustrator"
1485
msgstr "Ilustrador"
1469
msgstr "Ilustrador"
1486
1470
Lines 1488-1518 msgstr "Ilustrador" Link Here
1488
msgid "External Application"
1472
msgid "External Application"
1489
msgstr "Aplicativo Externo"
1473
msgstr "Aplicativo Externo"
1490
1474
1491
#: configdialog.cpp:363 fetch/execexternalfetcher.cpp:346
1475
#: configdialog.cpp:354 fetch/execexternalfetcher.cpp:336
1492
#: fetch/gcstarpluginfetcher.cpp:398 translators/csvimporter.cpp:226
1476
#: translators/csvimporter.cpp:171
1493
msgid "Collection &type:"
1477
msgid "Collection &type:"
1494
msgstr "&Tipo de coleção:"
1478
msgstr "&Tipo de coleção:"
1495
1479
1496
#: fetch/execexternalfetcher.cpp:351
1480
#: fetch/execexternalfetcher.cpp:341
1497
msgid ""
1481
msgid "Set the collection type of the data returned from the external application."
1498
"Set the collection type of the data returned from the external application."
1482
msgstr "Especifique o tipo de coleção dos dados retornados do aplicativo externo."
1499
msgstr ""
1500
"Especifique o tipo de coleção dos dados retornados do aplicativo externo."
1501
1483
1502
#: fetch/execexternalfetcher.cpp:356
1484
#: fetch/execexternalfetcher.cpp:346
1503
msgid "&Result type: "
1485
msgid "&Result type: "
1504
msgstr "Tipo de &Resultado:"
1486
msgstr "Tipo de &Resultado: "
1505
1487
1506
#: fetch/execexternalfetcher.cpp:365
1488
#: fetch/execexternalfetcher.cpp:355
1507
msgid "Set the result type of the data returned from the external application."
1489
msgid "Set the result type of the data returned from the external application."
1508
msgstr ""
1490
msgstr "Especifique o tipo de resultado dos dados retornados do aplicativo externo."
1509
"Especifique o tipo de resultado dos dados retornados do aplicativo externo."
1510
1491
1511
#: fetch/execexternalfetcher.cpp:370
1492
#: fetch/execexternalfetcher.cpp:360
1512
msgid "Application &path: "
1493
msgid "Application &path: "
1513
msgstr "&Caminho do Aplicativo:"
1494
msgstr "&Caminho do aplicativo: "
1514
1495
1515
#: fetch/execexternalfetcher.cpp:375
1496
#: fetch/execexternalfetcher.cpp:365
1516
msgid ""
1497
msgid ""
1517
"Set the path of the application to run that should output a valid Tellico "
1498
"Set the path of the application to run that should output a valid Tellico "
1518
"data file."
1499
"data file."
Lines 1520-1530 msgstr "" Link Here
1520
"Especifique o caminho do aplicativo a ser executado que deve gerar um "
1501
"Especifique o caminho do aplicativo a ser executado que deve gerar um "
1521
"arquivo de dados Tellico válido."
1502
"arquivo de dados Tellico válido."
1522
1503
1523
#: fetch/execexternalfetcher.cpp:380
1504
#: fetch/execexternalfetcher.cpp:370
1524
msgid "Select the search keys supported by the data source."
1505
msgid "Select the search keys supported by the data source."
1525
msgstr "Selecione as chaves de procura suportadas pela fonte de dados."
1506
msgstr "Selecione as chaves de procura suportadas pela fonte de dados."
1526
1507
1527
#: fetch/execexternalfetcher.cpp:381
1508
#: fetch/execexternalfetcher.cpp:371
1528
msgid ""
1509
msgid ""
1529
"Add any arguments that may be needed. <b>%1</b> will be replaced by the "
1510
"Add any arguments that may be needed. <b>%1</b> will be replaced by the "
1530
"search term."
1511
"search term."
Lines 1532-1558 msgstr "" Link Here
1532
"Adicione todos os argumentos necessários. <b> %1 </b> vai ser substituído "
1513
"Adicione todos os argumentos necessários. <b> %1 </b> vai ser substituído "
1533
"pelo termo a ser pesquisado."
1514
"pelo termo a ser pesquisado."
1534
1515
1535
#: fetch/execexternalfetcher.cpp:382
1516
#: fetch/execexternalfetcher.cpp:372
1536
msgid "Arguments"
1517
msgid "Arguments"
1537
msgstr "Argumentos"
1518
msgstr "Argumentos"
1538
1519
1539
#: fetch/execexternalfetcher.cpp:415 newstuff/dialog.cpp:152
1520
#: fetch/execexternalfetcher.cpp:405 newstuff/dialog.cpp:151
1540
msgid "Update"
1521
msgid "Update"
1541
msgstr "Atualizar"
1522
msgstr "Atualizar"
1542
1523
1543
#. TRANSLATORS: Do not translate %{author}.
1524
#. TRANSLATORS: Do not translate %{author}.
1544
#: fetch/execexternalfetcher.cpp:423
1525
#: fetch/execexternalfetcher.cpp:413
1545
msgid ""
1526
msgid ""
1546
"<p>Enter the arguments which should be used to search for available updates "
1527
"<p>Enter the arguments which should be used to search for available updates "
1547
"to an entry.</p><p>The format is the same as for <i>Dependent</i> fields, "
1528
"to an entry.</p><p>The format is the same as for <i>Dependent</i> fields, "
1548
"where field values are contained inside braces, such as <i>%{author}</i>. "
1529
"where field values are contained inside braces, such as <i>%{author}</i>. "
1549
"See the documentation for details.</p>"
1530
"See the documentation for details.</p>"
1550
msgstr ""
1531
msgstr ""
1551
"<p>Forneça os argumentos que devem ser usados para procurar por "
1532
"<p>Forneça os argumentos que devem ser usados para procurar por atualizações "
1552
"atualizações disponíveis para um registro.</p><p>O formato é o mesmo dos "
1533
"disponíveis para um registro.</p><p>O formato é o mesmo dos campos "
1553
"campos <i>Dependentes</i>, onde os valores dos campos são contidos entre "
1534
"<i>Dependentes</i>, onde os valores dos campos são contidos entre colchetes, "
1554
"colchetes, como <i>%{author}</i>. Veja a documentação para maiores "
1535
"como <i>%{author}</i>. Veja a documentação para maiores detalhes.</p>"
1555
"detalhes.</p>"
1556
1536
1557
#: fetch/configwidget.cpp:29
1537
#: fetch/configwidget.cpp:29
1558
msgid "Source Options"
1538
msgid "Source Options"
Lines 1562-1568 msgstr "Opções da Fonte" Link Here
1562
msgid "Available Fields"
1542
msgid "Available Fields"
1563
msgstr "Campos Disponíveis"
1543
msgstr "Campos Disponíveis"
1564
1544
1565
#: fetch/imdbfetcher.cpp:89
1545
#: fetch/imdbfetcher.cpp:88
1566
msgid "Internet Movie Database"
1546
msgid "Internet Movie Database"
1567
msgstr "Base de dados de filmes na Internet"
1547
msgstr "Base de dados de filmes na Internet"
1568
1548
Lines 1571-1578 msgid "Select IMDB Result" Link Here
1571
msgstr "Selecione o resultado IMDB"
1551
msgstr "Selecione o resultado IMDB"
1572
1552
1573
#: fetch/imdbfetcher.cpp:581
1553
#: fetch/imdbfetcher.cpp:581
1574
msgid ""
1554
msgid "<qt>Your search returned multiple matches. Please select one below.</qt>"
1575
"<qt>Your search returned multiple matches. Please select one below.</qt>"
1576
msgstr ""
1555
msgstr ""
1577
"<qt>A sua pesquisa retornou vários resultados. Por favor selecione um dos "
1556
"<qt>A sua pesquisa retornou vários resultados. Por favor selecione um dos "
1578
"seguintes.</qt>"
1557
"seguintes.</qt>"
Lines 1581-1604 msgstr "" Link Here
1581
msgid "<qt>Select a search result.</qt>"
1560
msgid "<qt>Select a search result.</qt>"
1582
msgstr "<qt>Selecione um resultado da pesquisa.</qt>"
1561
msgstr "<qt>Selecione um resultado da pesquisa.</qt>"
1583
1562
1584
#: fetch/imdbfetcher.cpp:688 fetch/imdbfetcher.cpp:1185
1563
#: fetch/imdbfetcher.cpp:688 fetch/imdbfetcher.cpp:1163
1585
msgid "IMDB Link"
1564
msgid "IMDB Link"
1586
msgstr "Link IMDB"
1565
msgstr "Link IMDB"
1587
1566
1588
#: fetch/animenfofetcher.cpp:260 fetch/imdbfetcher.cpp:746
1567
#: fetch/animenfofetcher.cpp:260 fetch/imdbfetcher.cpp:741
1589
#: fetch/imdbfetcher.cpp:1187
1568
#: fetch/imdbfetcher.cpp:1165
1590
msgid "Alternative Titles"
1569
msgid "Alternative Titles"
1591
msgstr "Títulos alternativos"
1570
msgstr "Títulos alternativos"
1592
1571
1593
#: fetch/imdbfetcher.cpp:947 fetch/imdbfetcher.cpp:1186
1572
#: fetch/imdbfetcher.cpp:932 fetch/imdbfetcher.cpp:1164
1594
msgid "IMDB Rating"
1573
msgid "IMDB Rating"
1595
msgstr "Classificação IMDB"
1574
msgstr "Classificação IMDB"
1596
1575
1597
#: fetch/imdbfetcher.cpp:1065 fetch/imdbfetcher.cpp:1188
1576
#: fetch/imdbfetcher.cpp:1043 fetch/imdbfetcher.cpp:1166
1598
msgid "Certifications"
1577
msgid "Certifications"
1599
msgstr "Certificações"
1578
msgstr "Certificações"
1600
1579
1601
#: fetch/imdbfetcher.cpp:1126
1580
#: fetch/imdbfetcher.cpp:1104
1602
msgid ""
1581
msgid ""
1603
"The Internet Movie Database uses several different servers. Choose the one "
1582
"The Internet Movie Database uses several different servers. Choose the one "
1604
"you wish to use."
1583
"you wish to use."
Lines 1606-1616 msgstr "" Link Here
1606
"A base de dados de filmes na Internet (IMDB) utiliza vários servidores "
1585
"A base de dados de filmes na Internet (IMDB) utiliza vários servidores "
1607
"diferentes. Escolha o que deseja utilizar."
1586
"diferentes. Escolha o que deseja utilizar."
1608
1587
1609
#: fetch/imdbfetcher.cpp:1132
1588
#: fetch/imdbfetcher.cpp:1110
1610
msgid "&Maximum cast: "
1589
msgid "&Maximum cast: "
1611
msgstr "Elenco &máximo:"
1590
msgstr "Elenco &máximo: "
1612
1591
1613
#: fetch/imdbfetcher.cpp:1137
1592
#: fetch/imdbfetcher.cpp:1115
1614
msgid ""
1593
msgid ""
1615
"The list of cast members may include many people. Set the maximum number "
1594
"The list of cast members may include many people. Set the maximum number "
1616
"returned from the search."
1595
"returned from the search."
Lines 1618-1657 msgstr "" Link Here
1618
"A lista de membros do elenco pode incluir muitas pessoas. Especifique o "
1597
"A lista de membros do elenco pode incluir muitas pessoas. Especifique o "
1619
"número máximo a ser retornado da pesquisa."
1598
"número máximo a ser retornado da pesquisa."
1620
1599
1621
#: fetch/discogsfetcher.cpp:679 fetch/imdbfetcher.cpp:1142
1600
#: fetch/imdbfetcher.cpp:1120
1622
msgid "Download cover &image"
1601
msgid "Download cover &image"
1623
msgstr "Efetuar o Download da &Imagem da Capa"
1602
msgstr "Efetuar o Download da &Imagem da Capa"
1624
1603
1625
#: fetch/ibsfetcher.cpp:47
1604
#: fetch/ibsfetcher.cpp:46
1626
msgid "Internet Bookshop (ibs.it)"
1605
msgid "Internet Bookshop (ibs.it)"
1627
msgstr "Internet Bookshop (ibs.it)"
1606
msgstr "Internet Bookshop (ibs.it)"
1628
1607
1629
#: fetch/fetchmanager.cpp:69
1608
#: fetch/fetchmanager.cpp:63
1630
msgid "Person"
1609
msgid "Person"
1631
msgstr "Pessoa"
1610
msgstr "Pessoa"
1632
1611
1633
#: fetch/fetchmanager.cpp:70
1612
#: fetch/fetchmanager.cpp:64
1634
msgid "ISBN"
1613
msgid "ISBN"
1635
msgstr "ISBN"
1614
msgstr "ISBN"
1636
1615
1637
#: fetch/fetchmanager.cpp:71
1616
#: fetch/fetchmanager.cpp:65
1638
#, fuzzy
1617
msgid "UPC"
1639
msgid "UPC/EAN"
1640
msgstr "UPC"
1618
msgstr "UPC"
1641
1619
1642
#: fetch/fetchmanager.cpp:72
1620
#: fetch/fetchmanager.cpp:66
1643
msgid "Keyword"
1621
msgid "Keyword"
1644
msgstr "Palavra chave"
1622
msgstr "Palavra chave"
1645
1623
1646
#: fetch/fetchmanager.cpp:74 translators/pdfimporter.cpp:173
1624
#: fetch/fetchmanager.cpp:67
1647
msgid "arXiv ID"
1648
msgstr ""
1649
1650
#: fetch/fetchmanager.cpp:75
1651
msgid "Pubmed ID"
1652
msgstr ""
1653
1654
#: fetch/fetchmanager.cpp:76
1655
msgid "Raw Query"
1625
msgid "Raw Query"
1656
msgstr "Pesquisa não refinada"
1626
msgstr "Pesquisa não refinada"
1657
1627
Lines 1667-1794 msgstr "Distribuidor" Link Here
1667
msgid "Episodes"
1637
msgid "Episodes"
1668
msgstr "Episódios"
1638
msgstr "Episódios"
1669
1639
1670
#: fetch/arxivfetcher.cpp:53
1640
#: newstuff/dialog.cpp:93
1671
msgid "arXiv.org"
1672
msgstr ""
1673
1674
#: fetch/crossreffetcher.cpp:83
1675
msgid "%1 requires a username and password."
1676
msgstr ""
1677
1678
#: fetch/crossreffetcher.cpp:332
1679
msgid ""
1680
"CrossRef requires an account for access. Please read the terms and "
1681
"conditions and <a href='http://www.crossref.org/requestaccount/'>request an "
1682
"account</a>. Enter your OpenURL account information below."
1683
msgstr ""
1684
1685
#: fetch/crossreffetcher.cpp:343
1686
#, fuzzy
1687
msgid "&Username: "
1688
msgstr "&Usuário:"
1689
1690
#: fetch/crossreffetcher.cpp:348
1691
#, fuzzy
1692
msgid ""
1693
"A username and password is required to access the CrossRef service. The "
1694
"password is stored as plain text in the Tellico configuration file."
1695
msgstr ""
1696
"Insira a senha utilizada para a base de dados z39.50. A maior parte dos "
1697
"servidores não precisam dela. A senha será salva em formato texto no "
1698
"arquivo de configuração do Tellico."
1699
1700
#: fetch/crossreffetcher.cpp:354
1701
#, fuzzy
1702
msgid "&Password: "
1703
msgstr "&Senha:"
1704
1705
#: fetch/gcstarpluginfetcher.cpp:190
1706
#, fuzzy
1707
msgid "GCstar Plugin"
1708
msgstr "Elenco"
1709
1710
#: fetch/gcstarpluginfetcher.cpp:404
1711
#, fuzzy
1712
msgid "Set the collection type of the data returned from the plugin."
1713
msgstr ""
1714
"Especifique o tipo de coleção dos dados retornados do aplicativo externo."
1715
1716
#: fetch/gcstarpluginfetcher.cpp:409
1717
msgid "&Plugin: "
1718
msgstr ""
1719
1720
#: fetch/gcstarpluginfetcher.cpp:415
1721
#, fuzzy
1722
msgid "Select the GCstar plugin used for the data source."
1723
msgstr "Selecione as chaves de procura suportadas pela fonte de dados."
1724
1725
#: fetch/gcstarpluginfetcher.cpp:420
1726
#, fuzzy
1727
msgid "Author: "
1728
msgstr "Autor"
1729
1730
#: fetch/discogsfetcher.cpp:58
1731
#, fuzzy
1732
msgid "Discogs Audio Search"
1733
msgstr "Yahoo! Audio Search"
1734
1735
#: fetch/discogsfetcher.cpp:668
1736
msgid "API &key: "
1737
msgstr ""
1738
1739
#: fetch/discogsfetcher.cpp:674
1740
msgid ""
1741
"With your discogs.com account you receive an API key for the usage of their "
1742
"XML-based interface (See http://www.discogs.com/help/api)."
1743
msgstr ""
1744
1745
#: fetch/discogsfetcher.cpp:718
1746
msgid "Discogs Link"
1747
msgstr ""
1748
1749
#: newstuff/dialog.cpp:94
1750
msgid "Get Hot New Stuff"
1641
msgid "Get Hot New Stuff"
1751
msgstr "Novidades Quentes"
1642
msgstr "Novidades Quentes"
1752
1643
1753
#: newstuff/dialog.cpp:114
1644
#: newstuff/dialog.cpp:113
1754
msgid "Version"
1645
msgid "Version"
1755
msgstr "Versão"
1646
msgstr "Versão"
1756
1647
1757
#: newstuff/dialog.cpp:116
1648
#: newstuff/dialog.cpp:115
1758
msgid "Downloads"
1649
msgid "Downloads"
1759
msgstr "Downloads"
1650
msgstr "Downloads"
1760
1651
1761
#: newstuff/dialog.cpp:117
1652
#: newstuff/dialog.cpp:116
1762
msgid "Release Date"
1653
msgid "Release Date"
1763
msgstr "Data de Lançamento"
1654
msgstr "Data de Lançamento"
1764
1655
1765
#: newstuff/dialog.cpp:121
1656
#: newstuff/dialog.cpp:120
1766
msgid ""
1657
msgid ""
1767
"This is a list of all the items available for download. Previously installed "
1658
"This is a list of all the items available for download. Previously installed "
1768
"items have a checkmark icon, while items with new version available have an "
1659
"items have a checkmark icon, while items with new version available have an "
1769
"update icon"
1660
"update icon"
1770
msgstr ""
1661
msgstr ""
1771
"Essa é uma lista de todos os itens disponíveis para download. Itens "
1662
"Essa é uma lista de todos os itens disponíveis para download. Itens "
1772
"previamente instalados são mostrados com um tique, enquanto itens que "
1663
"previamente instalados são mostrados com um tique, enquanto itens que tenham "
1773
"tenham novas versões disponíveis tem um ícone de atualização."
1664
"novas versões disponíveis tem um ícone de atualização"
1774
1665
1775
#: newstuff/dialog.cpp:137
1666
#: newstuff/dialog.cpp:136
1776
msgid "The name and license of the selected item"
1667
msgid "The name and license of the selected item"
1777
msgstr "O nome e a licença do item selecionado"
1668
msgstr "O nome e a licença do item selecionado"
1778
1669
1779
#: newstuff/dialog.cpp:140
1670
#: newstuff/dialog.cpp:139
1780
msgid "The author of the selected item"
1671
msgid "The author of the selected item"
1781
msgstr "O autor do item selecionado"
1672
msgstr "O autor do item selecionado"
1782
1673
1783
#: newstuff/dialog.cpp:142 newstuff/dialog.cpp:396
1674
#: newstuff/dialog.cpp:141 newstuff/dialog.cpp:395
1784
msgid "Install"
1675
msgid "Install"
1785
msgstr "Instalar"
1676
msgstr "Instalar"
1786
1677
1787
#: newstuff/dialog.cpp:161
1678
#: newstuff/dialog.cpp:160
1788
msgid "Download and install the selected template."
1679
msgid "Download and install the selected template."
1789
msgstr "Baixa e instala o modelo selecionado."
1680
msgstr "Baixa e instala o modelo selecionado."
1790
1681
1791
#: newstuff/dialog.cpp:164
1682
#: newstuff/dialog.cpp:163
1792
msgid ""
1683
msgid ""
1793
"Download and install the selected script. Some scripts may need to be "
1684
"Download and install the selected script. Some scripts may need to be "
1794
"configured after being installed."
1685
"configured after being installed."
Lines 1796-1878 msgstr "" Link Here
1796
"Baixa e instala o script selecionado. Alguns scripts podem precisar ser "
1687
"Baixa e instala o script selecionado. Alguns scripts podem precisar ser "
1797
"configurados após a instalação."
1688
"configurados após a instalação."
1798
1689
1799
#: newstuff/dialog.cpp:194
1690
#: newstuff/dialog.cpp:193
1800
msgid "A description of the selected item is shown here."
1691
msgid "A description of the selected item is shown here."
1801
msgstr "Uma descrição do item selecionado é mostrada aqui."
1692
msgstr "Uma descrição do item selecionado é mostrada aqui."
1802
1693
1803
#: newstuff/dialog.cpp:224
1694
#: newstuff/dialog.cpp:223
1804
msgid "Downloading information..."
1695
msgid "Downloading information..."
1805
msgstr "Baixando informações..."
1696
msgstr "Baixando informações..."
1806
1697
1807
#: controller.cpp:135 fetchdialog.cpp:226 fetchdialog.cpp:333
1698
#: controller.cpp:134 fetchdialog.cpp:215 fetchdialog.cpp:294
1808
#: fetchdialog.cpp:451 fetchdialog.cpp:506 newstuff/dialog.cpp:297
1699
#: fetchdialog.cpp:411 fetchdialog.cpp:466 newstuff/dialog.cpp:296
1809
#: newstuff/dialog.cpp:324 newstuff/dialog.cpp:434 statusbar.cpp:83
1700
#: newstuff/dialog.cpp:323 newstuff/dialog.cpp:433 statusbar.cpp:83
1810
msgid "Ready."
1701
msgid "Ready."
1811
msgstr "Pronto."
1702
msgstr "Pronto."
1812
1703
1813
#: newstuff/dialog.cpp:396
1704
#: newstuff/dialog.cpp:395
1814
msgid ""
1705
msgid ""
1815
"_: Update Stuff\n"
1706
"_: Update Stuff\n"
1816
"Update"
1707
"Update"
1817
msgstr "Atualização"
1708
msgstr "Atualização"
1818
1709
1819
#: newstuff/dialog.cpp:413
1710
#: newstuff/dialog.cpp:412
1820
msgid "Installing item..."
1711
msgid "Installing item..."
1821
msgstr "Instalando item..."
1712
msgstr "Instalando item..."
1822
1713
1823
#: translators/bibteximporter.cpp:79
1714
#: translators/bibteximporter.cpp:58
1824
#, fuzzy
1825
msgid "No valid bibtex entries were found"
1826
msgstr "Nenhum registro válido do BibTeX encontrado no arquivo - %1"
1827
1828
#: translators/bibteximporter.cpp:96
1829
#, c-format
1715
#, c-format
1830
msgid "No valid bibtex entries were found in file - %1"
1716
msgid "No valid bibtex entries were found in file - %1"
1831
msgstr "Nenhum registro válido do BibTeX encontrado no arquivo - %1"
1717
msgstr "Nenhum registro válido do BibTeX encontrado no arquivo - %1"
1832
1718
1833
#: translators/bibtexexporter.cpp:200 translators/bibteximporter.cpp:286
1834
msgid "Bibtex Options"
1835
msgstr "Opções do BibTeX"
1836
1837
#: translators/bibteximporter.cpp:287
1838
#, fuzzy
1839
msgid "Use Unicode (UTF-8) encoding"
1840
msgstr "Codificar em Unicode (UTF-8)"
1841
1842
#: translators/bibteximporter.cpp:288
1843
#, fuzzy
1844
msgid "Read the imported file in Unicode (UTF-8)."
1845
msgstr "Codificar o arquivo exportado em Unicode (UTF-8)."
1846
1847
#: translators/bibteximporter.cpp:289
1848
#, fuzzy
1849
msgid "Use user locale (%1) encoding"
1850
msgstr "Codificar na localização do usuário (%1)"
1851
1852
#: translators/bibteximporter.cpp:293
1853
#, fuzzy
1854
msgid "Read the imported file in the local encoding."
1855
msgstr "Codifica o arquivo exportado no formato local."
1856
1857
#: translators/tellicozipexporter.cpp:35
1858
msgid "Tellico Zip File"
1859
msgstr "Arquivo Zip Tellico"
1860
1861
#: importdialog.cpp:245 mainwindow.cpp:1101 mainwindow.cpp:1267
1862
#: translators/tellicozipexporter.cpp:39
1863
msgid "*.tc *.bc|Tellico Files (*.tc)"
1864
msgstr "*.tc *.bc|Arquivos Tellico (*.tc)"
1865
1866
#: configdialog.cpp:1017 importdialog.cpp:297 mainwindow.cpp:1105
1867
#: mainwindow.cpp:1269 reportdialog.cpp:195 translators/bibtexexporter.cpp:52
1868
#: translators/bibtexmlexporter.cpp:40 translators/csvexporter.cpp:44
1869
#: translators/gcfilmsexporter.cpp:41 translators/htmlexporter.cpp:89
1870
#: translators/onixexporter.cpp:67 translators/pilotdbexporter.cpp:47
1871
#: translators/tellicoxmlexporter.cpp:60 translators/tellicozipexporter.cpp:39
1872
#: translators/xsltexporter.cpp:41 translators/xsltimporter.cpp:105
1873
msgid "*|All Files"
1874
msgstr "*|Todos os Arquivos"
1875
1876
#: translators/alexandriaexporter.cpp:43
1719
#: translators/alexandriaexporter.cpp:43
1877
msgid "Alexandria"
1720
msgid "Alexandria"
1878
msgstr "Alexandria"
1721
msgstr "Alexandria"
Lines 1885-1905 msgstr "" Link Here
1885
"<qt>Uma biblioteca do Alexandria chamada <i>%1</i> já existe. Quaisquer "
1728
"<qt>Uma biblioteca do Alexandria chamada <i>%1</i> já existe. Quaisquer "
1886
"livros existentes nesta biblioteca podem ser sobrescritos.</qt>"
1729
"livros existentes nesta biblioteca podem ser sobrescritos.</qt>"
1887
1730
1888
#: filehandler.cpp:141 translators/tellicoimporter.cpp:113
1731
#: filehandler.cpp:138 translators/tellicoimporter.cpp:108
1889
#: translators/xmlimporter.cpp:43 translators/xmlimporter.cpp:60
1732
#: translators/xmlimporter.cpp:42 translators/xmlimporter.cpp:56
1890
msgid "There is an XML parsing error in line %1, column %2."
1733
msgid "There is an XML parsing error in line %1, column %2."
1891
msgstr "Há um erro de análise XML na linha %1, coluna %2."
1734
msgstr "Há um erro de análise XML na linha %1, coluna %2."
1892
1735
1893
#: filehandler.cpp:143 translators/tellicoimporter.cpp:115
1736
#: filehandler.cpp:140 translators/tellicoimporter.cpp:110
1894
#: translators/xmlimporter.cpp:45 translators/xmlimporter.cpp:62
1737
#: translators/xmlimporter.cpp:44 translators/xmlimporter.cpp:58
1895
msgid "The error message from Qt is:"
1738
msgid "The error message from Qt is:"
1896
msgstr "A mensagem de erro do Qt é:"
1739
msgstr "A mensagem de erro do Qt é:"
1897
1740
1898
#: translators/tellicoimporter.cpp:152
1741
#: translators/tellicoimporter.cpp:147
1899
msgid "It is from a future version of Tellico."
1742
msgid "It is from a future version of Tellico."
1900
msgstr "Isto é para uma futura versão do Tellico."
1743
msgstr "Isto é para uma futura versão do Tellico."
1901
1744
1902
#: translators/tellicoimporter.cpp:162
1745
#: translators/tellicoimporter.cpp:156
1903
msgid ""
1746
msgid ""
1904
"Tellico is converting the file to a more recent document format. Information "
1747
"Tellico is converting the file to a more recent document format. Information "
1905
"loss may occur if an older version of Tellico is used to read this file in "
1748
"loss may occur if an older version of Tellico is used to read this file in "
Lines 1909-1940 msgstr "" Link Here
1909
"perda de informações se este arquivo for lido no futuro por uma versão "
1752
"perda de informações se este arquivo for lido no futuro por uma versão "
1910
"antiga do Tellico."
1753
"antiga do Tellico."
1911
1754
1912
#: translators/bibtexhandler.cpp:245 translators/risimporter.cpp:286
1755
#: translators/bibtexhandler.cpp:245 translators/risimporter.cpp:263
1913
#: translators/risimporter.cpp:290 translators/tellicoimporter.cpp:367
1756
#: translators/risimporter.cpp:267 translators/tellicoimporter.cpp:333
1914
msgid "Unknown"
1757
msgid "Unknown"
1915
msgstr "Desconhecido"
1758
msgstr "Desconhecido"
1916
1759
1917
#: translators/tellicoimporter.cpp:777
1760
#: translators/tellicoimporter.cpp:723
1918
msgid "The file is empty."
1761
msgid "The file is empty."
1919
msgstr "O arquivo está vazio."
1762
msgstr "O arquivo está vazio."
1920
1763
1921
#: translators/tellicoimporter.cpp:795
1764
#: translators/tellicoimporter.cpp:741
1922
msgid "The file contains no collection data."
1765
msgid "The file contains no collection data."
1923
msgstr "O arquivo não contém dados de coleção."
1766
msgstr "O arquivo não contém dados de coleção."
1924
1767
1925
#: translators/tellicoimporter.cpp:940
1768
#: translators/tellicoimporter.cpp:885
1926
msgid "Unread Books"
1769
msgid "Unread Books"
1927
msgstr "Livros Não Lidos"
1770
msgstr "Livros Não Lidos"
1928
1771
1929
#: translators/tellicoimporter.cpp:950
1772
#: translators/tellicoimporter.cpp:895
1930
msgid "Old Movies"
1773
msgid "Old Movies"
1931
msgstr "Filmes Antigos"
1774
msgstr "Filmes Antigos"
1932
1775
1933
#: translators/tellicoimporter.cpp:968
1776
#: translators/tellicoimporter.cpp:913
1934
msgid "80's Music"
1777
msgid "80's Music"
1935
msgstr "Música dos anos 80"
1778
msgstr "Música dos anos 80"
1936
1779
1937
#: translators/tellicoimporter.cpp:980
1780
#: translators/tellicoimporter.cpp:925
1938
msgid "Favorites"
1781
msgid "Favorites"
1939
msgstr "Favoritos"
1782
msgstr "Favoritos"
1940
1783
Lines 1942-2004 msgstr "Favoritos" Link Here
1942
msgid "Scanning audio files..."
1785
msgid "Scanning audio files..."
1943
msgstr "Procurando arquivos de áudio..."
1786
msgstr "Procurando arquivos de áudio..."
1944
1787
1945
#: translators/audiofileimporter.cpp:129
1788
#: translators/audiofileimporter.cpp:169 xslt.cpp:4
1946
#, fuzzy
1947
msgid "Bitrate"
1948
msgstr "BibTeX"
1949
1950
#: translators/audiofileimporter.cpp:160 translators/audiofileimporter.cpp:170
1951
msgid "Tracks (Disc %1)"
1952
msgstr ""
1953
1954
#: translators/audiofileimporter.cpp:189 xslt.cpp:4
1955
msgid "(Various)"
1789
msgid "(Various)"
1956
msgstr "(Vários)"
1790
msgstr "(Vários)"
1957
1791
1958
#: translators/audiofileimporter.cpp:340
1792
#: translators/audiofileimporter.cpp:317
1959
msgid "Audio File Options"
1793
msgid "Audio File Options"
1960
msgstr "Opções de Arquivo de Áudio"
1794
msgstr "Opções de Arquivo de Áudio"
1961
1795
1962
#: translators/audiofileimporter.cpp:342
1796
#: translators/audiofileimporter.cpp:319
1963
msgid "Recursive &folder search"
1797
msgid "Recursive &folder search"
1964
msgstr "Pesquisa recursiva de &pastas"
1798
msgstr "Pesquisa recursiva de &pastas"
1965
1799
1966
#: translators/audiofileimporter.cpp:343
1800
#: translators/audiofileimporter.cpp:320
1967
msgid "If checked, folders are recursively searched for audio files."
1801
msgid "If checked, folders are recursively searched for audio files."
1968
msgstr ""
1802
msgstr ""
1969
"Se selecionado, as pastas são varridas recursivamente para procurar "
1803
"Se selecionado, as pastas são varridas recursivamente para procurar arquivos "
1970
"arquivos de áudio."
1804
"de áudio."
1971
1805
1972
#: translators/audiofileimporter.cpp:347
1806
#: translators/audiofileimporter.cpp:324
1973
msgid "Include file &location"
1807
msgid "&Include file location"
1974
msgstr "&Incluir localização do arquivo"
1808
msgstr "&Incluir localização do arquivo"
1975
1809
1976
#: translators/audiofileimporter.cpp:348
1810
#: translators/audiofileimporter.cpp:325
1977
msgid "If checked, the file names for each track are added to the entries."
1811
msgid "If checked, the file names for each track are added to the entries."
1978
msgstr ""
1812
msgstr ""
1979
"Se selecionado, os nomes dos arquivos de cada faixa serão adicionados aos "
1813
"Se selecionado, os nomes dos arquivos de cada faixa serão adicionados aos "
1980
"registros."
1814
"registros."
1981
1815
1982
#: translators/audiofileimporter.cpp:352
1983
msgid "Include &bitrate"
1984
msgstr ""
1985
1986
#: translators/audiofileimporter.cpp:353
1987
#, fuzzy
1988
msgid "If checked, the bitrate for each track is added to the entries."
1989
msgstr ""
1990
"Se selecionado, os nomes dos arquivos de cada faixa serão adicionados aos "
1991
"registros."
1992
1993
#: translators/csvexporter.cpp:40
1816
#: translators/csvexporter.cpp:40
1994
msgid "CSV"
1817
msgid "CSV"
1995
msgstr "CSV"
1818
msgstr "CSV"
1996
1819
1997
#: importdialog.cpp:254 translators/csvexporter.cpp:44
1820
#: importdialog.cpp:213 translators/csvexporter.cpp:44
1998
msgid "*.csv|CSV Files (*.csv)"
1821
msgid "*.csv|CSV Files (*.csv)"
1999
msgstr "*.csv|Arquivos CSV (*.csv)"
1822
msgstr "*.csv|Arquivos CSV (*.csv)"
2000
1823
2001
#: translators/csvexporter.cpp:109 translators/csvimporter.cpp:221
1824
#: configdialog.cpp:992 importdialog.cpp:245 mainwindow.cpp:1060
1825
#: mainwindow.cpp:1217 reportdialog.cpp:195 translators/bibtexexporter.cpp:52
1826
#: translators/bibtexmlexporter.cpp:40 translators/csvexporter.cpp:44
1827
#: translators/gcfilmsexporter.cpp:41 translators/htmlexporter.cpp:88
1828
#: translators/onixexporter.cpp:67 translators/pilotdbexporter.cpp:47
1829
#: translators/tellicoxmlexporter.cpp:60 translators/tellicozipexporter.cpp:39
1830
#: translators/xsltexporter.cpp:41 translators/xsltimporter.cpp:86
1831
msgid "*|All Files"
1832
msgstr "*|Todos os Arquivos"
1833
1834
#: translators/csvexporter.cpp:109 translators/csvimporter.cpp:166
2002
msgid "CSV Options"
1835
msgid "CSV Options"
2003
msgstr "Opções CSV"
1836
msgstr "Opções CSV"
2004
1837
Lines 2008-2034 msgstr "Incluir os nomes dos campos como cabeçalho das colunas" Link Here
2008
1841
2009
#: translators/csvexporter.cpp:114
1842
#: translators/csvexporter.cpp:114
2010
msgid "If checked, a header row will be added with the field titles."
1843
msgid "If checked, a header row will be added with the field titles."
2011
msgstr ""
1844
msgstr "Se selecionada, uma linha de cabeçalho será adicionada com o nome dos campos."
2012
"Se selecionada, uma linha de cabeçalho será adicionada com o nome dos "
2013
"campos."
2014
1845
2015
#: translators/csvexporter.cpp:117 translators/csvimporter.cpp:240
1846
#: translators/csvexporter.cpp:117 translators/csvimporter.cpp:185
2016
msgid "Delimiter"
1847
msgid "Delimiter"
2017
msgstr "Separador"
1848
msgstr "Separador"
2018
1849
2019
#: translators/csvexporter.cpp:120 translators/csvimporter.cpp:243
1850
#: translators/csvexporter.cpp:120 translators/csvimporter.cpp:188
2020
msgid ""
1851
msgid ""
2021
"In addition to a comma, other characters may be used as a delimiter, "
1852
"In addition to a comma, other characters may be used as a delimiter, "
2022
"separating each value in the file."
1853
"separating each value in the file."
2023
msgstr ""
1854
msgstr ""
2024
"Além da vírgula, outros caracteres podem ser utilizados para delimitar "
1855
"Além da vírgula, outros caracteres podem ser utilizados para delimitar cada "
2025
"cada valor no arquivo."
1856
"valor no arquivo."
2026
1857
2027
#: translators/csvexporter.cpp:124
1858
#: translators/csvexporter.cpp:124
2028
msgid "Comma"
1859
msgid "Comma"
2029
msgstr "Vírgula"
1860
msgstr "Vírgula"
2030
1861
2031
#: translators/csvexporter.cpp:126 translators/csvimporter.cpp:250
1862
#: translators/csvexporter.cpp:126 translators/csvimporter.cpp:195
2032
msgid "Use a comma as the delimiter."
1863
msgid "Use a comma as the delimiter."
2033
msgstr "Utilizar a vírgula como separador."
1864
msgstr "Utilizar a vírgula como separador."
2034
1865
Lines 2036-2042 msgstr "Utilizar a vírgula como separador." Link Here
2036
msgid "Semicolon"
1867
msgid "Semicolon"
2037
msgstr "Ponto e vírgula"
1868
msgstr "Ponto e vírgula"
2038
1869
2039
#: translators/csvexporter.cpp:131 translators/csvimporter.cpp:255
1870
#: translators/csvexporter.cpp:131 translators/csvimporter.cpp:200
2040
msgid "Use a semi-colon as the delimiter."
1871
msgid "Use a semi-colon as the delimiter."
2041
msgstr "Utilizar o ponto e vírgula como separador."
1872
msgstr "Utilizar o ponto e vírgula como separador."
2042
1873
Lines 2044-2050 msgstr "Utilizar o ponto e vírgula como separador." Link Here
2044
msgid "Tab"
1875
msgid "Tab"
2045
msgstr "Aba"
1876
msgstr "Aba"
2046
1877
2047
#: translators/csvexporter.cpp:136 translators/csvimporter.cpp:260
1878
#: translators/csvexporter.cpp:136 translators/csvimporter.cpp:205
2048
msgid "Use a tab as the delimiter."
1879
msgid "Use a tab as the delimiter."
2049
msgstr "Utilizar a tabulação como separador."
1880
msgstr "Utilizar a tabulação como separador."
2050
1881
Lines 2052-2096 msgstr "Utilizar a tabulação como separador." Link Here
2052
msgid "Other"
1883
msgid "Other"
2053
msgstr "Outro"
1884
msgstr "Outro"
2054
1885
2055
#: translators/csvexporter.cpp:141 translators/csvimporter.cpp:265
1886
#: translators/csvexporter.cpp:141 translators/csvimporter.cpp:210
2056
msgid "Use a custom string as the delimiter."
1887
msgid "Use a custom string as the delimiter."
2057
msgstr "Utilizar um outro caractere como separador."
1888
msgstr "Utilizar um outro caractere como separador."
2058
1889
2059
#: translators/csvexporter.cpp:146 translators/csvimporter.cpp:272
1890
#: translators/csvexporter.cpp:146 translators/csvimporter.cpp:216
2060
msgid "A custom string, such as a colon, may be used as a delimiter."
1891
msgid "A custom string, such as a colon, may be used as a delimiter."
2061
msgstr ""
1892
msgstr ""
2062
"Um caractere qualquer, como os dois pontos, pode ser utilizado como "
1893
"Um caractere qualquer, como os dois pontos, pode ser utilizado como "
2063
"separador."
1894
"separador."
2064
1895
2065
#: translators/filelistingimporter.cpp:63
1896
#: translators/filelistingimporter.cpp:62
2066
msgid "Scanning files..."
1897
msgid "Scanning files..."
2067
msgstr "Varrendo arquivos..."
1898
msgstr "Varrendo arquivos..."
2068
1899
2069
#: translators/filelistingimporter.cpp:191
1900
#: translators/filelistingimporter.cpp:196
2070
msgid "File Listing Options"
1901
msgid "File Listing Options"
2071
msgstr "Opções de Listagem de Arquivo"
1902
msgstr "Opções de Listagem de Arquivo"
2072
1903
2073
#: translators/filelistingimporter.cpp:193
1904
#: translators/filelistingimporter.cpp:198
2074
msgid "Recursive folder search"
1905
msgid "Recursive folder search"
2075
msgstr "Procura recursiva de pastas"
1906
msgstr "Procura recursiva de pastas"
2076
1907
2077
#: translators/filelistingimporter.cpp:194
1908
#: translators/filelistingimporter.cpp:199
2078
msgid "If checked, folders are recursively searched for all files."
1909
msgid "If checked, folders are recursively searched for all files."
2079
msgstr ""
1910
msgstr ""
2080
"Se selecionado, as pastas são varridas recursivamente para procurar todos "
1911
"Se selecionado, as pastas são varridas recursivamente para procurar todos os "
2081
"os arquivos."
1912
"arquivos."
2082
1913
2083
#: translators/filelistingimporter.cpp:198
1914
#: translators/filelistingimporter.cpp:203
2084
msgid "Generate file previews"
1915
msgid "Generate file previews"
2085
msgstr "Gerar pré-visualizações dos arquivos"
1916
msgstr "Gerar pré-visualizações dos arquivos"
2086
1917
2087
#: translators/filelistingimporter.cpp:199
1918
#: translators/filelistingimporter.cpp:204
2088
msgid ""
1919
msgid ""
2089
"If checked, previews of the file contents are generated, which can slow down "
1920
"If checked, previews of the file contents are generated, which can slow down "
2090
"the folder listing."
1921
"the folder listing."
2091
msgstr ""
1922
msgstr ""
2092
"Se selecionado, serão geradas pré-visualizações do conteúdo dos "
1923
"Se selecionado, serão geradas pré-visualizações do conteúdo dos arquivos, o "
2093
"arquivos, o que pode causar lentidão na listagem das pastas."
1924
"que pode causar lentidão na listagem das pastas."
2094
1925
2095
#: translators/onixexporter.cpp:63
1926
#: translators/onixexporter.cpp:63
2096
msgid "ONIX Archive"
1927
msgid "ONIX Archive"
Lines 2118-2125 msgstr "" Link Here
2118
1949
2119
#: translators/freedbimporter.cpp:84 translators/freedbimporter.cpp:170
1950
#: translators/freedbimporter.cpp:84 translators/freedbimporter.cpp:170
2120
msgid "<qt>Tellico was unable to access the CD-ROM device - <i>%1</i>.</qt>"
1951
msgid "<qt>Tellico was unable to access the CD-ROM device - <i>%1</i>.</qt>"
2121
msgstr ""
1952
msgstr "<qt>Tellico não pôde acessar o dispositivo de CD-ROM - <b>%1</b>.</qt>"
2122
"<qt>Tellico não pôde acessar o dispositivo de CD-ROM - <b>%1</b>.</qt>"
2123
1953
2124
#: translators/freedbimporter.cpp:196
1954
#: translators/freedbimporter.cpp:196
2125
msgid "Select CDDB Entry"
1955
msgid "Select CDDB Entry"
Lines 2135-2164 msgstr "<qt>Nenhum registro correspondente ao CD foi encontrado.</qt>" Link Here
2135
1965
2136
#: translators/freedbimporter.cpp:238
1966
#: translators/freedbimporter.cpp:238
2137
msgid "<qt>Tellico was unable to complete the CD lookup.</qt>"
1967
msgid "<qt>Tellico was unable to complete the CD lookup.</qt>"
2138
msgstr ""
1968
msgstr "<qt>Tellico não pôde completar a pesquisa das informações do CD.</qt>"
2139
"<qt>Tellico não pôde completar a pesquisa das informações do CD.</qt>"
2140
1969
2141
#: translators/freedbimporter.cpp:470
1970
#: translators/freedbimporter.cpp:469
2142
msgid "Various"
1971
msgid "Various"
2143
msgstr "Vários"
1972
msgstr "Vários"
2144
1973
2145
#: translators/freedbimporter.cpp:489
1974
#: translators/freedbimporter.cpp:488
2146
msgid "Audio CD Options"
1975
msgid "Audio CD Options"
2147
msgstr "Opções de CD de Áudio"
1976
msgstr "Opções de CD de Áudio"
2148
1977
2149
#: translators/freedbimporter.cpp:493
1978
#: translators/freedbimporter.cpp:492
2150
msgid "Read data from CD-ROM device"
1979
msgid "Read data from CD-ROM device"
2151
msgstr "Ler dados do dispositivo de CD-ROM"
1980
msgstr "Ler dados do dispositivo de CD-ROM"
2152
1981
2153
#: translators/freedbimporter.cpp:496
1982
#: translators/freedbimporter.cpp:495
2154
msgid "Select or input the CD-ROM device location."
1983
msgid "Select or input the CD-ROM device location."
2155
msgstr "Selecione ou informe a localização do dispositivo de CD-ROM."
1984
msgstr "Selecione ou informe a localização do dispositivo de CD-ROM."
2156
1985
2157
#: translators/freedbimporter.cpp:502
1986
#: translators/freedbimporter.cpp:501
2158
msgid "Read all CDDB cache files only"
1987
msgid "Read all CDDB cache files only"
2159
msgstr "Ler apenas os arquivos de cache do CDDB"
1988
msgstr "Ler apenas os arquivos de cache do CDDB"
2160
1989
2161
#: translators/freedbimporter.cpp:503
1990
#: translators/freedbimporter.cpp:502
2162
msgid ""
1991
msgid ""
2163
"Read data recursively from all the CDDB cache files contained in the default "
1992
"Read data recursively from all the CDDB cache files contained in the default "
2164
"cache folders."
1993
"cache folders."
Lines 2166-2192 msgstr "" Link Here
2166
"Ler recursivamente os dados de todos os arquivos de cache do CDDB contidos "
1995
"Ler recursivamente os dados de todos os arquivos de cache do CDDB contidos "
2167
"nas pastas de cache padrão."
1996
"nas pastas de cache padrão."
2168
1997
2169
#: translators/gcfilmsexporter.cpp:37
1998
#: importdialog.cpp:272 translators/gcfilmsexporter.cpp:37
2170
msgid "GCfilms"
1999
msgid "GCfilms"
2171
msgstr "GCfilms "
2000
msgstr "GCfilms "
2172
2001
2173
#: importdialog.cpp:273 translators/gcfilmsexporter.cpp:41
2002
#: importdialog.cpp:230 translators/gcfilmsexporter.cpp:41
2174
msgid "*.gcf|GCfilms Data Files (*.gcf)"
2003
msgid "*.gcf|GCfilms Data Files (*.gcf)"
2175
msgstr "*.gcf|Arquivos de Dados GCfilms (*.gcf) "
2004
msgstr "*.gcf|Arquivos de Dados GCfilms (*.gcf) "
2176
2005
2177
#: importdialog.cpp:272 translators/gcfilmsexporter.cpp:43
2178
msgid "*.gcs|GCstar Data Files (*.gcs)"
2179
msgstr "*.gcs|Arquivos de Dados GCstar (*.gcs) "
2180
2181
#: translators/xsltexporter.cpp:37
2006
#: translators/xsltexporter.cpp:37
2182
msgid "XSLT"
2007
msgid "XSLT"
2183
msgstr "XSLT"
2008
msgstr "XSLT"
2184
2009
2185
#: translators/xsltexporter.cpp:69 translators/xsltimporter.cpp:98
2010
#: translators/xsltexporter.cpp:69 translators/xsltimporter.cpp:79
2186
msgid "XSLT Options"
2011
msgid "XSLT Options"
2187
msgstr "Opções de XSLT"
2012
msgstr "Opções de XSLT"
2188
2013
2189
#: translators/xsltexporter.cpp:74 translators/xsltimporter.cpp:101
2014
#: translators/xsltexporter.cpp:74 translators/xsltimporter.cpp:82
2190
msgid "XSLT file:"
2015
msgid "XSLT file:"
2191
msgstr "Arquivo XSLT:"
2016
msgstr "Arquivo XSLT:"
2192
2017
Lines 2194-2208 msgstr "Arquivo XSLT:" Link Here
2194
msgid "Choose the XSLT file used to transform the Tellico XML data."
2019
msgid "Choose the XSLT file used to transform the Tellico XML data."
2195
msgstr "Escolher o arquivo XSLT para transformar os dados XML do Tellico."
2020
msgstr "Escolher o arquivo XSLT para transformar os dados XML do Tellico."
2196
2021
2197
#: translators/alexandriaimporter.cpp:194
2022
#: translators/alexandriaimporter.cpp:193
2198
msgid "Alexandria Options"
2023
msgid "Alexandria Options"
2199
msgstr "Opções do Alexandria"
2024
msgstr "Opções do Alexandria"
2200
2025
2201
#: translators/alexandriaimporter.cpp:195
2026
#: translators/alexandriaimporter.cpp:194
2202
msgid "&Library:"
2027
msgid "&Library:"
2203
msgstr "&Biblioteca:"
2028
msgstr "&Biblioteca:"
2204
2029
2205
#: translators/bibtexmlexporter.cpp:36
2030
#: importdialog.cpp:268 translators/bibtexmlexporter.cpp:36
2206
msgid "Bibtexml"
2031
msgid "Bibtexml"
2207
msgstr "BibTeXML "
2032
msgstr "BibTeXML "
2208
2033
Lines 2214-2233 msgstr "*.xml|Arquivos BibTeXML (*.xml)" Link Here
2214
msgid "XML"
2039
msgid "XML"
2215
msgstr "XML"
2040
msgstr "XML"
2216
2041
2217
#: importdialog.cpp:246 importdialog.cpp:259 importdialog.cpp:264
2042
#: importdialog.cpp:205 importdialog.cpp:218 importdialog.cpp:222
2218
#: mainwindow.cpp:1103 translators/tellicoxmlexporter.cpp:60
2043
#: mainwindow.cpp:1058 translators/tellicoxmlexporter.cpp:60
2219
msgid "*.xml|XML Files (*.xml)"
2044
msgid "*.xml|XML Files (*.xml)"
2220
msgstr "*.xml|Arquivos XML (*.xml)"
2045
msgstr "*.xml|Arquivos XML (*.xml)"
2221
2046
2222
#: translators/tellicoxmlexporter.cpp:480
2047
#: translators/tellicoxmlexporter.cpp:464
2223
msgid "Tellico XML Options"
2048
msgid "Tellico XML Options"
2224
msgstr "Opções XML do Tellico"
2049
msgstr "Opções XML do Tellico"
2225
2050
2226
#: translators/tellicoxmlexporter.cpp:483
2051
#: translators/tellicoxmlexporter.cpp:467
2227
msgid "Include images in XML document"
2052
msgid "Include images in XML document"
2228
msgstr "Incluir as imagens no documento XML"
2053
msgstr "Incluir as imagens no documento XML"
2229
2054
2230
#: translators/tellicoxmlexporter.cpp:485
2055
#: translators/tellicoxmlexporter.cpp:469
2231
msgid ""
2056
msgid ""
2232
"If checked, the images in the document will be included in the XML stream as "
2057
"If checked, the images in the document will be included in the XML stream as "
2233
"base64 encoded elements."
2058
"base64 encoded elements."
Lines 2235-2261 msgstr "" Link Here
2235
"Se selecionado, as imagens do documento serão integradas aos dados em XML "
2060
"Se selecionado, as imagens do documento serão integradas aos dados em XML "
2236
"como elementos codificados em base64."
2061
"como elementos codificados em base64."
2237
2062
2238
#: translators/importer.h:100
2063
#: translators/importer.h:90
2239
msgid "Loading data..."
2064
msgid "Loading data..."
2240
msgstr "Carregando dados..."
2065
msgstr "Carregando dados..."
2241
2066
2242
#: translators/importer.h:100
2067
#: translators/importer.h:90
2243
msgid "Loading %1..."
2068
msgid "Loading %1..."
2244
msgstr "Carregando %1..."
2069
msgstr "Carregando %1..."
2245
2070
2246
#: translators/bibtexexporter.cpp:48
2071
#: importdialog.cpp:267 translators/bibtexexporter.cpp:48
2247
msgid "Bibtex"
2072
msgid "Bibtex"
2248
msgstr "BibTeX"
2073
msgstr "BibTeX"
2249
2074
2250
#: importdialog.cpp:250 translators/bibtexexporter.cpp:52
2075
#: importdialog.cpp:209 translators/bibtexexporter.cpp:52
2251
msgid "*.bib|Bibtex Files (*.bib)"
2076
msgid "*.bib|Bibtex Files (*.bib)"
2252
msgstr "*.bib|Arquivos BibTeX (*.bib)"
2077
msgstr "*.bib|Arquivos BibTeX (*.bib)"
2253
2078
2254
#: translators/bibtexexporter.cpp:203
2079
#: translators/bibtexexporter.cpp:201
2080
msgid "Bibtex Options"
2081
msgstr "Opções do BibTeX"
2082
2083
#: translators/bibtexexporter.cpp:204
2255
msgid "Expand string macros"
2084
msgid "Expand string macros"
2256
msgstr "Expandir as macros de string"
2085
msgstr "Expandir as macros de string"
2257
2086
2258
#: translators/bibtexexporter.cpp:205
2087
#: translators/bibtexexporter.cpp:206
2259
msgid ""
2088
msgid ""
2260
"If checked, the string macros will be expanded and no @string{} entries will "
2089
"If checked, the string macros will be expanded and no @string{} entries will "
2261
"be written."
2090
"be written."
Lines 2263-2375 msgstr "" Link Here
2263
"Se selecionado, as macros de string vão ser expandidas e nenhum registro "
2092
"Se selecionado, as macros de string vão ser expandidas e nenhum registro "
2264
"@string{} será escrito."
2093
"@string{} será escrito."
2265
2094
2266
#: translators/bibtexexporter.cpp:208
2095
#: translators/bibtexexporter.cpp:209
2267
msgid "Use URL package"
2096
msgid "Use URL package"
2268
msgstr "Utilizar o pacote URL"
2097
msgstr "Utilizar o pacote URL"
2269
2098
2270
#: translators/bibtexexporter.cpp:210
2099
#: translators/bibtexexporter.cpp:211
2271
msgid "If checked, any URL fields will be wrapped in a \\url declaration."
2100
msgid "If checked, any URL fields will be wrapped in a \\url declaration."
2272
msgstr ""
2101
msgstr "Se selecionado, qualquer campo URL será transformado em uma declaração \\url."
2273
"Se selecionado, qualquer campo URL será transformado em uma declaração "
2274
"\\url."
2275
2102
2276
#: translators/bibtexexporter.cpp:213
2103
#: translators/bibtexexporter.cpp:214
2277
msgid "Skip entries with empty citation keys"
2104
msgid "Skip entries with empty citation keys"
2278
msgstr "Ignorar os registros com chaves de citação vazias"
2105
msgstr "Ignorar os registros com chaves de citação vazias"
2279
2106
2280
#: translators/bibtexexporter.cpp:215
2107
#: translators/bibtexexporter.cpp:216
2281
msgid "If checked, any entries without a bibtex citation key will be skipped."
2108
msgid "If checked, any entries without a bibtex citation key will be skipped."
2282
msgstr ""
2109
msgstr ""
2283
"Se selecionado, qualquer registro sem uma chave de citação do BibTeX será "
2110
"Se selecionado, qualquer registro sem uma chave de citação do BibTeX será "
2284
"ignorado."
2111
"ignorado."
2285
2112
2286
#: translators/bibtexexporter.cpp:219
2113
#: translators/bibtexexporter.cpp:220
2287
msgid "Bibtex quotation style:"
2114
msgid "Bibtex quotation style:"
2288
msgstr "Estilo das citações do BibTeX:"
2115
msgstr "Estilo das citações do BibTeX:"
2289
2116
2290
#: translators/bibtexexporter.cpp:221 translators/bibtexexporter.cpp:228
2117
#: translators/bibtexexporter.cpp:222 translators/bibtexexporter.cpp:229
2291
#: translators/bibtexexporter.cpp:259
2118
#: translators/bibtexexporter.cpp:260
2292
msgid "Braces"
2119
msgid "Braces"
2293
msgstr "Colchetes"
2120
msgstr "Colchetes"
2294
2121
2295
#: translators/bibtexexporter.cpp:222 translators/bibtexexporter.cpp:230
2122
#: translators/bibtexexporter.cpp:223 translators/bibtexexporter.cpp:231
2296
msgid "Quotes"
2123
msgid "Quotes"
2297
msgstr "Aspas"
2124
msgstr "Aspas"
2298
2125
2299
#: translators/bibtexexporter.cpp:223
2126
#: translators/bibtexexporter.cpp:224
2300
msgid ""
2127
msgid ""
2301
"<qt>The quotation style used when exporting bibtex. All field values will  "
2128
"<qt>The quotation style used when exporting bibtex. All field values will  "
2302
"be escaped with either braces or quotation marks.</qt>"
2129
"be escaped with either braces or quotation marks.</qt>"
2303
msgstr ""
2130
msgstr ""
2304
"<qt>Estilo de citação utilizado para arquivos no formato BibTeX. Os "
2131
"<qt>Estilo de citação utilizado para arquivos no formato BibTeX. Os valores "
2305
"valores de todos os campos serão envolvidos por colchetes ou aspas.</qt>"
2132
"de todos os campos serão envolvidos por colchetes ou aspas.</qt>"
2133
2134
#: translators/tellicozipexporter.cpp:35
2135
msgid "Tellico Zip File"
2136
msgstr "Arquivo Zip Tellico"
2306
2137
2307
#: translators/csvimporter.cpp:229
2138
#: importdialog.cpp:204 mainwindow.cpp:1056 mainwindow.cpp:1215
2139
#: translators/tellicozipexporter.cpp:39
2140
msgid "*.tc *.bc|Tellico Files (*.tc)"
2141
msgstr "*.tc *.bc|Arquivos Tellico (*.tc)"
2142
2143
#: translators/csvimporter.cpp:174
2308
msgid "Select the type of collection being imported."
2144
msgid "Select the type of collection being imported."
2309
msgstr "Selecionar o tipo de coleção a importar."
2145
msgstr "Selecionar o tipo de coleção a importar."
2310
2146
2311
#: translators/csvimporter.cpp:235
2147
#: translators/csvimporter.cpp:180
2312
msgid "&First row contains field titles"
2148
msgid "&First row contains field titles"
2313
msgstr "A &primeira linha contém os títulos dos campos"
2149
msgstr "A &primeira linha contém os títulos dos campos"
2314
2150
2315
#: translators/csvimporter.cpp:236
2151
#: translators/csvimporter.cpp:181
2316
msgid "If checked, the first row is used as field titles."
2152
msgid "If checked, the first row is used as field titles."
2317
msgstr ""
2153
msgstr "Se selecionado, a primeira linha será utilizada para o nome dos campos."
2318
"Se selecionado, a primeira linha será utilizada para o nome dos campos."
2319
2154
2320
#: translators/csvimporter.cpp:248
2155
#: translators/csvimporter.cpp:193
2321
msgid "&Comma"
2156
msgid "&Comma"
2322
msgstr "&Vírgula"
2157
msgstr "&Vírgula"
2323
2158
2324
#: translators/csvimporter.cpp:254
2159
#: translators/csvimporter.cpp:199
2325
msgid "&Semicolon"
2160
msgid "&Semicolon"
2326
msgstr "&Ponto e vírgula"
2161
msgstr "&Ponto e vírgula"
2327
2162
2328
#: translators/csvimporter.cpp:259
2163
#: translators/csvimporter.cpp:204
2329
msgid "Ta&b"
2164
msgid "Ta&b"
2330
msgstr "Ta&bulação"
2165
msgstr "Ta&bulação"
2331
2166
2332
#: translators/csvimporter.cpp:264
2167
#: translators/csvimporter.cpp:209
2333
msgid "Ot&her:"
2168
msgid "Ot&her:"
2334
msgstr "Out&ro"
2169
msgstr "Out&ro:"
2335
2170
2336
#: translators/csvimporter.cpp:289
2171
#: translators/csvimporter.cpp:233
2337
msgid "The table shows up to the first five lines of the CSV file."
2172
msgid "The table shows up to the first five lines of the CSV file."
2338
msgstr "A tabela mostra as cinco primeiras linhas do arquivo CSV."
2173
msgstr "A tabela mostra as cinco primeiras linhas do arquivo CSV."
2339
2174
2340
#: translators/csvimporter.cpp:296
2175
#: translators/csvimporter.cpp:240
2341
msgid ""
2176
msgid ""
2342
"<qt>Set each column to correspond to a field in the collection by choosing a "
2177
"<qt>Set each column to correspond to a field in the collection by choosing a "
2343
"column, selecting the field, then clicking the <i>Assign Field</i> "
2178
"column, selecting the field, then clicking the <i>Assign Field</i> button.</"
2344
"button.</qt>"
2179
"qt>"
2345
msgstr ""
2180
msgstr ""
2346
"<qt> Marque cada coluna para corresponder a um campo na coleção escolhendo "
2181
"<qt> Marque cada coluna para corresponder a um campo na coleção escolhendo "
2347
"uma coluna, selecionando o campo e clicando no botão <i> Associar Campo </i>"
2182
"uma coluna, selecionando o campo e clicando no botão <i> Associar Campo </i>.</qt>"
2348
2183
2349
#: translators/csvimporter.cpp:298
2184
#: translators/csvimporter.cpp:242
2350
msgid "Co&lumn:"
2185
msgid "Co&lumn:"
2351
msgstr "Co&luna:"
2186
msgstr "Co&luna:"
2352
2187
2353
#: translators/csvimporter.cpp:307
2188
#: translators/csvimporter.cpp:251
2354
msgid "&Data field in this column:"
2189
msgid "&Data field in this column:"
2355
msgstr "Campo de &dados nesta coluna:"
2190
msgstr "Campo de &dados nesta coluna:"
2356
2191
2357
#: translators/csvimporter.cpp:315
2192
#: translators/csvimporter.cpp:259
2358
msgid "&Assign Field"
2193
msgid "&Assign Field"
2359
msgstr "&Associar Campo"
2194
msgstr "&Associar Campo"
2360
2195
2361
#: translators/csvimporter.cpp:347
2196
#: collectionfieldsdialog.cpp:405 collectionfieldsdialog.cpp:408
2362
msgid ""
2197
#: translators/csvimporter.cpp:410 translators/csvimporter.cpp:513
2363
"At least one column must be assigned to a field. Only assigned columns will "
2364
"be imported."
2365
msgstr ""
2366
2367
#: collectionfieldsdialog.cpp:409 collectionfieldsdialog.cpp:412
2368
#: translators/csvimporter.cpp:396 translators/csvimporter.cpp:510
2369
msgid "New Field"
2198
msgid "New Field"
2370
msgstr "Novo campo"
2199
msgstr "Novo campo"
2371
2200
2372
#: translators/risimporter.cpp:288
2201
#: translators/risimporter.cpp:265
2373
msgid "PDF"
2202
msgid "PDF"
2374
msgstr "PDF"
2203
msgstr "PDF"
2375
2204
Lines 2378-2387 msgid "PilotDB" Link Here
2378
msgstr "PilotDB"
2207
msgstr "PilotDB"
2379
2208
2380
#: translators/pilotdbexporter.cpp:47
2209
#: translators/pilotdbexporter.cpp:47
2381
msgid "*.pdb|Pilot Database Files (*.pdb)"
2210
msgid "*.pdb|Pilot Database Files(*.pdb)"
2382
msgstr "*.pdb|Arquivos Pilot Database (*.pdb)"
2211
msgstr "*.pdb|Arquivos de Banco de Dados (*.pdb)"
2383
2212
2384
#: detailedlistview.cpp:67 detailedlistview.cpp:297
2213
#: detailedlistview.cpp:67 detailedlistview.cpp:299
2385
#: translators/pilotdbexporter.cpp:143
2214
#: translators/pilotdbexporter.cpp:143
2386
msgid "View Columns"
2215
msgid "View Columns"
2387
msgstr "Ver Colunas"
2216
msgstr "Ver Colunas"
Lines 2394-2476 msgstr "Opções do PilotDB" Link Here
2394
msgid "Set PDA backup flag for database"
2223
msgid "Set PDA backup flag for database"
2395
msgstr "Marcar a opção PDA backup para a base de dados"
2224
msgstr "Marcar a opção PDA backup para a base de dados"
2396
2225
2397
#: translators/gcfilmsimporter.cpp:110 translators/gcfilmsimporter.cpp:255
2226
#: translators/gcfilmsimporter.cpp:85
2398
msgid "<qt>The file is not a valid GCstar data file.</qt>"
2227
msgid "<qt>The file is not a valid GCfilms data file.</qt>"
2399
msgstr "<qt>O arquivo não é um arquivo de dados GCstar válido</qt>"
2228
msgstr "<qt>O arquivo não é um arquivo de dados GCfilms válido.</qt>"
2400
2401
#: mainwindow.cpp:1738 translators/gcfilmsimporter.cpp:248
2402
#: translators/xsltimporter.cpp:76
2403
msgid "Tellico encountered an error in XSLT processing."
2404
msgstr "Tellico encontrou um erro no processamento do XSLT."
2405
2229
2406
#: translators/xsltimporter.cpp:64 translators/xsltimporter.cpp:70
2230
#: translators/xsltimporter.cpp:45 translators/xsltimporter.cpp:51
2407
msgid "A valid XSLT file is needed to import the file."
2231
msgid "A valid XSLT file is needed to import the file."
2408
msgstr "Um arquivo XSLT válido é necessário para importar o arquivo."
2232
msgstr "Um arquivo XSLT válido é necessário para importar o arquivo."
2409
2233
2410
#: configdialog.cpp:1015 translators/xsltimporter.cpp:104
2234
#: mainwindow.cpp:1699 translators/xsltimporter.cpp:57
2235
msgid "Tellico encountered an error in XSLT processing."
2236
msgstr "Tellico encontrou um erro no processamento do XSLT."
2237
2238
#: configdialog.cpp:990 translators/xsltimporter.cpp:85
2411
msgid "*.xsl|XSL Files (*.xsl)"
2239
msgid "*.xsl|XSL Files (*.xsl)"
2412
msgstr "*.xsl|Arquivos XSL (*.xsl)"
2240
msgstr "*.xsl|Arquivos XSL (*.xsl)"
2413
2241
2414
#: translators/htmlexporter.cpp:85
2242
#: translators/htmlexporter.cpp:84
2415
msgid "HTML"
2243
msgid "HTML"
2416
msgstr "HTML"
2244
msgstr "HTML"
2417
2245
2418
#: reportdialog.cpp:195 translators/htmlexporter.cpp:89
2246
#: reportdialog.cpp:195 translators/htmlexporter.cpp:88
2419
msgid "*.html|HTML Files (*.html)"
2247
msgid "*.html|HTML Files (*.html)"
2420
msgstr "*.html|Arquivos HTML (*.html)"
2248
msgstr "*.html|Arquivos HTML (*.html)"
2421
2249
2422
#: groupview.cpp:479 mainwindow.cpp:1591 mainwindow.cpp:1631
2250
#: groupview.cpp:479 mainwindow.cpp:1552 mainwindow.cpp:1592
2423
#: translators/htmlexporter.cpp:316
2251
#: translators/htmlexporter.cpp:315
2424
msgid "People"
2252
msgid "People"
2425
msgstr "Pessoas"
2253
msgstr "Pessoas"
2426
2254
2427
#: translators/htmlexporter.cpp:320
2255
#: translators/htmlexporter.cpp:319
2428
msgid "(grouped by %1)"
2256
msgid "(grouped by %1)"
2429
msgstr "(Agrupados por %1)"
2257
msgstr "(Agrupados por %1)"
2430
2258
2431
#: translators/htmlexporter.cpp:465
2259
#: translators/htmlexporter.cpp:464
2432
msgid "HTML Options"
2260
msgid "HTML Options"
2433
msgstr "Opções HTML"
2261
msgstr "Opções HTML"
2434
2262
2435
#: translators/htmlexporter.cpp:468
2263
#: translators/htmlexporter.cpp:467
2436
msgid "Print field headers"
2264
msgid "Print field headers"
2437
msgstr "Imprimir os cabeçalhos dos campos"
2265
msgstr "Imprimir os cabeçalhos dos campos"
2438
2266
2439
#: configdialog.cpp:307 translators/htmlexporter.cpp:469
2267
#: configdialog.cpp:298 translators/htmlexporter.cpp:468
2440
msgid "If checked, the field names will be printed as table headers."
2268
msgid "If checked, the field names will be printed as table headers."
2441
msgstr ""
2269
msgstr "Se selecionado, o nome dos campos será impresso como títulos de uma tabela."
2442
"Se selecionado, o nome dos campos será impresso como títulos de uma tabela."
2443
2270
2444
#: translators/htmlexporter.cpp:473
2271
#: translators/htmlexporter.cpp:472
2445
msgid "Group the entries"
2272
msgid "Group the entries"
2446
msgstr "Agrupar os registros"
2273
msgstr "Agrupar os registros"
2447
2274
2448
#: configdialog.cpp:314 translators/htmlexporter.cpp:474
2275
#: configdialog.cpp:305 translators/htmlexporter.cpp:473
2449
msgid "If checked, the entries will be grouped by the selected field."
2276
msgid "If checked, the entries will be grouped by the selected field."
2450
msgstr ""
2277
msgstr "Se selecionado, os registros serão agrupados em função do campo selecionado."
2451
"Se selecionado, os registros serão agrupados em função do campo "
2452
"selecionado."
2453
2278
2454
#: translators/htmlexporter.cpp:478
2279
#: translators/htmlexporter.cpp:477
2455
msgid "Export individual entry files"
2280
msgid "Export individual entry files"
2456
msgstr "Exporta arquivos de registros isolados"
2281
msgstr "Exporta arquivos de registros isolados"
2457
2282
2458
#: translators/htmlexporter.cpp:479
2283
#: translators/htmlexporter.cpp:478
2459
msgid "If checked, individual files will be created for each entry."
2284
msgid "If checked, individual files will be created for each entry."
2460
msgstr ""
2285
msgstr "Se selecionado, serão criados arquivos individuais para cada registro."
2461
"Se selecionado, serão criados arquivos individuais para cada registro."
2462
2463
#: translators/pdfimporter.cpp:92 translators/pdfimporter.cpp:100
2464
#, fuzzy
2465
msgid "Tellico was unable to read any metadata from the PDF file."
2466
msgstr "Tellico não pôde carregar o arquivo - %1."
2467
2468
#: translators/pdfimporter.cpp:231
2469
msgid ""
2470
"Tellico is able to download information about entries with a DOI from "
2471
"CrossRef.org. However, you must create an CrossRef account and add a new "
2472
"data source with your account information."
2473
msgstr ""
2474
2286
2475
#: fetcherconfigdialog.cpp:39 fetcherconfigdialog.cpp:49
2287
#: fetcherconfigdialog.cpp:39 fetcherconfigdialog.cpp:49
2476
msgid "Data Source Properties"
2288
msgid "Data Source Properties"
Lines 2481-2488 msgid "&Source name: " Link Here
2481
msgstr "Nome da &fonte: "
2293
msgstr "Nome da &fonte: "
2482
2294
2483
#: fetcherconfigdialog.cpp:79
2295
#: fetcherconfigdialog.cpp:79
2484
msgid ""
2296
msgid "The name identifies the data source and should be unique and informative."
2485
"The name identifies the data source and should be unique and informative."
2486
msgstr "O nome identifica a fonte de dados, devendo ser único e informativo."
2297
msgstr "O nome identifica a fonte de dados, devendo ser único e informativo."
2487
2298
2488
#: fetcherconfigdialog.cpp:90 fetcherconfigdialog.cpp:94
2299
#: fetcherconfigdialog.cpp:90 fetcherconfigdialog.cpp:94
Lines 2502-2509 msgstr "" Link Here
2502
#: fetcherconfigdialog.cpp:114
2313
#: fetcherconfigdialog.cpp:114
2503
msgid "If checked, updating entries will overwrite any existing information."
2314
msgid "If checked, updating entries will overwrite any existing information."
2504
msgstr ""
2315
msgstr ""
2505
"Se selecionado, a atualização dos registros sobrescreverá toda "
2316
"Se selecionado, a atualização dos registros sobrescreverá toda informação "
2506
"informação existente."
2317
"existente."
2507
2318
2508
#: filterdialog.cpp:60
2319
#: filterdialog.cpp:60
2509
msgid "Any Field"
2320
msgid "Any Field"
Lines 2561-2622 msgstr "Nome do filtro:" Link Here
2561
msgid "&Save Filter"
2372
msgid "&Save Filter"
2562
msgstr "&Salvar Filtro "
2373
msgstr "&Salvar Filtro "
2563
2374
2564
#: field.cpp:490
2375
#: field.cpp:482
2565
msgid "Simple Text"
2376
msgid "Simple Text"
2566
msgstr "Texto Simples "
2377
msgstr "Texto Simples "
2567
2378
2568
#: field.cpp:491
2379
#: field.cpp:483
2569
msgid "Paragraph"
2380
msgid "Paragraph"
2570
msgstr "Parágrafo "
2381
msgstr "Parágrafo "
2571
2382
2572
#: field.cpp:492
2383
#: field.cpp:484
2573
msgid "Choice"
2384
msgid "Choice"
2574
msgstr "Escolha "
2385
msgstr "Escolha "
2575
2386
2576
#: field.cpp:493
2387
#: field.cpp:485
2577
msgid "Checkbox"
2388
msgid "Checkbox"
2578
msgstr "Marcador "
2389
msgstr "Marcador "
2579
2390
2580
#: field.cpp:496
2391
#: field.cpp:488
2581
msgid "Table"
2392
msgid "Table"
2582
msgstr "Tabela"
2393
msgstr "Tabela"
2583
2394
2584
#: field.cpp:498
2395
#: field.cpp:490
2585
msgid "Dependent"
2396
msgid "Dependent"
2586
msgstr "Dependente "
2397
msgstr "Dependente "
2587
2398
2588
#: field.cpp:500
2399
#: field.cpp:492
2589
msgid "Date"
2400
msgid "Date"
2590
msgstr "Data "
2401
msgstr "Data "
2591
2402
2592
#: entryupdater.cpp:81
2403
#: entryupdater.cpp:83
2593
msgid "Updating %1..."
2404
msgid "Updating %1..."
2594
msgstr "Carregando %1..."
2405
msgstr "Carregando %1..."
2595
2406
2596
#: entryupdater.cpp:83
2407
#: entryupdater.cpp:85
2597
msgid "Updating entries..."
2408
msgid "Updating entries..."
2598
msgstr "Atualizando registros..."
2409
msgstr "Atualizando registros..."
2599
2410
2600
#: entryupdater.cpp:85
2411
#: entryupdater.cpp:87
2601
msgid "Update Entries"
2412
msgid "Update Entries"
2602
msgstr "Atualizar Registros"
2413
msgstr "Atualizar Registros"
2603
2414
2604
#: entryupdater.cpp:99
2415
#: entryupdater.cpp:101
2605
msgid "Updating <b>%1</b>..."
2416
msgid "Updating <b>%1</b>..."
2606
msgstr "Atualizando <b>%1</b>..."
2417
msgstr "Atualizando <b>%1</b>..."
2607
2418
2608
#: entryupdater.cpp:209
2419
#: entryupdater.cpp:211
2609
msgid "Select Match"
2420
msgid "Select Match"
2610
msgstr "Selecionar Correspondência"
2421
msgstr "Selecionar Correspondência"
2611
2422
2612
#: entryupdater.cpp:217
2423
#: entryupdater.cpp:219
2613
msgid ""
2424
msgid ""
2614
"<qt><b>%1</b> returned multiple results which could match <b>%2</b>, the "
2425
"<qt><b>%1</b> returned multiple results which could match <b>%2</b>, the "
2615
"entry currently in the collection. Please select the correct match.</qt>"
2426
"entry currently in the collection. Please select the correct match.</qt>"
2616
msgstr ""
2427
msgstr ""
2617
"<qt><b>%1</b> foram retornados múltiplos resultados que correspondem a "
2428
"<qt><b>%1</b> foram retornados múltiplos resultados que correspondem a <b>%"
2618
"<b>%2</b>, que é o registro corrente na coleção. Por favor selecione o "
2429
"2</b>, que é o registro corrente na coleção. Por favor selecione o resultado "
2619
"resultado desejado.</qt>"
2430
"desejado.</qt>"
2620
2431
2621
#: groupview.cpp:252
2432
#: groupview.cpp:252
2622
msgid "Expand All Groups"
2433
msgid "Expand All Groups"
Lines 2640-2674 msgid "" Link Here
2640
"Group"
2451
"Group"
2641
msgstr "Grupo"
2452
msgstr "Grupo"
2642
2453
2643
#: importdialog.cpp:54 importdialog.cpp:60
2454
#: importdialog.cpp:50 importdialog.cpp:56
2644
msgid "Import Options"
2455
msgid "Import Options"
2645
msgstr "Opções de Importação"
2456
msgstr "Opções de Importação"
2646
2457
2647
#: importdialog.cpp:62
2458
#: importdialog.cpp:58
2648
msgid "&Replace current collection"
2459
msgid "&Replace current collection"
2649
msgstr "&Substituir a coleção atual"
2460
msgstr "&Substituir a coleção atual"
2650
2461
2651
#: importdialog.cpp:63
2462
#: importdialog.cpp:59
2652
msgid "Replace the current collection with the contents of the imported file."
2463
msgid "Replace the current collection with the contents of the imported file."
2653
msgstr "Substitui a coleção atual pelo conteúdo do arquivo importado."
2464
msgstr "Substitui a coleção atual pelo conteúdo do arquivo importado."
2654
2465
2655
#: importdialog.cpp:65
2466
#: importdialog.cpp:61
2656
msgid "A&ppend to current collection"
2467
msgid "A&ppend to current collection"
2657
msgstr "A&dicionar à coleção"
2468
msgstr "A&dicionar à coleção"
2658
2469
2659
#: importdialog.cpp:66
2470
#: importdialog.cpp:62
2660
msgid ""
2471
msgid ""
2661
"Append the contents of the imported file to the current collection. This is "
2472
"Append the contents of the imported file to the current collection. This is "
2662
"only possible when the collection types match."
2473
"only possible when the collection types match."
2663
msgstr ""
2474
msgstr ""
2664
"Adiciona os dados do arquivo importado à coleção atual. Isso só é "
2475
"Adiciona os dados do arquivo importado à coleção atual. Isso só é possível "
2665
"possível se as coleções forem do mesmo tipo."
2476
"se as coleções forem do mesmo tipo."
2666
2477
2667
#: importdialog.cpp:69
2478
#: importdialog.cpp:65
2668
msgid "&Merge with current collection"
2479
msgid "&Merge with current collection"
2669
msgstr "&Combinar com a coleção atual"
2480
msgstr "&Combinar com a coleção atual"
2670
2481
2671
#: importdialog.cpp:70
2482
#: importdialog.cpp:66
2672
msgid ""
2483
msgid ""
2673
"Merge the contents of the imported file to the current collection. This is "
2484
"Merge the contents of the imported file to the current collection. This is "
2674
"only possible when the collection types match. Entries must match exactly in "
2485
"only possible when the collection types match. Entries must match exactly in "
Lines 2678-2705 msgstr "" Link Here
2678
"possível se as coleções forem do mesmo tipo. Os registros devem ser "
2489
"possível se as coleções forem do mesmo tipo. Os registros devem ser "
2679
"exatamente do mesmo tipo para que possam ser combinados."
2490
"exatamente do mesmo tipo para que possam ser combinados."
2680
2491
2681
#: importdialog.cpp:95 mainwindow.cpp:318 rc.cpp:9
2492
#: importdialog.cpp:226
2682
#, no-c-format
2683
msgid "&Import"
2684
msgstr "&Importar "
2685
2686
#: importdialog.cpp:268
2687
msgid "*.ris|RIS Files (*.ris)"
2493
msgid "*.ris|RIS Files (*.ris)"
2688
msgstr "*.ris|Arquivos RIS (*.ris)"
2494
msgstr "*.ris|Arquivos RIS (*.ris)"
2689
2495
2690
#: importdialog.cpp:277
2496
#: importdialog.cpp:234
2691
msgid "*.amc|AMC Data Files (*.amc)"
2497
msgid "*.amc|AMC Data Files (*.amc)"
2692
msgstr "*.amc|Arquivos de Dados AMC (*.amc) "
2498
msgstr "*.amc|Arquivos de Dados AMC (*.amc) "
2693
2499
2694
#: importdialog.cpp:281
2500
#: importdialog.cpp:270
2695
#, fuzzy
2501
msgid "MODS"
2696
msgid "*.pdf|PDF Files (*.pdf)"
2502
msgstr "MODS"
2697
msgstr "*.pdb|Arquivos Pilot Database (*.pdb)"
2698
2503
2699
#: importdialog.cpp:285
2504
#: importdialog.cpp:271
2700
#, fuzzy
2505
msgid "RIS"
2701
msgid "*.reflib|Referencer Files (*.reflib)"
2506
msgstr "RIS "
2702
msgstr "*.ris|Arquivos RIS (*.ris)"
2507
2508
#: importdialog.cpp:273
2509
msgid "AMC"
2510
msgstr "AMC"
2703
2511
2704
#: tellico_strings.cpp:18
2512
#: tellico_strings.cpp:18
2705
#, c-format
2513
#, c-format
Lines 2721-2747 msgid "" Link Here
2721
"Only collections with the same type of entries as the current one can be "
2529
"Only collections with the same type of entries as the current one can be "
2722
"appended. No changes are being made to the current collection."
2530
"appended. No changes are being made to the current collection."
2723
msgstr ""
2531
msgstr ""
2724
"Somente coleções com os mesmos tipos de registros do da coleção atual "
2532
"Somente coleções com os mesmos tipos de registros do da coleção atual podem "
2725
"podem ser adicionadas. Nenhuma mudança foi feita à coleção atual."
2533
"ser adicionadas. Nenhuma mudança foi feita à coleção atual."
2726
2534
2727
#: tellico_strings.cpp:24
2535
#: tellico_strings.cpp:24
2728
msgid ""
2536
msgid ""
2729
"Only collections with the same type of entries as the current one can be "
2537
"Only collections with the same type of entries as the current one can be "
2730
"merged. No changes are being made to the current collection."
2538
"merged. No changes are being made to the current collection."
2731
msgstr ""
2539
msgstr ""
2732
"Somente coleções com os mesmos tipos de registro da coleção atual podem "
2540
"Somente coleções com os mesmos tipos de registro da coleção atual podem ser "
2733
"ser combinadas. Nenhuma mudança será feita à coleção atual."
2541
"combinadas. Nenhuma mudança será feita à coleção atual."
2734
2542
2735
#: tellico_strings.cpp:27
2543
#: tellico_strings.cpp:27
2736
#, c-format
2544
#, c-format
2737
msgid "Tellico is unable to load an image from the file - %1."
2545
msgid "Tellico is unable to load an image from the file - %1."
2738
msgstr "Tellico não pôde carregar o arquivo - %1."
2546
msgstr "Tellico não pôde carregar o arquivo - %1."
2739
2547
2740
#: entryiconview.cpp:287
2741
#, fuzzy
2742
msgid "&Sort By"
2743
msgstr "&Porta:"
2744
2745
#: loandialog.cpp:40
2548
#: loandialog.cpp:40
2746
msgid "Loan Dialog"
2549
msgid "Loan Dialog"
2747
msgstr "Diálogo de Empréstimo"
2550
msgstr "Diálogo de Empréstimo"
Lines 2763-2809 msgid "" Link Here
2763
"Enter the name of the person borrowing the items from you. Clicking the "
2566
"Enter the name of the person borrowing the items from you. Clicking the "
2764
"button allows you to select from your address book."
2567
"button allows you to select from your address book."
2765
msgstr ""
2568
msgstr ""
2766
"Entre com o nome da pessoa para quem você está emprestando esses itens. "
2569
"Entre com o nome da pessoa para quem você está emprestando esses itens. Você "
2767
"Você pode selecioná-lo do seu livro de endereços clicando neste botão."
2570
"pode selecioná-lo do seu livro de endereços clicando neste botão."
2768
2571
2769
#: loandialog.cpp:117
2572
#: loandialog.cpp:116
2770
msgid "&Loan date:"
2573
msgid "&Loan date:"
2771
msgstr "Data do &Empréstimo:"
2574
msgstr "Data do &Empréstimo:"
2772
2575
2773
#: loandialog.cpp:123
2576
#: loandialog.cpp:122
2774
msgid ""
2577
msgid ""
2775
"The check-out date is the date that you lent the items. By default, today's "
2578
"The check-out date is the date that you lent the items. By default, today's "
2776
"date is used."
2579
"date is used."
2777
msgstr ""
2580
msgstr ""
2778
"A data de saída é a data em que você emprestou os itens. Por padrão, a "
2581
"A data de saída é a data em que você emprestou os itens. Por padrão, a data "
2779
"data de hoje é usada."
2582
"de hoje é usada."
2780
2583
2781
#: loandialog.cpp:132
2584
#: loandialog.cpp:131
2782
msgid "D&ue date:"
2585
msgid "D&ue date:"
2783
msgstr "Data para &Devolução:"
2586
msgstr "Data para &Devolução:"
2784
2587
2785
#: loandialog.cpp:139
2588
#: loandialog.cpp:138
2786
msgid ""
2589
msgid ""
2787
"The due date is when the items are due to be returned. The due date is not "
2590
"The due date is when the items are due to be returned. The due date is not "
2788
"required, unless you want to add the loan to your active calendar."
2591
"required, unless you want to add the loan to your active calendar."
2789
msgstr ""
2592
msgstr ""
2790
"A data para devolução é o dia previsto para que os itens sejam "
2593
"A data para devolução é o dia previsto para que os itens sejam devolvidos. "
2791
"devolvidos. Ela não é requerida, a menos que você queira adicionar o "
2594
"Ela não é requerida, a menos que você queira adicionar o empréstimo ao seu "
2792
"empréstimo ao seu calendário ativo."
2595
"calendário ativo."
2793
2596
2794
#: loandialog.cpp:144
2597
#: loandialog.cpp:143
2795
msgid "&Note:"
2598
msgid "&Note:"
2796
msgstr "&Observação:"
2599
msgstr "&Observação:"
2797
2600
2798
#: loandialog.cpp:150
2601
#: loandialog.cpp:149
2799
msgid "You can add notes about the loan, as well."
2602
msgid "You can add notes about the loan, as well."
2800
msgstr "Você também pode adicionar observações sobre o empréstimo."
2603
msgstr "Você também pode adicionar observações sobre o empréstimo."
2801
2604
2802
#: loandialog.cpp:154
2605
#: loandialog.cpp:153
2803
msgid "&Add a reminder to the active calendar"
2606
msgid "&Add a reminder to the active calendar"
2804
msgstr "&Adiciona um lembrete ao calendário ativo. "
2607
msgstr "&Adiciona um lembrete ao calendário ativo. "
2805
2608
2806
#: loandialog.cpp:157
2609
#: loandialog.cpp:156
2807
msgid ""
2610
msgid ""
2808
"<qt>Checking this box will add a <em>To-do</em> item to your active "
2611
"<qt>Checking this box will add a <em>To-do</em> item to your active "
2809
"calendar, which can be viewed using KOrganizer. The box is only active if "
2612
"calendar, which can be viewed using KOrganizer. The box is only active if "
Lines 2813-3443 msgstr "" Link Here
2813
"calendário ativo, podendo ser acessado pelo KOrganizer. Este marcador será "
2616
"calendário ativo, podendo ser acessado pelo KOrganizer. Este marcador será "
2814
"habilitado somente se você especificar uma data para devolução."
2617
"habilitado somente se você especificar uma data para devolução."
2815
2618
2816
#: mainwindow.cpp:188
2619
#: mainwindow.cpp:195
2817
msgid "Create a new collection"
2620
msgid "Create a new collection"
2818
msgstr "Cria uma nova coleção "
2621
msgstr "Cria uma nova coleção "
2819
2622
2820
#: mainwindow.cpp:192
2623
#: mainwindow.cpp:199
2821
msgid "New &Book Collection"
2624
msgid "New &Book Collection"
2822
msgstr "Nova Coleção de &Livros "
2625
msgstr "Nova Coleção de &Livros "
2823
2626
2824
#: mainwindow.cpp:194
2627
#: mainwindow.cpp:201
2825
msgid "Create a new book collection"
2628
msgid "Create a new book collection"
2826
msgstr "Cria uma nova coleção de livros "
2629
msgstr "Cria uma nova coleção de livros "
2827
2630
2828
#: mainwindow.cpp:200
2631
#: mainwindow.cpp:207
2829
msgid "New B&ibliography"
2632
msgid "New B&ibliography"
2830
msgstr "Nova &Bibliografia"
2633
msgstr "Nova &Bibliografia"
2831
2634
2832
#: mainwindow.cpp:202
2635
#: mainwindow.cpp:209
2833
msgid "Create a new bibtex bibliography"
2636
msgid "Create a new bibtex bibliography"
2834
msgstr "Cria uma nova bibliografia do BibTeX"
2637
msgstr "Cria uma nova bibliografia do BibTeX"
2835
2638
2836
#: mainwindow.cpp:208
2639
#: mainwindow.cpp:215
2837
msgid "New &Comic Book Collection"
2640
msgid "New &Comic Book Collection"
2838
msgstr "Nova Coleção de &Revistas em Quadrinhos"
2641
msgstr "Nova Coleção de &Revistas em Quadrinhos"
2839
2642
2840
#: mainwindow.cpp:210
2643
#: mainwindow.cpp:217
2841
msgid "Create a new comic book collection"
2644
msgid "Create a new comic book collection"
2842
msgstr "Cria uma nova coleção de revistas em quadrinhos"
2645
msgstr "Cria uma nova coleção de revistas em quadrinhos"
2843
2646
2844
#: mainwindow.cpp:216
2647
#: mainwindow.cpp:223
2845
msgid "New &Video Collection"
2648
msgid "New &Video Collection"
2846
msgstr "Nova Coleção de &Vídeos"
2649
msgstr "Nova Coleção de &Vídeos"
2847
2650
2848
#: mainwindow.cpp:218
2651
#: mainwindow.cpp:225
2849
msgid "Create a new video collection"
2652
msgid "Create a new video collection"
2850
msgstr "Cria uma nova coleção de vídeos "
2653
msgstr "Cria uma nova coleção de vídeos "
2851
2654
2852
#: mainwindow.cpp:224
2655
#: mainwindow.cpp:231
2853
msgid "New &Music Collection"
2656
msgid "New &Music Collection"
2854
msgstr "Nova Coleção de &Músicas"
2657
msgstr "Nova Coleção de &Músicas"
2855
2658
2856
#: mainwindow.cpp:226
2659
#: mainwindow.cpp:233
2857
msgid "Create a new music collection"
2660
msgid "Create a new music collection"
2858
msgstr "Cria uma nova coleção de músicas"
2661
msgstr "Cria uma nova coleção de músicas"
2859
2662
2860
#: mainwindow.cpp:232
2663
#: mainwindow.cpp:239
2861
msgid "New C&oin Collection"
2664
msgid "New C&oin Collection"
2862
msgstr "Nova Coleção de M&oedas"
2665
msgstr "Nova Coleção de M&oedas"
2863
2666
2864
#: mainwindow.cpp:234
2667
#: mainwindow.cpp:241
2865
msgid "Create a new coin collection"
2668
msgid "Create a new coin collection"
2866
msgstr "Cria uma nova coleção de moedas"
2669
msgstr "Cria uma nova coleção de moedas"
2867
2670
2868
#: mainwindow.cpp:240
2671
#: mainwindow.cpp:247
2869
msgid "New &Stamp Collection"
2672
msgid "New &Stamp Collection"
2870
msgstr "Nova Coleção de &Selos "
2673
msgstr "Nova Coleção de &Selos "
2871
2674
2872
#: mainwindow.cpp:242
2675
#: mainwindow.cpp:249
2873
msgid "Create a new stamp collection"
2676
msgid "Create a new stamp collection"
2874
msgstr "Cria uma nova coleção de selos "
2677
msgstr "Cria uma nova coleção de selos "
2875
2678
2876
#: mainwindow.cpp:248
2679
#: mainwindow.cpp:255
2877
msgid "New C&ard Collection"
2680
msgid "New C&ard Collection"
2878
msgstr "Nova Coleção de &Cartões"
2681
msgstr "Nova Coleção de &Cartões"
2879
2682
2880
#: mainwindow.cpp:250
2683
#: mainwindow.cpp:257
2881
msgid "Create a new trading card collection"
2684
msgid "Create a new trading card collection"
2882
msgstr "Cria uma nova coleção de cartões"
2685
msgstr "Cria uma nova coleção de cartões"
2883
2686
2884
#: mainwindow.cpp:256
2687
#: mainwindow.cpp:263
2885
msgid "New &Wine Collection"
2688
msgid "New &Wine Collection"
2886
msgstr "Nova Coleção de &Vinhos"
2689
msgstr "Nova Coleção de &Vinhos"
2887
2690
2888
#: mainwindow.cpp:258
2691
#: mainwindow.cpp:265
2889
msgid "Create a new wine collection"
2692
msgid "Create a new wine collection"
2890
msgstr "Cria uma nova coleção de vinhos "
2693
msgstr "Cria uma nova coleção de vinhos "
2891
2694
2892
#: mainwindow.cpp:264
2695
#: mainwindow.cpp:271
2893
msgid "New &Game Collection"
2696
msgid "New &Game Collection"
2894
msgstr "Nova Coleção de &Jogos"
2697
msgstr "Nova Coleção de &Jogos"
2895
2698
2896
#: mainwindow.cpp:266
2699
#: mainwindow.cpp:273
2897
msgid "Create a new game collection"
2700
msgid "Create a new game collection"
2898
msgstr "Cria uma nova coleção de jogos "
2701
msgstr "Cria uma nova coleção de jogos "
2899
2702
2900
#: mainwindow.cpp:272
2703
#: mainwindow.cpp:279
2901
#, fuzzy
2902
msgid "New Boa&rd Game Collection"
2903
msgstr "Nova Coleção de &Jogos"
2904
2905
#: mainwindow.cpp:274
2906
#, fuzzy
2907
msgid "Create a new board game collection"
2908
msgstr "Cria uma nova coleção de jogos "
2909
2910
#: mainwindow.cpp:280
2911
msgid "New &File Catalog"
2704
msgid "New &File Catalog"
2912
msgstr "Novo Catálogo de &Arquivos"
2705
msgstr "Novo Catálogo de &Arquivos"
2913
2706
2914
#: mainwindow.cpp:282
2707
#: mainwindow.cpp:281
2915
msgid "Create a new file catalog"
2708
msgid "Create a new file catalog"
2916
msgstr "Cria um novo catálogo de arquivos "
2709
msgstr "Cria um novo catálogo de arquivos "
2917
2710
2918
#: mainwindow.cpp:288
2711
#: mainwindow.cpp:287
2919
msgid "New C&ustom Collection"
2712
msgid "New C&ustom Collection"
2920
msgstr "Nova Coleção &Personalizada"
2713
msgstr "Nova Coleção &Personalizada"
2921
2714
2922
#: mainwindow.cpp:290
2715
#: mainwindow.cpp:289
2923
msgid "Create a new custom collection"
2716
msgid "Create a new custom collection"
2924
msgstr "Cria uma nova coleção personalizada "
2717
msgstr "Cria uma nova coleção personalizada "
2925
2718
2926
#: mainwindow.cpp:299
2719
#: mainwindow.cpp:298
2927
msgid "Open an existing document"
2720
msgid "Open an existing document"
2928
msgstr "Abre um documento existente"
2721
msgstr "Abre um documento existente"
2929
2722
2930
#: mainwindow.cpp:301
2723
#: mainwindow.cpp:300
2931
msgid "Open a recently used file"
2724
msgid "Open a recently used file"
2932
msgstr "Abre um arquivo usado recentemente"
2725
msgstr "Abre um arquivo usado recentemente"
2933
2726
2934
#: mainwindow.cpp:303
2727
#: mainwindow.cpp:302
2935
msgid "Save the document"
2728
msgid "Save the document"
2936
msgstr "Salva o documento"
2729
msgstr "Salva o documento"
2937
2730
2938
#: mainwindow.cpp:305
2731
#: mainwindow.cpp:304
2939
msgid "Save the document as a different file..."
2732
msgid "Save the document as a different file..."
2940
msgstr "Salva o documento como um novo arquivo"
2733
msgstr "Salva o documento como um novo arquivo..."
2941
2734
2942
#: mainwindow.cpp:307
2735
#: mainwindow.cpp:306
2943
msgid "Print the contents of the document..."
2736
msgid "Print the contents of the document..."
2944
msgstr "Imprime os dados do documento"
2737
msgstr "Imprime os dados do documento..."
2945
2738
2946
#: mainwindow.cpp:309
2739
#: mainwindow.cpp:308
2947
msgid "Quit the application"
2740
msgid "Quit the application"
2948
msgstr "Sai do aplicativo"
2741
msgstr "Sai do aplicativo"
2949
2742
2950
#: mainwindow.cpp:320
2743
#: mainwindow.cpp:317 rc.cpp:9
2744
#, no-c-format
2745
msgid "&Import"
2746
msgstr "&Importar "
2747
2748
#: mainwindow.cpp:319
2951
msgid "Import collection data from other formats"
2749
msgid "Import collection data from other formats"
2952
msgstr "Importa dados a partir de outros formatos"
2750
msgstr "Importa dados a partir de outros formatos"
2953
2751
2954
#: mainwindow.cpp:324
2752
#: mainwindow.cpp:323
2955
msgid "Import Tellico Data..."
2753
msgid "Import Tellico Data..."
2956
msgstr "Importar Dados do Tellico..."
2754
msgstr "Importar Dados do Tellico..."
2957
2755
2958
#: mainwindow.cpp:325
2756
#: mainwindow.cpp:324
2959
msgid "Import another Tellico data file"
2757
msgid "Import another Tellico data file"
2960
msgstr "Importa outro arquivo de dados do Tellico "
2758
msgstr "Importa outro arquivo de dados do Tellico "
2961
2759
2962
#: mainwindow.cpp:331
2760
#: mainwindow.cpp:330
2963
msgid "Import CSV Data..."
2761
msgid "Import CSV Data..."
2964
msgstr "Importar Dados CSV... "
2762
msgstr "Importar Dados CSV..."
2965
2763
2966
#: mainwindow.cpp:332
2764
#: mainwindow.cpp:331
2967
msgid "Import a CSV file"
2765
msgid "Import a CSV file"
2968
msgstr "Importa um arquivo de valores separados por vírgula"
2766
msgstr "Importa um arquivo de valores separados por vírgula"
2969
2767
2970
#: mainwindow.cpp:338
2768
#: mainwindow.cpp:337
2971
msgid "Import MODS Data..."
2769
msgid "Import MODS Data..."
2972
msgstr "Importar Dados do MODS..."
2770
msgstr "Importar Dados do MODS..."
2973
2771
2974
#: mainwindow.cpp:339
2772
#: mainwindow.cpp:338
2975
msgid "Import a MODS data file"
2773
msgid "Import a MODS data file"
2976
msgstr "Importa um arquivo do MODS"
2774
msgstr "Importa um arquivo do MODS"
2977
2775
2978
#: mainwindow.cpp:345
2776
#: mainwindow.cpp:344
2979
msgid "Import Alexandria Data..."
2777
msgid "Import Alexandria Data..."
2980
msgstr "Importar Dados do Alexandria..."
2778
msgstr "Importar Dados do Alexandria..."
2981
2779
2982
#: mainwindow.cpp:346
2780
#: mainwindow.cpp:345
2983
msgid "Import data from the Alexandria book collection manager"
2781
msgid "Import data from the Alexandria book collection manager"
2984
msgstr "Importa um arquivo do gerenciador de coleção de livros Alexandria"
2782
msgstr "Importa um arquivo do gerenciador de coleção de livros Alexandria"
2985
2783
2986
#: mainwindow.cpp:352
2784
#: mainwindow.cpp:351
2987
#, fuzzy
2988
msgid "Import Delicious Library Data..."
2989
msgstr "Importar Dados do Tellico..."
2990
2991
#: mainwindow.cpp:353
2992
#, fuzzy
2993
msgid "Import data from Delicious Library"
2994
msgstr "Importa meta-dados de arquivos de áudio"
2995
2996
#: mainwindow.cpp:359
2997
#, fuzzy
2998
msgid "Import Referencer Data..."
2999
msgstr "Importar Dados do RIS..."
3000
3001
#: mainwindow.cpp:360
3002
#, fuzzy
3003
msgid "Import data from Referencer"
3004
msgstr "Importa um arquivo de referência do RIS"
3005
3006
#: mainwindow.cpp:366
3007
msgid "Import Bibtex Data..."
2785
msgid "Import Bibtex Data..."
3008
msgstr "Importar Dados do BibTeX..."
2786
msgstr "Importar Dados do BibTeX..."
3009
2787
3010
#: mainwindow.cpp:367
2788
#: mainwindow.cpp:352
3011
msgid "Import a bibtex bibliography file"
2789
msgid "Import a bibtex bibliography file"
3012
msgstr "Importa um arquivo de bibliografia do BibTeX"
2790
msgstr "Importa um arquivo de bibliografia do BibTeX"
3013
2791
3014
#: mainwindow.cpp:373
2792
#: mainwindow.cpp:358
3015
msgid "Import Bibtexml Data..."
2793
msgid "Import Bibtexml Data..."
3016
msgstr "Importar Dados do BibTeXML..."
2794
msgstr "Importar Dados do BibTeXML..."
3017
2795
3018
#: mainwindow.cpp:374
2796
#: mainwindow.cpp:359
3019
msgid "Import a Bibtexml bibliography file"
2797
msgid "Import a Bibtexml bibliography file"
3020
msgstr "Importa um arquivo de bibliografia do BibTeXML"
2798
msgstr "Importa um arquivo de bibliografia do BibTeXML"
3021
2799
3022
#: mainwindow.cpp:380
2800
#: mainwindow.cpp:365
3023
msgid "Import RIS Data..."
2801
msgid "Import RIS Data..."
3024
msgstr "Importar Dados do RIS..."
2802
msgstr "Importar Dados do RIS..."
3025
2803
3026
#: mainwindow.cpp:381
2804
#: mainwindow.cpp:366
3027
msgid "Import an RIS reference file"
2805
msgid "Import an RIS reference file"
3028
msgstr "Importa um arquivo de referência do RIS"
2806
msgstr "Importa um arquivo de referência do RIS"
3029
2807
3030
#: mainwindow.cpp:387
2808
#: mainwindow.cpp:372
3031
#, fuzzy
3032
msgid "Import PDF File..."
3033
msgstr "Importar Arquivo"
3034
3035
#: mainwindow.cpp:388
3036
#, fuzzy
3037
msgid "Import a PDF file"
3038
msgstr "Importa um arquivo de valores separados por vírgula"
3039
3040
#: mainwindow.cpp:394
3041
msgid "Import Audio File Metadata..."
2809
msgid "Import Audio File Metadata..."
3042
msgstr "Importar Meta-dados de um Arquivo de Áudio..."
2810
msgstr "Importar Meta-dados de um Arquivo de Áudio..."
3043
2811
3044
#: mainwindow.cpp:395
2812
#: mainwindow.cpp:373
3045
msgid "Import meta-data from audio files"
2813
msgid "Import meta-data from audio files"
3046
msgstr "Importa meta-dados de arquivos de áudio"
2814
msgstr "Importa meta-dados de arquivos de áudio"
3047
2815
3048
#: mainwindow.cpp:404
2816
#: mainwindow.cpp:382
3049
msgid "Import Audio CD Data..."
2817
msgid "Import Audio CD Data..."
3050
msgstr "Importar Dados de CD de Áudio..."
2818
msgstr "Importar Dados de CD de Áudio..."
3051
2819
3052
#: mainwindow.cpp:405
2820
#: mainwindow.cpp:383
3053
msgid "Import audio CD information"
2821
msgid "Import audio CD information"
3054
msgstr "Importa informações de um CD de áudio "
2822
msgstr "Importa informações de um CD de áudio "
3055
2823
3056
#: mainwindow.cpp:414
2824
#: mainwindow.cpp:392
3057
msgid "Import GCstar Data..."
2825
msgid "Import GCfilms Data..."
3058
msgstr "Importar Dados do GCstar..."
2826
msgstr "Importar Dados do GCfilms..."
3059
3060
#: mainwindow.cpp:415
3061
msgid "Import a GCstar data file"
3062
msgstr "Importa um arquivo de dados do GCstar"
3063
3064
#: mainwindow.cpp:421
3065
#, fuzzy
3066
msgid "Import Griffith Data..."
3067
msgstr "Importar Dados do GCstar..."
3068
2827
3069
#: mainwindow.cpp:422
2828
#: mainwindow.cpp:393
3070
#, fuzzy
2829
msgid "Import a GCfilms data file"
3071
msgid "Import a Griffith database"
2830
msgstr "Importa um arquivo de dados do GCfilms"
3072
msgstr "Exporta para um banco de dados PilotDB"
3073
2831
3074
#: mainwindow.cpp:428
2832
#: mainwindow.cpp:399
3075
msgid "Import Ant Movie Catalog Data..."
2833
msgid "Import Ant Movie Catalog Data..."
3076
msgstr "Importar Dados do Ant Movie Catalog..."
2834
msgstr "Importar Dados do Ant Movie Catalog..."
3077
2835
3078
#: mainwindow.cpp:429
2836
#: mainwindow.cpp:400
3079
msgid "Import an Ant Movie Catalog data file"
2837
msgid "Import an Ant Movie Catalog data file"
3080
msgstr "Importa um arquivo de dados do Ant Movie Catalog"
2838
msgstr "Importa um arquivo de dados do Ant Movie Catalog"
3081
2839
3082
#: mainwindow.cpp:435
2840
#: mainwindow.cpp:406
3083
msgid "Import File Listing..."
2841
msgid "Import File Listing..."
3084
msgstr "Importar Listagem de Arquivos..."
2842
msgstr "Importar Listagem de Arquivos..."
3085
2843
3086
#: mainwindow.cpp:436
2844
#: mainwindow.cpp:407
3087
msgid "Import information about files in a folder"
2845
msgid "Import information about files in a folder"
3088
msgstr "Importa informações sobre os arquivos de uma pasta "
2846
msgstr "Importa informações sobre os arquivos de uma pasta "
3089
2847
3090
#: mainwindow.cpp:442
2848
#: mainwindow.cpp:413
3091
msgid "Import XSL Transform..."
2849
msgid "Import XSL Transform..."
3092
msgstr "Importar Transformação XSL..."
2850
msgstr "Importar Transformação XSL..."
3093
2851
3094
#: mainwindow.cpp:443
2852
#: mainwindow.cpp:414
3095
msgid "Import using an XSL Transform"
2853
msgid "Import using an XSL Transform"
3096
msgstr "Importa dados utilizando uma transformação XSL "
2854
msgstr "Importa dados utilizando uma transformação XSL "
3097
2855
3098
#: mainwindow.cpp:455 rc.cpp:12
2856
#: mainwindow.cpp:426 rc.cpp:12
3099
#, no-c-format
2857
#, no-c-format
3100
msgid "&Export"
2858
msgid "&Export"
3101
msgstr "&Exportar "
2859
msgstr "&Exportar "
3102
2860
3103
#: mainwindow.cpp:457
2861
#: mainwindow.cpp:428
3104
msgid "Export the collection data to other formats"
2862
msgid "Export the collection data to other formats"
3105
msgstr "Exporta os dados da coleção para outros formatos "
2863
msgstr "Exporta os dados da coleção para outros formatos "
3106
2864
3107
#: mainwindow.cpp:461
2865
#: mainwindow.cpp:432
3108
msgid "Export to XML..."
2866
msgid "Export to XML..."
3109
msgstr "Exportar para XML... "
2867
msgstr "Exportar para XML..."
3110
2868
3111
#: mainwindow.cpp:462
2869
#: mainwindow.cpp:433
3112
msgid "Export to a Tellico XML file"
2870
msgid "Export to a Tellico XML file"
3113
msgstr "Exporta para um arquivo XML do Tellico "
2871
msgstr "Exporta para um arquivo XML do Tellico "
3114
2872
3115
#: mainwindow.cpp:468
2873
#: mainwindow.cpp:439
3116
msgid "Export to Zip..."
2874
msgid "Export to Zip..."
3117
msgstr "Exportar para Zip... "
2875
msgstr "Exportar para Zip..."
3118
2876
3119
#: mainwindow.cpp:469
2877
#: mainwindow.cpp:440
3120
msgid "Export to a Tellico Zip file"
2878
msgid "Export to a Tellico Zip file"
3121
msgstr "Exporta para um arquivo Zip do Tellico "
2879
msgstr "Exporta para um arquivo Zip do Tellico "
3122
2880
3123
#: mainwindow.cpp:475
2881
#: mainwindow.cpp:446
3124
msgid "Export to HTML..."
2882
msgid "Export to HTML..."
3125
msgstr "Exportar para HTML... "
2883
msgstr "Exportar para HTML..."
3126
2884
3127
#: mainwindow.cpp:476
2885
#: mainwindow.cpp:447
3128
msgid "Export to an HTML file"
2886
msgid "Export to an HTML file"
3129
msgstr "Exporta para um arquivo HTML "
2887
msgstr "Exporta para um arquivo HTML "
3130
2888
3131
#: mainwindow.cpp:482
2889
#: mainwindow.cpp:453
3132
msgid "Export to CSV..."
2890
msgid "Export to CSV..."
3133
msgstr "Exportar para CSV... "
2891
msgstr "Exportar para CSV..."
3134
2892
3135
#: mainwindow.cpp:483
2893
#: mainwindow.cpp:454
3136
msgid "Export to a comma-separated values file"
2894
msgid "Export to a comma-separated values file"
3137
msgstr "Exporta para um arquivo de valores separados por vírgula "
2895
msgstr "Exporta para um arquivo de valores separados por vírgula "
3138
2896
3139
#: mainwindow.cpp:489
2897
#: mainwindow.cpp:460
3140
msgid "Export to PilotDB..."
2898
msgid "Export to PilotDB..."
3141
msgstr "Exportar para &PilotDB... "
2899
msgstr "Exportar para PilotDB..."
3142
2900
3143
#: mainwindow.cpp:490
2901
#: mainwindow.cpp:461
3144
msgid "Export to a PilotDB database"
2902
msgid "Export to a PilotDB database"
3145
msgstr "Exporta para um banco de dados PilotDB"
2903
msgstr "Exporta para um banco de dados PilotDB"
3146
2904
3147
#: mainwindow.cpp:496
2905
#: mainwindow.cpp:467
3148
msgid "Export to Alexandria..."
2906
msgid "Export to Alexandria..."
3149
msgstr "Exportar para o Alexandria... "
2907
msgstr "Exportar para o Alexandria..."
3150
2908
3151
#: mainwindow.cpp:497
2909
#: mainwindow.cpp:468
3152
msgid "Export to an Alexandria library"
2910
msgid "Export to an Alexandria library"
3153
msgstr "Exporta para uma biblioteca do Alexandria "
2911
msgstr "Exporta para uma biblioteca do Alexandria "
3154
2912
3155
#: mainwindow.cpp:503
2913
#: mainwindow.cpp:474
3156
msgid "Export to Bibtex..."
2914
msgid "Export to Bibtex..."
3157
msgstr "Exportar para o BibTeX... "
2915
msgstr "Exportar para o BibTeX..."
3158
2916
3159
#: mainwindow.cpp:504
2917
#: mainwindow.cpp:475
3160
msgid "Export to a bibtex file"
2918
msgid "Export to a bibtex file"
3161
msgstr "Exporta para um arquivo do BibTeX "
2919
msgstr "Exporta para um arquivo do BibTeX "
3162
2920
3163
#: mainwindow.cpp:510
2921
#: mainwindow.cpp:481
3164
msgid "Export to Bibtexml..."
2922
msgid "Export to Bibtexml..."
3165
msgstr "Exportar para o BibTeXML..."
2923
msgstr "Exportar para o BibTeXML..."
3166
2924
3167
#: mainwindow.cpp:511
2925
#: mainwindow.cpp:482
3168
msgid "Export to a Bibtexml file"
2926
msgid "Export to a Bibtexml file"
3169
msgstr "Exporta para um arquivo BibTeXML"
2927
msgstr "Exporta para um arquivo BibTeXML"
3170
2928
3171
#: mainwindow.cpp:517
2929
#: mainwindow.cpp:488
3172
msgid "Export to ONIX..."
2930
msgid "Export to ONIX..."
3173
msgstr "Exportar para o ONIX... "
2931
msgstr "Exportar para o ONIX..."
3174
2932
3175
#: mainwindow.cpp:518
2933
#: mainwindow.cpp:489
3176
msgid "Export to an ONIX file"
2934
msgid "Export to an ONIX file"
3177
msgstr "Exporta para um arquivo ONIX"
2935
msgstr "Exporta para um arquivo ONIX"
3178
2936
3179
#: mainwindow.cpp:524
2937
#: mainwindow.cpp:495
3180
msgid "Export to GCfilms..."
2938
msgid "Export to GCfilms..."
3181
msgstr "Exportar para o GCfilms... "
2939
msgstr "Exportar para o GCfilms..."
3182
2940
3183
#: mainwindow.cpp:525
2941
#: mainwindow.cpp:496
3184
msgid "Export to a GCfilms data file"
2942
msgid "Export to a GCfilms data file"
3185
msgstr "Exporta para um arquivo de dados do GCfilms"
2943
msgstr "Exporta para um arquivo de dados do GCfilms"
3186
2944
3187
#: mainwindow.cpp:531
2945
#: mainwindow.cpp:502
3188
#, fuzzy
3189
msgid "Export to GCstar..."
3190
msgstr "Exportar para o GCfilms... "
3191
3192
#: mainwindow.cpp:532
3193
#, fuzzy
3194
msgid "Export to a GCstar data file"
3195
msgstr "Exporta para um arquivo de dados do GCfilms"
3196
3197
#: mainwindow.cpp:536
3198
msgid "Export XSL Transform..."
2946
msgid "Export XSL Transform..."
3199
msgstr "Exportar Transformação XSL..."
2947
msgstr "Exportar Transformação XSL..."
3200
2948
3201
#: mainwindow.cpp:537
2949
#: mainwindow.cpp:503
3202
msgid "Export using an XSL Transform"
2950
msgid "Export using an XSL Transform"
3203
msgstr "Exporta utilizando uma transformação XSL"
2951
msgstr "Exporta utilizando uma transformação XSL"
3204
2952
3205
#: mainwindow.cpp:546
2953
#: mainwindow.cpp:512
3206
msgid "Cut the selected text and puts it in the clipboard"
2954
msgid "Cut the selected text and puts it in the clipboard"
3207
msgstr "Corta o texto selecionado e coloca-o na área de transferência"
2955
msgstr "Corta o texto selecionado e coloca-o na área de transferência"
3208
2956
3209
#: mainwindow.cpp:548
2957
#: mainwindow.cpp:514
3210
msgid "Copy the selected text to the clipboard"
2958
msgid "Copy the selected text to the clipboard"
3211
msgstr "Copia o texto selecionado para a área de transferência"
2959
msgstr "Copia o texto selecionado para a área de transferência"
3212
2960
3213
#: mainwindow.cpp:550
2961
#: mainwindow.cpp:516
3214
msgid "Paste the clipboard contents"
2962
msgid "Paste the clipboard contents"
3215
msgstr "Cola o conteúdo da área de transferência"
2963
msgstr "Cola o conteúdo da área de transferência"
3216
2964
3217
#: mainwindow.cpp:552
2965
#: mainwindow.cpp:518
3218
msgid "Select all the entries in the collection"
2966
msgid "Select all the entries in the collection"
3219
msgstr "Seleciona todos os registros da coleção"
2967
msgstr "Seleciona todos os registros da coleção"
3220
2968
3221
#: mainwindow.cpp:554
2969
#: mainwindow.cpp:520
3222
msgid "Deselect all the entries in the collection"
2970
msgid "Deselect all the entries in the collection"
3223
msgstr "De-seleciona todos os registros da coleção"
2971
msgstr "De-seleciona todos os registros da coleção"
3224
2972
3225
#: mainwindow.cpp:556
2973
#: mainwindow.cpp:522
3226
msgid "Internet Search..."
2974
msgid "Internet Search..."
3227
msgstr "Pesquisa na Internet..."
2975
msgstr "Pesquisa na Internet..."
3228
2976
3229
#: mainwindow.cpp:559
2977
#: mainwindow.cpp:525
3230
msgid "Search the internet..."
2978
msgid "Search the internet..."
3231
msgstr "Pesquisa registros em fontes da Internet"
2979
msgstr "Pesquisa registros em fontes da Internet..."
3232
3233
#: mainwindow.cpp:561
3234
msgid "Advanced &Filter..."
3235
msgstr "&Filtro Avançado..."
3236
3237
#: mainwindow.cpp:564 mainwindow.cpp:719
3238
msgid "Filter the collection"
3239
msgstr "Filtrar a coleção "
3240
2980
3241
#: mainwindow.cpp:569
2981
#: mainwindow.cpp:530
3242
msgid "&New Entry..."
2982
msgid "&New Entry..."
3243
msgstr "&Novo registro..."
2983
msgstr "&Novo registro..."
3244
2984
3245
#: mainwindow.cpp:572
2985
#: mainwindow.cpp:533
3246
msgid "Create a new entry"
2986
msgid "Create a new entry"
3247
msgstr "Cria um novo registro"
2987
msgstr "Cria um novo registro"
3248
2988
3249
#: controller.cpp:620 mainwindow.cpp:573
2989
#: controller.cpp:606 mainwindow.cpp:534
3250
msgid "&Edit Entry..."
2990
msgid "&Edit Entry..."
3251
msgstr "&Editar Registro..."
2991
msgstr "&Editar Registro..."
3252
2992
3253
#: mainwindow.cpp:576
2993
#: mainwindow.cpp:537
3254
msgid "Edit the selected entries"
2994
msgid "Edit the selected entries"
3255
msgstr "Edita os registros selecionados"
2995
msgstr "Edita os registros selecionados"
3256
2996
3257
#: controller.cpp:621 mainwindow.cpp:577
2997
#: controller.cpp:607 mainwindow.cpp:538
3258
msgid "D&uplicate Entry"
2998
msgid "D&uplicate Entry"
3259
msgstr "D&uplicar Registro"
2999
msgstr "D&uplicar Registro"
3260
3000
3261
#: mainwindow.cpp:580
3001
#: mainwindow.cpp:541
3262
msgid "Copy the selected entries"
3002
msgid "Copy the selected entries"
3263
msgstr "Copia os registros selecionados"
3003
msgstr "Copia os registros selecionados"
3264
3004
3265
#: controller.cpp:623 mainwindow.cpp:581
3005
#: controller.cpp:609 mainwindow.cpp:542
3266
msgid "&Delete Entry"
3006
msgid "&Delete Entry"
3267
msgstr "&Apagar Registro"
3007
msgstr "&Apagar Registro"
3268
3008
3269
#: mainwindow.cpp:584
3009
#: mainwindow.cpp:545
3270
msgid "Delete the selected entries"
3010
msgid "Delete the selected entries"
3271
msgstr "Apaga os registros selecionados "
3011
msgstr "Apaga os registros selecionados "
3272
3012
3273
#: mainwindow.cpp:585
3013
#: mainwindow.cpp:547
3274
#, fuzzy
3275
msgid "&Merge Entries"
3276
msgstr "&Apagar Registros"
3277
3278
#: mainwindow.cpp:588
3279
#, fuzzy
3280
msgid "Merge the selected entries"
3281
msgstr "Apaga os registros selecionados "
3282
3283
#: mainwindow.cpp:591
3284
msgid "&Generate Reports..."
3014
msgid "&Generate Reports..."
3285
msgstr "&Gerar Relatórios... "
3015
msgstr "&Gerar Relatórios..."
3286
3016
3287
#: mainwindow.cpp:594
3017
#: mainwindow.cpp:550
3288
msgid "Generate collection reports"
3018
msgid "Generate collection reports"
3289
msgstr "Gera relatórios da coleção "
3019
msgstr "Gera relatórios da coleção "
3290
3020
3291
#: mainwindow.cpp:595
3021
#: mainwindow.cpp:551
3292
msgid "Check-&out..."
3022
msgid "Check-&out..."
3293
msgstr "&Registrar saída..."
3023
msgstr "&Registrar saída..."
3294
3024
3295
#: mainwindow.cpp:598
3025
#: mainwindow.cpp:554
3296
msgid "Check-out the selected items"
3026
msgid "Check-out the selected items"
3297
msgstr "Registra saída dos itens selecionados "
3027
msgstr "Registra saída dos itens selecionados "
3298
3028
3299
#: mainwindow.cpp:599
3029
#: mainwindow.cpp:555
3300
msgid "Check-&in"
3030
msgid "Check-&in"
3301
msgstr "Registrar &entrada..."
3031
msgstr "Registrar &entrada"
3302
3032
3303
#: mainwindow.cpp:602
3033
#: mainwindow.cpp:558
3304
msgid "Check-in the selected items"
3034
msgid "Check-in the selected items"
3305
msgstr "Registra entrada dos itens selecionados"
3035
msgstr "Registra entrada dos itens selecionados"
3306
3036
3307
#: mainwindow.cpp:604
3037
#: mainwindow.cpp:560
3308
msgid "&Rename Collection..."
3038
msgid "&Rename Collection..."
3309
msgstr "&Renomear Coleção..."
3039
msgstr "&Renomear Coleção..."
3310
3040
3311
#: mainwindow.cpp:607
3041
#: mainwindow.cpp:563
3312
msgid "Rename the collection"
3042
msgid "Rename the collection"
3313
msgstr "Renomeia a coleção"
3043
msgstr "Renomeia a coleção"
3314
3044
3315
#: mainwindow.cpp:608
3045
#: mainwindow.cpp:564
3316
msgid "Collection &Fields..."
3046
msgid "Collection &Fields..."
3317
msgstr "&Campos da Coleção..."
3047
msgstr "&Campos da Coleção..."
3318
3048
3319
#: mainwindow.cpp:611
3049
#: mainwindow.cpp:567
3320
msgid "Modify the collection fields"
3050
msgid "Modify the collection fields"
3321
msgstr "Modifica os campos da coleção"
3051
msgstr "Modifica os campos da coleção"
3322
3052
3323
#: mainwindow.cpp:612
3053
#: mainwindow.cpp:568
3324
msgid "Convert to &Bibliography"
3054
msgid "Convert to &Bibliography"
3325
msgstr "Converter para &Bibliografia"
3055
msgstr "Converter para &Bibliografia"
3326
3056
3327
#: mainwindow.cpp:615
3057
#: mainwindow.cpp:571
3328
msgid "Convert a book collection to a bibliography"
3058
msgid "Convert a book collection to a bibliography"
3329
msgstr "Converter uma coleção de livros para uma bibliografia"
3059
msgstr "Converter uma coleção de livros para uma bibliografia"
3330
3060
3331
#: mainwindow.cpp:616
3061
#: mainwindow.cpp:572
3332
msgid "String &Macros..."
3062
msgid "String &Macros..."
3333
msgstr "&Macros de String..."
3063
msgstr "&Macros de String..."
3334
3064
3335
#: mainwindow.cpp:619
3065
#: mainwindow.cpp:575
3336
msgid "Edit the bibtex string macros"
3066
msgid "Edit the bibtex string macros"
3337
msgstr "Editar linhas de macros do BibTeX "
3067
msgstr "Editar linhas de macros do BibTeX "
3338
3068
3339
#: mainwindow.cpp:626
3069
#: mainwindow.cpp:582
3340
msgid "Copy Bibtex to Cli&pboard"
3070
msgid "Copy Bibtex to Cli&pboard"
3341
msgstr "Copia BibTeX para a &Área de Transferência"
3071
msgstr "Copia BibTeX para a &Área de Transferência"
3342
3072
3343
#: mainwindow.cpp:627
3073
#: mainwindow.cpp:583
3344
msgid "Copy bibtex citations to the clipboard"
3074
msgid "Copy bibtex citations to the clipboard"
3345
msgstr "Copia citações do BibTeX para a área de transferência"
3075
msgstr "Copia citações do BibTeX para a área de transferência"
3346
3076
3347
#: mainwindow.cpp:632
3077
#: mainwindow.cpp:588
3348
msgid "Cite Entry in &LyX"
3078
msgid "Cite Entry in &LyX"
3349
msgstr "Citar Registro no &LyX"
3079
msgstr "Citar Registro no &LyX"
3350
3080
3351
#: mainwindow.cpp:633
3081
#: mainwindow.cpp:589
3352
msgid "Cite the selected entries in LyX"
3082
msgid "Cite the selected entries in LyX"
3353
msgstr "Citar os registros selecionados no LyX"
3083
msgstr "Citar os registros selecionados no LyX"
3354
3084
3355
#: mainwindow.cpp:638
3085
#: mainwindow.cpp:594
3356
msgid "Ci&te Entry in OpenOffice.org"
3086
msgid "Ci&te Entry in OpenOffice.org"
3357
msgstr "Ci&tar Registro no OpenOffice.org"
3087
msgstr "Ci&tar Registro no OpenOffice.org"
3358
3088
3359
#: mainwindow.cpp:639
3089
#: mainwindow.cpp:595
3360
msgid "Cite the selected entries in OpenOffice.org"
3090
msgid "Cite the selected entries in OpenOffice.org"
3361
msgstr "Citar os registros selecionados no OpenOffice.org"
3091
msgstr "Citar os registros selecionados no OpenOffice.org"
3362
3092
3363
#: controller.cpp:622 mainwindow.cpp:647 rc.cpp:18
3093
#: controller.cpp:608 mainwindow.cpp:603 rc.cpp:18
3364
#, no-c-format
3094
#, no-c-format
3365
msgid "&Update Entry"
3095
msgid "&Update Entry"
3366
msgstr "&Atualizar o Registro"
3096
msgstr "&Atualizar o Registro"
3367
3097
3368
#: mainwindow.cpp:652
3098
#: mainwindow.cpp:608
3369
msgid "All Sources"
3099
msgid "All Sources"
3370
msgstr "Todas as Fontes"
3100
msgstr "Todas as Fontes"
3371
3101
3372
#: mainwindow.cpp:653
3102
#: mainwindow.cpp:609
3373
msgid "Update entry data from all available sources"
3103
msgid "Update entry data from all available sources"
3374
msgstr "Atualizar o registro a partir de todas as fontes disponíveis "
3104
msgstr "Atualizar o registro a partir de todas as fontes disponíveis "
3375
3105
3376
#: mainwindow.cpp:665
3106
#: mainwindow.cpp:621
3377
msgid "Show Grou&p View"
3107
msgid "Show Grou&p View"
3378
msgstr "Mostrar Visão de &Grupo"
3108
msgstr "Mostrar Visão de &Grupo"
3379
3109
3380
#: mainwindow.cpp:668
3110
#: mainwindow.cpp:624
3381
msgid "Enable/disable the group view"
3111
msgid "Enable/disable the group view"
3382
msgstr "Ativar/desativar a visão de grupo"
3112
msgstr "Ativar/desativar a visão de grupo"
3383
3113
3384
#: mainwindow.cpp:669
3114
#: mainwindow.cpp:625
3385
msgid "Hide Grou&p View"
3115
msgid "Hide Grou&p View"
3386
msgstr "Ocultar Visão de Gru&po "
3116
msgstr "Ocultar Visão de Gru&po "
3387
3117
3388
#: mainwindow.cpp:671
3118
#: mainwindow.cpp:627
3389
msgid "Show Entry &Editor"
3119
msgid "Show Entry &Editor"
3390
msgstr "Mostrar &Editor de Registros"
3120
msgstr "Mostrar &Editor de Registros"
3391
3121
3392
#: mainwindow.cpp:674
3122
#: mainwindow.cpp:630
3393
msgid "Enable/disable the editor"
3123
msgid "Enable/disable the editor"
3394
msgstr "Habilitar/desabilitar o editor"
3124
msgstr "Habilitar/desabilitar o editor"
3395
3125
3396
#: mainwindow.cpp:675
3126
#: mainwindow.cpp:631
3397
msgid "Hide Entry &Editor"
3127
msgid "Hide Entry &Editor"
3398
msgstr "Ocultar &Editor de Registros"
3128
msgstr "Ocultar &Editor de Registros"
3399
3129
3400
#: mainwindow.cpp:677
3130
#: mainwindow.cpp:633
3401
msgid "Show Entry &View"
3131
msgid "Show Entry &View"
3402
msgstr "Mostrar &Visão de Registros"
3132
msgstr "Mostrar &Visão de Registros"
3403
3133
3404
#: mainwindow.cpp:680
3134
#: mainwindow.cpp:636
3405
msgid "Enable/disable the entry view"
3135
msgid "Enable/disable the entry view"
3406
msgstr "Habilitar/desabilitar visão de registros"
3136
msgstr "Habilitar/desabilitar visão de registros"
3407
3137
3408
#: mainwindow.cpp:681
3138
#: mainwindow.cpp:637
3409
msgid "Hide Entry &View"
3139
msgid "Hide Entry &View"
3410
msgstr "Ocultar &Visão de Registros"
3140
msgstr "Ocultar &Visão de Registros"
3411
3141
3412
#: mainwindow.cpp:693
3142
#: mainwindow.cpp:639
3143
msgid "Advanced &Filter..."
3144
msgstr "&Filtro Avançado..."
3145
3146
#: mainwindow.cpp:642 mainwindow.cpp:680
3147
msgid "Filter the collection"
3148
msgstr "Filtrar a coleção "
3149
3150
#: mainwindow.cpp:654
3413
msgid "Change Grouping"
3151
msgid "Change Grouping"
3414
msgstr "Alterar o Agrupamento"
3152
msgstr "Alterar o Agrupamento"
3415
3153
3416
#: mainwindow.cpp:697
3154
#: mainwindow.cpp:658
3417
msgid "&Group Selection"
3155
msgid "&Group Selection"
3418
msgstr "Seleção de &Grupo"
3156
msgstr "Seleção de &Grupo"
3419
3157
3420
#: mainwindow.cpp:700
3158
#: mainwindow.cpp:661
3421
msgid "Change the grouping of the collection"
3159
msgid "Change the grouping of the collection"
3422
msgstr "Alterar o agrupamento da coleção"
3160
msgstr "Alterar o agrupamento da coleção"
3423
3161
3424
#: filterview.cpp:33 filterview.cpp:85 mainwindow.cpp:702 mainwindow.cpp:717
3162
#: filterview.cpp:33 filterview.cpp:85 mainwindow.cpp:663 mainwindow.cpp:678
3425
msgid "Filter"
3163
msgid "Filter"
3426
msgstr "Filtrar"
3164
msgstr "Filtrar"
3427
3165
3428
#: mainwindow.cpp:705
3166
#: mainwindow.cpp:666
3429
msgid "Clear Filter"
3167
msgid "Clear Filter"
3430
msgstr "Limpar Filtro"
3168
msgstr "Limpar Filtro"
3431
3169
3432
#: mainwindow.cpp:710
3170
#: mainwindow.cpp:671
3433
msgid "Filter here..."
3171
msgid "Filter here..."
3434
msgstr "Filtrar Aqui..."
3172
msgstr "Filtrar Aqui..."
3435
3173
3436
#: mainwindow.cpp:768
3174
#: mainwindow.cpp:727
3437
msgid "Groups"
3175
msgid "Groups"
3438
msgstr "Grupos"
3176
msgstr "Grupos"
3439
3177
3440
#: mainwindow.cpp:769
3178
#: mainwindow.cpp:728
3441
msgid ""
3179
msgid ""
3442
"<qt>The <i>Group View</i> sorts the entries into groupings based on a "
3180
"<qt>The <i>Group View</i> sorts the entries into groupings based on a "
3443
"selected field.</qt>"
3181
"selected field.</qt>"
Lines 3445-3518 msgstr "" Link Here
3445
"<qt>A <i>Visão de Grupos</i> classifica os registros em grupos com base em "
3183
"<qt>A <i>Visão de Grupos</i> classifica os registros em grupos com base em "
3446
"um campo selecionado.</qt>"
3184
"um campo selecionado.</qt>"
3447
3185
3448
#: mainwindow.cpp:776
3186
#: mainwindow.cpp:735
3449
msgid ""
3187
msgid ""
3450
"<qt>The <i>Column View</i> shows the value of multiple fields for each "
3188
"<qt>The <i>Column View</i> shows the value of multiple fields for each entry."
3451
"entry.</qt>"
3189
"</qt>"
3452
msgstr ""
3190
msgstr ""
3453
"<qt>A <i>Visão de Colunas</i> mostra os valores de vários campos para cada "
3191
"<qt>A <i>Visão de Colunas</i> mostra os valores de vários campos para cada "
3454
"registro</qt>"
3192
"registro</qt>"
3455
3193
3456
#: mainwindow.cpp:831
3194
#: mainwindow.cpp:1021
3457
#, fuzzy
3458
msgid "Welcome to the Tellico Collection Manager"
3459
msgstr "Tellico - um gerenciador de coleções para o KDE"
3460
3461
#: mainwindow.cpp:833
3462
msgid ""
3463
"<h3>Tellico is a tool for managing collections of books, videos, music, and "
3464
"whatever else you want to catalog.</h3><h3>New entries can be added to your "
3465
"collection by <a href=\"tc:///coll_new_entry\">entering data manually</a> or "
3466
"by <a href=\"tc:///edit_search_internet\">downloading data</a> from various "
3467
"Internet sources.</h3>"
3468
msgstr ""
3469
3470
#: mainwindow.cpp:1066
3471
msgid "Creating new document..."
3195
msgid "Creating new document..."
3472
msgstr "Criação de um novo documento... "
3196
msgstr "Criação de um novo documento..."
3473
3197
3474
#: mainwindow.cpp:1098 mainwindow.cpp:1117 mainwindow.cpp:1135
3198
#: mainwindow.cpp:1053 mainwindow.cpp:1073 mainwindow.cpp:1091
3475
msgid "Opening file..."
3199
msgid "Opening file..."
3476
msgstr "Abrindo arquivo..."
3200
msgstr "Abrindo arquivo..."
3477
3201
3478
#: mainwindow.cpp:1108
3202
#: mainwindow.cpp:1063
3479
msgid "Open File"
3203
msgid "Open File"
3480
msgstr "Abrir Arquivo"
3204
msgstr "Abrir Arquivo"
3481
3205
3482
#: document.cpp:192 mainwindow.cpp:1215
3206
#: document.cpp:189 mainwindow.cpp:1165
3483
msgid "Saving file..."
3207
msgid "Saving file..."
3484
msgstr "Salvando Arquivo..."
3208
msgstr "Salvando Arquivo..."
3485
3209
3486
#: mainwindow.cpp:1226
3210
#: mainwindow.cpp:1175
3487
msgid ""
3211
msgid ""
3488
"<qt><p>You are saving a file with many images, which causes Tellico to slow "
3212
"<qt><p>You are saving a file with many images, which causes Tellico to slow "
3489
"down significantly. Do you want to save the images separately in Tellico's "
3213
"down significantly. Do you want to save the images separately in Tellico's "
3490
"data directory to improve performance?</p><p>Your choice can always be "
3214
"data directory to improve performance?</p><p>Your choice can always be "
3491
"changed in the configuration dialog.</p></qt>"
3215
"changed in the configuration dialog.</p></qt>"
3492
msgstr ""
3216
msgstr ""
3493
"<qt><p>Você está salvando um arquivo com muitas imagens, levando o Tellico "
3217
"<qt><p>Você está salvando um arquivo com muitas imagens, levando o Tellico a "
3494
"a ficar significativamente lento. Você gostaria de salvar as imagens "
3218
"ficar significativamente lento. Você gostaria de salvar as imagens "
3495
"separadamente no diretório de dados do Tellico para melhorar a "
3219
"separadamente no diretório de dados do Tellico para melhorar a performance?</"
3496
"performance?</p><p>Sua escolha pode sempre ser alterada na caixa de diálogo "
3220
"p><p>Sua escolha pode sempre ser alterada na caixa de diálogo de "
3497
"de configuração.</p></qt>"
3221
"configuração.</p></qt>"
3498
3222
3499
#: mainwindow.cpp:1231
3223
#: mainwindow.cpp:1180
3500
msgid "Save Images Separately"
3224
msgid "Save Images Separately"
3501
msgstr "Salvar Imagens Separadamente"
3225
msgstr "Salvar Imagens Separadamente"
3502
3226
3503
#: mainwindow.cpp:1232
3227
#: mainwindow.cpp:1181
3504
msgid "Save Images in File"
3228
msgid "Save Images in File"
3505
msgstr "Salvar Imagens no Arquivo"
3229
msgstr "Salvar Imagens no Arquivo"
3506
3230
3507
#: mainwindow.cpp:1265
3231
#: mainwindow.cpp:1213
3508
msgid "Saving file with a new filename..."
3232
msgid "Saving file with a new filename..."
3509
msgstr "Salvando arquivo com um novo nome..."
3233
msgstr "Salvando arquivo com um novo nome..."
3510
3234
3511
#: mainwindow.cpp:1303 mainwindow.cpp:1353
3235
#: mainwindow.cpp:1253 mainwindow.cpp:1305
3512
msgid "Printing..."
3236
msgid "Printing..."
3513
msgstr "Impressão..."
3237
msgstr "Impressão..."
3514
3238
3515
#: mainwindow.cpp:1312
3239
#: mainwindow.cpp:1262
3516
msgid ""
3240
msgid ""
3517
"The collection is currently being filtered to show a limited subset of the "
3241
"The collection is currently being filtered to show a limited subset of the "
3518
"entries. Only the visible entries will be printed. Continue?"
3242
"entries. Only the visible entries will be printed. Continue?"
Lines 3520-3658 msgstr "" Link Here
3520
"A coleção esta sendo filtrada para mostrar um subconjunto limitado de seus "
3244
"A coleção esta sendo filtrada para mostrar um subconjunto limitado de seus "
3521
"registros. Apenas os registros visíveis serão impressos. Continuar?"
3245
"registros. Apenas os registros visíveis serão impressos. Continuar?"
3522
3246
3523
#: mainwindow.cpp:1337
3247
#: mainwindow.cpp:1288
3524
msgid "Processing document..."
3248
msgid "Processing document..."
3525
msgstr "Processamento do documento..."
3249
msgstr "Processamento do documento..."
3526
3250
3527
#: mainwindow.cpp:1360
3251
#: mainwindow.cpp:1313
3528
msgid "Exiting..."
3252
msgid "Exiting..."
3529
msgstr "Saindo..."
3253
msgstr "Saindo..."
3530
3254
3531
#: mainwindow.cpp:1498
3255
#: mainwindow.cpp:1453
3532
#, c-format
3256
#, c-format
3533
msgid "Total entries: %1"
3257
msgid "Total entries: %1"
3534
msgstr "Total de registros: %1"
3258
msgstr "Total de registros: %1"
3535
3259
3536
#: mainwindow.cpp:1505
3260
#: mainwindow.cpp:1460
3537
msgid "(%1 filtered; %2 selected)"
3261
msgid "(%1 filtered; %2 selected)"
3538
msgstr ""
3262
msgstr "(%1 filtrados, %2 selecionados)"
3539
"(%1 filtrado, %2 selecionado)\n"
3540
"(%1 filtrados, %2 selecionados)"
3541
3263
3542
#: mainwindow.cpp:1508
3264
#: mainwindow.cpp:1463
3543
msgid "(%1 filtered)"
3265
msgid "(%1 filtered)"
3544
msgstr ""
3266
msgstr "(%1 filtrados)"
3545
"(%1 filtrado)\n"
3546
"(%1 filtrados)"
3547
3267
3548
#: mainwindow.cpp:1511
3268
#: mainwindow.cpp:1466
3549
msgid "(%1 selected)"
3269
msgid "(%1 selected)"
3550
msgstr ""
3270
msgstr "(%1 selecionados)"
3551
"(%1 selecionado)\n"
3552
"(%1 selecionados)"
3553
3271
3554
#: mainwindow.cpp:1679
3272
#: mainwindow.cpp:1640
3555
#, c-format
3273
#, c-format
3556
msgid "Print %1"
3274
msgid "Print %1"
3557
msgstr "Impressão %1"
3275
msgstr "Impressão %1"
3558
3276
3559
#: mainwindow.cpp:1712
3277
#: mainwindow.cpp:1673
3560
#, c-format
3278
#, c-format
3561
msgid "Page %1"
3279
msgid "Page %1"
3562
msgstr "Página %1"
3280
msgstr "Página %1"
3563
3281
3564
#: entryview.cpp:188 mainwindow.cpp:1739
3282
#: entryview.cpp:171 mainwindow.cpp:1700
3565
msgid "Please check your installation."
3283
msgid "Please check your installation."
3566
msgstr "Por favor, confira sua instalação."
3284
msgstr "Por favor, confira sua instalação."
3567
3285
3568
#: mainwindow.cpp:1849
3286
#: mainwindow.cpp:1789
3569
msgid "Importing data..."
3287
msgid "Importing data..."
3570
msgstr "Importação de dados..."
3288
msgstr "Importação de dados..."
3571
3289
3572
#: mainwindow.cpp:1858
3290
#: mainwindow.cpp:1798
3573
msgid "Import File"
3291
msgid "Import File"
3574
msgstr "Importar Arquivo"
3292
msgstr "Importar Arquivo"
3575
3293
3576
#: mainwindow.cpp:1864
3294
#: mainwindow.cpp:1804
3577
msgid "Import Directory"
3295
msgid "Import Directory"
3578
msgstr "Importar Diretório"
3296
msgstr "Importar Diretório"
3579
3297
3580
#: mainwindow.cpp:1885
3298
#: mainwindow.cpp:1892
3581
msgid "Exporting data..."
3299
msgid "Exporting data..."
3582
msgstr "Exportação de dados..."
3300
msgstr "Exportação de dados..."
3583
3301
3584
#: mainwindow.cpp:1907
3302
#: mainwindow.cpp:1914
3585
msgid "Export As"
3303
msgid "Export As"
3586
msgstr "Exportar Como"
3304
msgstr "Exportar Como"
3587
3305
3588
#: mainwindow.cpp:1935
3306
#: mainwindow.cpp:1943
3589
msgid "String Macros"
3307
msgid "String Macros"
3590
msgstr "Macros de String"
3308
msgstr "Macros de String"
3591
3309
3592
#: mainwindow.cpp:1936
3310
#: mainwindow.cpp:1944
3593
msgid "Macro"
3311
msgid "Macro"
3594
msgstr "Macro"
3312
msgstr "Macro"
3595
3313
3596
#: mainwindow.cpp:1936
3314
#: mainwindow.cpp:1944
3597
msgid "String"
3315
msgid "String"
3598
msgstr "String"
3316
msgstr "String"
3599
3317
3600
#: mainwindow.cpp:1999
3318
#: mainwindow.cpp:2007
3601
msgid "Creating citations..."
3319
msgid "Creating citations..."
3602
msgstr "Criando citações..."
3320
msgstr "Criando citações..."
3603
3321
3604
#: mainwindow.cpp:2104
3322
#: mainwindow.cpp:2157
3605
msgid "Filters"
3323
msgid "Filters"
3606
msgstr "Filtros"
3324
msgstr "Filtros"
3607
3325
3608
#: mainwindow.cpp:2105
3326
#: mainwindow.cpp:2158
3609
msgid ""
3327
msgid ""
3610
"<qt>The <i>Filter View</i> shows the entries which meet certain filter "
3328
"<qt>The <i>Filter View</i> shows the entries which meet certain filter rules."
3611
"rules.</qt>"
3329
"</qt>"
3612
msgstr ""
3330
msgstr ""
3613
"<qt>A <i>Visão de Filtros</i> mostra os registros que atendem determinadas "
3331
"<qt>A <i>Visão de Filtros</i> mostra os registros que atendem determinadas "
3614
"regras de filtros.</qt>"
3332
"regras de filtros.</qt>"
3615
3333
3616
#: mainwindow.cpp:2121
3334
#: mainwindow.cpp:2174
3617
msgid "Loans"
3335
msgid "Loans"
3618
msgstr "Empréstimos"
3336
msgstr "Empréstimos"
3619
3337
3620
#: mainwindow.cpp:2122
3338
#: mainwindow.cpp:2175
3621
msgid ""
3339
msgid ""
3622
"<qt>The <i>Loan View</i> shows a list of all the people who have borrowed "
3340
"<qt>The <i>Loan View</i> shows a list of all the people who have borrowed "
3623
"items from your collection.</qt>"
3341
"items from your collection.</qt>"
3624
msgstr ""
3342
msgstr ""
3625
"<qt>A <i>Visão de Empréstimos</i> mostra uma lista com todas as pessoas "
3343
"<qt>A <i>Visão de Empréstimos</i> mostra uma lista com todas as pessoas que "
3626
"que pegaram itens emprestados de sua coleção.</qt>"
3344
"pegaram itens emprestados de sua coleção.</qt>"
3627
3345
3628
#: mainwindow.cpp:2255
3346
#: mainwindow.cpp:2308
3629
#, c-format
3347
#, c-format
3630
msgid "Update entry data from %1"
3348
msgid "Update entry data from %1"
3631
msgstr "Atualiza os dados do registro %1"
3349
msgstr "Atualiza os dados do registro %1"
3632
3350
3633
#: mainwindow.cpp:2274
3351
#: filehandler.cpp:190
3634
msgid ""
3635
"Tellico can only import one file of this type at a time. Only %1 will be "
3636
"imported."
3637
msgstr ""
3638
3639
#: filehandler.cpp:193
3640
#, c-format
3352
#, c-format
3641
msgid "Tellico is unable to load the image - %1."
3353
msgid "Tellico is unable to load the image - %1."
3642
msgstr "Tellico não pôde carregar a imagem - %1."
3354
msgstr "Tellico não pôde carregar a imagem - %1."
3643
3355
3644
#: filehandler.cpp:207
3356
#: filehandler.cpp:204
3645
msgid ""
3357
msgid "A file named \"%1\" already exists. Are you sure you want to overwrite it?"
3646
"A file named \"%1\" already exists. Are you sure you want to overwrite it?"
3647
msgstr ""
3358
msgstr ""
3648
"Um arquivo chamado \"%1\" já existe. Tem certeza que deseja mesmo "
3359
"Um arquivo chamado \"%1\" já existe. Tem certeza que deseja mesmo "
3649
"sobrescrevê-lo?"
3360
"sobrescrevê-lo?"
3650
3361
3651
#: filehandler.cpp:210
3362
#: filehandler.cpp:207
3652
msgid "Overwrite File?"
3363
msgid "Overwrite File?"
3653
msgstr "Sobrescrever o Arquivo?"
3364
msgstr "Sobrescrever o Arquivo?"
3654
3365
3655
#: filehandler.cpp:211
3366
#: filehandler.cpp:208
3656
msgid "Overwrite"
3367
msgid "Overwrite"
3657
msgstr "Sobrescrever"
3368
msgstr "Sobrescrever"
3658
3369
Lines 3660-3729 msgstr "Sobrescrever" Link Here
3660
msgid "Filter (Sort by Count)"
3371
msgid "Filter (Sort by Count)"
3661
msgstr "Filtro (Classificar por Contagem)"
3372
msgstr "Filtro (Classificar por Contagem)"
3662
3373
3663
#: controller.cpp:427
3374
#: controller.cpp:423
3664
msgid "Do you really want to delete this entry?"
3375
msgid "Do you really want to delete this entry?"
3665
msgstr "Quer mesmo apagar este registro?"
3376
msgstr "Quer mesmo apagar este registro?"
3666
3377
3667
#: controller.cpp:429
3378
#: controller.cpp:425
3668
msgid "Delete Entry"
3379
msgid "Delete Entry"
3669
msgstr "Apagar a entrada?"
3380
msgstr "Apagar Entrada"
3670
3381
3671
#: controller.cpp:439
3382
#: controller.cpp:435
3672
msgid "Do you really want to delete these entries?"
3383
msgid "Do you really want to delete these entries?"
3673
msgstr "Quer mesmo apagar estes registros?"
3384
msgstr "Quer mesmo apagar estes registros?"
3674
3385
3675
#: controller.cpp:443
3386
#: controller.cpp:439
3676
msgid "Delete Multiple Entries"
3387
msgid "Delete Multiple Entries"
3677
msgstr "Apagar Múltiplos Registros"
3388
msgstr "Apagar Múltiplos Registros"
3678
3389
3679
#: controller.cpp:626
3390
#: controller.cpp:611
3680
msgid "&Edit Entries..."
3391
msgid "&Edit Entries..."
3681
msgstr "&Editar Registros..."
3392
msgstr "&Editar Registros..."
3682
3393
3683
#: controller.cpp:627
3394
#: controller.cpp:612
3684
msgid "D&uplicate Entries"
3395
msgid "D&uplicate Entries"
3685
msgstr "D&uplicar Registros"
3396
msgstr "D&uplicar Registros"
3686
3397
3687
#: controller.cpp:628
3398
#: controller.cpp:613
3688
msgid "&Update Entries"
3399
msgid "&Update Entries"
3689
msgstr "&Editar Registros"
3400
msgstr "&Editar Registros"
3690
3401
3691
#: controller.cpp:629
3402
#: controller.cpp:614
3692
msgid "&Delete Entries"
3403
msgid "&Delete Entries"
3693
msgstr "&Apagar Registros"
3404
msgstr "&Apagar Registros"
3694
3405
3695
#: controller.cpp:684
3406
#: controller.cpp:668
3696
msgid ""
3407
msgid ""
3697
"The following items are already loaned, but Tellico does not currently "
3408
"The following items are already loaned, but Tellico does not currently "
3698
"support lending an item multiple times. They will be removed from the list "
3409
"support lending an item multiple times. They will be removed from the list "
3699
"of items to lend."
3410
"of items to lend."
3700
msgstr ""
3411
msgstr ""
3701
"Os seguintes itens já estão emprestados. Como Tellico não suporta "
3412
"Os seguintes itens já estão emprestados. Como Tellico não suporta emprestar "
3702
"emprestar itens múltiplas vezes, eles serão removidos da lista de itens a "
3413
"itens múltiplas vezes, eles serão removidos da lista de itens a serem "
3703
"serem emprestados."
3414
"emprestados."
3704
3415
3705
#: calendarhandler.cpp:167
3416
#: calendarhandler.cpp:166
3706
msgid "Default Calendar"
3417
msgid "Default Calendar"
3707
msgstr "Calendário Padrão"
3418
msgstr "Calendário Padrão"
3708
3419
3709
#: calendarhandler.cpp:175
3420
#: calendarhandler.cpp:174
3710
msgid ""
3421
msgid ""
3711
"At the moment, Tellico only supports local calendar resources. The active "
3422
"At the moment, Tellico only supports local calendar resources. The active "
3712
"calendar is remotely located, so your loans will not be added."
3423
"calendar is remotely located, so your loans will not be added."
3713
msgstr ""
3424
msgstr ""
3714
"Presentemente, Tellico suporta apenas recursos de calendário locais. O "
3425
"Presentemente, Tellico suporta apenas recursos de calendário locais. O "
3715
"calendário ativo está localizado remotamente, então seus empréstimos "
3426
"calendário ativo está localizado remotamente, então seus empréstimos não "
3716
"não serão adicionados."
3427
"serão adicionados."
3717
3428
3718
#: calendarhandler.cpp:180
3429
#: calendarhandler.cpp:179
3719
msgid "Active Calendar"
3430
msgid "Active Calendar"
3720
msgstr "Calendário Ativo"
3431
msgstr "Calendário Ativo"
3721
3432
3722
#: calendarhandler.cpp:203
3433
#: calendarhandler.cpp:202
3723
msgid "Tellico: %1 is due to return \"%2\""
3434
msgid "Tellico: %1 is due to return \"%2\""
3724
msgstr "Tellico: %1 está previsto para ser devolvido para \"%2\""
3435
msgstr "Tellico: %1 está previsto para ser devolvido para \"%2\""
3725
3436
3726
#: collection.cpp:32
3437
#: collection.cpp:31
3727
msgid "(Empty)"
3438
msgid "(Empty)"
3728
msgstr "(Vazio)"
3439
msgstr "(Vazio)"
3729
3440
Lines 3767-3782 msgstr "Autor da biblioteca btparse" Link Here
3767
msgid "Code examples and general inspiration"
3478
msgid "Code examples and general inspiration"
3768
msgstr "Exemplos de código e inspiração em geral"
3479
msgstr "Exemplos de código e inspiração em geral"
3769
3480
3770
#: main.cpp:50
3771
#, fuzzy
3772
msgid "Author of libcsv library"
3773
msgstr "Autor da biblioteca btparse"
3774
3775
#: main.cpp:52
3776
#, fuzzy
3777
msgid "Author of rtf2html library"
3778
msgstr "Autor da biblioteca btparse"
3779
3780
#: collectionfieldsdialog.cpp:56
3481
#: collectionfieldsdialog.cpp:56
3781
msgid "Collection Fields"
3482
msgid "Collection Fields"
3782
msgstr "Campos da Coleção"
3483
msgstr "Campos da Coleção"
Lines 3843-3849 msgstr "O tipo do campo determina que valores podem ser utilizados. " Link Here
3843
3544
3844
#: collectionfieldsdialog.cpp:136
3545
#: collectionfieldsdialog.cpp:136
3845
msgid "<i>Simple Text</i> is used for most fields. "
3546
msgid "<i>Simple Text</i> is used for most fields. "
3846
msgstr "<i>Texto Simples</i> é utilizado para a maioria dos campos."
3547
msgstr "<i>Texto Simples</i> é utilizado para a maioria dos campos. "
3847
3548
3848
#: collectionfieldsdialog.cpp:137
3549
#: collectionfieldsdialog.cpp:137
3849
msgid "<i>Paragraph</i> is for large text blocks. "
3550
msgid "<i>Paragraph</i> is for large text blocks. "
Lines 3855-3865 msgstr "<i>Escolha</i> limita o campo a certos valores. " Link Here
3855
3556
3856
#: collectionfieldsdialog.cpp:139
3557
#: collectionfieldsdialog.cpp:139
3857
msgid "<i>Checkbox</i> is for a simple yes/no value. "
3558
msgid "<i>Checkbox</i> is for a simple yes/no value. "
3858
msgstr "<i>Marcador</i> é usado para descrever valores do tipo sim/não."
3559
msgstr "<i>Marcador</i> é usado para descrever valores do tipo sim/não. "
3859
3560
3860
#: collectionfieldsdialog.cpp:140
3561
#: collectionfieldsdialog.cpp:140
3861
msgid "<i>Number</i> indicates that the field contains a numerical value. "
3562
msgid "<i>Number</i> indicates that the field contains a numerical value. "
3862
msgstr "<i>Número</i> indica que o campo contém um valor numérico."
3563
msgstr "<i>Número</i> indica que o campo contém um valor numérico. "
3863
3564
3864
#: collectionfieldsdialog.cpp:141
3565
#: collectionfieldsdialog.cpp:141
3865
msgid ""
3566
msgid ""
Lines 3867-3891 msgid "" Link Here
3867
"files. "
3568
"files. "
3868
msgstr ""
3569
msgstr ""
3869
"<i>URL</i> é para os campos que fazem referência a uma URL, contendo "
3570
"<i>URL</i> é para os campos que fazem referência a uma URL, contendo "
3870
"referências a outros arquivos."
3571
"referências a outros arquivos. "
3871
3572
3872
#: collectionfieldsdialog.cpp:142
3573
#: collectionfieldsdialog.cpp:142
3873
msgid "A <i>Table</i> may hold one or more columns of values. "
3574
msgid "A <i>Table</i> may hold one or more columns of values. "
3874
msgstr "Uma <i>Tabela</i> pode conter uma ou duas colunas de valores."
3575
msgstr "Uma <i>Tabela</i> pode conter uma ou duas colunas de valores. "
3875
3576
3876
#: collectionfieldsdialog.cpp:143
3577
#: collectionfieldsdialog.cpp:143
3877
msgid "An <i>Image</i> field holds a picture. "
3578
msgid "An <i>Image</i> field holds a picture. "
3878
msgstr "Um campo <i>Imagem</i> serve para armazenar uma foto ou figura."
3579
msgstr "Um campo <i>Imagem</i> serve para armazenar uma foto ou figura. "
3879
3580
3880
#: collectionfieldsdialog.cpp:144
3581
#: collectionfieldsdialog.cpp:144
3881
msgid ""
3582
msgid "A <i>Date</i> field can be used for values with a day, month, and year. "
3882
"A <i>Date</i> field can be used for values with a day, month, and year. "
3583
msgstr "Um campo <i>Data</i> pode ser utilizado para valores com dia, mês e ano. "
3883
msgstr ""
3884
"Um campo <i>Data</i> pode ser utilizado para valores com dia, mês e ano."
3885
3584
3886
#: collectionfieldsdialog.cpp:145
3585
#: collectionfieldsdialog.cpp:145
3887
msgid "A <i>Rating</i> field uses stars to show a rating number. "
3586
msgid "A <i>Rating</i> field uses stars to show a rating number. "
3888
msgstr "Campos <i> Classificação</i> usam estrelas para indicar uma nota."
3587
msgstr "Campos <i> Classificação</i> usam estrelas para indicar uma nota. "
3889
3588
3890
#: collectionfieldsdialog.cpp:146
3589
#: collectionfieldsdialog.cpp:146
3891
msgid ""
3590
msgid ""
Lines 3893-3899 msgid "" Link Here
3893
"formatted according to the field description. "
3592
"formatted according to the field description. "
3894
msgstr ""
3593
msgstr ""
3895
"Um campo <i>Dependente</i> depende dos valores de outros campos, sendo "
3594
"Um campo <i>Dependente</i> depende dos valores de outros campos, sendo "
3896
"formatado conforme a descrição do campo."
3595
"formatado conforme a descrição do campo. "
3897
3596
3898
#: collectionfieldsdialog.cpp:148
3597
#: collectionfieldsdialog.cpp:148
3899
msgid ""
3598
msgid ""
Lines 3901-3907 msgid "" Link Here
3901
"export. "
3600
"export. "
3902
msgstr ""
3601
msgstr ""
3903
"Um campo <i>Read Only</i> é utilizado para valores internos, que podem ser "
3602
"Um campo <i>Read Only</i> é utilizado para valores internos, que podem ser "
3904
"úteis para importação e exportação de dados."
3603
"úteis para importação e exportação de dados. "
3905
3604
3906
#: collectionfieldsdialog.cpp:157
3605
#: collectionfieldsdialog.cpp:157
3907
msgid "Cate&gory:"
3606
msgid "Cate&gory:"
Lines 3922-3931 msgid "" Link Here
3922
"field. For <i>Dependent</i> fields, the description is a format string such "
3621
"field. For <i>Dependent</i> fields, the description is a format string such "
3923
"as \"%{year} %{title}\" where the named fields get substituted in the string."
3622
"as \"%{year} %{title}\" where the named fields get substituted in the string."
3924
msgstr ""
3623
msgstr ""
3925
"A descrição serve como lembrete de que informação o campo deve conter. "
3624
"A descrição serve como lembrete de que informação o campo deve conter. Para "
3926
"Para campos <i>Dependentes</i>, a descrição é uma string de formatação "
3625
"campos <i>Dependentes</i>, a descrição é uma string de formatação do tipo \"%"
3927
"do tipo \"%{year} %{title}\" onde os campos nomeados são substituídos por "
3626
"{year} %{title}\" onde os campos nomeados são substituídos por seus valores."
3928
"seus valores."
3929
3627
3930
#: collectionfieldsdialog.cpp:193
3628
#: collectionfieldsdialog.cpp:193
3931
msgid "&Default value:"
3629
msgid "&Default value:"
Lines 3942-3954 msgstr "Va&lores permitidos:" Link Here
3942
#: collectionfieldsdialog.cpp:208
3640
#: collectionfieldsdialog.cpp:208
3943
msgid ""
3641
msgid ""
3944
"<qt>For <i>Choice</i>-type fields, these are the only values allowed. They "
3642
"<qt>For <i>Choice</i>-type fields, these are the only values allowed. They "
3945
"are placed in a combo box. The possible values have to be separated by a "
3643
"are placed in a combo box. The possible value have to be seperated by a semi-"
3946
"semi-colon, for example: \"dog; cat; mouse\"</qt>"
3644
"colon, for example: \"dog; cat; mouse\"</qt>"
3947
msgstr ""
3645
msgstr ""
3948
"<qt>Para os campos do tipo <i>Escolha</i>, estes são os únicos valores "
3646
"<qt>Para os campos do tipo <i>Escolha</i>, estes são os únicos valores "
3949
"permitidos. Eles são colocados numa lista de opções. Os possíveis "
3647
"permitidos. Eles são colocados numa lista de opções. O valores possíveis têm de ser separados por ponto e vírgula, por exemplo: \"cachorro; gato; rato"
3950
"valores tem de ser separados por ponto e vírgula, por exemplo: \"cachorro, "
3648
"\"</qt>"
3951
"gato, rato\"</qt>"
3952
3649
3953
#: collectionfieldsdialog.cpp:215
3650
#: collectionfieldsdialog.cpp:215
3954
msgid "Extended &properties:"
3651
msgid "Extended &properties:"
Lines 3987-3997 msgid "Allow auto-capitalization only" Link Here
3987
msgstr "Permitir apenas a formatação automática em letras maiúsculas"
3684
msgstr "Permitir apenas a formatação automática em letras maiúsculas"
3988
3685
3989
#: collectionfieldsdialog.cpp:231
3686
#: collectionfieldsdialog.cpp:231
3990
msgid ""
3687
msgid "This option allows the field to be capitalized, but not specially formatted."
3991
"This option allows the field to be capitalized, but not specially formatted."
3688
msgstr "Esta opção permite pôr o campo em maiúsculas, mas sem formatações especiais."
3992
msgstr ""
3993
"Esta opção permite pôr o campo em maiúsculas, mas sem formatações "
3994
"especiais."
3995
3689
3996
#: collectionfieldsdialog.cpp:233
3690
#: collectionfieldsdialog.cpp:233
3997
msgid "Format as a title"
3691
msgid "Format as a title"
Lines 4002-4009 msgid "" Link Here
4002
"This option capitalizes and formats the field as a title, but only if those "
3696
"This option capitalizes and formats the field as a title, but only if those "
4003
"options are globally set."
3697
"options are globally set."
4004
msgstr ""
3698
msgstr ""
4005
"Esta opção põe em maiúsculas e formata o campo como um título,mas "
3699
"Esta opção põe em maiúsculas e formata o campo como um título,mas apenas se "
4006
"apenas se estas opções forem definidas globalmente."
3700
"estas opções forem definidas globalmente."
4007
3701
4008
#: collectionfieldsdialog.cpp:236
3702
#: collectionfieldsdialog.cpp:236
4009
msgid "Format as a name"
3703
msgid "Format as a name"
Lines 4014-4021 msgid "" Link Here
4014
"This option capitalizes and formats the field as a name, but only if those "
3708
"This option capitalizes and formats the field as a name, but only if those "
4015
"options are globally set."
3709
"options are globally set."
4016
msgstr ""
3710
msgstr ""
4017
"Esta opção põe em maiúsculas e formata o campo como um nome,mas apenas "
3711
"Esta opção põe em maiúsculas e formata o campo como um nome,mas apenas se "
4018
"se estas opções forem definidas globalmente."
3712
"estas opções forem definidas globalmente."
4019
3713
4020
#: collectionfieldsdialog.cpp:241
3714
#: collectionfieldsdialog.cpp:241
4021
msgid "Field Options"
3715
msgid "Field Options"
Lines 4042-4089 msgid "" Link Here
4042
"If checked, Tellico will parse the values in the field for multiple values, "
3736
"If checked, Tellico will parse the values in the field for multiple values, "
4043
"separated by a semi-colon."
3737
"separated by a semi-colon."
4044
msgstr ""
3738
msgstr ""
4045
"Se selecionado, Tellico separará os valores separados por ponto e vírgula "
3739
"Se selecionado, Tellico separará os valores separados por ponto e vírgula no "
4046
"no campo de múltiplos valores."
3740
"campo de múltiplos valores."
4047
3741
4048
#: collectionfieldsdialog.cpp:248
3742
#: collectionfieldsdialog.cpp:248
4049
msgid "Allow grouping"
3743
msgid "Allow grouping"
4050
msgstr "Permitir agrupamento"
3744
msgstr "Permitir agrupamento"
4051
3745
4052
#: collectionfieldsdialog.cpp:249
3746
#: collectionfieldsdialog.cpp:249
4053
msgid ""
3747
msgid "If checked, this field may be used to group the entries in the group view."
4054
"If checked, this field may be used to group the entries in the group view."
4055
msgstr ""
3748
msgstr ""
4056
"Se selecionado, este campo será utilizado para reagrupar os registros na "
3749
"Se selecionado, este campo será utilizado para reagrupar os registros na "
4057
"visão de grupos."
3750
"visão de grupos."
4058
3751
4059
#: collectionfieldsdialog.cpp:263
3752
#: collectionfieldsdialog.cpp:263
4060
msgid "Revert the selected field's properties to the default values."
3753
msgid "Revert the selected field's properties to the default values."
4061
msgstr ""
3754
msgstr "Reverter as propriedades dos campos selecionados para seus valores padrão."
4062
"Reverter as propriedades dos campos selecionados para seus valores padrão."
4063
3755
4064
#: collectionfieldsdialog.cpp:306
3756
#: collectionfieldsdialog.cpp:302
4065
msgid "Modify Fields"
3757
msgid "Modify Fields"
4066
msgstr "Modificar Campos"
3758
msgstr "Modificar Campos"
4067
3759
4068
#: collectionfieldsdialog.cpp:320
3760
#: collectionfieldsdialog.cpp:316
4069
msgid ""
3761
msgid ""
4070
"<qt>Removing allowed values from the <i>%1</i> field which currently exist "
3762
"<qt>Removing allowed values from the <i>%1</i> field which currently exist "
4071
"in the collection may cause data corruption. Do you want to keep your "
3763
"in the collection may cause data corruption. Do you want to keep your "
4072
"modified values or cancel and revert to the current ones?</qt>"
3764
"modified values or cancel and revert to the current ones?</qt>"
4073
msgstr ""
3765
msgstr ""
4074
"<qt>Apagar os valores possíveis do campo <i>%1</i> que existem na coleção "
3766
"<qt>Apagar os valores possíveis do campo <i>%1</i> que existem na coleção "
4075
"pode causar corrupção de dados. Você deseja manter seus valores "
3767
"pode causar corrupção de dados. Você deseja manter seus valores modificados "
4076
"modificados ou cancelar e reverter aos valores anteriores?</qt>"
3768
"ou cancelar e reverter aos valores anteriores?</qt>"
4077
3769
4078
#: collectionfieldsdialog.cpp:325
3770
#: collectionfieldsdialog.cpp:321
4079
msgid "Keep modified values"
3771
msgid "Keep modified values"
4080
msgstr "Manter os valores modificados"
3772
msgstr "Manter os valores modificados"
4081
3773
4082
#: collectionfieldsdialog.cpp:745
3774
#: collectionfieldsdialog.cpp:741
4083
msgid "Revert Field Properties"
3775
msgid "Revert Field Properties"
4084
msgstr "Reverter Propriedades do Campo"
3776
msgstr "Reverter Propriedades do Campo"
4085
3777
4086
#: collectionfieldsdialog.cpp:746
3778
#: collectionfieldsdialog.cpp:742
4087
msgid ""
3779
msgid ""
4088
"<qt><p>Do you really want to revert the properties for the <em>%1</em> field "
3780
"<qt><p>Do you really want to revert the properties for the <em>%1</em> field "
4089
"back to their default values?</p></qt>"
3781
"back to their default values?</p></qt>"
Lines 4091-4125 msgstr "" Link Here
4091
"<qt><p>Deseja realmente reverter as propriedades do campo <em>%1</em> para "
3783
"<qt><p>Deseja realmente reverter as propriedades do campo <em>%1</em> para "
4092
"seus valores padrão?</p></qt>"
3784
"seus valores padrão?</p></qt>"
4093
3785
4094
#: collectionfieldsdialog.cpp:749
3786
#: collectionfieldsdialog.cpp:745
4095
msgid "Revert"
3787
msgid "Revert"
4096
msgstr "Reverter"
3788
msgstr "Reverter"
4097
3789
4098
#: collectionfieldsdialog.cpp:872
3790
#: collectionfieldsdialog.cpp:868
4099
msgid "Extended Field Properties"
3791
msgid "Extended Field Properties"
4100
msgstr "Propriedades Estendidas dos Campos"
3792
msgstr "Propriedades Estendidas dos Campos"
4101
3793
4102
#: collectionfieldsdialog.cpp:902
3794
#: collectionfieldsdialog.cpp:898
4103
msgid "A field with this title already exists. Please enter a different title."
3795
msgid "A field with this title already exists. Please enter a different title."
4104
msgstr "Já existe um campo com este nome. Favor escolher um nome diferente."
3796
msgstr "Já existe um campo com este nome. Favor escolher um nome diferente."
4105
3797
4106
#: collectionfieldsdialog.cpp:909
3798
#: collectionfieldsdialog.cpp:905
4107
msgid "<qt>The category may not be empty. Please enter a category.</qt>"
3799
msgid "<qt>The category may not be empty. Please enter a category.</qt>"
4108
msgstr ""
3800
msgstr ""
4109
"<qt>A categoria não pode ser deixada em branco. Por favor,informe uma "
3801
"<qt>A categoria não pode ser deixada em branco. Por favor,informe uma "
4110
"categoria.</qt>"
3802
"categoria.</qt>"
4111
3803
4112
#: collectionfieldsdialog.cpp:917
3804
#: collectionfieldsdialog.cpp:913
4113
msgid ""
3805
msgid ""
4114
"<qt>A field may not be in the same category as a <em>Paragraph</em>, "
3806
"<qt>A field may not be in the same category as a <em>Paragraph</em>, "
4115
"<em>Table</em> or <em>Image</em> field. Please enter a different "
3807
"<em>Table</em> or <em>Image</em> field. Please enter a different category.</"
4116
"category.</qt>"
3808
"qt>"
4117
msgstr ""
3809
msgstr ""
4118
"<qt>Um campo não pode estar na mesma categoria que um <em>Parágrafo</em>, "
3810
"<qt>Um campo não pode estar na mesma categoria que um <em>Parágrafo</em>, "
4119
"uma <em>Tabela</em> ou uma <em>Imagem</em>. Favor escolher uma outra "
3811
"uma <em>Tabela</em> ou uma <em>Imagem</em>. Favor escolher uma outra "
4120
"categoria.</qt>"
3812
"categoria.</qt>"
4121
3813
4122
#: collectionfieldsdialog.cpp:925
3814
#: collectionfieldsdialog.cpp:921
4123
msgid ""
3815
msgid ""
4124
"A field's title may not be the same as an existing category. Please enter a "
3816
"A field's title may not be the same as an existing category. Please enter a "
4125
"different title."
3817
"different title."
Lines 4127-4147 msgstr "" Link Here
4127
"O nome de um campo não deve ser o mesmo que o de uma categoria existente. "
3819
"O nome de um campo não deve ser o mesmo que o de uma categoria existente. "
4128
"Por favor insera um outro nome."
3820
"Por favor insera um outro nome."
4129
3821
4130
#: collectionfieldsdialog.cpp:937
3822
#: collectionfieldsdialog.cpp:933
4131
msgid ""
3823
msgid ""
4132
"The range for a rating field must be between 1 and 10, and the lower bound "
3824
"The range for a rating field must be between 1 and 10, and the lower bound "
4133
"must be less than the higher bound. Please enter different low and high "
3825
"must be less than the higher bound. Please enter different low and high "
4134
"properties."
3826
"properties."
4135
msgstr ""
3827
msgstr ""
4136
"A faixa para uma classificação tem que ser de 1 até 10, e o limite "
3828
"A faixa para uma classificação tem que ser de 1 até 10, e o limite inferior "
4137
"inferior deve ser menor que o limite superior. Por favor entre com novos "
3829
"deve ser menor que o limite superior. Por favor entre com novos limites."
4138
"limites."
4139
3830
4140
#: collectionfieldsdialog.cpp:952
3831
#: collectionfieldsdialog.cpp:948
4141
msgid "Tables are limited to a maximum of ten columns."
3832
msgid "Tables are limited to a maximum of ten columns."
4142
msgstr "Tabelas são limitadas a um máximo de dez colunas."
3833
msgstr "Tabelas são limitadas a um máximo de dez colunas."
4143
3834
4144
#: document.cpp:158
3835
#: document.cpp:155
4145
msgid ""
3836
msgid ""
4146
"The current file has been modified.\n"
3837
"The current file has been modified.\n"
4147
"Do you want to save it?"
3838
"Do you want to save it?"
Lines 4149-4155 msgstr "" Link Here
4149
"O arquivo atual foi modificado.\n"
3840
"O arquivo atual foi modificado.\n"
4150
"Deseja salvá-lo?"
3841
"Deseja salvá-lo?"
4151
3842
4152
#: document.cpp:160 entryeditdialog.cpp:660
3843
#: document.cpp:157 entryeditdialog.cpp:634
4153
msgid "Unsaved Changes"
3844
msgid "Unsaved Changes"
4154
msgstr "Alterações não salvas"
3845
msgstr "Alterações não salvas"
4155
3846
Lines 4157-4270 msgstr "Alterações não salvas" Link Here
4157
msgid "Select Borrower"
3848
msgid "Select Borrower"
4158
msgstr "Selecione a pessoa que pegou o item emprestado"
3849
msgstr "Selecione a pessoa que pegou o item emprestado"
4159
3850
4160
#: configdialog.cpp:103
3851
#: configdialog.cpp:100
4161
msgid "Configure Tellico"
3852
msgid "Configure Tellico"
4162
msgstr "Configurar Tellico"
3853
msgstr "Configurar Tellico"
4163
3854
4164
#: configdialog.cpp:198
3855
#: configdialog.cpp:192
4165
msgid "General Options"
3856
msgid "General Options"
4166
msgstr "Opções Gerais"
3857
msgstr "Opções Gerais"
4167
3858
4168
#: configdialog.cpp:201
3859
#: configdialog.cpp:195
3860
msgid "&Include images in data file"
3861
msgstr "&Incluir imagens no arquivo de dados"
3862
3863
#: configdialog.cpp:196
3864
msgid ""
3865
"If checked, all images will be included in the data file, rather than saved "
3866
"separately in the Tellico data directory. Saving a lot of images in the data "
3867
"file cause Tellico to run more slowly."
3868
msgstr ""
3869
"Se marcado, todas as imagens vão ser incluídas no arquivo de dados, ao invés "
3870
"de salvas separadamente no diretório de dados do Tellico. Salvar muitas "
3871
"imagens no arquivo de dados pode levar o Tellico a ficar mais lento."
3872
3873
#: configdialog.cpp:203
4169
msgid "&Reopen file at startup"
3874
msgid "&Reopen file at startup"
4170
msgstr "&Reabrir o arquivo ao iniciar"
3875
msgstr "&Reabrir o arquivo ao iniciar"
4171
3876
4172
#: configdialog.cpp:202
3877
#: configdialog.cpp:204
4173
msgid ""
3878
msgid ""
4174
"If checked, the file that was last open will be re-opened at program "
3879
"If checked, the file that was last open will be re-opened at program start-"
4175
"start-up."
3880
"up."
4176
msgstr ""
3881
msgstr ""
4177
"Se selecionado, o último arquivo aberto será reaberto na próxima "
3882
"Se selecionado, o último arquivo aberto será reaberto na próxima "
4178
"inicialização do programa."
3883
"inicialização do programa."
4179
3884
4180
#: configdialog.cpp:207
3885
#: configdialog.cpp:209
4181
msgid "&Show \"Tip of the Day\" at startup"
3886
msgid "&Show \"Tip of the Day\" at startup"
4182
msgstr "&Mostrar \"Dicas do Dia\" ao iniciar"
3887
msgstr "&Mostrar \"Dicas do Dia\" ao iniciar"
4183
3888
4184
#: configdialog.cpp:208
3889
#: configdialog.cpp:210
4185
msgid "If checked, the \"Tip of the Day\" will be shown at program start-up."
3890
msgid "If checked, the \"Tip of the Day\" will be shown at program start-up."
4186
msgstr ""
3891
msgstr "Se selecionado, as '\"Dicas do Dia\" serão mostradas ao iniciar o programa."
4187
"Se selecionado, as '\"Dicas do Dia\" serão mostradas ao iniciar o programa."
4188
4189
#: configdialog.cpp:213
4190
#, fuzzy
4191
msgid "Image Storage Options"
4192
msgstr "Opções das Imagens"
4193
4194
#: configdialog.cpp:214
4195
#, fuzzy
4196
msgid "Store images in data file"
4197
msgstr "&Incluir imagens no arquivo de dados"
4198
4199
#: configdialog.cpp:215
4200
msgid "Store images in common application directory"
4201
msgstr ""
4202
4203
#: configdialog.cpp:216
4204
msgid "Store images in directory relative to data file"
4205
msgstr ""
4206
4207
#: configdialog.cpp:217
4208
msgid ""
4209
"Images may be saved in the data file itself, which can cause Tellico to run "
4210
"slowly, stored in the Tellico application directory, or stored in a "
4211
"directory in the same location as the data file."
4212
msgstr ""
4213
3892
4214
#: configdialog.cpp:224 configdialog.cpp:299
3893
#: configdialog.cpp:215 configdialog.cpp:290
4215
msgid "Formatting Options"
3894
msgid "Formatting Options"
4216
msgstr "Opções de formatação"
3895
msgstr "Opções de formatação"
4217
3896
4218
#: configdialog.cpp:227
3897
#: configdialog.cpp:218
4219
msgid "Auto capitalize &titles and names"
3898
msgid "Auto capitalize &titles and names"
4220
msgstr "Auto capitalizar &títulos e nomes"
3899
msgstr "Auto capitalizar &títulos e nomes"
4221
3900
4222
#: configdialog.cpp:228
3901
#: configdialog.cpp:219
4223
msgid "If checked, titles and names will be automatically capitalized."
3902
msgid "If checked, titles and names will be automatically capitalized."
4224
msgstr ""
3903
msgstr ""
4225
"Se selecionado, os títulos e os nomes serão automaticamente postos em "
3904
"Se selecionado, os títulos e os nomes serão automaticamente postos em "
4226
"maiúsculas."
3905
"maiúsculas."
4227
3906
4228
#: configdialog.cpp:232
3907
#: configdialog.cpp:223
4229
msgid "Auto &format titles and names"
3908
msgid "Auto &format titles and names"
4230
msgstr "&Formatação automática dos títulos e nomes"
3909
msgstr "&Formatação automática dos títulos e nomes"
4231
3910
4232
#: configdialog.cpp:233 configdialog.cpp:303
3911
#: configdialog.cpp:224 configdialog.cpp:294
4233
msgid "If checked, titles and names will be automatically formatted."
3912
msgid "If checked, titles and names will be automatically formatted."
4234
msgstr ""
3913
msgstr "Se selecionado, os títulos e os nomes serão automaticamente formatados."
4235
"Se selecionado, os títulos e os nomes serão automaticamente formatados."
4236
3914
4237
#: configdialog.cpp:240
3915
#: configdialog.cpp:231
4238
msgid "No capitali&zation:"
3916
msgid "No capitali&zation:"
4239
msgstr "Não capitali&zar"
3917
msgstr "Não capitali&zar:"
4240
3918
4241
#: configdialog.cpp:243
3919
#: configdialog.cpp:234
4242
msgid ""
3920
msgid ""
4243
"<qt>A list of words which should not be capitalized. Multiple values should "
3921
"<qt>A list of words which should not be capitalized. Multiple values should "
4244
"be separated by a semi-colon.</qt>"
3922
"be separated by a semi-colon.</qt>"
4245
msgstr ""
3923
msgstr ""
4246
"<qt>Uma lista de palavras que não devem ser capitalizadas. As palavras "
3924
"<qt>Uma lista de palavras que não devem ser capitalizadas. As palavras devem "
4247
"devem ser separadas por ponto e vírgula.</qt>"
3925
"ser separadas por ponto e vírgula.</qt>"
4248
3926
4249
#: configdialog.cpp:249
3927
#: configdialog.cpp:240
4250
msgid "Artic&les:"
3928
msgid "Artic&les:"
4251
msgstr "Arti&gos:"
3929
msgstr "Arti&gos:"
4252
3930
4253
#: configdialog.cpp:252
3931
#: configdialog.cpp:243
4254
msgid ""
3932
msgid ""
4255
"<qt>A list of words which should be considered as articles if they are the "
3933
"<qt>A list of words which should be considered as articles if they are the "
4256
"first word in a title. Multiple values should be separated by a "
3934
"first word in a title. Multiple values should be separated by a semi-colon.</"
4257
"semi-colon.</qt>"
3935
"qt>"
4258
msgstr ""
3936
msgstr ""
4259
"<qt>Uma lista de palavras que devem ser consideradas como artigos se forem a "
3937
"<qt>Uma lista de palavras que devem ser consideradas como artigos se forem a "
4260
"primeira palavra em um título. As palavras devem ser separadas por ponto e "
3938
"primeira palavra em um título. As palavras devem ser separadas por ponto e "
4261
"vírgula.</qt>"
3939
"vírgula.</qt>"
4262
3940
4263
#: configdialog.cpp:259
3941
#: configdialog.cpp:250
4264
msgid "Personal suffi&xes:"
3942
msgid "Personal suffi&xes:"
4265
msgstr "Sufi&xos pessoais:"
3943
msgstr "Sufi&xos pessoais:"
4266
3944
4267
#: configdialog.cpp:262
3945
#: configdialog.cpp:253
4268
msgid ""
3946
msgid ""
4269
"<qt>A list of suffixes which might be used in personal names. Multiple "
3947
"<qt>A list of suffixes which might be used in personal names. Multiple "
4270
"values should be separated by a semi-colon.</qt>"
3948
"values should be separated by a semi-colon.</qt>"
Lines 4272-4282 msgstr "" Link Here
4272
"<qt>Uma lista de sufixos que podem ser utilizados nos nomes de pessoas. Os "
3950
"<qt>Uma lista de sufixos que podem ser utilizados nos nomes de pessoas. Os "
4273
"sufixos devem ser separados por um ponto e vírgula.</qt>"
3951
"sufixos devem ser separados por um ponto e vírgula.</qt>"
4274
3952
4275
#: configdialog.cpp:268
3953
#: configdialog.cpp:259
4276
msgid "Surname &prefixes:"
3954
msgid "Surname &prefixes:"
4277
msgstr "&Prefixos de sobrenomes:"
3955
msgstr "&Prefixos de sobrenomes:"
4278
3956
4279
#: configdialog.cpp:271
3957
#: configdialog.cpp:262
4280
msgid ""
3958
msgid ""
4281
"<qt>A list of prefixes which might be used in surnames. Multiple values "
3959
"<qt>A list of prefixes which might be used in surnames. Multiple values "
4282
"should be separated by a semi-colon.</qt>"
3960
"should be separated by a semi-colon.</qt>"
Lines 4284-4352 msgstr "" Link Here
4284
"<qt>Uma lista de prefixos que podem ser utilizados em sobrenomes. Os "
3962
"<qt>Uma lista de prefixos que podem ser utilizados em sobrenomes. Os "
4285
"prefixos devem ser separados por um ponto e vírgula.</qt>"
3963
"prefixos devem ser separados por um ponto e vírgula.</qt>"
4286
3964
4287
#: configdialog.cpp:296
3965
#: configdialog.cpp:287
4288
msgid "Printing"
3966
msgid "Printing"
4289
msgstr "Impressão"
3967
msgstr "Impressão"
4290
3968
4291
#: configdialog.cpp:296
3969
#: configdialog.cpp:287
4292
msgid "Printing Options"
3970
msgid "Printing Options"
4293
msgstr "Opções de Impressão"
3971
msgstr "Opções de Impressão"
4294
3972
4295
#: configdialog.cpp:302
3973
#: configdialog.cpp:293
4296
msgid "&Format titles and names"
3974
msgid "&Format titles and names"
4297
msgstr "&Formatação dos títulos e nomes"
3975
msgstr "&Formatação dos títulos e nomes"
4298
3976
4299
#: configdialog.cpp:306
3977
#: configdialog.cpp:297
4300
msgid "&Print field headers"
3978
msgid "&Print field headers"
4301
msgstr "Im&primir cabeçalhos dos campos"
3979
msgstr "Im&primir cabeçalhos dos campos"
4302
3980
4303
#: configdialog.cpp:310
3981
#: configdialog.cpp:301
4304
msgid "Grouping Options"
3982
msgid "Grouping Options"
4305
msgstr "Opções de agrupamento"
3983
msgstr "Opções de agrupamento"
4306
3984
4307
#: configdialog.cpp:313
3985
#: configdialog.cpp:304
4308
msgid "&Group the entries"
3986
msgid "&Group the entries"
4309
msgstr "A&grupar os registros"
3987
msgstr "A&grupar os registros"
4310
3988
4311
#: configdialog.cpp:317
3989
#: configdialog.cpp:308
4312
msgid "Image Options"
3990
msgid "Image Options"
4313
msgstr "Opções das Imagens"
3991
msgstr "Opções das Imagens"
4314
3992
4315
#: configdialog.cpp:323
3993
#: configdialog.cpp:314
4316
msgid "Maximum image &width:"
3994
msgid "Maximum image &width:"
4317
msgstr "&Largura máxima da imagem:"
3995
msgstr "&Largura máxima da imagem:"
4318
3996
4319
#: configdialog.cpp:328
3997
#: configdialog.cpp:319
4320
msgid ""
3998
msgid ""
4321
"The maximum width of the images in the printout. The aspect ration is "
3999
"The maximum width of the images in the printout. The aspect ration is "
4322
"preserved."
4000
"preserved."
4323
msgstr ""
4001
msgstr "Largura máxima das imagens na impressão. As proporções são conservadas."
4324
"Largura máxima das imagens na impressão. As proporções são conservadas."
4325
4002
4326
#: configdialog.cpp:336
4003
#: configdialog.cpp:327
4327
msgid "&Maximum image height:"
4004
msgid "&Maximum image height:"
4328
msgstr "Altura &máxima da imagem:"
4005
msgstr "Altura &máxima da imagem:"
4329
4006
4330
#: configdialog.cpp:341
4007
#: configdialog.cpp:332
4331
msgid ""
4008
msgid ""
4332
"The maximum height of the images in the printout. The aspect ration is "
4009
"The maximum height of the images in the printout. The aspect ration is "
4333
"preserved."
4010
"preserved."
4334
msgstr ""
4011
msgstr "Altura máxima da imagem na impressão. As proporções são conservadas."
4335
"Altura máxima da imagem na impressão. As proporções são conservadas."
4336
4012
4337
#: configdialog.cpp:355
4013
#: configdialog.cpp:346
4338
msgid "Templates"
4014
msgid "Templates"
4339
msgstr "Modelos"
4015
msgstr "Modelos"
4340
4016
4341
#: configdialog.cpp:355
4017
#: configdialog.cpp:346
4342
msgid "Template Options"
4018
msgid "Template Options"
4343
msgstr "Opções do Modelo"
4019
msgstr "Opções do Modelo"
4344
4020
4345
#: configdialog.cpp:369
4021
#: configdialog.cpp:360
4346
msgid "Template:"
4022
msgid "Template:"
4347
msgstr "Modelo:"
4023
msgstr "Modelo:"
4348
4024
4349
#: configdialog.cpp:373
4025
#: configdialog.cpp:364
4350
msgid ""
4026
msgid ""
4351
"Select the template to use for the current type of collections. Not all "
4027
"Select the template to use for the current type of collections. Not all "
4352
"templates will use the font and color settings."
4028
"templates will use the font and color settings."
Lines 4354-4452 msgstr "" Link Here
4354
"Selecione o modelo a ser utilizado para o tipo de coleção selecionado. Nem "
4030
"Selecione o modelo a ser utilizado para o tipo de coleção selecionado. Nem "
4355
"todos os modelos permitem a alteração do tipo e cor da fonte."
4031
"todos os modelos permitem a alteração do tipo e cor da fonte."
4356
4032
4357
#: configdialog.cpp:380
4033
#: configdialog.cpp:371
4358
msgid "&Preview..."
4034
msgid "&Preview..."
4359
msgstr "&Pré-visualização..."
4035
msgstr "&Pré-visualização..."
4360
4036
4361
#: configdialog.cpp:381
4037
#: configdialog.cpp:372
4362
msgid "Show a preview of the template"
4038
msgid "Show a preview of the template"
4363
msgstr "Apresenta uma amostra do modelo"
4039
msgstr "Apresenta uma amostra do modelo"
4364
4040
4365
#: configdialog.cpp:398
4041
#: configdialog.cpp:389
4366
msgid "Font Options"
4042
msgid "Font Options"
4367
msgstr "Opções de Fonte"
4043
msgstr "Opções de Fonte"
4368
4044
4369
#: configdialog.cpp:405
4045
#: configdialog.cpp:396
4370
msgid "Font:"
4046
msgid "Font:"
4371
msgstr "Fonte:"
4047
msgstr "Fonte:"
4372
4048
4373
#: configdialog.cpp:411
4049
#: configdialog.cpp:402
4374
msgid "This font is passed to the template used in the Entry View."
4050
msgid "This font is passed to the template used in the Entry View."
4375
msgstr "Esta fonte é utilizada no modelo usado na Visão de Registros"
4051
msgstr "Esta fonte é utilizada no modelo usado na Visão de Registros."
4376
4052
4377
#: configdialog.cpp:415
4053
#: configdialog.cpp:406
4378
msgid "Size:"
4054
msgid "Size:"
4379
msgstr "Tamanho:"
4055
msgstr "Tamanho:"
4380
4056
4381
#: configdialog.cpp:425
4057
#: configdialog.cpp:416
4382
msgid "Color Options"
4058
msgid "Color Options"
4383
msgstr "Opções de Cor"
4059
msgstr "Opções de Cor"
4384
4060
4385
#: configdialog.cpp:432
4061
#: configdialog.cpp:423
4386
msgid "Background color:"
4062
msgid "Background color:"
4387
msgstr "Cor de fundo:"
4063
msgstr "Cor de fundo:"
4388
4064
4389
#: configdialog.cpp:438
4065
#: configdialog.cpp:429
4390
msgid "This color is passed to the template used in the Entry View."
4066
msgid "This color is passed to the template used in the Entry View."
4391
msgstr "Esta cor é utilizada no modelo usado na Visão de Registro"
4067
msgstr "Esta cor é utilizada no modelo usado na Visão de Registro."
4392
4068
4393
#: configdialog.cpp:442
4069
#: configdialog.cpp:433
4394
msgid "Text color:"
4070
msgid "Text color:"
4395
msgstr "Cor do texto:"
4071
msgstr "Cor do texto:"
4396
4072
4397
#: configdialog.cpp:451
4073
#: configdialog.cpp:442
4398
msgid "Highlight color:"
4074
msgid "Highlight color:"
4399
msgstr "Cor do destaque:"
4075
msgstr "Cor do destaque:"
4400
4076
4401
#: configdialog.cpp:460
4077
#: configdialog.cpp:451
4402
msgid "Highlighted text color:"
4078
msgid "Highlighted text color:"
4403
msgstr "Cor do texto em destaque:"
4079
msgstr "Cor do texto em destaque:"
4404
4080
4405
#: configdialog.cpp:469
4081
#: configdialog.cpp:460
4406
msgid "Manage Templates"
4082
msgid "Manage Templates"
4407
msgstr "Gerenciamento de Modelos"
4083
msgstr "Gerenciamento de Modelos"
4408
4084
4409
#: configdialog.cpp:475
4085
#: configdialog.cpp:466
4410
msgid "Install..."
4086
msgid "Install..."
4411
msgstr "Instalar..."
4087
msgstr "Instalar..."
4412
4088
4413
#: configdialog.cpp:478
4089
#: configdialog.cpp:469
4414
msgid "Click to install a new template directly."
4090
msgid "Click to install a new template directly."
4415
msgstr "Clique para instalar um modelo diretamente"
4091
msgstr "Clique para instalar um modelo diretamente."
4416
4092
4417
#: configdialog.cpp:481 configdialog.cpp:537
4093
#: configdialog.cpp:472 configdialog.cpp:528
4418
msgid "Download..."
4094
msgid "Download..."
4419
msgstr "Baixar..."
4095
msgstr "Baixar..."
4420
4096
4421
#: configdialog.cpp:484
4097
#: configdialog.cpp:475
4422
msgid "Click to download additional templates via the Internet."
4098
msgid "Click to download additional templates via the Internet."
4423
msgstr "Clique para baixar modelos adicionais da internet"
4099
msgstr "Clique para baixar modelos adicionais da internet."
4424
4100
4425
#: configdialog.cpp:487
4101
#: configdialog.cpp:478
4426
msgid "Delete..."
4102
msgid "Delete..."
4427
msgstr "Deletar..."
4103
msgstr "Deletar..."
4428
4104
4429
#: configdialog.cpp:490
4105
#: configdialog.cpp:481
4430
msgid "Click to select and remove installed templates."
4106
msgid "Click to select and remove installed templates."
4431
msgstr "Clique para selecionar e remover modelos instalados"
4107
msgstr "Clique para selecionar e remover modelos instalados."
4432
4108
4433
#: configdialog.cpp:501
4109
#: configdialog.cpp:492
4434
msgid "Data Sources"
4110
msgid "Data Sources"
4435
msgstr "Fontes de Dados"
4111
msgstr "Fontes de Dados"
4436
4112
4437
#: configdialog.cpp:501
4113
#: configdialog.cpp:492
4438
msgid "Data Source Options"
4114
msgid "Data Source Options"
4439
msgstr "Opções da Fonte de Dados"
4115
msgstr "Opções da Fonte de Dados"
4440
4116
4441
#: configdialog.cpp:506 fetchdialog.cpp:171
4117
#: configdialog.cpp:497 fetchdialog.cpp:161
4442
msgid "Source"
4118
msgid "Source"
4443
msgstr "Fonte"
4119
msgstr "Fonte"
4444
4120
4445
#: configdialog.cpp:517
4121
#: configdialog.cpp:508
4446
msgid "Move &Up"
4122
msgid "Move &Up"
4447
msgstr "Mover para &Cima"
4123
msgstr "Mover para &Cima"
4448
4124
4449
#: configdialog.cpp:519 configdialog.cpp:523
4125
#: configdialog.cpp:510 configdialog.cpp:514
4450
msgid ""
4126
msgid ""
4451
"The order of the data sources sets the order that Tellico uses when entries "
4127
"The order of the data sources sets the order that Tellico uses when entries "
4452
"are automatically updated."
4128
"are automatically updated."
Lines 4454-4498 msgstr "" Link Here
4454
"A ordem das fontes de dados define a ordem que o Tellico usa quando as "
4130
"A ordem das fontes de dados define a ordem que o Tellico usa quando as "
4455
"entradas são automaticamente atualizadas."
4131
"entradas são automaticamente atualizadas."
4456
4132
4457
#: configdialog.cpp:521
4133
#: configdialog.cpp:512
4458
msgid "Move &Down"
4134
msgid "Move &Down"
4459
msgstr "Mover para &Baixo"
4135
msgstr "Mover para &Baixo"
4460
4136
4461
#: configdialog.cpp:528
4137
#: configdialog.cpp:519
4462
msgid "&New..."
4138
msgid "&New..."
4463
msgstr "&Novo..."
4139
msgstr "&Novo..."
4464
4140
4465
#: configdialog.cpp:530
4141
#: configdialog.cpp:521
4466
msgid "Click to add a new data source."
4142
msgid "Click to add a new data source."
4467
msgstr "Clique para adicionar uma nova fonte de dados"
4143
msgstr "Clique para adicionar uma nova fonte de dados."
4468
4144
4469
#: configdialog.cpp:531
4145
#: configdialog.cpp:522
4470
msgid "&Modify..."
4146
msgid "&Modify..."
4471
msgstr "&Modificar..."
4147
msgstr "&Modificar..."
4472
4148
4473
#: configdialog.cpp:533
4149
#: configdialog.cpp:524
4474
msgid "Click to modify the selected data source."
4150
msgid "Click to modify the selected data source."
4475
msgstr "Clique para modificar a fonte de dados selecionada"
4151
msgstr "Clique para modificar a fonte de dados selecionada."
4476
4152
4477
#: configdialog.cpp:536
4153
#: configdialog.cpp:527
4478
msgid "Click to delete the selected data source."
4154
msgid "Click to delete the selected data source."
4479
msgstr "Clique para apagar a fonte de dados selecionada"
4155
msgstr "Clique para apagar a fonte de dados selecionada."
4480
4156
4481
#: configdialog.cpp:539
4157
#: configdialog.cpp:530
4482
msgid "Click to download additional data sources via the Internet."
4158
msgid "Click to download additional data sources via the Internet."
4483
msgstr "Clique para baixar fontes de dados adicionais da internet."
4159
msgstr "Clique para baixar fontes de dados adicionais da internet."
4484
4160
4485
#: configdialog.cpp:1016
4161
#: configdialog.cpp:991
4486
msgid "*.tar.gz *.tgz|Template Packages (*.tar.gz)"
4162
msgid "*.tar.gz *.tgz|Template Packages (*.tar.gz)"
4487
msgstr "*.tar.gz *.tgz|Pacotes de Modelos (*.tar.gz)"
4163
msgstr "*.tar.gz *.tgz|Pacotes de Modelos (*.tar.gz)"
4488
4164
4489
#: configdialog.cpp:1049
4165
#: configdialog.cpp:1024
4490
msgid "Delete Template"
4166
msgid "Delete Template"
4491
msgstr "Apaga Modelo"
4167
msgstr "Apaga Modelo"
4492
4168
4493
#: configdialog.cpp:1050
4169
#: configdialog.cpp:1025
4494
msgid "Select template to delete:"
4170
msgid "Select template to delete:"
4495
msgstr "Seleciona modelo a ser apagado"
4171
msgstr "Selecione o modelo a ser apagado:"
4496
4172
4497
#: loanview.cpp:33 loanview.cpp:91 xslt.cpp:26
4173
#: loanview.cpp:33 loanview.cpp:91 xslt.cpp:26
4498
msgid "Borrower"
4174
msgid "Borrower"
Lines 4504-4572 msgstr "Registro de entrada" Link Here
4504
4180
4505
#: loanview.cpp:76
4181
#: loanview.cpp:76
4506
msgid "Modify Loan..."
4182
msgid "Modify Loan..."
4507
msgstr "&Modificar empréstimo..."
4183
msgstr "Modificar Empréstimo..."
4508
4184
4509
#: loanview.cpp:93
4185
#: loanview.cpp:93
4510
msgid "Borrower (Sort by Count)"
4186
msgid "Borrower (Sort by Count)"
4511
msgstr "Pessoa que pegou emprestado (Classificar por Contagem)"
4187
msgstr "Pessoa que pegou emprestado (Classificar por Contagem)"
4512
4188
4513
#: collectionfactory.cpp:81
4189
#: collectionfactory.cpp:77
4514
msgid "My Collection"
4190
msgid "My Collection"
4515
msgstr "Minha Coleção"
4191
msgstr "Minha Coleção"
4516
4192
4517
#: collectionfactory.cpp:124
4193
#: collectionfactory.cpp:118
4518
msgid "Book Collection"
4194
msgid "Book Collection"
4519
msgstr "Coleção de Livros"
4195
msgstr "Coleção de Livros"
4520
4196
4521
#: collectionfactory.cpp:126
4197
#: collectionfactory.cpp:120
4522
msgid "Comic Book Collection"
4198
msgid "Comic Book Collection"
4523
msgstr "Coleção de Revistas em Quadrinhos"
4199
msgstr "Coleção de Revistas em Quadrinhos"
4524
4200
4525
#: collectionfactory.cpp:127
4201
#: collectionfactory.cpp:121
4526
msgid "Video Collection"
4202
msgid "Video Collection"
4527
msgstr "Coleção de Vídeos"
4203
msgstr "Coleção de Vídeos"
4528
4204
4529
#: collectionfactory.cpp:128
4205
#: collectionfactory.cpp:122
4530
msgid "Music Collection"
4206
msgid "Music Collection"
4531
msgstr "Coleção de Músicas"
4207
msgstr "Coleção de Músicas"
4532
4208
4533
#: collectionfactory.cpp:129
4209
#: collectionfactory.cpp:123
4534
msgid "Coin Collection"
4210
msgid "Coin Collection"
4535
msgstr "Coleção de Moedas"
4211
msgstr "Coleção de Moedas"
4536
4212
4537
#: collectionfactory.cpp:130
4213
#: collectionfactory.cpp:124
4538
msgid "Stamp Collection"
4214
msgid "Stamp Collection"
4539
msgstr "Coleção de Selos"
4215
msgstr "Coleção de Selos"
4540
4216
4541
#: collectionfactory.cpp:131
4217
#: collectionfactory.cpp:125
4542
msgid "Wine Collection"
4218
msgid "Wine Collection"
4543
msgstr "Coleção de Vinhos"
4219
msgstr "Coleção de Vinhos"
4544
4220
4545
#: collectionfactory.cpp:132
4221
#: collectionfactory.cpp:126
4546
msgid "Card Collection"
4222
msgid "Card Collection"
4547
msgstr "Coleção de Cartões"
4223
msgstr "Coleção de Cartões"
4548
4224
4549
#: collectionfactory.cpp:133
4225
#: collectionfactory.cpp:127
4550
msgid "Game Collection"
4226
msgid "Game Collection"
4551
msgstr "Coleção de Jogos"
4227
msgstr "Coleção de Jogos"
4552
4228
4553
#: collectionfactory.cpp:134
4229
#: collectionfactory.cpp:128
4554
msgid "File Catalog"
4230
msgid "File Catalog"
4555
msgstr "Catálogo de Arquivos"
4231
msgstr "Catálogo de Arquivos"
4556
4232
4557
#: collectionfactory.cpp:135
4233
#: collectionfactory.cpp:129
4558
#, fuzzy
4559
msgid "Board Game Collection"
4560
msgstr "Coleção de Jogos"
4561
4562
#: collectionfactory.cpp:136
4563
msgid "Custom Collection"
4234
msgid "Custom Collection"
4564
msgstr "Coleção Personalizada"
4235
msgstr "Coleção Personalizada"
4565
4236
4566
#: viewstack.cpp:29
4237
#: viewstack.cpp:29
4567
msgid ""
4238
msgid ""
4568
"<qt>The <i>Entry View</i> shows a formatted view of the entry's "
4239
"<qt>The <i>Entry View</i> shows a formatted view of the entry's contents.</"
4569
"contents.</qt>"
4240
"qt>"
4570
msgstr ""
4241
msgstr ""
4571
"<qt>A <i>Visão de Registros</i> mostra uma visão formatada do conteúdo do "
4242
"<qt>A <i>Visão de Registros</i> mostra uma visão formatada do conteúdo do "
4572
"registro.</qt>"
4243
"registro.</qt>"
Lines 4624-4704 msgid "Encode in user locale (%1)" Link Here
4624
msgstr "Codificar na localização do usuário (%1)"
4295
msgstr "Codificar na localização do usuário (%1)"
4625
4296
4626
#: exportdialog.cpp:72
4297
#: exportdialog.cpp:72
4627
#, fuzzy
4298
msgid "Encode the exported file in the local format."
4628
msgid "Encode the exported file in the local encoding."
4629
msgstr "Codifica o arquivo exportado no formato local."
4299
msgstr "Codifica o arquivo exportado no formato local."
4630
4300
4631
#: fetchdialog.cpp:65
4301
#: fetchdialog.cpp:59
4632
msgid "&Search"
4302
msgid "&Search"
4633
msgstr "&Procurar"
4303
msgstr "&Procurar"
4634
4304
4635
#: fetchdialog.cpp:66
4305
#: fetchdialog.cpp:60
4636
msgid "&Stop"
4306
msgid "&Stop"
4637
msgstr "&Interromper"
4307
msgstr "&Interromper"
4638
4308
4639
#: fetchdialog.cpp:86
4309
#: fetchdialog.cpp:78
4640
msgid "Internet Search"
4310
msgid "Internet Search"
4641
msgstr "Pesquisa na Internet"
4311
msgstr "Pesquisa na Internet"
4642
4312
4643
#: fetchdialog.cpp:94
4313
#: fetchdialog.cpp:84
4644
msgid "Search Query"
4314
msgid "Search Query"
4645
msgstr "Parâmetros da Pesquisa"
4315
msgstr "Parâmetros da Pesquisa"
4646
4316
4647
#: fetchdialog.cpp:100
4317
#: fetchdialog.cpp:90
4648
msgid ""
4318
msgid ""
4649
"_: Start the search\n"
4319
"_: Start the search\n"
4650
"S&earch:"
4320
"S&earch:"
4651
msgstr "P&esquisa:"
4321
msgstr "P&esquisa:"
4652
4322
4653
#: fetchdialog.cpp:104
4323
#: fetchdialog.cpp:94
4654
msgid "Enter a search value. An ISBN search must include the full ISBN."
4324
msgid "Enter a search value. An ISBN search must include the full ISBN."
4655
msgstr ""
4325
msgstr ""
4656
"Forneça um valor de procura. Uma pesquisa por ISBN deve incluir o número "
4326
"Forneça um valor de procura. Uma pesquisa por ISBN deve incluir o número "
4657
"ISBN completo."
4327
"ISBN completo."
4658
4328
4659
#: fetchdialog.cpp:111
4329
#: fetchdialog.cpp:101
4660
msgid "Choose the type of search"
4330
msgid "Choose the type of search"
4661
msgstr "Escolha o tipo de pesquisa"
4331
msgstr "Escolha o tipo de pesquisa"
4662
4332
4663
#: fetchdialog.cpp:117
4333
#: fetchdialog.cpp:107
4664
msgid "Click to start or stop the search"
4334
msgid "Click to start or stop the search"
4665
msgstr "Clique para iniciar ou interromper a pesquisa"
4335
msgstr "Clique para iniciar ou interromper a pesquisa"
4666
4336
4667
#: fetchdialog.cpp:134
4337
#: fetchdialog.cpp:124
4668
msgid "&Multiple ISBN/UPC search"
4338
msgid "&Multiple ISBN/UPC search"
4669
msgstr "Pesquisa &múltiplos ISBN/UPC"
4339
msgstr "Pesquisa &múltiplos ISBN/UPC"
4670
4340
4671
#: fetchdialog.cpp:135
4341
#: fetchdialog.cpp:125
4672
msgid "Check this box to search for multiple ISBN or UPC values."
4342
msgid "Check this box to search for multiple ISBN or UPC values."
4673
msgstr "Assinale este marcador para pesquisar vários valores ISBN ou UPC."
4343
msgstr "Assinale este marcador para pesquisar vários valores ISBN ou UPC."
4674
4344
4675
#: fetchdialog.cpp:138
4345
#: fetchdialog.cpp:128
4676
msgid "Edit List..."
4346
msgid "Edit List..."
4677
msgstr "Editar Lista..."
4347
msgstr "Editar Lista..."
4678
4348
4679
#: fetchdialog.cpp:140
4349
#: fetchdialog.cpp:130
4680
msgid ""
4350
msgid "Click to open a text edit box for entering or editing multiple ISBN values."
4681
"Click to open a text edit box for entering or editing multiple ISBN values."
4682
msgstr "Clique para inserir ou editar os múltiplos ISBN a serem pesquisados."
4351
msgstr "Clique para inserir ou editar os múltiplos ISBN a serem pesquisados."
4683
4352
4684
#: fetchdialog.cpp:146
4353
#: fetchdialog.cpp:136
4685
msgid "Search s&ource:"
4354
msgid "Search s&ource:"
4686
msgstr "Procurar f&onte:"
4355
msgstr "Procurar f&onte:"
4687
4356
4688
#: fetchdialog.cpp:154
4357
#: fetchdialog.cpp:144
4689
msgid "Select the database to search"
4358
msgid "Select the database to search"
4690
msgstr "Escolha a base de dados a pesquisar"
4359
msgstr "Escolha a base de dados a pesquisar"
4691
4360
4692
#: fetchdialog.cpp:177
4361
#: fetchdialog.cpp:166
4693
msgid ""
4362
msgid ""
4694
"As results are found, they are added to this list. Selecting one will fetch "
4363
"As results are found, they are added to this list. Selecting one will fetch "
4695
"the complete entry and show it in the view below."
4364
"the complete entry and show it in the view below."
4696
msgstr ""
4365
msgstr ""
4697
"À medida em que os resultados são encontrados, eles são adicionados a "
4366
"À medida em que os resultados são encontrados, eles são adicionados a esta "
4698
"esta lista. Ao selecionar um deles a informação completa do registro será "
4367
"lista. Ao selecionar um deles a informação completa do registro será "
4699
"descarregada e mostrada na lista abaixo."
4368
"descarregada e mostrada na lista abaixo."
4700
4369
4701
#: fetchdialog.cpp:185
4370
#: fetchdialog.cpp:174
4702
msgid ""
4371
msgid ""
4703
"An entry may be shown here before adding it to the current collection by "
4372
"An entry may be shown here before adding it to the current collection by "
4704
"selecting it in the list above"
4373
"selecting it in the list above"
Lines 4706-4744 msgstr "" Link Here
4706
"Um registro pode ser mostrado aqui antes de ser adicionado à coleção, "
4375
"Um registro pode ser mostrado aqui antes de ser adicionado à coleção, "
4707
"bastando selecioná-lo na lista abaixo"
4376
"bastando selecioná-lo na lista abaixo"
4708
4377
4709
#: fetchdialog.cpp:192
4378
#: fetchdialog.cpp:181
4710
msgid "&Add Entry"
4379
msgid "&Add Entry"
4711
msgstr "&Adicionar registro"
4380
msgstr "&Adicionar registro"
4712
4381
4713
#: fetchdialog.cpp:196
4382
#: fetchdialog.cpp:185
4714
msgid "Add the selected entry to the current collection"
4383
msgid "Add the selected entry to the current collection"
4715
msgstr "Adicionar o registro selecionado à coleção atual"
4384
msgstr "Adicionar o registro selecionado à coleção atual"
4716
4385
4717
#: fetchdialog.cpp:198
4386
#: fetchdialog.cpp:187
4718
msgid "Get More Results"
4387
msgid "Get More Results"
4719
msgstr "Obter mais resultados"
4388
msgstr "Obter mais resultados"
4720
4389
4721
#: fetchdialog.cpp:201
4390
#: fetchdialog.cpp:190
4722
msgid "Fetch more results from the current data source"
4391
msgid "Fetch more results from the current data source"
4723
msgstr "Obter mais resultados da fonte de dados atual"
4392
msgstr "Obter mais resultados da fonte de dados atual"
4724
4393
4725
#: fetchdialog.cpp:205
4394
#: fetchdialog.cpp:194
4726
msgid "Clear all search fields and results"
4395
msgid "Clear all search fields and results"
4727
msgstr "Apagar todos os campos e valores"
4396
msgstr "Apagar todos os campos e valores"
4728
4397
4729
#: fetchdialog.cpp:298
4398
#: fetchdialog.cpp:259
4730
msgid "Cancelling the search..."
4399
msgid "Cancelling the search..."
4731
msgstr "Cancelando a pesquisa..."
4400
msgstr "Cancelando a pesquisa..."
4732
4401
4733
#: fetchdialog.cpp:313 fetchdialog.cpp:472
4402
#: fetchdialog.cpp:274 fetchdialog.cpp:432
4734
msgid "Searching..."
4403
msgid "Searching..."
4735
msgstr "Pesquisando..."
4404
msgstr "Pesquisando..."
4736
4405
4737
#: fetchdialog.cpp:368
4406
#: fetchdialog.cpp:329
4738
msgid "The search returned no items."
4407
msgid "The search returned no items."
4739
msgstr "A pesquisa não retornou resultados."
4408
msgstr "A pesquisa não retornou resultados."
4740
4409
4741
#: fetchdialog.cpp:372
4410
#: fetchdialog.cpp:333
4742
#, c-format
4411
#, c-format
4743
msgid ""
4412
msgid ""
4744
"_n: The search returned 1 item.\n"
4413
"_n: The search returned 1 item.\n"
Lines 4747-4782 msgstr "" Link Here
4747
"A pesquisa retornou 1 item.\n"
4416
"A pesquisa retornou 1 item.\n"
4748
"A pesquisa retornou %n items."
4417
"A pesquisa retornou %n items."
4749
4418
4750
#: fetchdialog.cpp:412
4419
#: fetchdialog.cpp:370
4751
#, fuzzy
4420
msgid "<qt>No entries were found for the following ISBN values:</qt>"
4752
msgid "No results were found for the following ISBN values:"
4421
msgstr "<qt>Nenhuma entrada encontrada para os seguintes valores ISBN:</qt>"
4753
msgstr "<qt>Nenhuma entrada encontrada para os ISBN seguintes:</qt>"
4754
4422
4755
#: fetchdialog.cpp:443 fetchdialog.cpp:495
4423
#: fetchdialog.cpp:403 fetchdialog.cpp:455
4756
msgid "Fetching %1..."
4424
msgid "Fetching %1..."
4757
msgstr "Carregando %1..."
4425
msgstr "Carregando %1..."
4758
4426
4759
#: fetchdialog.cpp:528 fetchdialog.cpp:708
4427
#: fetchdialog.cpp:488
4760
msgid "No Internet sources are available for your current collection type."
4428
msgid "No Internet sources are available for your current collection type."
4761
msgstr "Não há fontes na Internet disponíveis para este tipo de coleção."
4429
msgstr "Não há fontes na Internet disponíveis para este tipo de coleção."
4762
4430
4763
#: fetchdialog.cpp:594
4431
#: fetchdialog.cpp:554
4764
msgid "Edit ISBN/UPC Values"
4432
msgid "Edit ISBN/UPC Values"
4765
msgstr "Editar os valores ISBN/UPC"
4433
msgstr "Editar os valores ISBN/UPC"
4766
4434
4767
#: fetchdialog.cpp:598
4435
#: fetchdialog.cpp:558
4768
msgid "<qt>Enter the ISBN or UPC values, one per line.</qt>"
4436
msgid "<qt>Enter the ISBN or UPC values, one per line.</qt>"
4769
msgstr "<qt>Insira os valores ISBN ou UPC, um por linha.</qt>"
4437
msgstr "<qt>Insira os valores ISBN ou UPC, um por linha.</qt>"
4770
4438
4771
#: fetchdialog.cpp:604
4439
#: fetchdialog.cpp:564
4772
msgid "&Load From File..."
4440
msgid "&Load From File..."
4773
msgstr "&Carregar de um arquivo..."
4441
msgstr "&Carregar de um arquivo..."
4774
4442
4775
#: fetchdialog.cpp:605
4443
#: fetchdialog.cpp:565
4776
msgid "<qt>Load the list from a text file.</qt>"
4444
msgid "<qt>Load the list from a text file.</qt>"
4777
msgstr "<qt>Carrega a lista de um arquivo texto.</qt>"
4445
msgstr "<qt>Carrega a lista de um arquivo texto.</qt>"
4778
4446
4779
#: fetchdialog.cpp:624
4447
#: fetchdialog.cpp:584
4780
msgid ""
4448
msgid ""
4781
"<qt>An ISBN search can contain a maximum of 100 ISBN values. Only the first "
4449
"<qt>An ISBN search can contain a maximum of 100 ISBN values. Only the first "
4782
"100 values in your list will be used.</qt>"
4450
"100 values in your list will be used.</qt>"
Lines 4784-4832 msgstr "" Link Here
4784
"<qt>Uma pesquisa ISBN pode conter um máximo de 100 valores ISBN. Apenas os "
4452
"<qt>Uma pesquisa ISBN pode conter um máximo de 100 valores ISBN. Apenas os "
4785
"100 primeiros serão utilizados.</qt>"
4453
"100 primeiros serão utilizados.</qt>"
4786
4454
4787
#: entryeditdialog.cpp:51 entryeditdialog.cpp:382 entryeditdialog.cpp:406
4455
#: entryeditdialog.cpp:50 entryeditdialog.cpp:357 entryeditdialog.cpp:381
4788
#: entryeditdialog.cpp:512
4456
#: entryeditdialog.cpp:485
4789
msgid "Edit Entry"
4457
msgid "Edit Entry"
4790
msgstr "Editar Registro"
4458
msgstr "Editar Registro"
4791
4459
4792
#: entryeditdialog.cpp:52
4460
#: entryeditdialog.cpp:51
4793
msgid "&New Entry"
4461
msgid "&New Entry"
4794
msgstr "&Novo Registro"
4462
msgstr "&Novo Registro"
4795
4463
4796
#: entryeditdialog.cpp:66 entryeditdialog.cpp:117 entryeditdialog.cpp:416
4464
#: entryeditdialog.cpp:64 entryeditdialog.cpp:115 entryeditdialog.cpp:391
4797
#: entryeditdialog.cpp:540
4465
#: entryeditdialog.cpp:514
4798
msgid "Sa&ve Entry"
4466
msgid "Sa&ve Entry"
4799
msgstr "Sal&var Registro"
4467
msgstr "Sal&var Registro"
4800
4468
4801
#: entryeditdialog.cpp:77
4469
#: entryeditdialog.cpp:75
4802
msgid "Go to the previous entry in the collection"
4470
msgid "Go to the previous entry in the collection"
4803
msgstr "Retorna ao registro anterior na coleção"
4471
msgstr "Retorna ao registro anterior na coleção"
4804
4472
4805
#: entryeditdialog.cpp:82
4473
#: entryeditdialog.cpp:80
4806
msgid "Go to the next entry in the collection"
4474
msgid "Go to the next entry in the collection"
4807
msgstr "Avança ao próximo registro na coleção"
4475
msgstr "Avança ao próximo registro na coleção"
4808
4476
4809
#: entryeditdialog.cpp:315
4477
#: entryeditdialog.cpp:313
4810
msgid "Do you really want to modify these entries?"
4478
msgid "Do you really want to modify these entries?"
4811
msgstr "Deseja realmente modificar estes registros?"
4479
msgstr "Deseja realmente modificar estes registros?"
4812
4480
4813
#: entryeditdialog.cpp:317
4481
#: entryeditdialog.cpp:315
4814
msgid "Modify Multiple Entries"
4482
msgid "Modify Multiple Entries"
4815
msgstr "Modificar Múltiplos Registros"
4483
msgstr "Modificar Múltiplos Registros"
4816
4484
4817
#: entryeditdialog.cpp:359
4485
#: entryeditdialog.cpp:430
4818
msgid "A value is required for the following fields. Do you want to continue?"
4819
msgstr ""
4820
4821
#: entryeditdialog.cpp:456
4822
msgid "Edit Entries"
4486
msgid "Edit Entries"
4823
msgstr "&Editar Registros"
4487
msgstr "Editar Registros"
4824
4488
4825
#: entryeditdialog.cpp:488
4489
#: entryeditdialog.cpp:462
4826
msgid "Sa&ve Entries"
4490
msgid "Sa&ve Entries"
4827
msgstr "Sal&var Registros"
4491
msgstr "Sal&var Registros"
4828
4492
4829
#: entryeditdialog.cpp:656
4493
#: entryeditdialog.cpp:630
4830
msgid ""
4494
msgid ""
4831
"The current entry has been modified.\n"
4495
"The current entry has been modified.\n"
4832
"Do you want to enter the changes?"
4496
"Do you want to enter the changes?"
Lines 4834-4840 msgstr "" Link Here
4834
"A entrada corrente foi modificada.\n"
4498
"A entrada corrente foi modificada.\n"
4835
"Deseja salvar as modificações?"
4499
"Deseja salvar as modificações?"
4836
4500
4837
#: entryeditdialog.cpp:659
4501
#: entryeditdialog.cpp:633
4838
msgid "Save Entry"
4502
msgid "Save Entry"
4839
msgstr "Salvar Registro"
4503
msgstr "Salvar Registro"
4840
4504
Lines 4855-4865 msgid "Select a report template and click <em>Generate</em>." Link Here
4855
msgstr "Selecione um modelo de relatório e clique em <em>Gerar</em>."
4519
msgstr "Selecione um modelo de relatório e clique em <em>Gerar</em>."
4856
4520
4857
#: reportdialog.cpp:108
4521
#: reportdialog.cpp:108
4858
msgid ""
4522
msgid "Some reports may take several seconds to generate for large collections."
4859
"Some reports may take several seconds to generate for large collections."
4860
msgstr ""
4523
msgstr ""
4861
"Alguns relatórios de grandes coleções podem levar vários segundos para "
4524
"Alguns relatórios de grandes coleções podem levar vários segundos para serem "
4862
"serem gerados."
4525
"gerados."
4863
4526
4864
#: tellico_kernel.cpp:285
4527
#: tellico_kernel.cpp:285
4865
msgid "Do you really want to delete this filter?"
4528
msgid "Do you really want to delete this filter?"
Lines 4873-4910 msgstr "Apagar o Filtro?" Link Here
4873
msgid "New collection name:"
4536
msgid "New collection name:"
4874
msgstr "Novo nome da coleção:"
4537
msgstr "Novo nome da coleção:"
4875
4538
4876
#: tellico_kernel.cpp:377
4539
#: entryview.cpp:169
4877
#, fuzzy
4878
msgid "Entry 1"
4879
msgstr "Tipo de Registro"
4880
4881
#: tellico_kernel.cpp:378
4882
#, fuzzy
4883
msgid "Entry 2"
4884
msgstr "Tipo de Registro"
4885
4886
#: tellico_kernel.cpp:387
4887
msgid "Conflicting values for %1 were found while merging entries."
4888
msgstr ""
4889
4890
#: tellico_kernel.cpp:393
4891
msgid "Please choose which value to keep."
4892
msgstr ""
4893
4894
#: entrymerger.cpp:33 tellico_kernel.cpp:398
4895
#, fuzzy
4896
msgid "Merge Entries"
4897
msgstr "Apagar Registros"
4898
4899
#: tellico_kernel.cpp:399 tellico_kernel.cpp:400
4900
#, c-format
4901
msgid "Select value from %1"
4902
msgstr ""
4903
4904
#: entryview.cpp:186
4905
msgid "Tellico is unable to locate the default entry stylesheet."
4540
msgid "Tellico is unable to locate the default entry stylesheet."
4906
msgstr ""
4541
msgstr "Tellico não pôde encontrar a folha de estilo padrão para os registros."
4907
"Tellico não pôde encontrar a folha de estilo padrão para os registros."
4908
4542
4909
#: rc.cpp:6
4543
#: rc.cpp:6
4910
#, no-c-format
4544
#, no-c-format
Lines 4933-4948 msgid "" Link Here
4933
"Your emails"
4567
"Your emails"
4934
msgstr "claudio@helpo.com.br"
4568
msgstr "claudio@helpo.com.br"
4935
4569
4936
#: entrymerger.cpp:35
4937
#, fuzzy
4938
msgid "Merging entries..."
4939
msgstr "Atualizando registros..."
4940
4941
#: entrymerger.cpp:49
4942
#, fuzzy
4943
msgid "Total merged/scanned entries: %1/%2"
4944
msgstr "Total de registros: %1"
4945
4946
#: tips.cpp:3
4570
#: tips.cpp:3
4947
msgid ""
4571
msgid ""
4948
"<p>...that if a book has more than one author, you should separate\n"
4572
"<p>...that if a book has more than one author, you should separate\n"
Lines 4977-4984 msgstr "" Link Here
4977
"usando\n"
4601
"usando\n"
4978
"o Editor de Campos. Os botões com setas sob a lista de campos permitem "
4602
"o Editor de Campos. Os botões com setas sob a lista de campos permitem "
4979
"modificar\n"
4603
"modificar\n"
4980
"a posição do campo na lista, o que afetará sua posição no editor de "
4604
"a posição do campo na lista, o que afetará sua posição no editor de registro."
4981
"registro.</p>\n"
4605
"</p>\n"
4982
4606
4983
#: tips.cpp:23
4607
#: tips.cpp:23
4984
msgid ""
4608
msgid ""
Lines 4992-4999 msgid "" Link Here
4992
msgstr ""
4616
msgstr ""
4993
"<p>...que se você quiser filtrar a partir de um campo do tipo Marcador,\n"
4617
"<p>...que se você quiser filtrar a partir de um campo do tipo Marcador,\n"
4994
"um valor \"verdadeiro\" deve ser usado. Se quiser, por exemplo, mostrar\n"
4618
"um valor \"verdadeiro\" deve ser usado. Se quiser, por exemplo, mostrar\n"
4995
"apenas os livros de ficção científica que ainda não leu, marque o "
4619
"apenas os livros de ficção científica que ainda não leu, marque o botão\n"
4996
"botão\n"
4997
"<em>Verificar todas as regras seguintes</em>, ajuste a primeira regra\n"
4620
"<em>Verificar todas as regras seguintes</em>, ajuste a primeira regra\n"
4998
"para \"Género\" contém\" \"Ficção científica\" (sem aspas) e a segunda "
4621
"para \"Género\" contém\" \"Ficção científica\" (sem aspas) e a segunda "
4999
"regra\n"
4622
"regra\n"
Lines 5006-5013 msgid "" Link Here
5006
"<p>To show only books which are by Weber or Bujold, for example, then\n"
4629
"<p>To show only books which are by Weber or Bujold, for example, then\n"
5007
"type \"weber|bujold\" (no quotes) in the filter box.</p>\n"
4630
"type \"weber|bujold\" (no quotes) in the filter box.</p>\n"
5008
msgstr ""
4631
msgstr ""
5009
"<p>...que se um caractere não alfabético for utilizado no Filtro Rápido, "
4632
"<p>...que se um caractere não alfabético for utilizado no Filtro Rápido, o\n"
5010
"o\n"
5011
"o texto é interpretado como uma expressão regular.</p>\n"
4633
"o texto é interpretado como uma expressão regular.</p>\n"
5012
"<p>Para mostrar somente os livros de Weber ou Bujold, por exemplo,\n"
4634
"<p>Para mostrar somente os livros de Weber ou Bujold, por exemplo,\n"
5013
"escreva \"weber|bujold\" (sem aspas) no campo do filtro.</p>\n"
4635
"escreva \"weber|bujold\" (sem aspas) no campo do filtro.</p>\n"
Lines 5030-5037 msgstr "" Link Here
5030
4652
5031
#: tips.cpp:50
4653
#: tips.cpp:50
5032
msgid ""
4654
msgid ""
5033
"<p>...that you can add, edit, and delete string macros for "
4655
"<p>...that you can add, edit, and delete string macros for bibliographies.</"
5034
"bibliographies.</p>\n"
4656
"p>\n"
5035
msgstr ""
4657
msgstr ""
5036
"<p>...que você pode adicionar, editar e apagar linhas de macros\n"
4658
"<p>...que você pode adicionar, editar e apagar linhas de macros\n"
5037
"para bibliografias.</p>\n"
4659
"para bibliografias.</p>\n"
Lines 5045-5052 msgid "" Link Here
5045
"to be sorted or printed together, for example.</p>\n"
4667
"to be sorted or printed together, for example.</p>\n"
5046
msgstr ""
4668
msgstr ""
5047
"<p>...que se mais de um campo for formatado como nome, então um grupo\n"
4669
"<p>...que se mais de um campo for formatado como nome, então um grupo\n"
5048
"adicional chamado \"Pessoas\" é adicionado à coleção, permitindo que "
4670
"adicional chamado \"Pessoas\" é adicionado à coleção, permitindo que autores "
5049
"autores e editores\n"
4671
"e editores\n"
5050
"sejam classificados ou impressos juntos, por exemplo.</p>\n"
4672
"sejam classificados ou impressos juntos, por exemplo.</p>\n"
5051
4673
5052
#: tips.cpp:60
4674
#: tips.cpp:60
Lines 5092-5099 msgid "" Link Here
5092
"<p>...that in the Detailed View, you can press a letter on the\n"
4714
"<p>...that in the Detailed View, you can press a letter on the\n"
5093
"keyboard to skip to the next entry that starts with that letter.</p>\n"
4715
"keyboard to skip to the next entry that starts with that letter.</p>\n"
5094
msgstr ""
4716
msgstr ""
5095
"<p>...que na Visão Detalhada, você pode pressionar uma letra do teclado "
4717
"<p>...que na Visão Detalhada, você pode pressionar uma letra do teclado para "
5096
"para ir diretamente ao próximo registro que começa por esta letra.</p>\n"
4718
"ir diretamente ao próximo registro que começa por esta letra.</p>\n"
5097
4719
5098
#: tips.cpp:85
4720
#: tips.cpp:85
5099
msgid ""
4721
msgid ""
Lines 5107-5112 msgid "" Link Here
5107
"types by respecting proper sorting at the same time. Consider for example\n"
4729
"types by respecting proper sorting at the same time. Consider for example\n"
5108
"a number field followed by a text subfield with entries 3b, 14a.</p>\n"
4730
"a number field followed by a text subfield with entries 3b, 14a.</p>\n"
5109
msgstr ""
4731
msgstr ""
4732
"<p>...que você pode usar Campos Dependentes para combinar múltiplos campos separados\n"
4733
"em um único campo. Apenas selecione o tipo Dependente e use uma descrição\n"
4734
"parecida com \"Valor: %{campoa}%{campob}\" onde %{...} é substituído pelo\n"
4735
"valor do campo apropriado. Isto é útil para coletar vários valores em um único campo, p.ex. para um melhor agrupamento, e para combinar campos de diferentes\n"
4736
"tipos, respeitando a correta organização ao mesmo tempo. Considere, por exemplo,\n"
4737
"um campo de número seguido por um sub-campo de texto com entradas 3b, 14a.</p>\n"
5110
4738
5111
#: xslt.cpp:2
4739
#: xslt.cpp:2
5112
msgid ""
4740
msgid ""
Lines 5116-5122 msgstr "Álbum" Link Here
5116
4744
5117
#: xslt.cpp:3
4745
#: xslt.cpp:3
5118
msgid "This template is meant for music collections only."
4746
msgid "This template is meant for music collections only."
5119
msgstr "Este modelo é apenas para coleções de música"
4747
msgstr "Este modelo é apenas para coleções de música."
5120
4748
5121
#: xslt.cpp:5
4749
#: xslt.cpp:5
5122
msgid "Total:"
4750
msgid "Total:"
Lines 5148-5154 msgstr "Vídeo" Link Here
5148
4776
5149
#: xslt.cpp:14 xslt.cpp:43
4777
#: xslt.cpp:14 xslt.cpp:43
5150
msgid "This template is meant for video collections only."
4778
msgid "This template is meant for video collections only."
5151
msgstr "Este modelo é apenas para coleções de vídeo"
4779
msgstr "Este modelo é apenas para coleções de vídeo."
5152
4780
5153
#: xslt.cpp:16
4781
#: xslt.cpp:16
5154
msgid ""
4782
msgid ""
Lines 5174-5180 msgstr "Gerado por Tellico" Link Here
5174
4802
5175
#: xslt.cpp:21
4803
#: xslt.cpp:21
5176
msgid "Distinct values: "
4804
msgid "Distinct values: "
5177
msgstr "Valores Distintos:"
4805
msgstr "Valores distintos: "
5178
4806
5179
#: xslt.cpp:23
4807
#: xslt.cpp:23
5180
msgid ""
4808
msgid ""
Lines 5270-5364 msgstr "Lista Unida de Israel" Link Here
5270
msgid "National Library of Australia"
4898
msgid "National Library of Australia"
5271
msgstr "Biblioteca Nacional da Austrália"
4899
msgstr "Biblioteca Nacional da Austrália"
5272
4900
5273
#: z3950.cpp:22
5274
#, fuzzy
5275
msgid "National Library of Lithuania"
5276
msgstr "Biblioteca Nacional do Canadá"
5277
5278
#: z3950.cpp:24
5279
msgid "Copac (UK and Ireland)"
5280
msgstr ""
5281
5282
#: scripts.cpp:2
4901
#: scripts.cpp:2
5283
msgid "BoardGameGeek"
5284
msgstr ""
5285
5286
#: scripts.cpp:4
5287
msgid "Dark Horse Comics"
4902
msgid "Dark Horse Comics"
5288
msgstr "Quadrinhos Dark Horse"
4903
msgstr "Quadrinhos Dark Horse"
5289
4904
5290
#: scripts.cpp:6
4905
#: scripts.cpp:4
5291
msgid "Allocine.fr"
4906
msgid "Allocine.fr"
5292
msgstr "Allocine.fr"
4907
msgstr "Allocine.fr"
5293
4908
5294
#: scripts.cpp:8
4909
#: scripts.cpp:6
5295
msgid "Spanish Ministry of Culture"
4910
msgid "Spanish Ministry of Culture"
5296
msgstr "Ministério da Cultura da Espanha"
4911
msgstr "Ministério da Cultura da Espanha"
5297
4912
5298
#, fuzzy
5299
#~ msgid "CrossRef"
5300
#~ msgstr "Referência cruzada"
5301
5302
#~ msgid "MODS"
5303
#~ msgstr "MODS"
5304
5305
#~ msgid "RIS"
5306
#~ msgstr "RIS "
5307
5308
#, fuzzy
5309
#~ msgid "GCstar"
5310
#~ msgstr "Elenco"
5311
5312
#~ msgid "AMC"
5313
#~ msgstr "AMC"
5314
5315
#, fuzzy
5316
#~ msgid "Griffith"
5317
#~ msgstr "Presente"
5318
5319
#, fuzzy
5320
#~ msgid "Referencer"
5321
#~ msgstr "Referência cruzada"
5322
5323
#~ msgid "Comics"
5324
#~ msgstr "Revistas em Quadrinhos"
5325
5326
#~ msgid "Stamps"
5327
#~ msgstr "Selos"
5328
5329
#~ msgid "Coins"
5330
#~ msgstr "Moedas"
5331
5332
#~ msgid "Books"
5333
#~ msgstr "Livros"
5334
5335
#~ msgid "Wines"
5336
#~ msgstr "Vinhos"
5337
5338
#~ msgid "Videos"
5339
#~ msgstr "Vídeos"
5340
5341
#~ msgid "Games"
5342
#~ msgstr "Jogos"
5343
5344
#~ msgid "Cards"
5345
#~ msgstr "Cartões"
5346
5347
#~ msgid "Entries"
5348
#~ msgstr "Registros"
5349
5350
#~ msgid "Albums"
5351
#~ msgstr "Álbuns"
5352
5353
#~ msgid ""
5354
#~ "If checked, all images will be included in the data file, rather than saved "
5355
#~ "separately in the Tellico data directory. Saving a lot of images in the data "
5356
#~ "file cause Tellico to run more slowly."
5357
#~ msgstr ""
5358
#~ "Se marcado, todas as imagens vão ser incluídas no arquivo de dados, ao "
5359
#~ "invés de salvas separadamente no diretório de dados do Tellico. Salvar "
5360
#~ "muitas imagens no arquivo de dados pode levar o Tellico a ficar mais lento."
5361
5362
#, fuzzy
5363
#~ msgid "Copac"
5364
#~ msgstr "Vírgula"
(-)a/po/ru.po (-102 / +105 lines)
Lines 1-19 Link Here
1
# translation of ru.po to Russian
1
# translation of ru.po to Russian
2
# Copyright (C) 2007 Robby Stephenson <robby@periapsis.org>.
2
# Калимуллин Артур <kalimullin@gmail.com>, 2006.
3
# Калимуллин Артур <kalimullin@gmail.com>, 2006.
3
# Kalimullin Artur <kalimullin@gmail.com>, 2006.
4
# Kalimullin Artur <kalimullin@gmail.com>, 2006.
4
# Pesotsky Denis <St.MPA3b@gmail.com>, 2008.
5
# Pesotsky Denis <St.MPA3b@gmail.com>, 2008.
5
# Copyright (C) 2007 Robby Stephenson <robby@periapsis.org>.
6
# Denis Pesotsky <St.MPA3b@gmail.com>, 2008.
7
# Denis Pesotsky <denis@kde.ru>, 2008.
6
msgid ""
8
msgid ""
7
msgstr ""
9
msgstr ""
8
"Project-Id-Version: ru\n"
10
"Project-Id-Version: ru\n"
9
"POT-Creation-Date: 2008-01-26 10:52-0800\n"
11
"POT-Creation-Date: 2008-01-26 10:52-0800\n"
10
"PO-Revision-Date: 2008-03-21 00:44+0300\n"
12
"PO-Revision-Date: 2008-10-22 21:27+0400\n"
11
"Last-Translator: Pesotsky Denis <St.MPA3b@gmail.com>\n"
13
"Last-Translator: Denis Pesotsky <denis@kde.ru>\n"
12
"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
14
"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
13
"MIME-Version: 1.0\n"
15
"MIME-Version: 1.0\n"
14
"Content-Type: text/plain; charset=UTF-8\n"
16
"Content-Type: text/plain; charset=UTF-8\n"
15
"Content-Transfer-Encoding: 8bit\n"
17
"Content-Transfer-Encoding: 8bit\n"
16
"X-Generator: KBabel 1.11.4\n"
18
"X-Generator: Lokalize 0.2\n"
19
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
17
20
18
#: cite/lyxpipe.cpp:50
21
#: cite/lyxpipe.cpp:50
19
msgid "<qt>Tellico is unable to write to the server pipe at <b>%1</b>.</qt>"
22
msgid "<qt>Tellico is unable to write to the server pipe at <b>%1</b>.</qt>"
Lines 21-27 msgstr "<qt>Ошибка записи на канал сервера <b>%1</b>.< Link Here
21
24
22
#: cite/openoffice.cpp:82
25
#: cite/openoffice.cpp:82
23
msgid "Connecting to OpenOffice.org..."
26
msgid "Connecting to OpenOffice.org..."
24
msgstr "Подсоединение к OpenOffice.org..."
27
msgstr "Подсоединение к OpenOffice.org…"
25
28
26
#: cite/openoffice.cpp:165 cite/openoffice.cpp:186
29
#: cite/openoffice.cpp:165 cite/openoffice.cpp:186
27
msgid "OpenOffice.org Connection"
30
msgid "OpenOffice.org Connection"
Lines 115-121 msgstr "Очистить" Link Here
115
118
116
#: gui/imagewidget.cpp:57
119
#: gui/imagewidget.cpp:57
117
msgid "Select Image..."
120
msgid "Select Image..."
118
msgstr "Выбрать изображение..."
121
msgstr "Выбрать изображение…"
119
122
120
#: gui/imagewidget.cpp:63
123
#: gui/imagewidget.cpp:63
121
msgid "Save link only"
124
msgid "Save link only"
Lines 652-658 msgstr "Создан" Link Here
652
655
653
#: collections/filecatalog.cpp:89
656
#: collections/filecatalog.cpp:89
654
msgid "Modified"
657
msgid "Modified"
655
msgstr "Модифицирован"
658
msgstr "Изменён"
656
659
657
#: collections/filecatalog.cpp:93
660
#: collections/filecatalog.cpp:93
658
msgid "Meta Info"
661
msgid "Meta Info"
Lines 1780-1786 msgstr "Описание выделенного отображается зде Link Here
1780
1783
1781
#: newstuff/dialog.cpp:224
1784
#: newstuff/dialog.cpp:224
1782
msgid "Downloading information..."
1785
msgid "Downloading information..."
1783
msgstr "Загрузка информации..."
1786
msgstr "Загрузка информации…"
1784
1787
1785
#: controller.cpp:135 fetchdialog.cpp:226 fetchdialog.cpp:333
1788
#: controller.cpp:135 fetchdialog.cpp:226 fetchdialog.cpp:333
1786
#: fetchdialog.cpp:451 fetchdialog.cpp:506 newstuff/dialog.cpp:297
1789
#: fetchdialog.cpp:451 fetchdialog.cpp:506 newstuff/dialog.cpp:297
Lines 1796-1802 msgstr "Обновить" Link Here
1796
1799
1797
#: newstuff/dialog.cpp:413
1800
#: newstuff/dialog.cpp:413
1798
msgid "Installing item..."
1801
msgid "Installing item..."
1799
msgstr "Установка...."
1802
msgstr "Установка…"
1800
1803
1801
#: translators/bibteximporter.cpp:79
1804
#: translators/bibteximporter.cpp:79
1802
msgid "No valid bibtex entries were found"
1805
msgid "No valid bibtex entries were found"
Lines 1913-1919 msgstr "Избранное" Link Here
1913
1916
1914
#: translators/audiofileimporter.cpp:69
1917
#: translators/audiofileimporter.cpp:69
1915
msgid "Scanning audio files..."
1918
msgid "Scanning audio files..."
1916
msgstr "Сканируются аудио-файлы..."
1919
msgstr "Сканируются аудио-файлы…"
1917
1920
1918
#: translators/audiofileimporter.cpp:129
1921
#: translators/audiofileimporter.cpp:129
1919
msgid "Bitrate"
1922
msgid "Bitrate"
Lines 2025-2031 msgstr "Может быть использован любой другой ра Link Here
2025
2028
2026
#: translators/filelistingimporter.cpp:63
2029
#: translators/filelistingimporter.cpp:63
2027
msgid "Scanning files..."
2030
msgid "Scanning files..."
2028
msgstr "Сканируются файлы..."
2031
msgstr "Сканируются файлы…"
2029
2032
2030
#: translators/filelistingimporter.cpp:191
2033
#: translators/filelistingimporter.cpp:191
2031
msgid "File Listing Options"
2034
msgid "File Listing Options"
Lines 2192-2202 msgstr "" Link Here
2192
2195
2193
#: translators/importer.h:100
2196
#: translators/importer.h:100
2194
msgid "Loading data..."
2197
msgid "Loading data..."
2195
msgstr "Загружаются данные..."
2198
msgstr "Загружаются данные…"
2196
2199
2197
#: translators/importer.h:100
2200
#: translators/importer.h:100
2198
msgid "Loading %1..."
2201
msgid "Loading %1..."
2199
msgstr "Загружается %1..."
2202
msgstr "Загружается %1…"
2200
2203
2201
#: translators/bibtexexporter.cpp:48
2204
#: translators/bibtexexporter.cpp:48
2202
msgid "Bibtex"
2205
msgid "Bibtex"
Lines 2484-2490 msgstr "не соответствует выражению" Link Here
2484
2487
2485
#: filterdialog.cpp:90
2488
#: filterdialog.cpp:90
2486
msgid "Edit..."
2489
msgid "Edit..."
2487
msgstr "Редактировать..."
2490
msgstr "Редактировать…"
2488
2491
2489
#: filterdialog.cpp:282
2492
#: filterdialog.cpp:282
2490
msgid "Advanced Filter"
2493
msgid "Advanced Filter"
Lines 2540-2550 msgstr "Дата" Link Here
2540
2543
2541
#: entryupdater.cpp:81
2544
#: entryupdater.cpp:81
2542
msgid "Updating %1..."
2545
msgid "Updating %1..."
2543
msgstr "Обновление %1..."
2546
msgstr "Обновление %1…"
2544
2547
2545
#: entryupdater.cpp:83
2548
#: entryupdater.cpp:83
2546
msgid "Updating entries..."
2549
msgid "Updating entries..."
2547
msgstr "Обновление записей..."
2550
msgstr "Обновление записей…"
2548
2551
2549
#: entryupdater.cpp:85
2552
#: entryupdater.cpp:85
2550
msgid "Update Entries"
2553
msgid "Update Entries"
Lines 2552-2558 msgstr "Обновить записи" Link Here
2552
2555
2553
#: entryupdater.cpp:99
2556
#: entryupdater.cpp:99
2554
msgid "Updating <b>%1</b>..."
2557
msgid "Updating <b>%1</b>..."
2555
msgstr "Обновление <b>%1</b>..."
2558
msgstr "Обновление <b>%1</b>…"
2556
2559
2557
#: entryupdater.cpp:209
2560
#: entryupdater.cpp:209
2558
msgid "Select Match"
2561
msgid "Select Match"
Lines 2875-2885 msgstr "Сохранить документ" Link Here
2875
2878
2876
#: mainwindow.cpp:305
2879
#: mainwindow.cpp:305
2877
msgid "Save the document as a different file..."
2880
msgid "Save the document as a different file..."
2878
msgstr "Сохранить документ в другой файл..."
2881
msgstr "Сохранить документ в другой файл…"
2879
2882
2880
#: mainwindow.cpp:307
2883
#: mainwindow.cpp:307
2881
msgid "Print the contents of the document..."
2884
msgid "Print the contents of the document..."
2882
msgstr "Напечатать содержимое этого документа..."
2885
msgstr "Напечатать содержимое этого документа…"
2883
2886
2884
#: mainwindow.cpp:309
2887
#: mainwindow.cpp:309
2885
msgid "Quit the application"
2888
msgid "Quit the application"
Lines 2891-2897 msgstr "Импортировать коллекцию из других форм Link Here
2891
2894
2892
#: mainwindow.cpp:324
2895
#: mainwindow.cpp:324
2893
msgid "Import Tellico Data..."
2896
msgid "Import Tellico Data..."
2894
msgstr "Импорт из файла Tellico..."
2897
msgstr "Импорт из файла Tellico…"
2895
2898
2896
#: mainwindow.cpp:325
2899
#: mainwindow.cpp:325
2897
msgid "Import another Tellico data file"
2900
msgid "Import another Tellico data file"
Lines 2899-2905 msgstr "Импортировать из другой коллекции Tellico" Link Here
2899
2902
2900
#: mainwindow.cpp:331
2903
#: mainwindow.cpp:331
2901
msgid "Import CSV Data..."
2904
msgid "Import CSV Data..."
2902
msgstr "Импорт из CSV..."
2905
msgstr "Импорт из CSV…"
2903
2906
2904
#: mainwindow.cpp:332
2907
#: mainwindow.cpp:332
2905
msgid "Import a CSV file"
2908
msgid "Import a CSV file"
Lines 2907-2913 msgstr "Импорт из файла CSV" Link Here
2907
2910
2908
#: mainwindow.cpp:338
2911
#: mainwindow.cpp:338
2909
msgid "Import MODS Data..."
2912
msgid "Import MODS Data..."
2910
msgstr "Импорт из MODS..."
2913
msgstr "Импорт из MODS…"
2911
2914
2912
#: mainwindow.cpp:339
2915
#: mainwindow.cpp:339
2913
msgid "Import a MODS data file"
2916
msgid "Import a MODS data file"
Lines 2915-2921 msgstr "Импорт из файла MODS" Link Here
2915
2918
2916
#: mainwindow.cpp:345
2919
#: mainwindow.cpp:345
2917
msgid "Import Alexandria Data..."
2920
msgid "Import Alexandria Data..."
2918
msgstr "Импорт из файла Alexandria..."
2921
msgstr "Импорт из файла Alexandria…"
2919
2922
2920
#: mainwindow.cpp:346
2923
#: mainwindow.cpp:346
2921
msgid "Import data from the Alexandria book collection manager"
2924
msgid "Import data from the Alexandria book collection manager"
Lines 2923-2929 msgstr "Импорт из менеджера коллекций книг Alexand Link Here
2923
2926
2924
#: mainwindow.cpp:352
2927
#: mainwindow.cpp:352
2925
msgid "Import Delicious Library Data..."
2928
msgid "Import Delicious Library Data..."
2926
msgstr "Импорт из файла Delicious..."
2929
msgstr "Импорт из файла Delicious…"
2927
2930
2928
#: mainwindow.cpp:353
2931
#: mainwindow.cpp:353
2929
msgid "Import data from Delicious Library"
2932
msgid "Import data from Delicious Library"
Lines 2931-2937 msgstr "Импорт данных из файла Delicious" Link Here
2931
2934
2932
#: mainwindow.cpp:359
2935
#: mainwindow.cpp:359
2933
msgid "Import Referencer Data..."
2936
msgid "Import Referencer Data..."
2934
msgstr "Импорт из файла Referencer..."
2937
msgstr "Импорт из файла Referencer…"
2935
2938
2936
#: mainwindow.cpp:360
2939
#: mainwindow.cpp:360
2937
msgid "Import data from Referencer"
2940
msgid "Import data from Referencer"
Lines 2939-2945 msgstr "Импортировать данные из Referencer" Link Here
2939
2942
2940
#: mainwindow.cpp:366
2943
#: mainwindow.cpp:366
2941
msgid "Import Bibtex Data..."
2944
msgid "Import Bibtex Data..."
2942
msgstr "Импорт из Bibtex..."
2945
msgstr "Импорт из Bibtex…"
2943
2946
2944
#: mainwindow.cpp:367
2947
#: mainwindow.cpp:367
2945
msgid "Import a bibtex bibliography file"
2948
msgid "Import a bibtex bibliography file"
Lines 2947-2953 msgstr "Импортировать из файла библиографии bibt Link Here
2947
2950
2948
#: mainwindow.cpp:373
2951
#: mainwindow.cpp:373
2949
msgid "Import Bibtexml Data..."
2952
msgid "Import Bibtexml Data..."
2950
msgstr "Импорт из Bibtexml..."
2953
msgstr "Импорт из Bibtexml…"
2951
2954
2952
#: mainwindow.cpp:374
2955
#: mainwindow.cpp:374
2953
msgid "Import a Bibtexml bibliography file"
2956
msgid "Import a Bibtexml bibliography file"
Lines 2955-2961 msgstr "Импортировать из файла библиографии Bibt Link Here
2955
2958
2956
#: mainwindow.cpp:380
2959
#: mainwindow.cpp:380
2957
msgid "Import RIS Data..."
2960
msgid "Import RIS Data..."
2958
msgstr "Импорт из RIS..."
2961
msgstr "Импорт из RIS…"
2959
2962
2960
#: mainwindow.cpp:381
2963
#: mainwindow.cpp:381
2961
msgid "Import an RIS reference file"
2964
msgid "Import an RIS reference file"
Lines 2963-2969 msgstr "Импортировать из файла RIS" Link Here
2963
2966
2964
#: mainwindow.cpp:387
2967
#: mainwindow.cpp:387
2965
msgid "Import PDF File..."
2968
msgid "Import PDF File..."
2966
msgstr "Импорт из PDF..."
2969
msgstr "Импорт из PDF…"
2967
2970
2968
#: mainwindow.cpp:388
2971
#: mainwindow.cpp:388
2969
msgid "Import a PDF file"
2972
msgid "Import a PDF file"
Lines 2971-2977 msgstr "Импортировать из файла PDF" Link Here
2971
2974
2972
#: mainwindow.cpp:394
2975
#: mainwindow.cpp:394
2973
msgid "Import Audio File Metadata..."
2976
msgid "Import Audio File Metadata..."
2974
msgstr "Импорт из данных аудио файла..."
2977
msgstr "Импорт из данных аудио файла…"
2975
2978
2976
#: mainwindow.cpp:395
2979
#: mainwindow.cpp:395
2977
msgid "Import meta-data from audio files"
2980
msgid "Import meta-data from audio files"
Lines 2979-2985 msgstr "Импорт из данных тегов аудио файлов" Link Here
2979
2982
2980
#: mainwindow.cpp:404
2983
#: mainwindow.cpp:404
2981
msgid "Import Audio CD Data..."
2984
msgid "Import Audio CD Data..."
2982
msgstr "Импорт из Audio CD..."
2985
msgstr "Импорт из Audio CD…"
2983
2986
2984
#: mainwindow.cpp:405
2987
#: mainwindow.cpp:405
2985
msgid "Import audio CD information"
2988
msgid "Import audio CD information"
Lines 2987-2993 msgstr "Импорт информации об Audio CD" Link Here
2987
2990
2988
#: mainwindow.cpp:414
2991
#: mainwindow.cpp:414
2989
msgid "Import GCstar Data..."
2992
msgid "Import GCstar Data..."
2990
msgstr "Импорт из файла GCstar..."
2993
msgstr "Импорт из файла GCstar…"
2991
2994
2992
#: mainwindow.cpp:415
2995
#: mainwindow.cpp:415
2993
msgid "Import a GCstar data file"
2996
msgid "Import a GCstar data file"
Lines 2995-3001 msgstr "Импорт данных из файла GCstar" Link Here
2995
2998
2996
#: mainwindow.cpp:421
2999
#: mainwindow.cpp:421
2997
msgid "Import Griffith Data..."
3000
msgid "Import Griffith Data..."
2998
msgstr "Импорт из файла Griffith..."
3001
msgstr "Импорт из файла Griffith…"
2999
3002
3000
#: mainwindow.cpp:422
3003
#: mainwindow.cpp:422
3001
msgid "Import a Griffith database"
3004
msgid "Import a Griffith database"
Lines 3003-3009 msgstr "Импортировать из файла Griffith" Link Here
3003
3006
3004
#: mainwindow.cpp:428
3007
#: mainwindow.cpp:428
3005
msgid "Import Ant Movie Catalog Data..."
3008
msgid "Import Ant Movie Catalog Data..."
3006
msgstr "Импорт из файла Ant..."
3009
msgstr "Импорт из файла Ant…"
3007
3010
3008
#: mainwindow.cpp:429
3011
#: mainwindow.cpp:429
3009
msgid "Import an Ant Movie Catalog data file"
3012
msgid "Import an Ant Movie Catalog data file"
Lines 3011-3017 msgstr "Импортировать из файла менеджера колле Link Here
3011
3014
3012
#: mainwindow.cpp:435
3015
#: mainwindow.cpp:435
3013
msgid "Import File Listing..."
3016
msgid "Import File Listing..."
3014
msgstr "Импорт списка фалов..."
3017
msgstr "Импорт списка фалов…"
3015
3018
3016
#: mainwindow.cpp:436
3019
#: mainwindow.cpp:436
3017
msgid "Import information about files in a folder"
3020
msgid "Import information about files in a folder"
Lines 3019-3025 msgstr "Импортировать информацию о файлах в па Link Here
3019
3022
3020
#: mainwindow.cpp:442
3023
#: mainwindow.cpp:442
3021
msgid "Import XSL Transform..."
3024
msgid "Import XSL Transform..."
3022
msgstr "Импорт из XSLT..."
3025
msgstr "Импорт из XSLT…"
3023
3026
3024
#: mainwindow.cpp:443
3027
#: mainwindow.cpp:443
3025
msgid "Import using an XSL Transform"
3028
msgid "Import using an XSL Transform"
Lines 3036-3042 msgstr "Экспортировать данные коллекции в друг Link Here
3036
3039
3037
#: mainwindow.cpp:461
3040
#: mainwindow.cpp:461
3038
msgid "Export to XML..."
3041
msgid "Export to XML..."
3039
msgstr "Экспорт в XML..."
3042
msgstr "Экспорт в XML…"
3040
3043
3041
#: mainwindow.cpp:462
3044
#: mainwindow.cpp:462
3042
msgid "Export to a Tellico XML file"
3045
msgid "Export to a Tellico XML file"
Lines 3044-3050 msgstr "Экспорт в XML-файл Tellico" Link Here
3044
3047
3045
#: mainwindow.cpp:468
3048
#: mainwindow.cpp:468
3046
msgid "Export to Zip..."
3049
msgid "Export to Zip..."
3047
msgstr "Экспорт в ZIP..."
3050
msgstr "Экспорт в ZIP…"
3048
3051
3049
#: mainwindow.cpp:469
3052
#: mainwindow.cpp:469
3050
msgid "Export to a Tellico Zip file"
3053
msgid "Export to a Tellico Zip file"
Lines 3052-3058 msgstr "Экспорт в сжатый ZIP файл Tellico" Link Here
3052
3055
3053
#: mainwindow.cpp:475
3056
#: mainwindow.cpp:475
3054
msgid "Export to HTML..."
3057
msgid "Export to HTML..."
3055
msgstr "Экспорт в HTML..."
3058
msgstr "Экспорт в HTML…"
3056
3059
3057
#: mainwindow.cpp:476
3060
#: mainwindow.cpp:476
3058
msgid "Export to an HTML file"
3061
msgid "Export to an HTML file"
Lines 3060-3066 msgstr "Экспорт в файл HTML" Link Here
3060
3063
3061
#: mainwindow.cpp:482
3064
#: mainwindow.cpp:482
3062
msgid "Export to CSV..."
3065
msgid "Export to CSV..."
3063
msgstr "Экспорт в CSV..."
3066
msgstr "Экспорт в CSV…"
3064
3067
3065
#: mainwindow.cpp:483
3068
#: mainwindow.cpp:483
3066
msgid "Export to a comma-separated values file"
3069
msgid "Export to a comma-separated values file"
Lines 3068-3074 msgstr "Экспорт в текстовый файл с разделённым Link Here
3068
3071
3069
#: mainwindow.cpp:489
3072
#: mainwindow.cpp:489
3070
msgid "Export to PilotDB..."
3073
msgid "Export to PilotDB..."
3071
msgstr "Экспорт в PilotDB..."
3074
msgstr "Экспорт в PilotDB…"
3072
3075
3073
#: mainwindow.cpp:490
3076
#: mainwindow.cpp:490
3074
msgid "Export to a PilotDB database"
3077
msgid "Export to a PilotDB database"
Lines 3076-3082 msgstr "Экспортировать в базу данных PilotDB" Link Here
3076
3079
3077
#: mainwindow.cpp:496
3080
#: mainwindow.cpp:496
3078
msgid "Export to Alexandria..."
3081
msgid "Export to Alexandria..."
3079
msgstr "Экспорт в Alexandria..."
3082
msgstr "Экспорт в Alexandria…"
3080
3083
3081
#: mainwindow.cpp:497
3084
#: mainwindow.cpp:497
3082
msgid "Export to an Alexandria library"
3085
msgid "Export to an Alexandria library"
Lines 3084-3090 msgstr "Экспорт в библиотеку Alexandria" Link Here
3084
3087
3085
#: mainwindow.cpp:503
3088
#: mainwindow.cpp:503
3086
msgid "Export to Bibtex..."
3089
msgid "Export to Bibtex..."
3087
msgstr "Экспорт в Bibtex..."
3090
msgstr "Экспорт в Bibtex…"
3088
3091
3089
#: mainwindow.cpp:504
3092
#: mainwindow.cpp:504
3090
msgid "Export to a bibtex file"
3093
msgid "Export to a bibtex file"
Lines 3092-3098 msgstr "Экспорт в файл Bibtex" Link Here
3092
3095
3093
#: mainwindow.cpp:510
3096
#: mainwindow.cpp:510
3094
msgid "Export to Bibtexml..."
3097
msgid "Export to Bibtexml..."
3095
msgstr "Экспорт в Bibtexml..."
3098
msgstr "Экспорт в Bibtexml…"
3096
3099
3097
#: mainwindow.cpp:511
3100
#: mainwindow.cpp:511
3098
msgid "Export to a Bibtexml file"
3101
msgid "Export to a Bibtexml file"
Lines 3100-3106 msgstr "Экспорт в файл Bibtexml" Link Here
3100
3103
3101
#: mainwindow.cpp:517
3104
#: mainwindow.cpp:517
3102
msgid "Export to ONIX..."
3105
msgid "Export to ONIX..."
3103
msgstr "Экспорт в ONIX..."
3106
msgstr "Экспорт в ONIX…"
3104
3107
3105
#: mainwindow.cpp:518
3108
#: mainwindow.cpp:518
3106
msgid "Export to an ONIX file"
3109
msgid "Export to an ONIX file"
Lines 3108-3114 msgstr "Экспорт в файл ONIX" Link Here
3108
3111
3109
#: mainwindow.cpp:524
3112
#: mainwindow.cpp:524
3110
msgid "Export to GCfilms..."
3113
msgid "Export to GCfilms..."
3111
msgstr "Экспорт в GCfilms..."
3114
msgstr "Экспорт в GCfilms…"
3112
3115
3113
#: mainwindow.cpp:525
3116
#: mainwindow.cpp:525
3114
msgid "Export to a GCfilms data file"
3117
msgid "Export to a GCfilms data file"
Lines 3116-3122 msgstr "Экспорт в файл GCfilms" Link Here
3116
3119
3117
#: mainwindow.cpp:531
3120
#: mainwindow.cpp:531
3118
msgid "Export to GCstar..."
3121
msgid "Export to GCstar..."
3119
msgstr "Экспорт в GCStar..."
3122
msgstr "Экспорт в GCStar…"
3120
3123
3121
#: mainwindow.cpp:532
3124
#: mainwindow.cpp:532
3122
msgid "Export to a GCstar data file"
3125
msgid "Export to a GCstar data file"
Lines 3124-3130 msgstr "Экспорт в файл GCfilms" Link Here
3124
3127
3125
#: mainwindow.cpp:536
3128
#: mainwindow.cpp:536
3126
msgid "Export XSL Transform..."
3129
msgid "Export XSL Transform..."
3127
msgstr "Экспорт в XSLT..."
3130
msgstr "Экспорт в XSLT…"
3128
3131
3129
#: mainwindow.cpp:537
3132
#: mainwindow.cpp:537
3130
msgid "Export using an XSL Transform"
3133
msgid "Export using an XSL Transform"
Lines 3152-3166 msgstr "Отменить выделение записей в коллекции Link Here
3152
3155
3153
#: mainwindow.cpp:556
3156
#: mainwindow.cpp:556
3154
msgid "Internet Search..."
3157
msgid "Internet Search..."
3155
msgstr "Поиск в интернете..."
3158
msgstr "Поиск в интернете…"
3156
3159
3157
#: mainwindow.cpp:559
3160
#: mainwindow.cpp:559
3158
msgid "Search the internet..."
3161
msgid "Search the internet..."
3159
msgstr "Повести поиск в интернете для создания новой записи в коллекции..."
3162
msgstr "Повести поиск в интернете для создания новой записи в коллекции…"
3160
3163
3161
#: mainwindow.cpp:561
3164
#: mainwindow.cpp:561
3162
msgid "Advanced &Filter..."
3165
msgid "Advanced &Filter..."
3163
msgstr "Продвинутый &фильтр..."
3166
msgstr "Продвинутый &фильтр…"
3164
3167
3165
#: mainwindow.cpp:564 mainwindow.cpp:719
3168
#: mainwindow.cpp:564 mainwindow.cpp:719
3166
msgid "Filter the collection"
3169
msgid "Filter the collection"
Lines 3168-3174 msgstr "Фильтр коллекции" Link Here
3168
3171
3169
#: mainwindow.cpp:569
3172
#: mainwindow.cpp:569
3170
msgid "&New Entry..."
3173
msgid "&New Entry..."
3171
msgstr "&Новая запись..."
3174
msgstr "&Новая запись…"
3172
3175
3173
#: mainwindow.cpp:572
3176
#: mainwindow.cpp:572
3174
msgid "Create a new entry"
3177
msgid "Create a new entry"
Lines 3176-3182 msgstr "Создать новую запись" Link Here
3176
3179
3177
#: controller.cpp:620 mainwindow.cpp:573
3180
#: controller.cpp:620 mainwindow.cpp:573
3178
msgid "&Edit Entry..."
3181
msgid "&Edit Entry..."
3179
msgstr "&Редактировать запись..."
3182
msgstr "&Редактировать запись…"
3180
3183
3181
#: mainwindow.cpp:576
3184
#: mainwindow.cpp:576
3182
msgid "Edit the selected entries"
3185
msgid "Edit the selected entries"
Lines 3208-3214 msgstr "Объединить выделенные записи" Link Here
3208
3211
3209
#: mainwindow.cpp:591
3212
#: mainwindow.cpp:591
3210
msgid "&Generate Reports..."
3213
msgid "&Generate Reports..."
3211
msgstr "Создать от&чет..."
3214
msgstr "Создать от&чет…"
3212
3215
3213
#: mainwindow.cpp:594
3216
#: mainwindow.cpp:594
3214
msgid "Generate collection reports"
3217
msgid "Generate collection reports"
Lines 3216-3222 msgstr "Создать отчет о коллекции" Link Here
3216
3219
3217
#: mainwindow.cpp:595
3220
#: mainwindow.cpp:595
3218
msgid "Check-&out..."
3221
msgid "Check-&out..."
3219
msgstr "&Отдать в долг..."
3222
msgstr "&Отдать в долг…"
3220
3223
3221
#: mainwindow.cpp:598
3224
#: mainwindow.cpp:598
3222
msgid "Check-out the selected items"
3225
msgid "Check-out the selected items"
Lines 3232-3238 msgstr "Вернуть из долга выделенные записи" Link Here
3232
3235
3233
#: mainwindow.cpp:604
3236
#: mainwindow.cpp:604
3234
msgid "&Rename Collection..."
3237
msgid "&Rename Collection..."
3235
msgstr "&Переименовать коллекцию..."
3238
msgstr "&Переименовать коллекцию…"
3236
3239
3237
#: mainwindow.cpp:607
3240
#: mainwindow.cpp:607
3238
msgid "Rename the collection"
3241
msgid "Rename the collection"
Lines 3256-3262 msgstr "Конвертировать коллекцию книг в библио Link Here
3256
3259
3257
#: mainwindow.cpp:616
3260
#: mainwindow.cpp:616
3258
msgid "String &Macros..."
3261
msgid "String &Macros..."
3259
msgstr "Строчный &макрос..."
3262
msgstr "Строчный &макрос…"
3260
3263
3261
#: mainwindow.cpp:619
3264
#: mainwindow.cpp:619
3262
msgid "Edit the bibtex string macros"
3265
msgid "Edit the bibtex string macros"
Lines 3357-3363 msgstr "Очистить фильтр" Link Here
3357
3360
3358
#: mainwindow.cpp:710
3361
#: mainwindow.cpp:710
3359
msgid "Filter here..."
3362
msgid "Filter here..."
3360
msgstr "Фильтр..."
3363
msgstr "Фильтр…"
3361
3364
3362
#: mainwindow.cpp:768
3365
#: mainwindow.cpp:768
3363
msgid "Groups"
3366
msgid "Groups"
Lines 3399-3409 msgstr "" Link Here
3399
3402
3400
#: mainwindow.cpp:1066
3403
#: mainwindow.cpp:1066
3401
msgid "Creating new document..."
3404
msgid "Creating new document..."
3402
msgstr "Создание нового документа..."
3405
msgstr "Создание нового документа…"
3403
3406
3404
#: mainwindow.cpp:1098 mainwindow.cpp:1117 mainwindow.cpp:1135
3407
#: mainwindow.cpp:1098 mainwindow.cpp:1117 mainwindow.cpp:1135
3405
msgid "Opening file..."
3408
msgid "Opening file..."
3406
msgstr "Открытие файла..."
3409
msgstr "Открытие файла…"
3407
3410
3408
#: mainwindow.cpp:1108
3411
#: mainwindow.cpp:1108
3409
msgid "Open File"
3412
msgid "Open File"
Lines 3411-3417 msgstr "Открыть файл" Link Here
3411
3414
3412
#: document.cpp:192 mainwindow.cpp:1215
3415
#: document.cpp:192 mainwindow.cpp:1215
3413
msgid "Saving file..."
3416
msgid "Saving file..."
3414
msgstr "Сохранение файла...."
3417
msgstr "Сохранение файла…."
3415
3418
3416
#: mainwindow.cpp:1226
3419
#: mainwindow.cpp:1226
3417
msgid ""
3420
msgid ""
Lines 3435-3445 msgstr "Сохранять изображения вместе с файлом" Link Here
3435
3438
3436
#: mainwindow.cpp:1265
3439
#: mainwindow.cpp:1265
3437
msgid "Saving file with a new filename..."
3440
msgid "Saving file with a new filename..."
3438
msgstr "Сохранение файла под другим именем..."
3441
msgstr "Сохранение файла под другим именем…"
3439
3442
3440
#: mainwindow.cpp:1303 mainwindow.cpp:1353
3443
#: mainwindow.cpp:1303 mainwindow.cpp:1353
3441
msgid "Printing..."
3444
msgid "Printing..."
3442
msgstr "Идёт печать..."
3445
msgstr "Идёт печать…"
3443
3446
3444
#: mainwindow.cpp:1312
3447
#: mainwindow.cpp:1312
3445
msgid ""
3448
msgid ""
Lines 3451-3461 msgstr "" Link Here
3451
3454
3452
#: mainwindow.cpp:1337
3455
#: mainwindow.cpp:1337
3453
msgid "Processing document..."
3456
msgid "Processing document..."
3454
msgstr "Подождите..."
3457
msgstr "Подождите…"
3455
3458
3456
#: mainwindow.cpp:1360
3459
#: mainwindow.cpp:1360
3457
msgid "Exiting..."
3460
msgid "Exiting..."
3458
msgstr "Выход..."
3461
msgstr "Выход…"
3459
3462
3460
#: mainwindow.cpp:1498
3463
#: mainwindow.cpp:1498
3461
#, c-format
3464
#, c-format
Lines 3490-3496 msgstr "Пожалуйста, проверьте свою инсталляцию Link Here
3490
3493
3491
#: mainwindow.cpp:1849
3494
#: mainwindow.cpp:1849
3492
msgid "Importing data..."
3495
msgid "Importing data..."
3493
msgstr "Импорт данных..."
3496
msgstr "Импорт данных…"
3494
3497
3495
#: mainwindow.cpp:1858
3498
#: mainwindow.cpp:1858
3496
msgid "Import File"
3499
msgid "Import File"
Lines 3502-3508 msgstr "Импорт каталога" Link Here
3502
3505
3503
#: mainwindow.cpp:1885
3506
#: mainwindow.cpp:1885
3504
msgid "Exporting data..."
3507
msgid "Exporting data..."
3505
msgstr "Экспортирование данных..."
3508
msgstr "Экспортирование данных…"
3506
3509
3507
#: mainwindow.cpp:1907
3510
#: mainwindow.cpp:1907
3508
msgid "Export As"
3511
msgid "Export As"
Lines 3522-3528 msgstr "Строка" Link Here
3522
3525
3523
#: mainwindow.cpp:1999
3526
#: mainwindow.cpp:1999
3524
msgid "Creating citations..."
3527
msgid "Creating citations..."
3525
msgstr "Идет создание цитат..."
3528
msgstr "Идет создание цитат…"
3526
3529
3527
#: mainwindow.cpp:2104
3530
#: mainwindow.cpp:2104
3528
msgid "Filters"
3531
msgid "Filters"
Lines 3598-3604 msgstr "Удалить несколько записей" Link Here
3598
3601
3599
#: controller.cpp:626
3602
#: controller.cpp:626
3600
msgid "&Edit Entries..."
3603
msgid "&Edit Entries..."
3601
msgstr "&Редактировать записи..."
3604
msgstr "&Редактировать записи…"
3602
3605
3603
#: controller.cpp:627
3606
#: controller.cpp:627
3604
msgid "D&uplicate Entries"
3607
msgid "D&uplicate Entries"
Lines 3862-3868 msgstr "Дополнительные &параметры:" Link Here
3862
3865
3863
#: collectionfieldsdialog.cpp:217
3866
#: collectionfieldsdialog.cpp:217
3864
msgid "&Set..."
3867
msgid "&Set..."
3865
msgstr "&Установить..."
3868
msgstr "&Установить…"
3866
3869
3867
#: collectionfieldsdialog.cpp:221
3870
#: collectionfieldsdialog.cpp:221
3868
msgid ""
3871
msgid ""
Lines 4242-4252 msgstr "" Link Here
4242
4245
4243
#: configdialog.cpp:380
4246
#: configdialog.cpp:380
4244
msgid "&Preview..."
4247
msgid "&Preview..."
4245
msgstr "&Пред-просмотр..."
4248
msgstr "&Предпросмотр…"
4246
4249
4247
#: configdialog.cpp:381
4250
#: configdialog.cpp:381
4248
msgid "Show a preview of the template"
4251
msgid "Show a preview of the template"
4249
msgstr "Показать пред-просмотр шаблона"
4252
msgstr "Показать предпросмотр шаблона"
4250
4253
4251
#: configdialog.cpp:398
4254
#: configdialog.cpp:398
4252
msgid "Font Options"
4255
msgid "Font Options"
Lines 4294-4300 msgstr "Управление шаблонами" Link Here
4294
4297
4295
#: configdialog.cpp:475
4298
#: configdialog.cpp:475
4296
msgid "Install..."
4299
msgid "Install..."
4297
msgstr "Установить..."
4300
msgstr "Установить…"
4298
4301
4299
#: configdialog.cpp:478
4302
#: configdialog.cpp:478
4300
msgid "Click to install a new template directly."
4303
msgid "Click to install a new template directly."
Lines 4302-4308 msgstr "Нажмите для установки шаблона." Link Here
4302
4305
4303
#: configdialog.cpp:481 configdialog.cpp:537
4306
#: configdialog.cpp:481 configdialog.cpp:537
4304
msgid "Download..."
4307
msgid "Download..."
4305
msgstr "Загрузить..."
4308
msgstr "Загрузить…"
4306
4309
4307
#: configdialog.cpp:484
4310
#: configdialog.cpp:484
4308
msgid "Click to download additional templates via the Internet."
4311
msgid "Click to download additional templates via the Internet."
Lines 4310-4316 msgstr "Нажмите для загрузки дополнительных ша Link Here
4310
4313
4311
#: configdialog.cpp:487
4314
#: configdialog.cpp:487
4312
msgid "Delete..."
4315
msgid "Delete..."
4313
msgstr "Удалить..."
4316
msgstr "Удалить…"
4314
4317
4315
#: configdialog.cpp:490
4318
#: configdialog.cpp:490
4316
msgid "Click to select and remove installed templates."
4319
msgid "Click to select and remove installed templates."
Lines 4346-4352 msgstr "&Ниже" Link Here
4346
4349
4347
#: configdialog.cpp:528
4350
#: configdialog.cpp:528
4348
msgid "&New..."
4351
msgid "&New..."
4349
msgstr "&Новый..."
4352
msgstr "&Новый…"
4350
4353
4351
#: configdialog.cpp:530
4354
#: configdialog.cpp:530
4352
msgid "Click to add a new data source."
4355
msgid "Click to add a new data source."
Lines 4354-4360 msgstr "Нажмите для создания нового источника Link Here
4354
4357
4355
#: configdialog.cpp:531
4358
#: configdialog.cpp:531
4356
msgid "&Modify..."
4359
msgid "&Modify..."
4357
msgstr "&Редактировать..."
4360
msgstr "&Редактировать…"
4358
4361
4359
#: configdialog.cpp:533
4362
#: configdialog.cpp:533
4360
msgid "Click to modify the selected data source."
4363
msgid "Click to modify the selected data source."
Lines 4390-4396 msgstr "Вернуть из долга" Link Here
4390
4393
4391
#: loanview.cpp:76
4394
#: loanview.cpp:76
4392
msgid "Modify Loan..."
4395
msgid "Modify Loan..."
4393
msgstr "Редактировать долг..."
4396
msgstr "Редактировать долг…"
4394
4397
4395
#: loanview.cpp:93
4398
#: loanview.cpp:93
4396
msgid "Borrower (Sort by Count)"
4399
msgid "Borrower (Sort by Count)"
Lines 4556-4562 msgstr "Если отмечено, будет проведен многокра Link Here
4556
4559
4557
#: fetchdialog.cpp:138
4560
#: fetchdialog.cpp:138
4558
msgid "Edit List..."
4561
msgid "Edit List..."
4559
msgstr "Редактировать список..."
4562
msgstr "Редактировать список…"
4560
4563
4561
#: fetchdialog.cpp:140
4564
#: fetchdialog.cpp:140
4562
msgid "Click to open a text edit box for entering or editing multiple ISBN values."
4565
msgid "Click to open a text edit box for entering or editing multiple ISBN values."
Lines 4606-4616 msgstr "Очистить все поля поиска и результаты" Link Here
4606
4609
4607
#: fetchdialog.cpp:298
4610
#: fetchdialog.cpp:298
4608
msgid "Cancelling the search..."
4611
msgid "Cancelling the search..."
4609
msgstr "Отмена поиска..."
4612
msgstr "Отмена поиска…"
4610
4613
4611
#: fetchdialog.cpp:313 fetchdialog.cpp:472
4614
#: fetchdialog.cpp:313 fetchdialog.cpp:472
4612
msgid "Searching..."
4615
msgid "Searching..."
4613
msgstr "Поиск..."
4616
msgstr "Поиск…"
4614
4617
4615
#: fetchdialog.cpp:368
4618
#: fetchdialog.cpp:368
4616
msgid "The search returned no items."
4619
msgid "The search returned no items."
Lines 4631-4637 msgstr "Никаких записей не было найдено по след Link Here
4631
4634
4632
#: fetchdialog.cpp:443 fetchdialog.cpp:495
4635
#: fetchdialog.cpp:443 fetchdialog.cpp:495
4633
msgid "Fetching %1..."
4636
msgid "Fetching %1..."
4634
msgstr "Загрузка %1..."
4637
msgstr "Загрузка %1…"
4635
4638
4636
#: fetchdialog.cpp:528 fetchdialog.cpp:708
4639
#: fetchdialog.cpp:528 fetchdialog.cpp:708
4637
msgid "No Internet sources are available for your current collection type."
4640
msgid "No Internet sources are available for your current collection type."
Lines 4647-4653 msgstr "<qt>Введите значения ISBN/UPC, по одному в ст Link Here
4647
4650
4648
#: fetchdialog.cpp:604
4651
#: fetchdialog.cpp:604
4649
msgid "&Load From File..."
4652
msgid "&Load From File..."
4650
msgstr "&Загрузить из файла..."
4653
msgstr "&Загрузить из файла…"
4651
4654
4652
#: fetchdialog.cpp:605
4655
#: fetchdialog.cpp:605
4653
msgid "<qt>Load the list from a text file.</qt>"
4656
msgid "<qt>Load the list from a text file.</qt>"
Lines 4805-4819 msgstr "Калимуллин Артур, Песоцкий Денис" Link Here
4805
msgid ""
4808
msgid ""
4806
"_: EMAIL OF TRANSLATORS\n"
4809
"_: EMAIL OF TRANSLATORS\n"
4807
"Your emails"
4810
"Your emails"
4808
msgstr "kalimullin@gmail.com, St.MPA3b@gmail.com"
4811
msgstr "kalimullin@gmail.com, denis@kde.ru"
4809
4812
4810
#: entrymerger.cpp:35
4813
#: entrymerger.cpp:35
4811
msgid "Merging entries..."
4814
msgid "Merging entries..."
4812
msgstr "Объединение записей..."
4815
msgstr "Объединение записей…"
4813
4816
4814
#: entrymerger.cpp:49
4817
#: entrymerger.cpp:49
4815
msgid "Total merged/scanned entries: %1/%2"
4818
msgid "Total merged/scanned entries: %1/%2"
4816
msgstr "Всего записей объединено/просканировано: %1"
4819
msgstr "Всего записей объединено/просканировано: %1/%2"
4817
4820
4818
#: tips.cpp:3
4821
#: tips.cpp:3
4819
msgid ""
4822
msgid ""
Lines 4823-4829 msgid "" Link Here
4823
"<p>Any other field which allows multiple values should be entered the\n"
4826
"<p>Any other field which allows multiple values should be entered the\n"
4824
"same way, with a semi-colon (;) separating each value.</p>\n"
4827
"same way, with a semi-colon (;) separating each value.</p>\n"
4825
msgstr ""
4828
msgstr ""
4826
"<p>...что если книга имеет больше, чем одного автора, то вам следует "
4829
"<p>…что если книга имеет больше, чем одного автора, то вам следует "
4827
"разделять\n"
4830
"разделять\n"
4828
"точкой с запятой (;). Таким образом, Tellico будет разделять их имена.</p>\n"
4831
"точкой с запятой (;). Таким образом, Tellico будет разделять их имена.</p>\n"
4829
"<p>Любое другое поле также поддерживает эту функцию. Для этого вам следует\n"
4832
"<p>Любое другое поле также поддерживает эту функцию. Для этого вам следует\n"
Lines 4835-4841 msgid "" Link Here
4835
"<p>...that you can change which fields are shown in the list view by\n"
4838
"<p>...that you can change which fields are shown in the list view by\n"
4836
"right-clicking on the column header.\n"
4839
"right-clicking on the column header.\n"
4837
msgstr ""
4840
msgstr ""
4838
"<p>...что вы можете выбрать какие поля следует показывать в списке записей,\n"
4841
"<p>…что вы можете выбрать какие поля следует показывать в списке записей,\n"
4839
"кликнув правой кнопкой мыши на заголовке \"таблицы\".\n"
4842
"кликнув правой кнопкой мыши на заголовке \"таблицы\".\n"
4840
4843
4841
#: tips.cpp:16
4844
#: tips.cpp:16
Lines 4846-4852 msgid "" Link Here
4846
"position of the field in the list, which affects the placement in the entry\n"
4849
"position of the field in the list, which affects the placement in the entry\n"
4847
"editor.</p>\n"
4850
"editor.</p>\n"
4848
msgstr ""
4851
msgstr ""
4849
"<p>...что вы можете добавлять, редактировать или удалять поля в коллекции,\n"
4852
"<p>…что вы можете добавлять, редактировать или удалять поля в коллекции,\n"
4850
"используя Редактор полей. Кнопки стрелок позволяют вам менять позицию полей "
4853
"используя Редактор полей. Кнопки стрелок позволяют вам менять позицию полей "
4851
"в списке,\n"
4854
"в списке,\n"
4852
"которая влияет на расстановку в Редакторе записей.</p>\n"
4855
"которая влияет на расстановку в Редакторе записей.</p>\n"
Lines 4861-4867 msgid "" Link Here
4861
"\"contains\" \"Science Fiction\" (no quotes) and the second rule to\n"
4864
"\"contains\" \"Science Fiction\" (no quotes) and the second rule to\n"
4862
"have \"Read\" \"does not contain\" \"true\" (no quotes).</p>\n"
4865
"have \"Read\" \"does not contain\" \"true\" (no quotes).</p>\n"
4863
msgstr ""
4866
msgstr ""
4864
"<p>...что если вы хотите отфильтровать записи по полю \"Выбор да/нет\",\n"
4867
"<p>…что если вы хотите отфильтровать записи по полю \"Выбор да/нет\",\n"
4865
"то должно использоваться значение \"да\". Например, если вы хотите "
4868
"то должно использоваться значение \"да\". Например, если вы хотите "
4866
"посмотреть, какие детективы вы ещё не читали,\n"
4869
"посмотреть, какие детективы вы ещё не читали,\n"
4867
"нажмите кнопку \"Соответствует всему следующему\",\n"
4870
"нажмите кнопку \"Соответствует всему следующему\",\n"
Lines 4876-4882 msgid "" Link Here
4876
"<p>To show only books which are by Weber or Bujold, for example, then\n"
4879
"<p>To show only books which are by Weber or Bujold, for example, then\n"
4877
"type \"weber|bujold\" (no quotes) in the filter box.</p>\n"
4880
"type \"weber|bujold\" (no quotes) in the filter box.</p>\n"
4878
msgstr ""
4881
msgstr ""
4879
"<p>...что если в быстром фильтре используется символ, не входящий в слова "
4882
"<p>…что если в быстром фильтре используется символ, не входящий в слова "
4880
"(напр., ^)\n"
4883
"(напр., ^)\n"
4881
"текст интерпретируется как регулярное выражение.</p>\n"
4884
"текст интерпретируется как регулярное выражение.</p>\n"
4882
"<p>Например, чтобы посмотреть только книги, которые написали Пушкин и "
4885
"<p>Например, чтобы посмотреть только книги, которые написали Пушкин и "
Lines 4888-4894 msgid "" Link Here
4888
"<p>...that you can edit more than one entry at a time, by holding down\n"
4891
"<p>...that you can edit more than one entry at a time, by holding down\n"
4889
"the Shift or Ctrl key and selecting multiple entries.</p>\n"
4892
"the Shift or Ctrl key and selecting multiple entries.</p>\n"
4890
msgstr ""
4893
msgstr ""
4891
"<p>...что за один раз вы можете отредактировать больше, чем одно поле.\n"
4894
"<p>…что за один раз вы можете отредактировать больше, чем одно поле.\n"
4892
"Для этого выделите несколько полей, зажимая клавиши Shift или Ctrl.</p>\n"
4895
"Для этого выделите несколько полей, зажимая клавиши Shift или Ctrl.</p>\n"
4893
4896
4894
#: tips.cpp:45
4897
#: tips.cpp:45
Lines 4896-4902 msgid "" Link Here
4896
"<p>...that you can convert an existing book collection to a bibliography,\n"
4899
"<p>...that you can convert an existing book collection to a bibliography,\n"
4897
"which can then be exported to bibtex or Bibtexml format.</p>\n"
4900
"which can then be exported to bibtex or Bibtexml format.</p>\n"
4898
msgstr ""
4901
msgstr ""
4899
"<p>...что вы можете конвертировать текущую коллекцию книг в библиографию,\n"
4902
"<p>…что вы можете конвертировать текущую коллекцию книг в библиографию,\n"
4900
"которая может быть экспортирована в формат Bibtex или Bibtexml.</p>\n"
4903
"которая может быть экспортирована в формат Bibtex или Bibtexml.</p>\n"
4901
4904
4902
#: tips.cpp:50
4905
#: tips.cpp:50
Lines 4904-4910 msgid "" Link Here
4904
"<p>...that you can add, edit, and delete string macros for bibliographies.</"
4907
"<p>...that you can add, edit, and delete string macros for bibliographies.</"
4905
"p>\n"
4908
"p>\n"
4906
msgstr ""
4909
msgstr ""
4907
"<p>...что вы можете добавлять, редактировать и удалять строковые макросы для "
4910
"<p>…что вы можете добавлять, редактировать и удалять строковые макросы для "
4908
"библиографий.</p>\n"
4911
"библиографий.</p>\n"
4909
4912
4910
#: tips.cpp:54
4913
#: tips.cpp:54
Lines 4915-4921 msgid "" Link Here
4915
"editors\n"
4918
"editors\n"
4916
"to be sorted or printed together, for example.</p>\n"
4919
"to be sorted or printed together, for example.</p>\n"
4917
msgstr ""
4920
msgstr ""
4918
"<p>...что если более чем одно поле форматируется как \"имя\", то в "
4921
"<p>…что если более чем одно поле форматируется как \"имя\", то в "
4919
"коллекцию\n"
4922
"коллекцию\n"
4920
"добавляется дополнительная группа \"Люди\", например, для сортировки и "
4923
"добавляется дополнительная группа \"Люди\", например, для сортировки и "
4921
"печати вместе.</p>\n"
4924
"печати вместе.</p>\n"
Lines 4927-4933 msgid "" Link Here
4927
"CSS\n"
4930
"CSS\n"
4928
"within the stylesheet governs things like the font, the margins, etc.</p>\n"
4931
"within the stylesheet governs things like the font, the margins, etc.</p>\n"
4929
msgstr ""
4932
msgstr ""
4930
"<p>...что вы можете менять внешний вид, печатаемых отчетов, редактируя\n"
4933
"<p>…что вы можете менять внешний вид, печатаемых отчетов, редактируя\n"
4931
"файл <tt>tellico-printing.xsl</tt>. Этот файл создает HTML и CSS\n"
4934
"файл <tt>tellico-printing.xsl</tt>. Этот файл создает HTML и CSS\n"
4932
"с такими элементами как шрифт, размер и т.д. </p>\n"
4935
"с такими элементами как шрифт, размер и т.д. </p>\n"
4933
4936
Lines 4936-4947 msgid "" Link Here
4936
"<p>...that you can import using any generic XSL stylesheet which\n"
4939
"<p>...that you can import using any generic XSL stylesheet which\n"
4937
"outputs a valid Tellico XML file.</p>\n"
4940
"outputs a valid Tellico XML file.</p>\n"
4938
msgstr ""
4941
msgstr ""
4939
"<p>...что вы можете импортировать, используя стандартный\n"
4942
"<p>…что вы можете импортировать, используя стандартный\n"
4940
"лист стилей XSL, на выходе получая правильный файл Tellico XML.</p>\n"
4943
"лист стилей XSL, на выходе получая правильный файл Tellico XML.</p>\n"
4941
4944
4942
#: tips.cpp:71
4945
#: tips.cpp:71
4943
msgid "<p>...that double-clicking an entry item opens the Entry Editor.</p>\n"
4946
msgid "<p>...that double-clicking an entry item opens the Entry Editor.</p>\n"
4944
msgstr "<p>...что двойной щелчок на записи открывает редактор записей.</p>\n"
4947
msgstr "<p>…что двойной щелчок на записи открывает редактор записей.</p>\n"
4945
4948
4946
#: tips.cpp:75
4949
#: tips.cpp:75
4947
msgid ""
4950
msgid ""
Lines 4949-4955 msgid "" Link Here
4949
"as\n"
4952
"as\n"
4950
"&lt;b&gt;bold&lt;/b&gt; or &lt;i&gt;italic&lt;/i&gt;.</p>\n"
4953
"&lt;b&gt;bold&lt;/b&gt; or &lt;i&gt;italic&lt;/i&gt;.</p>\n"
4951
msgstr ""
4954
msgstr ""
4952
"<p>...что в любое поле типа \"Большой текст\" вы можете добавлять теги HTML, "
4955
"<p>…что в любое поле типа \"Большой текст\" вы можете добавлять теги HTML, "
4953
"такие как \n"
4956
"такие как \n"
4954
"&lt;b&gt;жирный шрифт&lt;/b&gt; или &lt;i&gt;курсивный&lt;/i&gt;.</p>\n"
4957
"&lt;b&gt;жирный шрифт&lt;/b&gt; или &lt;i&gt;курсивный&lt;/i&gt;.</p>\n"
4955
4958
Lines 4958-4964 msgid "" Link Here
4958
"<p>...that in the Detailed View, you can press a letter on the\n"
4961
"<p>...that in the Detailed View, you can press a letter on the\n"
4959
"keyboard to skip to the next entry that starts with that letter.</p>\n"
4962
"keyboard to skip to the next entry that starts with that letter.</p>\n"
4960
msgstr ""
4963
msgstr ""
4961
"<p>...что в подробном виде вы можете нажать кнопку буквы на клавиатуре для\n"
4964
"<p>…что в подробном виде вы можете нажать кнопку буквы на клавиатуре для\n"
4962
"перехода к записи, начинающейся с этой буквы.</p>\n"
4965
"перехода к записи, начинающейся с этой буквы.</p>\n"
4963
4966
4964
#: tips.cpp:85
4967
#: tips.cpp:85
Lines 4973-4981 msgid "" Link Here
4973
"types by respecting proper sorting at the same time. Consider for example\n"
4976
"types by respecting proper sorting at the same time. Consider for example\n"
4974
"a number field followed by a text subfield with entries 3b, 14a.</p>\n"
4977
"a number field followed by a text subfield with entries 3b, 14a.</p>\n"
4975
msgstr ""
4978
msgstr ""
4976
"<p>...что вы можете использовать \"зависимые\" поля для комбинации\n"
4979
"<p>…что вы можете использовать \"зависимые\" поля для комбинации\n"
4977
"нескольких раздельных полей в одно. Просто выберите тип \"зависимый\" \n"
4980
"нескольких раздельных полей в одно. Просто выберите тип \"зависимый\" \n"
4978
"и используйте описание вроде \"Значение: %{поле1}%{поле2}\", где %{...}\n"
4981
"и используйте описание вроде \"Значение: %{поле1}%{поле2}\", где %{…}\n"
4979
"заменяется на значение поля. Это полезно для использование различных\n"
4982
"заменяется на значение поля. Это полезно для использование различных\n"
4980
"полей в одном поле, т.е. для лучшей группировки и для комбинации полей\n"
4983
"полей в одном поле, т.е. для лучшей группировки и для комбинации полей\n"
4981
"различных типов с приоритетом правильной сортировки. Пример -\n"
4984
"различных типов с приоритетом правильной сортировки. Пример -\n"
(-)a/src/borrower.h (-1 / +1 lines)
Lines 78-84 public: Link Here
78
  const TQString& name() const { return m_name; }
78
  const TQString& name() const { return m_name; }
79
  const LoanVec& loans() const { return m_loans; }
79
  const LoanVec& loans() const { return m_loans; }
80
  bool isEmpty() const { return m_loans.isEmpty(); }
80
  bool isEmpty() const { return m_loans.isEmpty(); }
81
  int count() const { return m_loans.count(); }
81
  size_t count() const { return m_loans.count(); }
82
82
83
  Data::LoanPtr loan(Data::ConstEntryPtr entry);
83
  Data::LoanPtr loan(Data::ConstEntryPtr entry);
84
  void addLoan(Data::LoanPtr loan);
84
  void addLoan(Data::LoanPtr loan);
(-)a/src/borroweritem.cpp (-1 / +1 lines)
Lines 25-31 BorrowerItem::BorrowerItem(GUI::ListView* parent_, Data::BorrowerPtr borrower_) Link Here
25
  setPixmap(0, SmallIcon(TQString::fromLatin1("kaddressbook")));
25
  setPixmap(0, SmallIcon(TQString::fromLatin1("kaddressbook")));
26
}
26
}
27
27
28
int BorrowerItem::count() const {
28
size_t BorrowerItem::count() const {
29
  return m_borrower ? m_borrower->count() : GUI::CountedItem::count();
29
  return m_borrower ? m_borrower->count() : GUI::CountedItem::count();
30
}
30
}
31
31
(-)a/src/borroweritem.h (-1 / +1 lines)
Lines 29-35 public: Link Here
29
  virtual bool isBorrowerItem() const { return true; }
29
  virtual bool isBorrowerItem() const { return true; }
30
  Data::BorrowerPtr borrower() { return m_borrower; }
30
  Data::BorrowerPtr borrower() { return m_borrower; }
31
31
32
  virtual int count() const;
32
  virtual size_t count() const;
33
  virtual Data::EntryVec entries() const;
33
  virtual Data::EntryVec entries() const;
34
34
35
private:
35
private:
(-)a/src/collection.cpp (+4 lines)
Lines 878-883 bool Collection::mergeEntry(EntryPtr e1, EntryPtr e2, bool overwrite_, bool askU Link Here
878
      if(ret) {
878
      if(ret) {
879
        e1->setField(field, vals1.join(TQString::fromLatin1("; ")));
879
        e1->setField(field, vals1.join(TQString::fromLatin1("; ")));
880
      }
880
      }
881
// remove the merging due to use comments
882
// maybe in the future have a more intelligent way
883
#if 0
881
    } else if(field->flags() & Data::Field::AllowMultiple) {
884
    } else if(field->flags() & Data::Field::AllowMultiple) {
882
      // if field F allows multiple values and not a Table (see above case),
885
      // if field F allows multiple values and not a Table (see above case),
883
      // e1's F values = (e1's F values) U (e2's F values) (union)
886
      // e1's F values = (e1's F values) U (e2's F values) (union)
Lines 894-899 bool Collection::mergeEntry(EntryPtr e1, EntryPtr e2, bool overwrite_, bool askU Link Here
894
//      items1.sort();
897
//      items1.sort();
895
      e1->setField(field, items1.join(TQString::fromLatin1("; ")));
898
      e1->setField(field, items1.join(TQString::fromLatin1("; ")));
896
      ret = true;
899
      ret = true;
900
#endif
897
    } else if(askUser_ && e1->field(field) != e2->field(field)) {
901
    } else if(askUser_ && e1->field(field) != e2->field(field)) {
898
      int ret = Kernel::self()->askAndMerge(e1, e2, field);
902
      int ret = Kernel::self()->askAndMerge(e1, e2, field);
899
      if(ret == 0) {
903
      if(ret == 0) {
(-)a/src/collectionfieldsdialog.cpp (-2 / +4 lines)
Lines 254-260 CollectionFieldsDialog::CollectionFieldsDialog(Data::CollPtr coll_, TQWidget* pa Link Here
254
254
255
  // need to stretch at bottom
255
  // need to stretch at bottom
256
  vbox->setStretchFactor(new TQWidget(vbox), 1);
256
  vbox->setStretchFactor(new TQWidget(vbox), 1);
257
  TDEAcceleratorManager::manage(vbox);
258
257
259
  // keep a default collection
258
  // keep a default collection
260
  m_defaultCollection = CollectionFactory::collection(m_coll->type(), true);
259
  m_defaultCollection = CollectionFactory::collection(m_coll->type(), true);
Lines 279-284 CollectionFieldsDialog::~CollectionFieldsDialog() { Link Here
279
}
278
}
280
279
281
void CollectionFieldsDialog::slotSelectInitial() {
280
void CollectionFieldsDialog::slotSelectInitial() {
281
  // the accel management is here so that it doesn't cause conflicts with the
282
  // ones explicitly set in the constructor
283
  TDEAcceleratorManager::manage(mainWidget());
282
  m_fieldsBox->setSelected(0, true);
284
  m_fieldsBox->setSelected(0, true);
283
}
285
}
284
286
Lines 405-411 void CollectionFieldsDialog::slotNew() { Link Here
405
  }
407
  }
406
408
407
  TQString name = TQString::fromLatin1("custom") + TQString::number(m_newFields.count()+1);
409
  TQString name = TQString::fromLatin1("custom") + TQString::number(m_newFields.count()+1);
408
  int count = m_newFields.count() + 1;
410
  size_t count = m_newFields.count() + 1;
409
  TQString title = i18n("New Field") + TQString::fromLatin1(" %1").arg(count);
411
  TQString title = i18n("New Field") + TQString::fromLatin1(" %1").arg(count);
410
  while(m_fieldsBox->findItem(title)) {
412
  while(m_fieldsBox->findItem(title)) {
411
    ++count;
413
    ++count;
(-)a/src/collections/filecatalog.cpp (+17 lines)
Lines 102-105 Tellico::Data::FieldVec FileCatalog::defaultFields() { Link Here
102
  return list;
102
  return list;
103
}
103
}
104
104
105
int FileCatalog::sameEntry(Data::EntryPtr entry1_, Data::EntryPtr entry2_) const {
106
  // equal urls are always equal, even if modification time or something is different
107
  if(Entry::compareValues(entry1_, entry2_, TQString::fromLatin1("url"), this) > 0) {
108
    return 100; // good match
109
  }
110
  // if volume or created time is different, it can't be same entry
111
  if(Entry::compareValues(entry1_, entry2_, TQString::fromLatin1("volume"), this) == 0 ||
112
     Entry::compareValues(entry1_, entry2_, TQString::fromLatin1("created"), this) == 0 ||
113
     Entry::compareValues(entry1_, entry2_, TQString::fromLatin1("size"), this) == 0) {
114
    return 0;
115
  }
116
  int res = Entry::compareValues(entry1_, entry2_, TQString::fromLatin1("title"), this);
117
  res += Entry::compareValues(entry1_, entry2_, TQString::fromLatin1("description"), this);
118
  res += Entry::compareValues(entry1_, entry2_, TQString::fromLatin1("mimetype"), this);
119
  return res;
120
}
121
105
#include "filecatalog.moc"
122
#include "filecatalog.moc"
(-)a/src/collections/filecatalog.h (-1 / +2 lines)
Lines 1-5 Link Here
1
/***************************************************************************
1
/***************************************************************************
2
    copyright            : (C) 2005-2006 by Robby Stephenson
2
    copyright            : (C) 2005-2008 by Robby Stephenson
3
    email                : robby@periapsis.org
3
    email                : robby@periapsis.org
4
 ***************************************************************************/
4
 ***************************************************************************/
5
5
Lines 30-35 public: Link Here
30
  FileCatalog(bool addFields, const TQString& title = TQString());
30
  FileCatalog(bool addFields, const TQString& title = TQString());
31
31
32
  virtual Type type() const { return File; }
32
  virtual Type type() const { return File; }
33
  virtual int sameEntry(Data::EntryPtr entry1, Data::EntryPtr entry2) const;
33
34
34
  static FieldVec defaultFields();
35
  static FieldVec defaultFields();
35
};
36
};
(-)a/src/controller.cpp (+2 lines)
Lines 434-439 void Controller::slotDeleteSelectedEntries() { Link Here
434
    int ret = KMessageBox::warningContinueCancel(Kernel::self()->widget(), str, i18n("Delete Entry"),
434
    int ret = KMessageBox::warningContinueCancel(Kernel::self()->widget(), str, i18n("Delete Entry"),
435
                                                 KGuiItem(i18n("&Delete"), TQString::fromLatin1("editdelete")), dontAsk);
435
                                                 KGuiItem(i18n("&Delete"), TQString::fromLatin1("editdelete")), dontAsk);
436
    if(ret != KMessageBox::Continue) {
436
    if(ret != KMessageBox::Continue) {
437
      m_working = false;
437
      return;
438
      return;
438
    }
439
    }
439
  } else {
440
  } else {
Lines 448-453 void Controller::slotDeleteSelectedEntries() { Link Here
448
                                                     i18n("Delete Multiple Entries"),
449
                                                     i18n("Delete Multiple Entries"),
449
                                                     KGuiItem(i18n("&Delete"), TQString::fromLatin1("editdelete")), dontAsk);
450
                                                     KGuiItem(i18n("&Delete"), TQString::fromLatin1("editdelete")), dontAsk);
450
    if(ret != KMessageBox::Continue) {
451
    if(ret != KMessageBox::Continue) {
452
      m_working = false;
451
      return;
453
      return;
452
    }
454
    }
453
  }
455
  }
(-)a/src/core/Makefile.am (+2 lines)
Lines 17-22 drophandler.h drophandler.cpp \ Link Here
17
tellico-rename.upd tellico.upd \
17
tellico-rename.upd tellico.upd \
18
tellico-1-3-update.pl
18
tellico-1-3-update.pl
19
19
20
dcopinterface_DCOPIDLNG = ALL
21
20
kde_kcfg_DATA = tellico_config.kcfg
22
kde_kcfg_DATA = tellico_config.kcfg
21
23
22
updatedir = $(kde_datadir)/tdeconf_update
24
updatedir = $(kde_datadir)/tdeconf_update
(-)a/src/core/dcopinterface_skel.cpp (-24 / +24 lines)
Lines 25-35 static const char* const ApplicationInterface_ftable[16][3] = { Link Here
25
    { "bool", "exportHTML(TQString)", "exportHTML(TQString file)" },
25
    { "bool", "exportHTML(TQString)", "exportHTML(TQString file)" },
26
    { "bool", "exportCSV(TQString)", "exportCSV(TQString file)" },
26
    { "bool", "exportCSV(TQString)", "exportCSV(TQString file)" },
27
    { "bool", "exportPilotDB(TQString)", "exportPilotDB(TQString file)" },
27
    { "bool", "exportPilotDB(TQString)", "exportPilotDB(TQString file)" },
28
    { "TQValueList<long int>", "selectedEntries()", "selectedEntries()" },
28
    { "TQValueList<long>", "selectedEntries()", "selectedEntries()" },
29
    { "TQValueList<long int>", "filteredEntries()", "filteredEntries()" },
29
    { "TQValueList<long>", "filteredEntries()", "filteredEntries()" },
30
    { "void", "openFile(TQString)", "openFile(TQString file)" },
30
    { "void", "openFile(TQString)", "openFile(TQString file)" },
31
    { "void", "setFilter(TQString)", "setFilter(TQString text)" },
31
    { "void", "setFilter(TQString)", "setFilter(TQString text)" },
32
    { "bool", "showEntry(long int)", "showEntry(long int id)" },
32
    { "bool", "showEntry(long)", "showEntry(long id)" },
33
    { 0, 0, 0 }
33
    { 0, 0, 0 }
34
};
34
};
35
static const int ApplicationInterface_ftable_hiddens[15] = {
35
static const int ApplicationInterface_ftable_hiddens[15] = {
Lines 162-173 bool ApplicationInterface::process(const TQCString &fun, const TQByteArray &data Link Here
162
	TQDataStream _replyStream( replyData, IO_WriteOnly );
162
	TQDataStream _replyStream( replyData, IO_WriteOnly );
163
	_replyStream << exportPilotDB(arg0 );
163
	_replyStream << exportPilotDB(arg0 );
164
    } break;
164
    } break;
165
    case 10: { // TQValueList<long int> selectedEntries()
165
    case 10: { // TQValueList<long> selectedEntries()
166
	replyType = ApplicationInterface_ftable[10][0]; 
166
	replyType = ApplicationInterface_ftable[10][0]; 
167
	TQDataStream _replyStream( replyData, IO_WriteOnly );
167
	TQDataStream _replyStream( replyData, IO_WriteOnly );
168
	_replyStream << selectedEntries( );
168
	_replyStream << selectedEntries( );
169
    } break;
169
    } break;
170
    case 11: { // TQValueList<long int> filteredEntries()
170
    case 11: { // TQValueList<long> filteredEntries()
171
	replyType = ApplicationInterface_ftable[11][0]; 
171
	replyType = ApplicationInterface_ftable[11][0]; 
172
	TQDataStream _replyStream( replyData, IO_WriteOnly );
172
	TQDataStream _replyStream( replyData, IO_WriteOnly );
173
	_replyStream << filteredEntries( );
173
	_replyStream << filteredEntries( );
Lines 188-195 bool ApplicationInterface::process(const TQCString &fun, const TQByteArray &data Link Here
188
	replyType = ApplicationInterface_ftable[13][0]; 
188
	replyType = ApplicationInterface_ftable[13][0]; 
189
	setFilter(arg0 );
189
	setFilter(arg0 );
190
    } break;
190
    } break;
191
    case 14: { // bool showEntry(long int)
191
    case 14: { // bool showEntry(long)
192
	long int arg0;
192
	long arg0;
193
	TQDataStream arg( data, IO_ReadOnly );
193
	TQDataStream arg( data, IO_ReadOnly );
194
	if (arg.atEnd()) return false;
194
	if (arg.atEnd()) return false;
195
	arg >> arg0;
195
	arg >> arg0;
Lines 233-246 namespace Tellico { Link Here
233
233
234
static const int CollectionInterface_fhash = 11;
234
static const int CollectionInterface_fhash = 11;
235
static const char* const CollectionInterface_ftable[9][3] = {
235
static const char* const CollectionInterface_ftable[9][3] = {
236
    { "long int", "addEntry()", "addEntry()" },
236
    { "long", "addEntry()", "addEntry()" },
237
    { "bool", "removeEntry(long int)", "removeEntry(long int entryID)" },
237
    { "bool", "removeEntry(long)", "removeEntry(long entryID)" },
238
    { TQSTRINGLIST_OBJECT_NAME_STRING, "values(TQString)", "values(TQString fieldName)" },
238
    { TQSTRINGLIST_OBJECT_NAME_STRING, "values(TQString)", "values(TQString fieldName)" },
239
    { TQSTRINGLIST_OBJECT_NAME_STRING, "values(long int,TQString)", "values(long int entryID,TQString fieldName)" },
239
    { TQSTRINGLIST_OBJECT_NAME_STRING, "values(long,TQString)", "values(long entryID,TQString fieldName)" },
240
    { TQSTRINGLIST_OBJECT_NAME_STRING, "bibtexKeys()", "bibtexKeys()" },
240
    { TQSTRINGLIST_OBJECT_NAME_STRING, "bibtexKeys()", "bibtexKeys()" },
241
    { TQSTRING_OBJECT_NAME_STRING, "bibtexKey(long int)", "bibtexKey(long int entryID)" },
241
    { TQSTRING_OBJECT_NAME_STRING, "bibtexKey(long)", "bibtexKey(long entryID)" },
242
    { "bool", "setFieldValue(long int,TQString,TQString)", "setFieldValue(long int entryID,TQString fieldName,TQString value)" },
242
    { "bool", "setFieldValue(long,TQString,TQString)", "setFieldValue(long entryID,TQString fieldName,TQString value)" },
243
    { "bool", "addFieldValue(long int,TQString,TQString)", "addFieldValue(long int entryID,TQString fieldName,TQString value)" },
243
    { "bool", "addFieldValue(long,TQString,TQString)", "addFieldValue(long entryID,TQString fieldName,TQString value)" },
244
    { 0, 0, 0 }
244
    { 0, 0, 0 }
245
};
245
};
246
static const int CollectionInterface_ftable_hiddens[8] = {
246
static const int CollectionInterface_ftable_hiddens[8] = {
Lines 264-276 bool CollectionInterface::process(const TQCString &fun, const TQByteArray &data, Link Here
264
    }
264
    }
265
    int* fp = fdict->find( fun );
265
    int* fp = fdict->find( fun );
266
    switch ( fp?*fp:-1) {
266
    switch ( fp?*fp:-1) {
267
    case 0: { // long int addEntry()
267
    case 0: { // long addEntry()
268
	replyType = CollectionInterface_ftable[0][0]; 
268
	replyType = CollectionInterface_ftable[0][0]; 
269
	TQDataStream _replyStream( replyData, IO_WriteOnly );
269
	TQDataStream _replyStream( replyData, IO_WriteOnly );
270
	_replyStream << addEntry( );
270
	_replyStream << addEntry( );
271
    } break;
271
    } break;
272
    case 1: { // bool removeEntry(long int)
272
    case 1: { // bool removeEntry(long)
273
	long int arg0;
273
	long arg0;
274
	TQDataStream arg( data, IO_ReadOnly );
274
	TQDataStream arg( data, IO_ReadOnly );
275
	if (arg.atEnd()) return false;
275
	if (arg.atEnd()) return false;
276
	arg >> arg0;
276
	arg >> arg0;
Lines 287-294 bool CollectionInterface::process(const TQCString &fun, const TQByteArray &data, Link Here
287
	TQDataStream _replyStream( replyData, IO_WriteOnly );
287
	TQDataStream _replyStream( replyData, IO_WriteOnly );
288
	_replyStream << values(arg0 );
288
	_replyStream << values(arg0 );
289
    } break;
289
    } break;
290
    case 3: { // TQStringList values(long int,TQString)
290
    case 3: { // TQStringList values(long,TQString)
291
	long int arg0;
291
	long arg0;
292
	TQString arg1;
292
	TQString arg1;
293
	TQDataStream arg( data, IO_ReadOnly );
293
	TQDataStream arg( data, IO_ReadOnly );
294
	if (arg.atEnd()) return false;
294
	if (arg.atEnd()) return false;
Lines 304-311 bool CollectionInterface::process(const TQCString &fun, const TQByteArray &data, Link Here
304
	TQDataStream _replyStream( replyData, IO_WriteOnly );
304
	TQDataStream _replyStream( replyData, IO_WriteOnly );
305
	_replyStream << bibtexKeys( );
305
	_replyStream << bibtexKeys( );
306
    } break;
306
    } break;
307
    case 5: { // TQString bibtexKey(long int)
307
    case 5: { // TQString bibtexKey(long)
308
	long int arg0;
308
	long arg0;
309
	TQDataStream arg( data, IO_ReadOnly );
309
	TQDataStream arg( data, IO_ReadOnly );
310
	if (arg.atEnd()) return false;
310
	if (arg.atEnd()) return false;
311
	arg >> arg0;
311
	arg >> arg0;
Lines 313-320 bool CollectionInterface::process(const TQCString &fun, const TQByteArray &data, Link Here
313
	TQDataStream _replyStream( replyData, IO_WriteOnly );
313
	TQDataStream _replyStream( replyData, IO_WriteOnly );
314
	_replyStream << bibtexKey(arg0 );
314
	_replyStream << bibtexKey(arg0 );
315
    } break;
315
    } break;
316
    case 6: { // bool setFieldValue(long int,TQString,TQString)
316
    case 6: { // bool setFieldValue(long,TQString,TQString)
317
	long int arg0;
317
	long arg0;
318
	TQString arg1;
318
	TQString arg1;
319
	TQString arg2;
319
	TQString arg2;
320
	TQDataStream arg( data, IO_ReadOnly );
320
	TQDataStream arg( data, IO_ReadOnly );
Lines 328-335 bool CollectionInterface::process(const TQCString &fun, const TQByteArray &data, Link Here
328
	TQDataStream _replyStream( replyData, IO_WriteOnly );
328
	TQDataStream _replyStream( replyData, IO_WriteOnly );
329
	_replyStream << setFieldValue(arg0, arg1, arg2 );
329
	_replyStream << setFieldValue(arg0, arg1, arg2 );
330
    } break;
330
    } break;
331
    case 7: { // bool addFieldValue(long int,TQString,TQString)
331
    case 7: { // bool addFieldValue(long,TQString,TQString)
332
	long int arg0;
332
	long arg0;
333
	TQString arg1;
333
	TQString arg1;
334
	TQString arg2;
334
	TQString arg2;
335
	TQDataStream arg( data, IO_ReadOnly );
335
	TQDataStream arg( data, IO_ReadOnly );
(-)a/src/core/drophandler.cpp (-7 / +30 lines)
Lines 15-23 Link Here
15
#include "../mainwindow.h"
15
#include "../mainwindow.h"
16
#include "../tellico_kernel.h"
16
#include "../tellico_kernel.h"
17
#include "../tellico_debug.h"
17
#include "../tellico_debug.h"
18
#include "../translators/bibteximporter.h"
19
#include "../translators/risimporter.h"
18
20
19
#include <kurldrag.h>
21
#include <kurldrag.h>
20
#include <kmimetype.h>
22
#include <kmimetype.h>
23
#include <tdeio/netaccess.h>
24
#include <tdeio/job.h>
21
25
22
using Tellico::DropHandler;
26
using Tellico::DropHandler;
23
27
Lines 62-79 bool DropHandler::handleURL(const KURL::List& urls_) { Link Here
62
  bool hasUnknown = false;
66
  bool hasUnknown = false;
63
  KURL::List tc, pdf, bib, ris;
67
  KURL::List tc, pdf, bib, ris;
64
  for(KURL::List::ConstIterator it = urls_.begin(); it != urls_.end(); ++it) {
68
  for(KURL::List::ConstIterator it = urls_.begin(); it != urls_.end(); ++it) {
65
    KMimeType::Ptr ptr = KMimeType::findByURL(*it);
69
    const KURL& url = *it;
70
    KMimeType::Ptr ptr;
71
    // findByURL doesn't work for http, so actually query
72
    // the url itself
73
    if(url.protocol() != TQString::fromLatin1("http")) {
74
      ptr = KMimeType::findByURL(url);
75
    } else {
76
      TDEIO::MimetypeJob* job = TDEIO::mimetype(url, false /*progress*/);
77
      TDEIO::NetAccess::synchronousRun(job, Kernel::self()->widget());
78
      ptr = KMimeType::mimeType(job->mimetype());
79
    }
66
    if(ptr->is(TQString::fromLatin1("application/x-tellico"))) {
80
    if(ptr->is(TQString::fromLatin1("application/x-tellico"))) {
67
      tc << *it;
81
      tc << url;
68
    } else if(ptr->is(TQString::fromLatin1("application/pdf"))) {
82
    } else if(ptr->is(TQString::fromLatin1("application/pdf"))) {
69
      pdf << *it;
83
      pdf << url;
70
    } else if(ptr->is(TQString::fromLatin1("text/x-bibtex")) ||
84
    } else if(ptr->is(TQString::fromLatin1("text/x-bibtex")) ||
71
              ptr->is(TQString::fromLatin1("application/x-bibtex"))) {
85
              ptr->is(TQString::fromLatin1("application/x-bibtex")) ||
72
      bib << *it;
86
              ptr->is(TQString::fromLatin1("application/bibtex"))) {
87
      bib << url;
73
    } else if(ptr->is(TQString::fromLatin1("application/x-research-info-systems"))) {
88
    } else if(ptr->is(TQString::fromLatin1("application/x-research-info-systems"))) {
74
      ris << *it;
89
      ris << url;
90
    } else if(url.fileName().endsWith(TQString::fromLatin1(".bib"))) {
91
      bib << url;
92
    } else if(url.fileName().endsWith(TQString::fromLatin1(".ris"))) {
93
      ris << url;
94
    } else if(ptr->is(TQString::fromLatin1("text/plain")) && Import::BibtexImporter::maybeBibtex(url)) {
95
      bib << url;
96
    } else if(ptr->is(TQString::fromLatin1("text/plain")) && Import::RISImporter::maybeRIS(url)) {
97
      ris << url;
75
    } else {
98
    } else {
76
      myDebug() << "DropHandler::handleURL() - unrecognized type: " << ptr->name() << " (" << *it << ")" << endl;
99
      myDebug() << "DropHandler::handleURL() - unrecognized type: " << ptr->name() << " (" << url << ")" << endl;
77
      hasUnknown = true;
100
      hasUnknown = true;
78
    }
101
    }
79
  }
102
  }
(-)a/src/document.cpp (+8 lines)
Lines 15-20 Link Here
15
#include "mainwindow.h" // needed for calling fileSave()
15
#include "mainwindow.h" // needed for calling fileSave()
16
#include "collectionfactory.h"
16
#include "collectionfactory.h"
17
#include "translators/tellicoimporter.h"
17
#include "translators/tellicoimporter.h"
18
#include "translators/tellicosaximporter.h"
18
#include "translators/tellicozipexporter.h"
19
#include "translators/tellicozipexporter.h"
19
#include "translators/tellicoxmlexporter.h"
20
#include "translators/tellicoxmlexporter.h"
20
#include "collection.h"
21
#include "collection.h"
Lines 109-115 bool Document::openDocument(const KURL& url_) { Link Here
109
  }
110
  }
110
111
111
  delete m_importer;
112
  delete m_importer;
113
#ifdef SAX_SUPPORT
114
  myLog() << "Document::openDocument() - using SAX loader" << endl;
115
  m_importer = new Import::TellicoSaxImporter(url_, m_loadAllImages);
116
#else
112
  m_importer = new Import::TellicoImporter(url_, m_loadAllImages);
117
  m_importer = new Import::TellicoImporter(url_, m_loadAllImages);
118
#endif
113
119
114
  CollPtr coll = m_importer->collection();
120
  CollPtr coll = m_importer->collection();
115
  // delayed image loading only works for zip files
121
  // delayed image loading only works for zip files
Lines 146-151 bool Document::openDocument(const KURL& url_) { Link Here
146
    TQTimer::singleShot(500, this, TQT_SLOT(slotLoadAllImages()));
152
    TQTimer::singleShot(500, this, TQT_SLOT(slotLoadAllImages()));
147
  } else {
153
  } else {
148
    emit signalCollectionImagesLoaded(m_coll);
154
    emit signalCollectionImagesLoaded(m_coll);
155
    m_importer->deleteLater();
156
    m_importer = 0;
149
  }
157
  }
150
  return true;
158
  return true;
151
}
159
}
(-)a/src/document.h (+5 lines)
Lines 27-32 Link Here
27
namespace Tellico {
27
namespace Tellico {
28
  namespace Import {
28
  namespace Import {
29
    class TellicoImporter;
29
    class TellicoImporter;
30
    class TellicoSaxImporter;
30
  }
31
  }
31
  namespace Data {
32
  namespace Data {
32
33
Lines 227-233 private: Link Here
227
  bool m_loadAllImages : 1;
228
  bool m_loadAllImages : 1;
228
  KURL m_url;
229
  KURL m_url;
229
  bool m_validFile : 1;
230
  bool m_validFile : 1;
231
#ifdef SAX_SUPPORT
232
  TQGuardedPtr<Import::TellicoSaxImporter> m_importer;
233
#else
230
  TQGuardedPtr<Import::TellicoImporter> m_importer;
234
  TQGuardedPtr<Import::TellicoImporter> m_importer;
235
#endif
231
  bool m_cancelImageWriting : 1;
236
  bool m_cancelImageWriting : 1;
232
  int m_fileFormat;
237
  int m_fileFormat;
233
  bool m_allImagesOnDisk : 1;
238
  bool m_allImagesOnDisk : 1;
(-)a/src/entry.cpp (-1 / +16 lines)
Lines 252-259 bool Entry::setField(const TQString& name_, const TQString& value_) { Link Here
252
  }
252
  }
253
253
254
  // the string store is probable only useful for fields with auto-completion or choice/number/bool
254
  // the string store is probable only useful for fields with auto-completion or choice/number/bool
255
  bool shareType = f->type() == Field::Choice ||
256
                   f->type() == Field::Bool ||
257
                   f->type() == Field::Image ||
258
                   f->type() == Field::Rating ||
259
                   f->type() == Field::Number;
255
  if(!(f->flags() & Field::AllowMultiple) &&
260
  if(!(f->flags() & Field::AllowMultiple) &&
256
     ((f->type() == Field::Choice || f->type() == Field::Bool || f->type() == Field::Number) ||
261
     (shareType ||
257
      (f->type() == Field::Line && (f->flags() & Field::AllowCompletion)))) {
262
      (f->type() == Field::Line && (f->flags() & Field::AllowCompletion)))) {
258
    m_fields.insert(Tellico::shareString(name_), Tellico::shareString(value_));
263
    m_fields.insert(Tellico::shareString(name_), Tellico::shareString(value_));
259
  } else {
264
  } else {
Lines 415-420 int Entry::compareValues(EntryPtr e1, EntryPtr e2, FieldPtr f) { Link Here
415
  if(f->name() == Latin1Literal("lccn") && LCCNValidator::formalize(s1) == LCCNValidator::formalize(s2)) {
420
  if(f->name() == Latin1Literal("lccn") && LCCNValidator::formalize(s1) == LCCNValidator::formalize(s2)) {
416
    return 5;
421
    return 5;
417
  }
422
  }
423
  if(f->name() == Latin1Literal("arxiv")) {
424
    // normalize and unVersion arxiv ID
425
    s1.remove(TQRegExp(TQString::fromLatin1("^arxiv:"), false));
426
    s1.remove(TQRegExp(TQString::fromLatin1("v\\d+$")));
427
    s2.remove(TQRegExp(TQString::fromLatin1("^arxiv:"), false));
428
    s2.remove(TQRegExp(TQString::fromLatin1("v\\d+$")));
429
    if(s1 == s2) {
430
      return 5;
431
    }
432
  }
418
  if(f->formatFlag() == Field::FormatName) {
433
  if(f->formatFlag() == Field::FormatName) {
419
    s1 = e1->field(f, true).lower();
434
    s1 = e1->field(f, true).lower();
420
    s2 = e2->field(f, true).lower();
435
    s2 = e2->field(f, true).lower();
(-)a/src/entry.h (-5 / +6 lines)
Lines 84-94 public: Link Here
84
   * The assignment operator is overloaded, since the id must be different.
84
   * The assignment operator is overloaded, since the id must be different.
85
   */
85
   */
86
  Entry& operator=(const Entry& other);
86
  Entry& operator=(const Entry& other);
87
  /**
88
   * two entries are equal if all their field values are equal, except for
89
   * file catalogs which match on the url only
90
   */
91
  bool operator==(const Entry& other);
92
87
93
  ~Entry();
88
  ~Entry();
94
89
Lines 231-236 public: Link Here
231
  static TQString dependentValue(ConstEntryPtr e, const TQString& formatString, bool formatted);
226
  static TQString dependentValue(ConstEntryPtr e, const TQString& formatString, bool formatted);
232
227
233
private:
228
private:
229
  /**
230
   * two entries are equal if all their field values are equal, except for
231
   * file catalogs which match on the url only
232
   */
233
  bool operator==(const Entry& other);
234
234
  CollPtr m_coll;
235
  CollPtr m_coll;
235
  long m_id;
236
  long m_id;
236
  StringMap m_fields;
237
  StringMap m_fields;
(-)a/src/entrygroupitem.cpp (-1 / +1 lines)
Lines 131-137 TQString EntryGroupItem::key(int col_, bool) const { Link Here
131
  return m_key;
131
  return m_key;
132
}
132
}
133
133
134
int EntryGroupItem::count() const {
134
size_t EntryGroupItem::count() const {
135
  return m_group ? m_group->count() : GUI::CountedItem::count();
135
  return m_group ? m_group->count() : GUI::CountedItem::count();
136
}
136
}
137
137
(-)a/src/entrygroupitem.h (-1 / +1 lines)
Lines 51-57 public: Link Here
51
   */
51
   */
52
  virtual TQString key(int col, bool) const;
52
  virtual TQString key(int col, bool) const;
53
53
54
  virtual int count() const;
54
  virtual size_t count() const;
55
  virtual Data::EntryVec entries() const;
55
  virtual Data::EntryVec entries() const;
56
56
57
private:
57
private:
(-)a/src/entryview.cpp (-1 / +14 lines)
Lines 26-31 Link Here
26
#include "document.h"
26
#include "document.h"
27
#include "latin1literal.h"
27
#include "latin1literal.h"
28
#include "../core/drophandler.h"
28
#include "../core/drophandler.h"
29
#include "../tellico_debug.h"
29
30
30
#include <kstandarddirs.h>
31
#include <kstandarddirs.h>
31
#include <krun.h>
32
#include <krun.h>
Lines 37-46 Link Here
37
#include <tdelocale.h>
38
#include <tdelocale.h>
38
39
39
#include <tqfile.h>
40
#include <tqfile.h>
41
#include <tqclipboard.h>
40
42
41
using Tellico::EntryView;
43
using Tellico::EntryView;
44
using Tellico::EntryViewWidget;
42
45
43
EntryView::EntryView(TQWidget* parent_, const char* name_) : TDEHTMLPart(parent_, name_),
46
EntryViewWidget::EntryViewWidget(TDEHTMLPart* part, TQWidget* parent)
47
    : TDEHTMLView(part, parent) {}
48
49
// for the life of me, I could not figure out how to call the actual
50
// TDEHTMLPartBrowserExtension::copy() slot, so this will have to do
51
void EntryViewWidget::copy() {
52
  TQString text = part()->selectedText();
53
  TQApplication::clipboard()->setText(text, TQClipboard::Clipboard);
54
}
55
56
EntryView::EntryView(TQWidget* parent_, const char* name_) : TDEHTMLPart(new EntryViewWidget(this, parent_), parent_, name_),
44
    m_entry(0), m_handler(0), m_run(0), m_tempFile(0), m_useGradientImages(true), m_checkCommonFile(true) {
57
    m_entry(0), m_handler(0), m_run(0), m_tempFile(0), m_useGradientImages(true), m_checkCommonFile(true) {
45
  setJScriptEnabled(false);
58
  setJScriptEnabled(false);
46
  setJavaEnabled(false);
59
  setJavaEnabled(false);
(-)a/src/entryview.h (+11 lines)
Lines 20-25 class KTempFile; Link Here
20
#include "datavectors.h"
20
#include "datavectors.h"
21
21
22
#include <tdehtml_part.h>
22
#include <tdehtml_part.h>
23
#include <tdehtmlview.h>
23
24
24
#include <tqguardedptr.h>
25
#include <tqguardedptr.h>
25
26
Lines 103-107 private: Link Here
103
  bool m_checkCommonFile : 1;
104
  bool m_checkCommonFile : 1;
104
};
105
};
105
106
107
// stupid naming on my part, I need to subclass the view to
108
// add a slot. EntryView is really a part though
109
class EntryViewWidget : public TDEHTMLView {
110
Q_OBJECT
111
public:
112
  EntryViewWidget(TDEHTMLPart* part, TQWidget* parent);
113
public slots:
114
  void copy();
115
};
116
106
} //end namespace
117
} //end namespace
107
#endif
118
#endif
(-)a/src/fetch/Makefile.am (-1 / +3 lines)
Lines 10-16 libfetch_a_SOURCES = amazonfetcher.cpp animenfofetcher.cpp arxivfetcher.cpp \ Link Here
10
	discogsfetcher.cpp entrezfetcher.cpp execexternalfetcher.cpp fetcher.cpp fetchmanager.cpp \
10
	discogsfetcher.cpp entrezfetcher.cpp execexternalfetcher.cpp fetcher.cpp fetchmanager.cpp \
11
	gcstarpluginfetcher.cpp googlescholarfetcher.cpp ibsfetcher.cpp imdbfetcher.cpp \
11
	gcstarpluginfetcher.cpp googlescholarfetcher.cpp ibsfetcher.cpp imdbfetcher.cpp \
12
	isbndbfetcher.cpp messagehandler.cpp srufetcher.cpp yahoofetcher.cpp z3950connection.cpp \
12
	isbndbfetcher.cpp messagehandler.cpp srufetcher.cpp yahoofetcher.cpp z3950connection.cpp \
13
	z3950fetcher.cpp
13
	z3950fetcher.cpp amazonrequest.cpp hmac_sha2.c sha2.c
14
14
15
####### tdevelop will overwrite this part!!! (end)############
15
####### tdevelop will overwrite this part!!! (end)############
16
16
Lines 40-45 citebasefetcher.h citebasefetcher.cpp \ Link Here
40
bibsonomyfetcher.h bibsonomyfetcher.cpp \
40
bibsonomyfetcher.h bibsonomyfetcher.cpp \
41
googlescholarfetcher.h googlescholarfetcher.cpp \
41
googlescholarfetcher.h googlescholarfetcher.cpp \
42
discogsfetcher.h discogsfetcher.cpp \
42
discogsfetcher.h discogsfetcher.cpp \
43
amazonrequest.h amazonrequest.cpp \
44
hmac_sha2.h hmac_sha2.c sha2.h sha2.c \
43
z3950-servers.cfg
45
z3950-servers.cfg
44
46
45
appdir = $(kde_datadir)/tellico
47
appdir = $(kde_datadir)/tellico
(-)a/src/fetch/amazonfetcher.cpp (-40 / +77 lines)
Lines 12-17 Link Here
12
 ***************************************************************************/
12
 ***************************************************************************/
13
13
14
#include "amazonfetcher.h"
14
#include "amazonfetcher.h"
15
#include "amazonrequest.h"
15
#include "messagehandler.h"
16
#include "messagehandler.h"
16
#include "../translators/xslthandler.h"
17
#include "../translators/xslthandler.h"
17
#include "../translators/tellicoimporter.h"
18
#include "../translators/tellicoimporter.h"
Lines 47-53 Link Here
47
namespace {
48
namespace {
48
  static const int AMAZON_RETURNS_PER_REQUEST = 10;
49
  static const int AMAZON_RETURNS_PER_REQUEST = 10;
49
  static const int AMAZON_MAX_RETURNS_TOTAL = 20;
50
  static const int AMAZON_MAX_RETURNS_TOTAL = 20;
50
  static const char* AMAZON_ACCESS_KEY = "0834VQ4S71KYPVSYQD02";
51
  static const char* AMAZON_ASSOC_TOKEN = "tellico-20";
51
  static const char* AMAZON_ASSOC_TOKEN = "tellico-20";
52
  // need to have these in the translation file
52
  // need to have these in the translation file
53
  static const char* linkText = I18N_NOOP("Amazon Link");
53
  static const char* linkText = I18N_NOOP("Amazon Link");
Lines 84-90 const AmazonFetcher::SiteData& AmazonFetcher::siteData(int site_) { Link Here
84
84
85
AmazonFetcher::AmazonFetcher(Site site_, TQObject* parent_, const char* name_)
85
AmazonFetcher::AmazonFetcher(Site site_, TQObject* parent_, const char* name_)
86
    : Fetcher(parent_, name_), m_xsltHandler(0), m_site(site_), m_imageSize(MediumImage),
86
    : Fetcher(parent_, name_), m_xsltHandler(0), m_site(site_), m_imageSize(MediumImage),
87
      m_access(TQString::fromLatin1(AMAZON_ACCESS_KEY)),
88
      m_assoc(TQString::fromLatin1(AMAZON_ASSOC_TOKEN)), m_addLinkField(true), m_limit(AMAZON_MAX_RETURNS_TOTAL),
87
      m_assoc(TQString::fromLatin1(AMAZON_ASSOC_TOKEN)), m_addLinkField(true), m_limit(AMAZON_MAX_RETURNS_TOTAL),
89
      m_countOffset(0), m_page(1), m_total(-1), m_numResults(0), m_job(0), m_started(false) {
88
      m_countOffset(0), m_page(1), m_total(-1), m_numResults(0), m_job(0), m_started(false) {
90
  m_name = siteData(site_).title;
89
  m_name = siteData(site_).title;
Lines 109-115 bool AmazonFetcher::canFetch(int type) const { Link Here
109
         || type == Data::Collection::Bibtex
108
         || type == Data::Collection::Bibtex
110
         || type == Data::Collection::Album
109
         || type == Data::Collection::Album
111
         || type == Data::Collection::Video
110
         || type == Data::Collection::Video
112
         || type == Data::Collection::Game;
111
         || type == Data::Collection::Game
112
         || type == Data::Collection::BoardGame;
113
}
113
}
114
114
115
void AmazonFetcher::readConfigHook(const TDEConfigGroup& config_) {
115
void AmazonFetcher::readConfigHook(const TDEConfigGroup& config_) {
Lines 117-122 void AmazonFetcher::readConfigHook(const TDEConfigGroup& config_) { Link Here
117
  if(!s.isEmpty()) {
117
  if(!s.isEmpty()) {
118
    m_access = s;
118
    m_access = s;
119
  }
119
  }
120
  s = config_.readEntry("SecretKey");
121
  if(!s.isEmpty()) {
122
    m_amazonKey = s;
123
  }
120
  s = config_.readEntry("AssocToken");
124
  s = config_.readEntry("AssocToken");
121
  if(!s.isEmpty()) {
125
  if(!s.isEmpty()) {
122
    m_assoc = s;
126
    m_assoc = s;
Lines 152-186 void AmazonFetcher::doSearch() { Link Here
152
//  myDebug() << "AmazonFetcher::doSearch() - getting page " << m_page << endl;
156
//  myDebug() << "AmazonFetcher::doSearch() - getting page " << m_page << endl;
153
157
154
  const SiteData& data = siteData(m_site);
158
  const SiteData& data = siteData(m_site);
155
  KURL u = data.url;
159
156
  u.addQueryItem(TQString::fromLatin1("Service"),        TQString::fromLatin1("AWSECommerceService"));
160
  TQMap<TQString, TQString> params;
157
  u.addQueryItem(TQString::fromLatin1("AssociateTag"),   m_assoc);
161
  params.insert(TQString::fromLatin1("Service"),        TQString::fromLatin1("AWSECommerceService"));
158
  u.addQueryItem(TQString::fromLatin1("AWSAccessKeyId"), m_access);
162
  params.insert(TQString::fromLatin1("AssociateTag"),   m_assoc);
159
  u.addQueryItem(TQString::fromLatin1("Operation"),      TQString::fromLatin1("ItemSearch"));
163
  params.insert(TQString::fromLatin1("AWSAccessKeyId"), m_access);
160
  u.addQueryItem(TQString::fromLatin1("ResponseGroup"),  TQString::fromLatin1("Large"));
164
  params.insert(TQString::fromLatin1("Operation"),      TQString::fromLatin1("ItemSearch"));
161
  u.addQueryItem(TQString::fromLatin1("ItemPage"),       TQString::number(m_page));
165
  params.insert(TQString::fromLatin1("ResponseGroup"),  TQString::fromLatin1("Large"));
162
  u.addQueryItem(TQString::fromLatin1("Version"),        TQString::fromLatin1("2007-10-29"));
166
  params.insert(TQString::fromLatin1("ItemPage"),       TQString::number(m_page));
167
  params.insert(TQString::fromLatin1("Version"),        TQString::fromLatin1("2007-10-29"));
163
168
164
  const int type = Kernel::self()->collectionType();
169
  const int type = Kernel::self()->collectionType();
165
  switch(type) {
170
  switch(type) {
166
    case Data::Collection::Book:
171
    case Data::Collection::Book:
167
    case Data::Collection::ComicBook:
172
    case Data::Collection::ComicBook:
168
    case Data::Collection::Bibtex:
173
    case Data::Collection::Bibtex:
169
      u.addQueryItem(TQString::fromLatin1("SearchIndex"), TQString::fromLatin1("Books"));
174
      params.insert(TQString::fromLatin1("SearchIndex"), TQString::fromLatin1("Books"));
170
      u.addQueryItem(TQString::fromLatin1("SortIndex"), TQString::fromLatin1("relevancerank"));
175
      params.insert(TQString::fromLatin1("SortIndex"), TQString::fromLatin1("relevancerank"));
171
      break;
176
      break;
172
177
173
    case Data::Collection::Album:
178
    case Data::Collection::Album:
174
      u.addQueryItem(TQString::fromLatin1("SearchIndex"), TQString::fromLatin1("Music"));
179
      params.insert(TQString::fromLatin1("SearchIndex"), TQString::fromLatin1("Music"));
175
      break;
180
      break;
176
181
177
    case Data::Collection::Video:
182
    case Data::Collection::Video:
178
      u.addQueryItem(TQString::fromLatin1("SearchIndex"), TQString::fromLatin1("Video"));
183
      params.insert(TQString::fromLatin1("SearchIndex"), TQString::fromLatin1("Video"));
179
      u.addQueryItem(TQString::fromLatin1("SortIndex"), TQString::fromLatin1("relevancerank"));
184
      params.insert(TQString::fromLatin1("SortIndex"), TQString::fromLatin1("relevancerank"));
180
      break;
185
      break;
181
186
182
    case Data::Collection::Game:
187
    case Data::Collection::Game:
183
      u.addQueryItem(TQString::fromLatin1("SearchIndex"), TQString::fromLatin1("VideoGames"));
188
      params.insert(TQString::fromLatin1("SearchIndex"), TQString::fromLatin1("VideoGames"));
189
      break;
190
191
    case Data::Collection::BoardGame:
192
      params.insert(TQString::fromLatin1("SearchIndex"), TQString::fromLatin1("Toys"));
193
      params.insert(TQString::fromLatin1("SortIndex"), TQString::fromLatin1("relevancerank"));
184
      break;
194
      break;
185
195
186
    case Data::Collection::Coin:
196
    case Data::Collection::Coin:
Lines 188-194 void AmazonFetcher::doSearch() { Link Here
188
    case Data::Collection::Wine:
198
    case Data::Collection::Wine:
189
    case Data::Collection::Base:
199
    case Data::Collection::Base:
190
    case Data::Collection::Card:
200
    case Data::Collection::Card:
191
    default:
192
      message(i18n("%1 does not allow searching for this collection type.").arg(source()), MessageHandler::Warning);
201
      message(i18n("%1 does not allow searching for this collection type.").arg(source()), MessageHandler::Warning);
193
      stop();
202
      stop();
194
      return;
203
      return;
Lines 207-235 void AmazonFetcher::doSearch() { Link Here
207
216
208
  switch(m_key) {
217
  switch(m_key) {
209
    case Title:
218
    case Title:
210
      u.addQueryItem(TQString::fromLatin1("Title"), value, mib);
219
      params.insert(TQString::fromLatin1("Title"), value);
211
      break;
220
      break;
212
221
213
    case Person:
222
    case Person:
214
      if(type == Data::Collection::Video) {
223
      if(type == Data::Collection::Video) {
215
        u.addQueryItem(TQString::fromLatin1("Actor"),        value, mib);
224
        params.insert(TQString::fromLatin1("Actor"),        value);
216
        u.addQueryItem(TQString::fromLatin1("Director"),     value, mib);
225
        params.insert(TQString::fromLatin1("Director"),     value);
217
      } else if(type == Data::Collection::Album) {
226
      } else if(type == Data::Collection::Album) {
218
        u.addQueryItem(TQString::fromLatin1("Artist"),       value, mib);
227
        params.insert(TQString::fromLatin1("Artist"),       value);
219
      } else if(type == Data::Collection::Game) {
228
      } else if(type == Data::Collection::Game) {
220
        u.addQueryItem(TQString::fromLatin1("Manufacturer"), value, mib);
229
        params.insert(TQString::fromLatin1("Manufacturer"), value);
221
      } else { // books and bibtex
230
      } else { // books and bibtex
222
        TQString s = TQString::fromLatin1("author:%1 or publisher:%2").arg(value, value);
231
        TQString s = TQString::fromLatin1("author:%1 or publisher:%2").arg(value, value);
223
//        u.addQueryItem(TQString::fromLatin1("Author"),       value, mib);
232
//        params.insert(TQString::fromLatin1("Author"),       value, mib);
224
//        u.addQueryItem(TQString::fromLatin1("Publisher"),    value, mib);
233
//        params.insert(TQString::fromLatin1("Publisher"),    value, mib);
225
        u.addQueryItem(TQString::fromLatin1("Power"),    s, mib);
234
        params.insert(TQString::fromLatin1("Power"),    s);
226
      }
235
      }
227
      break;
236
      break;
228
237
229
    case ISBN:
238
    case ISBN:
230
      {
239
      {
231
        u.removeQueryItem(TQString::fromLatin1("Operation"));
240
        params.insert(TQString::fromLatin1("Operation"), TQString::fromLatin1("ItemLookup"));
232
        u.addQueryItem(TQString::fromLatin1("Operation"), TQString::fromLatin1("ItemLookup"));
233
241
234
        TQString s = m_value; // not encValue!!!
242
        TQString s = m_value; // not encValue!!!
235
        s.remove('-');
243
        s.remove('-');
Lines 260-306 void AmazonFetcher::doSearch() { Link Here
260
            }
268
            }
261
          }
269
          }
262
          // the default search is by ASIN, which prohibits SearchIndex
270
          // the default search is by ASIN, which prohibits SearchIndex
263
          u.removeQueryItem(TQString::fromLatin1("SearchIndex"));
271
          params.remove(TQString::fromLatin1("SearchIndex"));
264
        }
272
        }
265
        // limit to first 10
273
        // limit to first 10
266
        while(isbns.size() > 10) {
274
        while(isbns.size() > 10) {
267
          isbns.pop_back();
275
          isbns.pop_back();
268
        }
276
        }
269
        u.addQueryItem(TQString::fromLatin1("ItemId"), isbns.join(TQString::fromLatin1(",")));
277
        params.insert(TQString::fromLatin1("ItemId"), isbns.join(TQString::fromLatin1(",")));
270
        if(isbn13) {
278
        if(isbn13) {
271
          u.addQueryItem(TQString::fromLatin1("IdType"), TQString::fromLatin1("EAN"));
279
          params.insert(TQString::fromLatin1("IdType"), TQString::fromLatin1("EAN"));
272
        }
280
        }
273
      }
281
      }
274
      break;
282
      break;
275
283
276
    case UPC:
284
    case UPC:
277
      {
285
      {
278
        u.removeQueryItem(TQString::fromLatin1("Operation"));
286
        params.insert(TQString::fromLatin1("Operation"), TQString::fromLatin1("ItemLookup"));
279
        u.addQueryItem(TQString::fromLatin1("Operation"), TQString::fromLatin1("ItemLookup"));
280
        // US allows UPC, all others are EAN
287
        // US allows UPC, all others are EAN
281
        if(m_site == US) {
288
        if(m_site == US) {
282
          u.addQueryItem(TQString::fromLatin1("IdType"), TQString::fromLatin1("UPC"));
289
          params.insert(TQString::fromLatin1("IdType"), TQString::fromLatin1("UPC"));
283
        } else {
290
        } else {
284
          u.addQueryItem(TQString::fromLatin1("IdType"), TQString::fromLatin1("EAN"));
291
          params.insert(TQString::fromLatin1("IdType"), TQString::fromLatin1("EAN"));
285
        }
292
        }
286
        TQString s = m_value; // not encValue!!!
293
        TQString s = m_value; // not encValue!!!
287
        s.remove('-');
294
        s.remove('-');
288
        // limit to first 10
295
        // limit to first 10
289
        s.replace(TQString::fromLatin1("; "), TQString::fromLatin1(","));
296
        s.replace(TQString::fromLatin1("; "), TQString::fromLatin1(","));
290
        s = s.section(',', 0, 9);
297
        s = s.section(',', 0, 9);
291
        u.addQueryItem(TQString::fromLatin1("ItemId"), s);
298
        params.insert(TQString::fromLatin1("ItemId"), s);
292
      }
299
      }
293
      break;
300
      break;
294
301
295
    case Keyword:
302
    case Keyword:
296
      u.addQueryItem(TQString::fromLatin1("Keywords"), m_value, mib);
303
      params.insert(TQString::fromLatin1("Keywords"), value);
297
      break;
304
      break;
298
305
299
    case Raw:
306
    case Raw:
300
      {
307
      {
301
        TQString key = value.section('=', 0, 0).stripWhiteSpace();
308
        TQString key = value.section('=', 0, 0).stripWhiteSpace();
302
        TQString str = value.section('=', 1).stripWhiteSpace();
309
        TQString str = value.section('=', 1).stripWhiteSpace();
303
        u.addQueryItem(key, str, mib);
310
        params.insert(key, str);
304
      }
311
      }
305
      break;
312
      break;
306
313
Lines 309-317 void AmazonFetcher::doSearch() { Link Here
309
      stop();
316
      stop();
310
      return;
317
      return;
311
  }
318
  }
312
//  myDebug() << "AmazonFetcher::search() - url: " << u.url() << endl;
319
  AmazonRequest request(siteData(m_site).url, m_amazonKey);
320
  KURL newUrl = request.signedRequest(params);
321
//  myDebug() << "AmazonFetcher::search() - url: " << newUrl.url() << endl;
313
322
314
  m_job = TDEIO::get(u, false, false);
323
  m_job = TDEIO::get(newUrl, false, false);
315
  connect(m_job, TQT_SIGNAL(data(TDEIO::Job*, const TQByteArray&)),
324
  connect(m_job, TQT_SIGNAL(data(TDEIO::Job*, const TQByteArray&)),
316
          TQT_SLOT(slotData(TDEIO::Job*, const TQByteArray&)));
325
          TQT_SLOT(slotData(TDEIO::Job*, const TQByteArray&)));
317
  connect(m_job, TQT_SIGNAL(result(TDEIO::Job*)),
326
  connect(m_job, TQT_SIGNAL(result(TDEIO::Job*)),
Lines 520-525 void AmazonFetcher::slotComplete(TDEIO::Job* job_) { Link Here
520
               + entry->field(TQString::fromLatin1("year"));
529
               + entry->field(TQString::fromLatin1("year"));
521
        break;
530
        break;
522
531
532
      case Data::Collection::BoardGame:
533
        desc = entry->field(TQString::fromLatin1("publisher"))
534
               + TQChar('/')
535
               + entry->field(TQString::fromLatin1("year"));
536
        break;
537
523
      default:
538
      default:
524
        break;
539
        break;
525
    }
540
    }
Lines 889-899 AmazonFetcher::ConfigWidget::ConfigWidget(TQWidget* parent_, const AmazonFetcher Link Here
889
  TQWhatsThis::add(m_assocEdit, w);
904
  TQWhatsThis::add(m_assocEdit, w);
890
  label->setBuddy(m_assocEdit);
905
  label->setBuddy(m_assocEdit);
891
906
907
  label = new TQLabel(i18n("Access key: "), optionsWidget());
908
  l->addWidget(label, ++row, 0);
909
  m_accessEdit = new KLineEdit(optionsWidget());
910
  connect(m_accessEdit, SIGNAL(textChanged(const TQString&)), SLOT(slotSetModified()));
911
  l->addWidget(m_accessEdit, row, 1);
912
913
  label = new TQLabel(i18n("Secret Key: "), optionsWidget());
914
  l->addWidget(label, ++row, 0);
915
  m_secretKeyEdit = new KLineEdit(optionsWidget());
916
  connect(m_secretKeyEdit, SIGNAL(textChanged(const TQString&)), SLOT(slotSetModified()));
917
  l->addWidget(m_secretKeyEdit, row, 1);
918
892
  l->setRowStretch(++row, 10);
919
  l->setRowStretch(++row, 10);
893
920
894
  if(fetcher_) {
921
  if(fetcher_) {
895
    m_siteCombo->setCurrentData(fetcher_->m_site);
922
    m_siteCombo->setCurrentData(fetcher_->m_site);
896
    m_assocEdit->setText(fetcher_->m_assoc);
923
    m_assocEdit->setText(fetcher_->m_assoc);
924
    m_accessEdit->setText(fetcher_->m_access);
925
    m_secretKeyEdit->setText(fetcher_->m_amazonKey);
897
    m_imageCombo->setCurrentData(fetcher_->m_imageSize);
926
    m_imageCombo->setCurrentData(fetcher_->m_imageSize);
898
  } else { // defaults
927
  } else { // defaults
899
    m_assocEdit->setText(TQString::fromLatin1(AMAZON_ASSOC_TOKEN));
928
    m_assocEdit->setText(TQString::fromLatin1(AMAZON_ASSOC_TOKEN));
Lines 912-917 void AmazonFetcher::ConfigWidget::saveConfig(TDEConfigGroup& config_) { Link Here
912
  if(!s.isEmpty()) {
941
  if(!s.isEmpty()) {
913
    config_.writeEntry("AssocToken", s);
942
    config_.writeEntry("AssocToken", s);
914
  }
943
  }
944
  s = m_accessEdit->text().stripWhiteSpace();
945
  if(!s.isEmpty()) {
946
    config_.writeEntry("AccessKey", s);
947
  }
948
  s = m_secretKeyEdit->text().stripWhiteSpace();
949
  if(!s.isEmpty()) {
950
    config_.writeEntry("SecretKey", s);
951
  }
915
  n = m_imageCombo->currentData().toInt();
952
  n = m_imageCombo->currentData().toInt();
916
  config_.writeEntry("Image Size", n);
953
  config_.writeEntry("Image Size", n);
917
954
(-)a/src/fetch/amazonfetcher.h (+3 lines)
Lines 118-123 private: Link Here
118
  ImageSize m_imageSize;
118
  ImageSize m_imageSize;
119
119
120
  TQString m_access;
120
  TQString m_access;
121
  TQString m_amazonKey;
121
  TQString m_assoc;
122
  TQString m_assoc;
122
  bool m_addLinkField;
123
  bool m_addLinkField;
123
  int m_limit;
124
  int m_limit;
Lines 151-156 private slots: Link Here
151
152
152
private:
153
private:
153
  KLineEdit* m_assocEdit;
154
  KLineEdit* m_assocEdit;
155
  KLineEdit* m_accessEdit;
156
  KLineEdit* m_secretKeyEdit;
154
  GUI::ComboBox* m_siteCombo;
157
  GUI::ComboBox* m_siteCombo;
155
  GUI::ComboBox* m_imageCombo;
158
  GUI::ComboBox* m_imageCombo;
156
};
159
};
(-)a/src/fetch/amazonrequest.cpp (+72 lines)
Line 0 Link Here
1
/***************************************************************************
2
    Copyright (C) 2007-2009 Robby Stephenson <robby@periapsis.org>
3
 ***************************************************************************/
4
5
/***************************************************************************
6
 *                                                                         *
7
 *   This program is free software; you can redistribute it and/or         *
8
 *   modify it under the terms of the GNU General Public License as        *
9
 *   published by the Free Software Foundation; either version 2 of        *
10
 *   the License or (at your option) version 3 or any later version        *
11
 *   accepted by the membership of KDE e.V. (or its successor approved     *
12
 *   by the membership of KDE e.V.), which shall act as a proxy            *
13
 *   defined in Section 14 of version 3 of the license.                    *
14
 *                                                                         *
15
 *   This program is distributed in the hope that it will be useful,       *
16
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
17
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
18
 *   GNU General Public License for more details.                          *
19
 *                                                                         *
20
 *   You should have received a copy of the GNU General Public License     *
21
 *   along with this program.  If not, see <http://www.gnu.org/licenses/>. *
22
 *                                                                         *
23
 ***************************************************************************/
24
25
#include "amazonrequest.h"
26
#include "hmac_sha2.h"
27
#include "../tellico_debug.h"
28
29
#include <kmdcodec.h>
30
31
#include <tqdatetime.h>
32
33
using Tellico::Fetch::AmazonRequest;
34
35
AmazonRequest::AmazonRequest(const KURL& site_, const TQString& key_) : m_siteUrl(site_), m_key(key_) {
36
}
37
38
KURL AmazonRequest::signedRequest(const TQMap<TQString, TQString>& params_) const {
39
  TQMap<TQString, TQString> allParams = params_;
40
  allParams.insert(TQString::fromLatin1("Timestamp"),
41
                   TQDateTime::currentDateTime(TQt::UTC).toString(TQt::ISODate));
42
43
  TQString query;
44
  // has to be a map so that the query elements are sorted
45
  TQMap<TQString, TQString>::Iterator it;
46
  for ( it = allParams.begin(); it != allParams.end(); ++it ) {
47
    query += KURL::encode_string(it.key());
48
    query += '=';
49
    query += KURL::encode_string(it.data());
50
    query += '&';
51
  }
52
  // remove last '&'
53
  query.truncate(query.length()-1);
54
55
  const TQCString toSign = "GET\n"
56
                          + m_siteUrl.host().utf8() + '\n'
57
                          + m_siteUrl.path().utf8() + '\n'
58
                          + query.latin1();
59
60
  TQByteArray hmac_buffer;
61
  hmac_buffer.fill('\0', SHA256_DIGEST_SIZE);
62
  // subtract one from string size for toSign, not exactly sure why
63
  hmac_sha256(reinterpret_cast<unsigned char*>(const_cast<char*>(m_key.latin1())), m_key.length(),
64
              reinterpret_cast<unsigned char*>(toSign.data()), toSign.size()-1,
65
              reinterpret_cast<unsigned char*>(hmac_buffer.data()), hmac_buffer.size());
66
  const TQString sig = KURL::encode_string(KCodecs::base64Encode(hmac_buffer));
67
//  myDebug() << sig << endl;
68
69
  KURL url = m_siteUrl;
70
  url.setQuery(query + "&Signature=" + sig);
71
  return url;
72
}
(-)a/src/fetch/amazonrequest.h (+52 lines)
Line 0 Link Here
1
/***************************************************************************
2
    Copyright (C) 2007-2009 Robby Stephenson <robby@periapsis.org>
3
 ***************************************************************************/
4
5
/***************************************************************************
6
 *                                                                         *
7
 *   This program is free software; you can redistribute it and/or         *
8
 *   modify it under the terms of the GNU General Public License as        *
9
 *   published by the Free Software Foundation; either version 2 of        *
10
 *   the License or (at your option) version 3 or any later version        *
11
 *   accepted by the membership of KDE e.V. (or its successor approved     *
12
 *   by the membership of KDE e.V.), which shall act as a proxy            *
13
 *   defined in Section 14 of version 3 of the license.                    *
14
 *                                                                         *
15
 *   This program is distributed in the hope that it will be useful,       *
16
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
17
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
18
 *   GNU General Public License for more details.                          *
19
 *                                                                         *
20
 *   You should have received a copy of the GNU General Public License     *
21
 *   along with this program.  If not, see <http://www.gnu.org/licenses/>. *
22
 *                                                                         *
23
 ***************************************************************************/
24
25
#ifndef TELLICO_FETCH_AMAZONREQUEST_H
26
#define TELLICO_FETCH_AMAZONREQUEST_H
27
28
#include <kurl.h>
29
30
#include <tqmap.h>
31
32
namespace Tellico {
33
  namespace Fetch {
34
35
/**
36
 * @author Robby Stephenson
37
 */
38
class AmazonRequest {
39
public:
40
  AmazonRequest(const KURL& site, const TQString& key);
41
42
  KURL signedRequest(const TQMap<TQString, TQString>& params) const;
43
44
private:
45
  KURL m_siteUrl;
46
  TQString m_key;
47
};
48
49
  } // end Fetch namespace
50
} // end Tellico namespace
51
52
#endif
(-)a/src/fetch/arxivfetcher.cpp (+7 lines)
Lines 226-231 Tellico::Data::EntryPtr ArxivFetcher::fetchEntry(uint uid_) { Link Here
226
      }
226
      }
227
    }
227
    }
228
  }
228
  }
229
  TQRegExp versionRx(TQString::fromLatin1("v\\d+$"));
230
  // if the original search was not for a versioned ID, remove it
231
  if(m_key != ArxivID || !m_value.contains(versionRx)) {
232
    TQString arxiv = entry->field(TQString::fromLatin1("arxiv"));
233
    arxiv.remove(versionRx);
234
    entry->setField(TQString::fromLatin1("arxiv"), arxiv);
235
  }
229
  return entry;
236
  return entry;
230
}
237
}
231
238
(-)a/src/fetch/citebasefetcher.cpp (-1 / +9 lines)
Lines 163-169 void CitebaseFetcher::slotComplete(TDEIO::Job* job_) { Link Here
163
}
163
}
164
164
165
Tellico::Data::EntryPtr CitebaseFetcher::fetchEntry(uint uid_) {
165
Tellico::Data::EntryPtr CitebaseFetcher::fetchEntry(uint uid_) {
166
  return m_entries[uid_];
166
  Data::EntryPtr entry = m_entries[uid_];
167
  TQRegExp versionRx(TQString::fromLatin1("v\\d+$"));
168
  // if the original search was not for a versioned ID, remove it
169
  if(m_key != ArxivID || !m_value.contains(versionRx)) {
170
    TQString arxiv = entry->field(TQString::fromLatin1("arxiv"));
171
    arxiv.remove(versionRx);
172
    entry->setField(TQString::fromLatin1("arxiv"), arxiv);
173
  }
174
  return entry;
167
}
175
}
168
176
169
KURL CitebaseFetcher::searchURL(FetchKey key_, const TQString& value_) const {
177
KURL CitebaseFetcher::searchURL(FetchKey key_, const TQString& value_) const {
(-)a/src/fetch/entrezfetcher.cpp (-1 / +1 lines)
Lines 34-40 Link Here
34
//#define ENTREZ_TEST
34
//#define ENTREZ_TEST
35
35
36
namespace {
36
namespace {
37
  static const int ENTREZ_MAX_RETURNS_TOTAL = 25;
37
  static const size_t ENTREZ_MAX_RETURNS_TOTAL = 25;
38
  static const char* ENTREZ_BASE_URL = "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/";
38
  static const char* ENTREZ_BASE_URL = "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/";
39
  static const char* ENTREZ_SEARCH_CGI = "esearch.fcgi";
39
  static const char* ENTREZ_SEARCH_CGI = "esearch.fcgi";
40
  static const char* ENTREZ_SUMMARY_CGI = "esummary.fcgi";
40
  static const char* ENTREZ_SUMMARY_CGI = "esummary.fcgi";
(-)a/src/fetch/entrezfetcher.h (-2 / +2 lines)
Lines 92-99 private: Link Here
92
  XSLTHandler* m_xsltHandler;
92
  XSLTHandler* m_xsltHandler;
93
  TQString m_dbname;
93
  TQString m_dbname;
94
94
95
  int m_start;
95
  size_t m_start;
96
  int m_total;
96
  size_t m_total;
97
97
98
  TQByteArray m_data;
98
  TQByteArray m_data;
99
  TQMap<int, Data::EntryPtr> m_entries; // map from search result id to entry
99
  TQMap<int, Data::EntryPtr> m_entries; // map from search result id to entry
(-)a/src/fetch/googlescholarfetcher.cpp (-2 / +2 lines)
Lines 28-34 Link Here
28
#include <tqlayout.h>
28
#include <tqlayout.h>
29
29
30
namespace {
30
namespace {
31
  static const int GOOGLE_MAX_RETURNS_TOTAL = 20;
31
  static const size_t GOOGLE_MAX_RETURNS_TOTAL = 20;
32
  static const char* SCHOLAR_BASE_URL = "http://scholar.google.com/scholar";
32
  static const char* SCHOLAR_BASE_URL = "http://scholar.google.com/scholar";
33
}
33
}
34
34
Lines 157-163 void GoogleScholarFetcher::slotComplete(TDEIO::Job* job_) { Link Here
157
157
158
  TQString text = TQString::fromUtf8(m_data, m_data.size());
158
  TQString text = TQString::fromUtf8(m_data, m_data.size());
159
  TQString bibtex;
159
  TQString bibtex;
160
  int count = 0;
160
  size_t count = 0;
161
  for(int pos = text.find(m_bibtexRx); count < m_limit && pos > -1; pos = text.find(m_bibtexRx, pos+m_bibtexRx.matchedLength()), ++count) {
161
  for(int pos = text.find(m_bibtexRx); count < m_limit && pos > -1; pos = text.find(m_bibtexRx, pos+m_bibtexRx.matchedLength()), ++count) {
162
    KURL bibtexUrl(TQString::fromLatin1(SCHOLAR_BASE_URL), m_bibtexRx.cap(1));
162
    KURL bibtexUrl(TQString::fromLatin1(SCHOLAR_BASE_URL), m_bibtexRx.cap(1));
163
//    myDebug() << bibtexUrl << endl;
163
//    myDebug() << bibtexUrl << endl;
(-)a/src/fetch/googlescholarfetcher.h (-3 / +3 lines)
Lines 83-91 private slots: Link Here
83
private:
83
private:
84
  void doSearch();
84
  void doSearch();
85
85
86
  int m_limit;
86
  size_t m_limit;
87
  int m_start;
87
  size_t m_start;
88
  int m_total;
88
  size_t m_total;
89
89
90
  TQByteArray m_data;
90
  TQByteArray m_data;
91
  TQMap<int, Data::EntryPtr> m_entries;
91
  TQMap<int, Data::EntryPtr> m_entries;
(-)a/src/fetch/hmac_sha2.c (+544 lines)
Line 0 Link Here
1
/*-
2
 * HMAC-SHA-224/256/384/512 implementation
3
 * Last update: 06/15/2005
4
 * Issue date:  06/15/2005
5
 *
6
 * Copyright (C) 2005 Olivier Gay <olivier.gay@a3.epfl.ch>
7
 * All rights reserved.
8
 *
9
 * Redistribution and use in source and binary forms, with or without
10
 * modification, are permitted provided that the following conditions
11
 * are met:
12
 * 1. Redistributions of source code must retain the above copyright
13
 *    notice, this list of conditions and the following disclaimer.
14
 * 2. Redistributions in binary form must reproduce the above copyright
15
 *    notice, this list of conditions and the following disclaimer in the
16
 *    documentation and/or other materials provided with the distribution.
17
 * 3. Neither the name of the project nor the names of its contributors
18
 *    may be used to endorse or promote products derived from this software
19
 *    without specific prior written permission.
20
 *
21
 * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
22
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
25
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31
 * SUCH DAMAGE.
32
 */
33
34
#include <string.h>
35
36
#include "hmac_sha2.h"
37
38
/* HMAC-SHA-224 functions */
39
40
void hmac_sha224_init(hmac_sha224_ctx *ctx, unsigned char *key,
41
                      unsigned int key_size)
42
{
43
    unsigned int fill;
44
    unsigned int num;
45
46
    unsigned char *key_used;
47
    unsigned char key_temp[SHA224_DIGEST_SIZE];
48
    int i;
49
50
    if (key_size == SHA224_BLOCK_SIZE) {
51
        key_used = key;
52
        num = SHA224_BLOCK_SIZE;
53
    } else {
54
        if (key_size > SHA224_BLOCK_SIZE){
55
            key_used = key_temp;
56
            num = SHA224_DIGEST_SIZE;
57
            sha224(key, key_size, key_used);
58
        } else { /* key_size > SHA224_BLOCK_SIZE */
59
            key_used = key;
60
            num = key_size;
61
        }
62
        fill = SHA224_BLOCK_SIZE - num;
63
64
        memset(ctx->block_ipad + num, 0x36, fill);
65
        memset(ctx->block_opad + num, 0x5c, fill);
66
    }
67
68
    for (i = 0; i < num; i++) {
69
        ctx->block_ipad[i] = key_used[i] ^ 0x36;
70
        ctx->block_opad[i] = key_used[i] ^ 0x5c;
71
    }
72
73
    sha224_init(&ctx->ctx_inside);
74
    sha224_update(&ctx->ctx_inside, ctx->block_ipad, SHA224_BLOCK_SIZE);
75
76
    sha224_init(&ctx->ctx_outside);
77
    sha224_update(&ctx->ctx_outside, ctx->block_opad,
78
                  SHA224_BLOCK_SIZE);
79
80
    /* for hmac_reinit */
81
    memcpy(&ctx->ctx_inside_reinit, &ctx->ctx_inside,
82
           sizeof(sha224_ctx));
83
    memcpy(&ctx->ctx_outside_reinit, &ctx->ctx_outside,
84
           sizeof(sha224_ctx));
85
}
86
87
void hmac_sha224_reinit(hmac_sha224_ctx *ctx)
88
{
89
    memcpy(&ctx->ctx_inside, &ctx->ctx_inside_reinit,
90
           sizeof(sha224_ctx));
91
    memcpy(&ctx->ctx_outside, &ctx->ctx_outside_reinit,
92
           sizeof(sha224_ctx));
93
}
94
95
void hmac_sha224_update(hmac_sha224_ctx *ctx, unsigned char *message,
96
                        unsigned int message_len)
97
{
98
    sha224_update(&ctx->ctx_inside, message, message_len);
99
}
100
101
void hmac_sha224_final(hmac_sha224_ctx *ctx, unsigned char *mac,
102
                       unsigned int mac_size)
103
{
104
    unsigned char digest_inside[SHA224_DIGEST_SIZE];
105
    unsigned char mac_temp[SHA224_DIGEST_SIZE];
106
107
    sha224_final(&ctx->ctx_inside, digest_inside);
108
    sha224_update(&ctx->ctx_outside, digest_inside, SHA224_DIGEST_SIZE);
109
    sha224_final(&ctx->ctx_outside, mac_temp);
110
    memcpy(mac, mac_temp, mac_size);
111
}
112
113
void hmac_sha224(unsigned char *key, unsigned int key_size,
114
          unsigned char *message, unsigned int message_len,
115
          unsigned char *mac, unsigned mac_size)
116
{
117
    hmac_sha224_ctx ctx;
118
119
    hmac_sha224_init(&ctx, key, key_size);
120
    hmac_sha224_update(&ctx, message, message_len);
121
    hmac_sha224_final(&ctx, mac, mac_size);
122
}
123
124
/* HMAC-SHA-256 functions */
125
126
void hmac_sha256_init(hmac_sha256_ctx *ctx, unsigned char *key,
127
                      unsigned int key_size)
128
{
129
    unsigned int fill;
130
    unsigned int num;
131
132
    unsigned char *key_used;
133
    unsigned char key_temp[SHA256_DIGEST_SIZE];
134
    int i;
135
136
    if (key_size == SHA256_BLOCK_SIZE) {
137
        key_used = key;
138
        num = SHA256_BLOCK_SIZE;
139
    } else {
140
        if (key_size > SHA256_BLOCK_SIZE){
141
            key_used = key_temp;
142
            num = SHA256_DIGEST_SIZE;
143
            sha256(key, key_size, key_used);
144
        } else { /* key_size > SHA256_BLOCK_SIZE */
145
            key_used = key;
146
            num = key_size;
147
        }
148
        fill = SHA256_BLOCK_SIZE - num;
149
150
        memset(ctx->block_ipad + num, 0x36, fill);
151
        memset(ctx->block_opad + num, 0x5c, fill);
152
    }
153
154
    for (i = 0; i < num; i++) {
155
        ctx->block_ipad[i] = key_used[i] ^ 0x36;
156
        ctx->block_opad[i] = key_used[i] ^ 0x5c;
157
    }
158
159
    sha256_init(&ctx->ctx_inside);
160
    sha256_update(&ctx->ctx_inside, ctx->block_ipad, SHA256_BLOCK_SIZE);
161
162
    sha256_init(&ctx->ctx_outside);
163
    sha256_update(&ctx->ctx_outside, ctx->block_opad,
164
                  SHA256_BLOCK_SIZE);
165
166
    /* for hmac_reinit */
167
    memcpy(&ctx->ctx_inside_reinit, &ctx->ctx_inside,
168
           sizeof(sha256_ctx));
169
    memcpy(&ctx->ctx_outside_reinit, &ctx->ctx_outside,
170
           sizeof(sha256_ctx));
171
}
172
173
void hmac_sha256_reinit(hmac_sha256_ctx *ctx)
174
{
175
    memcpy(&ctx->ctx_inside, &ctx->ctx_inside_reinit,
176
           sizeof(sha256_ctx));
177
    memcpy(&ctx->ctx_outside, &ctx->ctx_outside_reinit,
178
           sizeof(sha256_ctx));
179
}
180
181
void hmac_sha256_update(hmac_sha256_ctx *ctx, unsigned char *message,
182
                        unsigned int message_len)
183
{
184
    sha256_update(&ctx->ctx_inside, message, message_len);
185
}
186
187
void hmac_sha256_final(hmac_sha256_ctx *ctx, unsigned char *mac,
188
                       unsigned int mac_size)
189
{
190
    unsigned char digest_inside[SHA256_DIGEST_SIZE];
191
    unsigned char mac_temp[SHA256_DIGEST_SIZE];
192
193
    sha256_final(&ctx->ctx_inside, digest_inside);
194
    sha256_update(&ctx->ctx_outside, digest_inside, SHA256_DIGEST_SIZE);
195
    sha256_final(&ctx->ctx_outside, mac_temp);
196
    memcpy(mac, mac_temp, mac_size);
197
}
198
199
void hmac_sha256(unsigned char *key, unsigned int key_size,
200
          unsigned char *message, unsigned int message_len,
201
          unsigned char *mac, unsigned mac_size)
202
{
203
    hmac_sha256_ctx ctx;
204
205
    hmac_sha256_init(&ctx, key, key_size);
206
    hmac_sha256_update(&ctx, message, message_len);
207
    hmac_sha256_final(&ctx, mac, mac_size);
208
}
209
210
/* HMAC-SHA-384 functions */
211
212
void hmac_sha384_init(hmac_sha384_ctx *ctx, unsigned char *key,
213
                      unsigned int key_size)
214
{
215
    unsigned int fill;
216
    unsigned int num;
217
218
    unsigned char *key_used;
219
    unsigned char key_temp[SHA384_DIGEST_SIZE];
220
    int i;
221
222
    if (key_size == SHA384_BLOCK_SIZE) {
223
        key_used = key;
224
        num = SHA384_BLOCK_SIZE;
225
    } else {
226
        if (key_size > SHA384_BLOCK_SIZE){
227
            key_used = key_temp;
228
            num = SHA384_DIGEST_SIZE;
229
            sha384(key, key_size, key_used);
230
        } else { /* key_size > SHA384_BLOCK_SIZE */
231
            key_used = key;
232
            num = key_size;
233
        }
234
        fill = SHA384_BLOCK_SIZE - num;
235
236
        memset(ctx->block_ipad + num, 0x36, fill);
237
        memset(ctx->block_opad + num, 0x5c, fill);
238
    }
239
240
    for (i = 0; i < num; i++) {
241
        ctx->block_ipad[i] = key_used[i] ^ 0x36;
242
        ctx->block_opad[i] = key_used[i] ^ 0x5c;
243
    }
244
245
    sha384_init(&ctx->ctx_inside);
246
    sha384_update(&ctx->ctx_inside, ctx->block_ipad, SHA384_BLOCK_SIZE);
247
248
    sha384_init(&ctx->ctx_outside);
249
    sha384_update(&ctx->ctx_outside, ctx->block_opad,
250
                  SHA384_BLOCK_SIZE);
251
252
    /* for hmac_reinit */
253
    memcpy(&ctx->ctx_inside_reinit, &ctx->ctx_inside,
254
           sizeof(sha384_ctx));
255
    memcpy(&ctx->ctx_outside_reinit, &ctx->ctx_outside,
256
           sizeof(sha384_ctx));
257
}
258
259
void hmac_sha384_reinit(hmac_sha384_ctx *ctx)
260
{
261
    memcpy(&ctx->ctx_inside, &ctx->ctx_inside_reinit,
262
           sizeof(sha384_ctx));
263
    memcpy(&ctx->ctx_outside, &ctx->ctx_outside_reinit,
264
           sizeof(sha384_ctx));
265
}
266
267
void hmac_sha384_update(hmac_sha384_ctx *ctx, unsigned char *message,
268
                        unsigned int message_len)
269
{
270
    sha384_update(&ctx->ctx_inside, message, message_len);
271
}
272
273
void hmac_sha384_final(hmac_sha384_ctx *ctx, unsigned char *mac,
274
                       unsigned int mac_size)
275
{
276
    unsigned char digest_inside[SHA384_DIGEST_SIZE];
277
    unsigned char mac_temp[SHA384_DIGEST_SIZE];
278
279
    sha384_final(&ctx->ctx_inside, digest_inside);
280
    sha384_update(&ctx->ctx_outside, digest_inside, SHA384_DIGEST_SIZE);
281
    sha384_final(&ctx->ctx_outside, mac_temp);
282
    memcpy(mac, mac_temp, mac_size);
283
}
284
285
void hmac_sha384(unsigned char *key, unsigned int key_size,
286
          unsigned char *message, unsigned int message_len,
287
          unsigned char *mac, unsigned mac_size)
288
{
289
    hmac_sha384_ctx ctx;
290
291
    hmac_sha384_init(&ctx, key, key_size);
292
    hmac_sha384_update(&ctx, message, message_len);
293
    hmac_sha384_final(&ctx, mac, mac_size);
294
}
295
296
/* HMAC-SHA-512 functions */
297
298
void hmac_sha512_init(hmac_sha512_ctx *ctx, unsigned char *key,
299
                      unsigned int key_size)
300
{
301
    unsigned int fill;
302
    unsigned int num;
303
304
    unsigned char *key_used;
305
    unsigned char key_temp[SHA512_DIGEST_SIZE];
306
    int i;
307
308
    if (key_size == SHA512_BLOCK_SIZE) {
309
        key_used = key;
310
        num = SHA512_BLOCK_SIZE;
311
    } else {
312
        if (key_size > SHA512_BLOCK_SIZE){
313
            key_used = key_temp;
314
            num = SHA512_DIGEST_SIZE;
315
            sha512(key, key_size, key_used);
316
        } else { /* key_size > SHA512_BLOCK_SIZE */
317
            key_used = key;
318
            num = key_size;
319
        }
320
        fill = SHA512_BLOCK_SIZE - num;
321
322
        memset(ctx->block_ipad + num, 0x36, fill);
323
        memset(ctx->block_opad + num, 0x5c, fill);
324
    }
325
326
    for (i = 0; i < num; i++) {
327
        ctx->block_ipad[i] = key_used[i] ^ 0x36;
328
        ctx->block_opad[i] = key_used[i] ^ 0x5c;
329
    }
330
331
    sha512_init(&ctx->ctx_inside);
332
    sha512_update(&ctx->ctx_inside, ctx->block_ipad, SHA512_BLOCK_SIZE);
333
334
    sha512_init(&ctx->ctx_outside);
335
    sha512_update(&ctx->ctx_outside, ctx->block_opad,
336
                  SHA512_BLOCK_SIZE);
337
338
    /* for hmac_reinit */
339
    memcpy(&ctx->ctx_inside_reinit, &ctx->ctx_inside,
340
           sizeof(sha512_ctx));
341
    memcpy(&ctx->ctx_outside_reinit, &ctx->ctx_outside,
342
           sizeof(sha512_ctx));
343
}
344
345
void hmac_sha512_reinit(hmac_sha512_ctx *ctx)
346
{
347
    memcpy(&ctx->ctx_inside, &ctx->ctx_inside_reinit,
348
           sizeof(sha512_ctx));
349
    memcpy(&ctx->ctx_outside, &ctx->ctx_outside_reinit,
350
           sizeof(sha512_ctx));
351
}
352
353
void hmac_sha512_update(hmac_sha512_ctx *ctx, unsigned char *message,
354
                        unsigned int message_len)
355
{
356
    sha512_update(&ctx->ctx_inside, message, message_len);
357
}
358
359
void hmac_sha512_final(hmac_sha512_ctx *ctx, unsigned char *mac,
360
                       unsigned int mac_size)
361
{
362
    unsigned char digest_inside[SHA512_DIGEST_SIZE];
363
    unsigned char mac_temp[SHA512_DIGEST_SIZE];
364
365
    sha512_final(&ctx->ctx_inside, digest_inside);
366
    sha512_update(&ctx->ctx_outside, digest_inside, SHA512_DIGEST_SIZE);
367
    sha512_final(&ctx->ctx_outside, mac_temp);
368
    memcpy(mac, mac_temp, mac_size);
369
}
370
371
void hmac_sha512(unsigned char *key, unsigned int key_size,
372
          unsigned char *message, unsigned int message_len,
373
          unsigned char *mac, unsigned mac_size)
374
{
375
    hmac_sha512_ctx ctx;
376
377
    hmac_sha512_init(&ctx, key, key_size);
378
    hmac_sha512_update(&ctx, message, message_len);
379
    hmac_sha512_final(&ctx, mac, mac_size);
380
}
381
382
#ifdef TEST_VECTORS
383
384
/* IETF Validation tests */
385
386
#include <stdio.h>
387
#include <stdlib.h>
388
389
void test(unsigned char *vector, unsigned char *digest,
390
          unsigned int digest_size)
391
{
392
    unsigned char output[2 * SHA512_DIGEST_SIZE + 1];
393
    int i;
394
395
    output[2 * digest_size] = '\0';
396
397
    for (i = 0; i < digest_size ; i++) {
398
       sprintf((char *) output + 2*i, "%02x", digest[i]);
399
    }
400
401
    printf("H: %s\n", output);
402
    if (strcmp((char *) vector, (char *) output)) {
403
        fprintf(stderr, "Test failed.\n");
404
        exit(1);
405
    }
406
}
407
408
int main()
409
{
410
    static unsigned char *vectors[] =
411
    {
412
        /* HMAC-SHA-224 */
413
        "896fb1128abbdf196832107cd49df33f47b4b1169912ba4f53684b22",
414
        "a30e01098bc6dbbf45690f3a7e9e6d0f8bbea2a39e6148008fd05e44",
415
        "7fb3cb3588c6c1f6ffa9694d7d6ad2649365b0c1f65d69d1ec8333ea",
416
        "6c11506874013cac6a2abc1bb382627cec6a90d86efc012de7afec5a",
417
        "0e2aea68a90c8d37c988bcdb9fca6fa8",
418
        "95e9a0db962095adaebe9b2d6f0dbce2d499f112f2d2b7273fa6870e",
419
        "3a854166ac5d9f023f54d517d0b39dbd946770db9c2b95c9f6f565d1",
420
        /* HMAC-SHA-256 */
421
        "b0344c61d8db38535ca8afceaf0bf12b881dc200c9833da726e9376c2e32cff7",
422
        "5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843",
423
        "773ea91e36800e46854db8ebd09181a72959098b3ef8c122d9635514ced565fe",
424
        "82558a389a443c0ea4cc819899f2083a85f0faa3e578f8077a2e3ff46729665b",
425
        "a3b6167473100ee06e0c796c2955552b",
426
        "60e431591ee0b67f0d8a26aacbf5b77f8e0bc6213728c5140546040f0ee37f54",
427
        "9b09ffa71b942fcb27635fbcd5b0e944bfdc63644f0713938a7f51535c3a35e2",
428
        /* HMAC-SHA-384 */
429
        "afd03944d84895626b0825f4ab46907f15f9dadbe4101ec682aa034c7cebc59c"
430
        "faea9ea9076ede7f4af152e8b2fa9cb6",
431
        "af45d2e376484031617f78d2b58a6b1b9c7ef464f5a01b47e42ec3736322445e"
432
        "8e2240ca5e69e2c78b3239ecfab21649",
433
        "88062608d3e6ad8a0aa2ace014c8a86f0aa635d947ac9febe83ef4e55966144b"
434
        "2a5ab39dc13814b94e3ab6e101a34f27",
435
        "3e8a69b7783c25851933ab6290af6ca77a9981480850009cc5577c6e1f573b4e"
436
        "6801dd23c4a7d679ccf8a386c674cffb",
437
        "3abf34c3503b2a23a46efc619baef897",
438
        "4ece084485813e9088d2c63a041bc5b44f9ef1012a2b588f3cd11f05033ac4c6"
439
        "0c2ef6ab4030fe8296248df163f44952",
440
        "6617178e941f020d351e2f254e8fd32c602420feb0b8fb9adccebb82461e99c5"
441
        "a678cc31e799176d3860e6110c46523e",
442
        /* HMAC-SHA-512 */
443
        "87aa7cdea5ef619d4ff0b4241a1d6cb02379f4e2ce4ec2787ad0b30545e17cde"
444
        "daa833b7d6b8a702038b274eaea3f4e4be9d914eeb61f1702e696c203a126854",
445
        "164b7a7bfcf819e2e395fbe73b56e0a387bd64222e831fd610270cd7ea250554"
446
        "9758bf75c05a994a6d034f65f8f0e6fdcaeab1a34d4a6b4b636e070a38bce737",
447
        "fa73b0089d56a284efb0f0756c890be9b1b5dbdd8ee81a3655f83e33b2279d39"
448
        "bf3e848279a722c806b485a47e67c807b946a337bee8942674278859e13292fb",
449
        "b0ba465637458c6990e5a8c5f61d4af7e576d97ff94b872de76f8050361ee3db"
450
        "a91ca5c11aa25eb4d679275cc5788063a5f19741120c4f2de2adebeb10a298dd",
451
        "415fad6271580a531d4179bc891d87a6",
452
        "80b24263c7c1a3ebb71493c1dd7be8b49b46d1f41b4aeec1121b013783f8f352"
453
        "6b56d037e05f2598bd0fd2215d6a1e5295e64f73f63f0aec8b915a985d786598",
454
        "e37b6a775dc87dbaa4dfa9f96e5e3ffddebd71f8867289865df5a32d20cdc944"
455
        "b6022cac3c4982b10d5eeb55c3e4de15134676fb6de0446065c97440fa8c6a58"
456
    };
457
458
    static unsigned char *messages[] =
459
    {
460
        "Hi There",
461
        "what do ya want for nothing?",
462
        NULL,
463
        NULL,
464
        "Test With Truncation",
465
        "Test Using Larger Than Block-Size Key - Hash Key First",
466
        "This is a test using a larger than block-size key "
467
        "and a larger than block-size data. The key needs"
468
        " to be hashed before being used by the HMAC algorithm."
469
    };
470
471
    unsigned char mac[SHA512_DIGEST_SIZE];
472
    unsigned char *keys[7];
473
    unsigned int keys_len[7] = {20, 4, 20, 25, 20, 131, 131};
474
    unsigned int messages2and3_len = 50;
475
    unsigned int mac_224_size, mac_256_size, mac_384_size, mac_512_size;
476
    int i;
477
478
    for (i = 0; i < 7; i++) {
479
        keys[i] = malloc(keys_len[i]);
480
        if (keys[i] == NULL) {
481
            fprintf(stderr, "Can't allocate memory\n");
482
            return 1;
483
        }
484
    }
485
486
    memset(keys[0], 0x0b, keys_len[0]);
487
    strcpy(keys[1], "Jefe");
488
    memset(keys[2], 0xaa, keys_len[2]);
489
    for (i = 0; i < keys_len[3]; i++)
490
        keys[3][i] = (unsigned char) i + 1;
491
    memset(keys[4], 0x0c, keys_len[4]);
492
    memset(keys[5], 0xaa, keys_len[5]);
493
    memset(keys[6], 0xaa, keys_len[6]);
494
495
    messages[2] = malloc(messages2and3_len + 1);
496
    messages[3] = malloc(messages2and3_len + 1);
497
498
    if (messages[2] == NULL || messages[3] == NULL) {
499
        fprintf(stderr, "Can't allocate memory\n");
500
        return 1;
501
    }
502
503
    messages[2][messages2and3_len] = '\0';
504
    messages[3][messages2and3_len] = '\0';
505
506
    memset(messages[2], 0xdd, messages2and3_len);
507
    memset(messages[3], 0xcd, messages2and3_len);
508
509
    printf("HMAC-SHA-2 IETF Validation tests\n\n");
510
511
    for (i = 0; i < 7; i++) {
512
        if (i != 4) {
513
            mac_224_size = SHA224_DIGEST_SIZE;
514
            mac_256_size = SHA256_DIGEST_SIZE;
515
            mac_384_size = SHA384_DIGEST_SIZE;
516
            mac_512_size = SHA512_DIGEST_SIZE;
517
        } else {
518
            mac_224_size = 128 / 8; mac_256_size = 128 / 8;
519
            mac_384_size = 128 / 8; mac_512_size = 128 / 8;
520
        }
521
522
        printf("Test %d:\n", i + 1);
523
524
        hmac_sha224(keys[i], keys_len[i], messages[i], strlen(messages[i]),
525
                    mac, mac_224_size);
526
        test(vectors[i], mac, mac_224_size );
527
        hmac_sha256(keys[i], keys_len[i], messages[i], strlen(messages[i]),
528
                    mac, mac_256_size);
529
        test(vectors[7 + i], mac, mac_256_size);
530
        hmac_sha384(keys[i], keys_len[i], messages[i], strlen(messages[i]),
531
                    mac, mac_384_size);
532
        test(vectors[14 + i], mac, mac_384_size);
533
        hmac_sha512(keys[i], keys_len[i], messages[i], strlen(messages[i]),
534
                    mac, mac_512_size);
535
        test(vectors[21 + i], mac, mac_512_size);
536
    }
537
538
    printf("All tests passed.\n");
539
540
    return 0;
541
}
542
543
#endif /* TEST_VECTORS */
544
(-)a/src/fetch/hmac_sha2.h (+140 lines)
Line 0 Link Here
1
/*-
2
 * HMAC-SHA-224/256/384/512 implementation
3
 * Last update: 06/15/2005
4
 * Issue date:  06/15/2005
5
 *
6
 * Copyright (C) 2005 Olivier Gay <olivier.gay@a3.epfl.ch>
7
 * All rights reserved.
8
 *
9
 * Redistribution and use in source and binary forms, with or without
10
 * modification, are permitted provided that the following conditions
11
 * are met:
12
 * 1. Redistributions of source code must retain the above copyright
13
 *    notice, this list of conditions and the following disclaimer.
14
 * 2. Redistributions in binary form must reproduce the above copyright
15
 *    notice, this list of conditions and the following disclaimer in the
16
 *    documentation and/or other materials provided with the distribution.
17
 * 3. Neither the name of the project nor the names of its contributors
18
 *    may be used to endorse or promote products derived from this software
19
 *    without specific prior written permission.
20
 *
21
 * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
22
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
25
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31
 * SUCH DAMAGE.
32
 */
33
34
#ifndef _HMAC_SHA2_H
35
#define _HMAC_SHA2_H
36
37
#include "sha2.h"
38
39
#ifdef __cplusplus
40
extern "C" {
41
#endif
42
43
typedef struct {
44
    sha224_ctx ctx_inside;
45
    sha224_ctx ctx_outside;
46
47
    /* for hmac_reinit */
48
    sha224_ctx ctx_inside_reinit;
49
    sha224_ctx ctx_outside_reinit;
50
51
    unsigned char block_ipad[SHA224_BLOCK_SIZE];
52
    unsigned char block_opad[SHA224_BLOCK_SIZE];
53
} hmac_sha224_ctx;
54
55
typedef struct {
56
    sha256_ctx ctx_inside;
57
    sha256_ctx ctx_outside;
58
59
    /* for hmac_reinit */
60
    sha256_ctx ctx_inside_reinit;
61
    sha256_ctx ctx_outside_reinit;
62
63
    unsigned char block_ipad[SHA256_BLOCK_SIZE];
64
    unsigned char block_opad[SHA256_BLOCK_SIZE];
65
} hmac_sha256_ctx;
66
67
typedef struct {
68
    sha384_ctx ctx_inside;
69
    sha384_ctx ctx_outside;
70
71
    /* for hmac_reinit */
72
    sha384_ctx ctx_inside_reinit;
73
    sha384_ctx ctx_outside_reinit;
74
75
    unsigned char block_ipad[SHA384_BLOCK_SIZE];
76
    unsigned char block_opad[SHA384_BLOCK_SIZE];
77
} hmac_sha384_ctx;
78
79
typedef struct {
80
    sha512_ctx ctx_inside;
81
    sha512_ctx ctx_outside;
82
83
    /* for hmac_reinit */
84
    sha512_ctx ctx_inside_reinit;
85
    sha512_ctx ctx_outside_reinit;
86
87
    unsigned char block_ipad[SHA512_BLOCK_SIZE];
88
    unsigned char block_opad[SHA512_BLOCK_SIZE];
89
} hmac_sha512_ctx;
90
91
void hmac_sha224_init(hmac_sha224_ctx *ctx, unsigned char *key,
92
                      unsigned int key_size);
93
void hmac_sha224_reinit(hmac_sha224_ctx *ctx);
94
void hmac_sha224_update(hmac_sha224_ctx *ctx, unsigned char *message,
95
                        unsigned int message_len);
96
void hmac_sha224_final(hmac_sha224_ctx *ctx, unsigned char *mac,
97
                       unsigned int mac_size);
98
void hmac_sha224(unsigned char *key, unsigned int key_size,
99
                 unsigned char *message, unsigned int message_len,
100
                 unsigned char *mac, unsigned mac_size);
101
102
void hmac_sha256_init(hmac_sha256_ctx *ctx, unsigned char *key,
103
                      unsigned int key_size);
104
void hmac_sha256_reinit(hmac_sha256_ctx *ctx);
105
void hmac_sha256_update(hmac_sha256_ctx *ctx, unsigned char *message,
106
                        unsigned int message_len);
107
void hmac_sha256_final(hmac_sha256_ctx *ctx, unsigned char *mac,
108
                       unsigned int mac_size);
109
void hmac_sha256(unsigned char *key, unsigned int key_size,
110
                 unsigned char *message, unsigned int message_len,
111
                 unsigned char *mac, unsigned mac_size);
112
113
void hmac_sha384_init(hmac_sha384_ctx *ctx, unsigned char *key,
114
                      unsigned int key_size);
115
void hmac_sha384_reinit(hmac_sha384_ctx *ctx);
116
void hmac_sha384_update(hmac_sha384_ctx *ctx, unsigned char *message,
117
                        unsigned int message_len);
118
void hmac_sha384_final(hmac_sha384_ctx *ctx, unsigned char *mac,
119
                       unsigned int mac_size);
120
void hmac_sha384(unsigned char *key, unsigned int key_size,
121
                 unsigned char *message, unsigned int message_len,
122
                 unsigned char *mac, unsigned mac_size);
123
124
void hmac_sha512_init(hmac_sha512_ctx *ctx, unsigned char *key,
125
                      unsigned int key_size);
126
void hmac_sha512_reinit(hmac_sha512_ctx *ctx);
127
void hmac_sha512_update(hmac_sha512_ctx *ctx, unsigned char *message,
128
                        unsigned int message_len);
129
void hmac_sha512_final(hmac_sha512_ctx *ctx, unsigned char *mac,
130
                       unsigned int mac_size);
131
void hmac_sha512(unsigned char *key, unsigned int key_size,
132
                 unsigned char *message, unsigned int message_len,
133
                 unsigned char *mac, unsigned mac_size);
134
135
#ifdef __cplusplus
136
}
137
#endif
138
139
#endif /* ! _HMAC_SHA2_H */
140
(-)a/src/fetch/ibsfetcher.cpp (-1 / +2 lines)
Lines 156-162 void IBSFetcher::slotComplete(TDEIO::Job* job_) { Link Here
156
156
157
  TQString s = Tellico::decodeHTML(TQString(m_data));
157
  TQString s = Tellico::decodeHTML(TQString(m_data));
158
  // really specific regexp
158
  // really specific regexp
159
  TQString pat = TQString::fromLatin1("http://www.internetbookshop.it/code/");
159
  //TQString pat = TQString::fromLatin1("http://www.internetbookshop.it/code/");
160
  TQString pat = TQString::fromLatin1("http://www.ibs.it/code/");
160
  TQRegExp anchorRx(TQString::fromLatin1("<a\\s+[^>]*href\\s*=\\s*[\"'](") +
161
  TQRegExp anchorRx(TQString::fromLatin1("<a\\s+[^>]*href\\s*=\\s*[\"'](") +
161
                   TQRegExp::escape(pat) +
162
                   TQRegExp::escape(pat) +
162
                   TQString::fromLatin1("[^\"]*)\"[^>]*><b>([^<]+)<"), false);
163
                   TQString::fromLatin1("[^\"]*)\"[^>]*><b>([^<]+)<"), false);
(-)a/src/fetch/imdbfetcher.cpp (-1 / +3 lines)
Lines 799-805 void IMDBFetcher::doPlot(const TQString& str_, Data::EntryPtr entry_, const KURL Link Here
799
799
800
  TQString thisPlot;
800
  TQString thisPlot;
801
  // match until next opening tag
801
  // match until next opening tag
802
  TQRegExp plotRx(TQString::fromLatin1("plot (?:outline|summary):(.*)<[^/].*</"), false);
802
  TQRegExp plotRx(TQString::fromLatin1("plot\\s*(?:outline|summary)?:(.*)<[^/].*</"), false);
803
  plotRx.setMinimal(true);
803
  plotRx.setMinimal(true);
804
  TQRegExp plotURLRx(TQString::fromLatin1("<a\\s+.*href\\s*=\\s*\".*/title/.*/plotsummary\""), false);
804
  TQRegExp plotURLRx(TQString::fromLatin1("<a\\s+.*href\\s*=\\s*\".*/title/.*/plotsummary\""), false);
805
  plotURLRx.setMinimal(true);
805
  plotURLRx.setMinimal(true);
Lines 828-833 void IMDBFetcher::doPlot(const TQString& str_, Data::EntryPtr entry_, const KURL Link Here
828
      if(plotRx.search(plotPage) > -1) {
828
      if(plotRx.search(plotPage) > -1) {
829
        TQString userPlot = plotRx.cap(1);
829
        TQString userPlot = plotRx.cap(1);
830
        userPlot.remove(*s_tagRx); // remove HTML tags
830
        userPlot.remove(*s_tagRx); // remove HTML tags
831
        // remove last little "written by", if there
832
        userPlot.remove(TQRegExp(TQString::fromLatin1("\\s*written by.*$"), false));
831
        entry_->setField(TQString::fromLatin1("plot"), Tellico::decodeHTML(userPlot));
833
        entry_->setField(TQString::fromLatin1("plot"), Tellico::decodeHTML(userPlot));
832
      }
834
      }
833
    }
835
    }
(-)a/src/fetch/sha2.c (+950 lines)
Line 0 Link Here
1
/*
2
 * FIPS 180-2 SHA-224/256/384/512 implementation
3
 * Last update: 02/02/2007
4
 * Issue date:  04/30/2005
5
 *
6
 * Copyright (C) 2005, 2007 Olivier Gay <olivier.gay@a3.epfl.ch>
7
 * All rights reserved.
8
 *
9
 * Redistribution and use in source and binary forms, with or without
10
 * modification, are permitted provided that the following conditions
11
 * are met:
12
 * 1. Redistributions of source code must retain the above copyright
13
 *    notice, this list of conditions and the following disclaimer.
14
 * 2. Redistributions in binary form must reproduce the above copyright
15
 *    notice, this list of conditions and the following disclaimer in the
16
 *    documentation and/or other materials provided with the distribution.
17
 * 3. Neither the name of the project nor the names of its contributors
18
 *    may be used to endorse or promote products derived from this software
19
 *    without specific prior written permission.
20
 *
21
 * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
22
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
25
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31
 * SUCH DAMAGE.
32
 */
33
34
#if 0
35
#define UNROLL_LOOPS /* Enable loops unrolling */
36
#endif
37
38
#include <string.h>
39
40
#include "sha2.h"
41
42
#define SHFR(x, n)    (x >> n)
43
#define ROTR(x, n)   ((x >> n) | (x << ((sizeof(x) << 3) - n)))
44
#define ROTL(x, n)   ((x << n) | (x >> ((sizeof(x) << 3) - n)))
45
#define CH(x, y, z)  ((x & y) ^ (~x & z))
46
#define MAJ(x, y, z) ((x & y) ^ (x & z) ^ (y & z))
47
48
#define SHA256_F1(x) (ROTR(x,  2) ^ ROTR(x, 13) ^ ROTR(x, 22))
49
#define SHA256_F2(x) (ROTR(x,  6) ^ ROTR(x, 11) ^ ROTR(x, 25))
50
#define SHA256_F3(x) (ROTR(x,  7) ^ ROTR(x, 18) ^ SHFR(x,  3))
51
#define SHA256_F4(x) (ROTR(x, 17) ^ ROTR(x, 19) ^ SHFR(x, 10))
52
53
#define SHA512_F1(x) (ROTR(x, 28) ^ ROTR(x, 34) ^ ROTR(x, 39))
54
#define SHA512_F2(x) (ROTR(x, 14) ^ ROTR(x, 18) ^ ROTR(x, 41))
55
#define SHA512_F3(x) (ROTR(x,  1) ^ ROTR(x,  8) ^ SHFR(x,  7))
56
#define SHA512_F4(x) (ROTR(x, 19) ^ ROTR(x, 61) ^ SHFR(x,  6))
57
58
#define UNPACK32(x, str)                      \
59
{                                             \
60
    *((str) + 3) = (uint8) ((x)      );       \
61
    *((str) + 2) = (uint8) ((x) >>  8);       \
62
    *((str) + 1) = (uint8) ((x) >> 16);       \
63
    *((str) + 0) = (uint8) ((x) >> 24);       \
64
}
65
66
#define PACK32(str, x)                        \
67
{                                             \
68
    *(x) =   ((uint32) *((str) + 3)      )    \
69
           | ((uint32) *((str) + 2) <<  8)    \
70
           | ((uint32) *((str) + 1) << 16)    \
71
           | ((uint32) *((str) + 0) << 24);   \
72
}
73
74
#define UNPACK64(x, str)                      \
75
{                                             \
76
    *((str) + 7) = (uint8) ((x)      );       \
77
    *((str) + 6) = (uint8) ((x) >>  8);       \
78
    *((str) + 5) = (uint8) ((x) >> 16);       \
79
    *((str) + 4) = (uint8) ((x) >> 24);       \
80
    *((str) + 3) = (uint8) ((x) >> 32);       \
81
    *((str) + 2) = (uint8) ((x) >> 40);       \
82
    *((str) + 1) = (uint8) ((x) >> 48);       \
83
    *((str) + 0) = (uint8) ((x) >> 56);       \
84
}
85
86
#define PACK64(str, x)                        \
87
{                                             \
88
    *(x) =   ((uint64) *((str) + 7)      )    \
89
           | ((uint64) *((str) + 6) <<  8)    \
90
           | ((uint64) *((str) + 5) << 16)    \
91
           | ((uint64) *((str) + 4) << 24)    \
92
           | ((uint64) *((str) + 3) << 32)    \
93
           | ((uint64) *((str) + 2) << 40)    \
94
           | ((uint64) *((str) + 1) << 48)    \
95
           | ((uint64) *((str) + 0) << 56);   \
96
}
97
98
/* Macros used for loops unrolling */
99
100
#define SHA256_SCR(i)                         \
101
{                                             \
102
    w[i] =  SHA256_F4(w[i -  2]) + w[i -  7]  \
103
          + SHA256_F3(w[i - 15]) + w[i - 16]; \
104
}
105
106
#define SHA512_SCR(i)                         \
107
{                                             \
108
    w[i] =  SHA512_F4(w[i -  2]) + w[i -  7]  \
109
          + SHA512_F3(w[i - 15]) + w[i - 16]; \
110
}
111
112
#define SHA256_EXP(a, b, c, d, e, f, g, h, j)               \
113
{                                                           \
114
    t1 = wv[h] + SHA256_F2(wv[e]) + CH(wv[e], wv[f], wv[g]) \
115
         + sha256_k[j] + w[j];                              \
116
    t2 = SHA256_F1(wv[a]) + MAJ(wv[a], wv[b], wv[c]);       \
117
    wv[d] += t1;                                            \
118
    wv[h] = t1 + t2;                                        \
119
}
120
121
#define SHA512_EXP(a, b, c, d, e, f, g ,h, j)               \
122
{                                                           \
123
    t1 = wv[h] + SHA512_F2(wv[e]) + CH(wv[e], wv[f], wv[g]) \
124
         + sha512_k[j] + w[j];                              \
125
    t2 = SHA512_F1(wv[a]) + MAJ(wv[a], wv[b], wv[c]);       \
126
    wv[d] += t1;                                            \
127
    wv[h] = t1 + t2;                                        \
128
}
129
130
uint32 sha224_h0[8] =
131
            {0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,
132
             0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4};
133
134
uint32 sha256_h0[8] =
135
            {0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
136
             0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19};
137
138
uint64 sha384_h0[8] =
139
            {0xcbbb9d5dc1059ed8ULL, 0x629a292a367cd507ULL,
140
             0x9159015a3070dd17ULL, 0x152fecd8f70e5939ULL,
141
             0x67332667ffc00b31ULL, 0x8eb44a8768581511ULL,
142
             0xdb0c2e0d64f98fa7ULL, 0x47b5481dbefa4fa4ULL};
143
144
uint64 sha512_h0[8] =
145
            {0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL,
146
             0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL,
147
             0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL,
148
             0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL};
149
150
uint32 sha256_k[64] =
151
            {0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
152
             0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
153
             0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
154
             0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
155
             0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
156
             0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
157
             0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
158
             0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
159
             0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
160
             0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
161
             0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
162
             0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
163
             0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
164
             0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
165
             0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
166
             0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2};
167
168
uint64 sha512_k[80] =
169
            {0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL,
170
             0xb5c0fbcfec4d3b2fULL, 0xe9b5dba58189dbbcULL,
171
             0x3956c25bf348b538ULL, 0x59f111f1b605d019ULL,
172
             0x923f82a4af194f9bULL, 0xab1c5ed5da6d8118ULL,
173
             0xd807aa98a3030242ULL, 0x12835b0145706fbeULL,
174
             0x243185be4ee4b28cULL, 0x550c7dc3d5ffb4e2ULL,
175
             0x72be5d74f27b896fULL, 0x80deb1fe3b1696b1ULL,
176
             0x9bdc06a725c71235ULL, 0xc19bf174cf692694ULL,
177
             0xe49b69c19ef14ad2ULL, 0xefbe4786384f25e3ULL,
178
             0x0fc19dc68b8cd5b5ULL, 0x240ca1cc77ac9c65ULL,
179
             0x2de92c6f592b0275ULL, 0x4a7484aa6ea6e483ULL,
180
             0x5cb0a9dcbd41fbd4ULL, 0x76f988da831153b5ULL,
181
             0x983e5152ee66dfabULL, 0xa831c66d2db43210ULL,
182
             0xb00327c898fb213fULL, 0xbf597fc7beef0ee4ULL,
183
             0xc6e00bf33da88fc2ULL, 0xd5a79147930aa725ULL,
184
             0x06ca6351e003826fULL, 0x142929670a0e6e70ULL,
185
             0x27b70a8546d22ffcULL, 0x2e1b21385c26c926ULL,
186
             0x4d2c6dfc5ac42aedULL, 0x53380d139d95b3dfULL,
187
             0x650a73548baf63deULL, 0x766a0abb3c77b2a8ULL,
188
             0x81c2c92e47edaee6ULL, 0x92722c851482353bULL,
189
             0xa2bfe8a14cf10364ULL, 0xa81a664bbc423001ULL,
190
             0xc24b8b70d0f89791ULL, 0xc76c51a30654be30ULL,
191
             0xd192e819d6ef5218ULL, 0xd69906245565a910ULL,
192
             0xf40e35855771202aULL, 0x106aa07032bbd1b8ULL,
193
             0x19a4c116b8d2d0c8ULL, 0x1e376c085141ab53ULL,
194
             0x2748774cdf8eeb99ULL, 0x34b0bcb5e19b48a8ULL,
195
             0x391c0cb3c5c95a63ULL, 0x4ed8aa4ae3418acbULL,
196
             0x5b9cca4f7763e373ULL, 0x682e6ff3d6b2b8a3ULL,
197
             0x748f82ee5defb2fcULL, 0x78a5636f43172f60ULL,
198
             0x84c87814a1f0ab72ULL, 0x8cc702081a6439ecULL,
199
             0x90befffa23631e28ULL, 0xa4506cebde82bde9ULL,
200
             0xbef9a3f7b2c67915ULL, 0xc67178f2e372532bULL,
201
             0xca273eceea26619cULL, 0xd186b8c721c0c207ULL,
202
             0xeada7dd6cde0eb1eULL, 0xf57d4f7fee6ed178ULL,
203
             0x06f067aa72176fbaULL, 0x0a637dc5a2c898a6ULL,
204
             0x113f9804bef90daeULL, 0x1b710b35131c471bULL,
205
             0x28db77f523047d84ULL, 0x32caab7b40c72493ULL,
206
             0x3c9ebe0a15c9bebcULL, 0x431d67c49c100d4cULL,
207
             0x4cc5d4becb3e42b6ULL, 0x597f299cfc657e2aULL,
208
             0x5fcb6fab3ad6faecULL, 0x6c44198c4a475817ULL};
209
210
/* SHA-256 functions */
211
212
void sha256_transf(sha256_ctx *ctx, const unsigned char *message,
213
                   unsigned int block_nb)
214
{
215
    uint32 w[64];
216
    uint32 wv[8];
217
    uint32 t1, t2;
218
    const unsigned char *sub_block;
219
    int i;
220
221
#ifndef UNROLL_LOOPS
222
    int j;
223
#endif
224
225
    for (i = 0; i < (int) block_nb; i++) {
226
        sub_block = message + (i << 6);
227
228
#ifndef UNROLL_LOOPS
229
        for (j = 0; j < 16; j++) {
230
            PACK32(&sub_block[j << 2], &w[j]);
231
        }
232
233
        for (j = 16; j < 64; j++) {
234
            SHA256_SCR(j);
235
        }
236
237
        for (j = 0; j < 8; j++) {
238
            wv[j] = ctx->h[j];
239
        }
240
241
        for (j = 0; j < 64; j++) {
242
            t1 = wv[7] + SHA256_F2(wv[4]) + CH(wv[4], wv[5], wv[6])
243
                + sha256_k[j] + w[j];
244
            t2 = SHA256_F1(wv[0]) + MAJ(wv[0], wv[1], wv[2]);
245
            wv[7] = wv[6];
246
            wv[6] = wv[5];
247
            wv[5] = wv[4];
248
            wv[4] = wv[3] + t1;
249
            wv[3] = wv[2];
250
            wv[2] = wv[1];
251
            wv[1] = wv[0];
252
            wv[0] = t1 + t2;
253
        }
254
255
        for (j = 0; j < 8; j++) {
256
            ctx->h[j] += wv[j];
257
        }
258
#else
259
        PACK32(&sub_block[ 0], &w[ 0]); PACK32(&sub_block[ 4], &w[ 1]);
260
        PACK32(&sub_block[ 8], &w[ 2]); PACK32(&sub_block[12], &w[ 3]);
261
        PACK32(&sub_block[16], &w[ 4]); PACK32(&sub_block[20], &w[ 5]);
262
        PACK32(&sub_block[24], &w[ 6]); PACK32(&sub_block[28], &w[ 7]);
263
        PACK32(&sub_block[32], &w[ 8]); PACK32(&sub_block[36], &w[ 9]);
264
        PACK32(&sub_block[40], &w[10]); PACK32(&sub_block[44], &w[11]);
265
        PACK32(&sub_block[48], &w[12]); PACK32(&sub_block[52], &w[13]);
266
        PACK32(&sub_block[56], &w[14]); PACK32(&sub_block[60], &w[15]);
267
268
        SHA256_SCR(16); SHA256_SCR(17); SHA256_SCR(18); SHA256_SCR(19);
269
        SHA256_SCR(20); SHA256_SCR(21); SHA256_SCR(22); SHA256_SCR(23);
270
        SHA256_SCR(24); SHA256_SCR(25); SHA256_SCR(26); SHA256_SCR(27);
271
        SHA256_SCR(28); SHA256_SCR(29); SHA256_SCR(30); SHA256_SCR(31);
272
        SHA256_SCR(32); SHA256_SCR(33); SHA256_SCR(34); SHA256_SCR(35);
273
        SHA256_SCR(36); SHA256_SCR(37); SHA256_SCR(38); SHA256_SCR(39);
274
        SHA256_SCR(40); SHA256_SCR(41); SHA256_SCR(42); SHA256_SCR(43);
275
        SHA256_SCR(44); SHA256_SCR(45); SHA256_SCR(46); SHA256_SCR(47);
276
        SHA256_SCR(48); SHA256_SCR(49); SHA256_SCR(50); SHA256_SCR(51);
277
        SHA256_SCR(52); SHA256_SCR(53); SHA256_SCR(54); SHA256_SCR(55);
278
        SHA256_SCR(56); SHA256_SCR(57); SHA256_SCR(58); SHA256_SCR(59);
279
        SHA256_SCR(60); SHA256_SCR(61); SHA256_SCR(62); SHA256_SCR(63);
280
281
        wv[0] = ctx->h[0]; wv[1] = ctx->h[1];
282
        wv[2] = ctx->h[2]; wv[3] = ctx->h[3];
283
        wv[4] = ctx->h[4]; wv[5] = ctx->h[5];
284
        wv[6] = ctx->h[6]; wv[7] = ctx->h[7];
285
286
        SHA256_EXP(0,1,2,3,4,5,6,7, 0); SHA256_EXP(7,0,1,2,3,4,5,6, 1);
287
        SHA256_EXP(6,7,0,1,2,3,4,5, 2); SHA256_EXP(5,6,7,0,1,2,3,4, 3);
288
        SHA256_EXP(4,5,6,7,0,1,2,3, 4); SHA256_EXP(3,4,5,6,7,0,1,2, 5);
289
        SHA256_EXP(2,3,4,5,6,7,0,1, 6); SHA256_EXP(1,2,3,4,5,6,7,0, 7);
290
        SHA256_EXP(0,1,2,3,4,5,6,7, 8); SHA256_EXP(7,0,1,2,3,4,5,6, 9);
291
        SHA256_EXP(6,7,0,1,2,3,4,5,10); SHA256_EXP(5,6,7,0,1,2,3,4,11);
292
        SHA256_EXP(4,5,6,7,0,1,2,3,12); SHA256_EXP(3,4,5,6,7,0,1,2,13);
293
        SHA256_EXP(2,3,4,5,6,7,0,1,14); SHA256_EXP(1,2,3,4,5,6,7,0,15);
294
        SHA256_EXP(0,1,2,3,4,5,6,7,16); SHA256_EXP(7,0,1,2,3,4,5,6,17);
295
        SHA256_EXP(6,7,0,1,2,3,4,5,18); SHA256_EXP(5,6,7,0,1,2,3,4,19);
296
        SHA256_EXP(4,5,6,7,0,1,2,3,20); SHA256_EXP(3,4,5,6,7,0,1,2,21);
297
        SHA256_EXP(2,3,4,5,6,7,0,1,22); SHA256_EXP(1,2,3,4,5,6,7,0,23);
298
        SHA256_EXP(0,1,2,3,4,5,6,7,24); SHA256_EXP(7,0,1,2,3,4,5,6,25);
299
        SHA256_EXP(6,7,0,1,2,3,4,5,26); SHA256_EXP(5,6,7,0,1,2,3,4,27);
300
        SHA256_EXP(4,5,6,7,0,1,2,3,28); SHA256_EXP(3,4,5,6,7,0,1,2,29);
301
        SHA256_EXP(2,3,4,5,6,7,0,1,30); SHA256_EXP(1,2,3,4,5,6,7,0,31);
302
        SHA256_EXP(0,1,2,3,4,5,6,7,32); SHA256_EXP(7,0,1,2,3,4,5,6,33);
303
        SHA256_EXP(6,7,0,1,2,3,4,5,34); SHA256_EXP(5,6,7,0,1,2,3,4,35);
304
        SHA256_EXP(4,5,6,7,0,1,2,3,36); SHA256_EXP(3,4,5,6,7,0,1,2,37);
305
        SHA256_EXP(2,3,4,5,6,7,0,1,38); SHA256_EXP(1,2,3,4,5,6,7,0,39);
306
        SHA256_EXP(0,1,2,3,4,5,6,7,40); SHA256_EXP(7,0,1,2,3,4,5,6,41);
307
        SHA256_EXP(6,7,0,1,2,3,4,5,42); SHA256_EXP(5,6,7,0,1,2,3,4,43);
308
        SHA256_EXP(4,5,6,7,0,1,2,3,44); SHA256_EXP(3,4,5,6,7,0,1,2,45);
309
        SHA256_EXP(2,3,4,5,6,7,0,1,46); SHA256_EXP(1,2,3,4,5,6,7,0,47);
310
        SHA256_EXP(0,1,2,3,4,5,6,7,48); SHA256_EXP(7,0,1,2,3,4,5,6,49);
311
        SHA256_EXP(6,7,0,1,2,3,4,5,50); SHA256_EXP(5,6,7,0,1,2,3,4,51);
312
        SHA256_EXP(4,5,6,7,0,1,2,3,52); SHA256_EXP(3,4,5,6,7,0,1,2,53);
313
        SHA256_EXP(2,3,4,5,6,7,0,1,54); SHA256_EXP(1,2,3,4,5,6,7,0,55);
314
        SHA256_EXP(0,1,2,3,4,5,6,7,56); SHA256_EXP(7,0,1,2,3,4,5,6,57);
315
        SHA256_EXP(6,7,0,1,2,3,4,5,58); SHA256_EXP(5,6,7,0,1,2,3,4,59);
316
        SHA256_EXP(4,5,6,7,0,1,2,3,60); SHA256_EXP(3,4,5,6,7,0,1,2,61);
317
        SHA256_EXP(2,3,4,5,6,7,0,1,62); SHA256_EXP(1,2,3,4,5,6,7,0,63);
318
319
        ctx->h[0] += wv[0]; ctx->h[1] += wv[1];
320
        ctx->h[2] += wv[2]; ctx->h[3] += wv[3];
321
        ctx->h[4] += wv[4]; ctx->h[5] += wv[5];
322
        ctx->h[6] += wv[6]; ctx->h[7] += wv[7];
323
#endif /* !UNROLL_LOOPS */
324
    }
325
}
326
327
void sha256(const unsigned char *message, unsigned int len, unsigned char *digest)
328
{
329
    sha256_ctx ctx;
330
331
    sha256_init(&ctx);
332
    sha256_update(&ctx, message, len);
333
    sha256_final(&ctx, digest);
334
}
335
336
void sha256_init(sha256_ctx *ctx)
337
{
338
#ifndef UNROLL_LOOPS
339
    int i;
340
    for (i = 0; i < 8; i++) {
341
        ctx->h[i] = sha256_h0[i];
342
    }
343
#else
344
    ctx->h[0] = sha256_h0[0]; ctx->h[1] = sha256_h0[1];
345
    ctx->h[2] = sha256_h0[2]; ctx->h[3] = sha256_h0[3];
346
    ctx->h[4] = sha256_h0[4]; ctx->h[5] = sha256_h0[5];
347
    ctx->h[6] = sha256_h0[6]; ctx->h[7] = sha256_h0[7];
348
#endif /* !UNROLL_LOOPS */
349
350
    ctx->len = 0;
351
    ctx->tot_len = 0;
352
}
353
354
void sha256_update(sha256_ctx *ctx, const unsigned char *message,
355
                   unsigned int len)
356
{
357
    unsigned int block_nb;
358
    unsigned int new_len, rem_len, tmp_len;
359
    const unsigned char *shifted_message;
360
361
    tmp_len = SHA256_BLOCK_SIZE - ctx->len;
362
    rem_len = len < tmp_len ? len : tmp_len;
363
364
    memcpy(&ctx->block[ctx->len], message, rem_len);
365
366
    if (ctx->len + len < SHA256_BLOCK_SIZE) {
367
        ctx->len += len;
368
        return;
369
    }
370
371
    new_len = len - rem_len;
372
    block_nb = new_len / SHA256_BLOCK_SIZE;
373
374
    shifted_message = message + rem_len;
375
376
    sha256_transf(ctx, ctx->block, 1);
377
    sha256_transf(ctx, shifted_message, block_nb);
378
379
    rem_len = new_len % SHA256_BLOCK_SIZE;
380
381
    memcpy(ctx->block, &shifted_message[block_nb << 6],
382
           rem_len);
383
384
    ctx->len = rem_len;
385
    ctx->tot_len += (block_nb + 1) << 6;
386
}
387
388
void sha256_final(sha256_ctx *ctx, unsigned char *digest)
389
{
390
    unsigned int block_nb;
391
    unsigned int pm_len;
392
    unsigned int len_b;
393
394
#ifndef UNROLL_LOOPS
395
    int i;
396
#endif
397
398
    block_nb = (1 + ((SHA256_BLOCK_SIZE - 9)
399
                     < (ctx->len % SHA256_BLOCK_SIZE)));
400
401
    len_b = (ctx->tot_len + ctx->len) << 3;
402
    pm_len = block_nb << 6;
403
404
    memset(ctx->block + ctx->len, 0, pm_len - ctx->len);
405
    ctx->block[ctx->len] = 0x80;
406
    UNPACK32(len_b, ctx->block + pm_len - 4);
407
408
    sha256_transf(ctx, ctx->block, block_nb);
409
410
#ifndef UNROLL_LOOPS
411
    for (i = 0 ; i < 8; i++) {
412
        UNPACK32(ctx->h[i], &digest[i << 2]);
413
    }
414
#else
415
   UNPACK32(ctx->h[0], &digest[ 0]);
416
   UNPACK32(ctx->h[1], &digest[ 4]);
417
   UNPACK32(ctx->h[2], &digest[ 8]);
418
   UNPACK32(ctx->h[3], &digest[12]);
419
   UNPACK32(ctx->h[4], &digest[16]);
420
   UNPACK32(ctx->h[5], &digest[20]);
421
   UNPACK32(ctx->h[6], &digest[24]);
422
   UNPACK32(ctx->h[7], &digest[28]);
423
#endif /* !UNROLL_LOOPS */
424
}
425
426
/* SHA-512 functions */
427
428
void sha512_transf(sha512_ctx *ctx, const unsigned char *message,
429
                   unsigned int block_nb)
430
{
431
    uint64 w[80];
432
    uint64 wv[8];
433
    uint64 t1, t2;
434
    const unsigned char *sub_block;
435
    int i, j;
436
437
    for (i = 0; i < (int) block_nb; i++) {
438
        sub_block = message + (i << 7);
439
440
#ifndef UNROLL_LOOPS
441
        for (j = 0; j < 16; j++) {
442
            PACK64(&sub_block[j << 3], &w[j]);
443
        }
444
445
        for (j = 16; j < 80; j++) {
446
            SHA512_SCR(j);
447
        }
448
449
        for (j = 0; j < 8; j++) {
450
            wv[j] = ctx->h[j];
451
        }
452
453
        for (j = 0; j < 80; j++) {
454
            t1 = wv[7] + SHA512_F2(wv[4]) + CH(wv[4], wv[5], wv[6])
455
                + sha512_k[j] + w[j];
456
            t2 = SHA512_F1(wv[0]) + MAJ(wv[0], wv[1], wv[2]);
457
            wv[7] = wv[6];
458
            wv[6] = wv[5];
459
            wv[5] = wv[4];
460
            wv[4] = wv[3] + t1;
461
            wv[3] = wv[2];
462
            wv[2] = wv[1];
463
            wv[1] = wv[0];
464
            wv[0] = t1 + t2;
465
        }
466
467
        for (j = 0; j < 8; j++) {
468
            ctx->h[j] += wv[j];
469
        }
470
#else
471
        PACK64(&sub_block[  0], &w[ 0]); PACK64(&sub_block[  8], &w[ 1]);
472
        PACK64(&sub_block[ 16], &w[ 2]); PACK64(&sub_block[ 24], &w[ 3]);
473
        PACK64(&sub_block[ 32], &w[ 4]); PACK64(&sub_block[ 40], &w[ 5]);
474
        PACK64(&sub_block[ 48], &w[ 6]); PACK64(&sub_block[ 56], &w[ 7]);
475
        PACK64(&sub_block[ 64], &w[ 8]); PACK64(&sub_block[ 72], &w[ 9]);
476
        PACK64(&sub_block[ 80], &w[10]); PACK64(&sub_block[ 88], &w[11]);
477
        PACK64(&sub_block[ 96], &w[12]); PACK64(&sub_block[104], &w[13]);
478
        PACK64(&sub_block[112], &w[14]); PACK64(&sub_block[120], &w[15]);
479
480
        SHA512_SCR(16); SHA512_SCR(17); SHA512_SCR(18); SHA512_SCR(19);
481
        SHA512_SCR(20); SHA512_SCR(21); SHA512_SCR(22); SHA512_SCR(23);
482
        SHA512_SCR(24); SHA512_SCR(25); SHA512_SCR(26); SHA512_SCR(27);
483
        SHA512_SCR(28); SHA512_SCR(29); SHA512_SCR(30); SHA512_SCR(31);
484
        SHA512_SCR(32); SHA512_SCR(33); SHA512_SCR(34); SHA512_SCR(35);
485
        SHA512_SCR(36); SHA512_SCR(37); SHA512_SCR(38); SHA512_SCR(39);
486
        SHA512_SCR(40); SHA512_SCR(41); SHA512_SCR(42); SHA512_SCR(43);
487
        SHA512_SCR(44); SHA512_SCR(45); SHA512_SCR(46); SHA512_SCR(47);
488
        SHA512_SCR(48); SHA512_SCR(49); SHA512_SCR(50); SHA512_SCR(51);
489
        SHA512_SCR(52); SHA512_SCR(53); SHA512_SCR(54); SHA512_SCR(55);
490
        SHA512_SCR(56); SHA512_SCR(57); SHA512_SCR(58); SHA512_SCR(59);
491
        SHA512_SCR(60); SHA512_SCR(61); SHA512_SCR(62); SHA512_SCR(63);
492
        SHA512_SCR(64); SHA512_SCR(65); SHA512_SCR(66); SHA512_SCR(67);
493
        SHA512_SCR(68); SHA512_SCR(69); SHA512_SCR(70); SHA512_SCR(71);
494
        SHA512_SCR(72); SHA512_SCR(73); SHA512_SCR(74); SHA512_SCR(75);
495
        SHA512_SCR(76); SHA512_SCR(77); SHA512_SCR(78); SHA512_SCR(79);
496
497
        wv[0] = ctx->h[0]; wv[1] = ctx->h[1];
498
        wv[2] = ctx->h[2]; wv[3] = ctx->h[3];
499
        wv[4] = ctx->h[4]; wv[5] = ctx->h[5];
500
        wv[6] = ctx->h[6]; wv[7] = ctx->h[7];
501
502
        j = 0;
503
504
        do {
505
            SHA512_EXP(0,1,2,3,4,5,6,7,j); j++;
506
            SHA512_EXP(7,0,1,2,3,4,5,6,j); j++;
507
            SHA512_EXP(6,7,0,1,2,3,4,5,j); j++;
508
            SHA512_EXP(5,6,7,0,1,2,3,4,j); j++;
509
            SHA512_EXP(4,5,6,7,0,1,2,3,j); j++;
510
            SHA512_EXP(3,4,5,6,7,0,1,2,j); j++;
511
            SHA512_EXP(2,3,4,5,6,7,0,1,j); j++;
512
            SHA512_EXP(1,2,3,4,5,6,7,0,j); j++;
513
        } while (j < 80);
514
515
        ctx->h[0] += wv[0]; ctx->h[1] += wv[1];
516
        ctx->h[2] += wv[2]; ctx->h[3] += wv[3];
517
        ctx->h[4] += wv[4]; ctx->h[5] += wv[5];
518
        ctx->h[6] += wv[6]; ctx->h[7] += wv[7];
519
#endif /* !UNROLL_LOOPS */
520
    }
521
}
522
523
void sha512(const unsigned char *message, unsigned int len,
524
            unsigned char *digest)
525
{
526
    sha512_ctx ctx;
527
528
    sha512_init(&ctx);
529
    sha512_update(&ctx, message, len);
530
    sha512_final(&ctx, digest);
531
}
532
533
void sha512_init(sha512_ctx *ctx)
534
{
535
#ifndef UNROLL_LOOPS
536
    int i;
537
    for (i = 0; i < 8; i++) {
538
        ctx->h[i] = sha512_h0[i];
539
    }
540
#else
541
    ctx->h[0] = sha512_h0[0]; ctx->h[1] = sha512_h0[1];
542
    ctx->h[2] = sha512_h0[2]; ctx->h[3] = sha512_h0[3];
543
    ctx->h[4] = sha512_h0[4]; ctx->h[5] = sha512_h0[5];
544
    ctx->h[6] = sha512_h0[6]; ctx->h[7] = sha512_h0[7];
545
#endif /* !UNROLL_LOOPS */
546
547
    ctx->len = 0;
548
    ctx->tot_len = 0;
549
}
550
551
void sha512_update(sha512_ctx *ctx, const unsigned char *message,
552
                   unsigned int len)
553
{
554
    unsigned int block_nb;
555
    unsigned int new_len, rem_len, tmp_len;
556
    const unsigned char *shifted_message;
557
558
    tmp_len = SHA512_BLOCK_SIZE - ctx->len;
559
    rem_len = len < tmp_len ? len : tmp_len;
560
561
    memcpy(&ctx->block[ctx->len], message, rem_len);
562
563
    if (ctx->len + len < SHA512_BLOCK_SIZE) {
564
        ctx->len += len;
565
        return;
566
    }
567
568
    new_len = len - rem_len;
569
    block_nb = new_len / SHA512_BLOCK_SIZE;
570
571
    shifted_message = message + rem_len;
572
573
    sha512_transf(ctx, ctx->block, 1);
574
    sha512_transf(ctx, shifted_message, block_nb);
575
576
    rem_len = new_len % SHA512_BLOCK_SIZE;
577
578
    memcpy(ctx->block, &shifted_message[block_nb << 7],
579
           rem_len);
580
581
    ctx->len = rem_len;
582
    ctx->tot_len += (block_nb + 1) << 7;
583
}
584
585
void sha512_final(sha512_ctx *ctx, unsigned char *digest)
586
{
587
    unsigned int block_nb;
588
    unsigned int pm_len;
589
    unsigned int len_b;
590
591
#ifndef UNROLL_LOOPS
592
    int i;
593
#endif
594
595
    block_nb = 1 + ((SHA512_BLOCK_SIZE - 17)
596
                     < (ctx->len % SHA512_BLOCK_SIZE));
597
598
    len_b = (ctx->tot_len + ctx->len) << 3;
599
    pm_len = block_nb << 7;
600
601
    memset(ctx->block + ctx->len, 0, pm_len - ctx->len);
602
    ctx->block[ctx->len] = 0x80;
603
    UNPACK32(len_b, ctx->block + pm_len - 4);
604
605
    sha512_transf(ctx, ctx->block, block_nb);
606
607
#ifndef UNROLL_LOOPS
608
    for (i = 0 ; i < 8; i++) {
609
        UNPACK64(ctx->h[i], &digest[i << 3]);
610
    }
611
#else
612
    UNPACK64(ctx->h[0], &digest[ 0]);
613
    UNPACK64(ctx->h[1], &digest[ 8]);
614
    UNPACK64(ctx->h[2], &digest[16]);
615
    UNPACK64(ctx->h[3], &digest[24]);
616
    UNPACK64(ctx->h[4], &digest[32]);
617
    UNPACK64(ctx->h[5], &digest[40]);
618
    UNPACK64(ctx->h[6], &digest[48]);
619
    UNPACK64(ctx->h[7], &digest[56]);
620
#endif /* !UNROLL_LOOPS */
621
}
622
623
/* SHA-384 functions */
624
625
void sha384(const unsigned char *message, unsigned int len,
626
            unsigned char *digest)
627
{
628
    sha384_ctx ctx;
629
630
    sha384_init(&ctx);
631
    sha384_update(&ctx, message, len);
632
    sha384_final(&ctx, digest);
633
}
634
635
void sha384_init(sha384_ctx *ctx)
636
{
637
#ifndef UNROLL_LOOPS
638
    int i;
639
    for (i = 0; i < 8; i++) {
640
        ctx->h[i] = sha384_h0[i];
641
    }
642
#else
643
    ctx->h[0] = sha384_h0[0]; ctx->h[1] = sha384_h0[1];
644
    ctx->h[2] = sha384_h0[2]; ctx->h[3] = sha384_h0[3];
645
    ctx->h[4] = sha384_h0[4]; ctx->h[5] = sha384_h0[5];
646
    ctx->h[6] = sha384_h0[6]; ctx->h[7] = sha384_h0[7];
647
#endif /* !UNROLL_LOOPS */
648
649
    ctx->len = 0;
650
    ctx->tot_len = 0;
651
}
652
653
void sha384_update(sha384_ctx *ctx, const unsigned char *message,
654
                   unsigned int len)
655
{
656
    unsigned int block_nb;
657
    unsigned int new_len, rem_len, tmp_len;
658
    const unsigned char *shifted_message;
659
660
    tmp_len = SHA384_BLOCK_SIZE - ctx->len;
661
    rem_len = len < tmp_len ? len : tmp_len;
662
663
    memcpy(&ctx->block[ctx->len], message, rem_len);
664
665
    if (ctx->len + len < SHA384_BLOCK_SIZE) {
666
        ctx->len += len;
667
        return;
668
    }
669
670
    new_len = len - rem_len;
671
    block_nb = new_len / SHA384_BLOCK_SIZE;
672
673
    shifted_message = message + rem_len;
674
675
    sha512_transf(ctx, ctx->block, 1);
676
    sha512_transf(ctx, shifted_message, block_nb);
677
678
    rem_len = new_len % SHA384_BLOCK_SIZE;
679
680
    memcpy(ctx->block, &shifted_message[block_nb << 7],
681
           rem_len);
682
683
    ctx->len = rem_len;
684
    ctx->tot_len += (block_nb + 1) << 7;
685
}
686
687
void sha384_final(sha384_ctx *ctx, unsigned char *digest)
688
{
689
    unsigned int block_nb;
690
    unsigned int pm_len;
691
    unsigned int len_b;
692
693
#ifndef UNROLL_LOOPS
694
    int i;
695
#endif
696
697
    block_nb = (1 + ((SHA384_BLOCK_SIZE - 17)
698
                     < (ctx->len % SHA384_BLOCK_SIZE)));
699
700
    len_b = (ctx->tot_len + ctx->len) << 3;
701
    pm_len = block_nb << 7;
702
703
    memset(ctx->block + ctx->len, 0, pm_len - ctx->len);
704
    ctx->block[ctx->len] = 0x80;
705
    UNPACK32(len_b, ctx->block + pm_len - 4);
706
707
    sha512_transf(ctx, ctx->block, block_nb);
708
709
#ifndef UNROLL_LOOPS
710
    for (i = 0 ; i < 6; i++) {
711
        UNPACK64(ctx->h[i], &digest[i << 3]);
712
    }
713
#else
714
    UNPACK64(ctx->h[0], &digest[ 0]);
715
    UNPACK64(ctx->h[1], &digest[ 8]);
716
    UNPACK64(ctx->h[2], &digest[16]);
717
    UNPACK64(ctx->h[3], &digest[24]);
718
    UNPACK64(ctx->h[4], &digest[32]);
719
    UNPACK64(ctx->h[5], &digest[40]);
720
#endif /* !UNROLL_LOOPS */
721
}
722
723
/* SHA-224 functions */
724
725
void sha224(const unsigned char *message, unsigned int len,
726
            unsigned char *digest)
727
{
728
    sha224_ctx ctx;
729
730
    sha224_init(&ctx);
731
    sha224_update(&ctx, message, len);
732
    sha224_final(&ctx, digest);
733
}
734
735
void sha224_init(sha224_ctx *ctx)
736
{
737
#ifndef UNROLL_LOOPS
738
    int i;
739
    for (i = 0; i < 8; i++) {
740
        ctx->h[i] = sha224_h0[i];
741
    }
742
#else
743
    ctx->h[0] = sha224_h0[0]; ctx->h[1] = sha224_h0[1];
744
    ctx->h[2] = sha224_h0[2]; ctx->h[3] = sha224_h0[3];
745
    ctx->h[4] = sha224_h0[4]; ctx->h[5] = sha224_h0[5];
746
    ctx->h[6] = sha224_h0[6]; ctx->h[7] = sha224_h0[7];
747
#endif /* !UNROLL_LOOPS */
748
749
    ctx->len = 0;
750
    ctx->tot_len = 0;
751
}
752
753
void sha224_update(sha224_ctx *ctx, const unsigned char *message,
754
                   unsigned int len)
755
{
756
    unsigned int block_nb;
757
    unsigned int new_len, rem_len, tmp_len;
758
    const unsigned char *shifted_message;
759
760
    tmp_len = SHA224_BLOCK_SIZE - ctx->len;
761
    rem_len = len < tmp_len ? len : tmp_len;
762
763
    memcpy(&ctx->block[ctx->len], message, rem_len);
764
765
    if (ctx->len + len < SHA224_BLOCK_SIZE) {
766
        ctx->len += len;
767
        return;
768
    }
769
770
    new_len = len - rem_len;
771
    block_nb = new_len / SHA224_BLOCK_SIZE;
772
773
    shifted_message = message + rem_len;
774
775
    sha256_transf(ctx, ctx->block, 1);
776
    sha256_transf(ctx, shifted_message, block_nb);
777
778
    rem_len = new_len % SHA224_BLOCK_SIZE;
779
780
    memcpy(ctx->block, &shifted_message[block_nb << 6],
781
           rem_len);
782
783
    ctx->len = rem_len;
784
    ctx->tot_len += (block_nb + 1) << 6;
785
}
786
787
void sha224_final(sha224_ctx *ctx, unsigned char *digest)
788
{
789
    unsigned int block_nb;
790
    unsigned int pm_len;
791
    unsigned int len_b;
792
793
#ifndef UNROLL_LOOPS
794
    int i;
795
#endif
796
797
    block_nb = (1 + ((SHA224_BLOCK_SIZE - 9)
798
                     < (ctx->len % SHA224_BLOCK_SIZE)));
799
800
    len_b = (ctx->tot_len + ctx->len) << 3;
801
    pm_len = block_nb << 6;
802
803
    memset(ctx->block + ctx->len, 0, pm_len - ctx->len);
804
    ctx->block[ctx->len] = 0x80;
805
    UNPACK32(len_b, ctx->block + pm_len - 4);
806
807
    sha256_transf(ctx, ctx->block, block_nb);
808
809
#ifndef UNROLL_LOOPS
810
    for (i = 0 ; i < 7; i++) {
811
        UNPACK32(ctx->h[i], &digest[i << 2]);
812
    }
813
#else
814
   UNPACK32(ctx->h[0], &digest[ 0]);
815
   UNPACK32(ctx->h[1], &digest[ 4]);
816
   UNPACK32(ctx->h[2], &digest[ 8]);
817
   UNPACK32(ctx->h[3], &digest[12]);
818
   UNPACK32(ctx->h[4], &digest[16]);
819
   UNPACK32(ctx->h[5], &digest[20]);
820
   UNPACK32(ctx->h[6], &digest[24]);
821
#endif /* !UNROLL_LOOPS */
822
}
823
824
#ifdef TEST_VECTORS
825
826
/* FIPS 180-2 Validation tests */
827
828
#include <stdio.h>
829
#include <stdlib.h>
830
831
void test(const unsigned char *vector, unsigned char *digest,
832
          unsigned int digest_size)
833
{
834
    unsigned char output[2 * SHA512_DIGEST_SIZE + 1];
835
    int i;
836
837
    output[2 * digest_size] = '\0';
838
839
    for (i = 0; i < (int) digest_size ; i++) {
840
       sprintf((char *) output + 2 * i, "%02x", digest[i]);
841
    }
842
843
    printf("H: %s\n", output);
844
    if (strcmp((char *) vector, (char *) output)) {
845
        fprintf(stderr, "Test failed.\n");
846
        exit(EXIT_FAILURE);
847
    }
848
}
849
850
int main()
851
{
852
    static const unsigned char *vectors[4][3] =
853
    {   /* SHA-224 */
854
        {
855
        "23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7",
856
        "75388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525",
857
        "20794655980c91d8bbb4c1ea97618a4bf03f42581948b2ee4ee7ad67",
858
        },
859
        /* SHA-256 */
860
        {
861
        "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad",
862
        "248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1",
863
        "cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0",
864
        },
865
        /* SHA-384 */
866
        {
867
        "cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed"
868
        "8086072ba1e7cc2358baeca134c825a7",
869
        "09330c33f71147e83d192fc782cd1b4753111b173b3b05d22fa08086e3b0f712"
870
        "fcc7c71a557e2db966c3e9fa91746039",
871
        "9d0e1809716474cb086e834e310a4a1ced149e9c00f248527972cec5704c2a5b"
872
        "07b8b3dc38ecc4ebae97ddd87f3d8985",
873
        },
874
        /* SHA-512 */
875
        {
876
        "ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a"
877
        "2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f",
878
        "8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018"
879
        "501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909",
880
        "e718483d0ce769644e2e42c7bc15b4638e1f98b13b2044285632a803afa973eb"
881
        "de0ff244877ea60a4cb0432ce577c31beb009c5c2c49aa2e4eadb217ad8cc09b"
882
        }
883
    };
884
885
    static const unsigned char message1[] = "abc";
886
    static const unsigned char message2a[] = "abcdbcdecdefdefgefghfghighijhi"
887
                                             "jkijkljklmklmnlmnomnopnopq";
888
    static const unsigned char message2b[] =
889
                                      "abcdefghbcdefghicdefghijdefghijkefghij"
890
                                      "klfghijklmghijklmnhijklmnoijklmnopjklm"
891
                                      "nopqklmnopqrlmnopqrsmnopqrstnopqrstu";
892
    unsigned char *message3;
893
    unsigned int message3_len  = 1000000;
894
    unsigned char digest[SHA512_DIGEST_SIZE];
895
896
    message3 = malloc(message3_len);
897
    if (message3 == NULL) {
898
        fprintf(stderr, "Can't allocate memory\n");
899
        return -1;
900
    }
901
    memset(message3, 'a', message3_len);
902
903
    printf("SHA-2 FIPS 180-2 Validation tests\n\n");
904
    printf("SHA-224 Test vectors\n");
905
906
    sha224(message1, strlen((char *) message1), digest);
907
    test(vectors[0][0], digest, SHA224_DIGEST_SIZE);
908
    sha224(message2a, strlen((char *) message2a), digest);
909
    test(vectors[0][1], digest, SHA224_DIGEST_SIZE);
910
    sha224(message3, message3_len, digest);
911
    test(vectors[0][2], digest, SHA224_DIGEST_SIZE);
912
    printf("\n");
913
914
    printf("SHA-256 Test vectors\n");
915
916
    sha256(message1, strlen((char *) message1), digest);
917
    test(vectors[1][0], digest, SHA256_DIGEST_SIZE);
918
    sha256(message2a, strlen((char *) message2a), digest);
919
    test(vectors[1][1], digest, SHA256_DIGEST_SIZE);
920
    sha256(message3, message3_len, digest);
921
    test(vectors[1][2], digest, SHA256_DIGEST_SIZE);
922
    printf("\n");
923
924
    printf("SHA-384 Test vectors\n");
925
926
    sha384(message1, strlen((char *) message1), digest);
927
    test(vectors[2][0], digest, SHA384_DIGEST_SIZE);
928
    sha384(message2b, strlen((char *) message2b), digest);
929
    test(vectors[2][1], digest, SHA384_DIGEST_SIZE);
930
    sha384(message3, message3_len, digest);
931
    test(vectors[2][2], digest, SHA384_DIGEST_SIZE);
932
    printf("\n");
933
934
    printf("SHA-512 Test vectors\n");
935
936
    sha512(message1, strlen((char *) message1), digest);
937
    test(vectors[3][0], digest, SHA512_DIGEST_SIZE);
938
    sha512(message2b, strlen((char *) message2b), digest);
939
    test(vectors[3][1], digest, SHA512_DIGEST_SIZE);
940
    sha512(message3, message3_len, digest);
941
    test(vectors[3][2], digest, SHA512_DIGEST_SIZE);
942
    printf("\n");
943
944
    printf("All tests passed.\n");
945
946
    return 0;
947
}
948
949
#endif /* TEST_VECTORS */
950
(-)a/src/fetch/sha2.h (+108 lines)
Line 0 Link Here
1
/*
2
 * FIPS 180-2 SHA-224/256/384/512 implementation
3
 * Last update: 02/02/2007
4
 * Issue date:  04/30/2005
5
 *
6
 * Copyright (C) 2005, 2007 Olivier Gay <olivier.gay@a3.epfl.ch>
7
 * All rights reserved.
8
 *
9
 * Redistribution and use in source and binary forms, with or without
10
 * modification, are permitted provided that the following conditions
11
 * are met:
12
 * 1. Redistributions of source code must retain the above copyright
13
 *    notice, this list of conditions and the following disclaimer.
14
 * 2. Redistributions in binary form must reproduce the above copyright
15
 *    notice, this list of conditions and the following disclaimer in the
16
 *    documentation and/or other materials provided with the distribution.
17
 * 3. Neither the name of the project nor the names of its contributors
18
 *    may be used to endorse or promote products derived from this software
19
 *    without specific prior written permission.
20
 *
21
 * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
22
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
25
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31
 * SUCH DAMAGE.
32
 */
33
34
#ifndef SHA2_H
35
#define SHA2_H
36
37
#define SHA224_DIGEST_SIZE ( 224 / 8)
38
#define SHA256_DIGEST_SIZE ( 256 / 8)
39
#define SHA384_DIGEST_SIZE ( 384 / 8)
40
#define SHA512_DIGEST_SIZE ( 512 / 8)
41
42
#define SHA256_BLOCK_SIZE  ( 512 / 8)
43
#define SHA512_BLOCK_SIZE  (1024 / 8)
44
#define SHA384_BLOCK_SIZE  SHA512_BLOCK_SIZE
45
#define SHA224_BLOCK_SIZE  SHA256_BLOCK_SIZE
46
47
#ifndef SHA2_TYPES
48
#define SHA2_TYPES
49
typedef unsigned char uint8;
50
typedef unsigned int  uint32;
51
typedef unsigned long long uint64;
52
#endif
53
54
#ifdef __cplusplus
55
extern "C" {
56
#endif
57
58
typedef struct {
59
    unsigned int tot_len;
60
    unsigned int len;
61
    unsigned char block[2 * SHA256_BLOCK_SIZE];
62
    uint32 h[8];
63
} sha256_ctx;
64
65
typedef struct {
66
    unsigned int tot_len;
67
    unsigned int len;
68
    unsigned char block[2 * SHA512_BLOCK_SIZE];
69
    uint64 h[8];
70
} sha512_ctx;
71
72
typedef sha512_ctx sha384_ctx;
73
typedef sha256_ctx sha224_ctx;
74
75
void sha224_init(sha224_ctx *ctx);
76
void sha224_update(sha224_ctx *ctx, const unsigned char *message,
77
                   unsigned int len);
78
void sha224_final(sha224_ctx *ctx, unsigned char *digest);
79
void sha224(const unsigned char *message, unsigned int len,
80
            unsigned char *digest);
81
82
void sha256_init(sha256_ctx * ctx);
83
void sha256_update(sha256_ctx *ctx, const unsigned char *message,
84
                   unsigned int len);
85
void sha256_final(sha256_ctx *ctx, unsigned char *digest);
86
void sha256(const unsigned char *message, unsigned int len,
87
            unsigned char *digest);
88
89
void sha384_init(sha384_ctx *ctx);
90
void sha384_update(sha384_ctx *ctx, const unsigned char *message,
91
                   unsigned int len);
92
void sha384_final(sha384_ctx *ctx, unsigned char *digest);
93
void sha384(const unsigned char *message, unsigned int len,
94
            unsigned char *digest);
95
96
void sha512_init(sha512_ctx *ctx);
97
void sha512_update(sha512_ctx *ctx, const unsigned char *message,
98
                   unsigned int len);
99
void sha512_final(sha512_ctx *ctx, unsigned char *digest);
100
void sha512(const unsigned char *message, unsigned int len,
101
            unsigned char *digest);
102
103
#ifdef __cplusplus
104
}
105
#endif
106
107
#endif /* !SHA2_H */
108
(-)a/src/fetch/z3950-servers.cfg (-2 / +2 lines)
Lines 43-51 Locale=it Link Here
43
Syntax=unimarc
43
Syntax=unimarc
44
44
45
[porbase]
45
[porbase]
46
Host=z3950.bn.pt
46
Host=z3950.porbase.org
47
Port=210
47
Port=210
48
Database=bnd
48
Database=Default
49
Name=Portuguese National Library
49
Name=Portuguese National Library
50
Charset=iso-8859-1
50
Charset=iso-8859-1
51
Locale=pt
51
Locale=pt
(-)a/src/fetch/z3950fetcher.cpp (-3 / +3 lines)
Lines 175-187 void Z3950Fetcher::search(FetchKey key_, const TQString& value_) { Link Here
175
            isbnList.insert(it, isbn10);
175
            isbnList.insert(it, isbn10);
176
          }
176
          }
177
        }
177
        }
178
        const int count = isbnList.count();
178
        const size_t count = isbnList.count();
179
        if(count > 1) {
179
        if(count > 1) {
180
          m_pqn = TQString::fromLatin1("@or ");
180
          m_pqn = TQString::fromLatin1("@or ");
181
        }
181
        }
182
        for(int i = 0; i < count; ++i) {
182
        for(size_t i = 0; i < count; ++i) {
183
          m_pqn += TQString::fromLatin1(" @attr 1=7 ") + isbnList[i];
183
          m_pqn += TQString::fromLatin1(" @attr 1=7 ") + isbnList[i];
184
          if(i < count-2) {
184
          if(count > 1 && i < count-2) {
185
            m_pqn += TQString::fromLatin1(" @or");
185
            m_pqn += TQString::fromLatin1(" @or");
186
          }
186
          }
187
        }
187
        }
(-)a/src/fetchdialog.cpp (+4 lines)
Lines 591-596 void FetchDialog::slotMultipleISBN(bool toggle_) { Link Here
591
    m_valueLineEdit->setText(val);
591
    m_valueLineEdit->setText(val);
592
  }
592
  }
593
  m_editISBN->setEnabled(toggle_);
593
  m_editISBN->setEnabled(toggle_);
594
  if(toggle_) {
595
    // if we're editing multiple values, it makes sense to popup the dialog now
596
    slotEditMultipleISBN();
597
  }
594
}
598
}
595
599
596
void FetchDialog::slotEditMultipleISBN() {
600
void FetchDialog::slotEditMultipleISBN() {
(-)a/src/field.cpp (-13 / +11 lines)
Lines 32-37 namespace { Link Here
32
using Tellico::Data::Field;
32
using Tellico::Data::Field;
33
33
34
//these get overwritten, but are here since they're static
34
//these get overwritten, but are here since they're static
35
TQStringList Field::s_articles;
35
TQStringList Field::s_articlesApos;
36
TQStringList Field::s_articlesApos;
36
TQRegExp Field::s_delimiter = TQRegExp(TQString::fromLatin1("\\s*;\\s*"));
37
TQRegExp Field::s_delimiter = TQRegExp(TQString::fromLatin1("\\s*;\\s*"));
37
38
Lines 171-177 const TQString& Field::defaultValue() const { Link Here
171
}
172
}
172
173
173
void Field::setDefaultValue(const TQString& value_) {
174
void Field::setDefaultValue(const TQString& value_) {
174
  if(m_type != Choice || m_allowed.findIndex(value_) > -1) {
175
  if(value_.isEmpty() || m_type != Choice || m_allowed.findIndex(value_) > -1) {
175
    setProperty(TQString::fromLatin1("default"), value_);
176
    setProperty(TQString::fromLatin1("default"), value_);
176
  }
177
  }
177
}
178
}
Lines 260-267 TQString Field::formatTitle(const TQString& title_) { Link Here
260
  if(Config::autoFormat()) {
261
  if(Config::autoFormat()) {
261
    const TQString lower = newTitle.lower();
262
    const TQString lower = newTitle.lower();
262
    // TODO if the title has ",the" at the end, put it at the front
263
    // TODO if the title has ",the" at the end, put it at the front
263
    const TQStringList& articles = Config::articleList();
264
    for(TQStringList::ConstIterator it = s_articles.constBegin(); it != s_articles.constEnd(); ++it) {
264
    for(TQStringList::ConstIterator it = articles.begin(); it != articles.end(); ++it) {
265
      // assume white space is already stripped
265
      // assume white space is already stripped
266
      // the articles are already in lower-case
266
      // the articles are already in lower-case
267
      if(lower.startsWith(*it + TQChar(' '))) {
267
      if(lower.startsWith(*it + TQChar(' '))) {
Lines 415-421 TQString Field::capitalize(TQString str_) { Link Here
415
415
416
  TQString word = str_.mid(0, pos);
416
  TQString word = str_.mid(0, pos);
417
  // now check to see if words starts with apostrophe list
417
  // now check to see if words starts with apostrophe list
418
  for(TQStringList::ConstIterator it = s_articlesApos.begin(); it != s_articlesApos.end(); ++it) {
418
  for(TQStringList::ConstIterator it = s_articlesApos.constBegin(); it != s_articlesApos.constEnd(); ++it) {
419
    if(word.lower().startsWith(*it)) {
419
    if(word.lower().startsWith(*it)) {
420
      uint l = (*it).length();
420
      uint l = (*it).length();
421
      str_.replace(l, 1, str_.at(l).upper());
421
      str_.replace(l, 1, str_.at(l).upper());
Lines 432-438 TQString Field::capitalize(TQString str_) { Link Here
432
    word = str_.mid(pos+1, nextPos-pos-1);
432
    word = str_.mid(pos+1, nextPos-pos-1);
433
    bool aposMatch = false;
433
    bool aposMatch = false;
434
    // now check to see if words starts with apostrophe list
434
    // now check to see if words starts with apostrophe list
435
    for(TQStringList::ConstIterator it = s_articlesApos.begin(); it != s_articlesApos.end(); ++it) {
435
    for(TQStringList::ConstIterator it = s_articlesApos.constBegin(); it != s_articlesApos.constEnd(); ++it) {
436
      if(word.lower().startsWith(*it)) {
436
      if(word.lower().startsWith(*it)) {
437
        uint l = (*it).length();
437
        uint l = (*it).length();
438
        str_.replace(pos+l+1, 1, str_.at(pos+l+1).upper());
438
        str_.replace(pos+l+1, 1, str_.at(pos+l+1).upper());
Lines 455-462 TQString Field::capitalize(TQString str_) { Link Here
455
455
456
TQString Field::sortKeyTitle(const TQString& title_) {
456
TQString Field::sortKeyTitle(const TQString& title_) {
457
  const TQString lower = title_.lower();
457
  const TQString lower = title_.lower();
458
  const TQStringList& articles = Config::articleList();
458
  for(TQStringList::ConstIterator it = s_articles.constBegin(); it != s_articles.constEnd(); ++it) {
459
  for(TQStringList::ConstIterator it = articles.begin(); it != articles.end(); ++it) {
460
    // assume white space is already stripped
459
    // assume white space is already stripped
461
    // the articles are already in lower-case
460
    // the articles are already in lower-case
462
    if(lower.startsWith(*it + TQChar(' '))) {
461
    if(lower.startsWith(*it + TQChar(' '))) {
Lines 464-470 TQString Field::sortKeyTitle(const TQString& title_) { Link Here
464
    }
463
    }
465
  }
464
  }
466
  // check apostrophes, too
465
  // check apostrophes, too
467
  for(TQStringList::ConstIterator it = s_articlesApos.begin(); it != s_articlesApos.end(); ++it) {
466
  for(TQStringList::ConstIterator it = s_articlesApos.constBegin(); it != s_articlesApos.constEnd(); ++it) {
468
    if(lower.startsWith(*it)) {
467
    if(lower.startsWith(*it)) {
469
      return title_.mid((*it).length());
468
      return title_.mid((*it).length());
470
    }
469
    }
Lines 474-482 TQString Field::sortKeyTitle(const TQString& title_) { Link Here
474
473
475
// articles should all be in lower-case
474
// articles should all be in lower-case
476
void Field::articlesUpdated() {
475
void Field::articlesUpdated() {
477
  const TQStringList articles = Config::articleList();
476
  s_articles = Config::articleList();
478
  s_articlesApos.clear();
477
  s_articlesApos.clear();
479
  for(TQStringList::ConstIterator it = articles.begin(); it != articles.end(); ++it) {
478
  for(TQStringList::ConstIterator it = s_articles.constBegin(); it != s_articles.constEnd(); ++it) {
480
    if((*it).endsWith(TQChar('\''))) {
479
    if((*it).endsWith(TQChar('\''))) {
481
      s_articlesApos += (*it);
480
      s_articlesApos += (*it);
482
    }
481
    }
Lines 581-591 long Field::getID() { Link Here
581
}
580
}
582
581
583
void Field::stripArticles(TQString& value) {
582
void Field::stripArticles(TQString& value) {
584
  const TQStringList articles = Config::articleList();
583
  if(s_articles.isEmpty()) {
585
  if(articles.isEmpty()) {
586
    return;
584
    return;
587
  }
585
  }
588
  for(TQStringList::ConstIterator it = articles.begin(); it != articles.end(); ++it) {
586
  for(TQStringList::ConstIterator it = s_articles.constBegin(); it != s_articles.constEnd(); ++it) {
589
    TQRegExp rx(TQString::fromLatin1("\\b") + *it + TQString::fromLatin1("\\b"));
587
    TQRegExp rx(TQString::fromLatin1("\\b") + *it + TQString::fromLatin1("\\b"));
590
    value.remove(rx);
588
    value.remove(rx);
591
  }
589
  }
(-)a/src/field.h (+1 lines)
Lines 385-390 private: Link Here
385
  FormatFlag m_formatFlag;
385
  FormatFlag m_formatFlag;
386
  StringMap m_properties;
386
  StringMap m_properties;
387
387
388
  static TQStringList s_articles;
388
  // need to remember articles with apostrophes for capitalization
389
  // need to remember articles with apostrophes for capitalization
389
  static TQStringList s_articlesApos;
390
  static TQStringList s_articlesApos;
390
  static TQRegExp s_delimiter;
391
  static TQRegExp s_delimiter;
(-)a/src/gui/counteditem.h (-2 / +2 lines)
Lines 39-46 public: Link Here
39
                         int column, int width, int align);
39
                         int column, int width, int align);
40
  virtual int width(const TQFontMetrics& fm, const TQListView* lv, int c) const;
40
  virtual int width(const TQFontMetrics& fm, const TQListView* lv, int c) const;
41
41
42
  virtual int count() const { return childCount(); }
42
  virtual size_t count() const { return childCount(); }
43
  virtual int realChildCount() const { return count(); }
43
  virtual size_t realChildCount() const { return count(); }
44
};
44
};
45
45
46
  } // end namespace
46
  } // end namespace
(-)a/src/gui/listview.h (-1 / +1 lines)
Lines 139-145 public: Link Here
139
  ListViewItem(ListViewItem* parent, const TQString& text) : TDEListViewItem(parent, text), m_sortWeight(-1) {}
139
  ListViewItem(ListViewItem* parent, const TQString& text) : TDEListViewItem(parent, text), m_sortWeight(-1) {}
140
  virtual ~ListViewItem();
140
  virtual ~ListViewItem();
141
141
142
  virtual int realChildCount() const { return childCount(); }
142
  virtual size_t realChildCount() const { return childCount(); }
143
  virtual void clear();
143
  virtual void clear();
144
144
145
  virtual bool isEntryGroupItem() const { return false; }
145
  virtual bool isEntryGroupItem() const { return false; }
(-)a/src/gui/tabcontrol.cpp (+3 lines)
Lines 29-34 TQTabBar* TabControl::tabBar() const { Link Here
29
void TabControl::setFocusToFirstChild() {
29
void TabControl::setFocusToFirstChild() {
30
  TQWidget* page = currentPage();
30
  TQWidget* page = currentPage();
31
  Q_ASSERT(page);
31
  Q_ASSERT(page);
32
  if(!page) {
33
    return;
34
  }
32
  TQObjectList* list = page->queryList(TQWIDGET_OBJECT_NAME_STRING);
35
  TQObjectList* list = page->queryList(TQWIDGET_OBJECT_NAME_STRING);
33
  for(TQObjectListIt it(*list); it.current(); ++it) {
36
  for(TQObjectListIt it(*list); it.current(); ++it) {
34
    TQWidget* w = TQT_TQWIDGET(it.current());
37
    TQWidget* w = TQT_TQWIDGET(it.current());
(-)a/src/image.cpp (-1 / +2 lines)
Lines 14-19 Link Here
14
#include "image.h"
14
#include "image.h"
15
#include "imagefactory.h"
15
#include "imagefactory.h"
16
#include "tellico_debug.h"
16
#include "tellico_debug.h"
17
#include "tellico_utils.h"
17
18
18
#include <kmdcodec.h>
19
#include <kmdcodec.h>
19
#include <kpixmapio.h>
20
#include <kpixmapio.h>
Lines 105-111 TQByteArray Image::byteArray(const TQImage& img_, const TQCString& outputFormat_ Link Here
105
TQString Image::idClean(const TQString& id_) {
106
TQString Image::idClean(const TQString& id_) {
106
  static const TQRegExp rx('[' + TQRegExp::escape(TQString::fromLatin1("/@<>#\"&%?={}|^~[]'`\\:+")) + ']');
107
  static const TQRegExp rx('[' + TQRegExp::escape(TQString::fromLatin1("/@<>#\"&%?={}|^~[]'`\\:+")) + ']');
107
  TQString clean = id_;
108
  TQString clean = id_;
108
  return clean.remove(rx);
109
  return shareString(clean.remove(rx));
109
}
110
}
110
111
111
void Image::setID(const TQString& id_) {
112
void Image::setID(const TQString& id_) {
(-)a/src/imagefactory.cpp (-35 / +45 lines)
Lines 316-322 bool ImageFactory::writeCachedImage(const TQString& id_, CacheDir dir_, bool for Link Here
316
316
317
const Tellico::Data::Image& ImageFactory::imageById(const TQString& id_) {
317
const Tellico::Data::Image& ImageFactory::imageById(const TQString& id_) {
318
  if(id_.isEmpty()) {
318
  if(id_.isEmpty()) {
319
    myDebug() << "ImageFactory::imageById() - empty id" << endl;
319
//    myDebug() << "ImageFactory::imageById() - empty id" << endl;
320
    return s_null;
320
    return s_null;
321
  }
321
  }
322
//  myLog() << "ImageFactory::imageById() - " << id_ << endl;
322
//  myLog() << "ImageFactory::imageById() - " << id_ << endl;
Lines 348-354 const Tellico::Data::Image& ImageFactory::imageById(const TQString& id_) { Link Here
348
  if((s_imageInfoMap.contains(id_) && s_imageInfoMap[id_].linkOnly) || !KURL::isRelativeURL(id_)) {
348
  if((s_imageInfoMap.contains(id_) && s_imageInfoMap[id_].linkOnly) || !KURL::isRelativeURL(id_)) {
349
    KURL u = id_;
349
    KURL u = id_;
350
    if(u.isValid()) {
350
    if(u.isValid()) {
351
      return addImageImpl(u, false, KURL(), true);
351
      return addImageImpl(u, true, KURL(), true);
352
    }
352
    }
353
  }
353
  }
354
354
Lines 385-427 const Tellico::Data::Image& ImageFactory::imageById(const TQString& id_) { Link Here
385
    }
385
    }
386
  }
386
  }
387
387
388
  // don't check Config::writeImagesInFile(), someday we might have problems
388
  if(Config::imageLocation() == Config::ImagesInLocalDir) {
389
  // and the image will exist in the data dir, but the app thinks everything should
389
    bool exists = TQFile::exists(localDir() + id_);
390
  // be in the zip file instead
390
    if(exists) {
391
  bool exists = TQFile::exists(dataDir() + id_);
391
      const Data::Image& img2 = addCachedImageImpl(id_, LocalDir);
392
  if(exists) {
392
      if(img2.isNull()) {
393
    // if we're loading from the application data dir, but images are being saved in the
393
        myDebug() << "ImageFactory::imageById() - tried to add from LocalDir, but failed: " << id_ << endl;
394
    // data file instead, then consider the document to be modified since it needs
394
      } else {
395
    // the image saved
395
//        myLog() << "...imageById() - found in local dir" << endl;
396
    if(Config::imageLocation() != Config::ImagesInAppDir) {
396
        return img2;
397
      }
398
    }
399
    // not an else statement, it might be null
400
    if(TQFile::exists(dataDir() + id_)) {
401
      // the img is in the other location
402
      // consider the document to be modified since it needs the image saved
397
      Data::Document::self()->slotSetModified(true);
403
      Data::Document::self()->slotSetModified(true);
404
      const Data::Image& img2 = addCachedImageImpl(id_, DataDir);
405
      if(img2.isNull()) {
406
        myDebug() << "ImageFactory::imageById() - tried to add from DataDir, but failed: " << id_ << endl;
407
      } else {
408
//        myLog() << "...imageById() - found in data dir" << endl;
409
        return img2;
410
      }
398
    }
411
    }
399
    const Data::Image& img2 = addCachedImageImpl(id_, DataDir);
412
  } else if(Config::imageLocation() == Config::ImagesInAppDir) {
400
    if(img2.isNull()) {
413
    bool exists = TQFile::exists(dataDir() + id_);
401
      myDebug() << "ImageFactory::imageById() - tried to add from DataDir, but failed: " << id_ << endl;
414
    if(exists) {
402
    } else {
415
      const Data::Image& img2 = addCachedImageImpl(id_, DataDir);
403
//      myLog() << "...imageById() - found in data dir" << endl;
416
      if(img2.isNull()) {
404
      return img2;
417
        myDebug() << "ImageFactory::imageById() - tried to add from DataDir, but failed: " << id_ << endl;
418
      } else {
419
//        myLog() << "...imageById() - found in data dir" << endl;
420
        return img2;
421
      }
405
    }
422
    }
406
  }
423
    // not an else statement, it might be null
407
  // if localDir() == DataDir(), then there's nothing left to check
424
    if(TQFile::exists(localDir() + id_)) {
408
  if(localDir() == dataDir()) {
425
      // the img is in the other location
409
    return s_null;
426
      // consider the document to be modified since it needs the image saved
410
  }
411
  exists = TQFile::exists(localDir() + id_);
412
  if(exists) {
413
    // if we're loading from the application data dir, but images are being saved in the
414
    // data file instead, then consider the document to be modified since it needs
415
    // the image saved
416
    if(Config::imageLocation() != Config::ImagesInLocalDir) {
417
      Data::Document::self()->slotSetModified(true);
427
      Data::Document::self()->slotSetModified(true);
418
    }
428
      const Data::Image& img2 = addCachedImageImpl(id_, LocalDir);
419
    const Data::Image& img2 = addCachedImageImpl(id_, LocalDir);
429
      if(img2.isNull()) {
420
    if(img2.isNull()) {
430
        myDebug() << "ImageFactory::imageById() - tried to add from LocalDir, but failed: " << id_ << endl;
421
      myDebug() << "ImageFactory::imageById() - tried to add from LocalDir, but failed: " << id_ << endl;
431
      } else {
422
    } else {
432
//        myLog() << "...imageById() - found in local dir" << endl;
423
//      myLog() << "...imageById() - found in data dir" << endl;
433
        return img2;
424
      return img2;
434
      }
425
    }
435
    }
426
  }
436
  }
427
  myDebug() << "***ImageFactory::imageById() - not found: " << id_ << endl;
437
  myDebug() << "***ImageFactory::imageById() - not found: " << id_ << endl;
(-)a/src/isbnvalidator.cpp (+8 lines)
Lines 12-17 Link Here
12
 ***************************************************************************/
12
 ***************************************************************************/
13
13
14
#include "isbnvalidator.h"
14
#include "isbnvalidator.h"
15
#include "upcvalidator.h"
15
#include "tellico_debug.h"
16
#include "tellico_debug.h"
16
17
17
using Tellico::ISBNValidator;
18
using Tellico::ISBNValidator;
Lines 58-63 ISBNValidator::ISBNValidator(TQObject* parent_, const char* name_/*=0*/) Link Here
58
}
59
}
59
60
60
TQValidator::State ISBNValidator::validate(TQString& input_, int& pos_) const {
61
TQValidator::State ISBNValidator::validate(TQString& input_, int& pos_) const {
62
  // check if it's a cuecat first
63
  State catState = CueCat::decode(input_);
64
  if(catState != Invalid) {
65
    pos_ = input_.length();
66
    return catState;
67
  }
68
61
  if(input_.startsWith(TQString::fromLatin1("978")) ||
69
  if(input_.startsWith(TQString::fromLatin1("978")) ||
62
     input_.startsWith(TQString::fromLatin1("979"))) {
70
     input_.startsWith(TQString::fromLatin1("979"))) {
63
    return validate13(input_, pos_);
71
    return validate13(input_, pos_);
(-)a/src/lccnvalidator.cpp (-1 / +1 lines)
Lines 65-71 TQString LCCNValidator::formalize(const TQString& value_) { Link Here
65
65
66
  // now check for non digits in the serial
66
  // now check for non digits in the serial
67
  pos = 0;
67
  pos = 0;
68
  for( ; pos < serial.length() && serial.at(pos).isNumber(); ++pos) { ; }
68
  for( ; pos < static_cast<int>(serial.length()) && serial.at(pos).isNumber(); ++pos) { ; }
69
  TQString suffix = serial.mid(pos);
69
  TQString suffix = serial.mid(pos);
70
  serial = serial.left(pos);
70
  serial = serial.left(pos);
71
  // serial must be left-padded with zeros to 6 characters
71
  // serial must be left-padded with zeros to 6 characters
(-)a/src/listviewcomparison.cpp (+10 lines)
Lines 48-53 Tellico::ListViewComparison* Tellico::ListViewComparison::create(Data::ConstFiel Link Here
48
    return new DependentComparison(field_);
48
    return new DependentComparison(field_);
49
  } else if(field_->type() == Data::Field::Date || field_->formatFlag() == Data::Field::FormatDate) {
49
  } else if(field_->type() == Data::Field::Date || field_->formatFlag() == Data::Field::FormatDate) {
50
    return new ISODateComparison(field_);
50
    return new ISODateComparison(field_);
51
  } else if(field_->type() == Data::Field::Choice) {
52
    return new ChoiceComparison(field_);
51
  } else if(field_->formatFlag() == Data::Field::FormatTitle) {
53
  } else if(field_->formatFlag() == Data::Field::FormatTitle) {
52
    // Dependent could be title, so put this test after
54
    // Dependent could be title, so put this test after
53
    return new TitleComparison(field_);
55
    return new TitleComparison(field_);
Lines 277-279 int Tellico::ISODateComparison::compare(const TQString& str1, const TQString& st Link Here
277
  }
279
  }
278
  return 0;
280
  return 0;
279
}
281
}
282
283
Tellico::ChoiceComparison::ChoiceComparison(Data::ConstFieldPtr field) : ListViewComparison(field) {
284
  m_values = field->allowed();
285
}
286
287
int Tellico::ChoiceComparison::compare(const TQString& str1, const TQString& str2) {
288
  return m_values.findIndex(str1) - m_values.findIndex(str2);
289
}
(-)a/src/listviewcomparison.h (+11 lines)
Lines 112-116 protected: Link Here
112
  virtual int compare(const TQString& str1, const TQString& str2);
112
  virtual int compare(const TQString& str1, const TQString& str2);
113
};
113
};
114
114
115
class ChoiceComparison : public ListViewComparison {
116
public:
117
  ChoiceComparison(Data::ConstFieldPtr field);
118
119
protected:
120
  virtual int compare(const TQString& str1, const TQString& str2);
121
122
private:
123
  TQStringList m_values;
124
};
125
115
}
126
}
116
#endif
127
#endif
(-)a/src/mainwindow.cpp (-8 / +24 lines)
Lines 336-342 void MainWindow::initActions() { Link Here
336
  action = new TDEAction(actionCollection(), "file_import_csv");
336
  action = new TDEAction(actionCollection(), "file_import_csv");
337
  action->setText(i18n("Import CSV Data..."));
337
  action->setText(i18n("Import CSV Data..."));
338
  action->setToolTip(i18n("Import a CSV file"));
338
  action->setToolTip(i18n("Import a CSV file"));
339
  action->setIcon(MIME_ICON("text/x-csv"));
339
  action->setIcon(MIME_ICON("text/csv"));
340
  importMenu->insert(action);
340
  importMenu->insert(action);
341
  connect(action, TQT_SIGNAL(activated()), importMapper, TQT_SLOT(map()));
341
  connect(action, TQT_SIGNAL(activated()), importMapper, TQT_SLOT(map()));
342
  importMapper->setMapping(action, Import::CSV);
342
  importMapper->setMapping(action, Import::CSV);
Lines 506-512 void MainWindow::initActions() { Link Here
506
  action = new TDEAction(actionCollection(), "file_export_csv");
506
  action = new TDEAction(actionCollection(), "file_export_csv");
507
  action->setText(i18n("Export to CSV..."));
507
  action->setText(i18n("Export to CSV..."));
508
  action->setToolTip(i18n("Export to a comma-separated values file"));
508
  action->setToolTip(i18n("Export to a comma-separated values file"));
509
  action->setIcon(MIME_ICON("text/x-csv"));
509
  action->setIcon(MIME_ICON("text/csv"));
510
  exportMenu->insert(action);
510
  exportMenu->insert(action);
511
  connect(action, TQT_SIGNAL(activated()), exportMapper, TQT_SLOT(map()));
511
  connect(action, TQT_SIGNAL(activated()), exportMapper, TQT_SLOT(map()));
512
  exportMapper->setMapping(action, Export::CSV);
512
  exportMapper->setMapping(action, Export::CSV);
Lines 750-755 void MainWindow::initActions() { Link Here
750
  // want to update every time the filter text changes
750
  // want to update every time the filter text changes
751
  connect(m_quickFilter, TQT_SIGNAL(textChanged(const TQString&)),
751
  connect(m_quickFilter, TQT_SIGNAL(textChanged(const TQString&)),
752
          TQT_TQOBJECT(this), TQT_SLOT(slotQueueFilter()));
752
          TQT_TQOBJECT(this), TQT_SLOT(slotQueueFilter()));
753
  m_quickFilter->installEventFilter(this); // intercept keyEvents
753
754
754
  KWidgetAction* wAction = new KWidgetAction(m_quickFilter, i18n("Filter"), 0, 0, 0,
755
  KWidgetAction* wAction = new KWidgetAction(m_quickFilter, i18n("Filter"), 0, 0, 0,
755
                                             actionCollection(), "quick_filter");
756
                                             actionCollection(), "quick_filter");
Lines 907-918 void MainWindow::saveOptions() { Link Here
907
  Config::setGroupViewSortAscending(m_groupView->ascendingSort());
908
  Config::setGroupViewSortAscending(m_groupView->ascendingSort());
908
909
909
  if(m_loanView) {
910
  if(m_loanView) {
910
    Config::setLoanViewSortAscending(m_loanView->sortStyle()); // ok to use SortColumn key, save semantics
911
    Config::setLoanViewSortColumn(m_loanView->sortStyle()); // ok to use SortColumn key, save semantics
911
    Config::setLoanViewSortAscending(m_loanView->ascendingSort());
912
    Config::setLoanViewSortAscending(m_loanView->ascendingSort());
912
  }
913
  }
913
914
914
  if(m_filterView) {
915
  if(m_filterView) {
915
    Config::setFilterViewSortAscending(m_filterView->sortStyle()); // ok to use SortColumn key, save semantics
916
    Config::setFilterViewSortColumn(m_filterView->sortStyle()); // ok to use SortColumn key, save semantics
916
    Config::setFilterViewSortAscending(m_filterView->ascendingSort());
917
    Config::setFilterViewSortAscending(m_filterView->ascendingSort());
917
  }
918
  }
918
919
Lines 991-997 void MainWindow::saveCollectionOptions(Data::CollPtr coll_) { Link Here
991
        configIndex = i;
992
        configIndex = i;
992
      }
993
      }
993
    }
994
    }
994
    uint limit = TQMIN(urls.count(), Config::maxCustomURLSettings());
995
    size_t limit = TQMIN(urls.count(), Config::maxCustomURLSettings());
995
    for(uint i = 0; i < limit; ++i) {
996
    for(uint i = 0; i < limit; ++i) {
996
      config.writeEntry(TQString::fromLatin1("URL_%1").arg(i), urls[i].url());
997
      config.writeEntry(TQString::fromLatin1("URL_%1").arg(i), urls[i].url());
997
      config.writeEntry(TQString::fromLatin1("Group By_%1").arg(i), groupBys[i]);
998
      config.writeEntry(TQString::fromLatin1("Group By_%1").arg(i), groupBys[i]);
Lines 1531-1541 void MainWindow::slotEntryCount() { Link Here
1531
    return;
1532
    return;
1532
  }
1533
  }
1533
1534
1534
  int count = coll->entryCount();
1535
  size_t count = coll->entryCount();
1535
  TQString text = i18n("Total entries: %1").arg(count);
1536
  TQString text = i18n("Total entries: %1").arg(count);
1536
1537
1537
  int selectCount = Controller::self()->selectedEntries().count();
1538
  size_t selectCount = Controller::self()->selectedEntries().count();
1538
  int filterCount = m_detailedView->visibleItems();
1539
  size_t filterCount = m_detailedView->visibleItems();
1539
  // if more than one book is selected, add the number of selected books
1540
  // if more than one book is selected, add the number of selected books
1540
  if(filterCount < count && selectCount > 1) {
1541
  if(filterCount < count && selectCount > 1) {
1541
    text += TQChar(' ');
1542
    text += TQChar(' ');
Lines 1848-1853 void MainWindow::setFilter(const TQString& text_) { Link Here
1848
      // if it isn't valid, hold off on applying the filter
1849
      // if it isn't valid, hold off on applying the filter
1849
      TQRegExp tx(text);
1850
      TQRegExp tx(text);
1850
      if(!tx.isValid()) {
1851
      if(!tx.isValid()) {
1852
        text = TQRegExp::escape(text);
1853
        tx.setPattern(text);
1854
      }
1855
      if(!tx.isValid()) {
1851
        myDebug() << "MainWindow::slotUpdateFilter() - invalid regexp: " << text << endl;
1856
        myDebug() << "MainWindow::slotUpdateFilter() - invalid regexp: " << text << endl;
1852
        return;
1857
        return;
1853
      }
1858
      }
Lines 2389-2392 void MainWindow::slotURLAction(const KURL& url_) { Link Here
2389
  }
2394
  }
2390
}
2395
}
2391
2396
2397
bool MainWindow::eventFilter(TQObject* obj_, TQEvent* ev_) {
2398
  if(ev_->type() == TQEvent::KeyPress && obj_ == m_quickFilter) {
2399
    switch(static_cast<TQKeyEvent*>(ev_)->key()) {
2400
      case TQt::Key_Escape:
2401
        m_quickFilter->clear();
2402
        return true;
2403
    }
2404
  }
2405
  return false;
2406
}
2407
2392
#include "mainwindow.moc"
2408
#include "mainwindow.moc"
(-)a/src/mainwindow.h (+2 lines)
Lines 123-128 public: Link Here
123
  virtual void setFilter(const TQString& text);
123
  virtual void setFilter(const TQString& text);
124
  virtual bool showEntry(long id);
124
  virtual bool showEntry(long id);
125
125
126
  bool eventFilter(TQObject* watched, TQEvent* event);
127
126
public slots:
128
public slots:
127
  /**
129
  /**
128
   * Initializes some stuff after the object is created.
130
   * Initializes some stuff after the object is created.
(-)a/src/reportdialog.cpp (-1 / +1 lines)
Lines 197-203 void ReportDialog::slotSaveAs() { Link Here
197
  if(!u.isEmpty() && u.isValid()) {
197
  if(!u.isEmpty() && u.isValid()) {
198
    TDEConfigGroup config(TDEGlobal::config(), "ExportOptions");
198
    TDEConfigGroup config(TDEGlobal::config(), "ExportOptions");
199
    bool encode = config.readBoolEntry("EncodeUTF8", true);
199
    bool encode = config.readBoolEntry("EncodeUTF8", true);
200
    int oldOpt = m_exporter->options();
200
    long oldOpt = m_exporter->options();
201
201
202
    // turn utf8 off
202
    // turn utf8 off
203
    long options = oldOpt & ~Export::ExportUTF8;
203
    long options = oldOpt & ~Export::ExportUTF8;
(-)a/src/tellico_debug.h (-1 / +1 lines)
Lines 22-28 Link Here
22
// std::clock_t
22
// std::clock_t
23
#include <ctime>
23
#include <ctime>
24
24
25
// linux has __GNUC_PREREQ, NetBSD has __GNUC_PREQ__
25
// linux has __GNUC_PREREQ, NetBSD has __GNUC_PREREQ__
26
#if defined(__GNUC_PREREQ) && !defined(__GNUC_PREREQ__)
26
#if defined(__GNUC_PREREQ) && !defined(__GNUC_PREREQ__)
27
#define __GNUC_PREREQ__ __GNUC_PREREQ
27
#define __GNUC_PREREQ__ __GNUC_PREREQ
28
#endif
28
#endif
(-)a/src/tests/Makefile.am (-1 / +1 lines)
Lines 16-22 METASOURCES = AUTO Link Here
16
DISTCLEANFILES = *~ *.Po $(CLEANFILES)
16
DISTCLEANFILES = *~ *.Po $(CLEANFILES)
17
17
18
isbntest_SOURCES = isbntest.cpp
18
isbntest_SOURCES = isbntest.cpp
19
isbntest_LDADD = ../isbnvalidator.o $(LIB_QT) $(LIB_TDECORE) $(LIB_TDEUI)
19
isbntest_LDADD = ../isbnvalidator.o ../upcvalidator.o $(LIB_QT) $(LIB_TDECORE) $(LIB_TDEUI)
20
20
21
latin1test_SOURCES = latin1test.cpp
21
latin1test_SOURCES = latin1test.cpp
22
latin1test_LDADD = $(LIB_QT) $(LIB_TDECORE)
22
latin1test_LDADD = $(LIB_QT) $(LIB_TDECORE)
(-)a/src/translators/Makefile.am (-4 / +8 lines)
Lines 12-20 libtranslators_a_SOURCES = alexandriaexporter.cpp alexandriaimporter.cpp \ Link Here
12
	filelistingimporter.cpp freedb_util.cpp freedbimporter.cpp gcfilmsexporter.cpp \
12
	filelistingimporter.cpp freedb_util.cpp freedbimporter.cpp gcfilmsexporter.cpp \
13
	gcfilmsimporter.cpp griffithimporter.cpp grs1importer.cpp htmlexporter.cpp libcsv.c \
13
	gcfilmsimporter.cpp griffithimporter.cpp grs1importer.cpp htmlexporter.cpp libcsv.c \
14
	onixexporter.cpp pdfimporter.cpp pilotdbexporter.cpp referencerimporter.cpp \
14
	onixexporter.cpp pdfimporter.cpp pilotdbexporter.cpp referencerimporter.cpp \
15
	risimporter.cpp tellico_xml.cpp tellicoimporter.cpp tellicoxmlexporter.cpp \
15
	risimporter.cpp tellico_xml.cpp tellicoimporter.cpp tellicosaximporter.cpp \
16
	tellicozipexporter.cpp textimporter.cpp xmlimporter.cpp xsltexporter.cpp xslthandler.cpp \
16
	tellicoxmlexporter.cpp tellicoxmlhandler.cpp tellicozipexporter.cpp textimporter.cpp \
17
	xsltimporter.cpp
17
	xmlimporter.cpp xmlstatehandler.cpp xsltexporter.cpp xslthandler.cpp xsltimporter.cpp
18
18
19
if !USE_LIBBTPARSE
19
if !USE_LIBBTPARSE
20
  SUBDIR_LIBBTPARSE = btparse
20
  SUBDIR_LIBBTPARSE = btparse
Lines 51-57 dcimporter.h dcimporter.cpp griffithimporter.h \ Link Here
51
griffithimporter.cpp     griffith2tellico.py      pdfimporter.h \
51
griffithimporter.cpp     griffith2tellico.py      pdfimporter.h \
52
pdfimporter.cpp          referencerimporter.h     referencerimporter.cpp \
52
pdfimporter.cpp          referencerimporter.h     referencerimporter.cpp \
53
libcsv.h                 libcsv.c \
53
libcsv.h                 libcsv.c \
54
deliciousimporter.h      deliciousimporter.cpp
54
deliciousimporter.h      deliciousimporter.cpp \
55
tellicosaximporter.h     tellicosaximporter.cpp \
56
tellicoxmlhandler.h      tellicoxmlhandler.cpp \
57
xmlstatehandler.h        xmlstatehandler.cpp
55
58
56
####### tdevelop will overwrite this part!!! (end)############
59
####### tdevelop will overwrite this part!!! (end)############
57
60
Lines 68-70 KDE_OPTIONS = noautodist Link Here
68
appdir = $(kde_datadir)/tellico
71
appdir = $(kde_datadir)/tellico
69
app_DATA = bibtex-translation.xml
72
app_DATA = bibtex-translation.xml
70
app_SCRIPTS = griffith2tellico.py
73
app_SCRIPTS = griffith2tellico.py
74
(-)a/src/translators/alexandriaexporter.cpp (-1 / +1 lines)
Lines 77-83 bool AlexandriaExporter::exec() { Link Here
77
  ProgressItem& item = ProgressManager::self()->newProgressItem(this, TQString(), false);
77
  ProgressItem& item = ProgressManager::self()->newProgressItem(this, TQString(), false);
78
  item.setTotalSteps(entries().count());
78
  item.setTotalSteps(entries().count());
79
  ProgressItem::Done done(this);
79
  ProgressItem::Done done(this);
80
  const uint stepSize = TQMIN(1, entries().count()/100);
80
  const uint stepSize = TQMAX(1, entries().count()/100);
81
  const bool showProgress = options() & ExportProgress;
81
  const bool showProgress = options() & ExportProgress;
82
82
83
  GUI::CursorSaver cs;
83
  GUI::CursorSaver cs;
(-)a/src/translators/bibteximporter.cpp (+42 lines)
Lines 308-312 TQWidget* BibtexImporter::widget(TQWidget* parent_, const char* name_/*=0*/) { Link Here
308
  return m_widget;
308
  return m_widget;
309
}
309
}
310
310
311
bool BibtexImporter::maybeBibtex(const KURL& url_) {
312
  TQString text = FileHandler::readTextFile(url_, true /*quiet*/);
313
  if(text.isEmpty()) {
314
    return false;
315
  }
316
317
  bt_initialize();
318
  TQRegExp rx(TQString::fromLatin1("[{}]"));
319
320
  ushort bt_options = 0; // ushort is defined in btparse.h
321
  boolean ok; // boolean is defined in btparse.h as an int
322
  bool foundOne = false;
323
  int brace = 0;
324
  int startpos = 0;
325
  int pos = text.find(rx, 0);
326
  while(pos > 0) {
327
    if(text[pos] == '{') {
328
      ++brace;
329
    } else if(text[pos] == '}' && brace > 0) {
330
      --brace;
331
    }
332
    if(brace == 0) {
333
      TQString entry = text.mid(startpos, pos-startpos+1).stripWhiteSpace();
334
      // All the downstream text processing on the AST node will assume utf-8
335
      AST* node = bt_parse_entry_s(const_cast<char*>(entry.utf8().data()),
336
                                   const_cast<char*>(url_.fileName().local8Bit().data()),
337
                                   0, bt_options, &ok);
338
      if(ok && node) {
339
        foundOne = true;
340
        break;
341
      }
342
      startpos = pos+1;
343
    }
344
    pos = text.find(rx, pos+1);
345
  }
346
  if(foundOne) {
347
    // clean up some structures
348
    bt_parse_entry_s(0, 0, 1, 0, 0);
349
  }
350
  bt_cleanup();
351
  return foundOne;
352
}
311
353
312
#include "bibteximporter.moc"
354
#include "bibteximporter.moc"
(-)a/src/translators/bibteximporter.h (+2 lines)
Lines 67-72 public: Link Here
67
  virtual TQWidget* widget(TQWidget* parent, const char* name=0);
67
  virtual TQWidget* widget(TQWidget* parent, const char* name=0);
68
  virtual bool canImport(int type) const;
68
  virtual bool canImport(int type) const;
69
69
70
  static bool maybeBibtex(const KURL& url);
71
70
public slots:
72
public slots:
71
  void slotCancel();
73
  void slotCancel();
72
74
(-)a/src/translators/csvimporter.cpp (-1 / +27 lines)
Lines 50-64 extern "C" { Link Here
50
50
51
using Tellico::Import::CSVImporter;
51
using Tellico::Import::CSVImporter;
52
52
53
typedef int(*SpaceFunc)(char);
54
53
static void writeToken(char* buffer, size_t len, void* data);
55
static void writeToken(char* buffer, size_t len, void* data);
54
static void writeRow(char buffer, void* data);
56
static void writeRow(char buffer, void* data);
57
static int isSpace(char c);
58
static int isSpaceOrTab(char c);
59
static int isTab(char c);
55
60
56
class CSVImporter::Parser {
61
class CSVImporter::Parser {
57
public:
62
public:
58
  Parser(const TQString& str) : stream(new TQTextIStream(&str)) { csv_init(&parser, 0); }
63
  Parser(const TQString& str) : stream(new TQTextIStream(&str)) { csv_init(&parser, 0); }
59
  ~Parser() { csv_free(parser); delete stream; stream = 0; }
64
  ~Parser() { csv_free(parser); delete stream; stream = 0; }
60
65
61
  void setDelimiter(const TQString& s) { Q_ASSERT(s.length() == 1); csv_set_delim(parser, s[0].latin1()); }
66
  void setDelimiter(const TQString& s) {
67
    Q_ASSERT(s.length() == 1);
68
    csv_set_delim(parser, s[0].latin1());
69
    if(s[0] == '\t')     csv_set_space_func(parser, isSpace);
70
    else if(s[0] == ' ') csv_set_space_func(parser, isTab);
71
    else                 csv_set_space_func(parser, isSpaceOrTab);
72
  }
62
  void reset(const TQString& str) { delete stream; stream = new TQTextIStream(&str); };
73
  void reset(const TQString& str) { delete stream; stream = new TQTextIStream(&str); };
63
  bool hasNext() { return !stream->atEnd(); }
74
  bool hasNext() { return !stream->atEnd(); }
64
  void skipLine() { stream->readLine(); }
75
  void skipLine() { stream->readLine(); }
Lines 95-100 static void writeRow(char c, void* data) { Link Here
95
  p->setRowDone(true);
106
  p->setRowDone(true);
96
}
107
}
97
108
109
static int isSpace(char c) {
110
  if (c == CSV_SPACE) return 1;
111
  return 0;
112
}
113
114
static int isSpaceOrTab(char c) {
115
  if (c == CSV_SPACE || c == CSV_TAB) return 1;
116
  return 0;
117
}
118
119
static int isTab(char c) {
120
  if (c == CSV_TAB) return 1;
121
  return 0;
122
}
123
98
CSVImporter::CSVImporter(const KURL& url_) : Tellico::Import::TextImporter(url_),
124
CSVImporter::CSVImporter(const KURL& url_) : Tellico::Import::TextImporter(url_),
99
    m_coll(0),
125
    m_coll(0),
100
    m_existingCollection(0),
126
    m_existingCollection(0),
(-)a/src/translators/deliciousimporter.cpp (-2 / +15 lines)
Lines 35-41 DeliciousImporter::DeliciousImporter(const KURL& url_) : XSLTImporter(url_) { Link Here
35
}
35
}
36
36
37
bool DeliciousImporter::canImport(int type) const {
37
bool DeliciousImporter::canImport(int type) const {
38
  return type == Data::Collection::Book;
38
  return type == Data::Collection::Book ||
39
         type == Data::Collection::Video ||
40
         type == Data::Collection::Game;
39
}
41
}
40
42
41
Tellico::Data::CollPtr DeliciousImporter::collection() {
43
Tellico::Data::CollPtr DeliciousImporter::collection() {
Lines 51-57 Tellico::Data::CollPtr DeliciousImporter::collection() { Link Here
51
                              << TQString::fromLatin1("Medium Covers/")
53
                              << TQString::fromLatin1("Medium Covers/")
52
                              << TQString::fromLatin1("Small Covers/")
54
                              << TQString::fromLatin1("Small Covers/")
53
                              << TQString::fromLatin1("Plain Covers/");
55
                              << TQString::fromLatin1("Plain Covers/");
54
  const TQString commField = TQString::fromLatin1("comments");
56
  TQString commField;
57
  switch(coll->type()) {
58
    case Data::Collection::Book:
59
      commField = TQString::fromLatin1("comments"); break;
60
    case Data::Collection::Video:
61
      commField = TQString::fromLatin1("plot"); break;
62
    case Data::Collection::Game:
63
      commField = TQString::fromLatin1("description"); break;
64
    default:
65
      myWarning() << "bad collection type:" << coll->type() << endl;
66
  }
67
55
  const TQString uuidField = TQString::fromLatin1("uuid");
68
  const TQString uuidField = TQString::fromLatin1("uuid");
56
  const TQString coverField = TQString::fromLatin1("cover");
69
  const TQString coverField = TQString::fromLatin1("cover");
57
  const bool isLocal = url().isLocalFile();
70
  const bool isLocal = url().isLocalFile();
(-)a/src/translators/freedb_util.cpp (-1 / +1 lines)
Lines 365-371 FreeDBImporter::CDText FreeDBImporter::getCDText(const TQCString& drive_) { Link Here
365
    }
365
    }
366
  }
366
  }
367
  if(cdtext.trackTitles.size() != cdtext.trackArtists.size()) {
367
  if(cdtext.trackTitles.size() != cdtext.trackArtists.size()) {
368
    int size = TQMAX(cdtext.trackTitles.size(), cdtext.trackArtists.size());
368
    size_t size = TQMAX(cdtext.trackTitles.size(), cdtext.trackArtists.size());
369
    cdtext.trackTitles.resize(size);
369
    cdtext.trackTitles.resize(size);
370
    cdtext.trackArtists.resize(size);
370
    cdtext.trackArtists.resize(size);
371
  }
371
  }
(-)a/src/translators/htmlexporter.cpp (+4 lines)
Lines 31-36 Link Here
31
#include <tdeio/netaccess.h>
31
#include <tdeio/netaccess.h>
32
#include <tdeapplication.h>
32
#include <tdeapplication.h>
33
#include <tdelocale.h>
33
#include <tdelocale.h>
34
#include <kuser.h>
34
35
35
#include <tqdom.h>
36
#include <tqdom.h>
36
#include <tqgroupbox.h>
37
#include <tqgroupbox.h>
Lines 192-197 bool HTMLExporter::loadXSLTFile() { Link Here
192
    m_handler = 0;
193
    m_handler = 0;
193
    return false;
194
    return false;
194
  }
195
  }
196
  m_handler->addStringParam("date", TQDate::currentDate().toString(TQt::ISODate).latin1());
197
  m_handler->addStringParam("time", TQTime::currentTime().toString(TQt::ISODate).latin1());
198
  m_handler->addStringParam("user", KUser(KUser::UseRealUserID).loginName().latin1());
195
199
196
  if(m_exportEntryFiles) {
200
  if(m_exportEntryFiles) {
197
    // export entries to same place as all the other date files
201
    // export entries to same place as all the other date files
(-)a/src/translators/risimporter.cpp (-1 / +22 lines)
Lines 188-194 void RISImporter::readURL(const KURL& url_, int n, const TQDict<Data::Field>& ri Link Here
188
  // technically, the spec requires a space immediately after the hyphen
188
  // technically, the spec requires a space immediately after the hyphen
189
  // however, at least one website (Springer) outputs RIS with no space after the final "ER -"
189
  // however, at least one website (Springer) outputs RIS with no space after the final "ER -"
190
  // so just strip the white space later
190
  // so just strip the white space later
191
  // also be gracious and allow only any amount of space before hyphen
191
  // also be gracious and allow any amount of space before hyphen
192
  TQRegExp rx(TQString::fromLatin1("^(\\w\\w)\\s+-(.*)$"));
192
  TQRegExp rx(TQString::fromLatin1("^(\\w\\w)\\s+-(.*)$"));
193
  TQString currLine, nextLine;
193
  TQString currLine, nextLine;
194
  for(currLine = t.readLine(); !m_cancelled && !currLine.isNull(); currLine = nextLine, j += currLine.length()) {
194
  for(currLine = t.readLine(); !m_cancelled && !currLine.isNull(); currLine = nextLine, j += currLine.length()) {
Lines 312-315 void RISImporter::slotCancel() { Link Here
312
  m_cancelled = true;
312
  m_cancelled = true;
313
}
313
}
314
314
315
bool RISImporter::maybeRIS(const KURL& url_) {
316
  TQString text = FileHandler::readTextFile(url_, true /*quiet*/);
317
  if(text.isEmpty()) {
318
    return false;
319
  }
320
321
  // bare bones check, strip white space at beginning
322
  // and then first text line must be valid RIS
323
  TQTextIStream t(&text);
324
325
  TQRegExp rx(TQString::fromLatin1("^(\\w\\w)\\s+-(.*)$"));
326
  TQString currLine;
327
  for(currLine = t.readLine(); !currLine.isNull(); currLine = t.readLine()) {
328
    if(currLine.stripWhiteSpace().isEmpty()) {
329
      continue;
330
    }
331
    break;
332
  }
333
  return rx.exactMatch(currLine);
334
}
335
315
#include "risimporter.moc"
336
#include "risimporter.moc"
(-)a/src/translators/risimporter.h (+2 lines)
Lines 50-55 public: Link Here
50
  virtual TQWidget* widget(TQWidget*, const char*) { return 0; }
50
  virtual TQWidget* widget(TQWidget*, const char*) { return 0; }
51
  virtual bool canImport(int type) const;
51
  virtual bool canImport(int type) const;
52
52
53
  static bool maybeRIS(const KURL& url);
54
53
public slots:
55
public slots:
54
  void slotCancel();
56
  void slotCancel();
55
57
(-)a/src/translators/tellico_xml.cpp (+6 lines)
Lines 63-68 TQString Tellico::XML::dtdTellico(int version) { Link Here
63
  return TQString::fromLatin1("http://periapsis.org/tellico/dtd/v%1/tellico.dtd").arg(version);
63
  return TQString::fromLatin1("http://periapsis.org/tellico/dtd/v%1/tellico.dtd").arg(version);
64
}
64
}
65
65
66
// returns true if the file has to be converted
67
// version 9 to 10 requires no conversion since it only added board games
68
bool Tellico::XML::versionConversion(uint from, uint to) {
69
  return from < to && (from != 9 || to != 10);
70
}
71
66
bool Tellico::XML::validXMLElementName(const TQString& name_) {
72
bool Tellico::XML::validXMLElementName(const TQString& name_) {
67
  return xmlValidateNameValue((xmlChar *)name_.utf8().data());
73
  return xmlValidateNameValue((xmlChar *)name_.utf8().data());
68
}
74
}
(-)a/src/translators/tellico_xml.h (+2 lines)
Lines 28-33 namespace Tellico { Link Here
28
    TQString pubTellico(int version = syntaxVersion);
28
    TQString pubTellico(int version = syntaxVersion);
29
    TQString dtdTellico(int version = syntaxVersion);
29
    TQString dtdTellico(int version = syntaxVersion);
30
30
31
    bool versionConversion(uint from, uint to);
32
31
    extern const TQString nsBookcase;
33
    extern const TQString nsBookcase;
32
    extern const TQString nsDublinCore;
34
    extern const TQString nsDublinCore;
33
    extern const TQString nsZing;
35
    extern const TQString nsZing;
(-)a/src/translators/tellicoimporter.cpp (-9 / +5 lines)
Lines 39-49 Link Here
39
39
40
using Tellico::Import::TellicoImporter;
40
using Tellico::Import::TellicoImporter;
41
41
42
bool TellicoImporter::versionConversion(uint from, uint to) {
43
  // version 10 only added board games to version 9
44
  return from < to && (from != 9 || to != 10);
45
}
46
47
TellicoImporter::TellicoImporter(const KURL& url_, bool loadAllImages_) : DataImporter(url_),
42
TellicoImporter::TellicoImporter(const KURL& url_, bool loadAllImages_) : DataImporter(url_),
48
    m_coll(0), m_loadAllImages(loadAllImages_), m_format(Unknown), m_modified(false),
43
    m_coll(0), m_loadAllImages(loadAllImages_), m_format(Unknown), m_modified(false),
49
    m_cancelled(false), m_hasImages(false), m_buffer(0), m_zip(0), m_imgDir(0) {
44
    m_cancelled(false), m_hasImages(false), m_buffer(0), m_zip(0), m_imgDir(0) {
Lines 157-163 void TellicoImporter::loadXMLData(const TQByteArray& data_, bool loadImages_) { Link Here
157
    }
152
    }
158
    m_format = Error;
153
    m_format = Error;
159
    return;
154
    return;
160
  } else if(versionConversion(syntaxVersion, XML::syntaxVersion)) {
155
  } else if(XML::versionConversion(syntaxVersion, XML::syntaxVersion)) {
161
    // going form version 9 to 10, there's no conversion needed
156
    // going form version 9 to 10, there's no conversion needed
162
    TQString str = i18n("Tellico is converting the file to a more recent document format. "
157
    TQString str = i18n("Tellico is converting the file to a more recent document format. "
163
                       "Information loss may occur if an older version of Tellico is used "
158
                       "Information loss may occur if an older version of Tellico is used "
Lines 374-380 void TellicoImporter::readField(uint syntaxVersion_, const TQDomElement& elem_) Link Here
374
369
375
  Data::FieldPtr field;
370
  Data::FieldPtr field;
376
  if(type == Data::Field::Choice) {
371
  if(type == Data::Field::Choice) {
377
    TQStringList allowed = TQStringList::split(TQString::fromLatin1(";"),
372
    TQStringList allowed = TQStringList::split(TQRegExp(TQString::fromLatin1("\\s*;\\s*")),
378
                                             elem_.attribute(TQString::fromLatin1("allowed")));
373
                                             elem_.attribute(TQString::fromLatin1("allowed")));
379
    if(isI18n) {
374
    if(isI18n) {
380
      for(TQStringList::Iterator it = allowed.begin(); it != allowed.end(); ++it) {
375
      for(TQStringList::Iterator it = allowed.begin(); it != allowed.end(); ++it) {
Lines 652-659 void TellicoImporter::readEntry(uint syntaxVersion_, const TQDomElement& entryEl Link Here
652
void TellicoImporter::readImage(const TQDomElement& elem_, bool loadImage_) {
647
void TellicoImporter::readImage(const TQDomElement& elem_, bool loadImage_) {
653
  TQString format = elem_.attribute(TQString::fromLatin1("format"));
648
  TQString format = elem_.attribute(TQString::fromLatin1("format"));
654
  const bool link = elem_.attribute(TQString::fromLatin1("link")) == Latin1Literal("true");
649
  const bool link = elem_.attribute(TQString::fromLatin1("link")) == Latin1Literal("true");
655
  TQString id = shareString(link ? elem_.attribute(TQString::fromLatin1("id"))
650
  // idClean() already calls shareString()
656
                                : Data::Image::idClean(elem_.attribute(TQString::fromLatin1("id"))));
651
  TQString id = link ? shareString(elem_.attribute(TQString::fromLatin1("id")))
652
                    : Data::Image::idClean(elem_.attribute(TQString::fromLatin1("id")));
657
653
658
  bool readInfo = true;
654
  bool readInfo = true;
659
  if(loadImage_) {
655
  if(loadImage_) {
(-)a/src/translators/tellicoimporter.h (-2 lines)
Lines 70-77 public slots: Link Here
70
  void slotCancel();
70
  void slotCancel();
71
71
72
private:
72
private:
73
  static bool versionConversion(uint from, uint to);
74
75
  void loadXMLData(const TQByteArray& data, bool loadImages);
73
  void loadXMLData(const TQByteArray& data, bool loadImages);
76
  void loadZipData();
74
  void loadZipData();
77
75
(-)a/src/translators/tellicosaximporter.cpp (+293 lines)
Line 0 Link Here
1
/***************************************************************************
2
    copyright            : (C) 2008 by Robby Stephenson
3
    email                : robby@periapsis.org
4
 ***************************************************************************/
5
6
/***************************************************************************
7
 *                                                                         *
8
 *   This program is free software; you can redistribute it and/or modify  *
9
 *   it under the terms of version 2 of the GNU General Public License as  *
10
 *   published by the Free Software Foundation;                            *
11
 *                                                                         *
12
 ***************************************************************************/
13
14
//  before tellicosaxmporter.h because of QT_NO_CAST_ASCII issues
15
#include "tellicoxmlhandler.h"
16
#include "tellicosaximporter.h"
17
#include "tellico_xml.h"
18
#include "../collectionfactory.h"
19
#include "../collections/bibtexcollection.h"
20
#include "../entry.h"
21
#include "../field.h"
22
#include "../imagefactory.h"
23
#include "../image.h"
24
#include "../isbnvalidator.h"
25
#include "../latin1literal.h"
26
#include "../tellico_strings.h"
27
#include "../tellico_kernel.h"
28
#include "../tellico_utils.h"
29
#include "../tellico_debug.h"
30
#include "../progressmanager.h"
31
32
#include <tdelocale.h>
33
#include <kmdcodec.h>
34
#include <kzip.h>
35
#include <tdeapplication.h>
36
37
#include <tqbuffer.h>
38
#include <tqfile.h>
39
#include <tqtimer.h>
40
41
using Tellico::Import::TellicoSaxImporter;
42
43
TellicoSaxImporter::TellicoSaxImporter(const KURL& url_, bool loadAllImages_) : DataImporter(url_),
44
    m_coll(0), m_loadAllImages(loadAllImages_), m_format(Unknown), m_modified(false),
45
    m_cancelled(false), m_hasImages(false), m_buffer(0), m_zip(0), m_imgDir(0) {
46
}
47
48
TellicoSaxImporter::TellicoSaxImporter(const TQString& text_) : DataImporter(text_),
49
    m_coll(0), m_loadAllImages(true), m_format(Unknown), m_modified(false),
50
    m_cancelled(false), m_hasImages(false), m_buffer(0), m_zip(0), m_imgDir(0) {
51
}
52
53
TellicoSaxImporter::~TellicoSaxImporter() {
54
  if(m_zip) {
55
    m_zip->close();
56
  }
57
  delete m_zip;
58
  m_zip = 0;
59
  delete m_buffer;
60
  m_buffer = 0;
61
}
62
63
Tellico::Data::CollPtr TellicoSaxImporter::collection() {
64
  if(m_coll) {
65
    return m_coll;
66
  }
67
68
  TQCString s; // read first 5 characters
69
  if(source() == URL) {
70
    if(!fileRef().open()) {
71
      return 0;
72
    }
73
    TQIODevice* f = fileRef().file();
74
    for(uint i = 0; i < 5; ++i) {
75
      s += static_cast<char>(f->getch());
76
    }
77
    f->reset();
78
  } else {
79
    if(data().size() < 5) {
80
      m_format = Error;
81
      return 0;
82
    }
83
    s = TQCString(data(), 6);
84
  }
85
86
  // need to decide if the data is xml text, or a zip file
87
  // if the first 5 characters are <?xml then treat it like text
88
  if(s[0] == '<' && s[1] == '?' && s[2] == 'x' && s[3] == 'm' && s[4] == 'l') {
89
    m_format = XML;
90
    loadXMLData(source() == URL ? fileRef().file()->readAll() : data(), true);
91
  } else {
92
    m_format = Zip;
93
    loadZipData();
94
  }
95
  return m_coll;
96
}
97
98
void TellicoSaxImporter::loadXMLData(const TQByteArray& data_, bool loadImages_) {
99
  ProgressItem& item = ProgressManager::self()->newProgressItem(this, progressLabel(), true);
100
  item.setTotalSteps(data_.size());
101
  connect(&item, SIGNAL(signalCancelled(ProgressItem*)), SLOT(slotCancel()));
102
  ProgressItem::Done done(this);
103
104
  const bool showProgress = options() & ImportProgress;
105
106
  TellicoXMLHandler handler;
107
  handler.setLoadImages(loadImages_);
108
109
  TQXmlSimpleReader reader;
110
  reader.setContentHandler(&handler);
111
112
  TQXmlInputSource source;
113
  bool success = reader.parse(&source, true);
114
115
  const uint blockSize = data_.size()/100 + 1;
116
  uint pos = 0;
117
  TQByteArray block;
118
119
  while(success && !m_cancelled && pos < data_.size()) {
120
    uint size = TQMIN(blockSize, data_.size() - pos);
121
    block.setRawData(data_.data() + pos, size);
122
    source.setData(block);
123
    success = reader.parseContinue();
124
    block.resetRawData(data_.data() + pos, size);
125
    pos += blockSize;
126
    if(showProgress) {
127
      ProgressManager::self()->setProgress(this, pos);
128
      kapp->processEvents();
129
    }
130
  }
131
132
  if(!success) {
133
    m_format = Error;
134
    TQString error;
135
    if(!url().isEmpty()) {
136
      error = i18n(errorLoad).arg(url().fileName()) + TQChar('\n');
137
    }
138
    error += handler.errorString();
139
    myDebug() << error << endl;
140
    setStatusMessage(error);
141
    return;
142
  }
143
144
  if(!m_cancelled) {
145
    m_hasImages = handler.hasImages();
146
    m_coll = handler.collection();
147
  }
148
}
149
150
void TellicoSaxImporter::loadZipData() {
151
  delete m_buffer;
152
  delete m_zip;
153
  if(source() == URL) {
154
    m_buffer = 0;
155
    m_zip = new KZip(fileRef().fileName());
156
  } else {
157
    m_buffer = new TQBuffer(data());
158
    m_zip = new KZip(m_buffer);
159
  }
160
  if(!m_zip->open(IO_ReadOnly)) {
161
    setStatusMessage(i18n(errorLoad).arg(url().fileName()));
162
    m_format = Error;
163
    delete m_zip;
164
    m_zip = 0;
165
    delete m_buffer;
166
    m_buffer = 0;
167
    return;
168
  }
169
170
  const KArchiveDirectory* dir = m_zip->directory();
171
  if(!dir) {
172
    TQString str = i18n(errorLoad).arg(url().fileName()) + TQChar('\n');
173
    str += i18n("The file is empty.");
174
    setStatusMessage(str);
175
    m_format = Error;
176
    m_zip->close();
177
    delete m_zip;
178
    m_zip = 0;
179
    delete m_buffer;
180
    m_buffer = 0;
181
    return;
182
  }
183
184
  // main file was changed from bookcase.xml to tellico.xml as of version 0.13
185
  const KArchiveEntry* entry = dir->entry(TQString::fromLatin1("tellico.xml"));
186
  if(!entry) {
187
    entry = dir->entry(TQString::fromLatin1("bookcase.xml"));
188
  }
189
  if(!entry || !entry->isFile()) {
190
    TQString str = i18n(errorLoad).arg(url().fileName()) + TQChar('\n');
191
    str += i18n("The file contains no collection data.");
192
    setStatusMessage(str);
193
    m_format = Error;
194
    m_zip->close();
195
    delete m_zip;
196
    m_zip = 0;
197
    delete m_buffer;
198
    m_buffer = 0;
199
    return;
200
  }
201
202
  const TQByteArray xmlData = static_cast<const KArchiveFile*>(entry)->data();
203
  loadXMLData(xmlData, false);
204
  if(!m_coll) {
205
    m_format = Error;
206
    m_zip->close();
207
    delete m_zip;
208
    m_zip = 0;
209
    delete m_buffer;
210
    m_buffer = 0;
211
    return;
212
  }
213
214
  if(m_cancelled) {
215
    m_zip->close();
216
    delete m_zip;
217
    m_zip = 0;
218
    delete m_buffer;
219
    m_buffer = 0;
220
    return;
221
  }
222
223
  const KArchiveEntry* imgDirEntry = dir->entry(TQString::fromLatin1("images"));
224
  if(!imgDirEntry || !imgDirEntry->isDirectory()) {
225
    m_zip->close();
226
    delete m_zip;
227
    m_zip = 0;
228
    delete m_buffer;
229
    m_buffer = 0;
230
    return;
231
  }
232
  m_imgDir = static_cast<const KArchiveDirectory*>(imgDirEntry);
233
  m_images.clear();
234
  m_images.add(m_imgDir->entries());
235
  m_hasImages = !m_images.isEmpty();
236
237
  // if all the images are not to be loaded, then we're done
238
  if(!m_loadAllImages) {
239
//    myLog() << "TellicoSaxImporter::loadZipData() - delayed loading for " << m_images.count() << " images" << endl;
240
    return;
241
  }
242
243
  const TQStringList images = static_cast<const KArchiveDirectory*>(imgDirEntry)->entries();
244
  const uint stepSize = TQMAX(s_stepSize, images.count()/100);
245
246
  uint j = 0;
247
  for(TQStringList::ConstIterator it = images.begin(); !m_cancelled && it != images.end(); ++it, ++j) {
248
    const KArchiveEntry* file = m_imgDir->entry(*it);
249
    if(file && file->isFile()) {
250
      ImageFactory::addImage(static_cast<const KArchiveFile*>(file)->data(),
251
                             (*it).section('.', -1).upper(), (*it));
252
      m_images.remove(*it);
253
    }
254
    if(j%stepSize == 0) {
255
      kapp->processEvents();
256
    }
257
  }
258
259
  if(m_images.isEmpty()) {
260
    // give it some time
261
    TQTimer::singleShot(3000, this, SLOT(deleteLater()));
262
  }
263
}
264
265
bool TellicoSaxImporter::hasImages() const {
266
  return m_hasImages;
267
}
268
269
bool TellicoSaxImporter::loadImage(const TQString& id_) {
270
//  myLog() << "TellicoSaxImporter::loadImage() - id =  " << id_ << endl;
271
  if(m_format != Zip || !m_imgDir) {
272
    return false;
273
  }
274
  const KArchiveEntry* file = m_imgDir->entry(id_);
275
  if(!file || !file->isFile()) {
276
    return false;
277
  }
278
  TQString newID = ImageFactory::addImage(static_cast<const KArchiveFile*>(file)->data(),
279
                                         id_.section('.', -1).upper(), id_);
280
  m_images.remove(id_);
281
  if(m_images.isEmpty()) {
282
    // give it some time
283
    TQTimer::singleShot(3000, this, SLOT(deleteLater()));
284
  }
285
  return !newID.isEmpty();
286
}
287
288
void TellicoSaxImporter::slotCancel() {
289
  m_cancelled = true;
290
  m_format = Cancel;
291
}
292
293
#include "tellicosaximporter.moc"
(-)a/src/translators/tellicosaximporter.h (+87 lines)
Line 0 Link Here
1
/***************************************************************************
2
    copyright            : (C) 2008 by Robby Stephenson
3
    email                : robby@periapsis.org
4
 ***************************************************************************/
5
6
/***************************************************************************
7
 *                                                                         *
8
 *   This program is free software; you can redistribute it and/or modify  *
9
 *   it under the terms of version 2 of the GNU General Public License as  *
10
 *   published by the Free Software Foundation;                            *
11
 *                                                                         *
12
 ***************************************************************************/
13
14
#ifndef TELLICO_IMPORT_TELLICOSAXIMPORTER_H
15
#define TELLICO_IMPORT_TELLICOSAXIMPORTER_H
16
17
#include "dataimporter.h"
18
#include "../datavectors.h"
19
#include "../stringset.h"
20
21
class TQBuffer;
22
class KZip;
23
class KArchiveDirectory;
24
25
namespace Tellico {
26
  namespace Import {
27
28
/**
29
 * @author Robby Stephenson
30
 */
31
class TellicoSaxImporter : public DataImporter {
32
Q_OBJECT
33
34
public:
35
  enum Format { Unknown, Error, XML, Zip, Cancel };
36
37
  /**
38
   * @param url The tellico data file.
39
   */
40
  TellicoSaxImporter(const KURL& url, bool loadAllImages=true);
41
  /**
42
   * Constructor used to convert arbitrary text to a @ref Collection
43
   *
44
   * @param text The text
45
   */
46
  TellicoSaxImporter(const TQString& text);
47
  virtual ~TellicoSaxImporter();
48
49
  /**
50
   * sometimes, a new document format might add data
51
   */
52
  bool modifiedOriginal() const { return m_modified; }
53
54
  /**
55
   */
56
  virtual Data::CollPtr collection();
57
  Format format() const { return m_format; }
58
59
  bool hasImages() const;
60
  bool loadImage(const TQString& id_);
61
62
  static bool loadAllImages(const KURL& url);
63
64
public slots:
65
  void slotCancel();
66
67
private:
68
  void loadXMLData(const TQByteArray& data, bool loadImages);
69
  void loadZipData();
70
71
  Data::CollPtr m_coll;
72
  bool m_loadAllImages;
73
  TQString m_namespace;
74
  Format m_format;
75
  bool m_modified : 1;
76
  bool m_cancelled : 1;
77
  bool m_hasImages : 1;
78
  StringSet m_images;
79
80
  TQBuffer* m_buffer;
81
  KZip* m_zip;
82
  const KArchiveDirectory* m_imgDir;
83
};
84
85
  } // end namespace
86
} // end namespace
87
#endif
(-)a/src/translators/tellicoxmlhandler.cpp (+74 lines)
Line 0 Link Here
1
/***************************************************************************
2
    copyright            : (C) 2008 by Robby Stephenson
3
    email                : robby@periapsis.org
4
 ***************************************************************************/
5
6
/***************************************************************************
7
 *                                                                         *
8
 *   This program is free software; you can redistribute it and/or modify  *
9
 *   it under the terms of version 2 of the GNU General Public License as  *
10
 *   published by the Free Software Foundation;                            *
11
 *                                                                         *
12
 ***************************************************************************/
13
14
#include "tellicoxmlhandler.h"
15
#include "../collection.h"
16
#include "../tellico_debug.h"
17
18
using Tellico::Import::TellicoXMLHandler;
19
20
TellicoXMLHandler::TellicoXMLHandler() : TQXmlDefaultHandler(), m_data(new SAX::StateData) {
21
  m_handlers.setAutoDelete(true);
22
  m_handlers.push(new SAX::RootHandler(m_data));
23
}
24
25
TellicoXMLHandler::~TellicoXMLHandler() {
26
  delete m_data;
27
  m_data = 0;
28
}
29
30
bool TellicoXMLHandler::startElement(const TQString& nsURI_, const TQString& localName_,
31
                                     const TQString& qName_, const TQXmlAttributes& atts_) {
32
  SAX::StateHandler* handler = m_handlers.top()->nextHandler(nsURI_, localName_, qName_);
33
  Q_ASSERT(handler);
34
  m_handlers.push(handler);
35
  return handler->start(nsURI_, localName_, qName_, atts_);
36
}
37
38
bool TellicoXMLHandler::endElement(const TQString& nsURI_, const TQString& localName_,
39
                                   const TQString& qName_) {
40
  m_data->text = m_data->text.stripWhiteSpace();
41
/*
42
  if(!m_data->text.isEmpty()) {
43
    myDebug() << " text: " << m_text << endl;
44
  }
45
*/
46
47
  SAX::StateHandler* handler = m_handlers.pop();
48
  bool res = handler->end(nsURI_, localName_, qName_);
49
  // need to reset character data, too
50
  m_data->text = TQString();
51
  delete handler;
52
  return res;
53
}
54
55
bool TellicoXMLHandler::characters(const TQString& ch_) {
56
  m_data->text += ch_;
57
  return true;
58
}
59
60
TQString TellicoXMLHandler::errorString() {
61
  return m_data->error;
62
}
63
64
Tellico::Data::CollPtr TellicoXMLHandler::collection() const {
65
  return m_data->coll;
66
}
67
68
bool TellicoXMLHandler::hasImages() const {
69
  return m_data->hasImages;
70
}
71
72
void TellicoXMLHandler::setLoadImages(bool loadImages_) {
73
  m_data->loadImages = loadImages_;
74
}
(-)a/src/translators/tellicoxmlhandler.h (+49 lines)
Line 0 Link Here
1
/***************************************************************************
2
    copyright            : (C) 2008 by Robby Stephenson
3
    email                : robby@periapsis.org
4
 ***************************************************************************/
5
6
/***************************************************************************
7
 *                                                                         *
8
 *   This program is free software; you can redistribute it and/or modify  *
9
 *   it under the terms of version 2 of the GNU General Public License as  *
10
 *   published by the Free Software Foundation;                            *
11
 *                                                                         *
12
 ***************************************************************************/
13
14
#ifndef TELLICO_IMPORT_TELLICOXMLHANDLER_H
15
#define TELLICO_IMPORT_TELLICOXMLHANDLER_H
16
17
#include "xmlstatehandler.h"
18
19
#include <tqptrstack.h>
20
21
namespace Tellico {
22
  namespace Import {
23
24
class TellicoXMLHandler : public TQXmlDefaultHandler {
25
public:
26
  TellicoXMLHandler();
27
  ~TellicoXMLHandler();
28
29
  virtual bool startElement(const TQString& namespaceURI, const TQString& localName,
30
                            const TQString& qName, const TQXmlAttributes& atts);
31
  virtual bool endElement(const TQString& namespaceURI, const TQString& localName,
32
                          const TQString& qName);
33
  virtual bool characters(const TQString& ch);
34
35
  virtual TQString errorString();
36
37
  Data::CollPtr collection() const;
38
  bool hasImages() const;
39
40
  void setLoadImages(bool loadImages);
41
42
private:
43
  TQPtrStack<SAX::StateHandler> m_handlers;
44
  SAX::StateData* m_data;
45
};
46
47
  }
48
}
49
#endif
(-)a/src/translators/xmlstatehandler.cpp (+772 lines)
Line 0 Link Here
1
/***************************************************************************
2
    copyright            : (C) 2008 by Robby Stephenson
3
    email                : robby@periapsis.org
4
 ***************************************************************************/
5
6
/***************************************************************************
7
 *                                                                         *
8
 *   This program is free software; you can redistribute it and/or modify  *
9
 *   it under the terms of version 2 of the GNU General Public License as  *
10
 *   published by the Free Software Foundation;                            *
11
 *                                                                         *
12
 ***************************************************************************/
13
14
#include "xmlstatehandler.h"
15
#include "tellico_xml.h"
16
#include "../latin1literal.h"
17
#include "../collection.h"
18
#include "../collectionfactory.h"
19
#include "../collections/bibtexcollection.h"
20
#include "../image.h"
21
#include "../imagefactory.h"
22
#include "../isbnvalidator.h"
23
#include "../tellico_utils.h"
24
#include "../tellico_debug.h"
25
26
#include <tdelocale.h>
27
#include <kmdcodec.h>
28
29
namespace {
30
31
inline
32
TQString attValue(const TQXmlAttributes& atts, const char* name, const TQString& defaultValue=TQString()) {
33
  int idx = atts.index(TQString::fromLatin1(name));
34
  return idx < 0 ? defaultValue : atts.value(idx);
35
}
36
37
inline
38
TQString attValue(const TQXmlAttributes& atts, const char* name, const char* defaultValue) {
39
  Q_ASSERT(defaultValue);
40
  return attValue(atts, name, TQString::fromLatin1(defaultValue));
41
}
42
43
}
44
45
using Tellico::Import::SAX::StateHandler;
46
using Tellico::Import::SAX::NullHandler;
47
using Tellico::Import::SAX::RootHandler;
48
using Tellico::Import::SAX::DocumentHandler;
49
using Tellico::Import::SAX::CollectionHandler;
50
using Tellico::Import::SAX::FieldsHandler;
51
using Tellico::Import::SAX::FieldHandler;
52
using Tellico::Import::SAX::FieldPropertyHandler;
53
using Tellico::Import::SAX::BibtexPreambleHandler;
54
using Tellico::Import::SAX::BibtexMacrosHandler;
55
using Tellico::Import::SAX::BibtexMacroHandler;
56
using Tellico::Import::SAX::EntryHandler;
57
using Tellico::Import::SAX::FieldValueContainerHandler;
58
using Tellico::Import::SAX::FieldValueHandler;
59
using Tellico::Import::SAX::DateValueHandler;
60
using Tellico::Import::SAX::TableColumnHandler;
61
using Tellico::Import::SAX::ImagesHandler;
62
using Tellico::Import::SAX::ImageHandler;
63
using Tellico::Import::SAX::FiltersHandler;
64
using Tellico::Import::SAX::FilterHandler;
65
using Tellico::Import::SAX::FilterRuleHandler;
66
using Tellico::Import::SAX::BorrowersHandler;
67
using Tellico::Import::SAX::BorrowerHandler;
68
using Tellico::Import::SAX::LoanHandler;
69
70
StateHandler* StateHandler::nextHandler(const TQString& ns_, const TQString& localName_, const TQString& qName_) {
71
  StateHandler* handler = nextHandlerImpl(ns_, localName_, qName_);
72
  if(!handler) {
73
    myWarning() << "StateHandler::nextHandler() - no handler for " << localName_ << endl;
74
  }
75
  return handler ? handler : new NullHandler(d);
76
}
77
78
StateHandler* RootHandler::nextHandlerImpl(const TQString&, const TQString& localName_, const TQString&) {
79
  if(localName_ == Latin1Literal("tellico") || localName_ == Latin1Literal("bookcase")) {
80
    return new DocumentHandler(d);
81
  }
82
  return new RootHandler(d);
83
}
84
85
StateHandler* DocumentHandler::nextHandlerImpl(const TQString&, const TQString& localName_, const TQString&) {
86
  if(localName_ == Latin1Literal("collection")) {
87
    return new CollectionHandler(d);
88
  } else if(localName_ == Latin1Literal("filters")) {
89
    return new FiltersHandler(d);
90
  } else if(localName_ == Latin1Literal("borrowers")) {
91
    return new BorrowersHandler(d);
92
  }
93
  return 0;
94
}
95
96
bool DocumentHandler::start(const TQString&, const TQString& localName_, const TQString&, const TQXmlAttributes& atts_) {
97
  // the syntax version field name changed from "version" to "syntaxVersion" in version 3
98
  int idx = atts_.index(TQString::fromLatin1("syntaxVersion"));
99
  if(idx < 0) {
100
    idx = atts_.index(TQString::fromLatin1("version"));
101
  }
102
  if(idx < 0) {
103
    myWarning() << "RootHandler::start() - no syntax version" << endl;
104
    return false;
105
  }
106
  d->syntaxVersion = atts_.value(idx).toUInt();
107
  if(d->syntaxVersion > Tellico::XML::syntaxVersion) {
108
    d->error = i18n("It is from a future version of Tellico.");
109
    return false;
110
  } else if(Tellico::XML::versionConversion(d->syntaxVersion, Tellico::XML::syntaxVersion)) {
111
    // going from version 9 to 10, there's no conversion needed
112
    TQString str = i18n("Tellico is converting the file to a more recent document format. "
113
                       "Information loss may occur if an older version of Tellico is used "
114
                       "to read this file in the future.");
115
    myDebug() << str <<  endl;
116
  }
117
  if((d->syntaxVersion > 6 && localName_ != Latin1Literal("tellico")) ||
118
     (d->syntaxVersion < 7 && localName_ != Latin1Literal("bookcase"))) {
119
    // no error message
120
    myWarning() << "RootHandler::start() - bad root element name" << endl;
121
    return false;
122
  }
123
  d->ns = d->syntaxVersion > 6 ? Tellico::XML::nsTellico : Tellico::XML::nsBookcase;
124
  return true;
125
}
126
127
bool DocumentHandler::end(const TQString&, const TQString&, const TQString&) {
128
  return true;
129
}
130
131
StateHandler* CollectionHandler::nextHandlerImpl(const TQString&, const TQString& localName_, const TQString&) {
132
  if((d->syntaxVersion > 3 && localName_ == Latin1Literal("fields")) ||
133
     (d->syntaxVersion < 4 && localName_ == Latin1Literal("attributes"))) {
134
    return new FieldsHandler(d);
135
  } else if(localName_ == Latin1Literal("bibtex-preamble")) {
136
    return new BibtexPreambleHandler(d);
137
  } else if(localName_ == Latin1Literal("macros")) {
138
    return new BibtexMacrosHandler(d);
139
  } else if(localName_ == d->entryName) {
140
    return new EntryHandler(d);
141
  } else if(localName_ == Latin1Literal("images")) {
142
    return new ImagesHandler(d);
143
  }
144
  return 0;
145
}
146
147
bool CollectionHandler::start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes& atts_) {
148
  d->collTitle = attValue(atts_, "title");
149
  d->collType = attValue(atts_, "type").toInt();
150
  d->entryName = attValue(atts_, "unit");
151
152
  Q_ASSERT(d->collType);
153
  return true;
154
}
155
156
bool CollectionHandler::end(const TQString&, const TQString&, const TQString&) {
157
  d->coll->addEntries(d->entries);
158
  // a little hidden capability was to just have a local path as an image file name
159
  // and on reading the xml file, Tellico would load the image file, too
160
  // here, we need to scan all the image values in all the entries and check
161
  // maybe this is too costly, especially since the capability wasn't advertised?
162
  Data::FieldVec fields = d->coll->imageFields();
163
  for(Data::EntryVecIt entry = d->entries.begin(); entry != d->entries.end(); ++entry) {
164
    for(Data::FieldVecIt field = fields.begin(); field != fields.end(); ++field) {
165
      TQString value = entry->field(field, false);
166
      // image info should have already been loaded
167
      const Data::ImageInfo& info = ImageFactory::imageInfo(value);
168
      // possible that value needs to be cleaned first in which case info is null
169
      if(info.isNull() || !info.linkOnly) {
170
        // for local files only, allow paths here
171
        KURL u = KURL::fromPathOrURL(value);
172
        if(u.isValid() && u.isLocalFile()) {
173
          TQString result = ImageFactory::addImage(u, false /* quiet */);
174
          if(!result.isEmpty()) {
175
            value = result;
176
          }
177
        }
178
        value = Data::Image::idClean(value);
179
        entry->setField(field->name(), value);
180
      }
181
    }
182
  }
183
  return true;
184
}
185
186
StateHandler* FieldsHandler::nextHandlerImpl(const TQString&, const TQString& localName_, const TQString&) {
187
  if((d->syntaxVersion > 3 && localName_ == Latin1Literal("field")) ||
188
     (d->syntaxVersion < 4 && localName_ == Latin1Literal("attribute"))) {
189
    return new FieldHandler(d);
190
  }
191
  return 0;
192
}
193
194
bool FieldsHandler::start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&) {
195
  d->defaultFields = false;
196
  return true;
197
}
198
199
bool FieldsHandler::end(const TQString&, const TQString&, const TQString&) {
200
  // add default fields if there was a default field name, or no names at all
201
  const bool addFields = d->defaultFields || d->fields.isEmpty();
202
  // in syntax 4, the element name was changed to "entry", always, rather than depending on
203
  // on the entryName of the collection.
204
  if(d->syntaxVersion > 3) {
205
    d->entryName = TQString::fromLatin1("entry");
206
    Data::Collection::Type type = static_cast<Data::Collection::Type>(d->collType);
207
    d->coll = CollectionFactory::collection(type, addFields);
208
  } else {
209
    d->coll = CollectionFactory::collection(d->entryName, addFields);
210
  }
211
212
  if(!d->collTitle.isEmpty()) {
213
    d->coll->setTitle(d->collTitle);
214
  }
215
216
  d->coll->addFields(d->fields);
217
218
//  as a special case, for old book collections with a bibtex-id field, convert to Bibtex
219
  if(d->syntaxVersion < 4 && d->collType == Data::Collection::Book
220
     && d->coll->hasField(TQString::fromLatin1("bibtex-id"))) {
221
    d->coll = Data::BibtexCollection::convertBookCollection(d->coll);
222
  }
223
224
  return true;
225
}
226
227
StateHandler* FieldHandler::nextHandlerImpl(const TQString&, const TQString& localName_, const TQString&) {
228
  if(localName_ == Latin1Literal("prop")) {
229
    return new FieldPropertyHandler(d);
230
  }
231
  return 0;
232
}
233
234
bool FieldHandler::start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes& atts_) {
235
  // special case: if the i18n attribute equals true, then translate the title, description, and category
236
  const bool isI18n = attValue(atts_, "i18n") == Latin1Literal("true");
237
238
  TQString name  = attValue(atts_, "name", "unknown");
239
  if(name == Latin1Literal("_default")) {
240
    d->defaultFields = true;
241
    return true;
242
  }
243
244
  TQString title  = attValue(atts_, "title", i18n("Unknown"));
245
  if(isI18n) {
246
    title = i18n(title.utf8());
247
  }
248
249
  TQString typeStr = attValue(atts_, "type", TQString::number(Data::Field::Line));
250
  Data::Field::Type type = static_cast<Data::Field::Type>(typeStr.toInt());
251
252
  Data::FieldPtr field;
253
  if(type == Data::Field::Choice) {
254
    TQStringList allowed = TQStringList::split(TQRegExp(TQString::fromLatin1("\\s*;\\s*")),
255
                                             attValue(atts_, "allowed"));
256
    if(isI18n) {
257
      for(TQStringList::Iterator word = allowed.begin(); word != allowed.end(); ++word) {
258
        (*word) = i18n((*word).utf8());
259
      }
260
    }
261
    field = new Data::Field(name, title, allowed);
262
  } else {
263
    field = new Data::Field(name, title, type);
264
  }
265
266
  int idx = atts_.index(TQString::fromLatin1("category"));
267
  if(idx > -1) {
268
    // at one point, the categories had keyboard accels
269
    TQString cat = atts_.value(idx);
270
    if(d->syntaxVersion < 9 && cat.find('&') > -1) {
271
      cat.remove('&');
272
    }
273
    if(isI18n) {
274
      cat = i18n(cat.utf8());
275
    }
276
    field->setCategory(cat);
277
  }
278
279
  idx = atts_.index(TQString::fromLatin1("flags"));
280
  if(idx > -1) {
281
    int flags = atts_.value(idx).toInt();
282
    // I also changed the enum values for syntax 3, but the only custom field
283
    // would have been bibtex-id
284
    if(d->syntaxVersion < 3 && name == Latin1Literal("bibtex-id")) {
285
      flags = 0;
286
    }
287
288
    // in syntax version 4, added a flag to disallow deleting attributes
289
    // if it's a version before that and is the title, then add the flag
290
    if(d->syntaxVersion < 4 && name == Latin1Literal("title")) {
291
      flags |= Data::Field::NoDelete;
292
    }
293
    field->setFlags(flags);
294
  }
295
296
  TQString formatStr = attValue(atts_, "format", TQString::number(Data::Field::FormatNone));
297
  Data::Field::FormatFlag format = static_cast<Data::Field::FormatFlag>(formatStr.toInt());
298
  field->setFormatFlag(format);
299
300
  idx = atts_.index(TQString::fromLatin1("description"));
301
  if(idx > -1) {
302
    TQString desc = atts_.value(idx);
303
    if(isI18n) {
304
      desc = i18n(desc.utf8());
305
    }
306
    field->setDescription(desc);
307
  }
308
309
  if(d->syntaxVersion < 5 && atts_.index(TQString::fromLatin1("bibtex-field")) > -1) {
310
    field->setProperty(TQString::fromLatin1("bibtex"), attValue(atts_, "bibtex-field"));
311
  }
312
313
  // Table2 is deprecated
314
  if(type == Data::Field::Table2) {
315
    field->setType(Data::Field::Table);
316
    field->setProperty(TQString::fromLatin1("columns"), TQChar('2'));
317
  }
318
319
  // for syntax 8, rating fields got their own type
320
  if(d->syntaxVersion < 8) {
321
    Data::Field::convertOldRating(field); // does all its own checking
322
  }
323
  d->fields.append(field);
324
325
  return true;
326
}
327
328
bool FieldHandler::end(const TQString&, const TQString&, const TQString&) {
329
  return true;
330
}
331
332
bool FieldPropertyHandler::start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes& atts_) {
333
  // there should be at least one field already so we can add properties to it
334
  Q_ASSERT(!d->fields.isEmpty());
335
  Data::FieldPtr field = d->fields.back();
336
337
  m_propertyName = attValue(atts_, "name");
338
339
  // all track fields in music collections prior to version 9 get converted to three columns
340
  if(d->syntaxVersion < 9) {
341
    if(d->collType == Data::Collection::Album && field->name() == Latin1Literal("track")) {
342
      field->setProperty(TQString::fromLatin1("columns"), TQChar('3'));
343
      field->setProperty(TQString::fromLatin1("column1"), i18n("Title"));
344
      field->setProperty(TQString::fromLatin1("column2"), i18n("Artist"));
345
      field->setProperty(TQString::fromLatin1("column3"), i18n("Length"));
346
    } else if(d->collType == Data::Collection::Video && field->name() == Latin1Literal("cast")) {
347
      field->setProperty(TQString::fromLatin1("column1"), i18n("Actor/Actress"));
348
      field->setProperty(TQString::fromLatin1("column2"), i18n("Role"));
349
    }
350
  }
351
352
  return true;
353
}
354
355
bool FieldPropertyHandler::end(const TQString&, const TQString&, const TQString&) {
356
  Q_ASSERT(!m_propertyName.isEmpty());
357
  // add the previous property
358
  Data::FieldPtr field = d->fields.back();
359
  field->setProperty(m_propertyName, d->text);
360
  return true;
361
}
362
363
bool BibtexPreambleHandler::start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&) {
364
  return true;
365
}
366
367
bool BibtexPreambleHandler::end(const TQString&, const TQString&, const TQString&) {
368
  Q_ASSERT(d->coll);
369
  if(d->coll && d->collType == Data::Collection::Bibtex && !d->text.isEmpty()) {
370
    Data::BibtexCollection* c = static_cast<Data::BibtexCollection*>(d->coll.data());
371
    c->setPreamble(d->text);
372
  }
373
  return true;
374
}
375
376
StateHandler* BibtexMacrosHandler::nextHandlerImpl(const TQString&, const TQString& localName_, const TQString&) {
377
  if(localName_ == Latin1Literal("macro")) {
378
    return new BibtexMacroHandler(d);
379
  }
380
  return 0;
381
}
382
383
bool BibtexMacrosHandler::start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&) {
384
  return true;
385
}
386
387
bool BibtexMacrosHandler::end(const TQString&, const TQString&, const TQString&) {
388
  return true;
389
}
390
391
bool BibtexMacroHandler::start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes& atts_) {
392
  m_macroName = attValue(atts_, "name");
393
  return true;
394
}
395
396
bool BibtexMacroHandler::end(const TQString&, const TQString&, const TQString&) {
397
  if(d->coll && d->collType == Data::Collection::Bibtex && !m_macroName.isEmpty() && !d->text.isEmpty()) {
398
    Data::BibtexCollection* c = static_cast<Data::BibtexCollection*>(d->coll.data());
399
    c->addMacro(m_macroName, d->text);
400
  }
401
  return true;
402
}
403
404
StateHandler* EntryHandler::nextHandlerImpl(const TQString&, const TQString& localName_, const TQString&) {
405
  if(d->coll->hasField(localName_)) {
406
    return new FieldValueHandler(d);
407
  }
408
  return new FieldValueContainerHandler(d);
409
}
410
411
bool EntryHandler::start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes& atts_) {
412
  // the entries must come after the fields
413
  if(!d->coll || d->coll->fields().isEmpty()) {
414
    myWarning() << "EntryHandler::start() - entries must come after fields are defined" << endl;
415
    // TODO: i18n
416
    d->error = TQString::fromLatin1("File format error: entries must come after fields are defined");
417
    return false;
418
  }
419
  int id = attValue(atts_, "id").toInt();
420
  Data::EntryPtr entry;
421
  if(id > 0) {
422
    entry = new Data::Entry(d->coll, id);
423
  } else {
424
    entry = new Data::Entry(d->coll);
425
  }
426
  d->entries.append(entry);
427
  return true;
428
}
429
430
bool EntryHandler::end(const TQString&, const TQString&, const TQString&) {
431
  return true;
432
}
433
434
StateHandler* FieldValueContainerHandler::nextHandlerImpl(const TQString&, const TQString& localName_, const TQString&) {
435
  if(d->coll->hasField(localName_)) {
436
    return new FieldValueHandler(d);
437
  }
438
  return new FieldValueContainerHandler(d);
439
}
440
441
bool FieldValueContainerHandler::start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&) {
442
  return true;
443
}
444
445
bool FieldValueContainerHandler::end(const TQString&, const TQString&, const TQString&) {
446
  return true;
447
}
448
449
StateHandler* FieldValueHandler::nextHandlerImpl(const TQString&, const TQString& localName_, const TQString&) {
450
  if(localName_ == Latin1Literal("year") ||
451
     localName_ == Latin1Literal("month") ||
452
     localName_ == Latin1Literal("day")) {
453
    return new DateValueHandler(d);
454
  } else if(localName_ == Latin1Literal("column")) {
455
    return new TableColumnHandler(d);
456
  }
457
  return 0;
458
}
459
460
bool FieldValueHandler::start(const TQString&, const TQString&, const TQString& localName_, const TQXmlAttributes& atts_) {
461
  d->currentField = d->coll->fieldByName(localName_);
462
  m_i18n = attValue(atts_, "i18n") == Latin1Literal("true");
463
  m_validateISBN = attValue(atts_, "validate") != Latin1Literal("no");
464
  return true;
465
}
466
467
bool FieldValueHandler::end(const TQString&, const TQString& localName_, const TQString&) {
468
  Data::FieldPtr f = d->coll->fieldByName(localName_);
469
  if(!f) {
470
    myWarning() << "FieldValueHandler::end() - no field named " << localName_ << endl;
471
    return true;
472
  }
473
  // if it's a derived value, no field value is added
474
  if(f->type() == Data::Field::Dependent) {
475
    return true;
476
  }
477
478
  Data::EntryPtr entry = d->entries.back();
479
  Q_ASSERT(entry);
480
  TQString fieldName = localName_;
481
  TQString fieldValue = d->text;
482
483
  if(d->syntaxVersion < 2 && fieldName == Latin1Literal("keywords")) {
484
    // in version 2, "keywords" changed to "keyword"
485
    fieldName = TQString::fromLatin1("keyword");
486
  } else if(d->syntaxVersion < 4 && f->type() == Data::Field::Bool) {
487
    // in version 3 and prior, checkbox attributes had no text(), set it to "true"
488
    fieldValue = TQString::fromLatin1("true");
489
  } else if(d->syntaxVersion < 8 && f->type() == Data::Field::Rating) {
490
    // in version 8, old rating fields get changed
491
    bool ok;
492
    uint i = Tellico::toUInt(fieldValue, &ok);
493
    if(ok) {
494
      fieldValue = TQString::number(i);
495
    }
496
  } else if(!d->textBuffer.isEmpty()) {
497
    // for dates and tables, the value is built up from child elements
498
#ifndef NDEBUG
499
    if(!d->text.isEmpty()) {
500
      myWarning() << "FieldValueHandler::end() - ignoring value for field " << localName_ << ": " << d->text << endl;
501
    }
502
#endif
503
    fieldValue = d->textBuffer;
504
    d->textBuffer = TQString();
505
  }
506
  // this is not an else branch, the data may be in the textBuffer
507
  if(d->syntaxVersion < 9 && d->coll->type() == Data::Collection::Album && fieldName == Latin1Literal("track")) {
508
    // yes, this assumes the artist has already been set
509
    fieldValue += TQString::fromLatin1("::");
510
    fieldValue += entry->field(TQString::fromLatin1("artist"));
511
  }
512
  // special case: if the i18n attribute equals true, then translate the title, description, and category
513
  if(m_i18n) {
514
    fieldValue = i18n(fieldValue.utf8());
515
  }
516
  // special case for isbn fields, go ahead and validate
517
  if(m_validateISBN && fieldName == Latin1Literal("isbn")) {
518
    ISBNValidator val(0);
519
    val.fixup(fieldValue);
520
  }
521
  if(fieldValue.isEmpty()) {
522
    return true;
523
  }
524
  // for fields with multiple values, we need to add on the new value
525
  TQString oldValue = entry->field(fieldName);
526
  if(!oldValue.isEmpty()) {
527
    fieldValue = oldValue + TQString::fromLatin1("; ") + fieldValue;
528
  }
529
  entry->setField(fieldName, fieldValue);
530
  return true;
531
}
532
533
bool DateValueHandler::start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&) {
534
  return true;
535
}
536
537
bool DateValueHandler::end(const TQString&, const TQString& localName_, const TQString&) {
538
  // the data value is y-m-d even if there are no date values
539
  if(d->textBuffer.isEmpty()) {
540
    d->textBuffer = TQString::fromLatin1("--");
541
  }
542
  TQStringList tokens = TQStringList::split('-', d->textBuffer, true /* allow empty */);
543
  Q_ASSERT(tokens.size() == 3);
544
  if(localName_ == Latin1Literal("year")) {
545
    tokens[0] = d->text;
546
  } else if(localName_ == Latin1Literal("month")) {
547
    tokens[1] = d->text;
548
  } else if(localName_ == Latin1Literal("day")) {
549
    tokens[2] = d->text;
550
  }
551
  d->textBuffer = tokens.join(TQChar('-'));
552
  return true;
553
}
554
555
bool TableColumnHandler::start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&) {
556
  return true;
557
}
558
559
bool TableColumnHandler::end(const TQString&, const TQString&, const TQString&) {
560
  // for old collections, if the second column holds the track length, bump it to next column
561
  if(d->syntaxVersion < 9 &&
562
     d->coll->type() == Data::Collection::Album &&
563
     d->currentField->name() == Latin1Literal("track") &&
564
     !d->textBuffer.isEmpty() &&
565
     d->textBuffer.contains(TQString::fromLatin1("::")) == 0) {
566
    TQRegExp rx(TQString::fromLatin1("\\d+:\\d\\d"));
567
    if(rx.exactMatch(d->text)) {
568
      d->text += TQString::fromLatin1("::");
569
      d->text += d->entries.back()->field(TQString::fromLatin1("artist"));
570
    }
571
  }
572
573
  if(!d->textBuffer.isEmpty()) {
574
    d->textBuffer += TQString::fromLatin1("::");
575
  }
576
  d->textBuffer += d->text;
577
  return true;
578
}
579
580
StateHandler* ImagesHandler::nextHandlerImpl(const TQString&, const TQString& localName_, const TQString&) {
581
  if(localName_ == Latin1Literal("image")) {
582
    return new ImageHandler(d);
583
  }
584
  return 0;
585
}
586
587
bool ImagesHandler::start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&) {
588
  // reset variable that gets updated in the image handler
589
  d->hasImages = false;
590
  return true;
591
}
592
593
bool ImagesHandler::end(const TQString&, const TQString&, const TQString&) {
594
  return true;
595
}
596
597
bool ImageHandler::start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes& atts_) {
598
  m_format = attValue(atts_, "format");
599
  m_link = attValue(atts_, "link") == Latin1Literal("true");
600
  // idClean() already calls shareString()
601
  m_imageId = m_link ? shareString(attValue(atts_, "id"))
602
                     : Data::Image::idClean(attValue(atts_, "id"));
603
  m_width = attValue(atts_, "width").toInt();
604
  m_height = attValue(atts_, "height").toInt();
605
  return true;
606
}
607
608
bool ImageHandler::end(const TQString&, const TQString&, const TQString&) {
609
  bool readInfo = true;
610
  if(d->loadImages) {
611
    TQByteArray ba;
612
    KCodecs::base64Decode(TQCString(d->text.latin1()), ba);
613
    if(!ba.isEmpty()) {
614
      TQString result = ImageFactory::addImage(ba, m_format, m_imageId);
615
      if(result.isEmpty()) {
616
        myDebug() << "TellicoImporter::readImage(XML) - null image for " << m_imageId << endl;
617
      }
618
      d->hasImages = true;
619
      readInfo = false;
620
    }
621
  }
622
  if(readInfo) {
623
    // a width or height of 0 is ok here
624
    Data::ImageInfo info(m_imageId, m_format.latin1(), m_width, m_height, m_link);
625
    ImageFactory::cacheImageInfo(info);
626
  }
627
  return true;
628
}
629
630
StateHandler* FiltersHandler::nextHandlerImpl(const TQString&, const TQString& localName_, const TQString&) {
631
  if(localName_ == Latin1Literal("filter")) {
632
    return new FilterHandler(d);
633
  }
634
  return 0;
635
}
636
637
bool FiltersHandler::start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&) {
638
  return true;
639
}
640
641
bool FiltersHandler::end(const TQString&, const TQString&, const TQString&) {
642
  return true;
643
}
644
645
StateHandler* FilterHandler::nextHandlerImpl(const TQString&, const TQString& localName_, const TQString&) {
646
  if(localName_ == Latin1Literal("rule")) {
647
    return new FilterRuleHandler(d);
648
  }
649
  return 0;
650
}
651
652
bool FilterHandler::start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes& atts_) {
653
  d->filter = new Filter(Filter::MatchAny);
654
  d->filter->setName(attValue(atts_, "name"));
655
656
  if(attValue(atts_, "match") == Latin1Literal("all")) {
657
    d->filter->setMatch(Filter::MatchAll);
658
  }
659
  return true;
660
}
661
662
bool FilterHandler::end(const TQString&, const TQString&, const TQString&) {
663
  if(d->coll && !d->filter->isEmpty()) {
664
    d->coll->addFilter(d->filter);
665
  }
666
  d->filter = FilterPtr();
667
  return true;
668
}
669
670
bool FilterRuleHandler::start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes& atts_) {
671
  TQString field = attValue(atts_, "field");
672
  // empty field means match any of them
673
  TQString pattern = attValue(atts_, "pattern");
674
  // empty pattern is bad
675
  if(pattern.isEmpty()) {
676
    myWarning() << "FilterRuleHandler::start() - empty rule!" << endl;
677
    return true;
678
  }
679
  TQString function = attValue(atts_, "function").lower();
680
  FilterRule::Function func;
681
  if(function == Latin1Literal("contains")) {
682
    func = FilterRule::FuncContains;
683
  } else if(function == Latin1Literal("notcontains")) {
684
    func = FilterRule::FuncNotContains;
685
  } else if(function == Latin1Literal("equals")) {
686
    func = FilterRule::FuncEquals;
687
  } else if(function == Latin1Literal("notequals")) {
688
    func = FilterRule::FuncNotEquals;
689
  } else if(function == Latin1Literal("regexp")) {
690
    func = FilterRule::FuncRegExp;
691
  } else if(function == Latin1Literal("notregexp")) {
692
    func = FilterRule::FuncNotRegExp;
693
  } else {
694
    myWarning() << "FilterRuleHandler::start() - invalid rule function: " << function << endl;
695
    return true;
696
  }
697
  d->filter->append(new FilterRule(field, pattern, func));
698
  return true;
699
}
700
701
bool FilterRuleHandler::end(const TQString&, const TQString&, const TQString&) {
702
  return true;
703
}
704
705
StateHandler* BorrowersHandler::nextHandlerImpl(const TQString&, const TQString& localName_, const TQString&) {
706
  if(localName_ == Latin1Literal("borrower")) {
707
    return new BorrowerHandler(d);
708
  }
709
  return 0;
710
}
711
712
bool BorrowersHandler::start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&) {
713
  return true;
714
}
715
716
bool BorrowersHandler::end(const TQString&, const TQString&, const TQString&) {
717
  return true;
718
}
719
720
StateHandler* BorrowerHandler::nextHandlerImpl(const TQString&, const TQString& localName_, const TQString&) {
721
  if(localName_ == Latin1Literal("loan")) {
722
    return new LoanHandler(d);
723
  }
724
  return 0;
725
}
726
727
bool BorrowerHandler::start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes& atts_) {
728
  TQString name = attValue(atts_, "name");
729
  TQString uid = attValue(atts_, "uid");
730
  d->borrower = new Data::Borrower(name, uid);
731
732
  return true;
733
}
734
735
bool BorrowerHandler::end(const TQString&, const TQString&, const TQString&) {
736
  if(d->coll && !d->borrower->isEmpty()) {
737
    d->coll->addBorrower(d->borrower);
738
  }
739
  d->borrower = Data::BorrowerPtr();
740
  return true;
741
}
742
743
bool LoanHandler::start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes& atts_) {
744
  m_id = attValue(atts_, "entryRef").toInt();
745
  m_uid = attValue(atts_, "uid");
746
  m_loanDate = attValue(atts_, "loanDate");
747
  m_dueDate = attValue(atts_, "dueDate");
748
  m_inCalendar = attValue(atts_, "calendar") == Latin1Literal("true");
749
  return true;
750
}
751
752
bool LoanHandler::end(const TQString&, const TQString&, const TQString&) {
753
  Data::EntryPtr entry = d->coll->entryById(m_id);
754
  if(!entry) {
755
    myWarning() << "LoanHandler::end() - no entry with id = " << m_id << endl;
756
    return true;
757
  }
758
  TQDate loanDate, dueDate;
759
  if(!m_loanDate.isEmpty()) {
760
    loanDate = TQDate::fromString(m_loanDate, TQt::ISODate);
761
  }
762
  if(!m_dueDate.isEmpty()) {
763
    dueDate = TQDate::fromString(m_dueDate, TQt::ISODate);
764
  }
765
766
  Data::LoanPtr loan = new Data::Loan(entry, loanDate, dueDate, d->text);
767
  loan->setUID(m_uid);
768
  loan->setInCalendar(m_inCalendar);
769
  d->borrower->addLoan(loan);
770
  return true;
771
}
772
(-)a/src/translators/xmlstatehandler.h (+345 lines)
Line 0 Link Here
1
/***************************************************************************
2
    copyright            : (C) 2008 by Robby Stephenson
3
    email                : robby@periapsis.org
4
 ***************************************************************************/
5
6
/***************************************************************************
7
 *                                                                         *
8
 *   This program is free software; you can redistribute it and/or modify  *
9
 *   it under the terms of version 2 of the GNU General Public License as  *
10
 *   published by the Free Software Foundation;                            *
11
 *                                                                         *
12
 ***************************************************************************/
13
14
#ifndef TELLICO_IMPORT_XMLSTATEHANDLER_H
15
#define TELLICO_IMPORT_XMLSTATEHANDLER_H
16
17
#ifdef QT_NO_CAST_ASCII
18
#define HAD_QT_NO_CAST_ASCII
19
#undef QT_NO_CAST_ASCII
20
#endif
21
22
#include <tqxml.h>
23
24
#ifdef HAD_QT_NO_CAST_ASCII
25
#define QT_NO_CAST_ASCII
26
#undef HAD_QT_NO_CAST_ASCII
27
#endif
28
29
#include "../datavectors.h"
30
31
namespace Tellico {
32
  namespace Import {
33
    namespace SAX {
34
35
class StateData {
36
public:
37
  TQString text;
38
  TQString error;
39
  TQString ns; // namespace
40
  TQString textBuffer;
41
  uint syntaxVersion;
42
  TQString collTitle;
43
  int collType;
44
  TQString entryName;
45
  Data::CollPtr coll;
46
  Data::FieldVec fields;
47
  Data::FieldPtr currentField;
48
  Data::EntryVec entries;
49
  FilterPtr filter;
50
  Data::BorrowerPtr borrower;
51
  bool defaultFields;
52
  bool loadImages;
53
  bool hasImages;
54
};
55
56
class StateHandler {
57
public:
58
  StateHandler(StateData* data) : d(data) {}
59
  virtual ~StateHandler() {}
60
61
  virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&) = 0;
62
  virtual bool   end(const TQString&, const TQString&, const TQString&) = 0;
63
64
  StateHandler* nextHandler(const TQString&, const TQString&, const TQString&);
65
protected:
66
  StateData* d;
67
private:
68
  virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&)  { return 0; }
69
};
70
71
class NullHandler : public StateHandler {
72
public:
73
  NullHandler(StateData* data) : StateHandler(data) {}
74
  virtual ~NullHandler() {}
75
76
  virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&) { return true; }
77
  virtual bool   end(const TQString&, const TQString&, const TQString&) { return true; }
78
};
79
80
class RootHandler : public StateHandler {
81
public:
82
  RootHandler(StateData* data) : StateHandler(data) {}
83
  virtual ~RootHandler() {}
84
85
  virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&) { return true; }
86
  virtual bool   end(const TQString&, const TQString&, const TQString&) { return true; }
87
88
private:
89
  virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
90
};
91
92
class DocumentHandler : public StateHandler {
93
public:
94
  DocumentHandler(StateData* data) : StateHandler(data) {}
95
  virtual ~DocumentHandler() {}
96
97
  virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
98
  virtual bool   end(const TQString&, const TQString&, const TQString&);
99
100
private:
101
  virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
102
};
103
104
class CollectionHandler : public StateHandler {
105
public:
106
  CollectionHandler(StateData* data) : StateHandler(data) {}
107
  virtual ~CollectionHandler() {}
108
109
  virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
110
  virtual bool   end(const TQString&, const TQString&, const TQString&);
111
112
private:
113
  virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
114
};
115
116
class FieldsHandler : public StateHandler {
117
public:
118
  FieldsHandler(StateData* data) : StateHandler(data) {}
119
  virtual ~FieldsHandler() {}
120
121
  virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
122
  virtual bool   end(const TQString&, const TQString&, const TQString&);
123
124
private:
125
  virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
126
};
127
128
class FieldHandler : public StateHandler {
129
public:
130
  FieldHandler(StateData* data) : StateHandler(data) {}
131
  virtual ~FieldHandler() {}
132
133
  virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
134
  virtual bool   end(const TQString&, const TQString&, const TQString&);
135
136
private:
137
  virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
138
};
139
140
class FieldPropertyHandler : public StateHandler {
141
public:
142
  FieldPropertyHandler(StateData* data) : StateHandler(data) {}
143
  virtual ~FieldPropertyHandler() {}
144
145
  virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
146
  virtual bool   end(const TQString&, const TQString&, const TQString&);
147
148
private:
149
  TQString m_propertyName;
150
};
151
152
class BibtexPreambleHandler : public StateHandler {
153
public:
154
  BibtexPreambleHandler(StateData* data) : StateHandler(data) {}
155
  virtual ~BibtexPreambleHandler() {}
156
157
  virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
158
  virtual bool   end(const TQString&, const TQString&, const TQString&);
159
};
160
161
class BibtexMacrosHandler : public StateHandler {
162
public:
163
  BibtexMacrosHandler(StateData* data) : StateHandler(data) {}
164
  virtual ~BibtexMacrosHandler() {}
165
166
  virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
167
  virtual bool   end(const TQString&, const TQString&, const TQString&);
168
169
private:
170
  virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
171
};
172
173
class BibtexMacroHandler : public StateHandler {
174
public:
175
  BibtexMacroHandler(StateData* data) : StateHandler(data) {}
176
  virtual ~BibtexMacroHandler() {}
177
178
  virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
179
  virtual bool   end(const TQString&, const TQString&, const TQString&);
180
181
private:
182
  TQString m_macroName;
183
};
184
185
class EntryHandler : public StateHandler {
186
public:
187
  EntryHandler(StateData* data) : StateHandler(data) {}
188
  virtual ~EntryHandler() {}
189
190
  virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
191
  virtual bool   end(const TQString&, const TQString&, const TQString&);
192
193
private:
194
  virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
195
};
196
197
class FieldValueContainerHandler : public StateHandler {
198
public:
199
  FieldValueContainerHandler(StateData* data) : StateHandler(data) {}
200
  virtual ~FieldValueContainerHandler() {}
201
202
  virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
203
  virtual bool   end(const TQString&, const TQString&, const TQString&);
204
205
private:
206
  virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
207
};
208
209
class FieldValueHandler : public StateHandler {
210
public:
211
  FieldValueHandler(StateData* data) : StateHandler(data) {}
212
  virtual ~FieldValueHandler() {}
213
214
  virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
215
  virtual bool   end(const TQString&, const TQString&, const TQString&);
216
217
private:
218
  virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
219
  bool m_i18n;
220
  bool m_validateISBN;
221
};
222
223
class DateValueHandler : public StateHandler {
224
public:
225
  DateValueHandler(StateData* data) : StateHandler(data) {}
226
  virtual ~DateValueHandler() {}
227
228
  virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
229
  virtual bool   end(const TQString&, const TQString&, const TQString&);
230
};
231
232
class TableColumnHandler : public StateHandler {
233
public:
234
  TableColumnHandler(StateData* data) : StateHandler(data) {}
235
  virtual ~TableColumnHandler() {}
236
237
  virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
238
  virtual bool   end(const TQString&, const TQString&, const TQString&);
239
};
240
241
class ImagesHandler : public StateHandler {
242
public:
243
  ImagesHandler(StateData* data) : StateHandler(data) {}
244
  virtual ~ImagesHandler() {}
245
246
  virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
247
  virtual bool   end(const TQString&, const TQString&, const TQString&);
248
249
private:
250
  virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
251
};
252
253
class ImageHandler : public StateHandler {
254
public:
255
  ImageHandler(StateData* data) : StateHandler(data) {}
256
  virtual ~ImageHandler() {}
257
258
  virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
259
  virtual bool   end(const TQString&, const TQString&, const TQString&);
260
261
private:
262
  TQString m_format;
263
  bool m_link;
264
  TQString m_imageId;
265
  int m_width;
266
  int m_height;
267
};
268
269
class FiltersHandler : public StateHandler {
270
public:
271
  FiltersHandler(StateData* data) : StateHandler(data) {}
272
  virtual ~FiltersHandler() {}
273
274
  virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
275
  virtual bool   end(const TQString&, const TQString&, const TQString&);
276
277
private:
278
  virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
279
};
280
281
class FilterHandler : public StateHandler {
282
public:
283
  FilterHandler(StateData* data) : StateHandler(data) {}
284
  virtual ~FilterHandler() {}
285
286
  virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
287
  virtual bool   end(const TQString&, const TQString&, const TQString&);
288
289
private:
290
  virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
291
};
292
293
class FilterRuleHandler : public StateHandler {
294
public:
295
  FilterRuleHandler(StateData* data) : StateHandler(data) {}
296
  virtual ~FilterRuleHandler() {}
297
298
  virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
299
  virtual bool   end(const TQString&, const TQString&, const TQString&);
300
};
301
302
class BorrowersHandler : public StateHandler {
303
public:
304
  BorrowersHandler(StateData* data) : StateHandler(data) {}
305
  virtual ~BorrowersHandler() {}
306
307
  virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
308
  virtual bool   end(const TQString&, const TQString&, const TQString&);
309
310
private:
311
  virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
312
};
313
314
class BorrowerHandler : public StateHandler {
315
public:
316
  BorrowerHandler(StateData* data) : StateHandler(data) {}
317
  virtual ~BorrowerHandler() {}
318
319
  virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
320
  virtual bool   end(const TQString&, const TQString&, const TQString&);
321
322
private:
323
  virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
324
};
325
326
class LoanHandler : public StateHandler {
327
public:
328
  LoanHandler(StateData* data) : StateHandler(data) {}
329
  virtual ~LoanHandler() {}
330
331
  virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
332
  virtual bool   end(const TQString&, const TQString&, const TQString&);
333
334
private:
335
  int m_id;
336
  TQString m_uid;
337
  TQString m_loanDate;
338
  TQString m_dueDate;
339
  bool m_inCalendar;
340
};
341
342
    }
343
  }
344
}
345
#endif
(-)a/src/translators/xsltexporter.cpp (+24 lines)
Lines 18-23 Link Here
18
18
19
#include <tdelocale.h>
19
#include <tdelocale.h>
20
#include <kurlrequester.h>
20
#include <kurlrequester.h>
21
#include <kuser.h>
22
#include <tdeconfig.h>
21
23
22
#include <tqlabel.h>
24
#include <tqlabel.h>
23
#include <tqgroupbox.h>
25
#include <tqgroupbox.h>
Lines 49-54 bool XSLTExporter::exec() { Link Here
49
  }
51
  }
50
  //  XSLTHandler handler(FileHandler::readXMLFile(url));
52
  //  XSLTHandler handler(FileHandler::readXMLFile(url));
51
  XSLTHandler handler(u);
53
  XSLTHandler handler(u);
54
  handler.addStringParam("date", TQDate::currentDate().toString(TQt::ISODate).latin1());
55
  handler.addStringParam("time", TQTime::currentTime().toString(TQt::ISODate).latin1());
56
  handler.addStringParam("user", KUser(KUser::UseRealUserID).loginName().latin1());
52
57
53
  TellicoXMLExporter exporter;
58
  TellicoXMLExporter exporter;
54
  exporter.setEntries(entries());
59
  exporter.setEntries(entries());
Lines 75-80 TQWidget* XSLTExporter::widget(TQWidget* parent_, const char* name_/*=0*/) { Link Here
75
  m_URLRequester = new KURLRequester(box);
80
  m_URLRequester = new KURLRequester(box);
76
  TQWhatsThis::add(m_URLRequester, i18n("Choose the XSLT file used to transform the Tellico XML data."));
81
  TQWhatsThis::add(m_URLRequester, i18n("Choose the XSLT file used to transform the Tellico XML data."));
77
82
83
  TQString filter = i18n("*.xsl|XSL Files (*.xsl)") + TQChar('\n');
84
  filter += i18n("*|All Files");
85
  m_URLRequester->setFilter(filter);
86
  m_URLRequester->setMode(static_cast<KFile::Mode>(KFile::File | KFile::ExistingOnly));
87
  if(!m_xsltFile.isEmpty()) {
88
    m_URLRequester->setURL(m_xsltFile);
89
  }
90
78
  l->addStretch(1);
91
  l->addStretch(1);
79
  return m_widget;
92
  return m_widget;
80
}
93
}
94
95
void XSLTExporter::readOptions(TDEConfig* config_) {
96
  TDEConfigGroup group(config_, TQString::fromLatin1("ExportOptions - %1").arg(formatString()));
97
  m_xsltFile = group.readEntry("Last File", TQString());
98
}
99
100
void XSLTExporter::saveOptions(TDEConfig* config_) {
101
  TDEConfigGroup group(config_, TQString::fromLatin1("ExportOptions - %1").arg(formatString()));
102
  m_xsltFile = m_URLRequester->url();
103
  group.writeEntry("Last File", m_xsltFile);
104
}
(-)a/src/translators/xsltexporter.h (+4 lines)
Lines 34-42 public: Link Here
34
34
35
  virtual TQWidget* widget(TQWidget* parent, const char* name=0);
35
  virtual TQWidget* widget(TQWidget* parent, const char* name=0);
36
36
37
  virtual void readOptions(TDEConfig* cfg);
38
  virtual void saveOptions(TDEConfig* cfg);
39
37
private:
40
private:
38
  TQWidget* m_widget;
41
  TQWidget* m_widget;
39
  KURLRequester* m_URLRequester;
42
  KURLRequester* m_URLRequester;
43
  TQString m_xsltFile;
40
};
44
};
41
45
42
  } // end namespace
46
  } // end namespace
(-)a/src/upcvalidator.cpp (-7 / +8 lines)
Lines 13-18 Link Here
13
13
14
#include "upcvalidator.h"
14
#include "upcvalidator.h"
15
#include "isbnvalidator.h"
15
#include "isbnvalidator.h"
16
#include "tellico_debug.h"
16
17
17
#include <kmdcodec.h>
18
#include <kmdcodec.h>
18
19
Lines 24-30 UPCValidator::UPCValidator(TQObject* parent_, const char* name_/*=0*/) Link Here
24
25
25
TQValidator::State UPCValidator::validate(TQString& input_, int& pos_) const {
26
TQValidator::State UPCValidator::validate(TQString& input_, int& pos_) const {
26
  // check if it's a cuecat first
27
  // check if it's a cuecat first
27
  State catState = decodeCat(input_);
28
  State catState = CueCat::decode(input_);
28
  if(catState == Acceptable) {
29
  if(catState == Acceptable) {
29
    pos_ = input_.length();
30
    pos_ = input_.length();
30
    return catState;
31
    return catState;
Lines 91-108 void UPCValidator::fixup(TQString& input_) const { Link Here
91
  }
92
  }
92
}
93
}
93
94
94
TQValidator::State UPCValidator::decodeCat(TQString& input_) const {
95
TQValidator::State Tellico::CueCat::decode(TQString& input_) {
95
  if(input_.length() < 3) {
96
  if(input_.length() < 3) {
96
    return Intermediate;
97
    return TQValidator::Intermediate;
97
  }
98
  }
98
 if(!input_.startsWith(TQString::fromLatin1(".C3"))) { // all cuecat codes start with .C3
99
 if(!input_.startsWith(TQString::fromLatin1(".C3"))) { // all cuecat codes start with .C3
99
    return Invalid;
100
    return TQValidator::Invalid;
100
  }
101
  }
101
  const int periods = input_.contains('.');
102
  const int periods = input_.contains('.');
102
  if(periods < 4) {
103
  if(periods < 4) {
103
    return Intermediate; // not enough yet
104
    return TQValidator::Intermediate; // not enough yet
104
  } else if(periods > 4) {
105
  } else if(periods > 4) {
105
    return Invalid;
106
    return TQValidator::Invalid;
106
  }
107
  }
107
108
108
  // ok, let's have a go, take the third token
109
  // ok, let's have a go, take the third token
Lines 127-133 TQValidator::State UPCValidator::decodeCat(TQString& input_) const { Link Here
127
  }
128
  }
128
129
129
  input_ = code;
130
  input_ = code;
130
  return Acceptable;
131
  return TQValidator::Acceptable;
131
}
132
}
132
133
133
#include "upcvalidator.moc"
134
#include "upcvalidator.moc"
(-)a/src/upcvalidator.h (-2 / +5 lines)
Lines 37-47 signals: Link Here
37
  void signalISBN();
37
  void signalISBN();
38
38
39
private:
39
private:
40
  State decodeCat(TQString& str) const;
41
42
  bool m_checkISBN : 1;
40
  bool m_checkISBN : 1;
43
  mutable bool m_isbn : 1;
41
  mutable bool m_isbn : 1;
44
};
42
};
45
43
44
class CueCat {
45
public:
46
  static TQValidator::State decode(TQString& str);
47
};
48
46
} // end namespace
49
} // end namespace
47
#endif
50
#endif
(-)a/xslt/amazon2tellico.xsl (-3 / +40 lines)
Lines 53-58 Link Here
53
<xsl:variable name="lcletters">abcdefghijklmnopqrstuvwxyz</xsl:variable>
53
<xsl:variable name="lcletters">abcdefghijklmnopqrstuvwxyz</xsl:variable>
54
<xsl:variable name="ucletters">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
54
<xsl:variable name="ucletters">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
55
55
56
<!-- disable default behavior -->
57
<xsl:template match="text()|@*"></xsl:template>
58
56
<xsl:template match="/">
59
<xsl:template match="/">
57
 <tellico syntaxVersion="10">
60
 <tellico syntaxVersion="10">
58
  <collection title="Amazon Import">
61
  <collection title="Amazon Import">
Lines 71-76 Link Here
71
     <xsl:when test="$mode='VideoGames'">
74
     <xsl:when test="$mode='VideoGames'">
72
      <xsl:text>11</xsl:text>
75
      <xsl:text>11</xsl:text>
73
     </xsl:when>
76
     </xsl:when>
77
     <xsl:when test="$mode='Toys'">
78
      <xsl:text>13</xsl:text>
79
     </xsl:when>
74
    </xsl:choose>
80
    </xsl:choose>
75
   </xsl:attribute>
81
   </xsl:attribute>
76
   <fields>
82
   <fields>
Lines 81-89 Link Here
81
    <field flags="0" title="Medium Image" category="Images"  format="4" type="7" name="medium-image"/>
87
    <field flags="0" title="Medium Image" category="Images"  format="4" type="7" name="medium-image"/>
82
    <field flags="0" title="Large Image" category="Images" format="4" type="7" name="large-image"/>
88
    <field flags="0" title="Large Image" category="Images" format="4" type="7" name="large-image"/>
83
   </fields>
89
   </fields>
84
   <xsl:for-each select="//aws:Items/aws:Item">
90
   <!-- results for board games need to be filtered -->
85
    <xsl:apply-templates select="."/>
91
   <xsl:if test="$mode != 'Toys'">
86
   </xsl:for-each>
92
    <xsl:for-each select="//aws:Items/aws:Item">
93
     <xsl:apply-templates select="."/>
94
    </xsl:for-each>
95
   </xsl:if>
96
   <xsl:if test="$mode = 'Toys'">
97
    <!-- only grab items in the board games category -->
98
    <xsl:for-each select="//aws:Items/aws:Item[.//aws:BrowseNode/aws:Name='Board Games' or
99
                                               .//aws:BrowseNode/aws:BrowseNodeId='166225011']">
100
     <xsl:apply-templates select="."/>
101
    </xsl:for-each>
102
   </xsl:if>
87
  </collection>
103
  </collection>
88
 </tellico>
104
 </tellico>
89
</xsl:template>
105
</xsl:template>
Lines 496-501 Link Here
496
     </xsl:choose>
512
     </xsl:choose>
497
    </certification>
513
    </certification>
498
   </xsl:when>
514
   </xsl:when>
515
516
   <xsl:when test="$mode='Toys'">
517
    <publishers>
518
     <publisher>
519
      <xsl:value-of select="(aws:Label|aws:Brand|aws:Publisher|aws:Manufacturer)[1]"/>
520
     </publisher>
521
    </publishers>
522
523
    <description>
524
     <xsl:value-of select="../aws:EditorialReviews/aws:EditorialReview[1]/aws:Content"/>
525
     <xsl:for-each select="aws:Feature">
526
      <xsl:value-of select="."/>
527
      <!-- if the last character is not punctuation, add a period -->
528
      <xsl:if test="not(contains('.!?,/', substring(., string-length(.))))">
529
       <xsl:text>.</xsl:text>
530
      </xsl:if>
531
       <xsl:text> </xsl:text>
532
     </xsl:for-each>
533
    </description>
534
   </xsl:when>
535
499
  </xsl:choose>
536
  </xsl:choose>
500
</xsl:template>
537
</xsl:template>
501
538
(-)a/xslt/crossref2tellico.xsl (+4 lines)
Lines 42-47 Link Here
42
 </tellico>
42
 </tellico>
43
</xsl:template>
43
</xsl:template>
44
44
45
<!-- ignore unresolved queries -->
46
<xsl:template match="cr:query[@status='unresolved']">
47
</xsl:template>
48
45
<xsl:template match="cr:query">
49
<xsl:template match="cr:query">
46
 <entry>
50
 <entry>
47
  
51
  
(-)a/xslt/delicious2tellico.xsl (-6 / +277 lines)
Lines 21-37 Link Here
21
            doctype-public="-//Robby Stephenson/DTD Tellico V10.0//EN"
21
            doctype-public="-//Robby Stephenson/DTD Tellico V10.0//EN"
22
            doctype-system="http://periapsis.org/tellico/dtd/v10/tellico.dtd"/>
22
            doctype-system="http://periapsis.org/tellico/dtd/v10/tellico.dtd"/>
23
23
24
<xsl:param name="item-type"/>
25
24
<xsl:template match="/">
26
<xsl:template match="/">
25
 <tc:tellico syntaxVersion="10">
27
 <tc:tellico syntaxVersion="10">
26
  <tc:collection title="Delicious Library Import" type="2">
28
  <!-- DL libraries can contain mixed types and right now, there's no way to do that in Tellico -->
29
  <!-- so we're going to limit the export to whatever the type of the first item is -->
30
  <xsl:variable name="item">
31
   <xsl:choose>
32
    <xsl:when test="string-length($item-type) &gt; 0">
33
     <xsl:value-of select="$item-type"/>
34
    </xsl:when>
35
    <xsl:otherwise>
36
     <xsl:value-of select="local-name(library/items/child::*[1])"/>
37
    </xsl:otherwise>
38
   </xsl:choose>
39
  </xsl:variable>
40
41
  <xsl:comment><xsl:text>Choosing all items of type </xsl:text><xsl:value-of select="$item"/></xsl:comment>
42
43
  <xsl:variable name="type">
44
   <xsl:choose>
45
    <xsl:when test="$item='book'">2</xsl:when>
46
    <xsl:when test="$item='movie'">3</xsl:when>
47
    <xsl:when test="$item='game'">11</xsl:when>
48
    <xsl:otherwise>0</xsl:otherwise>
49
   </xsl:choose>
50
  </xsl:variable>
51
  <tc:collection title="Delicious Library Import">
52
   <xsl:attribute name="type"><xsl:value-of select="$type"/></xsl:attribute>
27
   <tc:fields>
53
   <tc:fields>
28
    <tc:field name="_default"/>
54
    <tc:field name="_default"/>
29
    <tc:field flags="0" title="Amazon Link" category="General" format="4" type="7" name="amazon" i18n="true"/>
55
    <tc:field flags="0" title="Amazon Link" category="General" format="4" type="7" name="amazon" i18n="true"/>
30
    <tc:field flags="0" title="UUID" category="General" format="0" type="1" name="uuid"/>
56
    <tc:field flags="0" title="UUID" category="General" format="0" type="1" name="uuid"/>
31
   </tc:fields>
57
   </tc:fields>
32
   <xsl:for-each select="library/items/book">
58
   <xsl:apply-templates select="library/items/child::*[local-name()=$item]"/>
33
    <xsl:apply-templates select="."/>
34
   </xsl:for-each>
35
  </tc:collection>
59
  </tc:collection>
36
 </tc:tellico>
60
 </tc:tellico>
37
</xsl:template>
61
</xsl:template>
Lines 56-62 Link Here
56
    <xsl:otherwise>
80
    <xsl:otherwise>
57
     <xsl:value-of select="@title"/>
81
     <xsl:value-of select="@title"/>
58
    </xsl:otherwise>
82
    </xsl:otherwise>
59
   </xsl:choose> 
83
   </xsl:choose>
60
  </tc:title>
84
  </tc:title>
61
85
62
  <tc:subtitle>
86
  <tc:subtitle>
Lines 116-122 Link Here
116
140
117
  <tc:rating>
141
  <tc:rating>
118
   <!-- tellico automatically rounds down  -->
142
   <!-- tellico automatically rounds down  -->
119
   <xsl:value-of select="netrating"/>
143
   <xsl:value-of select="@netrating"/>
120
  </tc:rating>
144
  </tc:rating>
121
145
122
  <xsl:call-template name="split">
146
  <xsl:call-template name="split">
Lines 132-137 Link Here
132
 </tc:entry>
156
 </tc:entry>
133
</xsl:template>
157
</xsl:template>
134
158
159
<xsl:template match="movie">
160
 <tc:entry>
161
  <tc:uuid>
162
   <xsl:value-of select="@uuid"/>
163
  </tc:uuid>
164
165
  <tc:amazon>
166
   <xsl:if test="@asin">
167
    <xsl:value-of select="concat('http://www.amazon.com/dp/',@asin,'/?tag=tellico-20')"/>
168
   </xsl:if>
169
  </tc:amazon>
170
171
  <tc:title>
172
   <xsl:call-template name="strip-title">
173
    <xsl:with-param name="title" select="@title"/>
174
   </xsl:call-template>
175
  </tc:title>
176
177
  <tc:medium>
178
   <xsl:value-of select="@aspect"/>
179
  </tc:medium>
180
181
  <xsl:call-template name="split">
182
   <xsl:with-param name="name" select="'tc:director'"/>
183
   <xsl:with-param name="value" select="@director"/>
184
  </xsl:call-template>
185
186
  <xsl:call-template name="split">
187
   <xsl:with-param name="name" select="'tc:cast'"/>
188
   <xsl:with-param name="value" select="@stars"/>
189
  </xsl:call-template>
190
191
  <xsl:if test="contains(@features, 'Widescreen')">
192
   <tc:widescreen>true</tc:widescreen>
193
  </xsl:if>
194
195
  <xsl:if test="contains(@features, 'NTSC')">
196
   <tc:format i18n="true">NTSC</tc:format>
197
  </xsl:if>
198
199
  <xsl:if test="contains(@features, 'PAL')">
200
   <tc:format i18n="true">PAL</tc:format>
201
  </xsl:if>
202
203
  <xsl:if test="contains(@features, 'SECAM')">
204
   <tc:format i18n="true">SECAM</tc:format>
205
  </xsl:if>
206
207
  <xsl:if test="contains(@features, 'Color')">
208
   <tc:color i18n="true">Color</tc:color>
209
  </xsl:if>
210
211
  <xsl:if test="contains(@features, 'Black &amp; White')">
212
   <tc:color i18n="true">Black &amp; White</tc:color>
213
  </xsl:if>
214
215
  <xsl:if test="contains(@features, '1.33:1')">
216
   <tc:aspect-ratios>
217
    <tc:aspect-ratio>1.33:1</tc:aspect-ratio>
218
   </tc:aspect-ratios>
219
  </xsl:if>
220
221
  <xsl:if test="contains(@features, '1.85:1')">
222
   <tc:aspect-ratios>
223
    <tc:aspect-ratio>1.85:1</tc:aspect-ratio>
224
   </tc:aspect-ratios>
225
  </xsl:if>
226
227
  <tc:audio-tracks>
228
   <xsl:if test="contains(@features, 'Dolby')">
229
    <tc:audio-track i18n="true">Dolby</tc:audio-track>
230
   </xsl:if>
231
   <xsl:if test="contains(@features, 'DTS')">
232
    <tc:audio-track i18n="true">DTS</tc:audio-track>
233
   </xsl:if>
234
  </tc:audio-tracks>
235
236
  <xsl:choose>
237
   <xsl:when test="contains(@genre, 'Region 1')">
238
    <tc:region i18n="true">Region 1</tc:region>
239
   </xsl:when>
240
   <xsl:when test="contains(@genre, 'Region 2')">
241
    <tc:region i18n="true">Region 2</tc:region>
242
   </xsl:when>
243
   <xsl:when test="contains(@genre, 'Region 3')">
244
    <tc:region i18n="true">Region 3</tc:region>
245
   </xsl:when>
246
   <xsl:when test="contains(@genre, 'Region 4')">
247
    <tc:region i18n="true">Region 4</tc:region>
248
   </xsl:when>
249
   <xsl:when test="contains(@genre, 'Region 5')">
250
    <tc:region i18n="true">Region 5</tc:region>
251
   </xsl:when>
252
   <xsl:when test="contains(@genre, 'Region 6')">
253
    <tc:region i18n="true">Region 6</tc:region>
254
   </xsl:when>
255
   <xsl:when test="contains(@genre, 'Region 7')">
256
    <tc:region i18n="true">Region 7</tc:region>
257
   </xsl:when>
258
   <xsl:when test="contains(@genre, 'Region 8')">
259
    <tc:region i18n="true">Region 8</tc:region>
260
   </xsl:when>
261
  </xsl:choose>
262
263
  <xsl:call-template name="split">
264
   <xsl:with-param name="name" select="'tc:genre'"/>
265
   <xsl:with-param name="value" select="@genre"/>
266
   <xsl:with-param name="i18n" select="true()"/>
267
  </xsl:call-template>
268
269
  <xsl:call-template name="split">
270
   <xsl:with-param name="name" select="'tc:studio'"/>
271
   <xsl:with-param name="value" select="@publisher"/>
272
  </xsl:call-template>
273
274
  <tc:running-time>
275
   <xsl:value-of select="@minutes"/>
276
  </tc:running-time>
277
278
  <tc:certification>
279
   <xsl:value-of select="concat(@mpaarating, ' (US)')"/>
280
  </tc:certification>
281
282
  <tc:year>
283
   <xsl:call-template name="year">
284
    <xsl:with-param name="value" select="@theatricalDate"/>
285
   </xsl:call-template>
286
  </tc:year>
287
288
  <tc:pur_price>
289
   <xsl:value-of select="@price"/>
290
  </tc:pur_price>
291
292
  <tc:pur_date>
293
   <xsl:value-of select="@purchaseDate"/>
294
  </tc:pur_date>
295
296
  <tc:rating>
297
   <!-- tellico automatically rounds down  -->
298
   <xsl:value-of select="@netrating"/>
299
  </tc:rating>
300
301
  <xsl:call-template name="split">
302
   <xsl:with-param name="name" select="'tc:nationality'"/>
303
   <xsl:with-param name="value" select="@country"/>
304
  </xsl:call-template>
305
306
  <tc:plot>
307
   <xsl:value-of select="description"/>
308
  </tc:plot>
309
 </tc:entry>
310
</xsl:template>
311
312
<xsl:template match="game">
313
 <tc:entry>
314
  <tc:uuid>
315
   <xsl:value-of select="@uuid"/>
316
  </tc:uuid>
317
318
  <tc:amazon>
319
   <xsl:if test="@asin">
320
    <xsl:value-of select="concat('http://www.amazon.com/dp/',@asin,'/?tag=tellico-20')"/>
321
   </xsl:if>
322
  </tc:amazon>
323
324
  <tc:title>
325
   <xsl:value-of select="@title"/>
326
  </tc:title>
327
328
  <tc:platform>
329
   <xsl:value-of select="@platform"/>
330
  </tc:platform>
331
332
  <tc:certification>
333
   <xsl:value-of select="@esrbrating"/>
334
  </tc:certification>
335
336
  <xsl:call-template name="split">
337
   <xsl:with-param name="name" select="'tc:genre'"/>
338
   <xsl:with-param name="value" select="@genre"/>
339
   <xsl:with-param name="i18n" select="true()"/>
340
  </xsl:call-template>
341
342
  <tc:pur_price>
343
   <xsl:value-of select="@price"/>
344
  </tc:pur_price>
345
346
  <tc:pur_date>
347
   <xsl:value-of select="@purchaseDate"/>
348
  </tc:pur_date>
349
350
  <tc:year>
351
   <xsl:call-template name="year">
352
    <xsl:with-param name="value" select="@published"/>
353
   </xsl:call-template>
354
  </tc:year>
355
356
  <tc:rating>
357
   <!-- tellico automatically rounds down  -->
358
   <xsl:value-of select="@netrating"/>
359
  </tc:rating>
360
361
  <tc:publisher>
362
   <xsl:value-of select="@publisher"/>
363
  </tc:publisher>
364
365
  <tc:description>
366
   <xsl:value-of select="description"/>
367
  </tc:description>
368
369
 </tc:entry>
370
</xsl:template>
371
135
<xsl:template name="split">
372
<xsl:template name="split">
136
 <xsl:param name="name"/>
373
 <xsl:param name="name"/>
137
 <xsl:param name="value"/>
374
 <xsl:param name="value"/>
Lines 161-164 Link Here
161
 <xsl:value-of select="substring($numbers, string-length($numbers)-3, 4)"/>
398
 <xsl:value-of select="substring($numbers, string-length($numbers)-3, 4)"/>
162
</xsl:template>
399
</xsl:template>
163
400
401
<xsl:template name="strip-title">
402
 <xsl:param name="title"/>
403
 <xsl:param name="chars" select="'[('"/>
404
 <xsl:choose>
405
  <xsl:when test="string-length($chars) = 0">
406
   <xsl:value-of select="normalize-space($title)"/>
407
  </xsl:when>
408
  <xsl:otherwise>
409
   <xsl:call-template name="strip-title">
410
    <xsl:with-param name="title">
411
     <xsl:call-template name="str-before">
412
      <xsl:with-param name="value1" select="$title"/>
413
      <xsl:with-param name="value2" select="substring($chars,1,1)"/>
414
     </xsl:call-template>
415
    </xsl:with-param>
416
    <xsl:with-param name="chars" select="substring($chars,2)"/>
417
   </xsl:call-template>
418
  </xsl:otherwise>
419
 </xsl:choose>
420
</xsl:template>
421
422
<xsl:template name="str-before">
423
 <xsl:param name="value1"/>
424
 <xsl:param name="value2"/>
425
 <xsl:choose>
426
  <xsl:when test="string-length($value2) &gt; 0 and contains($value1, $value2)">
427
   <xsl:value-of select="substring-before($value1, $value2)"/>
428
  </xsl:when>
429
  <xsl:otherwise>
430
   <xsl:value-of select="$value1"/>
431
  </xsl:otherwise>
432
 </xsl:choose>
433
</xsl:template>
434
164
</xsl:stylesheet>
435
</xsl:stylesheet>
(-)a/xslt/gcstar2tellico.xsl (+47 lines)
Lines 79-84 Link Here
79
     <tc:field flags="8" title="Original Title" category="General" format="1" type="1" name="origtitle" i18n="true"/>
79
     <tc:field flags="8" title="Original Title" category="General" format="1" type="1" name="origtitle" i18n="true"/>
80
     <tc:field flags="0" title="Seen" category="Personal" format="4" type="4" name="seen" i18n="true"/>
80
     <tc:field flags="0" title="Seen" category="Personal" format="4" type="4" name="seen" i18n="true"/>
81
    </xsl:when>
81
    </xsl:when>
82
    <xsl:when test="@type='GCcoins'">
83
     <!-- gcstar includes way more coin grades than tellico -->
84
     <tc:field flags="2" title="Grade" category="General" format="4" type="3" name="grade"
85
               allowed="Proof-65;Proof-60;Mint State-70;Mint State-69;Mint State-68;Mint State-67;Mint State-66;Mint State-65;Mint State-64;Mint State-63;Mint State-62;Mint State-61;Mint State-60;Almost Uncirculated-58;Almost Uncirculated-55;Almost Uncirculated-53;Almost Uncirculated-50;Extremely Fine-45;Extremely Fine-40;Very Fine-35;Very Fine-30;Very Fine-25;Very Fine-20;Fine-15;Fine-12;Very Good-10;Very Good-8;Good-6;Good-4;Fair"/>
86
    </xsl:when>
82
   </xsl:choose>
87
   </xsl:choose>
83
  </tc:fields>
88
  </tc:fields>
84
  <xsl:apply-templates select="item"/>
89
  <xsl:apply-templates select="item"/>
Lines 477-482 Link Here
477
 </tc:num-players>
482
 </tc:num-players>
478
</xsl:template>
483
</xsl:template>
479
484
485
<!-- coins -->
486
<xsl:template match="condition">
487
<!-- by default, Tellico includes 
488
        "Proof-65,Proof-60,Mint State-65,Mint State-60,"
489
        "Almost Uncirculated-55,Almost Uncirculated-50,"
490
        "Extremely Fine-40,Very Fine-30,Very Fine-20,Fine-12,"
491
        "Very Good-8,Good-4,Fair" -->
492
<!-- GCStar doesn't appear to include proof grades -->
493
 <tc:grade>
494
  <xsl:choose>
495
   <xsl:when test=".='70'">Mint State-70</xsl:when>
496
   <xsl:when test=".='69'">Mint State-69</xsl:when>
497
   <xsl:when test=".='68'">Mint State-68</xsl:when>
498
   <xsl:when test=".='67'">Mint State-67</xsl:when>
499
   <xsl:when test=".='66'">Mint State-66</xsl:when>
500
   <xsl:when test=".='65'">Mint State-65</xsl:when>
501
   <xsl:when test=".='64'">Mint State-64</xsl:when>
502
   <xsl:when test=".='63'">Mint State-63</xsl:when>
503
   <xsl:when test=".='62'">Mint State-62</xsl:when>
504
   <xsl:when test=".='61'">Mint State-61</xsl:when>
505
   <xsl:when test=".='60'">Mint State-60</xsl:when>
506
   <xsl:when test=".='58'">Almost Uncirculated-58</xsl:when>
507
   <xsl:when test=".='55'">Almost Uncirculated-55</xsl:when>
508
   <xsl:when test=".='53'">Almost Uncirculated-53</xsl:when>
509
   <xsl:when test=".='50'">Almost Uncirculated-50</xsl:when>
510
   <xsl:when test=".='45'">Extremely Fine-45</xsl:when>
511
   <xsl:when test=".='40'">Extremely Fine-40</xsl:when>
512
   <xsl:when test=".='35'">Very Fine-35</xsl:when>
513
   <xsl:when test=".='30'">Very Fine-30</xsl:when>
514
   <xsl:when test=".='25'">Very Fine-25</xsl:when>
515
   <xsl:when test=".='20'">Very Fine-20</xsl:when>
516
   <xsl:when test=".='15'">Fine-15</xsl:when>
517
   <xsl:when test=".='12'">Fine-12</xsl:when>
518
   <xsl:when test=".='10'">Very Good-10</xsl:when>
519
   <xsl:when test=".='8'">Very Good-8</xsl:when>
520
   <xsl:when test=".='6'">Good-6</xsl:when>
521
   <xsl:when test=".='4'">Good-4</xsl:when>
522
   <xsl:when test=".&lt;4">Fair</xsl:when>
523
  </xsl:choose>
524
 </tc:grade>
525
</xsl:template>
526
480
<xsl:template name="year">
527
<xsl:template name="year">
481
 <xsl:param name="value"/>
528
 <xsl:param name="value"/>
482
 <!-- want to find a 4-digit number to treat as the year --> 
529
 <!-- want to find a 4-digit number to treat as the year --> 
(-)a/xslt/report-templates/Column_View.xsl (-1 / +4 lines)
Lines 258-264 Link Here
258
        </xsl:attribute>
258
        </xsl:attribute>
259
        <img>
259
        <img>
260
         <xsl:attribute name="src">
260
         <xsl:attribute name="src">
261
          <xsl:value-of select="concat($imgdir, .)"/>
261
          <xsl:call-template name="image-link">
262
           <xsl:with-param name="image" select="key('imagesById', .)"/>
263
           <xsl:with-param name="dir" select="$imgdir"/>
264
          </xsl:call-template>
262
         </xsl:attribute>
265
         </xsl:attribute>
263
         <xsl:call-template name="image-size">
266
         <xsl:call-template name="image-size">
264
          <xsl:with-param name="limit-width" select="$image-width"/>
267
          <xsl:with-param name="limit-width" select="$image-width"/>
(-)a/xslt/report-templates/Group_Summary.xsl (-35 / +39 lines)
Lines 117-122 Link Here
117
        margin: 0px 0px 0px 0px;
117
        margin: 0px 0px 0px 0px;
118
        padding: 0px 10px 0px 4px;
118
        padding: 0px 10px 0px 4px;
119
        float: left;
119
        float: left;
120
        min-height: 1em;
120
   }
121
   }
121
   span.bar {
122
   span.bar {
122
        width: 590px;
123
        width: 590px;
Lines 178-184 Link Here
178
 <xsl:for-each select="tc:fields/tc:field[boolean(floor(@flags div 2) mod 2)]">
179
 <xsl:for-each select="tc:fields/tc:field[boolean(floor(@flags div 2) mod 2)]">
179
  <xsl:call-template name="output-group">
180
  <xsl:call-template name="output-group">
180
   <xsl:with-param name="coll" select="$coll"/>
181
   <xsl:with-param name="coll" select="$coll"/>
181
   <xsl:with-param name="fieldname" select="@name"/>
182
   <xsl:with-param name="field" select="."/>
182
  </xsl:call-template>  
183
  </xsl:call-template>  
183
 </xsl:for-each>
184
 </xsl:for-each>
184
185
Lines 189-223 Link Here
189
190
190
<xsl:template name="output-group">
191
<xsl:template name="output-group">
191
 <xsl:param name="coll"/>
192
 <xsl:param name="coll"/>
192
 <xsl:param name="fieldname"/>
193
 <xsl:param name="field"/>
193
194
194
 <xsl:variable name="str">
195
 <xsl:variable name="fieldname" select="$field/@name"/>
195
  <xsl:choose>
196
 <xsl:variable name="value-expr">
196
   <xsl:when test="boolean(floor(key('fieldsByName', $fieldname)/@flags mod 2))">
197
  <xsl:for-each select="$coll/tc:entry">
197
    <xsl:choose>
198
   <xsl:choose>
198
     <xsl:when test="key('fieldsByName', $fieldname)/@type=8">
199
    <!-- tables -->
199
      <xsl:value-of select="concat('$coll/tc:entry/tc:',$fieldname,'s/tc:',$fieldname,'/tc:column[1]')"/>
200
    <xsl:when test="$field/@type=8">
200
     </xsl:when>
201
     <xsl:for-each select="./*/*[local-name() = $fieldname]">
201
     <xsl:otherwise>
202
      <value>
202
      <xsl:value-of select="concat('$coll/tc:entry/tc:',$fieldname,'s/tc:',$fieldname)"/>
203
       <xsl:value-of select="tc:column[1]"/>
203
     </xsl:otherwise>
204
      </value>
204
    </xsl:choose>
205
     </xsl:for-each>
205
   </xsl:when>
206
    </xsl:when>
206
   <xsl:otherwise>
207
    <!-- multiple values...could also use "./*/*[local-name() = $fieldname]" -->
207
    <xsl:value-of select="concat('$coll/tc:entry/tc:',$fieldname)"/>
208
    <xsl:when test="boolean(floor(key('fieldsByName', $fieldname)/@flags mod 2))">
208
   </xsl:otherwise> 
209
     <xsl:for-each select="./*/*[local-name() = $fieldname]">
209
  </xsl:choose>
210
      <value>
211
       <xsl:value-of select="."/>
212
      </value>
213
     </xsl:for-each>
214
    </xsl:when>
215
    <xsl:otherwise>
216
     <value>
217
      <xsl:call-template name="simple-field-value">
218
       <xsl:with-param name="entry" select="."/>
219
       <xsl:with-param name="field" select="$fieldname"/>
220
     </xsl:call-template>
221
     </value>
222
    </xsl:otherwise>
223
   </xsl:choose>
224
  </xsl:for-each>
210
 </xsl:variable>
225
 </xsl:variable>
211
 <xsl:variable name="values" select="dyn:evaluate($str)"/>
212
226
227
 <xsl:variable name="values" select="exsl:node-set($value-expr)/value"/>
213
 <xsl:variable name="listing">
228
 <xsl:variable name="listing">
214
  <xsl:for-each select="$values[not(. = preceding::*)]">
229
  <xsl:for-each select="$values[not(. = preceding-sibling::*)]">
215
   <!-- speed sorting by ignoring groups with a count of 1 -->
230
   <!-- speed sorting by ignoring groups with a count of 1 -->
216
   <xsl:variable name="c" select="count($values[. = current()])"/>
231
   <xsl:variable name="c" select="count($values[. = current()])"/>
217
   <xsl:if test="$c &gt; 1">
232
   <xsl:if test="$c &gt; 1">
218
    <group>
233
    <group>
219
     <xsl:attribute name="name">
234
     <xsl:attribute name="name">
220
      <xsl:call-template name="text-value"/>
235
      <xsl:value-of select="."/>
221
     </xsl:attribute>
236
     </xsl:attribute>
222
     <xsl:attribute name="count">
237
     <xsl:attribute name="count">
223
      <xsl:value-of select="$c"/>
238
      <xsl:value-of select="$c"/>
Lines 229-239 Link Here
229
244
230
 <xsl:variable name="groups" select="exsl:node-set($listing)/group"/>
245
 <xsl:variable name="groups" select="exsl:node-set($listing)/group"/>
231
 <xsl:variable name="total" select="count($groups)"/>
246
 <xsl:variable name="total" select="count($groups)"/>
232
 
247
233
 <xsl:variable name="max">
248
 <xsl:variable name="max">
234
  <xsl:call-template name="max-count">
249
  <xsl:call-template name="max-count">
235
   <xsl:with-param name="nodes" select="$groups"/>
250
   <xsl:with-param name="nodes" select="$groups"/>
236
  </xsl:call-template>   
251
  </xsl:call-template>
237
 </xsl:variable>
252
 </xsl:variable>
238
253
239
 <xsl:if test="$total &gt; 2">
254
 <xsl:if test="$total &gt; 2">
Lines 305-321 Link Here
305
 </xsl:choose>
320
 </xsl:choose>
306
</xsl:template>
321
</xsl:template>
307
322
308
<xsl:template name="text-value">
309
 <xsl:choose>
310
  <xsl:when test="text()">
311
   <xsl:value-of select="text()"/>
312
  </xsl:when>
313
  <xsl:otherwise>
314
   <xsl:value-of select="..//tc:column[1]"/>
315
  </xsl:otherwise>
316
 </xsl:choose>
317
</xsl:template>
318
319
</xsl:stylesheet>
323
</xsl:stylesheet>
320
<!-- Local Variables: -->
324
<!-- Local Variables: -->
321
<!-- sgml-indent-step: 1 -->
325
<!-- sgml-indent-step: 1 -->
(-)a/xslt/report-templates/Group_View.xsl (-1 / +4 lines)
Lines 232-238 Link Here
232
        </xsl:attribute>
232
        </xsl:attribute>
233
        <img>
233
        <img>
234
         <xsl:attribute name="src">
234
         <xsl:attribute name="src">
235
          <xsl:value-of select="concat($imgdir, .)"/>
235
          <xsl:call-template name="image-link">
236
           <xsl:with-param name="image" select="key('imagesById', .)"/>
237
           <xsl:with-param name="dir" select="$imgdir"/>
238
          </xsl:call-template>
236
         </xsl:attribute>
239
         </xsl:attribute>
237
         <xsl:call-template name="image-size">
240
         <xsl:call-template name="image-size">
238
          <xsl:with-param name="limit-width" select="$image-width"/>
241
          <xsl:with-param name="limit-width" select="$image-width"/>
(-)a/xslt/report-templates/Image_List.xsl (-4 / +8 lines)
Lines 141-147 Link Here
141
   <xsl:if test="$id">
141
   <xsl:if test="$id">
142
    <img class="float">
142
    <img class="float">
143
     <xsl:attribute name="src">
143
     <xsl:attribute name="src">
144
      <xsl:value-of select="concat($imgdir, $id)"/>
144
      <xsl:call-template name="image-link">
145
       <xsl:with-param name="image" select="key('imagesById', $id)"/>
146
       <xsl:with-param name="dir" select="$imgdir"/>
147
      </xsl:call-template>
145
     </xsl:attribute>
148
     </xsl:attribute>
146
     <xsl:call-template name="image-size">
149
     <xsl:call-template name="image-size">
147
      <xsl:with-param name="limit-width" select="$image-width"/>
150
      <xsl:with-param name="limit-width" select="$image-width"/>
Lines 150-156 Link Here
150
     </xsl:call-template>
153
     </xsl:call-template>
151
    </img>
154
    </img>
152
   </xsl:if>
155
   </xsl:if>
153
  
156
154
   <table>
157
   <table>
155
    <thead>
158
    <thead>
156
     <tr>
159
     <tr>
Lines 163-170 Link Here
163
    <tbody>
166
    <tbody>
164
     <!-- don't repeat title -->
167
     <!-- don't repeat title -->
165
     <xsl:for-each select="$columns[. != 'title']">
168
     <xsl:for-each select="$columns[. != 'title']">
166
      <!-- no other images allowed -->
169
      <!-- no other images or paragraphs allowed -->
167
      <xsl:if test="$entry/../tc:fields/tc:field[@name = current()]/@type != 10">
170
      <xsl:variable name="ftype" select="$entry/../tc:fields/tc:field[@name = current()]/@type"/>
171
      <xsl:if test="$ftype != 10 and $ftype != 2">
168
       <xsl:call-template name="field-output">
172
       <xsl:call-template name="field-output">
169
        <xsl:with-param name="entry" select="$entry"/>
173
        <xsl:with-param name="entry" select="$entry"/>
170
        <!-- can't use a key, the context is not the document -->
174
        <!-- can't use a key, the context is not the document -->
(-)a/xslt/report-templates/Tri-Column.xsl (-1 / +4 lines)
Lines 193-199 Link Here
193
     <xsl:if test="$id">
193
     <xsl:if test="$id">
194
      <img class="float" alt=" ">
194
      <img class="float" alt=" ">
195
       <xsl:attribute name="src">
195
       <xsl:attribute name="src">
196
        <xsl:value-of select="concat($imgdir, $id)"/>
196
        <xsl:call-template name="image-link">
197
         <xsl:with-param name="image" select="key('imagesById', $id)"/>
198
         <xsl:with-param name="dir" select="$imgdir"/>
199
        </xsl:call-template>
197
       </xsl:attribute>
200
       </xsl:attribute>
198
       <xsl:call-template name="image-size">
201
       <xsl:call-template name="image-size">
199
        <xsl:with-param name="limit-width" select="$image-width"/>
202
        <xsl:with-param name="limit-width" select="$image-width"/>
(-)a/xslt/tellico-printing.xsl (-1 / +4 lines)
Lines 329-335 Link Here
329
        </xsl:attribute>
329
        </xsl:attribute>
330
        <img>
330
        <img>
331
         <xsl:attribute name="src">
331
         <xsl:attribute name="src">
332
          <xsl:value-of select="concat($imgdir, .)"/>
332
          <xsl:call-template name="image-link">
333
           <xsl:with-param name="image" select="key('imagesById', .)"/>
334
           <xsl:with-param name="dir" select="$imgdir"/>
335
          </xsl:call-template>
333
         </xsl:attribute>
336
         </xsl:attribute>
334
         <xsl:call-template name="image-size">
337
         <xsl:call-template name="image-size">
335
          <xsl:with-param name="limit-width" select="$image-width"/>
338
          <xsl:with-param name="limit-width" select="$image-width"/>
(-)a/xslt/tellico2gcstar.xsl (-1 / +11 lines)
Lines 65-70 Link Here
65
  <xsl:when test="tc:tellico/tc:collection/@type=4">
65
  <xsl:when test="tc:tellico/tc:collection/@type=4">
66
   <xsl:text>GCmusics</xsl:text>
66
   <xsl:text>GCmusics</xsl:text>
67
  </xsl:when>
67
  </xsl:when>
68
  <xsl:when test="tc:tellico/tc:collection/@type=8">
69
   <xsl:text>GCcoins</xsl:text>
70
  </xsl:when>
68
 </xsl:choose>
71
 </xsl:choose>
69
</xsl:variable>
72
</xsl:variable>
70
<!-- grab all the applicable attributes once -->
73
<!-- grab all the applicable attributes once -->
Lines 80-86 Link Here
80
 <xsl:apply-templates select="tc:collection"/>
83
 <xsl:apply-templates select="tc:collection"/>
81
</xsl:template>
84
</xsl:template>
82
85
83
<xsl:template match="tc:collection[@type&lt;2 or @type&gt;5]">
86
<xsl:template match="tc:collection[@type&lt;2 or @type&gt;5 and not(@type=8)]">
84
 <xsl:message terminate="yes">
87
 <xsl:message terminate="yes">
85
  <xsl:text>GCstar export is not supported for this collection type.</xsl:text>
88
  <xsl:text>GCstar export is not supported for this collection type.</xsl:text>
86
 </xsl:message>
89
 </xsl:message>
Lines 147-152 Link Here
147
    </xsl:choose>
150
    </xsl:choose>
148
   </xsl:attribute>
151
   </xsl:attribute>
149
  </xsl:if>
152
  </xsl:if>
153
  <!-- for coin grade, GCstar uses numbers only -->
154
  <xsl:if test="tc:grade">
155
   <xsl:attribute name="condition">
156
    <!-- remove everything but numbers -->
157
    <xsl:value-of select="translate(tc:grade,translate(tc:grade,'0123456789', ''),'')"/>
158
   </xsl:attribute>
159
  </xsl:if>
150
160
151
  <!-- for books -->
161
  <!-- for books -->
152
  <comments>
162
  <comments>
(-)a/xslt/tellico2html.js (-4 / +6 lines)
Lines 127-134 sorttable = { Link Here
127
    
127
    
128
    if (!document.createElement || !document.getElementsByTagName) return;
128
    if (!document.createElement || !document.getElementsByTagName) return;
129
    
129
    
130
    sorttable.DATE_RE = /^(\d\d)[\/\.-](\d\d?)[\/\.-]((\d\d)?\d\d)$/;
130
    sorttable.DATE_RE = /^(\d\d?)[\/\.-](\d\d?)[\/\.-](\d{4}|\d\d)$/;
131
    sorttable.YYMMDD_RE = /^((\d\d)?\d\d)[\/\.-](\d\d?)[\/\.-](\d\d)$/;
131
    sorttable.YYMMDD_RE = /^(\d{4}|\d\d)[\/\.-](\d\d?)[\/\.-](\d\d?)$/;
132
    
132
    
133
    forEach(document.getElementsByTagName('table'), function(table) {
133
    forEach(document.getElementsByTagName('table'), function(table) {
134
      if (table.className.search(/\bsortable\b/) != -1) {
134
      if (table.className.search(/\bsortable\b/) != -1) {
Lines 371-377 sorttable = { Link Here
371
    if (mtch) {
371
    if (mtch) {
372
      y = mtch[1]; m = mtch[2]; d = mtch[3];
372
      y = mtch[1]; m = mtch[2]; d = mtch[3];
373
      // y2k notes: two digit years less than 50 are treated as 20XX, greater than 50 are treated as 19XX
373
      // y2k notes: two digit years less than 50 are treated as 20XX, greater than 50 are treated as 19XX
374
      if (parseInt(y) < 50) y = '20'+y; else y = '19'+y;
374
      if (y.length == 2)
375
        if (parseInt(y) < 50) y = '20'+y; else y = '19'+y;
375
      if (m.length == 1) m = '0'+m;
376
      if (m.length == 1) m = '0'+m;
376
      if (d.length == 1) d = '0'+d;
377
      if (d.length == 1) d = '0'+d;
377
      dt1 = y+m+d;
378
      dt1 = y+m+d;
Lines 379-385 sorttable = { Link Here
379
    mtch = b[0].match(sorttable.YYMMDD_RE);
380
    mtch = b[0].match(sorttable.YYMMDD_RE);
380
    if (mtch) {
381
    if (mtch) {
381
      y = mtch[1]; m = mtch[2]; d = mtch[3];
382
      y = mtch[1]; m = mtch[2]; d = mtch[3];
382
      if (parseInt(y) < 50) y = '20'+y; else y = '19'+y;
383
      if (y.length == 2)
384
        if (parseInt(y) < 50) y = '20'+y; else y = '19'+y;
383
      if (m.length == 1) m = '0'+m;
385
      if (m.length == 1) m = '0'+m;
384
      if (d.length == 1) d = '0'+d;
386
      if (d.length == 1) d = '0'+d;
385
      dt2 = y+m+d;
387
      dt2 = y+m+d;
(-)a/xslt/tellico2html.xsl (-4 / +4 lines)
Lines 115-124 Link Here
115
 </xsl:if>
115
 </xsl:if>
116
</xsl:variable>
116
</xsl:variable>
117
117
118
<!-- keys ends up useless since we're using exsl:node-set
119
<xsl:key name="fieldsByName" match="tc:field" use="@name"/>
120
<xsl:key name="imagesById" match="tc:image" use="@id"/>
118
<xsl:key name="imagesById" match="tc:image" use="@id"/>
121
-->
122
<xsl:key name="entriesById" match="tc:entry" use="@id"/>
119
<xsl:key name="entriesById" match="tc:entry" use="@id"/>
123
120
124
<!-- filename conversion is weird, need a variable for easy replacement -->
121
<!-- filename conversion is weird, need a variable for easy replacement -->
Lines 557-563 Link Here
557
        </xsl:attribute>
554
        </xsl:attribute>
558
        <img>
555
        <img>
559
         <xsl:attribute name="src">
556
         <xsl:attribute name="src">
560
          <xsl:value-of select="concat($imgdir, .)"/>
557
          <xsl:call-template name="image-link">
558
           <xsl:with-param name="image" select="key('imagesById', .)"/>
559
           <xsl:with-param name="dir" select="$imgdir"/>
560
          </xsl:call-template>
561
         </xsl:attribute>
561
         </xsl:attribute>
562
         <xsl:attribute name="alt">
562
         <xsl:attribute name="alt">
563
          <xsl:value-of select="concat('[', $entry//tc:title[1], ']')"/>
563
          <xsl:value-of select="concat('[', $entry//tc:title[1], ']')"/>
(-)a/xslt/unixref2tellico.xsl (-3 / +6 lines)
Lines 46-54 Link Here
46
</xsl:template>
46
</xsl:template>
47
47
48
<xsl:template match="cr:crossref">
48
<xsl:template match="cr:crossref">
49
 <entry>
49
 <!-- if there's an error, or none found, a crossref element still shows up, with an error element -->
50
  <xsl:apply-templates/>
50
 <xsl:if test="not(cr:error)">
51
 </entry>
51
  <entry>
52
   <xsl:apply-templates/>
53
  </entry>
54
 </xsl:if>
52
</xsl:template>
55
</xsl:template>
53
56
54
<xsl:template match="cr:book">
57
<xsl:template match="cr:book">

Return to bug 1932